:root{--ink:#17202a;--muted:#667085;--line:#d9e2ec;--bg:#f5f8fb;--panel:#fff;--brand:#0b7285;--brand2:#17324d;--gold:#d6a84f;--red:#d94141;--ok:#0f8a5f;--warn:#b7791f;--danger:#b42318;--radius:8px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}label{display:block;font-weight:700;margin:12px 0 6px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-box{width:min(430px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 20px 50px rgba(23,50,77,.08)}.auth-logo{width:260px;max-width:100%;display:block;margin:0 auto 20px}.layout{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#102638;color:#eaf6f8;padding:18px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:20px;margin-bottom:22px}.brand img{width:42px;height:42px;object-fit:contain}.nav{display:grid;gap:4px}.nav a{padding:10px 12px;border-radius:7px;color:#d8e7ef}.nav a.active,.nav a:hover{background:#173a52;color:#fff}.top{height:64px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.content{padding:24px;max-width:1480px}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(4,minmax(160px,1fr))}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.metric{font-size:28px;font-weight:900;color:var(--brand2)}.muted{color:var(--muted)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:7px;padding:9px 12px;font-weight:800;cursor:pointer}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px 11px;background:#fff;color:var(--ink)}textarea{min-height:110px;resize:vertical}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.table-wrap{overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#f8fbfd}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;background:#eef6f8;color:#075766}.badge.ok{background:#e8f7ef;color:var(--ok)}.badge.warn{background:#fff4df;color:var(--warn)}.badge.danger{background:#ffe9e7;color:var(--danger)}.flash{padding:12px 14px;border-radius:7px;margin-bottom:16px;border:1px solid #bde7d3;background:#edfdf5;color:#067647}.flash.error{border-color:#f4b8b0;background:#fff0ef;color:#b42318}.tabs{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.tabs a{border:1px solid var(--line);padding:8px 10px;border-radius:7px;background:#fff;font-weight:800}.tabs a.active{background:var(--brand2);color:#fff}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{min-height:110px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px}.day strong{display:block;margin-bottom:7px}.event{font-size:12px;margin:4px 0;padding:5px;border-left:3px solid var(--brand);background:#eff8fb}.lang a{font-weight:800;color:var(--brand)}.small{font-size:12px}.file-list{padding-left:18px}.status-open{color:#0b7285}.status-closed{color:#0f8a5f}.status-urgent{color:#b42318}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.cards,.cols,.cols3{grid-template-columns:1fr}.top{position:relative}.content{padding:16px}.calendar{grid-template-columns:1fr}.day{min-height:auto}}
