@import "https://fonts.googleapis.com/css2?family=Fraunces:wght@500;600&family=Inter:wght@400;500;600&display=swap";:root{--bg:#fafafc;--surface:#fff;--border:#e7e5f0;--text:#1f1b2e;--muted:#6b6880;--accent:#7c5cfa;--accent-d:#6240e0;--blue:#5b8def;--tint:#f1eeff;--ice:#eef4ff;--ok:#3ba776;--warn:#e0a030;--bad:#d9534f;--gray:#9a98aa;--r:12px;--sh:0 1px 2px #1f1b2e0a,0 4px 14px #1f1b2e0d}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.45 Inter,system-ui,sans-serif}h1,h2,h3{margin:0;font-family:Fraunces,Georgia,serif;font-weight:600}h1{font-size:28px}h3{font-size:18px}h4{margin:0;font-size:14px;font-weight:600}button{font:inherit;cursor:pointer}.layout{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.side{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{color:var(--accent-d);padding:0 10px 18px;font-family:Fraunces,serif;font-size:19px;font-weight:600}.nav{color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.nav:hover{background:var(--tint)}.nav.active{background:var(--tint);color:var(--accent-d)}.nav .badge{background:var(--accent);color:#fff;border-radius:99px;margin-left:auto;padding:1px 7px;font-size:11px}.main{width:100%;max-width:1500px;padding:30px 38px 80px}.page-h{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.muted{color:var(--muted)}.sm{font-size:12px}.right{text-align:right}.grow{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:16px;padding:18px}.card-h{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media (width<=1000px){.g3,.g4{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:70px 1fr}.nav span.l,.brand small{display:none}}.stat .big{margin:2px 0;font-family:Fraunces,serif;font-size:26px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:7px 13px;font-weight:500}.btn:hover{background:var(--tint)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-d)}.btn.danger{color:var(--bad)}.btn.sm{padding:3px 9px;font-size:12px}input,select,textarea{font:inherit;color:inherit}.input,.field input,.field select,.field textarea{border:1px solid var(--border);background:#fff;border-radius:9px;width:100%;padding:8px 10px}.input:focus,.field input:focus,.field select:focus,.field textarea:focus,.cell:focus{outline:2px solid var(--accent);outline-offset:-1px}.field{flex-direction:column;gap:4px;display:flex}.field>span{color:var(--muted);font-size:12px;font-weight:500}.field.span{grid-column:1/-1}.form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.overlay{z-index:50;background:#1f1b2e61;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;flex-direction:column;width:560px;max-width:100%;max-height:90vh;display:flex;box-shadow:0 20px 60px #1f1b2e40}.modal.wide{width:860px}.modal-h{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-b{padding:20px 22px;overflow:auto}.modal-f{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.x{color:var(--muted);background:0 0;border:0;font-size:24px;line-height:1}table{border-collapse:collapse;width:100%}.tbl-wrap{border:1px solid var(--border);border-radius:var(--r);background:#fff;overflow:auto}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;cursor:default;background:#f7f6fb;padding:9px 10px;font-size:12px;font-weight:600;position:sticky;top:0}th.sortable{cursor:pointer}td{vertical-align:middle;border-bottom:1px solid #f0eef6;padding:3px 6px}tr:hover td{background:#fcfbff}tr.sel td{background:var(--tint)}td.frozen,th.frozen{background:inherit;z-index:1;position:sticky;left:0}td.frozen{background:#fff}.cell{background:0 0;border:1px solid #0000;border-radius:7px;width:100%;padding:6px 7px}.cell:hover{border-color:var(--border);background:#fff}.sel{appearance:none;cursor:pointer;font-weight:500}.pill{color:#55526a;white-space:nowrap;background:#efeef4;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.pill.green{color:#1e7a4f;background:#ddf3e8}.pill.dgreen{color:#fff;background:#2f7d5b}.pill.blue{color:#2f5fc4;background:#dee9fd}.pill.lblue{color:#2b6a9e;background:#e3f0fb}.pill.yellow{color:#8a6310;background:#fbefcf}.pill.red{color:#a93430;background:#fadddc}.pill.violet{background:var(--tint);color:var(--accent-d)}.pill.gray{color:#55526a;background:#efeef4}.sel.green,.sel.dgreen,.sel.blue,.sel.lblue,.sel.yellow,.sel.red,.sel.violet,.sel.gray{border-radius:99px;width:auto;padding:3px 8px}.sel.green{color:#1e7a4f;background:#ddf3e8}.sel.dgreen{color:#fff;background:#2f7d5b}.sel.blue{color:#2f5fc4;background:#dee9fd}.sel.lblue{color:#2b6a9e;background:#e3f0fb}.sel.yellow{color:#8a6310;background:#fbefcf}.sel.red{color:#a93430;background:#fadddc}.sel.violet{background:var(--tint);color:var(--accent-d)}.sel.gray{color:#55526a;background:#efeef4}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:18px;display:flex;overflow:auto}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-weight:500}.tabs button.on{color:var(--accent-d);border-color:var(--accent)}.bar{background:#efeef4;border-radius:9px;height:8px;overflow:hidden}.bar i{background:var(--accent);border-radius:9px;height:100%;display:block}.bar i.green{background:var(--ok)}.bar i.red{background:var(--bad)}.bar i.blue{background:var(--blue)}.bar i.yellow{background:var(--warn)}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--r);background:#fff;padding:36px}.toasts{z-index:99;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:#fff;box-shadow:var(--sh);border-radius:10px;padding:9px 16px}.kanban{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;gap:12px;display:grid;overflow:auto}.col{border-radius:var(--r);background:#f4f3f9;min-height:200px;padding:10px}.col.over{outline:2px dashed var(--accent)}.kcard{border:1px solid var(--border);cursor:grab;background:#fff;border-radius:10px;margin-bottom:8px;padding:9px 11px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .input{width:auto;min-width:130px}.warn-box{color:#7a5a12;background:#fff7e6;border:1px solid #f3dda6;border-radius:10px;margin-bottom:10px;padding:8px 12px}.err-box{color:#a93430;background:#fdecec;border:1px solid #f3bbb9;border-radius:10px;margin-bottom:10px;padding:8px 12px}.matrix td,.matrix th{text-align:left;padding:7px 10px}.matrix td.diff{background:#fff9e8}.matrix td.fail{color:#a93430;background:#fdecec}.matrix td.un{color:var(--gray)}.split{grid-template-columns:280px 1fr;gap:18px;display:grid}@media (width<=900px){.split{grid-template-columns:1fr}.main{padding:20px 16px}}.list-item{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;margin-bottom:8px;padding:10px 12px}.list-item.on{border-color:var(--accent);background:var(--tint)}.hh{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:8px}.hh>summary{cursor:pointer;align-items:center;gap:10px;padding:10px 14px;display:flex}.hh .body{padding:0 14px 12px}.lines td{padding:5px 8px}.row>.input:not([style*=width]){flex:1;width:auto;min-width:140px}
