/* Shared workspace, responsive controls, and print output. */
*{box-sizing:border-box}
:root{color-scheme:light;--paper:#f5f5ee;--ink:#253c33;--muted:#657369;--green:#1b4538;--line:#dfe3d7;--lime:#e4edb2}
html{scroll-behavior:auto}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button,summary{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:var(--green);text-underline-offset:4px}
:focus-visible{outline:3px solid #b97543;outline-offset:3px}[hidden]{display:none!important}
h1,h2,h3,p,button,a,.tag{overflow-wrap:anywhere}h1{font-size:clamp(30px,4vw,44px);line-height:1.15;letter-spacing:-1px;margin:12px 0 16px;font-weight:650}h2{font-size:20px;letter-spacing:-.4px;margin:0}h3{font-size:18px;line-height:1.3;margin:8px 0 12px}
.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.6px;margin:0 0 12px}.intro{font-size:14px;color:var(--muted)}.hint{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.hint:empty,.notice:empty,#visual:empty,#demo-summary:empty{display:none}
.skip{position:absolute;top:-100px;left:20px;background:white;padding:10px;z-index:10}.skip:focus{top:12px}
.sidebar{width:220px;position:fixed;inset:0 auto 0 0;padding:30px 20px;background:#ecefe4;border-right:1px solid var(--line);display:flex;flex-direction:column;contain:layout paint}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:19px;font-weight:720;line-height:1.15;margin-bottom:42px}.brand-mark{width:56px;height:56px;object-fit:contain;border-radius:12px;flex-shrink:0}.mobile-brand{display:none}
.sidebar>.eyebrow{color:var(--muted);font-size:9px;padding-left:12px}.nav{display:flex;align-items:center;gap:12px;border:0;background:none;width:100%;min-height:44px;text-align:left;padding:13px 15px;border-radius:9px;margin:5px 0;font-weight:600}.nav span{font-size:21px;line-height:1}.nav.active{background:var(--green);color:white}.nav:not(.active):hover{background:#dfe5d7}
.sidebar-bottom{margin-top:auto;font-size:12px}.sidebar-bottom p{font-size:11px;color:var(--muted)}.sidebar-bottom a{font-size:10px}.local-dot{display:inline-block;width:7px;height:7px;background:#448062;border-radius:50%;margin-right:6px}
main{margin-left:220px;max-width:1460px;padding:0 40px 30px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:76px;border-bottom:1px solid var(--line);font-size:12px}.breadcrumb{color:var(--muted)}
.status{font-size:10px;border:1px solid #ced7c9;padding:5px 10px;border-radius:30px;text-align:center;max-width:220px}.status.ready:before{content:"";display:inline-block;width:6px;height:6px;background:#4f8665;border-radius:50%;margin-right:6px}
.welcome{padding:24px 0 12px}.welcome h1{font-size:clamp(25px,4vw,34px);margin:0}.welcome .intro{margin:8px 0}.view{min-width:0;scroll-margin-top:16px}.view:not(#workbench){padding-top:32px}.workspace-panel{max-width:1000px;min-width:0}
.card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.tag{font:10px/1.5 ui-monospace,monospace;color:var(--muted)}
.primary,.secondary{border-radius:7px;font-size:13px;font-weight:650;padding:11px 16px;min-height:44px}.primary{background:var(--green);color:white;border:1px solid var(--green)}.primary:hover{background:#285b49}.primary span{margin-left:18px}.secondary{border:1px solid #d4dbce;background:white}.secondary:hover{background:#f0f3e9}
.text-button{border:0;background:none;padding:10px 4px;min-height:44px;font-size:12px;font-weight:650}.actions,.result-actions,.lab-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.tool-launcher{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 22px;scroll-margin-top:12px}.tool-launcher button{padding:10px 8px}.tool-launcher button[aria-pressed=true]{background:#e9f0e9;border:2px solid var(--green);color:var(--green)}
label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}select,input,textarea{width:100%;min-width:0;max-width:100%;border:1px solid #d7ddd2;border-radius:7px;background:#fafbf7;padding:11px 12px;min-height:45px;font-size:14px}select{text-overflow:ellipsis;padding-right:5px}
textarea{font-family:ui-monospace,monospace;resize:vertical;line-height:1.65;min-height:112px;background:#f8f9f4;padding:14px}input[type=search]{max-width:550px;margin-bottom:26px;background:white}
.select-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;margin:14px 0 20px}.select-grid>*,.field-grid>*,.demo-selects>*{min-width:0}.label-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:6px}.label-row label{margin:0}
summary{min-height:44px;font-weight:650;line-height:1.6;padding:8px 0}.advanced,#question-options,#question-advanced{margin:16px 0;padding:8px 0;border-top:1px solid var(--line)}.scope{border-top:1px solid var(--line);padding-top:12px;margin-top:20px;font-size:12px;color:var(--muted)}
#text-entry{margin-top:18px}#guided-toggle{margin-bottom:6px}.auto-option{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;padding:14px;margin:14px 0;border:1px solid var(--line);border-radius:8px;background:#f7f8f3;font-weight:400;cursor:pointer}.auto-option input{width:20px;height:20px;min-height:20px;padding:0;margin:2px 0 0;accent-color:var(--green)}.auto-option strong,.auto-option small{display:block}.auto-option strong{font-size:13px}.auto-option small{font-size:12px;color:var(--muted);margin-top:4px}
.notice{font-size:13px;color:#8b491a;margin:12px 0 0;overflow-wrap:anywhere}.flow-steps{display:flex;gap:10px;list-style:none;padding:0;margin:18px 0}.flow-steps li{flex:1;min-width:0}.flow-steps button{width:100%;text-align:left}.flow-steps [aria-current=step]{border:2px solid var(--green);background:#edf2e7}
.flow-step{display:flex;flex-direction:column;gap:12px;min-width:0}.flow-step>.flow-next{order:2;align-self:flex-end}.flow-step>.text-button{align-self:flex-start}.flow-step:focus{outline:none}.field-grid,.demo-selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:18px;margin:18px 0}.flow-step .field-grid{margin:4px 0}
.editor-toolbar,.pagination{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 16px}.editor-toolbar label{margin:0}.editor-toolbar input,.editor-toolbar select{width:auto;max-width:180px}.editor-toolbar button,.lab-actions button{flex-shrink:0}.flow-step .editor-toolbar{margin-bottom:6px}
.table-scroll,.drawing-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;margin:18px 0;overscroll-behavior:contain}.table-scroll:focus-visible,.drawing-scroll:focus-visible{outline-offset:2px}
.data-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.data-table th,.data-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top;min-width:72px}.data-table th{background:#f0f4e9}.data-table td{overflow-wrap:anywhere;max-width:300px}.data-table pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.data-table input,.data-table select{min-width:74px;padding:9px}.data-table .rhs{border-left:3px solid #667c6a}
.data-table label{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
#fsm-stage-1 td,#fsm-stage-1 th{min-width:0;padding:8px}#fsm-stage-1 select{min-width:64px}
canvas{width:100%;height:220px;display:block;background:#f7f8f2;border-radius:8px;margin:15px 0}.drawing-scroll{max-height:560px;background:#fff}.drawing-scroll canvas{max-width:none;height:auto;border-radius:0;margin:0;background:#fff}.flow-step .drawing-scroll{margin:0}.drawing-hint{font-size:12px}.editor-selection{padding:14px;background:#f2f5ec;border-radius:8px;margin:14px 0}
.guided-panel{margin:18px 0;padding:16px;background:#f8faf5;border:1px solid var(--line);border-radius:10px}.guided-panel h3{font-size:17px}.matrix-editor{min-width:0}.matrix-editor .data-table{width:auto}
.kmap-panels{display:flex;flex-wrap:wrap;gap:20px}.kmap-panel{flex:1 1 235px;min-width:0}.kmap-editor{border-collapse:separate;border-spacing:5px;width:100%;font:12px ui-monospace,monospace}.kmap-editor th{font-size:10px;color:var(--muted);font-weight:500;padding:4px}.kmap-editor td{padding:0}
.kmap-cell{position:relative;min-width:40px;min-height:48px;width:100%;border:1px solid #bfcebf;background:white;border-radius:7px;font-weight:700;padding:18px 6px 6px}.kmap-cell small{position:absolute;top:3px;left:5px;font-size:9px;font-weight:400;color:var(--muted)}.kmap-cell[data-value="1"]{background:#e2edb2}.kmap-cell[data-value="X"]{background:#e6edf4}.kmap-cell[aria-pressed=true]{outline:3px solid #a9673e;outline-offset:-3px}.group-list{font-size:12px;line-height:1.8}
.result{margin-top:24px;scroll-margin-top:20px}.answer-box{background:#edf2e4;padding:20px;border-radius:9px}.answer-box pre{font-size:22px;margin:0;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.6}.verification{padding:13px 0;margin-bottom:10px;border-bottom:1px solid var(--line);font-size:12px;color:var(--green)}.verification.warning{color:#8b491a}.verification strong{display:block}
.interpretation{padding:16px;margin:0 0 18px;background:#edf2e7;border:1px solid #d3dec8;border-radius:12px;overflow-wrap:anywhere}.interpretation p{margin:8px 0}.interpretation pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}
#visual{max-width:100%;overflow-x:auto}.kmap{border-collapse:collapse;margin:14px 0;font:12px ui-monospace,monospace;max-width:100%}.kmap th,.kmap td{border:1px solid var(--line);padding:8px;text-align:center;min-width:32px}.kmap td.on{background:var(--lime)}.kmap caption{text-align:left;margin-bottom:8px;font-size:11px}
.lab-data details{margin:16px 0}.lab-data canvas{height:260px}.lab-data h3{font-size:16px}.lab-data .drawing-scroll canvas{height:auto}
.steps{list-style:none;counter-reset:step;margin:0;padding:0}.steps li{position:relative;counter-increment:step;padding:13px 0 16px 43px;border-bottom:1px solid #edf0e8}.steps li:before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:16px;color:var(--muted);font:11px ui-monospace,monospace;background:var(--paper);padding:5px;border-radius:5px}.steps p{font-size:13px;margin:0 0 8px;overflow-wrap:anywhere}.steps pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 ui-monospace,monospace;background:#f7f8f3;padding:12px;border-radius:6px;overflow-x:auto;margin:0}
.subject-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.subject-card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0;content-visibility:auto;contain-intrinsic-block-size:auto 380px}.subject-card h2{margin-bottom:14px}.topic-link{display:block;width:100%;min-height:44px;text-align:left;border:0;border-top:1px solid #edf0e8;background:none;padding:11px 0;font-size:13px}.topic-link:hover{color:#a15322}
.history-list{display:grid;gap:12px;margin-top:24px}.history-item{text-align:left;border:1px solid var(--line);border-radius:9px;background:white;padding:18px;overflow-wrap:anywhere}.history-item strong,.history-item small{display:block}.history-item small{color:var(--muted)}
.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:28px 0;align-items:start}.download-grid p{font-size:13px}.link-button{display:inline-block;text-decoration:none}.offline-actions{display:grid;gap:12px}.note-symbol{font-size:26px}
.platform-downloads{display:grid;gap:18px;list-style:none;padding:0;margin:24px 0}.platform-downloads li{min-width:0}.platform-downloads a{display:block;min-height:44px}.platform-downloads small{display:block;margin-top:8px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}
.pagination{justify-content:space-between;margin-top:20px;font-size:12px}#demo-progress{width:100%;height:16px;accent-color:var(--green);margin-top:20px}#demo-status,#demo-summary{font-size:13px}#demo-rows td:nth-child(2),#demo-rows td:nth-child(3){min-width:170px}
footer{font-size:11px;color:var(--muted);padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}footer #offline-status{max-width:720px}
@media(max-width:1100px){main{margin-left:200px;padding:0 26px 30px}.sidebar{width:200px;padding:26px 16px}.breadcrumb{max-width:200px}}
@media(max-width:700px){
body{font-size:14px}main{margin:0;padding:0 16px calc(85px + env(safe-area-inset-bottom))}.sidebar{inset:auto 0 0;width:100%;height:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--paper);border:0;border-top:1px solid #d1d9ca;z-index:5;display:block}
.sidebar>.brand,.sidebar>.eyebrow,.sidebar-bottom,.breadcrumb{display:none}.sidebar nav{display:flex;justify-content:space-around;min-height:55px;gap:6px}.nav{flex:1;min-width:0;margin:0;padding:6px 2px;flex-direction:column;gap:2px;font-size:10px;text-align:center;line-height:1.35;justify-content:center}.nav.active{background:#e2e9d7;color:var(--green)}
.mobile-brand{display:flex;align-items:center;gap:7px;text-decoration:none;font-weight:700;font-size:12px;line-height:1.2;min-width:0}.mobile-brand img{border-radius:7px;flex-shrink:0}.topbar{min-height:65px;padding-top:env(safe-area-inset-top);gap:12px}.status{font-size:9px;padding:4px 8px;max-width:145px;flex-shrink:0}
.welcome{padding-top:20px}.card{padding:18px}h2{font-size:18px}.section-heading{gap:8px}.select-grid{grid-template-columns:1fr}.field-grid,.demo-selects{gap:16px}input,textarea,.data-table input,.data-table select{font-size:16px}
.tool-launcher{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-launcher button{font-size:12px;min-height:48px}.flow-steps{gap:8px}.flow-steps button{padding:10px;font-size:12px}.guided-panel{padding:12px;margin-left:-6px;margin-right:-6px}
.editor-toolbar{align-items:stretch;gap:10px}.editor-toolbar input,.editor-toolbar select{max-width:100%}.drawing-scroll{max-height:420px}.kmap-editor{border-spacing:3px}.lab-actions button{flex:1 1 140px}.lab-data canvas{height:240px}.pagination{gap:10px}
.subject-list,.download-grid{grid-template-columns:1fr}.view:not(#workbench){padding-top:24px}.answer-box pre{font-size:18px}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result-actions #print{grid-column:1/-1}.steps li{padding-left:34px}.steps pre,.steps p{font-size:12px}
}
@media(max-width:380px){.mobile-brand span{max-width:65px}.status{max-width:128px}.actions{flex-direction:column}.actions button{width:100%}.result-actions{grid-template-columns:1fr}}
@media(max-height:500px) and (min-width:701px){.sidebar{padding-top:14px}.brand{margin-bottom:12px}.sidebar-bottom{display:none}}
@media print{.sidebar,.topbar,.welcome,.tool-launcher,.input-card,.result-actions,footer,.view:not(#workbench),#lab-content,#lab-status,#update-offline{display:none!important}main{margin:0;padding:0}.result{border:0;padding:0}.steps li{break-inside:avoid}.answer-box{border:1px solid #aaa}body{background:white;color:black}.drawing-scroll,.table-scroll{max-height:none;overflow:visible}.drawing-scroll canvas{width:100%!important}}
