:root{color-scheme:light dark;--bg:#f6f7f9;--card:#fff;--ink:#1c2430;--mute:#6b7585;--line:#e3e6eb;--brand:#2456d6;--ok:#1a7f4b;--warn:#b26a00;--bad:#c0392b;--r:8px}
@media (prefers-color-scheme:dark){:root{--bg:#12151a;--card:#1b2028;--ink:#e8ebf0;--mute:#98a1b0;--line:#2b323d;--brand:#6b9bff;--ok:#4cc38a;--warn:#e8a33d;--bad:#ff7b6b}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 10px}h3{font-size:14px;margin:12px 0 6px}
.top{position:fixed;top:0;left:0;right:0;height:52px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 16px;z-index:20}
.brand{font-weight:700;font-size:18px;color:var(--ink)}
.search{flex:1;max-width:520px}.search input{width:100%}
.menu{display:none;background:none;border:0;font-size:22px;color:var(--ink)}
.side{position:fixed;top:52px;left:0;bottom:0;width:210px;background:var(--card);border-right:1px solid var(--line);padding:12px 8px;overflow:auto}
.side a{display:block;padding:8px 12px;border-radius:6px;color:var(--ink)}.side a:hover{background:var(--bg);text-decoration:none}.side a.on{background:var(--brand);color:#fff}
.side hr{border:0;border-top:1px solid var(--line);margin:10px 0}
main{padding:76px 20px 40px;max-width:1280px;margin:0 auto}main.with-nav{margin-left:210px;max-width:none}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;align-items:start}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}
.mute{color:var(--mute)}.small{font-size:13px}.right{text-align:right}
table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);white-space:nowrap}th a{color:inherit}
tr:hover td{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.tablewrap{overflow-x:auto}
input,select,textarea,button{font:inherit;color:inherit}
input,select,textarea{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:7px 9px;max-width:100%}
textarea{width:100%;min-height:80px}
label{display:block;font-size:13px;color:var(--mute);margin-bottom:10px}label input:not([type=checkbox]),label select,label textarea{display:block;width:100%;margin-top:3px;color:var(--ink)}
label.inline{display:inline-flex;gap:6px;align-items:center}
button,.btn{background:var(--brand);color:#fff;border:0;border-radius:6px;padding:8px 14px;cursor:pointer;display:inline-block}
button.sec,.btn.sec{background:transparent;color:var(--ink);border:1px solid var(--line)}
button.danger{background:transparent;color:var(--bad);border:1px solid var(--line)}
button.link{background:none;color:var(--mute);padding:4px}button.link:hover{text-decoration:underline}
.btn:hover{text-decoration:none}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;background:var(--line);color:var(--ink);white-space:nowrap}
.b-active,.b-paid,.b-delivered,.b-sent,.b-ok,.b-high{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}
.b-lead,.b-contacted,.b-meeting,.b-quoted,.b-draft,.b-medium,.b-due-soon,.b-in_production,.b-shipped,.b-pending{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}
.b-lost,.b-overdue,.b-void,.b-failed,.b-cancelled{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.stat{font-size:26px;font-weight:700}.stat small{display:block;font-size:12px;font-weight:400;color:var(--mute)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.facts div{font-size:12px;color:var(--mute)}.facts b{display:block;font-size:15px;color:var(--ink);font-weight:600}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:14px;background:color-mix(in srgb,var(--ok) 15%,var(--card));border:1px solid var(--ok)}.flash.error{background:color-mix(in srgb,var(--bad) 12%,var(--card));border-color:var(--bad)}
.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:8px 0;border-bottom:1px solid var(--line)}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px}
.col{background:color-mix(in srgb,var(--line) 40%,transparent);border-radius:var(--r);padding:8px;min-height:200px}.col.over{outline:2px dashed var(--brand)}
.col h3{text-transform:capitalize;margin:2px 4px 8px}.pcard{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:9px;margin-bottom:8px;cursor:grab}
.pcard.dragging{opacity:.4}
.narrow{max-width:420px;margin:60px auto}
.pending-msg{border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:12px}
.done{text-decoration:line-through;color:var(--mute)}
.b-cold{background:var(--line);color:var(--mute)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.step{border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;color:var(--mute)}.step b{display:block;color:var(--ink)}
.step.done-step{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,transparent)}.step.done-step b{color:var(--ok)}
pre.code{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px;overflow:auto;font-size:12px;line-height:1.4}
code{background:var(--bg);padding:1px 5px;border-radius:4px;font-size:13px}
details summary{cursor:pointer;color:var(--brand)}
@media(max-width:900px){
 .menu{display:block}.side{transform:translateX(-100%);transition:.2s;z-index:30}.nav-open .side{transform:none}
 main.with-nav{margin-left:0}.g2,.g3,.g4,.split{grid-template-columns:1fr}.top .search{display:none}
}
