:root{--bg:#f4efe4;--bg-sidebar:#ede6d7;--surface:#fffdf8;--border:#e4dccb;--border-strong:#dcd2be;--ink:#1b1a17;--ink-soft:#3d382f;--muted:#6e675c;--faint:#8a8274;--accent:#3f6b4e;--accent-hover:#2c4c37;--accent-soft:#e3ebde;--dark:#1f2a22;--dark-ink:#f4efe4;--warn:#c98a3c;--warn-bg:#fff8ee;--ok:#8dc49a;--danger:#b4533c;--danger-bg:#fbece6;--ok-bg:#e3ebde;--dark-muted:#b9c4b2;--dark-faint:#8c9a86;--brand-light:#c9d9c2;--placeholder:#a49b8b;--surface-soft:#f6f1e6;--surface-softer:#faf6ed;--line-soft:#f0e9da;--tone-soft-bg:#e3ebde;--tone-soft-ink:#2c4c37;--tone-firm-bg:#f5e7c9;--tone-firm-ink:#8a5e20;--tone-formal-bg:#f7e1da;--tone-formal-ink:#9a472c;--serif:Newsreader, Georgia, serif;--sans:"Public Sans", Helvetica, sans-serif;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}input,button{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2{font-family:var(--serif);margin:0;font-weight:400}h1{font-size:36px}h2{font-size:24px}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--bg-sidebar);border-right:1px solid #e0d7c4;flex-direction:column;gap:28px;padding:26px 18px;display:flex}.brand{align-items:center;gap:10px;padding:0 8px;display:flex}.logo-mark{background:var(--dark);border-radius:8px;flex:none;width:30px;height:30px;padding:3px;display:block}.brand-name{letter-spacing:.18em;color:var(--ink-soft);font-size:13px;font-weight:600}.sidebar-top{justify-content:space-between;align-items:center;display:flex}.sidebar-menu{flex-direction:column;flex:1;gap:28px;display:flex}.burger{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0 9px;display:none}.burger span{background:var(--ink-soft);border-radius:1px;height:2px;transition:transform .2s,opacity .2s;display:block}.sidebar.open .burger span:first-child{transform:translateY(7px)rotate(45deg)}.sidebar.open .burger span:nth-child(2){opacity:0}.sidebar.open .burger span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav{flex-direction:column;gap:2px;display:flex}.nav a{color:var(--ink-soft);border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;display:flex}.nav a:hover{color:var(--ink);background:#e5dcc9}.nav a.active{background:var(--surface);color:var(--ink);font-weight:600}.nav-dot{background:var(--border-strong);border-radius:50%;width:7px;height:7px}.nav a.active .nav-dot{background:var(--accent)}.sidebar-foot{flex-direction:column;gap:14px;margin-top:auto;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 4px;font-size:12px}.muted{color:var(--muted)}.faint{color:var(--faint);font-size:13px}main{max-width:1120px;padding:36px 44px 72px}.page-head{margin-bottom:30px}.page-head p{margin:0 0 6px}.empty{text-align:center;padding:48px 24px}.empty p{max-width:420px;margin:8px auto 0;line-height:1.6}.status{color:var(--faint);align-items:center;gap:8px;font-size:13px;display:inline-flex}.status-dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.status-dot.ok{background:var(--ok)}.status-dot.down{background:var(--danger)}.user{align-items:center;gap:10px;padding:8px;display:flex}.avatar{background:var(--accent);width:30px;height:30px;color:var(--dark-ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.user-text{flex:1;min-width:0}.user-name{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;font-weight:600;overflow:hidden}.user-org{margin:0;font-size:12px}.link-button{color:var(--faint);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.link-button:hover{color:var(--ink)}.loading{min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.auth{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:100vh;display:grid}.auth-aside{background:var(--dark);color:var(--dark-ink);flex-direction:column;justify-content:space-between;gap:48px;padding:56px 48px;display:flex}.brand-light .logo-mark{background:0 0;width:30px;height:30px;padding:0}.brand-name-light{color:var(--dark-ink);font-size:15px}.auth-pitch{max-width:420px}.auth-headline{font-family:var(--serif);margin:0 0 20px;font-size:40px;line-height:1.15}.auth-sub{color:var(--dark-muted);margin:0;font-size:15px;line-height:1.6}.auth-foot{color:var(--dark-faint);margin:0;font-size:13px}.auth-main{justify-content:center;align-items:center;padding:48px 32px;display:flex}.auth-box{width:100%;max-width:380px}.auth-title{margin:0 0 8px;font-size:32px}.auth-lead{color:var(--muted);margin:0 0 28px;font-size:15px;line-height:1.5}.auth-note{color:var(--faint);margin:28px 0 0;font-size:13px;line-height:1.5}.form{flex-direction:column;gap:18px;display:flex}.field{color:var(--ink-soft);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.field input,.field textarea{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);border-radius:8px;padding:12px 14px;font-size:15px;font-weight:400;line-height:1.5}.field textarea{resize:vertical}.field input::placeholder{color:var(--placeholder)}.form-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.check{color:var(--ink-soft);align-items:center;gap:8px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px}.btn{cursor:pointer;text-align:center;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:12px 18px;font-size:15px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--dark);color:var(--dark-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);color:var(--dark-ink)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--ink)}.btn-ghost{color:var(--muted);background:0 0}.alert{border-radius:8px;margin:0;padding:12px 14px;font-size:14px;line-height:1.5}.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-ok{background:var(--ok-bg);color:var(--accent-hover);margin-bottom:18px}.btn-small{padding:9px 14px;font-size:13px}.btn-ghost:hover:not(:disabled){color:var(--ink)}.review{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;overflow:hidden}.review-head{background:var(--surface-soft);border-bottom:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 20px;font-size:12px;display:flex}.review-row{border-bottom:1px solid var(--line-soft)}.review-row:last-child{border-bottom:none}.review-line{flex-wrap:wrap;align-items:center;gap:12px 20px;padding:16px 20px;display:flex}.review-who{flex:190px;min-width:0}.review-who p{margin:0}.review-client,.review-amount{font-size:15px;font-weight:600}.review-status{flex:150px;font-size:14px}.review-line .btn{margin-left:auto}.pill{border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}.tone-soft{background:var(--tone-soft-bg);color:var(--tone-soft-ink)}.tone-firm{background:var(--tone-firm-bg);color:var(--tone-firm-ink)}.tone-formal{background:var(--tone-formal-bg);color:var(--tone-formal-ink)}.review-draft{background:var(--surface-softer);border-top:1px solid var(--line-soft);flex-direction:column;gap:14px;padding:4px 20px 20px;display:flex}.review-draft>.faint{margin:14px 0 0}.review-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=800px){.shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.sidebar{z-index:20;border-bottom:1px solid #e0d7c4;border-right:none;gap:0;min-width:0;padding:10px 16px;position:sticky;top:0}.burger{display:flex}.sidebar-menu{display:none}.sidebar.open{border-bottom:none;position:fixed;inset:0;overflow-y:auto}.sidebar.open .sidebar-menu{padding-top:20px;display:flex}.nav a{padding:12px 10px;font-size:16px}main{padding:24px 16px 48px}h1{font-size:28px}.auth{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.auth-aside{gap:0;padding:20px 16px}.auth-pitch,.auth-foot{display:none}.auth-main{align-items:flex-start;padding:32px 16px}}
