@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
:root{color-scheme:light;--bg:#f0f4fa;--surface:#fff;--ink:#16203a;--sub:#52617c;--line:#cad4e2;--navy:#0d1b4a;--dia-main:#a51e6d;--dia-main-soft:#fff1f8;--dia-alt:#39729e;--dia-alt-soft:#edf5fc;--dia-done:#02775f;--dia-done-soft:#eaf8f3;--dia-warn:#925800;--dia-warn-soft:#fff6e5;--dia-box:#fff;--dia-ink:#16203a;--dia-sub:#52617c;--dia-line:#8a9ab1}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#080f22;--surface:#111d36;--ink:#ebf0f9;--sub:#b5c2d8;--line:#344463;--navy:#b7cbff;--dia-main:#ff93c9;--dia-main-soft:#331d32;--dia-alt:#91c4f4;--dia-alt-soft:#182f48;--dia-done:#58ddba;--dia-done-soft:#103930;--dia-warn:#ffcf7b;--dia-warn-soft:#382b16;--dia-box:#111d36;--dia-ink:#ebf0f9;--dia-sub:#b5c2d8;--dia-line:#8194b4}}
:root[data-theme=dark]{color-scheme:dark;--bg:#080f22;--surface:#111d36;--ink:#ebf0f9;--sub:#b5c2d8;--line:#344463;--navy:#b7cbff;--dia-main:#ff93c9;--dia-main-soft:#331d32;--dia-alt:#91c4f4;--dia-alt-soft:#182f48;--dia-done:#58ddba;--dia-done-soft:#103930;--dia-warn:#ffcf7b;--dia-warn-soft:#382b16;--dia-box:#111d36;--dia-ink:#ebf0f9;--dia-sub:#b5c2d8;--dia-line:#8194b4}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.85 'Noto Sans JP',sans-serif}a{color:var(--dia-main);text-underline-offset:4px;overflow-wrap:anywhere}button,summary,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--dia-alt);outline-offset:4px}h1,h2,h3{line-height:1.5;font-weight:900}h1{font-size:clamp(27px,3.3vw,38px);margin:8px 0 12px}h2{font-size:25px;margin:0 0 18px}h3{font-size:19px}p{margin:10px 0 20px}ul,ol{padding-left:1.4em}li{margin:6px 0}small,.small{font-size:13px;color:var(--sub)}code{font-size:.9em;overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:16px;border:1px solid var(--line);font-size:14px}button{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:8px 14px}.skip{position:absolute;left:12px;top:-100px;z-index:10}.skip:focus{top:12px;background:var(--surface);padding:12px}
.rail{position:fixed;inset:0 auto 0 0;width:238px;background:var(--surface);border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;z-index:4}.brand{font-weight:900;letter-spacing:.08em;color:var(--navy);text-decoration:none;font-size:17px}.brand small{display:block;letter-spacing:.04em;font-weight:500;margin-top:5px}.nav{display:grid;gap:5px;margin-top:30px}.nav a{display:block;padding:11px 13px;border-radius:5px;text-decoration:none;font-size:15px;font-weight:700;color:var(--sub)}.nav a[aria-current=page]{color:var(--dia-main);background:var(--dia-main-soft)}.rail-bottom{margin-top:auto;padding-top:26px}.rail-bottom button{width:100%}.shell{margin-left:238px;padding:34px clamp(20px,4vw,56px) 64px;max-width:1650px}.eyebrow{font-size:13px;font-weight:700;letter-spacing:.09em;color:var(--dia-main)}.lead{color:var(--sub);max-width:850px}.section{margin-top:36px}.slot-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.slot-card{border:1px solid var(--line);background:var(--surface);padding:22px;border-radius:7px;text-decoration:none;color:var(--ink);display:block}.slot-card:hover{border-color:var(--dia-main)}.slot-card h3{margin:12px 0 7px;font-size:18px}.slot-card p{margin:7px 0;color:var(--sub);font-size:14px}.slot-letter{color:var(--dia-main);font-size:22px;font-weight:900}.slot-card.b .slot-letter{color:var(--dia-alt)}.badge{display:inline-block;font-size:13px;line-height:1.5;padding:4px 8px;border:1px solid var(--line);border-radius:4px;color:var(--sub);background:var(--bg)}.badge.warn{color:var(--dia-warn);background:var(--dia-warn-soft);border-style:dashed}.badge.ok{color:var(--dia-done);background:var(--dia-done-soft)}.flex{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.panel,.stage,.doc{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:24px;min-width:0}.notice{background:var(--dia-warn-soft);border:1px dashed var(--dia-warn);padding:17px 20px;border-radius:5px;color:var(--ink);font-size:14px;margin:20px 0}.notice p{margin:5px 0}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--sub)}.legend span:before{content:'';display:inline-block;width:12px;height:12px;background:var(--dia-main);margin-right:7px}.legend .common:before{background:var(--dia-alt)}.legend .check:before{background:var(--dia-warn)}figure{margin:18px 0 26px;background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden}.scrollx{max-width:100%;overflow-x:auto}.scrollx svg{display:block;width:100%;min-width:900px;height:auto}.flow-trigger:hover rect,.flow-trigger:focus-visible rect{stroke-width:3.5}.flow-trigger{text-decoration:none}figcaption{padding:17px 22px;border-top:1px solid var(--line);font-size:14px;color:var(--sub)}figcaption b{color:var(--ink)}.table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:5px}table{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface)}th,td{text-align:left;vertical-align:top;padding:13px 15px;border-bottom:1px solid var(--line);min-width:110px}th{background:var(--bg);font-weight:700;color:var(--sub)}tr:last-child td{border-bottom:0}.stage-table td:first-child{min-width:170px}.stage-table td:nth-child(3){min-width:250px}.stage-table a{font-weight:700}.stage{margin:15px 0;padding:0;scroll-margin-top:90px}.stage summary{padding:19px 22px;font-size:17px;font-weight:700}.stage summary span{margin-left:8px}.stage[open] summary{border-bottom:1px solid var(--line)}.stage-body{padding:22px}.standard{padding:15px 18px;background:var(--bg);margin-bottom:20px;font-size:14px}.standard strong{display:block;margin-bottom:5px;color:var(--dia-main)}.standard p{margin:0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field h4{font-size:14px;color:var(--sub);margin:0 0 7px}.field ul{padding-left:1.15em;margin:0;font-size:15px}.field.empty p{color:var(--sub);font-size:14px;margin:0}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.status-cell{background:var(--bg);border-radius:4px;padding:9px 12px;font-size:13px}.status-cell b{display:block;font-size:14px}.stage-index{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.stage-index a{font-size:14px;padding:6px 11px;border:1px solid var(--line);border-radius:4px;text-decoration:none;background:var(--surface)}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.meta-grid div{border-bottom:1px solid var(--line);padding-bottom:13px}.meta-grid dt{color:var(--sub);font-size:14px}.meta-grid dd{margin:4px 0 0;overflow-wrap:anywhere}.doc-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:22px}.doc-nav{display:flex;flex-direction:column;gap:8px;font-size:14px}.doc-nav a{padding:9px 11px;text-decoration:none;border:1px solid var(--line);background:var(--surface);border-radius:4px}.doc-nav a[aria-current=page]{border-color:var(--dia-main);color:var(--dia-main);font-weight:700}.doc h1{font-size:27px}.doc h2{margin-top:35px;font-size:22px}.doc h3{margin-top:25px}.doc blockquote{margin:15px 0;padding:12px 18px;background:var(--bg);color:var(--sub)}.doc table{min-width:620px}.source-note{font-size:13px;color:var(--sub);padding-top:15px;border-top:1px solid var(--line);overflow-wrap:anywhere}dialog{padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);width:min(840px,calc(100vw - 30px));max-height:85vh;overflow-y:auto}dialog::backdrop{background:rgb(6 16 42 / .68)}.dialog-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:start;gap:16px;background:var(--surface);padding:20px 24px;border-bottom:1px solid var(--line);z-index:1}.dialog-head h2{font-size:22px;margin:0}.dialog-content{padding:24px}footer{margin-top:42px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--sub)}
@media(max-width:1050px){.rail{width:200px;padding:20px 12px}.shell{margin-left:200px;padding:28px 22px}.doc-layout{grid-template-columns:1fr}.doc-nav{flex-direction:row;flex-wrap:wrap}.doc-nav a{font-size:13px}}@media(max-width:740px){.rail{position:sticky;top:0;inset:auto;width:100%;padding:12px 16px;display:grid;grid-template-columns:1fr auto;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:14px}.brand small{display:none}.nav{grid-column:1 / -1;display:flex;overflow-x:auto;margin-top:10px;gap:4px}.nav a{padding:7px 10px;white-space:nowrap;font-size:14px}.rail-bottom{grid-column:2;grid-row:1;margin:0;padding:0}.rail-bottom button{font-size:13px;padding:4px 8px}.rail-bottom small{display:none}.shell{margin:0;padding:23px 16px 42px}.slot-grid,.field-grid,.meta-grid{grid-template-columns:1fr}.slot-grid{gap:12px}.slot-card{padding:17px}.section{margin-top:29px}.panel,.doc{padding:18px}.status-grid{grid-template-columns:repeat(2,1fr)}h2{font-size:22px}.stage summary{padding:16px}.stage-body{padding:16px}.doc-nav{max-height:190px;overflow:auto}.dialog-content{padding:18px}.dialog-head{padding:17px}.table-scroll{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}.event-card{display:block;border:1px solid var(--line);background:var(--surface);padding:22px;border-radius:7px;text-decoration:none;color:var(--ink);min-width:0}.event-card:hover{border-color:var(--dia-main)}.event-card h3{margin:12px 0 8px}.event-card p{font-size:14px;color:var(--sub);margin:8px 0}.event-card[hidden]{display:none}.event-filters{display:flex;flex-wrap:wrap;gap:15px;margin:24px 0}.event-filters label{display:grid;gap:6px;font-size:14px;flex:1;min-width:140px}.event-filters label:first-child{flex:2;min-width:220px}.event-filters input,.event-filters select{width:100%;min-width:0;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink)}select:focus-visible,input:focus-visible{outline:3px solid var(--dia-alt);outline-offset:2px}
/* Human-facing common flow and source calendar. */
.identity-rule{border-left:5px solid var(--dia-main);padding:15px 22px;background:var(--surface)}.identity-rule>strong{font-size:clamp(24px,3vw,35px);overflow-wrap:anywhere}.identity-rule p{font-size:14px;margin:8px 0 0}.upcoming-link{font-weight:700}.human-flow .scrollx svg{min-width:750px;max-width:950px;margin:auto}.flow-fields{display:grid;gap:22px}.flow-fields section{min-width:0;overflow-wrap:anywhere}.flow-fields h3{font-size:16px;color:var(--dia-main);border-bottom:1px solid var(--line);padding-bottom:8px;margin:0}.flow-fields ul{margin:10px 0;padding-left:22px}.resource-label{display:block;color:var(--sub);font-size:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface)}.weekday,.calendar-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;min-width:0}.weekday{text-align:center;background:var(--bg);font-size:13px}.calendar-day{min-height:125px}.calendar-day.blank{background:var(--bg)}.day-number{font-size:14px;font-weight:700}.calendar-event{display:block;background:var(--dia-main-soft);border-left:3px solid var(--dia-main);padding:8px 6px;color:var(--ink);text-decoration:none;font-size:12px;line-height:1.6;margin:5px 0}.calendar-event strong,.calendar-event time,.calendar-event span{display:block}.calendar-event strong{font-weight:700;margin:4px 0}.calendar-event span{color:var(--sub);font-size:11px}.calendar-event:hover{outline:1px solid var(--dia-main)}[hidden]{display:none!important}.mobile-month{display:none}.calendar-month{scroll-margin-top:100px}
@media(max-width:740px){.calendar-grid{display:block;border:0;background:none}.weekday,.calendar-day:not(.has-event){display:none}.calendar-day.has-event{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;min-height:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);margin:10px 0;padding:12px}.day-number{padding-top:8px}.mobile-month{display:inline}.calendar-event{font-size:15px;margin:0;padding:10px}.calendar-event span{font-size:13px}.human-flow .scrollx svg{min-width:750px}.human-flow figcaption{font-size:12px;padding:12px}.calendar-day.filtered-empty{display:none}}

