:root{--bg:#f5f7f6;--surface:#fff;--ink:#17211d;--muted:#69756f;--line:#dfe6e2;--brand:#176a4a;--brand2:#e8f4ee;--danger:#b83232;--shadow:0 8px 28px rgba(18,43,32,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,"Segoe UI",sans-serif;font-size:14px}.topbar{height:64px;background:#173b2d;color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1180px)/2));gap:32px;position:sticky;top:0;z-index:5}.brand{font-size:18px;font-weight:800;color:#fff;text-decoration:none}.topbar nav{display:flex;gap:8px;flex:1}.topbar nav a,.topbar .link{color:#dbe8e2;text-decoration:none;padding:9px 12px;border-radius:8px;background:none;border:0}.topbar nav a:hover{background:#24533f}.container{max-width:1180px;margin:0 auto;padding:32px 24px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}h1{font-size:26px;margin:0 0 6px}h2{font-size:17px;margin:0 0 16px}.muted,small{color:var(--muted);display:block}.button,button{border:1px solid var(--line);border-radius:9px;padding:10px 15px;background:#fff;color:var(--ink);text-decoration:none;cursor:pointer;font:inherit}.primary{background:var(--brand);border-color:var(--brand);color:#fff}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stats article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stats b{font-size:28px;display:block}.stats span{color:var(--muted)}.stats .warn b{color:var(--danger)}.grid{display:grid;gap:18px}.two{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr 1fr}.panel-head,.list-row,.task-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.list-row,.task-row{padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.task-row.overdue{border-right:4px solid var(--danger);padding-right:12px}.task-row a{display:block;color:var(--brand);margin-top:4px}.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin-bottom:16px}input,select,textarea{width:100%;border:1px solid #ccd7d1;border-radius:9px;background:#fff;padding:11px;font:inherit;color:inherit;margin-top:6px}input:focus,select:focus,textarea:focus{outline:2px solid #9ecdb8;border-color:var(--brand)}label{font-weight:600}.stack{display:grid;gap:14px}.compact{margin-top:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.actions{display:flex;justify-content:flex-end;gap:10px}.narrow{max-width:760px;margin:auto}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{text-align:right;padding:14px 16px;border-bottom:1px solid var(--line)}td a{text-decoration:none;color:inherit}.duplicate{background:#fff2f2}.badge{display:inline-block;background:var(--brand2);color:var(--brand);padding:4px 8px;border-radius:99px;font-size:12px}.badge.danger,.alert.danger{background:#fff0f0;color:#8b2424}.alert{padding:14px 16px;border-radius:10px;margin-bottom:18px}.alert a{color:inherit;margin-right:8px}.empty{color:var(--muted);text-align:center;padding:18px}dl{display:grid;grid-template-columns:120px 1fr;gap:12px;margin:0}dt{color:var(--muted)}dd{margin:0}.timeline{border-right:2px solid #bbd8ca;padding:0 14px 18px}.auth-card{max-width:420px;margin:10vh auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.logo-mark{width:44px;height:44px;border-radius:12px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:bold;margin-bottom:20px}em{color:var(--danger);font-style:normal}@media(max-width:760px){.topbar{height:auto;padding:12px 16px;flex-wrap:wrap;gap:8px}.topbar nav{order:3;width:100%;overflow:auto}.container{padding:22px 14px}.stats{grid-template-columns:1fr 1fr}.two,.detail-grid,.form-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.page-head{align-items:flex-start}.full{grid-column:auto}th:nth-child(4),td:nth-child(4){display:none}}
