:root{--bg: #0f1117;--surface: #1a1d27;--surface-hover: #232734;--border: #2d3142;--text: #e4e6eb;--text-muted: #8b8f9e;--accent: #4a9eff;--accent-hover: #6bb0ff;--success: #4caf50;--warning: #ff9800;--error: #f44336;--radius: 8px;--spacing: 16px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:8px 16px;z-index:1000}.skip-link:focus{left:0}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);padding:var(--spacing);flex-shrink:0}.sidebar-header h1{font-size:1.1rem;margin-bottom:var(--spacing)}.sidebar nav ul{list-style:none}.sidebar nav li{margin-bottom:4px}.nav-link{display:block;padding:8px 12px;color:var(--text);text-decoration:none;border-radius:var(--radius);transition:background .15s}.nav-link:hover{background:var(--surface-hover)}.nav-link.active{background:var(--accent);color:#fff}.main-area{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:12px var(--spacing);display:flex;justify-content:space-between;align-items:center}.mode-badge-container{display:flex;align-items:center;gap:8px}.mode-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.mode-badge.mode-dry_run{background:var(--text-muted);color:#fff}.mode-badge.mode-paper{background:var(--accent);color:#fff}.mode-badge.mode-live{background:var(--error);color:#fff}.user-menu{display:flex;align-items:center;gap:12px}.user-info{color:var(--text-muted);font-size:.875rem}.logout-btn{background:transparent;color:var(--text);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius);cursor:pointer;font-size:.875rem}.logout-btn:hover{background:var(--surface-hover)}.page-content{padding:var(--spacing);overflow-y:auto}h1{font-size:1.5rem;margin-bottom:var(--spacing)}h2{font-size:1.2rem;margin-bottom:12px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing)}.card.warning{border-color:var(--warning)}dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}dt{color:var(--text-muted);font-size:.875rem}dd{font-size:.875rem}.data-table{width:100%;border-collapse:collapse;margin-top:var(--spacing)}.data-table th,.data-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);font-size:.875rem}.data-table th{color:var(--text-muted);font-weight:600}.row-warning{background:#ff980014}.row-muted{opacity:.6}.loading,.empty,.error{padding:var(--spacing);text-align:center}.error{color:var(--error)}.stale-warning{background:#ff98001a;color:var(--warning);padding:8px 12px;border-radius:var(--radius);margin-bottom:var(--spacing)}.login-page,.mfa-page{max-width:400px;margin:80px auto;padding:var(--spacing)}.login-form,.mfa-form{display:flex;flex-direction:column;gap:12px;margin-top:var(--spacing)}.login-form input,.mfa-form input{padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:1rem}button{background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:var(--radius);cursor:pointer;font-size:.875rem;min-height:44px}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.filters{display:flex;gap:12px;align-items:center;margin-bottom:var(--spacing);flex-wrap:wrap}.filters select,.filters input{padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.step-up-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.step-up-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing);max-width:400px;width:90%}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:var(--spacing)}.pagination{display:flex;gap:12px;margin-top:var(--spacing)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}code{background:var(--surface-hover);padding:2px 6px;border-radius:4px;font-size:.85em}@media (max-width: 768px){.app-layout{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.card-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.banner{padding:12px var(--spacing);font-weight:600;text-align:center}.banner.critical{background:var(--error);color:#fff}.banner.warning{background:var(--warning);color:#fff}.banner.info{background:var(--accent);color:#fff}.banner-dismiss{float:right;background:transparent;color:inherit;border:1px solid rgba(255,255,255,.4);padding:2px 10px;min-height:auto;font-size:.75rem}.control-card{border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing);margin-bottom:var(--spacing);background:var(--surface)}.control-card.active{border-color:var(--error)}.control-card .control-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.control-card .control-meta{font-size:.8125rem;color:var(--text-muted);margin-top:8px}.control-card .control-actions{display:flex;gap:8px;margin-top:12px}.control-card .control-actions button.danger{background:var(--error)}.control-card .control-actions button.success{background:var(--success)}.user-row,.session-row,.audit-row,.role-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;padding:10px 0;border-bottom:1px solid var(--border);font-size:.875rem}.user-row .actions,.session-row .actions,.audit-row .actions{display:flex;gap:8px}.stale-warning{color:var(--warning)}table.data-table{width:100%;border-collapse:collapse;font-size:.875rem}table.data-table th,table.data-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}table.data-table th{color:var(--text-muted);font-weight:600}.draft-form,.config-row,.config-diff{margin-bottom:var(--spacing)}.config-row{display:grid;grid-template-columns:200px 1fr 1fr 120px;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.875rem}.config-row.high-risk{border-color:var(--warning)}.config-row.critical-risk{border-color:var(--error)}.form-field{margin-bottom:12px}.form-field label{display:block;margin-bottom:4px;font-size:.875rem;color:var(--text-muted)}.form-field input,.form-field select,.form-field textarea{width:100%;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.875rem}.form-field textarea{min-height:80px;font-family:inherit}.btn-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.btn-primary{background:var(--accent);color:#fff}.btn-danger{background:var(--error)}.btn-success{background:var(--success)}.btn-sm{font-size:.8125rem;padding:4px 10px}.btn-link{background:transparent;color:var(--accent);padding:4px 0;min-height:auto;font-size:.875rem;text-decoration:underline}.banner.success{background:var(--success);color:#fff}.liquidation-preview{margin-top:12px;padding:12px;background:var(--surface-hover);border:1px solid var(--border);border-radius:6px}.liquidation-preview dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin-bottom:12px}.liquidation-preview dt{font-size:.8125rem;color:var(--text-muted)}.liquidation-preview .control-actions{display:flex;gap:8px;margin-top:12px}.hint{font-size:.8125rem;color:var(--text-muted);margin:8px 0}.permission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;font-size:.8125rem}.permission-grid .perm-item{padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface)}.role-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;background:var(--surface-hover);margin-right:4px}.role-badge.admin{background:var(--error);color:#fff}.role-badge.trader{background:var(--accent);color:#fff}.role-badge.auditor{background:var(--success);color:#fff}.code-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px;font-family:monospace;font-size:.8125rem;white-space:pre-wrap;overflow-x:auto}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:var(--spacing)}.tabs button{background:transparent;color:var(--text-muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 16px;min-height:auto}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.empty-state{padding:var(--spacing);text-align:center;color:var(--text-muted)}.mode-switch-panel{border-color:var(--border)}.mode-current-state{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:12px 0;font-size:.875rem}.mode-current-state dt{color:var(--text-muted);font-weight:600}.mode-current-state dd{margin:0}.mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:12px}.mode-card{border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:var(--surface)}.mode-card-current{border-color:var(--accent);border-width:2px}.mode-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.mode-card-header h4{margin:0}.mode-card-desc{font-size:.8125rem;color:var(--text-muted);margin-bottom:12px}.mode-prereqs{list-style:none;padding:0;margin:0 0 12px;font-size:.8125rem}.mode-prereqs li{padding:2px 0}.prereq-met{color:var(--success)}.prereq-unmet{color:var(--error)}.mode-env-vars label{font-size:.75rem;color:var(--text-muted);display:block;margin-bottom:4px}.mode-env-vars .code-block{font-size:.75rem;padding:8px;margin:0}.role-badge.viewer{background:var(--text-muted);color:#fff}
