:root{--bg: #0e1116;--card: #151a22;--text: #e6edf3;--muted: #9aa7b2;--primary: #2f81f7;--primary-contrast: #ffffff;--border: #27313d;--row-alt: #11161d;--status: #ffc107;--error: #ff6b6b;--success: #22c55e}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Helvetica Neue,Arial,sans-serif;line-height:1.4}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:#0b0e13}.topbar h1{margin:0;font-size:20px;text-align:center;flex:1}.topbar nav{min-width:80px;text-align:right}.container{max-width:98vw;margin:24px auto;padding:0 16px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px}.center{display:flex;align-items:center;justify-content:center;min-height:40vh}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);border-radius:8px;padding:10px 14px;background:#1b2430;color:var(--text);cursor:pointer}button.primary{background:var(--primary);border-color:#1e6eea;color:var(--primary-contrast);font-weight:600}button.secondary:hover,button.primary:hover{filter:brightness(1.05)}.primary:disabled,.secondary:disabled,button:disabled{opacity:.6;cursor:not-allowed;filter:none}.link{color:var(--muted);text-decoration:none}.link:hover{color:var(--text)}.table-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;min-width:900px;border-collapse:collapse;font-size:14px;table-layout:auto}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}.table thead th{text-align:left;color:var(--muted);font-weight:600}.table tbody tr:nth-child(2n){background:var(--row-alt)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:#10161f;font-size:12px}.badge.status{border-color:#665200;background:#1a1300;color:var(--status)}.badge-success{border-color:#0f4d2e;background:#0a2b1c;color:#22c55e}.status{margin:8px 0 12px;color:var(--muted)}.status.error{color:var(--error)}.status.success{color:var(--success)}.subtable{width:100%;border-collapse:collapse;font-size:12px;background:transparent}.subtable th,.subtable td{padding:4px 6px;border-bottom:1px solid var(--border)}.subtable thead th{color:var(--muted);font-weight:600;text-align:left}.subtable input{width:100%;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:#0f1420;color:var(--text)}.col-location{width:140px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:720px;background:var(--card);border:1px solid var(--border);border-radius:10px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal-body{padding:12px 16px;max-height:70vh;overflow:auto}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 14px;align-items:center}.form-grid input{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:#0f1420;color:var(--text)}.error-text{color:var(--error);margin-left:8px;font-size:12px}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
