@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap";:root{--bg-deep: #070e18;--bg: #0b1524;--bg-elevated: #122033;--bg-panel: #15263c;--border: #24364f;--text: #e8eef6;--text-muted: #8fa3bc;--accent: #3d8bfd;--accent-soft: rgba(61, 139, 253, .18);--danger: #f03a18;--warn: #f08a1a;--ok: #6ee02a;--font: "IBM Plex Sans", "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 10px;--shadow: 0 12px 40px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;height:100%;background:var(--bg-deep);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}body{background:radial-gradient(1200px 600px at 10% -10%,rgba(61,139,253,.12),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(18,212,208,.06),transparent 50%),linear-gradient(180deg,#0d1a2c 0%,var(--bg-deep) 55%,#050a12 100%);overflow:hidden}button,input{font:inherit;color:inherit}a{color:var(--accent)}.night-mode{--bg-deep: #02050a;--bg: #050910;--bg-elevated: #0a121c;--bg-panel: #0d1724;--border: #1a2738;--text: #c5d0de;--text-muted: #6d7f96;--accent: #2f6fc7;filter:saturate(.85) brightness(.92)}.wallboard{position:relative;width:100vw;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.wallboard__stage{flex:1;min-height:0;position:relative}.slide{position:absolute;inset:0;padding:clamp(1rem,2.5vw,2.25rem);display:flex;flex-direction:column;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}.slide.is-active{opacity:1;pointer-events:auto;transform:none}.slide__eyebrow{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:600;margin:0 0 .35rem}.slide__title{margin:0;font-size:clamp(1.4rem,2.4vw,2rem);font-weight:700}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.85rem;color:var(--text-muted);font-weight:500}.field input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:.75rem .9rem;outline:none}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.btn{appearance:none;border:1px solid transparent;border-radius:8px;padding:.75rem 1.1rem;font-weight:600;cursor:pointer;background:var(--bg-panel);border-color:var(--border);color:var(--text)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#4a97ff,#2f6fc7);border-color:#2a5fad;color:#fff}.btn-block{width:100%}.error{color:#ff8d7a;margin:.5rem 0 0;font-size:.9rem}.tabs{display:flex;gap:.4rem;margin-bottom:1rem}.tabs button{flex:1;padding:.55rem;border-radius:8px;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text-muted);font-weight:600}.tabs button.is-active{background:var(--accent-soft);color:var(--text);border-color:var(--accent)}.fms-box{border-radius:var(--radius);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.25rem;min-height:5.5rem;box-shadow:var(--shadow)}.fms-box__name{font-weight:700;font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.15}.fms-box__meta{font-size:.85rem;opacity:.9}.fms-box__status{margin-top:auto;font-family:var(--mono);font-weight:600;font-size:1.1rem}.grid-units{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;overflow:auto;padding-bottom:.5rem}.swimlane{display:flex;flex-direction:column;gap:.65rem;overflow:auto}.swimlane__row{display:grid;grid-template-columns:4.5rem 1fr;gap:.75rem;align-items:start}.swimlane__label{font-family:var(--mono);font-weight:700;font-size:1.1rem;padding-top:.55rem}.swimlane__track{display:flex;flex-wrap:wrap;gap:.5rem;min-height:3.2rem;padding:.4rem;background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius)}.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);background:#122033eb;border:1px solid var(--border);border-radius:16px;padding:1.75rem;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-card h1{margin:.15rem 0 .25rem;font-size:1.65rem}.login-card .brand{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.login-card .sub{margin:0 0 1.25rem;color:var(--text-muted);font-size:.95rem}.map-root{flex:1;min-height:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.alarm-keyword{font-size:clamp(2.8rem,7vw,6.5rem);font-weight:700;line-height:.95;margin:.4rem 0 .6rem;letter-spacing:-.02em}.alarm-location{font-size:clamp(1.4rem,3vw,2.4rem);font-weight:600;margin:0 0 1rem;color:#cfe0f5}.alarm-message{font-size:clamp(1.05rem,1.8vw,1.45rem);color:var(--text-muted);max-width:70ch;margin:0 0 1.5rem}.alarm-units{display:flex;flex-wrap:wrap;gap:.5rem}.alarm-units span{background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:.45rem .85rem;font-weight:600}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;font-weight:700;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}.badge-danger{background:#f03a1833;color:#ff9a88;border:1px solid rgba(240,58,24,.45)}.badge-warn{background:#f08a1a2e;color:#ffc078;border:1px solid rgba(240,138,26,.4)}.info-clock{font-family:var(--mono);font-size:clamp(4rem,12vw,9rem);font-weight:600;line-height:1;margin:.5rem 0}.info-date{font-size:clamp(1.2rem,2.5vw,2rem);color:var(--text-muted);margin:0 0 2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1rem}.stat-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem}.stat-card__value{font-family:var(--mono);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;margin:.2rem 0}.stat-card__label{color:var(--text-muted);font-size:.95rem}.status-bars{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}.status-bars .chip{min-width:4.5rem;text-align:center;border-radius:8px;padding:.55rem .65rem;font-family:var(--mono);font-weight:600}.empty-state{margin:auto;text-align:center;color:var(--text-muted);font-size:1.25rem}.leaflet-container{background:#0a1420;font:inherit}
