:root{--navy:#2b374f;--navy-ink:#fff;--surface:#fff;--surface-2:#f2f4f7;--surface-3:#e8ebf0;--ink:#1d2433;--ink-2:#5a6478;--line:#d9dee8;--accent:#2f7f7a;--amber:#b7791f;--amber-bg:#fdf3dd;--green:#2e7d4f;--red:#b4232a;--red-bg:#fdecea;--radius-btn:8px;--radius-card:12px;--radius-input:6px;--sidebar-w:248px}[data-theme=dark]{--surface:#171e2e;--surface-2:#1f2940;--surface-3:#2a3652;--ink:#e8ecf3;--ink-2:#9aa5bb;--line:#2e3a55;--amber-bg:#3a2f14;--red-bg:#3d1f22}*{box-sizing:border-box}body{background:var(--surface-2);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--navy)}[data-theme=dark] a{color:#aebadd}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius-btn);padding:8px 14px}button.primary{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius-input);width:100%;padding:9px 12px}.chip{border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.chip.navy{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}.chip.amber{background:var(--amber-bg);color:var(--amber);border-color:var(--amber)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:20px}.muted{color:var(--ink-2)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.error{background:var(--red-bg);color:var(--red);border:1px solid var(--line);border-radius:var(--radius-card);padding:14px 16px}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--navy);color:#dfe5f0;flex-shrink:0;height:100vh;padding:20px 14px;position:sticky;top:0;overflow-y:auto}.sidebar a{color:#dfe5f0;text-decoration:none}.sidebar .group-label{letter-spacing:.08em;text-transform:uppercase;color:#93a0b8;margin:20px 8px 6px;font-size:11px}.sidebar .nav-item{text-align:left;color:#dfe5f0;border-radius:var(--radius-btn);background:0 0;border:none;width:100%;padding:8px 10px;display:block}.sidebar .nav-item:hover,.sidebar .nav-item.active{background:#ffffff1f}.sidebar .nav-item.restricted{color:#93a0b8}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:5;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.topbar .search{flex:1;min-width:200px;max-width:480px}.topbar .spacer{flex:1}.content{width:100%;max-width:1080px;margin:0 auto;padding:24px}.viewas-banner{border:2px solid var(--amber);background:var(--amber-bg);border-radius:var(--radius-card);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.notif-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);z-index:10;width:min(420px,92vw);max-height:70vh;position:absolute;top:60px;right:20px;overflow-y:auto;box-shadow:0 12px 32px #0000002e}.notif-item{text-align:left;border:none;border-bottom:1px solid var(--line);background:0 0;border-radius:0;width:100%;padding:12px 16px}.notif-item.unread{font-weight:700}.confirm-overlay{z-index:50;background:#141a288c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-card{width:100%;max-width:440px}.confirm-card .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.confirm-card .danger{background:var(--red);color:#fff;border-color:var(--red)}.badge{text-align:center;background:var(--red);color:#fff;border-radius:999px;min-width:20px;margin-left:4px;padding:1px 6px;font-size:12px;display:inline-block}.client-header{background:var(--navy);color:#fff;flex-wrap:wrap;align-items:center;gap:20px;padding:14px 24px;display:flex}.client-header a,.client-header button{color:#fff}.client-header button{background:0 0;border-color:#fff6}.client-header .nav-btn{background:0 0;border:none;padding:8px 4px}.client-header .nav-btn.active{text-underline-offset:6px;text-decoration:underline}.client-main{max-width:880px;margin:0 auto;padding:24px}.project-card{margin-bottom:16px}@media (width<=760px){.sidebar{z-index:20;transition:transform .2s;position:fixed;left:0;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.content,.client-main{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
