:root{--bg:#f6f7f9;--card:#fff;--line:#e3e6ea;--ink:#1d2530;--muted:#6b7686;--accent:#2f6df6;--accent-d:#2257d6;--ok:#1a9d63;--warn:#d98a00;--err:#d23f3f}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;gap:18px;background:var(--card);border-bottom:1px solid var(--line);padding:10px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar .brand{font-weight:700}.topbar nav a{margin-right:14px;color:var(--ink)}.topbar .spacer{flex:1 1}.topbar .who{color:var(--muted)}.container{max-width:1200px;margin:22px auto;padding:0 20px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.row>*{margin:0}label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font:inherit;background:#fff}textarea{min-height:70px;resize:vertical}button{background:var(--accent);color:#fff;border:0;border-radius:7px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}button:hover{background:var(--accent-d)}button.ghost{background:#eef1f5;color:var(--ink)}button:disabled{opacity:.5;cursor:default}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--muted);font-weight:600}tr.clickable:hover{background:#f0f4ff;cursor:pointer}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;background:#eef1f5;color:var(--muted)}.badge.new{background:#e7f0ff;color:var(--accent-d)}.badge.review{background:#fff3df;color:var(--warn)}.badge.done{background:#e3f6ec;color:var(--ok)}.conf-low{color:var(--err);font-weight:600}.muted{color:var(--muted)}.err{color:var(--err)}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:26px;gap:26px}@media (max-width:900px){.grid2{grid-template-columns:1fr}}.preview{width:100%;border:1px solid var(--line);border-radius:8px;background:#fafbfc;min-height:320px}.center{min-height:60vh;display:flex;align-items:center;justify-content:center}.login-box{width:320px}.field{margin-bottom:14px}h1{font-size:20px;margin:0 0 14px}h2{font-size:15px;margin:0 0 12px}.invoice{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.inv-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:2px solid var(--ink);background:#fbfcfe}.inv-head .kind{font-size:22px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.inv-head .nums{text-align:right;font-size:13px;color:var(--muted)}.inv-head .nums b{color:var(--ink);font-size:15px}.inv-head input{font:inherit}.parties{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0}.parties .party+.party{border-left:1px solid var(--line)}.party{padding:16px 22px}.party h3{margin:0 0 12px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--accent-d);font-weight:700}.kv{display:grid;grid-template-columns:92px 1fr;align-items:center;grid-gap:8px;gap:8px;margin-bottom:7px}.kv>label{margin:0;font-size:12px;color:var(--muted)}.kv>input,.kv>select{padding:6px 8px;font-size:13px}.inv-body{padding:16px 22px;border-top:1px solid var(--line)}.inv-body .subj input{font-size:14px}.totals{margin-left:auto;width:320px;max-width:100%;margin-top:14px}.totals .trow{display:grid;grid-template-columns:1fr 130px;align-items:center;grid-gap:8px;gap:8px;margin-bottom:6px}.totals .trow>label{margin:0;text-align:right;color:var(--muted)}.totals .trow input{text-align:right;padding:6px 8px}.totals .grand{border-top:2px solid var(--ink);padding-top:8px;margin-top:4px}.totals .grand>label{color:var(--ink);font-weight:700}.totals .grand input{font-weight:700;font-size:15px}.inv-foot{padding:14px 22px;border-top:1px solid var(--line);background:#fbfcfe}@media (max-width:820px){.parties{grid-template-columns:1fr}.parties .party+.party{border-left:0;border-top:1px solid var(--line)}.totals{width:100%}}