:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #334155;--text: #e2e8f0;--text-dim: #94a3b8;--border: #334155;--accent: #3b82f6;--accent-hover: #2563eb;--danger: #ef4444;--success: #10b981;--warn: #f59e0b;--radius: 6px;--font-mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:6px 14px;border-radius:var(--radius);font:inherit;transition:background .1s}button:hover:not(:disabled){background:var(--panel-2)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.small{padding:3px 8px;font-size:12px}input,select,textarea{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-dim);font-weight:500;background:var(--panel);position:sticky;top:0}tbody td{padding:8px 10px;border-bottom:1px solid var(--border)}tbody tr:hover{background:#ffffff05}.app-root{display:flex;height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:16px 0;display:flex;flex-direction:column;gap:4px}.sidebar .brand{padding:8px 16px 16px;font-weight:600;font-size:16px;border-bottom:1px solid var(--border);margin-bottom:8px}.sidebar .brand-sub{display:block;font-size:11px;color:var(--text-dim);font-weight:400}.sidebar .nav-link{display:flex;align-items:center;gap:8px;padding:8px 16px;color:var(--text-dim);border-left:3px solid transparent}.sidebar .nav-link:hover{color:var(--text);background:#ffffff08}.sidebar .nav-link.active{color:var(--text);border-left-color:var(--accent);background:#3b82f61a}.sidebar .who{margin-top:auto;padding:8px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-dim)}.sidebar .who .role{display:inline-block;margin-left:6px;padding:1px 6px;background:var(--accent);color:#fff;border-radius:3px;font-size:10px;text-transform:uppercase}.main{flex:1;overflow:auto;padding:20px 24px}.main h1{margin:0 0 16px;font-size:20px;font-weight:600}.main h2{margin:16px 0 8px;font-size:15px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px}.kpi .label{font-size:11px;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em}.kpi .value{font-size:24px;font-weight:600;margin-top:4px;font-family:var(--font-mono)}.kpi .value.red{color:var(--danger)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;text-transform:uppercase}.badge.active{background:#10b98133;color:var(--success)}.badge.frozen{background:#f59e0b33;color:var(--warn)}.badge.closed{background:#ef444433;color:var(--danger)}.badge.pending{background:#3b82f633;color:var(--accent)}.badge.approved{background:#10b98133;color:var(--success)}.badge.rejected{background:#ef444433;color:var(--danger)}.badge.role-user{background:#475569;color:var(--text)}.badge.role-agent{background:#4c1d95;color:#ddd6fe}.badge.role-admin{background:#7c2d12;color:#fed7aa}.badge.role-super_admin{background:#7f1d1d;color:#fecaca}.mono{font-family:var(--font-mono);font-size:12px}.error-banner{background:#ef444426;border:1px solid var(--danger);color:#fecaca;padding:10px 14px;border-radius:var(--radius);margin-bottom:12px;font-size:13px}.form-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.form-row label{min-width:140px;color:var(--text-dim);font-size:13px}.form-row input,.form-row select{flex:1}.dialog-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;min-width:400px;max-width:700px;max-height:80vh;overflow:auto}.dialog h3{margin:0 0 12px;font-size:16px}.dialog .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.login-page{display:flex;align-items:center;justify-content:center;height:100vh}.login-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:32px;min-width:340px}.login-panel h1{margin:0 0 4px;font-size:20px}.login-panel .sub{color:var(--text-dim);font-size:13px;margin-bottom:20px}.calc{display:grid;grid-template-columns:auto 60px auto 40px;gap:8px;align-items:center;max-width:480px}.calc .label{color:var(--text-dim)}.calc .lock{cursor:pointer;padding:4px 6px;border-radius:4px;user-select:none;text-align:center}.calc .lock.locked{background:#3b82f633;color:var(--accent)}.calc .lock.flex{background:#f59e0b33;color:var(--warn)}.calc .sum-row{grid-column:1 / -1;padding:8px 0;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono)}.calc .sum-row.invalid{color:var(--danger)}
