:root{color-scheme:light;--ink: #15201f;--muted: #5f6c69;--line: #d9dfdc;--surface: #ffffff;--base: #f5f7f4;--green: #0d6b57;--red: #b43335;--deep-red: #8f1f23;--critical: #7a1f1f;--amber: #e8b400;--blue: #245a88}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--base);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 24px;background:#13201e;color:#fff}.topbar h1{margin:0;font-size:28px;letter-spacing:0}.topbar-logo{display:block;height:32px;width:auto}.topbar p{margin:4px 0 0;color:#c7d2ce}.layout-mobile{padding:16px;max-width:480px;margin:0 auto}.layout-desktop{padding:16px;max-width:1600px;margin:0 auto}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.dashboard-panel{min-width:0}h2{margin:0 0 14px;font-size:18px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.network{border-radius:999px;color:#fff;font-size:12px;font-weight:700;padding:6px 10px}.network.normal{background:var(--green)}.network.offline{background:var(--deep-red)}.status-hero{border-radius:8px;color:#fff;display:grid;gap:8px;margin-bottom:14px;padding:16px}.status-hero.offline{background:var(--deep-red)}.status-hero.offline.lora-phase{background:#12201e;border:2px solid var(--red)}.status-hero strong{font-size:16px}.status-hero span{color:#f2eeee;font-size:13px;line-height:1.5}form{display:grid;gap:12px}label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;color:var(--ink);padding:10px 11px}textarea{resize:vertical}button[type=submit],#syncButton{border:0;border-radius:6px;background:var(--green);color:#fff;cursor:pointer;font-weight:700;padding:11px 14px}#syncButton{width:auto;min-width:88px;background:var(--blue)}.split{display:grid;grid-template-columns:1fr 1fr;gap:10px}fieldset{border:0;margin:0;padding:0}legend{color:var(--muted);font-size:13px;font-weight:700;margin-bottom:6px}.urgency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.urgency{align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:2px;font-weight:700;justify-content:center;min-height:57px;padding:12px 0}.urgency-label-en{font-size:15px}.urgency-label-ja{font-size:11px;font-weight:400}.urgency.active.normal{background:var(--green);color:#fff}.urgency.active.warning{background:var(--amber);color:#15201f}.urgency.active.alert{background:var(--red);color:#fff}.urgency.active.critical{background:var(--critical);color:#fff}.pending{color:var(--red);font-size:13px;font-weight:700;margin:0}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.metric{border:1px solid var(--line);border-radius:8px;padding:12px}.metric strong{display:block;font-size:22px}.metric span{color:var(--muted);font-size:12px;font-weight:700}.dashboard-tab-bar{display:flex;gap:8px;margin-bottom:14px}.dashboard-tab{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px}.dashboard-tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}.section-header-row{align-items:center;display:flex;justify-content:space-between;gap:12px;margin:14px 0 10px}.section-header-row h3{font-size:16px;margin:0}.add-shelter-button{background:#fff;border:1px solid var(--green);border-radius:8px;color:var(--green);cursor:pointer;font-size:13px;font-weight:700;padding:10px 16px}.search-and-sort-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:10px}.search-box{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;flex:1 1 320px;gap:8px;max-width:320px;padding:10px 14px}.search-box input{border:0;padding:0}.sort-dropdown{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:6px;padding:7px 10px 7px 12px;white-space:nowrap}.sort-dropdown-label{color:var(--ink);font-size:11px;font-weight:700}.sort-dropdown select{background:transparent;border:0;color:var(--muted);font-size:11px;padding:0;width:auto}.filter-chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filter-chip-row-label{color:var(--ink);font-size:12px;font-weight:700}.filter-chip{background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--muted);cursor:pointer;font-size:12px;font-weight:500;padding:6px 14px}.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}.filter-divider{background:var(--line);height:20px;width:1px}.shelter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.shelter-card{background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;overflow:hidden}.shelter-card-accent{background:var(--green);flex-shrink:0;width:6px}.shelter-card.warning .shelter-card-accent{background:var(--amber)}.shelter-card.alert .shelter-card-accent,.shelter-card.unknown .shelter-card-accent{background:var(--red)}.shelter-card.critical .shelter-card-accent{background:var(--critical)}.shelter-card-body{display:flex;flex:1 1 0;flex-direction:column;gap:12px;min-width:0;padding:14px 16px}.shelter-card-title-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.shelter-card-title-row h3{color:var(--ink);font-size:16px;margin:0}.status-badge{background:var(--green);border-radius:999px;color:#fff;font-size:11px;font-weight:700;padding:4px 10px;white-space:nowrap}.status-badge.warning{background:var(--amber)}.status-badge.alert,.status-badge.unknown{background:var(--red)}.status-badge.critical{background:var(--critical)}.shelter-card-stats{display:flex;gap:28px}.shelter-stat{display:flex;flex-direction:column;gap:2px}.shelter-stat-label{color:var(--muted);font-size:12px;font-weight:700}.shelter-stat-value{align-items:baseline;display:flex;gap:3px}.shelter-stat-value strong{color:var(--ink);font-size:22px}.shelter-stat-value span{color:var(--muted);font-size:13px}.shelter-card-footer{align-items:center;display:flex;gap:8px;justify-content:space-between}.verification-row,.verification-actions,.auth-status,.dev-login-actions{align-items:center;display:flex;gap:8px}.verification-row{justify-content:space-between}.verification-badge,.auth-role{border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:700;padding:4px 8px}.verification-badge.verified{background:#e5f4ee;color:var(--green)}.verification-badge.unverified{background:#fff7d6;color:#765600}.verification-actions button{font-size:11px;min-height:30px;padding:5px 10px}.verification-actions .reject-button{background:#fff;border:1px solid var(--red);color:var(--red)}.auth-status{color:#fff;font-size:12px}.auth-role{border-color:#fff6}.topbar-auth-link,.topbar-auth-button{background:transparent;border:1px solid rgba(255,255,255,.45);border-radius:6px;color:#fff;font-size:12px;padding:7px 10px;text-decoration:none}.login-google-button{display:block;text-align:center;text-decoration:none}.dev-login-actions{align-items:stretch;flex-direction:column}.auth-loading{padding:32px}.shelter-card-updated{color:var(--muted);font-size:12px}.request-code-chip{border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:11px;font-weight:500;padding:3px 8px;white-space:nowrap}.dev-preview{background:var(--base);min-height:100vh;padding:16px}.dev-preview-banner{background:#fff3cd;border:1px solid var(--amber);border-radius:8px;color:#5c4a00;font-size:13px;font-weight:700;margin:0 0 16px;padding:10px 14px}.dev-preview-frames{align-items:flex-start;display:flex;gap:24px;overflow-x:auto;padding-bottom:16px}.dev-preview-frame{flex-shrink:0}.dev-preview-frame-label{color:var(--muted);font-size:12px;font-weight:700;margin:0 0 8px}.dev-preview-frame-body{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 10px #00000014;padding:16px}.dev-preview-frame-mobile .dev-preview-frame-body{width:390px}.dev-preview-frame-desktop .dev-preview-frame-body{width:1920px}@media(max-width:860px){.topbar,.layout-mobile,.layout-desktop{padding-left:12px;padding-right:12px}.topbar{align-items:flex-start;flex-direction:column}.summary{grid-template-columns:1fr}}.reporter{color:var(--muted);font-size:12px;margin:0 0 8px;display:flex;align-items:center;gap:4px}.login-page{background:#ebf2ee;display:flex;flex-direction:column;min-height:100vh}.login-header-label{color:#c7d2ce;font-size:12px;font-weight:500}.login-main{align-items:center;display:flex;flex:1;justify-content:center;padding:24px}.login-card{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;flex-direction:column;gap:28px;max-width:480px;padding:48px 48px 40px;width:100%}.login-brand{align-items:center;display:flex;flex-direction:column;gap:6px}.login-logo{align-items:center;display:flex;gap:8px}.login-logo-image{height:64px;width:auto}.login-subtitle{color:var(--muted);font-size:13px;margin:0}.login-button{background:var(--green);border:0;border-radius:10px;color:#fff;cursor:pointer;font-size:17px;font-weight:700;padding:16px}.login-note{color:var(--muted);font-size:11px;margin:0;text-align:center}.icon-nav-button{align-items:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:#c7d2ce;cursor:pointer;display:flex;font-size:13px;font-weight:700;justify-content:center;padding:6px 10px}.scope-badge{background:#ffffff1a;border-radius:999px;color:#c7d2ce;font-size:10px;font-weight:700;padding:2px 8px}.assignee-tag{align-items:center;background:#e9edea;border-radius:999px;color:var(--ink);display:inline-flex;font-size:11px;font-weight:500;gap:5px;padding:3px 10px 3px 8px;white-space:nowrap}.assignee-tag-dot{background:var(--green);border-radius:999px;flex-shrink:0;height:6px;width:6px}.incident-status-tab-row{display:flex;gap:8px;margin-bottom:16px}.incident-status-tab{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px}.incident-status-tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}.incident-card-list{display:grid;gap:16px}.incident-empty-state{color:var(--muted);padding:24px 0;text-align:center}.incident-card{background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;gap:8px;padding:12px 14px}.incident-card-title-row{align-items:center;display:flex;justify-content:space-between}.incident-card-shelter-name{color:var(--ink);font-size:14px;font-weight:700;margin:0}.incident-card-memo{color:var(--muted);font-size:12px;margin:0}.incident-card-meta-row{align-items:center;display:flex;justify-content:space-between}.incident-card-meta-time{color:var(--muted);font-size:11px;font-weight:500}.incident-card-status-note{color:var(--muted);font-size:11px;font-weight:500;margin:0}.incident-card-resolution-info{display:grid;gap:4px;font-size:11px}.incident-card-resolution-memo{color:var(--muted);margin:0}.incident-card-resolution-approval{color:var(--green);font-weight:500;margin:0}.incident-card-action-row{display:flex;gap:8px}.primary-button{background:var(--green);border:0;border-radius:8px;color:#fff;cursor:pointer;flex:1;font-size:13px;font-weight:700;padding:10px 16px}.secondary-button{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;flex:1;font-size:13px;font-weight:700;padding:10px 16px}.outline-button{background:#fff;border:1px solid var(--green);border-radius:8px;color:var(--green);cursor:pointer;flex:1;font-size:13px;font-weight:700;padding:10px 16px}.incident-header{align-items:flex-start;flex-direction:column;gap:10px}.incident-header-title-row{align-items:center;display:flex;gap:10px}.incident-header-title-row h1{font-size:20px;margin:0}.incident-header-subtitle-row{align-items:center;display:flex;gap:6px}.incident-header-note{color:#c7d2ce;font-size:11px;font-weight:500}.modal-overlay{background:#16201f80;bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:100}.modal-overlay-bottom{align-items:flex-end;justify-content:center}.modal-overlay-center{align-items:center;justify-content:center;padding:0 24px}.bottom-sheet{background:#fff;border-radius:16px 16px 0 0;display:grid;gap:16px;margin:0 auto;max-width:480px;max-height:90vh;overflow-y:auto;padding:24px 20px;width:100%}.bottom-sheet-titles{display:grid;gap:4px}.bottom-sheet-title{color:var(--ink);font-size:17px;font-weight:700;margin:0}.bottom-sheet-subtitle{color:var(--muted);font-size:11px;margin:0}.bottom-sheet-field{color:var(--ink);display:grid;font-size:13px;font-weight:500;gap:8px}.bottom-sheet-select-row{align-items:center;display:flex;gap:8px}.bottom-sheet-select-row select{flex:1}.bottom-sheet-hint{color:var(--muted);font-size:10px;font-weight:400}.bottom-sheet-recall-row{align-items:center;display:flex;gap:8px}.text-link-button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:10px;font-weight:400;padding:0;text-align:left;text-decoration:underline}.bottom-sheet-note{color:var(--muted);font-size:10px;font-weight:400;margin:0}.bottom-sheet-footer{display:flex;gap:12px}.bottom-sheet-footer button{padding:12px 16px}.confirm-dialog-card{background:#fff;border-radius:14px;display:grid;gap:16px;max-width:400px;padding:22px 20px 20px;width:100%}.confirm-dialog-title{color:var(--ink);font-size:15px;font-weight:700;margin:0}.confirm-dialog-body{color:var(--muted);font-size:12px;line-height:1.5;margin:0}.confirm-dialog-footer{display:flex;gap:12px}.history-list{display:grid;gap:10px}.history-item{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;padding:12px 14px}.history-item-time{color:var(--ink);font-size:13px;font-weight:700;white-space:nowrap}.history-item-shelter{color:var(--ink);flex:1;font-size:14px;font-weight:700}.topbar-right-group{align-items:center;display:flex;gap:8px}.field-report-nav-buttons{display:flex;gap:8px}.field-report-nav-buttons .icon-nav-button{text-decoration:none}.shelter-card-clickable{cursor:pointer}.shelter-card-clickable:hover{box-shadow:0 2px 10px #00000014}.shelter-detail-title-group{align-items:center;display:flex;gap:16px}.shelter-detail-back-link{color:#ffffffb3;font-size:14px;text-decoration:none}.shelter-detail-title{color:#fff;font-size:20px;margin:0}.shelter-detail-summary{padding-top:8px}.shelter-detail-summary .shelter-card{max-width:450px}.shelter-detail-section{margin-top:24px}.incident-header-note-dark{color:var(--muted);font-size:11px}.shelter-detail-incident-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.shelter-detail-charts{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.chart-card{background:#fff;border:1px solid var(--line);border-radius:12px;display:grid;gap:12px;padding:16px}.chart-card-title-row{align-items:flex-start;display:flex;justify-content:space-between}.chart-card-title{color:var(--muted);font-size:12px;font-weight:700;margin:0}.chart-card-title-note{color:var(--muted);font-size:12px;margin:0}.chart-legend{display:flex;gap:12px}.chart-legend-item{align-items:center;color:var(--ink);display:flex;font-size:12px;font-weight:500;gap:5px}.chart-legend-swatch{border-radius:2px;display:inline-block;height:11px;width:11px}.chart-legend-swatch-actual{background:var(--green)}.chart-legend-swatch-forecast{background:#fff;border:1.5px solid var(--green)}.chart-area{display:flex;gap:8px}.chart-y-axis{color:var(--muted);display:flex;flex-direction:column;font-size:11px;font-weight:500;height:200px;justify-content:space-between;text-align:right;width:40px}.chart-body{display:flex;flex:1;flex-direction:column;gap:8px;min-width:0}.chart-bars{align-items:flex-end;display:flex;gap:10px;height:200px;position:relative}.chart-bars-with-capacity-line{height:224px}.chart-bar{border-radius:4px 4px 0 0;flex:1;min-width:0}.chart-bar-actual{background:var(--green)}.chart-bar-forecast{background:#fff;border:1.5px dashed var(--green)}.chart-bar-people{background:#16201fd9}.capacity-line{border-top:1.5px dashed var(--red);left:0;position:absolute;right:0}.capacity-label{background:var(--red);border-radius:4px;color:#fff;font-size:11px;font-weight:700;padding:3px 8px;position:absolute;right:0;transform:translateY(6px)}.chart-x-axis{color:var(--ink);display:flex;font-size:13px;justify-content:space-between}.shortage-alert{align-items:center;background:#faecec;border:1px solid rgba(180,51,53,.5);border-radius:10px;display:flex;gap:14px;padding:18px 20px}.shortage-alert-icon{align-items:center;background:var(--red);border-radius:999px;color:#fff;display:flex;flex-shrink:0;font-size:15px;font-weight:700;height:22px;justify-content:center;width:22px}.shortage-alert-title{color:var(--red);font-size:18px;font-weight:700;margin:0}.shortage-alert-detail{color:var(--muted);font-size:13px;margin:4px 0 0}.chart-note{color:var(--muted);font-size:12px;margin:0}.chart-empty-state{color:var(--muted);font-size:12px;margin:0;padding:24px 0}.pc-action-modal{max-width:480px}.incident-management-tab{display:grid;gap:4px}.add-shelter-modal-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000002e;display:grid;gap:20px;max-width:560px;padding:28px;width:100%}.add-shelter-modal-title-row{align-items:flex-start;display:flex;justify-content:space-between}.modal-close-button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:20px;line-height:1;padding:0}.add-shelter-modal-footer{display:flex;gap:12px;justify-content:flex-end}.add-shelter-modal-footer button{padding:13px 24px}.form-error-message{color:var(--red);font-size:12px;margin:0}.dashboard-header-actions{align-items:center;display:flex;gap:8px}.dashboard-header-actions .outline-button{flex:none}.timeline-note{margin:0 0 14px}.timeline-list{display:grid;gap:10px}.timeline-row{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;gap:14px;grid-template-columns:90px 180px 160px auto 1fr;padding:12px 16px}.timeline-row-time,.timeline-row-shelter{color:var(--ink);font-size:13px;font-weight:700}.timeline-row-reporter{color:var(--muted);font-size:12px}.timeline-row-summary{color:var(--muted);font-size:12px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