.flow-scroll-hint{display:none;font-size:12px;color:var(--sub);margin:0;padding:10px 14px;background:var(--bg)}@media(max-width:1000px){.flow-scroll-hint{display:block}}

#dialog-close{white-space:nowrap;flex-shrink:0}

.flow-fields .resource-note{display:block;color:#64748b;font-size:.9em;margin-top:.3em;overflow-wrap:anywhere}.flow-fields .resource-label{color:#64748b}[data-theme="dark"] .flow-fields .resource-note,[data-theme="dark"] .flow-fields .resource-label{color:#a3a3a3}

@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .flow-fields .resource-note,:root:not([data-theme=light]) .flow-fields .resource-label{color:#a3a3a3}}

/* Aggregation definitions and evidence-based renovation status. */
.metric-index{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}.metric-index a{padding:8px 12px;border:1px solid var(--line);border-radius:5px;background:var(--surface);font-size:14px;text-decoration:none}.metric-formula{border-left:4px solid var(--dia-main);padding:12px 18px;background:var(--dia-main-soft);font-weight:700}.metric-details{margin:0;overflow-wrap:anywhere}.metric-details>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid var(--line)}.metric-details dt{font-weight:700;color:var(--sub)}.metric-details dd{margin:0}.metric-details ul{margin:0}.review-card{margin:12px 0;border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow-wrap:anywhere}.review-card summary{padding:18px;font-weight:700}.review-card .badge{margin-left:8px}.review-body{padding:0 20px 20px}.metric-card h2{font-size:22px}@media(max-width:740px){.metric-details>div{grid-template-columns:1fr;gap:5px}.metric-index a{font-size:13px}.metric-card h2{font-size:20px}.review-card .badge{margin:8px 0 0;display:inline-block}}
