:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #243043;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--accent-2: #34d399;--warn: #f59e0b;--danger: #f87171;--border: #334155}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:16px}.sidebar h1{font-size:16px;margin:0 0 24px}.sidebar nav a{display:block;padding:8px 10px;border-radius:6px;color:var(--text);margin-bottom:4px}.sidebar nav a.active,.sidebar nav a:hover{background:var(--panel-2);text-decoration:none}.main{padding:24px;max-width:1400px}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}.card h2{margin:0 0 12px;font-size:16px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.kpi{background:var(--panel-2);padding:12px;border-radius:6px}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{font-size:20px;font-weight:600;margin-top:4px}label{display:block;font-size:12px;color:var(--muted);margin-top:8px}input,select,textarea{width:100%;padding:8px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:13px;font-family:inherit}input:focus,select:focus{outline:none;border-color:var(--accent)}button{background:var(--accent);color:var(--bg);border:0;padding:8px 14px;border-radius:4px;font-weight:600;cursor:pointer;font-size:13px}button.secondary{background:var(--panel-2);color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500}.numeric{text-align:right;font-variant-numeric:tabular-nums}.status-DRAFT{color:var(--muted)}.status-SUBMITTED{color:var(--warn)}.status-APPROVED{color:var(--accent-2)}.status-REJECTED{color:var(--danger)}.muted{color:var(--muted)}.error{color:var(--danger);margin-top:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 900px){.grid-2,.grid-3{grid-template-columns:1fr}}
