@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@400;600;700;800;900&family=Orbitron:wght@700;900&display=swap";:root{--bg:#07101f;--panel:#101c31;--line:#254264;--text:#eaf2ff;--muted:#8aa3c7;--blue:#38bdf8;--amber:#f59e0b;--red:#ef4444;--orange:#f97316;--purple:#a855f7;--green:#22c55e}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at top,#12345f 0,#07101f 45%,#020617 100%);min-height:100vh;margin:0;font-family:Sarabun,system-ui,sans-serif}.app{min-height:100vh;padding-bottom:28px}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#07101fdb;align-items:center;gap:10px;height:64px;padding:8px 14px;display:flex;position:sticky;top:0}.topbar img{object-fit:contain;width:42px;height:42px}.brand{letter-spacing:1px;font-family:Orbitron,sans-serif;font-weight:900}.brand span{color:var(--amber)}.sub{color:#a8c7ef;font-size:11px;font-weight:800}.logout{color:#fff;background:#1e293b;border:1px solid #334155;border-radius:10px;margin-left:auto;padding:7px 10px;font-weight:900}.identity,.duty,.panel{border:1px solid var(--line);background:#101c31e6;border-radius:18px;margin:12px;padding:14px}.identity{justify-content:space-between;gap:10px;display:flex}.identity h1{margin:0 0 4px;font-size:18px}.identity p{color:#cbd5e1;margin:0;font-size:13px}.identity b{color:#fcd34d;margin-top:4px;font-size:12px;display:block}.statusBox{text-align:right;flex-direction:column;gap:5px;font-size:11px;font-weight:900;display:flex}.ok{color:var(--green)}.bad{color:var(--red)}.wait{color:#eab308}.duty{text-align:center}.dutyBtn{color:#fff;background:linear-gradient(135deg,#334155,#172033);border:0;border-radius:18px;width:100%;padding:18px;font-size:18px;font-weight:900}.dutyBtn.on{background:linear-gradient(135deg,#16a34a,#065f46)}.dutyBtn span{font-size:28px;display:block}.duty p{color:var(--muted);margin:10px 0 0;font-size:12px}.cards{grid-template-columns:repeat(4,1fr);gap:8px;margin:12px;display:grid}.info{border:1px solid var(--line);text-align:center;background:#101c31db;border-radius:14px;padding:10px}.info b{color:#fff;font-size:18px;display:block}.info span{color:#93c5fd;font-size:10px}.panelTitle{margin-bottom:10px;font-size:14px;font-weight:900}.chips{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.chip{color:#cbd5e1;background:#0f172a;border:1px solid #334155;border-radius:12px;padding:9px 4px;font-weight:900}.chip.on{border-color:var(--blue);color:#fff;background:#075985}.chip.emergency{border-color:var(--red);color:#fff;background:#7f1d1d}.emergencyNote{color:#fca5a5;margin-top:10px;font-size:12px;font-weight:900}.secondary{color:#fff;background:#1d4ed8;border:1px solid #2563eb;border-radius:12px;width:100%;margin-top:12px;padding:12px;font-weight:900}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.loginCard{border:1px solid var(--line);background:#101c31f2;border-radius:24px;width:min(420px,100%);padding:24px;box-shadow:0 24px 80px #0006}.loginCard img{object-fit:contain;width:96px;height:96px;margin:0 auto 12px;display:block}.loginCard h1{text-align:center;margin:0;font-family:Orbitron,sans-serif}.loginCard h1 span{color:var(--amber)}.loginCard p{text-align:center;color:var(--muted);margin:6px 0 16px}.stationPill{text-align:center;color:#93c5fd;background:#0f172a;border:1px solid #334155;border-radius:12px;margin-bottom:14px;padding:10px;font-weight:900}.loginCard label{color:#cbd5e1;margin:10px 0 6px;font-size:12px;font-weight:900;display:block}.loginCard input{color:#fff;background:#020617;border:1px solid #334155;border-radius:12px;width:100%;padding:14px;font-size:18px}.loginCard button{color:#fff;background:#2563eb;border:0;border-radius:14px;width:100%;margin-top:16px;padding:14px;font-size:16px;font-weight:900}.error{color:#fecaca;background:#7f1d1d;border-radius:10px;margin-top:10px;padding:9px}.toast{border:1px solid var(--blue);color:#fff;z-index:50;background:#0f172a;border-radius:999px;padding:9px 16px;font-weight:900;position:fixed;top:76px;left:50%;transform:translate(-50%)}.alertOverlay{z-index:40;text-align:center;background:#7f1d1df5;flex-direction:column;justify-content:center;align-items:center;padding:22px;display:flex;position:fixed;inset:0}.alertOverlay.orange{background:#7c2d12f5}.alertOverlay.purple{background:#4c1d95f5}.alertOverlay h2{margin:0 0 10px;font-size:22px}.alertOverlay h1{margin:0 0 8px;font-size:26px}.alertOverlay p{color:#e2e8f0;font-weight:900}.phone,.mapBtn{color:#fff;border-radius:14px;margin:8px 0;padding:13px 18px;font-weight:900;text-decoration:none;display:block}.phone{background:#16a34a}.mapBtn{background:#1d4ed8}.alertActions{grid-template-columns:1fr 1fr;gap:10px;width:min(420px,100%);margin-top:16px;display:grid}.alertActions button{color:#fff;background:#ffffff29;border:1px solid #ffffff4d;border-radius:14px;padding:13px;font-weight:900}.recentList{flex-direction:column;gap:8px;display:flex}.recent{background:#0b1220;border:1px solid #1e3352;border-radius:12px;align-items:center;gap:10px;padding:10px;display:flex}.recent span{font-size:22px}.recent b{display:block}.recent small{color:#94a3b8;display:block}.empty{color:#94a3b8;font-size:13px}@media (width<=420px){.cards{grid-template-columns:repeat(2,1fr)}.chips{grid-template-columns:repeat(3,1fr)}}.personDetails{gap:8px;width:min(420px,100%);margin:12px 0;display:grid}.personDetails a,.teamList{color:#fff;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:12px;gap:3px;padding:10px 12px;text-decoration:none;display:grid}.personDetails b{color:#dbeafe;font-size:11px}.personDetails span{font-weight:800}.personDetails strong{color:#86efac}.personDetails em{color:#c4b5fd;font-size:11px;font-style:normal}.teamList a{background:#ffffff14;margin-top:5px}.wakeBtn{color:#fff;background:#78350f;border:1px solid #f59e0b;border-radius:12px;width:100%;margin-top:12px;padding:12px;font-weight:900}.wakeBtn.on{background:#ca8a04;border-color:#fde68a}.wakeBtn:disabled{opacity:.45}.wakeHint{color:#fca5a5!important}.recent>div{flex:1;min-width:0}.detailBtn{color:#fff;background:#1d4ed8;border:1px solid #2563eb;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:900}.detailBackdrop{z-index:60;background:#020617d1;justify-content:center;align-items:flex-start;padding:18px 12px;display:flex;position:fixed;inset:0;overflow:auto}.detailModal{background:#0f172a;border:1px solid #31537c;border-radius:18px;width:min(520px,100%);overflow:hidden;box-shadow:0 24px 80px #0000008c}.detailHeader{background:#13233d;border-bottom:1px solid #31537c;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;display:flex}.detailHeader b{color:#fff;font-size:15px;display:block}.detailHeader span{color:#94a3b8;margin-top:2px;font-size:12px;display:block}.detailHeader button{color:#fff;background:#1e293b;border:1px solid #475569;border-radius:10px;width:36px;height:36px;font-size:24px;font-weight:900;line-height:1}.detailBody{gap:10px;padding:14px;display:grid}.detailBody h2{color:#fff;margin:0;font-size:20px}.detailRow{border-bottom:1px solid #94a3b824;grid-template-columns:96px 1fr;align-items:start;gap:10px;padding-bottom:8px;display:grid}.detailRow span,.detailTeam>span{color:#93c5fd;font-size:12px;font-weight:900}.detailRow b{color:#e2e8f0;word-break:break-word;font-size:13px}.detailTeam{background:#a855f71f;border:1px solid #a855f740;border-radius:12px;gap:8px;padding:10px;display:grid}.detailTeam a{color:#fff;background:#ffffff0f;border-radius:10px;gap:2px;padding:8px;text-decoration:none;display:grid}.detailTeam small{color:#c4b5fd}.detailActions{gap:8px;display:grid}
