body,html{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#0b1020;color:#edf2ff;min-height:100%}a{color:inherit;text-decoration:none}code{font-size:.9em;background:#1a1f36;padding:2px 6px;border-radius:4px}.mono{font-family:ui-monospace,monospace}.app-layout{display:flex;min-height:100vh}.app-sidebar{width:220px;flex-shrink:0;background:#12172a;border-right:1px solid #2d3748;display:flex;flex-direction:column}.app-brand{padding:20px 16px;font-weight:700;font-size:14px;color:#a3bffa;border-bottom:1px solid #2d3748}.app-nav{display:flex;flex-direction:column;padding:12px 8px;gap:4px;flex:1 1}.app-nav-link{padding:10px 12px;border-radius:6px;font-size:14px;color:#cbd5f5}.app-nav-link:hover{background:#1a223f;color:#fff}.app-nav-link.subtle{font-size:13px;color:#718096}.app-sidebar-footer{padding:12px 8px 20px;border-top:1px solid #2d3748}.app-main{flex:1 1;min-width:0}.app-page-header{padding:24px 28px 0}.app-page-header h1{margin:0;font-size:22px;font-weight:600}.app-page-body{padding:16px 28px 32px}.page-intro{margin:0 0 20px;color:#a0aec0;font-size:14px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:14px;gap:14px}.kpi-card{background:#12172a;border:1px solid #2d3748;border-radius:8px;padding:16px}.kpi-value{font-size:26px;font-weight:700;color:#fff}.kpi-label{margin-top:6px;font-size:12px;color:#a0aec0;line-height:1.35}.dashboard-section-title{margin:24px 0 10px;font-size:15px;font-weight:600;color:#cbd5f5}.flow-filters{margin-top:10px}.table-wrap{overflow-x:auto;border:1px solid #2d3748;border-radius:8px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table td,.data-table th{text-align:left;padding:10px 12px;border-bottom:1px solid #2d3748}.data-table th{background:#12172a;color:#a0aec0;font-weight:600}.data-table tbody tr:hover{background:#141a30}.table-link{color:#7c9cff;text-decoration:underline;text-underline-offset:3px}.table-link:hover{color:#a3bffa}.back-link{display:inline-block;margin-bottom:16px;font-size:14px;color:#7c9cff;text-decoration:underline;text-underline-offset:3px}.back-link:hover{color:#a3bffa}.detail-panel{background:#12172a;border:1px solid #2d3748;border-radius:8px;padding:20px 24px;max-width:720px}.detail-row{display:grid;grid-template-columns:minmax(140px,32%) 1fr;grid-gap:8px 20px;gap:8px 20px;padding:10px 0;border-bottom:1px solid #2d3748;font-size:14px;align-items:start}.detail-row:last-child{border-bottom:none}.detail-label{color:#a0aec0;font-weight:500}.detail-value{color:#edf2ff;word-break:break-word}.detail-value pre.json-block{margin:0;padding:12px;background:#0b1020;border-radius:6px;font-size:12px;line-height:1.45;max-height:240px;overflow:auto;border:1px solid #2d3748}.data-table .empty-cell{color:#718096;text-align:center;padding:24px}.alert{padding:14px 16px;border-radius:8px;font-size:14px;line-height:1.5}.alert-error{background:#3b1c1c;border:1px solid #742a2a;color:#fed7d7}.alert-hint{margin:10px 0 0;font-size:13px;color:#feb2b2}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.login-card{width:100%;max-width:400px;background:#12172a;border:1px solid #2d3748;border-radius:10px;padding:28px}.login-card h1{margin:0 0 8px;font-size:22px}.login-hint{margin:0 0 20px;font-size:13px;color:#a0aec0;line-height:1.45}.login-form{gap:16px}.login-form,.login-form .field{display:flex;flex-direction:column}.login-form .field{gap:6px;font-size:13px;color:#cbd5f5}.login-form input{padding:10px 12px;border-radius:6px;border:1px solid #4a5568;background:#0b1020;color:#fff;font-size:14px}.login-error{margin:0;font-size:13px;color:#fc8181}.btn-primary{margin-top:4px;padding:12px 16px;border:none;border-radius:6px;background:#4c6ef5;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.session-actions-block{margin-bottom:20px}.session-actions-block .alert{margin-bottom:12px}.station-actions-block{margin-bottom:20px}.station-actions-block .alert{margin-bottom:12px}.muted-note{color:#a0aec0;font-size:13px}.btn-secondary{padding:12px 16px;border-radius:6px;border:1px solid #4a5568;background:transparent;color:#cbd5f5;font-size:14px;font-weight:600;cursor:pointer}.btn-secondary:hover:not(:disabled){background:#1a223f;border-color:#718096;color:#fff}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-danger-outline{border-color:#9b2c2c;color:#feb2b2}.btn-danger-outline:hover:not(:disabled){background:#3b1c1c;border-color:#c53030;color:#fff}.session-create-form{display:flex;flex-direction:column;gap:14px}.session-create-form .field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#cbd5f5}.session-create-form input,.session-create-form select{padding:10px 12px;border-radius:6px;border:1px solid #4a5568;background:#0b1020;color:#fff;font-size:14px}.incident-form{display:flex;flex-direction:column;gap:14px}.incident-form .field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#cbd5f5}.incident-form input,.incident-form select,.incident-form textarea{padding:10px 12px;border-radius:6px;border:1px solid #4a5568;background:#0b1020;color:#fff;font-size:14px}.incident-form textarea{resize:vertical}.inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.incidents-list{margin-top:16px}.refund-form{gap:14px}.refund-form,.refund-form .field{display:flex;flex-direction:column}.refund-form .field{gap:6px;font-size:13px;color:#cbd5f5}.refund-form input,.refund-form select{padding:10px 12px;border-radius:6px;border:1px solid #4a5568;background:#0b1020;color:#fff;font-size:14px}.status-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.status-chip{border:1px solid #2d3748;border-radius:999px;padding:6px 10px;font-size:12px;color:#cbd5f5;background:#12172a}.status-chip:hover{border-color:#4a5568;color:#fff}.status-chip.active{border-color:#4c6ef5;color:#fff;background:#1a223f}.station-live-actions{display:flex;flex-wrap:wrap;gap:10px}.station-live-session{display:flex;flex-direction:column;gap:4px}.session-countdown{display:inline-block;font-size:12px;color:#9ae6b4}.session-countdown.expired{color:#feb2b2}