:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172a35;font-synthesis:none;background:#eef4f6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}*{box-sizing:border-box}html,body{min-width:320px;max-width:100%;overflow-x:clip}body{background:#eef4f6;margin:0}a{color:#08727a}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}:focus-visible{outline-offset:2px;outline:3px solid #0f7c8399}.shell{width:min(100%,980px);margin:auto;padding:12px 20px 40px}.dashboard-shell{max-width:820px}.dashboard-header,.detail-header{background:#fff;border:1px solid #d7e4e7;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:10px 14px 9px;display:grid;position:relative}.dashboard-header:after,.detail-header:after{content:"";opacity:.65;background:#8ccfd0;width:42px;height:2px;position:absolute;bottom:6px;right:18px}.brand-row{grid-column:1/-1;align-items:center;gap:8px;min-height:34px;display:flex}.brand-row .brand-kicker{margin-left:auto}.brand-logo{object-fit:contain;flex:0 0 60px;width:60px;height:41px}.brand-name{color:#102c36;letter-spacing:-.015em;font-size:1rem;font-weight:800}.brand-kicker{color:#4b7479;letter-spacing:.08em;font-size:.72rem;font-weight:800}h1{color:#102c36;letter-spacing:-.02em;margin:0;font-size:clamp(1.42rem,4vw,2rem);line-height:1.2}.subtitle{color:#60757c;align-self:end;margin:0;font-size:.86rem;line-height:1.45}.status-line{color:#526b73;align-self:center;margin:0;font-size:.78rem;font-weight:700}.header-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.header-actions .refresh-row{margin:0}.refresh-row{justify-content:flex-end;margin-top:12px;display:flex}.refresh-button{color:#fff;background:#0f7c83;border:1px solid #0f7c83;border-radius:10px;min-height:40px;padding:8px 12px;font-size:.82rem;font-weight:800}.refresh-button:disabled{opacity:.55;cursor:wait}.about-wrap{grid-column:1/-1;margin-top:2px}.about-toggle{color:#08727a;background:0 0;border:0;min-height:36px;padding:5px 0;font-size:.78rem;font-weight:800}.about-panel{color:#526b73;border-top:1px solid #e1ebed;max-width:65ch;margin-top:4px;padding:9px 0 1px;font-size:.8rem;line-height:1.55}.detail-header{margin-bottom:12px}.detail-header h1,.detail-header .subtitle{grid-column:1/-1}.section,.filters,.state-card,.notice{background:#fff;border:1px solid #d7e4e7;border-radius:14px;margin-top:10px;padding:12px}.dashboard-block{box-shadow:0 2px 8px #315b640b}.notice{color:#526b73}.notice.warning{color:#765500;background:#fff8e5;border-color:#ead69c}.state-card.error{color:#a52b2b}.section-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}h2{color:#1b3a43;margin:0 0 10px;font-size:1.06rem;line-height:1.3}h3{margin:7px 0}h4{margin:14px 0 6px}.empty{color:#657980;margin:5px 0;font-size:.9rem}.traffic-summary{padding:8px}.traffic-summary h2{color:#56727a;margin:0 0 5px;font-size:.84rem}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.summary-card{color:#17323b;text-align:left;background:#fbfdfd;border:1px solid #d9e5e7;border-radius:9px;gap:1px;min-width:0;min-height:62px;padding:7px;display:grid}.summary-card strong{font-size:.88rem}.summary-date{color:#6b8086;font-size:.72rem}.summary-status{color:#36545d;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800;line-height:1.25;overflow:hidden}.summary-card.severity-red{background:snow;border-inline-start:4px solid #b43b36}.summary-card.severity-orange{background:#fffdf8;border-inline-start:4px solid #c87918}.summary-card.severity-yellow{background:#fffef5;border-inline-start:4px solid #b39b00}.summary-card:hover,.summary-card:focus-visible{border-color:#0f7c83}.important-week{padding:10px}.important-week h2{margin-bottom:6px}.important-week-list{gap:5px;display:grid}.important-week-card{border-inline-start:3px solid #b43b36;border-top:1px solid #e0e9eb;border-bottom:1px solid #e0e9eb;border-right:1px solid #e0e9eb;border-radius:8px;padding:7px 9px}.important-week-card h3{margin:0;font-size:.9rem}.important-week-card .impact-summary{margin:5px 0 0}.next-attention{border-color:#c8dfe2;margin-top:6px;padding:12px;box-shadow:0 3px 12px #315b6414}.next-attention h2{margin-bottom:7px}.next-attention-card{border-inline-start:5px solid #b43b36;background:#fff;border-top:1px solid #e0e9eb;border-bottom:1px solid #e0e9eb;border-right:1px solid #e0e9eb;border-radius:10px;padding:11px 13px}.next-attention-label{color:#8c241e;letter-spacing:.08em;margin:0 0 3px;font-size:.76rem;font-weight:900}.next-attention-date{color:#172a35;margin:0;font-size:clamp(1.08rem,3vw,1.3rem);font-weight:900;line-height:1.3}.next-attention-card h3{margin:4px 0 6px;font-size:clamp(1rem,2.6vw,1.14rem);line-height:1.35}.next-attention-card .impact-summary{margin:0 0 4px}.next-attention-location{color:#526b73;margin:0;font-size:.83rem;font-weight:700}.road-note{color:#36545d;margin:6px 0 0;font-size:.84rem;font-weight:700}.expressway-summary{color:#173b49;background:#f8fcfe;border:1px solid #bcd9e4;border-radius:11px;margin-top:9px}.expressway-summary.severity-red{background:snow;border-color:#db9995}.expressway-summary.severity-orange{background:#fffdf7;border-color:#e6c48d}.expressway-summary>summary{list-style:none}.expressway-summary>summary::-webkit-details-marker{display:none}.expressway-bar{cursor:pointer;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:7px;min-height:48px;padding:7px 10px;display:grid}.expressway-icon{font-size:1.03rem}.expressway-bar strong{white-space:nowrap;font-size:.9rem}.expressway-status{color:#476875;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:700;overflow:hidden}.severity-red .expressway-status{color:#a12f2a}.severity-orange .expressway-status{color:#8a5a0e}.expressway-chevron{color:#08727a;font-size:1.35rem;line-height:1;transition:transform .18s}.expressway-summary[open] .expressway-chevron{transform:rotate(90deg)}.expressway-detail-panel{border-top:1px solid #d5e6ea;padding:10px 12px 12px}.expressway-detail-panel .muted{margin:0 0 6px}.expressway-detail{color:#3a5964;margin:4px 0;font-size:.84rem;line-height:1.4}.view-mode-tabs{background:#e8f2f2;border:1px solid #c8dddf;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-top:8px;padding:3px;display:grid}.view-mode-tab{color:#42626b;background:0 0;border:0;border-radius:8px;min-height:40px;padding:7px 12px;font-weight:800}.view-mode-tab[aria-selected=true]{color:#fff;background:#0f7c83;box-shadow:0 2px 5px #0f7c8333}.view-mode-tab:hover:not([aria-selected=true]){background:#d9ecec}.filters{background:#f9fbfb;margin-top:6px;padding:4px 9px}.filters-heading{justify-content:space-between;align-items:center;min-height:34px;display:flex}.filters-toggle,.filter-quick{color:#08727a;background:0 0;border:1px solid #cbdcde;border-radius:9px;min-height:36px;padding:6px 10px;font-size:.82rem;font-weight:800}.filters-toggle:hover,.filters-toggle:focus-visible,.filter-quick:focus-visible{border-color:#0f7c83;outline:3px solid #0f7c8333}.filter-quick{margin-top:11px}.filter-quick.is-active{color:#8c241e;background:#fff0ed;border-color:#ca7d73}.filter-grid{grid-template-columns:minmax(180px,2fr) repeat(5,minmax(110px,1fr));gap:10px;margin-top:10px;display:grid}.field{color:#526b73;gap:5px;font-size:.8rem;display:grid}input,select{width:100%;color:inherit;background:#fff;border:1px solid #cbdcde;border-radius:9px;padding:9px}input[type=checkbox]{width:20px;height:20px}.results-region{margin-top:10px}.period-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:0;padding:0;display:grid}.period-tab{color:#49646c;white-space:nowrap;background:#fff;border:1px solid #d1dfe1;border-radius:8px;min-width:0;min-height:40px;padding:6px 4px;font-size:.78rem;font-weight:800}.period-tab[aria-selected=true]{color:#075f79;background:#e2f1f1;border-color:#0f7c83;box-shadow:inset 0 -3px #0f7c83}.period-tab:hover,.period-tab:focus-visible{border-color:#0f7c83;outline:3px solid #0f7c8333}.period-panel{background:0 0;border:0;min-height:80px;padding:0}.period-panel>.section-heading{margin:9px 2px 7px}.period-panel>.section-heading h2{margin:0;font-size:1rem}.calendar-header{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.calendar-header h2{text-align:center;margin:0}.calendar-nav{color:#08727a;background:#fff;border:1px solid #cbdcde;border-radius:9px;min-height:42px;padding:7px 9px}.calendar-nav:disabled{color:#9aa8b8;cursor:not-allowed}.calendar-summary{color:#526b73;text-align:center;margin:-1px 0 12px;font-size:.83rem;font-weight:800}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.calendar-weekdays{color:#667980;text-align:center;margin-bottom:3px;font-size:.75rem;font-weight:800}.calendar-cell{color:#172a35;text-align:left;background:#fff;border:1px solid #d9e5e7;border-radius:8px;flex-direction:column;gap:3px;min-width:0;min-height:68px;padding:6px 3px;display:flex}.calendar-cell:hover,.calendar-cell:focus-visible{border-color:#0f7c83;outline:3px solid #0f7c8333}.calendar-cell.is-empty{cursor:default;background:0 0;border-color:#0000}.calendar-cell.is-today{box-shadow:inset 0 0 0 2px #0f7c83}.calendar-cell.is-selected{outline-offset:-3px;outline:3px solid #345c83}.calendar-day-number{font-size:.83rem;font-weight:800}.calendar-cell.is-today .calendar-day-number:after{content:" 今日";color:#08727a;font-size:.62rem}.calendar-event-marker{white-space:nowrap;text-overflow:ellipsis;border-radius:5px;padding:3px;font-size:.62rem;font-weight:800;line-height:1.15;display:block;overflow:hidden}.marker-red{color:#8c241e;background:#ffe4e1}.marker-orange{color:#795000;background:#fff0cc}.marker-yellow{color:#665900;background:#fff8cf}.marker-road{color:#17617b;background:#e3f0f7}.calendar-event-count{color:#667980;min-height:1em;font-size:.62rem}.calendar-day-panel{border-top:1px solid #d7e4e7;margin-top:12px;padding-top:12px}.calendar-day-panel h3{margin:0 0 8px;font-size:1rem}.calendar-event-list{margin:0;padding-left:20px}.calendar-event-list li+li{margin-top:8px}.calendar-event-link{font-weight:800}.calendar-event-meta{color:#667980;font-size:.78rem;display:block}.event-grid{grid-template-columns:minmax(0,1fr);gap:7px;display:grid}.event-card,.change-card{background:#fff;border:1px solid #d7e4e7;border-radius:12px}.event-card{border-inline-start:4px solid #bdcbd0;padding:11px 13px}.event-card.impact-high{border-inline-start-color:#b43b36;padding:13px 14px}.event-card.impact-medium{border-inline-start-color:#c87918}.event-card.impact-low{border-inline-start-color:#a8b9bd}.event-card.priority-high{border-inline-start-color:#b43b36;padding:13px 14px}.event-card.priority-medium{border-inline-start-color:#c87918}.event-card.priority-low{border-inline-start-color:#a8b9bd}.event-card.is-watch{border-inline-start-color:#5e63a8}.event-card.is-compact{border-inline-start-width:3px;padding:7px 10px}.card-top,small{color:#667980;font-size:.78rem;line-height:1.4}.event-title-link{color:#172a35;text-underline-offset:3px;text-decoration-thickness:2px}.event-card.impact-high .event-title-link{font-size:1.1rem;line-height:1.3}.event-card.impact-medium .event-title-link{font-size:1rem;line-height:1.35}.event-card.is-compact .event-title-link{font-size:.92rem;line-height:1.25}.venue,.access,.notes,.parking,.forecast-reasons{color:#4f6871;margin:5px 0;font-size:.86rem;line-height:1.45}.impact-summary{flex-wrap:wrap;align-items:center;gap:5px;margin:6px 0;display:flex}.impact-badge,.attention-badge{border-radius:999px;padding:3px 7px;font-size:.73rem;font-weight:800;display:inline-flex}.impact-description{color:#4f6871;font-size:.8rem}.impact-high .impact-badge{color:#8c241e;background:#ffe1dc}.impact-medium .impact-badge{color:#795000;background:#fff0cc}.impact-low .impact-badge{color:#526b73;background:#edf2f3}.impact-unknown .impact-badge{color:#4e5e72;background:#edf0f4}.priority-medium .impact-badge{color:#795000;background:#fff0cc}.priority-high .impact-badge{color:#8c241e;background:#ffe1dc}.attention-badge{color:#353777;background:#e7e7ff}.forecast-badge{color:#39448c;background:#eef1ff;border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:800;display:inline-flex}.forecast-high{color:#8d351d;background:#fce6dc}.forecast-medium{color:#795000;background:#fff3d7}.chips{flex-wrap:wrap;gap:5px;margin:9px 0;display:flex}.chip,.severity{background:#e7f0f6;border-radius:999px;padding:4px 8px;font-size:.74rem;font-weight:700;display:inline-flex}.chip.restriction,.severity-critical,.severity-high{color:#a32d25;background:#ffe1dc}.change-card{color:#172a35;align-items:center;gap:9px;margin-bottom:7px;padding:10px 11px;text-decoration:none;display:flex}.change-card:hover,.change-card:focus-visible{border-color:#0f7c83;outline:3px solid #0f7c8333}.change-detail-link{color:#08727a;white-space:nowrap;margin-left:auto;font-size:.78rem;font-weight:800}.historical-evidence{border-top:1px solid #d7e4e7;margin-top:14px;padding-top:12px}.basis-badge{color:#075f79;background:#e7f0f6;border-radius:999px;padding:3px 7px;font-size:.73rem;font-weight:800;display:inline-flex}.restriction-detail{color:#624c00;background:#fff4d8;border-radius:10px;margin-top:9px;padding:10px}.restriction-detail p{margin:4px 0 0}.official-links{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:10px;display:flex}.official-primary{font-weight:800}.official-links-more summary{color:#08727a;cursor:pointer}.official-links-more ul{margin:7px 0 0;padding-left:20px}.official-links-more li+li{margin-top:4px}.traffic-restriction-links{background:#f3fbfa;border:1px solid #c8dfe2;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin:11px 0;padding:10px 11px;display:flex}.traffic-restriction-links strong{color:#075f79}.traffic-restriction-link{color:#075f79;background:#fff;border:1px solid #0f7c83;border-radius:8px;padding:7px 9px;font-size:.82rem;font-weight:800;text-decoration:none}.traffic-restriction-link:hover,.traffic-restriction-link:focus-visible{outline:3px solid #0f7c8333}.traffic-restriction-link.historical{color:#795000;border-color:#bd8e35}.compact-impact{color:#526b73;margin:2px 0 0;font-size:.75rem}.compact-events{border-top:1px solid #d7e4e7;grid-column:1/-1;padding-top:6px}.compact-events>summary{cursor:pointer;color:#496b74;padding:7px 0;font-size:.82rem;font-weight:800}.compact-grid{gap:7px;margin-top:5px;display:grid}@media (width>=781px){.event-grid{max-width:760px}.section,.filters{padding:16px}}@media (width<=780px){.shell{padding:max(8px, env(safe-area-inset-top)) 10px calc(24px + env(safe-area-inset-bottom))}.dashboard-header,.detail-header{border-radius:13px;grid-template-columns:minmax(0,1fr);gap:2px;padding:7px 9px}.dashboard-header:after,.detail-header:after{width:30px;bottom:6px;right:14px}.brand-kicker{font-size:.66rem}.brand-row .brand-kicker{display:none}.brand-row{gap:7px;min-height:34px}.brand-logo{flex-basis:58px;width:58px;height:39px}.brand-name{font-size:.9rem}h1{font-size:1.25rem}.dashboard-header>.subtitle{display:none}.detail-header>.subtitle{font-size:.75rem}.status-line{font-size:.71rem}.header-actions{justify-content:space-between}.refresh-button{min-height:38px;padding-inline:8px;font-size:.72rem}.about-toggle{min-height:32px}.section{padding:9px}.traffic-summary{padding:8px}.summary-card{min-height:60px;padding:6px}.summary-card strong{font-size:.82rem}.summary-status{font-size:.68rem}.expressway-bar{grid-template-columns:auto auto minmax(0,1fr) auto;gap:5px;min-height:46px;padding:6px 8px}.expressway-bar strong{font-size:.82rem}.expressway-status{font-size:.72rem}.view-mode-tab,.filters-toggle,.filter-quick,.calendar-nav,.calendar-cell{min-height:44px}.filter-grid,.filter-grid,.event-grid{grid-template-columns:1fr}.period-tabs{overflow-x:auto}.period-tab{min-height:42px;font-size:.72rem}.calendar-cell{min-height:64px}.calendar-event-marker{font-size:.58rem}.calendar-header{gap:4px}.calendar-nav{padding-inline:6px;font-size:.77rem}.event-card.impact-high,.event-card.priority-high{padding:11px 12px}.impact-summary{align-items:flex-start}.official-links{flex-direction:column;align-items:flex-start;gap:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
