:root{color:#e7f2f4;font-synthesis:none;background:#071622;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{min-width:0;margin:0}button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}.app{max-width:560px;min-height:100vh;padding-bottom:env(safe-area-inset-bottom);background:linear-gradient(#0b2432 0,#071622 260px);margin:auto}.header{padding:30px 20px 24px}.brand{align-items:center;gap:11px;display:flex}.brand-icon{color:#66e0cf;background:#103b41;border:1px solid #2e827d;border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.eyebrow{letter-spacing:.14em;color:#70cabb;margin-bottom:3px;font-size:9px;font-weight:800}h1{letter-spacing:-.055em;margin:0;font-size:20px}.header p{color:#8da8ad;margin:11px 0 0 53px;font-size:12px}main{padding:0 16px 28px}.control-card,.push-panel,.section{background:#0d2531;border:1px solid #24404b;border-radius:16px;box-shadow:0 6px 20px #0002}.control-card{margin-bottom:10px;padding:17px}.control-card label{color:#9bb4b8;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.control-row{gap:8px;display:flex}.select-wrap{flex:1;min-width:0;position:relative}.select-wrap select{appearance:none;color:#f1fbfa;background:#102f3c;border:1px solid #335460;border-radius:10px;width:100%;height:48px;padding:0 37px 0 13px;font-weight:700}.select-wrap svg{pointer-events:none;color:#9fc4c4;position:absolute;top:15px;right:13px}.refresh{color:#79dacb;background:#153743;border:1px solid #335460;border-radius:10px;place-items:center;width:48px;height:48px;display:grid}.feed{color:#9bb8b8;align-items:center;gap:5px;margin-top:11px;font-size:11px;display:flex}.feed span{background:#4fd9b8;border-radius:50%;width:6px;height:6px}.feed.bad{color:#f4ba7e}.feed.bad span{background:#e9a764}.push-panel{margin-bottom:14px}.push-toggle{color:#dceef0;text-align:left;background:0 0;border:0;align-items:center;gap:11px;width:100%;padding:14px 16px;display:flex}.push-toggle>span:nth-child(2){flex:1;min-width:0}.push-icon{color:#74dace;background:#173d43;border-radius:11px;place-items:center;width:37px;height:37px;display:grid}.push-toggle strong,.push-toggle small{display:block}.push-toggle strong{font-size:13px}.push-toggle small{color:#90abb0;margin-top:3px;font-size:11px}.rotate{transform:rotate(180deg)}.push-content{color:#b4cacc;border-top:1px solid #25414b;padding:14px 16px;font-size:12px;line-height:1.5}.push-content p{margin:0 0 12px}.center-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.center-checks label{color:#d8e8e9;align-items:center;gap:5px;min-height:34px;display:flex}.center-checks input{accent-color:#4cc6b4;width:18px;height:18px}.push-actions{gap:8px;display:flex}.push-actions button{color:#072329;background:#65d7c4;border:0;border-radius:9px;min-height:44px;padding:0 15px;font-weight:800}.push-actions .secondary{color:#e0eded;background:#25434c}.section{min-width:0;margin:0 0 12px;padding:17px}.section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.section-title{align-items:center;gap:8px;min-width:0;display:flex}.section-title>span{color:#6cddcb;place-items:center;display:grid}.section h2{letter-spacing:-.04em;margin:0;font-size:15px}.section-note{color:#90aaaf;white-space:nowrap;font-size:10px;font-weight:700}.cards{gap:8px;display:grid}.warning-card,.data-card{background:#102e3a;border:1px solid #294852;border-radius:11px;min-width:0;padding:13px}.warning-card{border-left:3px solid #e6ab61}.warning-card.severe{border-left-color:#ff746e}.warning-top{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.badge{color:#ffc681;background:#56432c;border-radius:5px;padding:4px 7px;font-size:11px;font-weight:800}.severe .badge{color:#ffb0a8;background:#593a3a}.phase,.late{color:#e9b57c;font-size:11px}.warning-card h3,.data-card h3{overflow-wrap:anywhere;color:#edf8f7;margin:9px 0;font-size:14px;line-height:1.45}.warning-times{color:#b2c5c6;gap:4px;margin:0;font-size:11px;display:grid}.warning-times div{gap:10px;display:flex}.warning-times dt{color:#819fa3;flex:none;width:28px}.warning-times dd{overflow-wrap:anywhere;margin:0}.empty,.map-placeholder{color:#a8c0c1;text-align:center;background:#102c37;border:1px solid #21424b;border-radius:10px;margin:0;padding:19px 12px;font-size:12px;line-height:1.6}.empty.uncertain,.notice{color:#efc18d}.notice{overflow-wrap:anywhere;background:#433b2e;border-radius:8px;margin:0 0 10px;padding:9px 10px;font-size:11px;line-height:1.5}.caption{color:#829fa3;margin:10px 0 0;font-size:10px;line-height:1.55}.text-button{color:#75d7ca;background:0 0;border:0;align-items:center;gap:3px;min-height:36px;padding:0;font-size:11px;font-weight:700;display:flex}.map{touch-action:pan-y;background:#123a49;border-radius:10px;height:300px;overflow:hidden}.legend{background:#3c8b80;border:1px solid #59dfcb;width:9px;height:9px;margin:0 3px 0 6px;display:inline-block}.legend.warning{background:#986251;border-color:#f59b72}.card-heading{justify-content:space-between;align-items:start;gap:8px;display:flex}.card-heading h3{margin:0 0 3px}.card-heading p{color:#8daaad;margin:0;font-size:10px}.card-heading>span{color:#9cb8b8;text-align:right;flex-shrink:0;font-size:10px}.metrics{border-top:1px solid #2a4852;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:12px;padding-top:11px;display:grid}.metrics span,.metrics strong{overflow-wrap:anywhere;display:block}.metrics span{color:#91acaf;margin-bottom:4px;font-size:10px}.metrics strong{color:#ecf9f7;font-size:14px}.metrics small{color:#90aaad;font-size:10px;font-weight:400}.period{color:#83d5c8;margin:12px 0 0;font-size:11px}.muted{color:#a4babc;font-size:11px}.segmented{background:#0a202a;border:1px solid #284852;border-radius:8px;padding:2px;display:flex}.segmented button{color:#8eaaad;background:0 0;border:0;border-radius:6px;padding:7px 9px;font-size:10px}.segmented .active{color:#b3f0e6;background:#28504f}.welcome{text-align:center;color:#98b2b5;padding:52px 10px}.welcome svg{color:#5cc8bb}.welcome h2{color:#e3f1f0;margin:12px;font-size:16px}.welcome p{font-size:12px;line-height:1.7}footer{color:#8aa6aa;gap:5px;padding:10px 4px;font-size:11px;display:grid}footer strong{color:#c5d9d9;font-size:12px}footer p{color:#6f8e93;margin:7px 0 0;line-height:1.6}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:350px){main{padding-left:11px;padding-right:11px}.section{padding:14px}.section h2{font-size:14px}.header{padding-left:15px}.card-heading{flex-wrap:wrap}.metrics strong{font-size:13px}}.warning-times,.period{font-size:12px}.caption,.section-note,.eyebrow,.feed,.card-heading p,.card-heading>span,.metrics span,.metrics small,.segmented button,footer{font-size:11px}.warning-card.preliminary{border-left-color:#65c9dd}.preliminary .badge{color:#a6e9f3;background:#194651}.text-button{justify-content:center;min-width:44px;min-height:44px}.segmented button{min-width:44px;min-height:44px}.center-checks label{min-height:44px}.legend.future{background:#376f80;border-color:#73cde5}.map .ol-zoom button{width:44px;min-width:44px;height:44px;min-height:44px;font-size:20px;line-height:44px}.map .ol-zoom{top:8px;left:8px}.map .ol-zoom-in{margin-bottom:3px}.test-device-id{gap:10px;margin-top:14px;display:grid}.test-device-id p{margin:0}.test-device-id code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.test-device-id button{justify-self:start}
