:root{color:#1d2733;background:#f4f7fb;font-family:Malgun Gothic,Apple SD Gothic Neo,Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}body{margin:0;min-width:320px;background:#f4f7fb}button,input{font:inherit}.app-shell{width:min(1680px,100%);margin:0 auto;padding:24px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:12px 0 20px}.eyebrow{margin:0 0 6px;color:#54708b;font-size:13px;font-weight:800}h1,h2,p{margin-top:0}h1{margin-bottom:0;color:#10263d;font-size:30px;line-height:1.25}h2{margin-bottom:14px;color:#182f45;font-size:18px}.local-badge{border-radius:999px;padding:7px 11px;color:#0f5132;background:#d7f1df;font-size:13px;font-weight:800}.notice{margin:20px 0;border:1px solid #d7e1eb;border-radius:8px;background:#fff;padding:14px 16px}.notice-error,.error-callout{border-color:#efb4aa;color:#9d2f24;background:#fff6f4}.metric-band{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #d9e2ec;border-radius:9px;background:#d9e2ec}.metric-band div{background:#fff;padding:14px}.metric-band span{display:block;color:#6b7c8f;font-size:12px;font-weight:800}.metric-band strong{display:block;margin-top:7px;color:#10263d;font-size:18px}.ok-text{color:#0f6b43!important}.error-text{color:#a13127!important}.workspace-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 390px;gap:16px;align-items:start;margin-top:18px}.panel{min-width:0;border:1px solid #d9e2ec;border-radius:9px;background:#fff;padding:16px}.zone-buttons{display:grid;gap:7px}.zone-button{border:1px solid #d6e0ea;border-radius:7px;padding:9px 10px;color:#24445d;background:#fff;text-align:left;cursor:pointer}.zone-button.active{border-color:#176b78;color:#fff;background:#176b78}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.section-title span{color:#6b7c8f;font-size:12px;font-weight:800}.site-map{display:block;width:100%;height:auto;border-radius:7px;background:#1f2937}.map-stat-band{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.map-stat-band span{border-radius:999px;padding:5px 8px;color:#24445d;background:#eef4f7;font-size:11px;font-weight:800}.map-stage{position:relative;overflow:hidden;border-radius:7px}.site-stats-overlay{position:absolute;left:.99%;top:10.15%;width:19.63%;height:15.23%;object-fit:fill;pointer-events:none}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid #e3e9f0;padding:8px 7px;text-align:right;vertical-align:middle}th:first-child,td:first-child{text-align:left}thead th{color:#4f6274;background:#f2f4f7}.row-error{background:#fff6f4}.violation-list{display:grid;gap:8px;margin-top:12px}.error-callout{margin:0;border:1px solid #efb4aa;border-radius:7px;padding:9px;font-size:12px;line-height:1.5}.map-zoom-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-bottom:7px}.map-zoom-controls button{min-width:34px;min-height:32px;border:1px solid #cbd7e3;border-radius:6px;color:#24445d;background:#fff;cursor:pointer}.map-zoom-controls span{min-width:48px;color:#52677b;font-size:12px;font-weight:800;text-align:center}.map-viewport{overflow:auto;max-height:70vh;border-radius:7px;background:#1f2937}.map-stage{position:relative;min-width:100%;overflow:hidden;border-radius:7px}.marker-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.zone-boundary{fill:#176b78;fill-opacity:.025;stroke:#f8fafc;stroke-opacity:.55;stroke-width:1.2;pointer-events:none}.zone-boundary.selected{fill-opacity:.13;stroke:#f59e0b;stroke-opacity:.95;stroke-width:2.5}.map-marker{cursor:grab;outline:none}.map-marker circle{fill:#0f766e;stroke:#fff;stroke-width:2.5}.map-marker polygon{fill:#fde68a;stroke:#b91c1c;stroke-width:2.5}.map-marker text{fill:#fff;stroke:#0b2545;stroke-width:2px;paint-order:stroke;font-size:9px;font-weight:900;pointer-events:none}.map-marker.muted{opacity:.38}.map-marker.inactive circle{fill:#d1d5db;stroke:#6b7280}.map-marker.selected circle,.map-marker.selected polygon,.map-marker:focus circle,.map-marker:focus polygon{stroke:#f97316;stroke-width:4}.post-drawer{display:grid;grid-template-columns:1.2fr .7fr .7fr;gap:10px;margin-top:12px;border:1px solid #d9e2ec;border-radius:8px;padding:12px;background:#fbfdff}.post-drawer label{display:grid;gap:5px;color:#50657a;font-size:12px;font-weight:800}.post-drawer input{min-width:0;border:1px solid #ccd8e4;border-radius:6px;padding:8px;background:#fff}.wide-field{grid-column:1 / -1}.check-field{display:flex!important;align-items:center;gap:7px!important}.field-label{display:block;color:#6b7c8f;font-size:11px;font-weight:800}.mandatory-note{grid-column:1 / -1;margin:0;color:#8a4b08;font-size:12px}.control-group{display:grid;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid #e2e8f0}.control-group label{display:grid;grid-template-columns:1fr 70px;align-items:center;gap:8px;color:#52677b;font-size:12px;font-weight:800}.control-group input{width:100%;border:1px solid #ccd8e4;border-radius:6px;padding:7px}.control-group button,.file-button{min-height:38px;border:1px solid #cbd7e3;border-radius:7px;padding:8px 10px;color:#24445d;background:#fff;cursor:pointer;font-weight:800;text-align:center}.control-group .primary-control{color:#fff;background:#176b78;border-color:#176b78}.control-group button:disabled{cursor:not-allowed;opacity:.45}@media(max-width:1180px){.workspace-grid{grid-template-columns:220px minmax(0,1fr)}.summary-panel{grid-column:1 / -1}}@media(max-width:760px){.app-shell{padding:14px}.topbar{display:grid}h1{font-size:23px}.metric-band{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-band div:last-child{grid-column:1 / -1}.workspace-grid{display:flex;flex-direction:column}.controls-panel,.map-panel,.summary-panel{width:100%}.post-drawer{grid-template-columns:1fr 1fr}.post-drawer>div,.wide-field,.mandatory-note{grid-column:1 / -1}}@media print{body{background:#fff}.app-shell{width:100%;padding:0}.controls-panel,.post-drawer,.local-badge,.map-zoom-controls{display:none!important}.workspace-grid{display:block}.summary-panel{margin-top:12px}.map-viewport{overflow:visible;max-height:none}.map-stage{width:100%!important}.map-marker.muted{opacity:1}}.edit-mode-toggle{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}.edit-mode-toggle button{font:inherit;font-size:.85rem;padding:6px 12px;border-radius:6px;border:1px solid #c9d4de;background:#fff;color:#12212e;cursor:pointer}.edit-mode-toggle button[aria-pressed=true]{background:#0b2545;border-color:#0b2545;color:#fff;font-weight:600}.edit-mode-toggle button:focus-visible{outline:2px solid #1f6fd0;outline-offset:2px}.edit-mode-hint{font-size:.78rem;color:#5d6f7e}.map-scale-note{font-size:.75rem;color:#5d6f7e;margin-left:auto}.context-boundary{fill:#e0483c29;stroke:#e0483c;stroke-width:2;stroke-dasharray:7 5}.marker-layer.zone-editing .map-marker.dimmed{opacity:.35}.vertex-handle{fill:#ffd400;stroke:#0b2545;stroke-width:2.5;cursor:grab}.vertex-handle:hover,.vertex-handle:focus-visible{fill:#fff;stroke:#1f6fd0;stroke-width:3;outline:none}.vertex-handle.dragging{cursor:grabbing;fill:#fff}.vertex-add{fill:#ffffffb3;stroke:#0b2545;stroke-width:1.5;stroke-dasharray:2 2;cursor:copy}.vertex-add:hover,.vertex-add:focus-visible{fill:#ffd400;stroke-dasharray:none;outline:none}.field-shell{max-width:560px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:14px}.field-head h1{margin:2px 0 0;font-size:1.3rem}.field-card{background:#fff;border:1px solid #d3dde5;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px}.field-card h2{margin:0;font-size:.95rem}.field-card label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600}.field-card input,.field-card textarea{font:inherit;font-size:1rem;padding:12px;border-radius:8px;border:1px solid #c9d4de}.optional{font-weight:400;color:#5d6f7e}.consent-box{background:#f4f7f9;border:1px solid #d3dde5;border-radius:8px;padding:12px}.consent-box h2{font-size:.85rem;margin-bottom:8px}.consent-box ul{margin:0 0 10px;padding-left:18px;font-size:.8rem;line-height:1.7;color:#35485a}.consent-check{flex-direction:row!important;align-items:center;gap:8px;font-size:.85rem}.consent-check input{width:20px;height:20px}.field-primary{font:inherit;font-size:1.05rem;font-weight:700;padding:16px;border-radius:10px;border:none;background:#0b2545;color:#fff;cursor:pointer}.field-primary:disabled{background:#9fb0c0;cursor:not-allowed}.field-cancel{font:inherit;padding:12px;border-radius:8px;border:1px solid #c9d4de;background:#fff;color:#35485a;cursor:pointer}.field-sos{font:inherit;font-size:1.4rem;font-weight:800;padding:28px;border-radius:12px;border:none;background:#c62828;color:#fff;cursor:pointer;letter-spacing:.05em}.field-sos:active{background:#8e1f1f}.field-sos-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-sos-grid button{font:inherit;font-weight:700;padding:16px 10px;border-radius:8px;border:2px solid #c62828;background:#fff;color:#c62828;cursor:pointer}.field-status{background:#fff;border:1px solid #d3dde5;border-radius:10px;padding:12px 16px;display:flex;gap:20px;flex-wrap:wrap}.field-status-warn{border-color:#e08a00;background:#fff8ec}.field-status-label{display:block;font-size:.72rem;color:#5d6f7e}.field-status strong{font-size:1.05rem;font-variant-numeric:tabular-nums}.field-status-note{flex-basis:100%;margin:4px 0 0;font-size:.8rem;color:#b45309}.field-critical{background:#c62828;color:#fff;border-radius:10px;padding:16px}.field-critical strong{display:block;font-size:.8rem;letter-spacing:.1em}.field-critical p{margin:6px 0;font-size:1.1rem;font-weight:700}.field-critical-meta{font-size:.8rem!important;font-weight:400!important;opacity:.9}.field-critical button{font:inherit;font-weight:700;padding:10px 16px;border-radius:6px;border:none;background:#fff;color:#c62828;cursor:pointer}.field-checkin{background:#0b2545;color:#fff;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px}.field-checkin strong{font-size:.8rem;letter-spacing:.08em}.field-checkin p{margin:0;font-size:1rem}.field-checkin .field-primary{background:#fff;color:#0b2545}.field-alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.field-alerts li{border-left:4px solid #94a3b8;padding:8px 10px;background:#f4f7f9;border-radius:4px}.field-alerts li p{margin:0 0 2px;font-size:.9rem}.field-alerts li span{font-size:.75rem;color:#5d6f7e}.field-alerts .sev-critical{border-left-color:#c62828}.field-alerts .sev-warning{border-left-color:#e08a00}.field-empty{color:#5d6f7e;font-size:.85rem;margin:0}.field-footnote{font-size:.75rem;color:#5d6f7e;text-align:center;margin:4px 0 20px}.badge{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:#c62828;color:#fff;font-size:.72rem;text-align:center;margin-left:6px}.hq-shell{padding:16px 22px;display:flex;flex-direction:column;gap:14px}.conn{font-size:.78rem;font-weight:700;padding:6px 12px;border-radius:999px}.conn-open{background:#dcfce7;color:#166534}.conn-connecting{background:#fef3c7;color:#92400e}.conn-closed{background:#fee2e2;color:#991b1b}.hq-counts{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.hq-counts div{background:#fff;border:1px solid #d3dde5;border-radius:8px;padding:10px 14px}.hq-counts span{display:block;font-size:.72rem;color:#5d6f7e}.hq-counts strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.hq-counts .ok strong{color:#166534}.hq-counts .warn{border-color:#e08a00;background:#fff8ec}.hq-counts .warn strong{color:#b45309}.hq-counts .bad{border-color:#c62828;background:#fef2f2}.hq-counts .bad strong{color:#991b1b}@media(max-width:1000px){.hq-counts{grid-template-columns:repeat(3,1fr)}}.hq-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}@media(max-width:1100px){.hq-grid{grid-template-columns:1fr}}.hq-map{position:relative}.hq-map img{width:100%;height:auto;display:block;border-radius:6px}.hq-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.hq-context{fill:#e0483c0f;stroke:#e0483c80;stroke-width:2;stroke-dasharray:8 6}.hq-zone{fill:#0b25450d;stroke:#f8fafccc;stroke-width:2}.hq-post{fill:#ffffffd9;stroke:#0b2545;stroke-width:1.5}.hq-trail{fill:none;stroke:#2563eb;stroke-width:3;stroke-opacity:.75;stroke-linejoin:round;stroke-linecap:round}.hq-live{cursor:pointer}.hq-live circle{stroke:#fff;stroke-width:2.5}.hq-live text{font-size:11px;font-weight:700;fill:#fff;pointer-events:none}.hq-live.s-online circle{fill:#0f766e}.hq-live.s-stale circle{fill:#e08a00}.hq-live.s-offline circle{fill:#94a3b8}.hq-live.outside circle{stroke:#c62828;stroke-width:4}.hq-alert-ping{fill:none;stroke:#c62828;stroke-width:4;animation:hq-ping 1.4s ease-out infinite}@keyframes hq-ping{0%{r:12;opacity:1}to{r:30;opacity:0}}@media(prefers-reduced-motion:reduce){.hq-alert-ping{animation:none;opacity:.9}}.hq-side{display:flex;flex-direction:column;gap:16px}.hq-side textarea{font:inherit;width:100%;padding:10px;border-radius:6px;border:1px solid #c9d4de}.hq-sev{display:flex;gap:6px}.hq-sev button{flex:1;font:inherit;font-size:.82rem;padding:8px;border-radius:6px;border:1px solid #c9d4de;background:#fff;cursor:pointer}.hq-sev button[aria-pressed=true]{background:#0b2545;border-color:#0b2545;color:#fff;font-weight:700}.hq-alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.hq-alerts li{border-left:4px solid #94a3b8;background:#f4f7f9;border-radius:4px;padding:8px 10px}.hq-alerts li p{margin:0 0 2px;font-size:.88rem;font-weight:600}.hq-alerts li span{display:block;font-size:.74rem;color:#5d6f7e;margin-bottom:6px}.hq-alerts li button{font:inherit;font-size:.78rem;padding:5px 10px;border-radius:5px;border:1px solid #c9d4de;background:#fff;cursor:pointer}.hq-alerts .sev-critical{border-left-color:#c62828;background:#fef2f2}.hq-alerts .sev-warning{border-left-color:#e08a00;background:#fff8ec}.hq-checkin-count{margin:0;font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums}.hq-notresponded{margin:4px 0 0;font-size:.78rem;color:#991b1b}.hq-table{width:100%;border-collapse:collapse;font-size:.78rem}.hq-table th{text-align:left;color:#5d6f7e;font-weight:600;padding:4px 6px;border-bottom:1px solid #d3dde5}.hq-table td{padding:5px 6px;border-bottom:1px solid #eef2f5;font-variant-numeric:tabular-nums}.hq-table tr.sel{background:#eef6ff}.hq-table .st-online{color:#166534;font-weight:600}.hq-table .st-stale{color:#b45309;font-weight:700}.hq-table .st-offline{color:#991b1b;font-weight:700}.hq-table tbody tr{cursor:pointer}.hq-table tr.row-bad{background:#fff8ec}.hq-table tr.row-bad td:first-child{font-weight:700}.hq-members{margin-top:8px;border-top:2px solid #0b2545}.hq-members th:first-child{color:#0b2545;font-weight:700}
