:root{--bg:#f4f6f9;--surface:#fff;--border:#e2e6ec;--text:#1a2233;--text-muted:#667085;--primary:#2d5bff;--primary-dark:#1e42cc;--success:#16a34a;--success-bg:#ecfdf3;--warning:#b7791f;--warning-bg:#fffaeb;--danger:#dc2626;--danger-bg:#fef2f2;--radius:10px;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}button,input,select,textarea{font-family:inherit;font-size:14px}a{color:var(--primary);text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{color:#cfd6e6;background:linear-gradient(#0d1730 0%,#101a33 100%);border-right:1px solid #ffffff0a;flex-direction:column;flex-shrink:0;gap:4px;width:232px;padding:22px 14px;display:flex}.sidebar-logo{padding:2px 8px 22px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar a,.sidebar button.navlink{color:#aab4d1;text-align:left;cursor:pointer;letter-spacing:.01em;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .14s,color .14s,transform .14s;display:flex;position:relative}.sidebar a svg,.sidebar button.navlink svg{opacity:.75;flex-shrink:0;transition:opacity .14s}.sidebar a:hover,.sidebar button.navlink:hover{color:#fff;background:#1b2748}.sidebar a:hover svg,.sidebar button.navlink:hover svg{opacity:1}.sidebar a.active{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font-weight:650;box-shadow:0 4px 14px #2d5bff52}.sidebar a.active svg{opacity:1}.sidebar a.active:before{content:"";opacity:.9;background:#fff;border-radius:0 3px 3px 0;width:3px;height:18px;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.sidebar .spacer{flex:1}.sidebar-user{border-top:1px solid #ffffff14;align-items:center;gap:10px;margin-bottom:6px;padding:16px 10px 10px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#4f7bff,#1e3fc4);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.who-name{color:#fff;font-size:13.5px;font-weight:600}.who-role{color:#8b96b3;font-size:11.5px}.logout-btn{color:#8b96b3!important;font-size:13px!important}.main{flex:1;max-width:1200px;padding:16px 28px}.page-title{letter-spacing:-.01em;margin:0 0 2px;font-size:19px;font-weight:750}.page-subtitle{color:var(--text-muted);margin:0 0 12px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:13px 16px;transition:box-shadow .15s,transform .15s}.stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #1018281a,0 2px 6px #10182814}.stat-card{position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--primary), #7ea1ff);height:3px;position:absolute;top:0;left:0;right:0}.stat-card .value.positive~.label{background:linear-gradient(90deg, var(--success), #4ade80)}.stat-card:has(.positive):before{background:linear-gradient(90deg, var(--success), #4ade80)}.stat-card:has(.warning):before{background:linear-gradient(90deg, var(--warning), #f2c94c)}.stat-card:has(.danger):before{background:linear-gradient(90deg, var(--danger), #f87171)}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat-card{padding:12px 15px 10px}.stat-card-clickable{cursor:pointer}.stat-card-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.stat-card-hint{color:var(--primary);opacity:0;margin-top:8px;font-size:11.5px;font-weight:600;transition:opacity .12s}.stat-card-clickable:hover .stat-card-hint,.stat-card-clickable:focus-visible .stat-card-hint{opacity:1}.stat-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:10.5px;font-weight:600}.stat-card .value{letter-spacing:-.01em;font-size:19px;font-weight:800}.stat-card .value.positive{color:var(--success)}.stat-card .value.warning{color:var(--warning)}.stat-card .value.danger{color:var(--danger)}.stat-card .value.overpaid{color:#4338ca}.stat-card:has(.overpaid):before{background:linear-gradient(90deg,#4338ca,#818cf8)}.section{margin-bottom:12px}.section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-header h2{margin:0;font-size:14px}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:12px 14px}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:#fafbfd;font-size:11.5px;font-weight:700}tbody tr{transition:background .1s}tbody tr:hover{background:#f6f8fc}tbody tr:last-child td{border-bottom:none}.badge{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.paid{background:var(--success-bg);color:var(--success)}.badge.pending{background:var(--warning-bg);color:var(--warning)}.badge.writeoff{background:var(--danger-bg);color:var(--danger)}.badge.proposed{color:var(--primary);background:#eef2ff}.badge.overdue{color:#c0281c;background:#fff1f1}.badge.overpaid{color:#4338ca;background:#eef2ff}.balance-overpaid{color:#4338ca;font-weight:600}tbody tr.row-overdue{background:#fff8f7}tbody tr.row-overdue:hover{background:#fff0ee}.btn{cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:13.5px;font-weight:600}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 2px 8px #2d5bff4d}.btn-primary:hover{filter:brightness(1.06)}.btn-secondary{color:var(--text);background:#eef1f6}.btn-secondary:hover{background:#e2e6ee}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-success{background:var(--success-bg);color:var(--success)}.btn-sm{padding:5px 10px;font-size:12.5px}.btn[disabled]{opacity:.5;cursor:not-allowed}.form-row{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.form-row label{color:var(--text-muted);font-size:13px;font-weight:600}.form-row input,.form-row select,.form-row textarea{border:1.5px solid var(--border);border-radius:8px;outline:none;padding:10px 12px;transition:border-color .12s,box-shadow .12s}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2d5bff1f}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.modal-backdrop{z-index:50;background:#10162873;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:90vh;padding:24px;overflow-y:auto}.modal h3{margin-top:0}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.login-page{background:radial-gradient(circle at 15% 15%,#4f7bff40,#0000 45%),radial-gradient(circle at 85% 85%,#4f7bff2e,#0000 40%),linear-gradient(160deg,#0b1329,#16214a);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-shell{border-radius:20px;width:100%;max-width:880px;min-height:520px;display:flex;overflow:hidden;box-shadow:0 30px 80px #00000073}.login-hero{color:#fff;background:linear-gradient(160deg,#16214a,#101a33);flex-direction:column;flex:1.1;justify-content:center;gap:16px;padding:44px 40px;display:flex;position:relative}.login-hero h2{margin:10px 0 0;font-size:25px;font-weight:700;line-height:1.35}.login-hero p{color:#b7c1de;margin:0;font-size:14.5px;line-height:1.6}.login-hero-points{flex-direction:column;gap:10px;margin:10px 0 0;padding:0;list-style:none;display:flex}.login-hero-points li{color:#dbe1f3;padding-left:22px;font-size:13.5px;position:relative}.login-hero-points li:before{content:"✓";color:#7ea1ff;font-weight:700;position:absolute;left:0}.login-card{background:#fff;flex-direction:column;flex:1;justify-content:center;padding:44px 40px;display:flex}.login-card h1{margin:0 0 2px;font-size:22px;font-weight:750}.login-card p.subtitle{color:var(--text-muted);margin:0 0 26px;font-size:13.5px}@media (width<=720px){.login-shell{flex-direction:column;max-width:420px}.login-hero,.login-card{padding:34px 30px}}.error-text{color:var(--danger);margin:6px 0 0;font-size:13px}.empty-state{color:var(--text-muted);text-align:center;padding:30px 0;font-size:14px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar input,.toolbar select{border:1px solid var(--border);border-radius:8px;padding:8px 10px}.spacer-flex{flex:1}.expand-toggle{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:600}.pill-count{background:var(--danger-bg);color:var(--danger);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:700}.toast-stack{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;right:22px}.toast{color:#fff;background:#17233f;border-radius:10px;min-width:220px;padding:12px 18px;font-size:13.5px;font-weight:500;animation:.18s ease-out toast-in;box-shadow:0 10px 30px #00000040}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gst-box{border:1px solid var(--border);background:#f7f9fd;border-radius:10px;margin:4px 0 14px;padding:12px 14px}.gst-toggle{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.gst-toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.gst-toggle-hint{color:var(--text-muted);margin-left:2px;font-size:12px;font-weight:500}.gst-breakdown{border-top:1px dashed var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;font-size:13.5px;display:flex}.gst-breakdown>div{color:var(--text-muted);justify-content:space-between;display:flex}.gst-breakdown-total{border-top:1px solid var(--border);margin-top:4px;padding-top:8px;font-size:15px;font-weight:750;color:var(--text)!important}.gst-breakdown-total span{color:var(--text)}.gst-pill{color:var(--primary);vertical-align:middle;background:#eef2ff;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.amount-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px}.page-enter{animation:.32s cubic-bezier(.16,1,.3,1) page-enter-anim}@keyframes page-enter-anim{0%{opacity:0;transform:translateY(10px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}.page-enter .card{animation:.36s cubic-bezier(.16,1,.3,1) backwards card-enter-anim}.page-enter .card:first-of-type{animation-delay:20ms}.page-enter .card:nth-of-type(2){animation-delay:60ms}.page-enter .card:nth-of-type(3){animation-delay:.1s}.page-enter .grid-stats .stat-card{animation:.34s cubic-bezier(.16,1,.3,1) backwards card-enter-anim}.page-enter .grid-stats .stat-card:first-child{animation-delay:10ms}.page-enter .grid-stats .stat-card:nth-child(2){animation-delay:50ms}.page-enter .grid-stats .stat-card:nth-child(3){animation-delay:90ms}.page-enter .grid-stats .stat-card:nth-child(4){animation-delay:.13s}.page-enter .grid-stats .stat-card:nth-child(5){animation-delay:.17s}@keyframes card-enter-anim{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.page-enter,.page-enter .card,.page-enter .grid-stats .stat-card{animation:none}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card{-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:640px}@media (width<=768px){.app-shell{flex-direction:column;min-height:auto}.sidebar{z-index:40;border-bottom:1px solid #ffffff14;border-right:none;flex-direction:row;align-items:center;gap:6px;width:100%;padding:8px 12px;position:sticky;top:0}.sidebar-logo{padding:0 6px 0 0}.sidebar-logo img{height:30px!important}.sidebar-nav{-webkit-overflow-scrolling:touch;flex-direction:row;flex:1;gap:2px;overflow-x:auto}.sidebar a,.sidebar button.navlink{white-space:nowrap;gap:6px;padding:8px 10px;font-size:12.5px}.sidebar a.active:before,.sidebar .spacer,.sidebar-user{display:none}.logout-btn{white-space:nowrap;border-top:none!important;padding:8px 10px!important}.main{max-width:100%;padding:16px 14px 28px}.page-title{font-size:18px}.page-subtitle{margin-bottom:14px;font-size:12.5px}.grid-stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.stat-card{padding:12px 14px 10px}.stat-card .label{margin-bottom:6px;font-size:10.5px}.stat-card .value{font-size:18px}.stat-card-hint{display:none}.toolbar{flex-direction:column;align-items:stretch;gap:8px}.toolbar input,.toolbar select,.toolbar button{width:100%}.toolbar .spacer-flex{display:none}.page-header{flex-direction:column;align-items:stretch}.page-header .btn{width:100%}.card{padding:14px}.modal{max-width:96vw;padding:18px}.form-grid{grid-template-columns:1fr;gap:0}th,td{padding:10px;font-size:12.5px}}@media print{.sidebar,.toolbar,.toast-stack,.no-print,.expand-toggle,.modal-backdrop{display:none!important}.app-shell{display:block}.main{max-width:none;padding:0 12px}.card{box-shadow:none;break-inside:avoid;border:1px solid #ccc}.stat-card-hint{display:none}body{background:#fff}}
