:root{--bg:#f5f6f8;--panel:#fff;--border:#e2e5eb;--text:#1f2430;--muted:#6b7280;--accent:#2f6feb;--accent-soft:#e8effd;--danger:#d64545;--ok:#1f9254;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}#root{min-height:100vh}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;background:#1c2333;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.brand{font-size:15px;font-weight:600}.role-switch{align-items:center;gap:10px;display:flex}.role-switch select{border:none;border-radius:6px;padding:4px 8px}.role-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.body{flex:1;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:240px;padding:14px 0;display:flex}.nav-item{color:var(--text);border-left:3px solid #0000;padding:9px 18px;font-size:13.5px;text-decoration:none}.nav-item:hover{background:var(--accent-soft)}.nav-item.active{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.content{text-align:left;flex:1;max-width:1200px;padding:22px 28px}h1{letter-spacing:normal;margin:0 0 16px;font-size:20px;font-weight:600}h2{letter-spacing:normal;margin:22px 0 10px;font-size:16px;font-weight:600}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:16px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:7px 9px}th{color:var(--muted);background:#f0f2f6;font-weight:600}tr:hover td{background:#fafbfd}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}input,select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;padding:6px 9px;font-size:13px}textarea{width:100%;font-family:inherit}button{border:1px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:6px;padding:7px 14px;font-size:13px}button:hover{border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{opacity:.92;color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}.grid-form{grid-template-columns:repeat(3,1fr);gap:12px 16px;display:grid}.grid-form.cols-2{grid-template-columns:repeat(2,1fr)}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--muted);font-size:12px}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:18px 0 8px;font-size:13px;font-weight:600}.badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.ok{color:var(--ok);background:#e5f6ec}.badge.warn{color:var(--danger);background:#fdeeee}.kpi-row{flex-wrap:wrap;gap:14px;display:flex}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:10px;min-width:160px;padding:14px 18px}.kpi .value{font-size:22px;font-weight:700}.kpi .label{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.error-banner{color:var(--danger);background:#fdeeee;border:1px solid #f6c9c9;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}
