
:root{
    --bg:#f4f6f8;
    --panel:#ffffff;
    --text:#1f2933;
    --muted:#697386;
    --line:#dfe3e8;
    --accent:#0b63ce;
    --accent-dark:#084f9f;
    --good:#177245;
    --warn:#a45a00;
    --danger:#a82828;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1280px;margin:0 auto;padding:0 18px}
.topbar{background:#17202a;color:#fff;border-bottom:4px solid var(--accent)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px}
.brand{font-size:20px;font-weight:700;color:#fff}
.topbar nav{display:flex;gap:14px;flex-wrap:wrap}
.topbar nav a{color:#fff}
main.wrap{padding-top:24px;padding-bottom:50px}
h1{font-size:28px;margin:0 0 18px}
h2{font-size:21px;margin:28px 0 12px}
h3{font-size:17px;margin:0 0 10px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;margin-bottom:18px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px}
.kpi .num{font-size:30px;font-weight:700;margin-top:4px}
.kpi .label{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.03em}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:5px;padding:9px 13px;cursor:pointer;font:inherit}
.btn:hover{background:var(--accent-dark);text-decoration:none}
.btn.secondary{background:#59636e}
.btn.light{background:#eef2f5;color:#27313a;border:1px solid #d7dde2}
.btn.danger{background:var(--danger)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:10px 9px;text-align:left;vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#52606d;background:#f7f9fb}
tr:hover td{background:#fbfcfd}
small,.muted{color:var(--muted)}
.prio{display:inline-block;border-radius:999px;padding:3px 8px;font-weight:700;background:#e9edf1}
.prio-aplus{background:#ffd7d7;color:#841b1b}
.prio-a{background:#ffe8c2;color:#814900}
.prio-b{background:#ddecff;color:#185a9d}
.prio-c{background:#e8ecef;color:#53606a}
.status{font-weight:700}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.field label{display:block;font-weight:700;margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;padding:9px;border:1px solid #cbd2d9;border-radius:5px;background:#fff;font:inherit}
.field textarea{min-height:100px;resize:vertical}
.field.full{grid-column:1/-1}
.help{font-size:12px;color:var(--muted);margin-top:4px}
.flash{background:#dff3e7;border:1px solid #b7dfc7;color:#1e5c38;padding:10px 12px;border-radius:6px;margin-bottom:18px}
.alert{background:#fff1d6;border:1px solid #efcf8e;color:#775114;padding:12px;border-radius:6px;margin-bottom:18px}
.error{background:#fbe1e1;border:1px solid #edbaba;color:#7c2323;padding:12px;border-radius:6px;margin-bottom:18px}
.note-box{background:#f8fafb;border-left:4px solid var(--accent);padding:12px 14px;margin:10px 0}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.detail-row{margin-bottom:9px}
.detail-row .key{display:block;color:var(--muted);font-size:12px;text-transform:uppercase}
.detail-row .val{display:block;font-size:15px;margin-top:2px}
.footer{border-top:1px solid var(--line);color:var(--muted);padding:18px 0 30px;background:#fff}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.filters .field{min-width:160px;flex:1}
.filters .search{flex:2;min-width:260px}
.overdue{font-weight:700;color:var(--danger)}
.today{font-weight:700;color:var(--warn)}
@media(max-width:900px){
    .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .form-grid,.detail-grid{grid-template-columns:1fr}
    .topbar-inner{align-items:flex-start;flex-direction:column;padding-top:12px;padding-bottom:12px}
}
@media(max-width:520px){
    .grid{grid-template-columns:1fr}
    .wrap{padding-left:10px;padding-right:10px}
}
