:root{--dm-tower-night: #0b1b2b;--dm-hangar: #13263a;--dm-taxiway: #1e3a55;--dm-amber: #f5a524;--dm-amber-ink: #b45309;--dm-cyan: #4cc9f0;--dm-slate-900: #0f172a;--dm-slate-700: #334155;--dm-slate-500: #5b6b80;--dm-slate-400: #94a3b8;--dm-slate-300: #cbd5e1;--dm-slate-200: #e5eaf0;--dm-ground: #f6f8fa;--dm-surface: #ffffff;--dm-cleared: #1f7a47;--dm-cleared-bg: #e6f4ec;--dm-holding: #b45309;--dm-holding-bg: #fdf1e1;--dm-grounded: #c2261b;--dm-grounded-bg: #fbe9e7;--dm-info: #0b6bcb;--dm-info-bg: #e7f0fa;--dm-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--dm-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--dm-radius: 10px;--dm-radius-lg: 12px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--dm-ground);color:var(--dm-slate-900);font-family:var(--dm-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--dm-info)}h1,h2,h3{margin:0;font-weight:600;line-height:1.2}h1{font-size:26px}h2{font-size:18px}h3{font-size:15px}code,.mono{font-family:var(--dm-mono);font-size:13px}.muted{color:var(--dm-slate-500)}.small{font-size:13px}.label{font-family:var(--dm-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dm-slate-500)}.page{display:flex;flex-direction:column;gap:20px;max-width:1200px}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.page-head .actions,.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.stack{display:flex;flex-direction:column;gap:12px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card{background:var(--dm-surface);border:1px solid var(--dm-slate-200);border-radius:var(--dm-radius-lg);padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}.card-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}.stat{font-size:26px;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:8px;border:1px solid transparent;font:600 15px var(--dm-sans);cursor:pointer;text-decoration:none;background:var(--dm-tower-night);color:#fff;white-space:nowrap}.btn:hover{background:var(--dm-taxiway)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:var(--dm-surface);color:var(--dm-slate-900);border-color:var(--dm-slate-300)}.btn.secondary:hover{background:var(--dm-slate-200)}.btn.danger{background:var(--dm-surface);color:var(--dm-grounded);border-color:var(--dm-slate-300)}.btn.danger:hover{background:var(--dm-grounded-bg)}.btn.link{background:none;color:var(--dm-info);padding:0 6px}.btn.link:hover{text-decoration:underline}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:13px;font-weight:600;color:var(--dm-slate-700)}.field .hint{font-size:13px;color:var(--dm-slate-500);font-weight:400}input,select,textarea{font:inherit;color:inherit;min-height:44px;padding:10px 12px;border:1px solid var(--dm-slate-300);border-radius:8px;background:var(--dm-surface);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--dm-info);outline-offset:1px;border-color:var(--dm-info)}input[type=checkbox]{width:20px;min-height:20px;height:20px;accent-color:var(--dm-tower-night)}textarea{min-height:120px;resize:vertical}textarea.code{font-family:var(--dm-mono);font-size:13px;min-height:320px;tab-size:2}.check{display:flex;align-items:center;gap:10px;min-height:44px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}:focus-visible{outline:2px solid var(--dm-info);outline-offset:2px}.alert{border-radius:var(--dm-radius);padding:12px 14px;font-size:14px;background:var(--dm-info-bg);color:var(--dm-slate-900);border:1px solid #c9dcf2}.alert.error{background:var(--dm-grounded-bg);border-color:#f2c7c2;color:#7a1a12}.alert.ok{background:var(--dm-cleared-bg);border-color:#bfe1cc;color:#14532d}.alert.warn{background:var(--dm-holding-bg);border-color:#f3d3a6;color:#6b3505}.chip{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 10px;border-radius:12px;background:var(--dm-slate-200);color:var(--dm-slate-700);white-space:nowrap}.chip.cleared{background:var(--dm-cleared-bg);color:var(--dm-cleared)}.chip.holding{background:var(--dm-holding-bg);color:var(--dm-holding)}.chip.grounded{background:var(--dm-grounded-bg);color:var(--dm-grounded)}.chip.info{background:var(--dm-info-bg);color:var(--dm-info)}.table-wrap{overflow-x:auto;border:1px solid var(--dm-slate-200);border-radius:var(--dm-radius-lg);background:var(--dm-surface)}table.list{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}table.list th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dm-slate-500);padding:10px 16px;border-bottom:1px solid var(--dm-slate-200);white-space:nowrap}table.list td{padding:12px 16px;border-top:1px solid var(--dm-slate-200);vertical-align:top}table.list tr:first-child td{border-top:none}table.list tr.clickable{cursor:pointer}table.list tr.clickable:hover td{background:var(--dm-ground)}.empty{padding:28px;text-align:center;color:var(--dm-slate-500)}.secret{font-family:var(--dm-mono);font-size:13px;background:var(--dm-tower-night);color:#fff;border-radius:8px;padding:10px 12px;word-break:break-all}pre.block{font-family:var(--dm-mono);font-size:13px;background:var(--dm-ground);border:1px solid var(--dm-slate-200);border-radius:8px;padding:12px;margin:0;white-space:pre-wrap;word-break:break-word;max-height:480px;overflow:auto}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--dm-slate-200);overflow-x:auto}.tabs button,.tabs a{min-height:44px;padding:0 14px;border:none;background:none;font:500 15px var(--dm-sans);color:var(--dm-slate-500);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center}.tabs button.active,.tabs a.active{color:var(--dm-slate-900);border-bottom-color:var(--dm-amber)}@media(max-width:640px){html,body{font-size:15px}h1{font-size:22px}.card{padding:16px}}
