:root{--sidebar-width: 64px;--sidebar-expanded: 240px;--bg-dark: #070a13;--bg-body: #0c111d;--bg-card: rgba(23, 29, 45, .7);--border: rgba(255, 255, 255, .08);--border-bright: rgba(255, 255, 255, .15);--text-primary: #ffffff;--text-secondary: #94a3b8;--accent: #6366f1;--accent-gradient: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--glass: blur(12px) saturate(180%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,Inter,-apple-system,sans-serif;background-color:var(--bg-body);background-image:radial-gradient(at 0% 0%,rgba(99,102,241,.15) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(168,85,247,.1) 0px,transparent 50%);color:var(--text-primary);line-height:1.6;min-height:100vh}.layout{display:flex;flex-direction:column;min-height:100vh}.topnav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:0;height:56px;padding:0 20px;background:#070a13d9;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border-bottom:1px solid var(--border);min-width:0}.topnav-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-right:16px}.topnav-logo-mark{width:32px;height:32px;background:var(--accent-gradient);border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.9rem;box-shadow:0 3px 10px #6366f159;flex-shrink:0}.topnav-logo-text{font-weight:800;font-size:.88rem;letter-spacing:.06em;color:var(--text-primary);white-space:nowrap}.topnav-links{display:flex;align-items:center;gap:4px;flex:1;overflow:hidden;min-width:0}.topnav-link{display:flex;align-items:center;gap:0;padding:5px 13px;border-radius:999px;border:1px solid transparent;color:var(--text-secondary);text-decoration:none;font-size:.78rem;font-weight:600;white-space:nowrap;flex-shrink:0;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.topnav-link span{max-width:0;overflow:hidden;opacity:0;margin-left:0;white-space:nowrap;transition:max-width .25s ease,opacity .2s ease,margin-left .2s ease}.topnav-link:hover span,.topnav-link.active span{max-width:120px;opacity:1;margin-left:6px}.topnav-link:hover{background:#ffffff14;border-color:#ffffff1a;color:var(--text-primary)}.topnav-link.active{background:var(--accent-gradient);border-color:transparent;color:#fff;box-shadow:0 2px 10px #6366f166}.topnav-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}.topnav-user{display:flex;align-items:center;gap:8px}.topnav-avatar{width:30px;height:30px;background:var(--accent-gradient);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.78rem;flex-shrink:0}.topnav-username{font-size:.8rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.topnav-logout{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:none;color:var(--danger);cursor:pointer;transition:background .15s,border-color .15s;flex-shrink:0}.topnav-logout:hover{background:#ef44441a;border-color:#ef444459}.topnav-hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:9px;background:none;color:var(--text-primary);cursor:pointer;transition:background .15s;flex-shrink:0}.topnav-hamburger:hover{background:#ffffff12}.topnav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.topnav-drawer{position:absolute;top:0;right:0;width:260px;height:100vh;background:var(--bg-card);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:drawerSlide .22s cubic-bezier(.4,0,.2,1)}@keyframes drawerSlide{0%{transform:translate(100%)}to{transform:translate(0)}}.topnav-drawer-links{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.topnav-drawer-user{display:flex;align-items:center;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.topnav-drawer-bottom{display:flex;flex-direction:column;border-top:1px solid var(--border);padding:8px 0 6px;flex-shrink:0}.topnav-drawer-link{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:999px;border:1px solid transparent;color:var(--text-secondary);text-decoration:none;font-size:.88rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.topnav-drawer-link:hover{background:#ffffff0f;border-color:#ffffff14;color:var(--text-primary)}.topnav-drawer-link.active{background:var(--accent-gradient);border-color:transparent;color:#fff;box-shadow:0 2px 10px #6366f159}.topnav-drawer-logout{display:flex;align-items:center;gap:10px;margin:6px 10px 0;padding:11px 14px;border:1px solid rgba(239,68,68,.3);border-radius:10px;background:#ef444414;color:var(--danger);cursor:pointer;font-size:.88rem;font-weight:600;font-family:inherit;transition:background .15s}.topnav-drawer-logout:hover{background:#ef444426}@media (max-width: 900px){.topnav-links,.topnav-user,.topnav-logout{display:none}.topnav-hamburger{display:flex}.topnav-right{margin-left:auto}}@media (min-width: 901px){.topnav-hamburger{display:none}}.content{flex:1;min-width:0}.card{background:var(--bg-card);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:20px;padding:24px;transition:all .3s}.card:hover{border-color:var(--border-bright);box-shadow:0 20px 40px -20px #00000080}.btn-primary{background:var(--accent-gradient);color:#fff;border:none;padding:12px 24px;border-radius:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s;box-shadow:0 4px 12px #6366f14d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6366f166}.btn-secondary{background:#ffffff0d;color:var(--text-primary);border:1px solid var(--border);padding:12px 24px;border-radius:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#ffffff1a;border-color:var(--border-bright)}.table-container{background:var(--bg-card);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:20px;overflow-x:auto;overflow-y:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{background:#ffffff08;padding:12px 14px;font-size:.75rem;font-weight:700;letter-spacing:.07em;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:13px 14px;border-bottom:1px solid var(--border);color:var(--text-primary);font-size:.88rem}.data-table tr:hover td{background:#ffffff05}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;animation:overlayFadeIn .2s ease}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#0f172a;border:1px solid var(--border-bright);border-radius:24px;box-shadow:0 25px 50px -12px #000c;animation:modalSlide .3s cubic-bezier(.4,0,.2,1)}@keyframes modalSlide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{display:block;font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{width:100%;background:#ffffff0d;border:1px solid var(--border);border-radius:10px;padding:11px 14px;color:var(--text-primary);font-size:.9rem;transition:all .2s;outline:none;font-family:inherit}.form-group input::placeholder,.form-group textarea::placeholder{color:#94a3b880}.form-group select option{background:#0f172a;color:var(--text-primary)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);background:#6366f10f;box-shadow:0 0 0 3px #6366f11f}.form-group input:disabled,.form-group select:disabled{opacity:.5;cursor:not-allowed}.status-pill{padding:6px 14px;border-radius:100px;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;gap:6px}.status-paid{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.2)}.status-due{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.status-partial{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.text-center{text-align:center}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-total{color:var(--text-primary);font-weight:700}.text-paid{color:var(--success);font-weight:700}.text-due{color:var(--danger);font-weight:700}.text-xs{font-size:.75rem}.text-sm{font-size:.85rem}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.no-margin{margin:0}.no-border{border:none}.mt-24{margin-top:24px}.mt-16{margin-top:16px}.w-full{width:100%}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap}.section-header h1{font-size:1.8rem;font-weight:800;background:linear-gradient(to right,#fff,#94a3b8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-header p{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.page{padding:32px;max-width:1200px}@media (max-width: 768px){.page{padding:12px}.section-header h1{font-size:1.4rem}.section-header{margin-bottom:16px}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media (max-width: 768px){.table-container{overflow-x:scroll;-webkit-overflow-scrolling:touch}.data-table{min-width:500px}}.page-loading{display:flex;align-items:center;justify-content:center;height:60vh;color:var(--text-secondary);font-size:.9rem}.page-loading:after{content:"";width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin-left:10px}@keyframes spin{to{transform:rotate(360deg)}}
