:root{--bg:#f4f6f8;--surface:#fff;--surface2:#eef2f5;--text:#18212b;--muted:#687684;--line:#dce2e7;--primary:#147d86;--primary2:#dff1f1;--danger:#b73b55;--danger2:#f9e5e9;--warn:#a35b1f;--warn2:#f8eadc;--success:#397b35;--success2:#e4f1e2;--blue:#315f9c;--blue2:#e2eafa;--shadow:0 1px 3px #12202d14;--r:10px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
:root[data-theme=dark]{--bg:#11161a;--surface:#192126;--surface2:#232d33;--text:#edf3f5;--muted:#a2afb7;--line:#344047;--primary:#62bcc3;--primary2:#203d40;--danger:#ed7b92;--danger2:#452a31;--warn:#e2a166;--warn2:#443426;--success:#94ca7c;--success2:#2c3c2a;--blue:#91b6eb;--blue2:#29384e;--shadow:0 1px 3px #0006}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.boot{padding:48px;text-align:center;color:var(--muted)}
.app{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:750;padding:8px 10px 22px}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--primary);color:white}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding:0 10px 7px}.nav{display:grid;gap:3px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:600}.nav a:hover,.nav a.active{background:var(--primary2);color:var(--primary)}.nav i{font-style:normal;width:20px;text-align:center}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:12px}.user-select,.period-select{width:100%;background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:8px}.theme{width:100%;margin-top:8px;text-align:left;background:transparent;border:0;padding:8px;color:var(--muted)}
.main{min-width:0}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:13px 24px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:20px;margin:0}.top-meta{display:flex;gap:8px;align-items:center}.chip{background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:12px}.content{padding:24px;max-width:1500px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.page-head h2{margin:0 0 4px;font-size:18px}.page-head p{margin:0;color:var(--muted)}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr)}.kpis{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;margin-bottom:16px}.kpi,.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.kpi{padding:14px}.kpi strong{display:block;font-size:25px;margin-bottom:2px}.kpi span{font-size:12px;color:var(--muted)}.kpi.danger strong{color:var(--danger)}.kpi.warn strong{color:var(--warn)}.kpi.success strong{color:var(--success)}.card{padding:17px}.card+.card{margin-top:14px}.card-title{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:12px}.muted{color:var(--muted)}.small{font-size:12px}
.table-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:auto;background:var(--surface)}table{width:100%;border-collapse:collapse}th{position:sticky;top:0;background:var(--surface2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;text-align:left;white-space:nowrap}th,td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr[data-href]{cursor:pointer}tbody tr[data-href]:hover{background:var(--primary2)}td.title{min-width:300px;max-width:520px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;white-space:nowrap;background:var(--surface2);color:var(--muted)}.badge.success{background:var(--success2);color:var(--success)}.badge.warn{background:var(--warn2);color:var(--warn)}.badge.danger{background:var(--danger2);color:var(--danger)}.badge.blue{background:var(--blue2);color:var(--blue)}.overdue{color:var(--danger);font-weight:700}
.filters{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.field{display:grid;gap:5px;min-width:140px}.field.grow{flex:1;min-width:240px}.field label{font-size:11px;color:var(--muted);font-weight:700}.field input,.field select,.field textarea,.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px}.field textarea,.form textarea{min-height:90px;resize:vertical}.btns{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:8px;padding:8px 12px;font-weight:700;background:var(--primary);color:white}.btn:hover{filter:brightness(.96)}.btn.secondary{background:var(--surface2);color:var(--text);border-color:var(--line)}.btn.danger{background:var(--danger)}.btn.ghost{background:transparent;color:var(--primary);padding:4px}.btn:disabled{opacity:.45;cursor:not-allowed}
.progress-row{display:grid;grid-template-columns:175px 1fr 45px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.progress-row:last-child{border:0}.track{height:8px;background:var(--surface2);border-radius:99px;overflow:hidden}.fill{height:100%;background:var(--primary)}.attention{border-left:3px solid var(--warn);padding:10px 12px;background:var(--surface2);border-radius:7px;margin-bottom:8px}.attention.critical{border-color:var(--danger)}
.breadcrumbs{margin-bottom:12px}.breadcrumbs a{color:var(--primary);text-decoration:none}.task-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.task-title h2{margin:4px 0 0;font-size:20px}.readonly{background:var(--surface2);border-radius:8px;padding:12px;line-height:1.55}.callout{background:var(--warn2);border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));border-radius:8px;padding:12px}.form{display:grid;gap:13px}.form label{display:grid;gap:6px;font-size:12px;font-weight:700}.radio-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.radio{border:1px solid var(--line);border-radius:8px;padding:9px;display:flex;gap:8px;align-items:center}.approval{border:1px solid var(--line);border-radius:8px;padding:12px}.approval.locked{opacity:.6}.timeline{display:grid;gap:0}.event{padding:9px 0 9px 18px;border-left:2px solid var(--line);position:relative}.event:before{content:"";position:absolute;width:8px;height:8px;background:var(--primary);border-radius:50%;left:-5px;top:14px}.attachment{display:flex;gap:8px;justify-content:space-between;padding:8px;background:var(--surface2);border-radius:7px;margin-top:6px}.drop{display:block;border:1px dashed var(--line);border-radius:8px;padding:15px;text-align:center;color:var(--muted);margin-top:8px;cursor:pointer}.drop input{display:none}
.modal-backdrop{position:fixed;inset:0;background:#0008;z-index:50;display:grid;place-items:center;padding:20px}.modal{background:var(--surface);border-radius:12px;width:min(600px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0005}.modal-head,.modal-body,.modal-foot{padding:16px 18px}.modal-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-weight:750}.modal-foot{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line)}.modal .close{border:0;background:transparent;color:var(--muted);font-size:20px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#18212b;color:#fff;border-radius:9px;padding:11px 14px;box-shadow:0 8px 30px #0005}.toast.error{background:var(--danger)}.empty{text-align:center;padding:40px;color:var(--muted)}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr}}@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-template-columns:repeat(2,1fr)}.sidebar-bottom{margin-top:14px}.topbar{position:static;padding:12px 14px}.content{padding:14px}.kpis{grid-template-columns:repeat(2,1fr)}.top-meta{display:none}.radio-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.filters,.btns,.no-print{display:none!important}.app{display:block}.content{padding:0}.card,.table-wrap{box-shadow:none}}
