:root{color-scheme:dark;--bg: #0c1116;--bg-elevated: #141b24;--bg-muted: #1a2330;--border: #2a3544;--text: #e8eef5;--text-muted: #8b9cb0;--accent: #3d9cf0;--accent-dim: #2563a8;--success: #34c759;--warning: #f5a524;--danger: #ef4444;--radius: 10px;--font: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font);background:var(--bg);color:var(--text)}#root{min-height:100vh}a{color:var(--accent)}button{font-family:inherit;cursor:pointer}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.app-brand{font-weight:700;font-size:1.05rem;letter-spacing:-.02em}.app-brand span{color:var(--text-muted);font-weight:500;margin-left:.35rem}.app-main{flex:1;display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:0;min-height:0}@media (max-width: 960px){.app-main{grid-template-columns:1fr}}.panel{border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:var(--bg)}@media (max-width: 960px){.panel{border-right:none;border-bottom:1px solid var(--border);max-height:42vh}}.panel-scroll{overflow:auto;flex:1}.toolbar{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:var(--bg-muted)}.input,.select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:.45rem .65rem;font-size:.9rem;min-width:0}.input:focus,.select:focus{outline:2px solid var(--accent-dim);border-color:var(--accent)}.btn{border:none;border-radius:var(--radius);padding:.5rem .9rem;font-size:.875rem;font-weight:600;transition:background .15s,opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#061018}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-muted);color:var(--text)}.btn-success{background:var(--success);color:#041208}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);font-weight:500;padding:.35rem .55rem;font-size:.8rem}.table-wrap{overflow:auto}table.req-table{width:100%;border-collapse:collapse;font-size:.85rem}.req-table th,.req-table td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.req-table th{color:var(--text-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:var(--bg);z-index:1}.req-table tr{cursor:pointer}.req-table tr:hover td{background:var(--bg-muted)}.req-table tr.active td{background:#3d9cf01f;box-shadow:inset 3px 0 0 var(--accent)}.detail{padding:1rem 1.25rem 2rem;overflow:auto;background:var(--bg-elevated)}.detail h2{margin:0 0 .25rem;font-size:1.25rem}.detail-meta{color:var(--text-muted);font-size:.85rem;margin-bottom:1rem}.card{background:var(--bg);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);padding:1rem;margin-bottom:1rem}.card h3{margin:0 0 .75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.status-pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:var(--bg-muted);border:1px solid var(--border)}.status-submitted{border-color:#6b7280;color:#d1d5db}.status-special_team_assigned{border-color:#8b5cf6;color:#c4b5fd}.status-site_visit_scheduled{border-color:var(--accent);color:#93c5fd}.status-contractor_found{border-color:#22c55e;color:#86efac}.status-work_started{border-color:var(--warning);color:#fcd34d}.status-completed{border-color:var(--success);color:#bbf7d0}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(61,156,240,.18),transparent),var(--bg)}.login-card{width:100%;max-width:400px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:0 24px 80px #00000073}.login-card h1{margin:0 0 .35rem;font-size:1.5rem}.login-card p{margin:0 0 1.5rem;color:var(--text-muted);font-size:.9rem;line-height:1.5}.field{margin-bottom:1rem}.field label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.35rem}.field .input{width:100%}.hint{font-size:.8rem;color:var(--text-muted);margin-top:.75rem}.error-banner{background:#ef44441f;border:1px solid var(--danger);color:#fecaca;padding:.6rem .85rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.875rem}.muted{color:var(--text-muted);font-size:.85rem}.mono{font-family:ui-monospace,monospace;font-size:.82rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media (max-width: 640px){.two-col{grid-template-columns:1fr}}.compact-table{width:100%;border-collapse:collapse;font-size:.82rem}.compact-table th,.compact-table td{padding:.4rem .35rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.compact-table th{color:var(--text-muted);font-weight:600;font-size:.7rem}
