/* Shared workbook-derived evidence, sorting timeline and clustered bubbles. */
.observation-summary{display:flex;flex-wrap:wrap;gap:18px 36px;border-block:1px solid var(--line);padding:24px 0;margin-bottom:32px;font-size:13px}.observation-summary strong{display:block;font-size:30px;color:var(--ink)}.data-cutoff{align-self:center;color:var(--muted)}.current-evidence-wrap{overflow-x:auto;margin-bottom:22px}.current-evidence{min-width:600px}.current-evidence caption{text-align:left;font-size:12px;color:var(--muted);padding-bottom:14px}.current-evidence th[scope=row]{text-align:left;font-size:17px;height:84px;border-top:1px solid var(--line);font-weight:600}.current-evidence th small{display:block;font-size:11px;font-weight:400;margin-top:5px}.evidence-selection{margin-top:28px}.evidence-selection h3{margin-bottom:18px}.current-summary{font-style:normal}.current-summary button{border:0;padding:0;background:transparent;text-align:left;color:inherit;font:inherit;line-height:inherit;width:100%}.current-summary small{display:block;font:11px Arial,sans-serif;margin-top:10px;color:#526174}.current-summary:before,.current-summary:after{content:none}.observation-intro{padding:110px 7% 70px;background:#f2f2f2}.observation-intro h2{margin:20px 0 25px}.observation-intro>p:not(.kicker){font-size:18px;line-height:1.6;max-width:710px;color:var(--muted)}.observation-actions{display:flex;gap:24px;flex-wrap:wrap;align-items:center;margin-top:30px;font-size:13px}.observation-actions button,.bubble-controls button{background:transparent;border:0;border-bottom:1px solid #8090a0;padding:8px 0;color:var(--ink)}.sorting-timeline{display:grid;grid-template-columns:minmax(210px,28%) minmax(0,72%);position:relative;padding:0 4% 160px;gap:30px;background:#f2f2f2;isolation:isolate}.moment-track{padding-top:34vh;padding-bottom:15vh;border-left:1px solid #b8c8d9;margin-left:15px}.moment-stop{min-height:480px;padding:26px 20px 90px;position:relative}.moment-stop header{position:relative}.moment-stop header:before{content:'';position:absolute;left:-26px;top:4px;width:10px;height:10px;border-radius:50%;background:#35495e;outline:6px solid #f2f2f2}.moment-stop h3{font-size:23px;line-height:1.2;margin-top:12px}.moment-stop .kicker{font-size:11px;line-height:1.5}.hanging-cards{display:flex;flex-direction:column;gap:14px;padding-top:28px}.linked-arrival-note{font-size:12px;line-height:1.5;color:var(--muted)}.collection-board{position:sticky;top:0;height:100svh;min-height:480px;align-self:start;padding:35px 0 60px;display:flex;flex-direction:column;min-width:0}.collection-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.collection-top label{font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center}.collection-top select{max-width:190px}.collection-help{font-size:11px;line-height:1.5;color:var(--muted);margin:14px 0 22px}.level-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-height:0;flex:1}.level-column{display:flex;flex-direction:column;min-width:0;min-height:0;border-top:2px solid #35495e}.level-column>h3{font-size:17px;margin:14px 0 12px;display:flex;align-items:center;gap:8px}.level-column>h3 span{font-size:11px;border:1px solid #b8c8d9;border-radius:20px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.level-card-scroll{overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;padding:4px 4px 15px;overscroll-behavior-y:contain}.level-card-list{display:flex;flex-direction:column;gap:12px}.observation-card{position:relative;display:block;text-align:left;background:#fff;border:1px solid #c7cfd7;border-radius:5px;padding:14px 12px;min-width:0;width:100%;color:#405269;box-shadow:none}.observation-card:hover{outline:2px solid #6485a2;outline-offset:2px}.observation-card-meta{display:flex;align-items:center;gap:6px;font-size:10px;margin-bottom:9px;line-height:1.2}.observation-card-meta .lens-icon{width:21px;height:21px;flex-shrink:0;stroke:currentColor;fill:none}.rating{margin-left:auto;font-weight:700;padding:2px 4px;border:1px solid currentColor;border-radius:2px;font-size:10px}.observation-card-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.4}.criticality-1{color:#626d79;background:#f6f7f8;border-color:#d8dde2}.criticality-1 .observation-card-title{font-size:12px}.criticality-2{background:#f4f6f8}.criticality-3{background:#e7edf3;border-color:#9fadc0}.criticality-3 .observation-card-title{font-weight:600}.criticality-4{background:#d8e2ed;border:2px solid #71859d}.criticality-4 .observation-card-title{font-weight:700;font-size:14px}.criticality-5{background:#35495e;color:#fff;border:2px solid #163970;box-shadow:inset 4px 0 #f9ae2a}.criticality-5 .observation-card-title{font-weight:750;font-size:15px}.linked-pill{position:absolute;right:-5px;top:-9px;background:#fff;color:#35495e;border:1px solid #7a8da3;border-radius:20px;min-width:27px;height:21px;display:flex;align-items:center;justify-content:center;padding:0 5px;font:700 10px Arial;z-index:2}.is-collected{visibility:hidden;pointer-events:none}.bubble-section{padding:100px 6% 110px;background:#fff;scroll-margin-top:0;min-height:100svh}.bubble-heading{display:flex;justify-content:space-between;align-items:end;gap:50px}.bubble-heading h2{margin-top:22px}.bubble-heading>p{font-size:16px;max-width:350px;line-height:1.6;color:var(--muted)}.bubble-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:35px 0 20px;font-size:13px}.bubble-controls select,.collection-top select{font:inherit;padding:9px 28px 9px 10px;background:#fff;color:#35495e;border:1px solid #a3b0bd;border-radius:3px}.bubble-controls #bubble-count{margin-left:auto;color:var(--muted)}.criticality-key{display:flex;flex-wrap:wrap;gap:18px;font-size:10px;color:#526174;border-bottom:1px solid var(--line);padding-bottom:22px}.criticality-key strong{color:#35495e}.bubble-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px;margin-top:32px}.bubble-group{min-width:0;padding:0 12px 25px;border-bottom:1px solid var(--line)}.bubble-group h3{font-size:19px;display:flex;gap:12px;align-items:center;margin:0 0 25px}.bubble-group h3 span{font-size:12px;font-weight:400;color:var(--muted)}.bubble-pack{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;padding:12px 5px}.observation-bubble{border-radius:50%;width:116px;height:116px;flex:0 0 116px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;box-shadow:none}.observation-bubble .observation-card-meta{gap:4px;margin-bottom:5px;font-size:8px;justify-content:center;width:100%}.observation-bubble .observation-card-meta .lens-icon{width:16px;height:16px}.observation-bubble .rating{border:0;font-size:9px;padding:0;margin:0}.observation-bubble .observation-card-title{font-size:11px;line-height:1.25;-webkit-line-clamp:3;width:100%}.observation-bubble.criticality-1{width:88px;height:88px;flex-basis:88px;padding:11px}.observation-bubble.criticality-1 .observation-card-title{font-size:9px}.observation-bubble.criticality-1 .observation-card-meta>span:not(.rating){display:none}.observation-bubble.criticality-2{width:102px;height:102px;flex-basis:102px;padding:13px}.observation-bubble.criticality-4{width:130px;height:130px;flex-basis:130px}.observation-bubble.criticality-5{width:146px;height:146px;flex-basis:146px;border-width:3px;outline:2px solid #f9ae2a;outline-offset:3px}.observation-bubble.criticality-5 .observation-card-title{font-size:13px}.observation-bubble .linked-pill{top:1px;right:3px}.empty-cluster{font-size:13px;color:var(--muted);padding:30px}.observation-dialog{max-width:760px;width:calc(100% - 32px);max-height:88svh;overflow-y:auto;border:1px solid #9eacb9;border-radius:6px;padding:26px 32px 35px;color:#35495e;background:#fff}.observation-dialog::backdrop{background:#122033b3;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.dialog-top button{background:white;border:1px solid #a5b2bf;padding:9px 12px;border-radius:3px;color:#35495e}.observation-dialog h2{font-size:30px;line-height:1.15;letter-spacing:-.02em}.observation-dialog h3{font-size:16px;margin:25px 0 12px;font-weight:650}.observation-dialog p{font-size:13px;line-height:1.6}.detail-moment{margin-top:15px;color:#526174}.analyst-summary{white-space:pre-line;font-size:15px;line-height:1.65}.observation-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 25px;margin:28px 0}.observation-fields div{border-top:1px solid #d0d5dc;padding-top:10px}.observation-fields dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#526174}.observation-fields dd{margin:6px 0 0;font-size:14px}.confidence-note{white-space:pre-line}.detail-workbook{margin-top:22px;padding-top:18px;border-top:1px solid #d0d5dc}.observation-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.bubble-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1050px){.sorting-timeline{grid-template-columns:minmax(170px,27%) minmax(0,73%);gap:16px;padding-inline:3%}.moment-stop{padding-inline:14px}.moment-stop header:before{left:-20px}.level-columns{gap:8px}.collection-top{display:block}.collection-top label{margin-top:12px}.observation-card{padding:12px 8px}.observation-card-title{font-size:12px}.criticality-5 .observation-card-title{font-size:13px}.bubble-heading{display:block}.bubble-heading>p{max-width:600px;margin-top:25px}}
@media(max-width:700px){.observation-intro{padding:75px 6% 45px}.observation-intro h2,.bubble-heading h2{font-size:42px}.observation-intro>p:not(.kicker){font-size:15px}.sorting-timeline{grid-template-columns:34% minmax(0,66%);gap:8px;padding:0 3% 100px}.moment-track{margin-left:5px;padding-top:38vh}.moment-stop{padding:20px 9px 60px;min-height:510px}.moment-stop h3{font-size:15px}.moment-stop .kicker{font-size:9px;letter-spacing:.04em}.moment-stop header:before{left:-15px}.collection-board{padding-top:20px;padding-bottom:60px;min-height:550px}.collection-top .kicker{font-size:9px;letter-spacing:.05em}.collection-top label{font-size:9px;display:block}.collection-top select{display:block;margin-top:5px;width:100%;max-width:100%;padding:6px}.collection-help{font-size:9px;margin:10px 0}.level-columns{gap:5px;overflow-x:auto;grid-template-columns:repeat(3,minmax(92px,1fr));scrollbar-width:thin}.level-column>h3{font-size:11px;gap:4px}.level-column>h3 span{font-size:9px;min-width:16px;height:16px}.observation-card{padding:10px 7px}.observation-card-title,.criticality-1 .observation-card-title,.criticality-4 .observation-card-title,.criticality-5 .observation-card-title{font-size:11px;-webkit-line-clamp:4}.observation-card-meta{font-size:8px;gap:3px;flex-wrap:wrap}.observation-card-meta .lens-icon{width:16px;height:16px}.rating{font-size:8px}.level-card-scroll{padding-inline:2px}.bubble-section{padding:70px 5%}.bubble-groups{grid-template-columns:1fr;gap:30px}.bubble-group{padding-inline:2px}.bubble-controls{gap:12px}.bubble-controls #bubble-count{margin-left:0}.bubble-controls button{margin-left:auto}.criticality-key{gap:10px;font-size:9px}.observation-dialog{padding:22px 20px}.observation-dialog h2{font-size:25px}.observation-fields{gap:15px}.observation-index{grid-template-columns:repeat(2,minmax(0,1fr))}.observation-summary{gap:18px;font-size:11px}.observation-summary strong{font-size:24px}.current-evidence{min-width:520px}.current-summary button{font-size:14px;line-height:1.35}.current-summary small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.observation-card,.observation-bubble{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
@media print{.sorting-timeline{display:block;padding:0}.moment-track{display:none}.collection-board{position:static;height:auto;display:block}.level-card-scroll{overflow:visible}.bubble-section{break-before:page}.observation-dialog{display:none}.observation-card{break-inside:avoid}.bubble-groups{display:block}.bubble-group{break-inside:avoid}}
.current-summary button>span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.current-evidence thead .lens-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;margin-right:6px;stroke:currentColor;fill:none}
@media(max-width:700px){.current-summary button>span{-webkit-line-clamp:2;font-size:13px;line-height:1.35}.current-summary small{margin-top:7px}}
/* The final chapter is one fitted chart canvas. Zoom restores full reading size. */
.bubble-section{height:100svh;min-height:650px;display:flex;flex-direction:column;padding:38px 5% 48px;overflow:hidden}.bubble-heading{gap:28px;align-items:center;flex-shrink:0}.bubble-heading h2{font-size:clamp(32px,3.5vw,52px);margin-top:12px}.bubble-heading>p{font-size:12px;max-width:390px}.bubble-heading .kicker{font-size:10px}.bubble-controls{margin:20px 0 12px;gap:15px;flex-shrink:0}.criticality-key{padding-bottom:12px;flex-shrink:0}.chart-navigation{display:flex;align-items:center;gap:12px;margin:12px 0;font-size:11px;flex-wrap:wrap;flex-shrink:0}.chart-navigation select{font:inherit;padding:7px 25px 7px 8px;border:1px solid #a3b0bd;background:#fff;color:#35495e;max-width:250px}.chart-zoom{display:flex;align-items:center;gap:4px}.chart-zoom button{border:1px solid #a3b0bd;background:#fff;color:#35495e;height:30px;min-width:31px;padding:0 8px;border-radius:2px}.chart-zoom output{min-width:38px;font-size:10px;color:var(--muted);margin-left:5px}.chart-help{margin-left:auto;font-size:10px;color:var(--muted)}.bubble-viewport{position:relative;flex:1;min-height:180px;overflow:hidden;border:1px solid #d0d5dc;background:#f9fafb;touch-action:none;cursor:grab}.bubble-viewport:active{cursor:grabbing}.bubble-groups{position:absolute;left:0;top:0;width:1800px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:35px;margin:0;padding:30px;transform-origin:0 0;will-change:transform}.bubble-group{padding:18px 15px 24px;background:#fff;border:1px solid #d0d5dc;border-radius:6px;min-width:0}.bubble-group h3{margin-bottom:20px;font-size:21px}.bubble-group h3 button{border:0;background:none;color:inherit;text-align:left;font:inherit;padding:0;cursor:zoom-in}.bubble-group h3 button span{margin-left:10px}.bubble-pack{gap:16px;padding:12px 5px}.bubble-viewport .observation-bubble{cursor:pointer}.bubble-viewport .observation-bubble.criticality-1 .observation-card-title{font-size:10px}.bubble-viewport .observation-bubble.criticality-5 .observation-card-title{font-size:13px}
@media(max-width:1050px){.bubble-heading{display:flex}.bubble-heading>p{max-width:290px;margin:0}.chart-help{display:none}}
@media(max-width:700px){.bubble-section{height:100svh;min-height:700px;padding:25px 5% 45px}.bubble-heading{display:block}.bubble-heading h2{font-size:34px}.bubble-heading>p{font-size:11px;max-width:none;margin:10px 0 0;line-height:1.5}.bubble-controls{gap:9px;font-size:11px;margin-top:12px}.bubble-controls select{padding:7px 20px 7px 8px}.bubble-controls button{padding:4px 0}.bubble-controls #bubble-count{font-size:10px}.criticality-key{font-size:8px;gap:8px;line-height:1.4}.chart-navigation{font-size:10px;gap:6px;margin:10px 0}.chart-navigation>label{display:none}.chart-navigation select{max-width:166px;padding-right:18px;flex:1}.chart-zoom button{min-width:25px;height:28px;padding:0 6px}.chart-zoom output{font-size:9px;min-width:30px;margin-left:1px}.bubble-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.bubble-group{padding:18px 15px 24px}.bubble-group h3{font-size:21px}.bubble-viewport{min-height:230px}.bubble-viewport .observation-bubble .observation-card-title{-webkit-line-clamp:3}}
@media print{.bubble-section{height:auto;overflow:visible;display:block}.chart-navigation{display:none}.bubble-viewport{height:auto;overflow:visible;position:static}.bubble-groups{position:static;transform:none!important;width:100%;display:block}.bubble-group{margin-bottom:20px}.bubble-pack{justify-content:flex-start}}
@media(max-width:700px){.bubble-groups{width:1200px;grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Dense moments retain accessible source cards without extending the timeline by every row. */
.moment-inventory{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:11px;color:var(--muted)}.moment-inventory button{padding:3px 0;border:0;border-bottom:1px solid #8090a0;background:none;color:var(--ink);font-size:11px}.hanging-cards{max-height:45svh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;overscroll-behavior-y:contain;padding:18px 5px 8px;margin-top:10px}.hanging-cards .observation-card{flex-shrink:0}.moment-stop{padding-bottom:70px}.hanging-cards:focus-visible{outline:2px solid #6485a2;outline-offset:3px}
@media(max-width:700px){.moment-inventory{font-size:9px;gap:4px;align-items:start}.moment-inventory button{font-size:9px;white-space:nowrap}.hanging-cards{max-height:40svh;padding:15px 3px 8px}.moment-stop{padding-bottom:60px}}
/* Volume-aware rectangle packing prevents a dominant cluster becoming a narrow tower. */
.bubble-groups{display:block;padding:0}.bubble-group{position:absolute;margin:0}.bubble-group h3 button{width:100%}
@media print{.bubble-group{position:static;width:100%!important}.bubble-groups{height:auto!important}}
