:root{--bg:#0e0e0c;--surface:#181815;--surface-2:#1f1f1c;--surface-3:#28272335;--border:#2a2a26;--border-strong:#3a3a35;--text:#f4f1ea;--text-muted:#8d8a82;--text-dim:#5e5b54;--accent:#c8a96a;--accent-soft:#c8a96a22;--green:#6fbe6a;--green-soft:#6fbe6a22;--red:#d96565;--red-soft:#d9656522;--amber:#d8a247;--amber-soft:#d8a24722;--blue:#6896c8;--blue-soft:#6896c822;--serif:"Cormorant Garamond","Playfair Display",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",system-ui,sans-serif;--mono:"JetBrains Mono","SF Mono",Menlo,monospace;--sidebar-bg:#1a1814;--sidebar-hover:#2a2620;--text-sidebar:#f4f1ea;--text-sidebar-muted:#a89c88;--canvas:#faf6ee;--surface-light:#ffffff;--surface-tinted:#f5efde;--border-light:#e8e1d0;--text-canvas:#2a2620;--text-canvas-muted:#75695a;--accent-deep:#8a6f35;--pill-paid-bg:#dceacf;--pill-paid-text:#3d5e22;--pill-paid-border:#bdd29b;--pill-unpaid-bg:#f5d9a8;--pill-unpaid-text:#7a4f0c;--pill-unpaid-border:#dcb86b;--pill-picked-bg:#dcd6ea;--pill-picked-text:#3e3578;--pill-picked-border:#beb3d6;--pill-overdue-bg:#f0d3cd;--pill-overdue-text:#7d251c;--pill-overdue-border:#dfa89e;--card-outstanding-bg:#fbe5cc;--card-outstanding-text:#a8521c;--card-collected-bg:#dceacf;--card-collected-text:#3d5e22;--card-overdue-bg:#f0d3cd;--card-overdue-text:#7d251c;--card-awaiting-bg:#d4e2f0;--card-awaiting-text:#1e4a7d;--card-unpaid-bg:#dcd6ea;--card-unpaid-text:#3e3578;--card-active-bg:#f0e6c8;--card-active-text:#7a5c1c}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font-family:inherit;color:inherit}a{color:inherit;text-decoration:none}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{max-width:420px;width:100%;padding:32px 28px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px}.login-card h1{font-family:var(--serif);font-size:32px;font-weight:500;color:var(--accent);margin-bottom:4px;text-align:center}.login-card .small{font-size:10px;letter-spacing:.18em;color:var(--text-dim);text-transform:uppercase;font-weight:500;margin-bottom:24px;text-align:center}.login-card p{color:var(--text-muted);font-size:13px;margin-bottom:18px;line-height:1.5}.field{margin-bottom:14px}.field label{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:5px}.field input{width:100%;padding:11px 13px;background:var(--bg);border:1px solid var(--border);border-radius:9px;font-size:14px;outline:none;color:var(--text);transition:border-color .15s}.field input:focus{border-color:var(--accent)}.btn{padding:10px 18px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid var(--border);background:var(--surface);transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.btn.primary{background:var(--accent);color:#1a1a17;border-color:var(--accent);font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.danger{color:var(--red)}.btn.ghost{background:transparent}.btn.full{width:100%;padding:12px;font-size:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.error-msg{background:var(--red-soft);color:var(--red);border:1px solid var(--red);border-radius:7px}.error-msg,.info-msg{padding:9px 12px;font-size:12.5px;margin-bottom:12px}.info-msg{background:var(--blue-soft);color:var(--blue);border:1px solid var(--blue);border-radius:7px}.divider{display:flex;align-items:center;gap:12px;margin:18px 0;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.link-btn{font-size:12.5px;color:var(--accent);text-decoration:underline;text-underline-offset:3px;background:none;border:none;padding:0;cursor:pointer}.link-btn:hover{color:var(--text)}.topbar{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--bg)}.brand{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:.01em;color:var(--accent);flex-shrink:0;line-height:1}.brand .small{font-family:var(--sans);font-size:10px;letter-spacing:.18em;color:var(--text-dim);text-transform:uppercase;display:block;margin-top:2px;font-weight:500}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;background:var(--surface-2);border:1px solid var(--border);border-radius:18px;font-size:12px}.user-chip .avatar{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#1a1a17;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700}.user-chip .role{font-size:9px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;display:block;margin-top:1px}.placeholder-page{padding:60px 20px;text-align:center}.placeholder-page h2{font-family:var(--serif);font-size:28px;font-weight:500;margin-bottom:8px}.placeholder-page p{color:var(--text-muted);max-width:480px;margin:0 auto 20px;line-height:1.6}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh;background:var(--canvas)}.sidebar{background:var(--sidebar-bg);color:var(--text-sidebar);display:flex;flex-direction:column;height:100vh;position:-webkit-sticky;position:sticky;top:0;overflow-y:auto;padding-bottom:18px}.sidebar-brand{padding:24px 22px 18px}.sidebar-brand .brand-mark{font-family:var(--serif);font-size:28px;font-weight:500;color:var(--accent);line-height:1;letter-spacing:.01em}.sidebar-brand .brand-subtitle{font-family:var(--sans);font-size:9.5px;letter-spacing:.25em;color:var(--text-sidebar-muted);text-transform:uppercase;margin-top:6px;font-weight:500}.sidebar-section{padding:0 16px 16px;border-bottom:1px solid var(--sidebar-hover);margin-bottom:14px}.sale-switcher{display:flex;flex-direction:column;gap:6px}.sale-switcher-label{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-sidebar-muted);font-weight:600}.sale-switcher-select{width:100%;background:var(--sidebar-hover);color:var(--text-sidebar);border:1px solid transparent;border-radius:8px;font-family:var(--sans);font-size:13px;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a89c88' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding:9px 32px 9px 12px;transition:border-color .12s}.sale-switcher-select:focus,.sale-switcher-select:hover{border-color:var(--accent)}.sale-switcher-empty{padding:9px 12px;background:var(--sidebar-hover);color:var(--text-sidebar-muted);border-radius:8px;font-size:13px;font-style:italic}.sidebar-nav{display:flex;flex-direction:column;gap:1px;padding:0 10px}.sidebar-spacer{flex:1 1}.sidebar-separator{height:1px;background:var(--sidebar-hover);margin:10px 22px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:7px;color:var(--text-sidebar);font-size:11.5px;letter-spacing:.1em;font-weight:600;text-transform:uppercase;text-decoration:none;cursor:pointer;background:transparent;border:none;width:100%;text-align:left;font-family:var(--sans);transition:background-color .12s,color .12s}.nav-item.active,.nav-item:hover{background:var(--sidebar-hover)}.nav-item.active{color:var(--accent)}.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.85}.nav-item.sign-out{color:var(--text-sidebar-muted)}.nav-item.sign-out:hover{color:var(--text-sidebar)}.app-canvas{background:var(--canvas);padding:36px 44px;min-height:100vh}.app-canvas,.app-canvas .placeholder-page,.app-canvas .placeholder-page h2{color:var(--text-canvas)}.app-canvas .placeholder-page p{color:var(--text-canvas-muted)}.app-canvas .btn{background:var(--surface-light);border-color:var(--border-light);color:var(--text-canvas)}.app-canvas .btn:hover:not(:disabled){background:var(--surface-tinted);border-color:var(--accent-deep)}.app-canvas .btn.primary{background:var(--accent-deep);color:var(--surface-light);border-color:var(--accent-deep)}.app-canvas .btn.primary:hover:not(:disabled){filter:brightness(1.08)}.drawer-backdrop,.drawer-close,.mobile-topbar{display:none}@media (max-width:768px){.app-shell{grid-template-columns:1fr}.sidebar{display:flex;position:fixed;top:0;left:0;width:78%;max-width:320px;height:100vh;z-index:60;transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 0 30px rgba(0,0,0,.4)}.app-shell.drawer-open .sidebar{transform:translateX(0)}.drawer-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:55;opacity:0;pointer-events:none;transition:opacity .2s ease;border:none;cursor:pointer}.app-shell.drawer-open .drawer-backdrop{opacity:1;pointer-events:auto}.drawer-close{display:flex;position:fixed;top:12px;left:min(calc(78% - 48px),272px);z-index:65;width:36px;height:36px;border-radius:50%;background:var(--sidebar-hover);color:var(--text-sidebar);align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease;border:none}.app-shell.drawer-open .drawer-close{opacity:1;pointer-events:auto}.drawer-close svg{width:18px;height:18px}.mobile-topbar{display:grid;grid-template-columns:36px 1fr auto;grid-gap:8px;gap:8px;padding:8px 12px;background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-hover);height:52px;position:-webkit-sticky;position:sticky;top:0;z-index:40}.mobile-hamburger,.mobile-topbar{align-items:center;color:var(--text-sidebar)}.mobile-hamburger{width:36px;height:36px;display:flex;justify-content:center;border-radius:6px;background:transparent;border:none;cursor:pointer}.mobile-hamburger:hover{background:var(--sidebar-hover)}.mobile-hamburger svg{width:20px;height:20px}.mobile-brand{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--accent);line-height:1;text-align:center}.mobile-topbar-right{min-width:0}.app-canvas{padding:20px}}