.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app__body{flex:1;display:flex;overflow:hidden}.toolbar{-webkit-user-select:none;user-select:none;background:#1e1e1e;flex-shrink:0;align-items:center;gap:4px;height:48px;padding:0 12px;display:flex}.toolbar__logo{color:#fff;letter-spacing:.04em;margin-right:4px;padding:0 8px;font-size:15px;font-weight:600}.toolbar__separator{background:#3a3a3a;flex-shrink:0;width:1px;height:20px;margin:0 8px}.toolbar__spacer{flex:1}.toolbar__group{align-items:center;gap:2px;display:flex}.toolbar__label{color:#888;text-transform:uppercase;letter-spacing:.06em;padding:0 4px 0 2px;font-size:11px}.toolbar__btn{color:#ccc;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:5px 10px;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:13px;transition:background .1s;display:flex}.toolbar__btn:hover{background:#2a2a2a}.toolbar__btn--primary{color:#fff;background:#0e639c;font-weight:500}.toolbar__btn--primary:hover{background:#1177b0}.toolbar__btn--dropdown{gap:6px}.toolbar__arrow{opacity:.7;font-size:10px}.toolbar__toggle-group{border:1px solid #3a3a3a;border-radius:4px;display:flex;overflow:hidden}.toolbar__toggle-item{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 10px;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:12px;transition:background .1s,color .1s}.toolbar__toggle-item:hover{color:#ccc;background:#2a2a2a}.toolbar__toggle-item[data-state=on]{color:#fff;background:#0e639c;font-weight:500}.toolbar__dropdown-content{z-index:1000;background:#252525;border:1px solid #3a3a3a;border-radius:6px;min-width:160px;padding:4px;box-shadow:0 4px 16px #0000004d,0 0 1px #0003}.toolbar__dropdown-item{color:#ccc;cursor:pointer;border-radius:4px;outline:none;justify-content:space-between;align-items:center;padding:7px 12px;font-size:13px;transition:background .1s;display:flex}.toolbar__dropdown-item[data-highlighted]{background:#2e4d6e}.toolbar__dropdown-item--active{color:#fff}.toolbar__dropdown-item--active:after{content:"✓";opacity:.8;font-size:11px}.sidebar{background:#fafafa;border-right:1px solid #e0e0e0;flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow:hidden}.sidebar__header{background:#f0f0f0;border-bottom:1px solid #e0e0e0;flex-shrink:0;align-items:center;padding:10px 14px;display:flex}.sidebar__title{color:#999;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.sidebar__tree{flex:1;padding:8px 0;overflow-y:auto}.sidebar__item{cursor:pointer;color:#333;border-radius:0;align-items:center;gap:6px;padding:5px 14px;transition:background .1s;display:flex}.sidebar__item:hover{background:#eee}.sidebar__item--active{color:#1e40af;background:#dbeafe}.sidebar__item--active .sidebar__item-badge{color:#1e40af;opacity:.7}.sidebar__item--h1{padding-left:14px;font-size:13px;font-weight:600}.sidebar__item--h2{padding-left:28px;font-size:12.5px}.sidebar__item--h3{color:#666;padding-left:44px;font-size:12px}.sidebar__item-badge{color:#999;letter-spacing:-.02em;min-width:20px;font-family:Courier New,monospace;font-size:10px;font-weight:700}.sidebar__item-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar__item--h4{color:#888;padding-left:58px;font-size:11.5px}.sidebar__empty{color:#999;padding:14px;font-size:12px}.canvas{background:#d8d8d8;flex:1;justify-content:center;align-items:flex-start;padding:40px 40px 80px;display:flex;overflow:auto}.canvas__pages{flex-direction:column;flex-shrink:0;gap:32px;display:flex}.canvas__paper{box-sizing:border-box;gap:var(--block-gap,16px);--page-content-height:calc(297mm - 20mm - 20mm);background:#fff;flex-direction:column;width:210mm;min-height:297mm;padding:20mm;display:flex;box-shadow:0 2px 12px #0000002e,0 0 1px #00000014}.canvas__paper--cover{--page-content-height:297mm;padding:0}.canvas__paper--paged{--page-content-height:calc(297mm - 20mm - 10mm);flex-direction:column;height:297mm;min-height:297mm;padding-bottom:10mm;display:flex;overflow:hidden}.canvas__paper-content{gap:var(--block-gap,16px);flex-direction:column;flex:1;display:flex;overflow:hidden}.page-footer{flex-shrink:0;margin-top:auto;padding-top:8px}.page-footer__rule{background:var(--primary,#d0d0d0);opacity:.3;height:1px;margin-bottom:6px}.page-footer__text{color:#888;text-align:center;letter-spacing:.1em;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:9px}.canvas__empty{color:#999;justify-content:center;align-items:center;height:100%;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:14px;display:flex}.doc-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--light,#a8b8c8);font-size:9px;font-weight:700}.doc-heading{font-family:var(--font);color:var(--primary);margin:0;line-height:1.4}.doc-heading--1{letter-spacing:-.03em;border-bottom:2px solid var(--primary);padding:8px 0;font-size:22pt;font-weight:700;line-height:1.2}.doc-heading--2{letter-spacing:-.02em;border-bottom:1px solid var(--rule,#0000001a);padding-bottom:8px;font-size:15pt;font-weight:700}.doc-heading--3{border-left:2px solid var(--accent);padding-left:8px;font-size:12pt;font-weight:700}.doc-heading--4{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);font-size:10pt;font-weight:700}.doc-paragraph{font-family:var(--font);color:var(--text);margin:0;font-size:11px;line-height:1.75}.doc-paragraph--lead{color:var(--primary);border-left:3px solid var(--accent);padding-left:10px;font-size:13px;font-weight:600;line-height:1.5}.doc-inline-code{background:var(--bg,#f7f9fc);border-radius:2px;padding:1px 4px;font-family:DM Mono,monospace;font-size:.9em}.doc-list{font-family:var(--font);color:var(--text);margin:0;padding-left:28px;font-size:11px;line-height:1.75}.doc-list--unordered{list-style-type:disc}.doc-list--ordered{list-style-type:decimal}.doc-list__item{margin-bottom:4px}.doc-list__item:last-child{margin-bottom:0}.doc-list .doc-list{margin-top:4px;margin-bottom:0}.doc-table-wrapper{margin:0;overflow-x:auto}.doc-table{border-collapse:collapse;width:100%;font-family:var(--font);color:var(--text);font-size:10px}.doc-table__th{background:var(--primary);color:#fff;letter-spacing:.1em;text-transform:uppercase;text-align:left;border:1px solid #ffffff1a;padding:8px 12px;font-size:9px;font-weight:600}.doc-table__tr:nth-child(2n) .doc-table__td{background:var(--bg,#fafafa)}.doc-table__td{border:1px solid var(--rule,#0000001a);vertical-align:top;padding:8px 12px;line-height:1.4}.doc-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:2px 8px;font-size:9px;font-weight:700;display:inline-block}.doc-badge--high{color:#b91c1c;background:#dc26261f}.doc-badge--mid{color:#b45309;background:#f59e0b1f}.doc-badge--low{background:var(--bg,#a8b8c833);color:var(--muted)}.doc-image{margin:0}.doc-image__placeholder{background:var(--bg,#f8f8f8);border:2px dashed var(--rule,#0000001a);border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:160px;padding:40px 20px;display:flex}.doc-image__icon{opacity:.4;font-size:32px}.doc-image__label{color:var(--muted);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:12px}.doc-image__img{max-width:100%;display:block}.doc-caption{font-family:var(--font);color:var(--muted);letter-spacing:.03em;margin:0;font-size:9px}.doc-note{font-family:var(--font);color:var(--light,#a8b8c8);margin:0;font-size:9px;line-height:1.7}.doc-divider{background:var(--rule,#0000001a);border:none;height:1px;margin:0}.doc-pagebreak{color:var(--muted);align-items:center;gap:12px;margin:24px 0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:11px;display:flex}.doc-pagebreak:before,.doc-pagebreak:after{content:"";background:repeating-linear-gradient(90deg, var(--rule,#0000001a) 0, var(--rule,#0000001a) 6px, transparent 6px, transparent 12px);flex:1;height:1px}.doc-pagebreak--skip{opacity:.5}@media print{.doc-pagebreak{visibility:hidden;page-break-after:always;height:0;margin:0}.doc-pagebreak:before,.doc-pagebreak:after{display:none}}.doc-kpi-cards{gap:10px;margin:0;display:grid}.doc-kpi-cards--1{grid-template-columns:1fr}.doc-kpi-cards--2{grid-template-columns:repeat(2,1fr)}.doc-kpi-cards--3{grid-template-columns:repeat(3,1fr)}.doc-kpi-cards--4{grid-template-columns:repeat(2,1fr)}.doc-kpi-card{background:var(--bg,#f7f9fc);border-left:3px solid var(--accent);border-radius:3px;padding:14px 16px}.doc-kpi-card--navy{border-left-color:var(--primary)}.doc-kpi-card__label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:9px;font-weight:600}.doc-kpi-card__value{color:var(--accent);font-family:DM Mono,DM Sans,monospace;font-size:22px;font-weight:700}.doc-kpi-card--navy .doc-kpi-card{color:var(--primary)}.doc-kpi-card__unit{color:var(--muted);margin-left:4px;font-size:11px;font-weight:400}.doc-kpi-card__delta{color:var(--accent);margin-top:4px;font-size:10px;font-weight:500}.doc-kpi-card__delta--down{color:#b91c1c}.doc-insight{font-family:var(--font);border-radius:0 2px 2px 0;margin:0;padding:14px 16px;font-size:12px;font-weight:500;line-height:1.55}.doc-insight--primary{border-left:3px solid var(--primary);background:var(--bg,#f7f9fc);color:var(--primary)}.doc-insight--secondary{border-left:3px solid var(--accent);background:var(--bg,#f7f9fc);color:var(--text)}.doc-insight--callout{color:var(--text);background:#4a7fa50d;border:1px solid #4a7fa54d}.doc-columns{gap:16px;margin:0;display:grid}.doc-columns--4-8{grid-template-columns:30% 1fr}.doc-columns--6-6{grid-template-columns:1fr 1fr}.doc-columns--3-9{grid-template-columns:25% 1fr}.doc-columns--4-4-4{grid-template-columns:repeat(3,1fr)}.doc-columns__col{gap:var(--block-gap,16px);flex-direction:column;display:flex}.doc-flow{margin:0}.doc-flow__title{color:var(--primary);margin-bottom:12px;font-size:12px;font-weight:700}.doc-flow__steps{flex-direction:column;display:flex}.doc-flow__step{grid-template-columns:28px 1fr;align-items:flex-start;gap:10px;padding-bottom:16px;display:grid;position:relative}.doc-flow__step:not(:last-child):after{content:"";background:var(--rule,#0000001a);width:2px;height:calc(100% - 16px);position:absolute;top:28px;left:13px}.doc-flow__step:last-child{padding-bottom:0}.doc-flow__num{background:var(--primary);color:#fff;z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-family:DM Mono,monospace;font-size:11px;font-weight:700;display:flex;position:relative}.doc-flow__content{padding-top:4px}.doc-flow__text{font-family:var(--font);color:var(--primary);margin-bottom:3px;font-size:12px;font-weight:700}.doc-flow__actor{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:#4a7fa51a;border-radius:2px;margin-top:4px;padding:2px 6px;font-size:8px;font-weight:700;display:inline-block}.doc-roadmap-phase{flex-direction:column;gap:0;margin:0;display:flex}.doc-roadmap-phase__item{border-bottom:1px solid var(--rule,#0000001a);grid-template-columns:60px 1fr;gap:12px;padding:12px 0;display:grid}.doc-roadmap-phase__item:last-child{border-bottom:none}.doc-roadmap-phase__item--current .doc-roadmap-phase__label{color:var(--primary);font-weight:700}.doc-roadmap-phase__label{color:var(--accent);padding-top:2px;font-family:DM Mono,monospace;font-size:11px;font-weight:500}.doc-roadmap-phase__tasks{flex-direction:column;gap:3px;display:flex}.doc-roadmap-phase__task{font-family:var(--font);color:var(--text);font-size:11px;line-height:1.4}.doc-roadmap-layer{margin:0}.doc-roadmap-layer__header{grid-template-columns:20% repeat(auto-fit,minmax(0,1fr));gap:6px;margin-bottom:6px;display:grid}.doc-roadmap-layer__period{letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--primary);text-align:center;border-radius:2px;padding:5px 8px;font-size:9px;font-weight:700}.doc-roadmap-layer__row{grid-template-columns:20% repeat(auto-fit,minmax(0,1fr));gap:6px;margin-bottom:6px;display:grid}.doc-roadmap-layer__name{color:var(--primary);border-right:2px solid var(--rule,#0000001a);align-items:center;padding:8px 8px 8px 0;font-size:10px;font-weight:700;display:flex}.doc-roadmap-layer__cell{background:var(--bg,#f7f9fc);font-family:var(--font);color:var(--text);border-left:2px solid #0000;border-radius:2px;padding:8px 10px;font-size:10px;line-height:1.4}.doc-matrix-quad{margin:0;padding-bottom:24px;padding-left:20px}.doc-matrix-quad__axis-y{color:var(--light,#a8b8c8);letter-spacing:.1em;margin-bottom:4px;font-size:9px}.doc-matrix-quad__axis-x{color:var(--light,#a8b8c8);letter-spacing:.1em;text-align:center;margin-top:4px;font-size:9px}.doc-matrix-quad__grid{aspect-ratio:1.4;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:6px;display:grid}.doc-matrix-quad__cell{background:var(--bg,#f7f9fc);font-family:var(--font);color:var(--muted);border-radius:2px;padding:10px;font-size:11px;line-height:1.3}.doc-matrix-quad__cell--hl{color:var(--primary);background:#1d355714;border:1px solid #1d355726;font-weight:700}.doc-matrix-quad__cell--hm{color:var(--accent);background:#4a7fa514;border:1px solid #4a7fa526}.doc-matrix-eval{border-collapse:collapse;width:100%;font-size:10px;font-family:var(--font);margin:0}.doc-matrix-eval th{background:var(--primary);color:#fff;letter-spacing:.1em;text-transform:uppercase;text-align:center;border:1px solid #ffffff1a;padding:7px 10px;font-size:9px;font-weight:600}.doc-matrix-eval td{border:1px solid var(--rule,#0000001a);text-align:center;color:var(--muted);padding:8px 10px;line-height:1.4}.doc-matrix-eval__name{background:var(--bg,#f7f9fc);font-weight:700;color:var(--primary)!important;text-align:left!important}.doc-matrix-eval__hi{background:#1d355712;font-weight:500;color:var(--primary)!important}.doc-matrix-eval__md{background:#4a7fa50f;color:var(--accent)!important}.doc-cover{min-height:var(--page-content-height,297mm);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20mm;display:flex}.doc-cover__logo{object-fit:contain;max-width:160px;max-height:60px;margin-bottom:24px}.doc-cover__eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:600}.doc-cover__title{font-family:var(--font);color:var(--primary);letter-spacing:-.03em;margin:0;font-size:28px;font-weight:700;line-height:1.2}.doc-cover__subtitle{font-family:var(--font);color:var(--muted);font-size:14px;line-height:1.5}.doc-cover__meta{flex-direction:column;gap:8px;margin-top:24px;display:flex}.doc-cover__meta-item{align-items:baseline;gap:12px;display:flex}.doc-cover__meta-label{letter-spacing:.12em;text-transform:uppercase;color:var(--light,#a8b8c8);font-size:9px;font-weight:700}.doc-cover__meta-value{color:var(--text);font-size:11px}.doc-back-cover{min-height:var(--page-content-height,297mm);text-align:center;background:var(--primary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20mm;display:flex}.doc-back-cover__logo{object-fit:contain;max-width:120px;max-height:48px;margin-bottom:16px}.doc-back-cover__text{font-family:var(--font);color:#fff9;letter-spacing:.05em;font-size:10px}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#d8d8d8;margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:13px}#root{flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}@page{size:A4 portrait;margin:0}@media print{body{background:#fff}#root{height:auto;overflow:visible}.toolbar,.sidebar{display:none!important}.app{height:auto}.app__body{overflow:visible}.canvas{background:#fff;padding:0;display:block;overflow:visible}.canvas__pages{gap:0}.canvas__paper{box-shadow:none;width:100%;min-height:auto;margin:0}.canvas__paper.canvas__paper--paged{page-break-after:always;flex-direction:column;height:297mm;min-height:297mm;display:flex;overflow:hidden}.canvas__paper.canvas__paper--paged:last-child{page-break-after:avoid}.canvas__paper--paged .canvas__paper-content{flex:1;overflow:hidden}.canvas__paper--paged .page-footer{page-break-inside:avoid;flex-shrink:0;margin-top:auto}.canvas__empty{display:none}}
