/* v145: a left-hand layer panel and document scrolling at constrained heights. */
body{height:auto;min-height:100dvh;display:block;overflow-y:auto;overflow-x:hidden}
main{display:grid;grid-template-columns:390px minmax(0,1fr);height:max(560px,calc(100dvh - 216px));min-height:560px;gap:16px;padding:16px 18px 0;align-items:stretch}
main>aside{grid-column:1;grid-row:1;width:100%;height:100%;display:flex;overflow:hidden;max-height:none;min-height:0}
main>.stage{grid-column:2;grid-row:1;min-height:0;height:100%;border-radius:12px}
.playback{position:static;min-height:120px;margin:16px 0 0;padding:18px 24px;flex-direction:row;display:flex;gap:22px}
.layer-header{padding:16px 15px 12px;border-bottom:1px solid var(--line);flex:none}
.layer-titlebar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.layer-titlebar h2{font-size:17px;margin:0}.layer-titlebar button{font-size:11px;min-height:30px;padding:4px 9px;color:var(--cyan)}
.layer-header input{margin:0 0 8px}.layer-actions{display:flex;gap:5px}.layer-actions button{padding:4px 7px;font-size:10px;min-height:29px}.layer-actions #restore{margin:0;margin-left:auto;width:auto;color:#b9cedd;border:1px solid var(--line)}
.layer-legend{display:flex;gap:12px;font-size:10px;color:#a2bdcf;margin-top:10px}.layer-legend span{display:flex;align-items:center;gap:4px}.legend-normal{color:#58d6dd}.legend-transparent{color:#a7b9ff}.legend-hidden{color:#869ba7}
#layerSummary{color:#8facbe;font-size:10px;line-height:1.5;margin-top:9px;font-variant-numeric:tabular-nums}
.layer-scroller{min-height:90px;flex:1;overflow:auto;scrollbar-width:thin;scrollbar-color:#3d5c71 transparent}
#partList{padding:7px 5px;overflow:auto;scrollbar-width:thin;min-height:0}.layer-tree,.layer-tree ul{list-style:none;padding:0;margin:0}.layer-tree li{margin:0;padding:0}
#partList .layer-row{display:flex;align-items:center;gap:2px;min-height:39px;padding:1px 3px 1px calc(var(--depth)*9px);border-radius:6px;border:1px solid transparent}
#partList .layer-row:hover{background:#173447}#partList .layer-row.selected{background:#163849;border-color:#31586b}
#partList .layer-row button{width:auto;min-height:30px;background:none;padding:3px;border:1px solid transparent;border-radius:5px;flex:none}
#partList .layer-row button:before,#partList .layer-row button:after{display:none}
#partList .layer-expand{width:17px;padding:0;color:#88b4c8;font-size:14px;justify-content:center}#partList .layer-expand:disabled{opacity:.45;cursor:default}
#partList .layer-name{flex:1;min-width:0;display:block;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;padding-left:2px}
.layer-count{font-size:9px;color:#678fa6;min-width:18px;text-align:right;font-variant-numeric:tabular-nums}
.layer-state{font-size:9px;min-width:35px;text-align:center;margin:0 2px;white-space:nowrap}.layer-state.normal{color:#61e0d8}.layer-state.transparent{color:#bac8ff}.layer-state.hidden{color:#8a9aa7}.layer-state.mixed{color:#edba78}.layer-state.section{color:#88c8e9}
.layer-modes{display:flex;gap:1px}#partList .layer-modes button{width:25px;min-height:28px;padding:4px;color:#718fa2;justify-content:center}#partList .layer-modes button:hover{color:white;border-color:#4a6b80;background:#224659}#partList .layer-modes button[aria-pressed=true]{color:#82fff1;background:#16494d;border-color:#326f74}#partList .layer-modes button[data-layer-mode=transparent][aria-pressed=true]{color:#c7caff;background:#323554;border-color:#585d8b}#partList .layer-modes button[data-layer-mode=hidden][aria-pressed=true]{color:#bec9d0;background:#34404a;border-color:#5b6a78}.layer-modes svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#partList .layer-more{font-size:10px;color:var(--cyan);margin:3px 10px;min-height:30px;width:calc(100% - 20px);justify-content:center}
.layer-bottom{border-top:1px solid var(--line);padding:12px 15px;flex:none}.layer-bottom .toggle{margin:0;font-size:11px}.selection-details{border-top:1px solid var(--line);padding:0;flex:none;max-height:240px;overflow:auto}.selection-details summary{padding:12px 15px;cursor:pointer;font-size:12px;list-style:none;display:flex;align-items:center;gap:8px}.selection-details summary:after{content:'▾';margin-left:auto;color:var(--cyan)}.selection-details summary .muted{font-size:10px;flex:none}.selection-details #partTitle{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selection-details .part-info{padding:0 15px 12px;display:block}.selection-details .part-info p{font-size:11px;line-height:1.7;display:block;min-height:0}.selection-details .part-meta{display:block;margin:8px 0}.selection-details .primary{margin:0;min-height:34px;font-size:11px}.selection-details .two-buttons button{min-height:30px}.aside-footer{flex:none}
.stage-heading{left:22px;top:14px}.viewbar{left:22px;top:125px;right:auto}.view-note{left:22px;top:177px;right:auto}.stage h1{font-size:23px;gap:10px}.stage h1 #chapterNumber{font-size:39px}.stage .canvas-bottom{left:22px}.stage #gestureHint{max-width:calc(100% - 16px)}
#classification{max-width:760px;max-height:85dvh;overflow:auto}#classification h2{font-size:24px}#classification h3{font-size:15px;color:var(--cyan);margin:23px 0 6px}#classification ul{padding-left:22px;color:#b5cad8;font-size:12px;line-height:2}#classification .classification-intro{font-size:12px}#classification a{color:#6ce1eb}#classification .markdown-link{display:inline-block;margin:10px 0 15px}#classification .count{color:#7e9db2;font-size:11px}
@media(min-width:1450px){.viewbar{left:auto;right:16px;top:18px}.view-note{left:auto;right:18px;top:76px}.stage h1{font-size:25px}}
@media(max-width:1100px){main{grid-template-columns:355px minmax(0,1fr);padding:12px 12px 0;gap:10px}.stage h1{font-size:20px}.stage-heading{left:16px}.viewbar{left:16px;gap:5px}.viewbar button{font-size:11px;padding:6px 9px}.orientation{display:none}.canvas-bottom{left:16px!important}.toolbox{gap:4px}.toolbox button{font-size:11px;padding:4px 8px}.zoom button{font-size:16px}.layer-modes button{width:24px!important}.layer-count{min-width:15px}.layer-state{min-width:31px;margin:0;font-size:8px}}
@media(max-width:850px){header{height:auto;min-height:64px;flex-wrap:wrap}main{display:grid;grid-template-columns:340px minmax(0,1fr);height:560px;min-height:560px}.stage{min-height:0!important}.stage h1{font-size:17px;align-items:flex-start}.stage-heading{right:10px}.stage h1 #chapterNumber{font-size:30px}.viewbar{top:145px;flex-wrap:wrap;right:10px}.view-note{top:226px;left:16px;font-size:9px}.toolbox{flex-wrap:wrap}.canvas-bottom{right:8px}.orientation{display:none}#gestureHint{font-size:9px;line-height:1.5}.playback{position:static;flex-direction:column;align-items:stretch}.transport{justify-content:center}.layer-header{padding:12px}.layer-legend{gap:8px}.aside-footer{grid-column:auto}.selection-details{max-height:220px}}
@media(max-width:650px){main{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;padding:10px;gap:12px}main>aside{grid-column:1;grid-row:1;height:440px}main>.stage{grid-column:1;grid-row:2;height:460px;min-height:460px!important}.stage h1{font-size:21px}.viewbar{top:122px;right:auto;flex-wrap:nowrap}.view-note{top:172px}.layer-header{padding:12px 15px}.layer-modes button{width:28px!important}.layer-state{min-width:36px;font-size:9px}.layer-legend{gap:14px}.stage #gestureHint{font-size:10px}.playback{margin-top:8px;padding:16px 12px}#chapters{flex-wrap:wrap}#chapters button{flex-basis:30%;font-size:11px}#toast{bottom:20px}#classification{max-height:90dvh}}
main{grid-template-rows:minmax(0,1fr)}
#partList .layer-row .layer-name{flex:1;min-width:0;font-size:12px}
#partList .layer-row .layer-count{flex:none}
#partList .layer-row .layer-modes{flex:none}
@media(max-width:650px){main{grid-template-rows:440px 460px}}

