.woody-page{--background:var(--ux-canvas);--foreground:var(--ux-text);--muted-foreground:var(--ux-muted);--border:var(--ux-border);--muted:var(--ux-soft)}
.woody-page .woody-shell{width:100%;max-width:1440px;min-height:calc(100dvh - 90px);padding:32px 28px;border-radius:28px;overflow:visible}
.woody-shell .section-intro{margin:18px 0}.woody-shell p{line-height:1.6}.woody-shell h3{font-size:19px;margin:24px 0 12px}.woody-shell a{color:var(--ux-brand-text)}
.woody-shell .section-heading h1{min-width:0;overflow-wrap:anywhere;line-height:1.3}
.woody-notice{padding:16px 20px;background:var(--ux-soft);border-radius:16px;margin-bottom:24px!important;font-size:14px}
.viz-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin:24px 0}.form-label{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:0}.form-select{width:100%;min-width:0;min-height:48px;padding:10px;border:1px solid var(--ux-border);border-radius:12px;background:var(--ux-surface);color:var(--ux-text);font:inherit}
.text-small{font-size:13px;color:var(--ux-muted);line-height:1.5}.text-center{text-align:center}.btn{min-height:44px;font:inherit;font-size:13px;cursor:pointer;border:1px solid var(--ux-border);border-radius:10px;background:var(--ux-surface);color:var(--ux-brand-text);padding:8px 12px}.btn-ghost{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.table-responsive{overflow-x:auto;max-width:100%}.table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.table th,.table td{padding:10px 6px;border-bottom:1px solid var(--ux-border);vertical-align:top;overflow-wrap:anywhere}.table thead th{background:var(--ux-soft)}.table tbody th{font-weight:500}.woody-calendar-table{table-layout:fixed}.woody-calendar-table col:first-child{width:33%}.woody-calendar-table td{padding:6px 2px}
.woody-mark{display:block;width:100%;min-width:20px;min-height:30px;margin:3px 0;padding:4px 0;text-align:center;border:0;border-radius:6px;cursor:pointer;color:var(--foreground);font:inherit;font-size:12px;line-height:20px}
.woody-mark{background:var(--ux-soft);color:var(--ux-brand-text)}
.woody-legend{display:flex;gap:12px 20px;flex-wrap:wrap;margin:18px 0}.woody-legend[hidden]{display:none}.woody-empty{padding:24px 0;color:var(--ux-muted)}.woody-phase-label{max-width:38em}.woody-mobile-timeline{display:none}.woody-mobile-axis,.woody-mobile-year{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px}.woody-mobile-axis{text-align:center;margin:8px 0}.woody-mobile-operation{padding:14px 0;border-bottom:1px solid var(--ux-border)}
.woody-view-switch{display:flex;gap:4px;background:var(--ux-soft);border-radius:12px;padding:4px;width:fit-content;margin:0 0 14px}.woody-view-switch .btn{border:0;background:transparent;color:var(--ux-muted)}.woody-view-switch .btn[aria-pressed="true"]{background:var(--ux-surface);color:var(--ux-brand-text);font-weight:500}
.woody-period-list{margin-top:20px}.woody-period-row{display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--ux-border);align-items:start}.woody-shell h3.woody-period-label{font-size:14px;line-height:1.4;font-weight:500;margin:3px 0;overflow-wrap:anywhere}.woody-period-works{display:flex;flex-wrap:wrap;gap:6px}.woody-work{min-height:32px;max-width:100%;border:0;border-radius:8px;background:var(--ux-soft);color:var(--ux-brand-text);font:inherit;font-size:14px;line-height:1.4;padding:6px 10px;cursor:pointer;text-align:left;overflow-wrap:anywhere}.woody-work:hover{filter:brightness(.96)}.woody-chip-scope{display:block;font-size:12px;line-height:1.4;color:var(--ux-muted);margin-top:4px}.woody-row-name{font:inherit;color:var(--ux-brand-text);background:none;border:0;text-align:left;cursor:pointer;padding:4px 0;line-height:1.4;max-width:100%;overflow-wrap:anywhere}.woody-row-name:hover{text-decoration:underline}.woody-coarse-hint{display:block;font-size:12px;color:var(--ux-muted);line-height:1.4;margin-top:6px}.woody-card-help{font-size:14px;color:var(--ux-muted)}.woody-source-detail>summary{font-weight:500}.woody-source-detail>summary>.text-small{display:block;margin-top:4px;font-weight:400}.woody-evidence{margin-top:20px}
.woody-footer>details>summary{cursor:pointer;color:var(--ux-muted);font-size:14px}.woody-shell #woody-extra{margin-top:18px}
.woody-links{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:20px 0}.woody-footer{border-top:1px solid var(--ux-border);margin-top:32px;padding-top:24px}.woody-footer p{margin:14px 0}.woody-footer h2{margin-top:24px}.woody-source-bibliography{margin:14px 0}
.woody-shell dialog{width:min(1000px,calc(100vw - 24px));max-height:90dvh;border:1px solid var(--ux-border);border-radius:20px;padding:24px;background:var(--ux-canvas);color:var(--ux-text)}.woody-shell dialog::backdrop{background:#192b2559}.woody-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.woody-dialog-head .btn{flex:none}.woody-source-detail{padding:20px 0;border-bottom:1px solid var(--ux-border)}.woody-source-detail dl{display:grid;grid-template-columns:160px minmax(0,1fr);gap:8px 16px;font-size:14px;line-height:1.6}.woody-source-detail dt{color:var(--ux-muted)}.woody-source-detail dd{margin:0;overflow-wrap:anywhere}.woody-source-detail blockquote{margin:16px 0;padding:16px;border-radius:12px;background:var(--ux-soft);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.woody-source-detail details{margin:16px 0}.woody-source-detail summary{cursor:pointer;line-height:1.6}.woody-source-detail p{margin:12px 0}.woody-source-detail h4{margin-bottom:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:799px){body.woody-page{padding:12px}.woody-page .woody-shell{padding:24px 18px;border-radius:22px}.woody-shell .section-heading h1{font-size:23px;line-height:1.3}.viz-controls{grid-template-columns:1fr 1fr;gap:12px}.viz-controls>label:first-child{grid-column:1/-1}}
@media(max-width:660px){.woody-month-desktop{display:none}.woody-mobile-timeline{display:block}.woody-calendar-table col:first-child{width:38%}.woody-calendar-table th,.woody-calendar-table td{padding:8px 3px}.woody-shell dialog{padding:18px}.woody-source-detail dl{grid-template-columns:1fr;gap:4px}.woody-source-detail dd{margin-bottom:10px}.woody-mobile-axis{font-size:10px}.woody-page .woody-mark{font-size:10px}}
@media(max-width:799px){.woody-period-row{grid-template-columns:1fr;gap:6px;padding:8px 0}.woody-shell h3.woody-period-label{margin:0}.woody-work{font-size:13px;padding:6px 10px}}
@media print{.viz-controls,.woody-links,.site-navigation,dialog,.woody-footer{display:none!important}.woody-page .woody-shell{max-width:none;box-shadow:none;padding:0}.table-responsive{overflow:visible}}

/* One control per instruction, with uninterrupted adjacent month spans. */
.woody-range-track{display:grid;gap:4px;padding:3px 0}
.woody-range-lane,.woody-range-card{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px}
.woody-range-track[data-columns="4"] .woody-range-lane,.woody-range-track[data-columns="4"] .woody-range-card{grid-template-columns:repeat(4,minmax(0,1fr))}
.woody-range-card{grid-column:1/-1;grid-row:1;background:transparent;margin:0;padding:0;border:0;min-width:0;pointer-events:none}
.woody-range-segment{grid-row:1;min-width:0;min-height:30px;padding:4px 0;border-radius:6px;background:var(--ux-soft);color:var(--ux-brand-text);pointer-events:auto;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;font-size:11px;line-height:20px;cursor:pointer}
.woody-range-card:hover .woody-range-segment{filter:brightness(.96)}
.woody-range-card:focus-visible{outline:0}.woody-range-card:focus-visible .woody-range-segment{outline:2px solid var(--ux-brand-text);outline-offset:1px}
.woody-card-variant-title{display:block;font-size:14px;font-weight:400;margin-top:4px}
.woody-start-1{grid-column-start:1}.woody-end-1{grid-column-end:2}
.woody-start-2{grid-column-start:2}.woody-end-2{grid-column-end:3}
.woody-start-3{grid-column-start:3}.woody-end-3{grid-column-end:4}
.woody-start-4{grid-column-start:4}.woody-end-4{grid-column-end:5}
.woody-start-5{grid-column-start:5}.woody-end-5{grid-column-end:6}
.woody-start-6{grid-column-start:6}.woody-end-6{grid-column-end:7}
.woody-start-7{grid-column-start:7}.woody-end-7{grid-column-end:8}
.woody-start-8{grid-column-start:8}.woody-end-8{grid-column-end:9}
.woody-start-9{grid-column-start:9}.woody-end-9{grid-column-end:10}
.woody-start-10{grid-column-start:10}.woody-end-10{grid-column-end:11}
.woody-start-11{grid-column-start:11}.woody-end-11{grid-column-end:12}
.woody-start-12{grid-column-start:12}.woody-end-12{grid-column-end:13}
@media(max-width:660px){.woody-range-segment{font-size:10px}}

/* The modal has a single camera viewport: no nested scrollbars. */
.woody-view-switch .woody-open-gantt{margin-left:auto}
body.woody-gantt-open{overflow:hidden}
#woody-gantt-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:16px 20px;border:0;border-radius:0;background:var(--ux-canvas);color:var(--ux-text);overflow:hidden;box-sizing:border-box}
#woody-gantt-dialog[open]{display:flex;flex-direction:column;gap:12px}
.woody-gantt-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none}.woody-gantt-heading h2{margin:0;font-size:22px;line-height:1.35}.woody-gantt-heading h2 span{font-size:14px;color:var(--ux-muted);font-weight:400}.woody-gantt-heading .btn{flex:none}
.woody-gantt-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;flex:none}.woody-gantt-toolbar .form-label{flex:1;min-width:160px;max-width:430px;margin:0}.woody-gantt-zoom{display:flex;align-items:center;gap:6px;margin-left:auto;flex:none}.woody-gantt-zoom .btn{min-width:44px;min-height:44px}.woody-gantt-zoom output{width:52px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.woody-gantt-zoom .btn:disabled{opacity:.4;cursor:default}
.woody-gantt-help{margin:0;flex:none}.woody-gantt{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;gap:10px}
.woody-gantt-viewport{position:relative;flex:1;min-height:0;min-width:0;overflow:hidden;border:1px solid var(--ux-border);border-radius:14px;background:var(--ux-surface);touch-action:none;overscroll-behavior:none;cursor:grab;user-select:none}.woody-gantt-viewport.is-dragging{cursor:grabbing}.woody-gantt-viewport:focus-visible{outline:2px solid var(--ux-brand-text);outline-offset:-3px}
.woody-gantt-canvas{position:absolute;left:0;top:0;width:2280px;transform-origin:0 0;will-change:transform}
.woody-gantt-months,.woody-gantt-lane,.woody-gantt-card{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.woody-gantt-months{height:48px;background:var(--ux-canvas);border-bottom:1px solid var(--ux-border)}.woody-gantt-months>span{text-align:center;padding:12px 6px;font-size:16px;font-weight:500;border-right:1px solid var(--ux-border)}
.woody-gantt-lanes{display:grid;gap:6px;padding:8px 0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 12 - 1px),var(--ux-border) calc(100% / 12 - 1px),var(--ux-border) calc(100% / 12))}.woody-gantt-card{grid-column:1/-1;grid-row:1;min-width:0;border:0;padding:0;background:transparent;color:var(--ux-brand-text);font:inherit;text-align:left;pointer-events:none}
.woody-gantt-segment{grid-row:1;min-width:0;height:88px;margin:0 4px;padding:10px 12px;border-radius:10px;background:var(--ux-soft);display:flex;flex-direction:column;gap:6px;justify-content:center;pointer-events:auto;cursor:pointer;overflow:hidden}.woody-gantt-name{font-size:15px;font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.woody-gantt-period{display:block;font-size:12px;line-height:1.35;color:var(--ux-muted)}.woody-gantt-segment .woody-gantt-period{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.woody-gantt-card:hover .woody-gantt-segment{filter:brightness(.96)}.woody-gantt-card:focus-visible{outline:0}.woody-gantt-card:focus-visible .woody-gantt-segment{outline:2px solid var(--ux-brand-text);outline-offset:-2px}
.woody-gantt-notes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:none}.woody-gantt-notes .btn{font-size:12px}.woody-gantt-seasonal-works{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.woody-gantt-seasonal-works .woody-gantt-period{margin-top:4px}.woody-gantt-empty{margin:auto;padding:20px;font-size:15px;color:var(--ux-muted)}
@media(max-width:799px){#woody-gantt-dialog{padding:12px;gap:8px}.woody-gantt-heading h2{font-size:18px}.woody-gantt-heading h2 span{display:block;font-size:12px}.woody-gantt-toolbar{gap:8px}.woody-gantt-toolbar .form-label{min-width:0;max-width:none;font-size:12px}.woody-gantt-toolbar .form-select{font-size:13px;padding:7px 28px 7px 8px}.woody-gantt-zoom{width:100%;justify-content:center;margin:0}.woody-gantt-help{font-size:11px}.woody-view-switch .woody-open-gantt{margin-left:0}}
@media print{#woody-gantt-dialog,.woody-open-gantt{display:none!important}}

.woody-section-control{max-width:42rem;margin:1rem 0}.woody-review-control{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:.8rem 0}.woody-review-control input{width:1.1rem;height:1.1rem}.woody-source-detail a{overflow-wrap:anywhere}
