:root{--lab-bg: #11171d;--lab-panel: #1b242d;--lab-well: #101920;--lab-ink: #e4ebef;--lab-muted: #a7b7c3;--lab-rule: #3b4b57;--lab-accent: #e4b76a;--lab-accent-ink: #20201c;--lab-hover: #2b3b47;--lab-error: #ffbcac;--lab-font: "Malgun Gothic", "Segoe UI", sans-serif;--lab-display: "Bahnschrift", "Malgun Gothic", sans-serif;--lab-xs: 4px;--lab-sm: 8px;--lab-md: 12px;--lab-lg: 20px;--lab-xl: 28px}html,body{margin:0;overflow-x:clip;background:var(--lab-bg)}.lab-workspace,.lab-workspace *{box-sizing:border-box}.lab-workspace{min-height:100vh;padding:var(--lab-lg) var(--lab-xl);color:var(--lab-ink);font:14px/1.5 var(--lab-font)}.lab-workspace h1,.lab-workspace h2,.lab-workspace p{margin:0}.lab-workspace h1,.lab-workspace h2{font-family:var(--lab-display);overflow-wrap:anywhere;min-width:0}.lab-workspace h2{font-size:17px}.lab-header{display:flex;align-items:center;gap:var(--lab-xl);padding-bottom:var(--lab-lg)}.lab-header h1{font-size:26px;letter-spacing:.06em}.lab-header h1 span{color:var(--lab-accent)}.lab-header p,.lab-workspace small,.lab-workspace footer{color:var(--lab-muted)}.lab-bench{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);border:1px solid var(--lab-rule)}.parts-bank{min-width:0}.part-station{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);min-height:180px;background:var(--lab-panel);border-bottom:1px solid var(--lab-rule)}.part-station:last-child{border-bottom:0}.part-model{min-width:0;padding:var(--lab-sm)}.part-controls{padding:var(--lab-md);min-width:0}.station-heading,.unit-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--lab-sm)}.lab-workspace button,.lab-workspace input{font:inherit;color:inherit;border:1px solid var(--lab-rule);border-radius:3px;background:var(--lab-well);min-width:0}.lab-workspace button{cursor:pointer;white-space:nowrap;padding:var(--lab-sm) var(--lab-md)}.lab-workspace button:hover:not(:disabled){background:var(--lab-hover);border-color:var(--lab-muted)}.lab-workspace button:disabled{opacity:.45;cursor:default}.lab-workspace :focus-visible{outline:2px solid var(--lab-accent);outline-offset:3px}.lab-workspace .quiet{padding:var(--lab-xs) var(--lab-sm);font-size:12px;color:var(--lab-muted)}.part-carousel{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:var(--lab-xs);margin:var(--lab-sm) 0}.lab-workspace .arrow{padding:0;font-size:28px}.lab-workspace .part-choice{padding:var(--lab-xs);overflow:hidden}.part-choice strong,.part-choice span{display:block;overflow:hidden;text-overflow:ellipsis}.part-choice strong{font-size:17px}.part-choice span{color:var(--lab-muted);font-size:11px}.part-description{font-size:12px;color:var(--lab-muted);white-space:pre-line;overflow-wrap:anywhere;max-height:62px;overflow-y:auto}.instance-picker{display:block;font-size:11px;color:var(--lab-muted);margin-top:4px}.instance-line{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;gap:1px var(--lab-sm);margin-top:4px;padding-right:72px;font-size:11px;color:var(--lab-muted);min-width:0}.instance-line>span{min-width:0;white-space:normal;line-height:1.35;overflow-wrap:anywhere}.instance-line>button{position:absolute;right:0;top:0;padding:1px 6px;font-size:11px}.instance-picker select{display:block;width:100%;padding:3px;color:var(--lab-ink);background:var(--lab-well);border:1px solid var(--lab-rule)}.lab-viewer{position:relative;height:100%;min-height:150px;background:var(--lab-well);overflow:hidden}.lab-viewer canvas{display:block;position:absolute;inset:0}.lab-viewer>p{position:absolute;inset:0;display:grid;place-content:center;padding:var(--lab-md);text-align:center;font-size:12px;color:var(--lab-muted);pointer-events:none}.unit-station{min-width:0;padding:var(--lab-lg);border-left:1px solid var(--lab-rule);display:flex;flex-direction:column}.unit-heading span{color:var(--lab-muted);font-size:12px}.unit-station>.lab-viewer{flex:1;height:320px;min-height:290px;margin:var(--lab-md) 0}.lab-save label{display:block;font-size:12px;color:var(--lab-muted);margin-bottom:var(--lab-xs)}.lab-save>div{display:flex;gap:var(--lab-sm)}.lab-workspace input{padding:var(--lab-sm);width:100%}.lab-workspace .primary{background:var(--lab-accent);color:var(--lab-accent-ink);border-color:var(--lab-accent);font-weight:700}.lab-feedback{padding:var(--lab-md) 0;min-height:45px;color:var(--lab-muted);font-size:12px}.lab-error{color:var(--lab-error);overflow-wrap:anywhere}.saved-deck{border-top:1px solid var(--lab-rule);padding-top:var(--lab-md)}.saved-slots{display:flex;overflow-x:auto;gap:var(--lab-sm);padding:var(--lab-sm) 2px}.saved-slots button{flex:0 0 170px;text-align:left}.saved-slots button>*{display:block;overflow:hidden;text-overflow:ellipsis}.saved-slots button span{font-size:11px;color:var(--lab-muted)}.lab-workspace button[aria-pressed=true]{border-color:var(--lab-accent)}.lab-workspace footer{margin-top:var(--lab-md);font-size:11px}.part-picker{padding-top:var(--lab-sm)}.picker-results{max-height:200px;overflow-y:auto;margin-top:var(--lab-xs)}.picker-results button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--lab-sm);text-align:left}.picker-results button>span{flex:1}.picker-results button span{overflow:hidden;text-overflow:ellipsis}@media(max-width:900px){.lab-bench{grid-template-columns:minmax(0,1fr)}.unit-station{border-left:0;border-top:1px solid var(--lab-rule)}.unit-station>.lab-viewer{flex:auto;height:340px}}@media(max-width:480px){.lab-workspace{padding:var(--lab-md)}.lab-header{display:block}.lab-header p{font-size:12px;margin-top:var(--lab-xs)}.part-station{grid-template-columns:minmax(90px,.65fr) minmax(0,1fr)}.part-controls{padding:var(--lab-sm)}.part-carousel{grid-template-columns:28px minmax(0,1fr) 28px}.part-choice strong{font-size:14px}.unit-station{padding:var(--lab-md)}}.catalog-errors{color:var(--lab-error);padding:var(--lab-md);border:1px solid var(--lab-rule);margin-bottom:var(--lab-md);overflow-wrap:anywhere}.assembly-validation{padding:var(--lab-sm) 0;font-size:12px;color:var(--lab-muted)}.assembly-validation strong{display:block;color:var(--lab-accent)}.capture-stats{border:1px solid var(--lab-rule);padding:var(--lab-md);margin-bottom:var(--lab-md)}.capture-stats h2{font-size:13px;margin:0 0 var(--lab-sm)}.capture-stats dl{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--lab-sm);margin:0}.capture-stats dt,.capture-stats p{font-size:11px;color:var(--lab-muted)}.capture-stats dd{font-size:20px;margin:3px 0;font-variant-numeric:tabular-nums}.capture-stats p{margin:var(--lab-sm) 0 0}.capture-stats[data-stats-status=error] p{color:var(--lab-error)}.capture-stats dl[data-stale]{opacity:.5}@media(max-width:600px){.capture-stats dl{grid-template-columns:repeat(4,minmax(0,1fr))}}.assembly-validation[data-validation=invalid]{color:var(--lab-error)}.station-heading>div{display:flex;gap:4px}.station-heading h2,.station-heading>div{flex-shrink:0}.station-heading .subcore-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--lab-accent)}.lab-dialog{width:min(580px,calc(100vw - 48px));max-height:calc(100dvh - 48px);padding:24px;color:var(--lab-ink);background:var(--lab-panel);border:1px solid var(--lab-rule);overflow:auto}.lab-dialog::backdrop{background:#000a}.lab-dialog form{float:right;margin:0 0 12px 12px}.lab-dialog h2{margin-bottom:16px}.lab-dialog .part-description{white-space:pre-line;max-height:none;overflow:visible;font-size:14px}.lab-dialog details{margin-top:16px}.lab-dialog p{margin:8px 0}.saved-heading,.saved-heading nav{display:flex;align-items:center;gap:8px}.saved-heading nav span{min-width:44px;text-align:center;color:var(--lab-muted);font-size:12px}.saved-heading .lab-save{margin-left:auto}@media(min-width:901px){html,body,#root{height:100%;overflow:hidden}.lab-workspace{height:100dvh;min-height:0;padding:8px 12px;display:grid;grid-template-rows:32px minmax(0,1fr) 104px 150px;gap:6px}.lab-header{padding:0;gap:20px}.lab-header h1{font-size:22px}.lab-header p{font-size:12px}.lab-bench{position:relative;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.parts-bank{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));min-height:0}.part-station{position:relative;min-height:0;grid-template-columns:minmax(105px,.65fr) minmax(0,1.35fr)}.part-model,.part-model .lab-viewer{min-height:0}.part-controls{padding:6px 8px;position:relative;min-height:0;display:flex;flex-direction:column;justify-content:center}.station-heading h2{font-size:14px}.station-heading .quiet{padding:1px 6px}.part-carousel{margin:3px 0}.part-choice strong{font-size:14px}.instance-picker{display:flex;align-items:center;gap:6px;white-space:nowrap;margin-top:3px}.instance-picker select{flex:1;min-width:0;width:0}.part-picker{position:fixed;left:calc(50% + 8px);right:22px;top:54px;bottom:280px;z-index:20;background:var(--lab-panel);border:1px solid var(--lab-muted);padding:12px;box-shadow:0 8px 20px var(--lab-bg);display:flex;flex-direction:column}.picker-results{min-height:0;max-height:none;flex:1}.unit-station{padding:10px;min-height:0}.unit-station>.lab-viewer{height:auto;flex:1 1 180px;min-height:120px;margin:6px 0}.assembly-validation{padding:4px 0}.capture-stats{padding:6px 10px;margin:0;min-height:0}.stats-caption{display:flex;align-items:center;gap:10px;margin-bottom:4px}.capture-stats dl{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.capture-stats dd{font-size:18px;margin:0}.capture-stats h2{font-size:12px;margin:0;flex-shrink:0}.capture-stats p{font-size:12px;margin:0}.lab-feedback{padding:4px 0;min-height:26px;max-height:58px;overflow-y:auto}.lab-save label{display:none}.saved-deck{margin:0;padding:4px 0 0;display:grid;grid-template-rows:30px minmax(0,1fr);gap:4px;min-height:0}.saved-heading h2{font-size:14px}.saved-heading nav button{padding:0 9px;font-size:20px}.lab-save{width:420px}.lab-save input,.lab-save button{padding:4px 8px;font-size:12px}.lab-save input{flex:1;width:0}.lab-save button{flex-shrink:0}.saved-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));padding:0;overflow:visible;gap:4px}.saved-slots button{min-width:0;padding:4px 6px;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:0 4px}.saved-slots button strong{font-size:12px}.saved-slots button span{grid-column:1 / -1;font-size:11px;line-height:1.25;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.saved-slots>p{grid-column:1 / -1;align-self:center;color:var(--lab-muted);font-size:12px}}.picker-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.catalog-loading{position:absolute;inset:0 50% 0 0;z-index:25;background:var(--lab-panel);display:grid;place-content:center;padding:20px;text-align:center}.stats-caption button{padding:3px 8px;font-size:12px}.stats-caption button:first-of-type{margin-left:auto}.stat-delta{display:inline;font-size:12px;color:var(--lab-accent)}.comparison-caption{color:var(--lab-accent);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.saved-deck{position:relative}.saved-heading>button{padding:3px 8px;font-size:12px}.saved-heading h2 small{color:var(--lab-muted);font-size:12px}.saved-slots button[data-current=true] strong:after{content:" ●";color:var(--lab-accent)}.deck-error{position:absolute;bottom:100%;left:0;right:0;padding:8px;background:var(--lab-panel);color:var(--lab-error);z-index:30}.archive-dialog{width:min(760px,calc(100vw - 48px))}.archive-dialog>input{margin:12px 0}.archive-list{max-height:46vh;overflow-y:auto;display:grid;gap:8px}.archive-list article{border:1px solid var(--lab-rule);padding:10px}.archive-list p{color:var(--lab-muted);font-size:12px}.archive-actions{display:flex;align-items:center;gap:8px}.archive-actions input{min-width:0;flex:1}.archive-actions button{flex-shrink:0}.assembly-preview{position:relative;flex:1 1 160px;min-height:100px;margin:5px 0}.assembly-preview>.lab-viewer{height:100%;min-height:0}.preview-loading{position:absolute;inset:0;display:grid;place-content:center;padding:16px;text-align:center;color:var(--lab-muted);font-size:12px}.assembly-preview[aria-busy=true] .lab-viewer>p{display:none}@media(min-width:901px){.lab-workspace{--lab-accent:#79b9ef;--lab-accent-ink:#091725;--lab-bg:#101b28;--lab-panel:#24364a;--lab-well:#152434;--lab-rule:#476179;--lab-hover:#314d68;--lab-ink:#e3edf5;--lab-muted:#a7bacb;grid-template-columns:minmax(370px,.8fr) minmax(0,1.2fr);grid-template-rows:34px 260px minmax(0,1fr) 104px;gap:8px}.lab-header{grid-column:1/-1;grid-row:1;gap:12px}.lab-bench{display:contents}.parts-bank{grid-column:1;grid-row:2/5;border:1px solid var(--lab-rule)}.part-station{grid-template-columns:minmax(95px,.6fr) minmax(0,1.4fr)}.part-model{padding:4px}.saved-deck{grid-column:2;grid-row:2;border:1px solid var(--lab-rule);padding:6px;grid-template-rows:32px minmax(0,1fr)}.saved-slots{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.saved-heading h2{display:none}.lab-save label{display:block;margin:0;font-size:11px;white-space:nowrap}.lab-save{display:flex;align-items:center;gap:6px}.lab-save>div{flex:1;min-width:0;max-width:420px}.saved-heading{gap:4px}.lab-save{width:auto;flex:1;min-width:0}.unit-station{grid-column:2;grid-row:3;border:1px solid var(--lab-rule);padding:6px;overflow:hidden}.capture-stats{grid-column:2;grid-row:4;overflow:hidden}.capture-stats dl{gap:3px}.capture-stats dd{font-size:16px}.stats-caption{gap:5px}.stats-caption p{display:none}.current-unit{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,30%);grid-template-rows:minmax(0,1fr) auto;flex:1;min-height:0;gap:4px 8px}.current-unit[hidden]{display:none}.assembly-preview{grid-column:1;grid-row:1/3;min-height:0;margin:0}.current-unit>.unit-meta{grid-column:2;grid-row:1;align-self:stretch;min-height:0}.lab-feedback{grid-column:1/-1;grid-row:3;min-height:0;padding:0}.part-picker{left:calc(40% + 18px);right:20px;top:52px;bottom:126px}.catalog-loading{position:fixed;inset:50px 60% 12px 12px}}.work-actions,.mode-tabs{display:flex;gap:4px}.mode-tabs button{border-color:transparent;background:transparent;border-radius:0;border-bottom:2px solid transparent;color:var(--lab-muted)}.lab-workspace .mode-tabs button[aria-pressed=true]{border-bottom-color:var(--lab-accent);color:var(--lab-ink);font-weight:700}.lab-workspace .mode-tabs button:hover:not(:disabled){background:transparent;color:var(--lab-ink);border-bottom-color:var(--lab-rule)}.work-actions button,.mode-tabs button{padding:4px 8px;font-size:12px}.unit-heading{margin-bottom:5px}.comparison-work{overflow:auto;min-height:0;flex:1;font-size:12px}.comparison-work table{width:100%;border-collapse:collapse;table-layout:fixed}.comparison-work th,.comparison-work td{padding:4px;border-bottom:1px solid var(--lab-rule);text-align:left;overflow-wrap:anywhere}.comparison-work th button{padding:1px 4px;font-size:11px}.lab-dialog textarea{width:100%;height:160px;resize:vertical;background:var(--lab-well);color:var(--lab-ink);margin:8px 0}.unit-meta{grid-column:2;grid-row:1/3;min-height:0;overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;gap:8px}@media(min-width:901px){.saved-slots>button{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:18px minmax(0,1fr);gap:0;padding:3px;overflow:hidden}.saved-slots>button>span{display:none}.saved-slots>button>small,.saved-slots>button>strong{z-index:1;line-height:18px;white-space:nowrap}.saved-slots>button>strong{font-size:11px}.deck-preview{grid-column:1/-1;grid-row:2;align-self:stretch;min-height:0;position:relative}.deck-preview .lab-viewer{min-height:0;height:100%;background:transparent}.deck-preview .lab-viewer>p{font-size:10px;padding:2px}.deck-preview>p{position:absolute;inset:0;background:var(--lab-panel);font-size:10px;white-space:normal;line-height:1.2}.deck-preview [role=button]{text-decoration:underline}}@media(min-width:901px){.deck-card{position:relative;min-width:0;min-height:0}.deck-card>button:not(.card-actions){width:100%;height:100%;align-content:start;grid-template-columns:15px minmax(0,1fr);grid-template-rows:18px;overflow:hidden;padding:3px 2px}.deck-card>button>span{display:none}.deck-card>button>strong{font-size:11px;white-space:nowrap}.deck-card>.deck-preview{position:absolute;inset:24px 4px 3px;pointer-events:none}.deck-preview button{pointer-events:auto;position:relative;z-index:2;padding:1px 4px}}.candidate-search{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;gap:4px;font-size:12px}.candidate-mode{display:flex;flex:1;min-width:0;min-height:0}.candidate-mode[hidden]{display:none!important}.candidate-search-heading{display:flex;gap:8px;align-items:center}.candidate-search-heading h2,.candidate-search>p{display:none}.candidate-search-fixed{display:flex;gap:8px;overflow:hidden;white-space:nowrap;font-size:11px;color:var(--lab-muted)}.candidate-search form{display:grid;grid-template-columns:80px minmax(70px,1fr) 80px 80px auto;gap:4px;align-items:end}.candidate-search input,.candidate-search select{width:100%;padding:3px;color:var(--lab-ink);background:var(--lab-well);border:1px solid var(--lab-rule)}.candidate-search form button{padding:4px 8px}.candidate-search-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);min-height:0;flex:1;gap:6px}.candidate-results{overflow:auto;min-height:0;scrollbar-gutter:stable}.candidate-results button{width:100%;display:block;text-align:left;white-space:normal;padding:4px}.candidate-results button>*{display:block}.candidate-results .candidate-result-heading{display:flex;align-items:baseline;justify-content:space-between;gap:4px}.candidate-result-heading strong{min-width:0;overflow-wrap:anywhere}.candidate-result-heading small{flex-shrink:0;font-size:10px}.candidate-result-heading [data-invalid=true],.candidate-selection [data-invalid=true]{color:var(--lab-error)}.candidate-results button>span:last-child{font-size:11px;color:var(--lab-muted)}.candidate-preview{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;overflow:hidden;gap:4px}.candidate-detail{display:grid;grid-template-columns:minmax(0,1fr) 88px;grid-template-rows:auto auto 1fr;align-content:start;gap:4px 6px;min-height:0;overflow:auto;font-size:11px;scrollbar-gutter:stable}.candidate-selection{grid-column:1;grid-row:1;min-width:0}.candidate-selection strong,.candidate-selection span{display:block;overflow-wrap:anywhere}.candidate-selection strong{font-size:12px}.candidate-detail>.lab-viewer{grid-column:2;grid-row:1/3;height:80px;min-height:80px}.candidate-messages{grid-column:1;grid-row:2;min-width:0}.candidate-messages p{margin:0 0 3px;overflow-wrap:anywhere;line-height:1.4}.candidate-error{color:var(--lab-error)}.candidate-stat-note,.candidate-empty{color:var(--lab-muted);font-size:11px}.deck-card>button:not([data-save-id])>span{display:block;position:absolute;top:45%;left:4px;right:4px;white-space:normal;text-align:center;font-size:11px}.candidate-detail dl{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:2px;margin:3px 0}.candidate-detail dt{font-size:10px}.candidate-detail dd{margin:0;font-variant-numeric:tabular-nums}.candidate-apply{min-height:27px;padding:2px 6px!important}.assembly-validation[data-validation=invalid] strong{color:var(--lab-error)}.assembly-validation[data-validation=invalid]{border:1px solid var(--lab-error);padding:6px;background:#491d28}.lab-workspace .station-toggle{padding:0;border:0;background:transparent;font-weight:700}.hover-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:132px;flex-shrink:0;gap:8px;margin-bottom:8px}.hover-preview .lab-viewer{min-height:0}.hover-preview>div:last-child{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0}.hover-preview strong{font-size:16px}.hover-preview p,.hover-preview span{font-size:11px;color:var(--lab-muted);white-space:normal}.hover-preview[aria-busy=true]{opacity:.75}.picker-results button[data-hovered=true]{background:var(--lab-hover);border-color:var(--lab-accent)}.picker-results button[aria-pressed=true]{border-color:var(--lab-accent)}.picker-results button:active{background:var(--lab-panel)}.comparison-work{display:flex;flex-direction:column;overflow:hidden;gap:8px}.comparison-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.comparison-toolbar p{font-size:11px;color:var(--lab-muted)}.comparison-toolbar button{flex-shrink:0}.comparison-scroll{overflow:auto;min-height:0;flex:1}.comparison-table caption{text-align:left;color:var(--lab-muted);font-size:11px;padding-bottom:6px}.comparison-table thead th{vertical-align:top;background:var(--lab-panel)}.comparison-table thead th>span{display:block;color:var(--lab-accent);font-size:11px}.comparison-table thead th>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comparison-parts-summary{margin:5px 0}.comparison-parts-summary span{display:block;font-size:10px;color:var(--lab-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comparison-column-actions{display:flex;gap:3px}.comparison-table td{font-variant-numeric:tabular-nums}.comparison-table td>span{font-size:15px;display:inline-block;min-width:24px}.comparison-table td>small{display:inline-block;margin-left:5px;font-size:12px}.comparison-table small[data-direction=increase]{color:var(--lab-accent)}.comparison-table small[data-direction=decrease]{color:var(--lab-ink)}.comparison-table [data-baseline=true]{background:var(--lab-well)}.comparison-table thead th:first-child{width:84px}.comparison-table th,.comparison-table td{padding:4px 6px;line-height:1.25}.comparison-caption-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.comparison-change{color:var(--lab-accent);font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.comparison-parts-summary{font-weight:400;font-size:11px;margin:3px 0}.comparison-parts-summary summary{cursor:pointer;color:var(--lab-muted)}.comparison-table small[data-direction=same]{color:var(--lab-muted)}.hover-projection{display:flex;flex-direction:column;gap:2px;padding:6px 8px;margin-bottom:6px;background:var(--lab-well);border-left:2px solid var(--lab-accent);font-size:11px;flex-shrink:0}.hover-projection[data-invalid=true]{border-color:var(--lab-error)}.hover-projection[data-invalid=true] strong{color:var(--lab-error)}.hover-projection{height:64px;overflow:auto}.save-state{font-size:10px;color:var(--lab-muted);white-space:nowrap}.save-state[data-unsaved]{font-size:12px;font-weight:700;color:var(--lab-warn,#e0a33a)}.picker-count{margin-left:auto;margin-right:8px;font-size:11px;color:var(--lab-muted);white-space:nowrap}.deck-card>button[data-save-target=true]{outline:2px solid var(--lab-accent);outline-offset:-2px}.slot-target{position:absolute;bottom:3px;right:4px;font-size:10px;font-style:normal;background:var(--lab-well);color:var(--lab-accent);padding:1px 4px;z-index:3}.deck-preview>p>button{display:block;margin-top:4px}.browser-dock{display:none;min-width:0;min-height:0}@media(min-width:901px){.lab-workspace .browser-dock{display:none}.lab-workspace{--shelf-heading:43px}.lab-workspace[data-browsing=true] .browser-dock{display:block;grid-column:2;grid-row:2;align-self:end;height:calc(100% - var(--shelf-heading));background:var(--lab-panel);border:1px solid var(--lab-rule);border-top:0;padding:6px}.lab-workspace[data-browsing=true] .saved-slots{display:none}.browser-dock>.part-picker{display:grid;grid-template-columns:minmax(150px,1fr) minmax(112px,.55fr) minmax(180px,1fr);grid-template-rows:24px 27px minmax(0,1fr);gap:4px 8px;height:100%;padding:0;background:transparent;border:0;box-shadow:none}.browser-dock .picker-heading{grid-column:1/4;grid-row:1;margin:0;gap:6px}.browser-dock .picker-heading h2{font-size:14px;color:var(--lab-ink)}.browser-dock .picker-heading button{padding:2px 10px}.browser-dock .hover-preview{grid-column:2;grid-row:2/4;display:flex;flex-direction:column;height:auto;min-height:0;margin:0;gap:2px}.browser-dock .part-picker>p{grid-column:1;grid-row:3;align-self:start}.browser-dock .hover-preview>.lab-viewer{min-height:0;flex:1;background:transparent}.browser-dock .hover-preview>div:last-child{gap:0}.browser-dock .hover-preview strong{font-size:12px}.browser-dock .hover-preview p{display:none}.browser-dock .hover-preview .preview-status{display:block;margin:3px 0;font-size:11px;white-space:normal}.browser-dock .preview-status button{padding:2px 5px;font-size:11px}.browser-dock .hover-preview span{font-size:10px}.browser-dock .hover-projection{grid-column:3;grid-row:2/4;height:auto;min-height:0;margin:0;overflow:auto;justify-content:flex-start}.browser-dock .part-picker>input{grid-column:1;grid-row:2;padding:2px 8px;font-size:12px}.browser-dock .picker-results{grid-column:1;grid-row:3;grid-template-columns:minmax(0,1fr);margin:0;overflow-y:scroll;min-height:0;max-height:none;scrollbar-width:thin;scrollbar-color:var(--lab-muted) var(--lab-well);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 16px),transparent)}.browser-dock .picker-results button{padding:4px}.lab-workspace .part-station{grid-template-columns:minmax(120px,35%) minmax(0,1fr)}.lab-workspace .part-choice span{display:block;font-size:10px}.lab-workspace .part-choice{position:relative;padding:3px 18px 3px 3px}.lab-workspace .part-station[data-picker-open=true]{outline:2px solid var(--lab-accent);outline-offset:-2px}.lab-workspace .part-station[data-picker-open=true] .part-choice:after{content:"▴";color:var(--lab-accent)}.lab-workspace .part-choice:after{content:"▾";position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:15px;line-height:1;color:var(--lab-muted)}.lab-workspace .station-menu{padding:0 6px;font-size:14px;line-height:1.1}.lab-workspace .part-carousel{grid-template-columns:28px minmax(0,1fr) 28px}.lab-workspace .part-choice strong{font-size:15px}.lab-workspace .station-heading{gap:3px}.lab-workspace .subcore-label{font-size:10px}.lab-workspace .unit-meta{font-size:11px}.lab-workspace .stats-caption{margin-bottom:2px}.lab-workspace .capture-stats dd{font-size:16px}}@media(min-width:901px){.lab-workspace[data-mode=compare] .unit-station,.lab-workspace[data-mode=search] .unit-station{grid-row:3/5}.lab-workspace[data-mode=compare] .capture-stats,.lab-workspace[data-mode=search] .capture-stats{display:none}}@media(min-width:901px){.parts-bank:has(.part-picker){display:flex;flex-direction:column;overflow:hidden}.parts-bank:has(.part-picker) .part-station{display:block;flex:0 0 38px;min-height:0}.parts-bank:has(.part-picker) .part-station[data-picker-open=true]{flex:1;overflow:hidden}.parts-bank:has(.part-picker) .part-model{display:none}.parts-bank:has(.part-picker) .part-controls{height:100%;justify-content:flex-start}.parts-bank:has(.part-picker) .part-station[data-picker-open=false] .part-carousel,.parts-bank:has(.part-picker) .part-station[data-picker-open=false] .instance-picker,.parts-bank:has(.part-picker) .part-station[data-picker-open=false] .subcore-label{display:none}.parts-bank:has(.part-picker) .station-heading{min-height:24px;flex-shrink:0}.part-picker{position:static;inset:auto;flex:1;min-height:0;border:0;box-shadow:none;padding:6px 0 0;overflow:hidden}.picker-heading{margin-bottom:6px}.picker-heading h2{font-size:12px;color:var(--lab-muted)}.picker-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:4px}.picker-results button{padding:6px;font-size:12px}.picker-results button small{font-size:10px}}@media(min-width:901px){.lab-workspace .capture-stats dl{margin:0}}.replacement-stats{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}.replacement-stats th,.replacement-stats td{padding:4px 3px;text-align:right;border-bottom:1px solid var(--lab-rule)}.replacement-stats th:first-child{text-align:left}.replacement-stats thead{color:var(--lab-muted);font-size:10px}.replacement-stats td[data-changed=true]{color:var(--lab-accent);font-weight:700}.browser-dock .hover-projection{justify-content:flex-start}.browser-dock .hover-projection p{margin:0}.browser-dock .replacement-stats th,.browser-dock .replacement-stats td{padding:3px}.browser-dock .replacement-stats th,.browser-dock .replacement-stats td{padding:1px 3px}.hover-projection[data-resting] .replacement-stats th:nth-child(n+3),.hover-projection[data-resting] .replacement-stats td:nth-child(n+3){display:none}.capture-stats:not([data-stats-status=ready]) .stats-caption p{display:block}.part-dirty{color:var(--lab-accent)}.save-state{flex-shrink:0}.part-model{position:relative}.part-station{box-shadow:inset 3px 0 transparent}.part-station[data-dirty=true]{box-shadow:inset 3px 0 var(--lab-accent)}.part-state-tags{position:absolute;bottom:4px;left:6px;right:4px;display:flex;gap:2px;flex-wrap:wrap;pointer-events:none;font-size:10px;line-height:16px}.part-state-tags span{padding:0 3px;background:var(--lab-well)}.station-heading .changed-tag{margin-left:6px;padding:0 5px;border-radius:2px;background:var(--lab-well);color:var(--lab-accent);font-family:var(--lab-font);font-size:11px;font-weight:400;vertical-align:middle}.conflict-tag{color:var(--lab-error);border:1px dashed var(--lab-error)}.visual-validation{display:flex;flex-direction:column;gap:5px;padding:0}.assembly-validation.visual-validation[data-validation=invalid]{background:transparent;border:0;padding:0}.visual-validation .assembly-state{color:var(--lab-ink);font-size:12px}.visual-validation[data-validation=invalid] .assembly-state{color:var(--lab-error)}.visual-validation .load-heading{display:flex;justify-content:space-between;gap:4px;color:var(--lab-ink);font-size:11px}.load-meter{height:9px;position:relative;background:var(--lab-well);border:1px solid var(--lab-rule);margin:3px 0}.load-used,.load-excess{position:absolute;top:0;bottom:0}.load-used{background:var(--lab-muted);left:0}.load-used[data-load=full]{background:var(--lab-accent)}.load-used[data-load=over]{background:var(--lab-error)}.load-excess{background:repeating-linear-gradient(135deg,var(--lab-error) 0 3px,var(--lab-well) 3px 5px)}.load-limit{position:absolute;top:-3px;bottom:-3px;border-left:2px solid var(--lab-ink)}.load-balance,.load-unknown{display:block;font-size:10px;color:var(--lab-muted);text-align:right}.load-balance-row{display:flex;align-items:center;justify-content:flex-end;gap:4px}.load-balance-row .repair-action{margin-right:auto}.load-status[data-overloaded=true] .load-balance{color:var(--lab-error);font-weight:700}.load-parts{list-style:none;margin:6px 0 0;padding:6px 0 0;border-top:1px solid var(--lab-rule);display:grid;gap:2px;font-size:11px;color:var(--lab-muted)}.load-parts li{display:flex;justify-content:space-between;gap:8px}.load-parts b{color:var(--lab-ink);font-variant-numeric:tabular-nums;font-weight:400}.load-parts .load-parts-limit{margin-top:2px;padding-top:2px;border-top:1px dotted var(--lab-rule)}.compatibility-issue{border-left:2px dashed var(--lab-error);padding-left:5px;display:flex;flex-direction:column;line-height:1.4}.compatibility-issue b{font-size:11px;color:var(--lab-error)}.compatibility-issue span,.validation-detail{font-size:10px;color:var(--lab-muted)}.repair-actions{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.visual-validation .repair-action{min-height:20px;padding:0 4px;font-size:10px;line-height:16px;color:var(--lab-accent)}.part-load-tag{flex-basis:100%;color:var(--lab-ink)}.lab-dialog .share-link{width:100%;margin-bottom:var(--lab-md);font-family:var(--lab-font)}.lab-dialog textarea{width:100%;min-height:90px;margin-bottom:var(--lab-md);padding:var(--lab-sm);color:inherit;background:var(--lab-well);border:1px solid var(--lab-rule);border-radius:3px;font:inherit}.unit-meta>.assembly-validation{padding:0}.unit-meta .assembly-state{font-size:17px;letter-spacing:.02em;margin-bottom:4px}.unit-meta .load-heading b{font-size:16px}.unit-meta .load-meter{height:10px}.dock-changes{min-width:0;border-top:1px solid var(--lab-rule);padding-top:var(--lab-sm);overflow:auto}.dock-changes h2{font-size:11px;color:var(--lab-muted);margin-bottom:4px}.dock-changes p{font-size:11px;color:var(--lab-muted)}.dock-changes ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}.dock-changes li button{width:100%;display:grid;gap:0;text-align:left;padding:2px 5px;font-size:11px;white-space:normal}.dock-changes li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--lab-muted)}.lab-workspace .card-actions{position:absolute;top:2px;right:2px;z-index:4;width:16px;height:16px;padding:0;display:grid;place-items:center;line-height:1;font-size:13px;opacity:.25;background:var(--lab-well);color:var(--lab-muted);border-color:transparent}.lab-workspace .deck-card .card-actions{top:20px}.deck-card:hover .card-actions,.assembly-preview:hover .card-actions,.card-actions:hover,.card-actions:focus-visible{opacity:1;border-color:var(--lab-rule)}.deck-card,.assembly-preview{position:relative}.class-mark{display:inline-grid;place-items:center;width:17px;height:17px;flex:none;font-size:11px;font-style:normal;line-height:1;border-radius:3px;background:var(--lab-well);border:1px solid var(--lab-rule)}.class-mark[data-class="32"]{color:#8fd0ff}.class-mark[data-class="33"]{color:#ffd479}.class-mark[data-class="34"]{color:#a5e6a0}.class-mark[data-class="35"]{color:var(--lab-muted)}.station-heading .class-mark{margin-left:6px;vertical-align:middle}.class-mark[data-fits=true]{border-color:currentColor}.station-heading .class-mark[data-fits=false]{color:var(--lab-error);border-color:var(--lab-error)}.picker-results button[data-fits=false]{opacity:.45}.picker-results button[data-fits=false]:hover{opacity:1}.picker-filter{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--lab-muted);white-space:nowrap}.picker-filter input{width:auto;margin:0}.picker-filter b{color:var(--lab-ink);font-weight:400}.lab-workspace .spin-toggle{position:absolute;top:2px;right:22px;z-index:4;width:16px;height:16px;padding:0;display:grid;place-items:center;line-height:1;font-size:9px;opacity:.25;background:var(--lab-well);color:var(--lab-muted);border-color:transparent}.assembly-preview:hover .spin-toggle,.spin-toggle:hover,.spin-toggle:focus-visible{opacity:1;border-color:var(--lab-rule)}.lab-workspace .spin-toggle[aria-pressed=false]{opacity:1;color:var(--lab-accent);border-color:var(--lab-accent)}.context-menu{position:fixed;z-index:3000;min-width:200px;max-width:300px;padding:4px;background:var(--lab-panel);border:1px solid var(--lab-rule);border-radius:4px;box-shadow:0 12px 36px #0009;color:var(--lab-ink);font:13px/1.5 var(--lab-font)}.context-menu button{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lab-md);width:100%;padding:6px 10px;border:0;border-radius:3px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;white-space:nowrap}.context-menu button:hover:not(:disabled),.context-menu button:focus-visible{background:var(--lab-hover);outline:none}.context-menu button:disabled{opacity:.4;cursor:default}.context-menu button>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.context-menu small{flex:none;color:var(--lab-muted);font-size:11px}.context-menu hr{margin:4px 6px;border:0;border-top:1px solid var(--lab-rule)}.lab-surface{position:fixed;inset:0;z-index:1;pointer-events:none}dialog .lab-surface{position:absolute}.lab-viewer>canvas{display:none}.part-picker,.lab-feedback,.part-state-tags,.preview-loading{position:relative;z-index:2}.shelf-empty{display:flex;align-items:center;gap:var(--lab-md);padding:var(--lab-sm) 2px;font-size:12px;color:var(--lab-muted)}.shelf-empty button{padding:2px 10px;font-size:12px}@font-face{font-family:Pretendard;src:url(/site/PretendardVariable.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@scope(.nova-web)to (.lab-workspace){:scope{--color-canvas:#f4f6f9;--color-surface:#ffffff;--color-surface-soft:#f8fafc;--color-ink:#192b42;--color-secondary:#52647a;--color-muted:#627187;--color-line:#dce3ec;--color-control:#a6b3c4;--color-navy:#132238;--color-nav-text:#c5d1e2;--color-nav-active:#ffffff;--color-accent:#245cc5;--color-accent-hover:#194ba7;--color-accent-soft:#edf3ff;--color-pending:#8a5300;--color-pending-soft:#fff4de;--color-success:#176547;--color-success-soft:#e8f5ef;--color-danger:#b42332;--color-focus:#245cc5;--color-overlay:rgb(12 24 42 / 55%);--font-body:Pretendard,"Malgun Gothic",system-ui,sans-serif;--font-mono:ui-monospace,Consolas,monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-body:1rem;--text-title:clamp(1.625rem,2.8vw,2rem);--text-section:1.1875rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--radius-sm:6px;--radius-panel:10px;--radius-dialog:14px;--width-page:1160px;--width-reading:800px;--shadow-dialog:0 24px 90px rgb(13 33 63 / 22%);--ease:cubic-bezier(.2,.7,.3,1);--duration:.15s}*{box-sizing:border-box}:scope{min-width:320px}:scope{margin:0;background:var(--color-canvas);color:var(--color-ink);font:400 var(--text-body)/1.7 var(--font-body);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--color-accent)}button:disabled{cursor:not-allowed;opacity:.48}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{color:var(--color-ink);line-height:1.4;letter-spacing:-.035em;word-break:keep-all;overflow-wrap:anywhere}h1{font-size:var(--text-title);font-weight:750}h2{font-size:var(--text-section);font-weight:700}h3{font-size:1.0625rem;font-weight:650}svg.icon{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.skip-link{position:fixed;top:8px;left:8px;z-index:30;transform:translateY(-160%);padding:10px 16px;background:var(--color-surface);color:var(--color-accent);border-radius:var(--radius-sm)}.skip-link:focus{transform:none}.site-shell{min-height:100vh;display:flex;flex-direction:column}.rail{background:var(--color-navy);color:var(--color-nav-text);position:relative;z-index:10}.header-inner{max-width:1240px;min-height:78px;margin:auto;padding:0 32px;display:flex;align-items:center;gap:48px}.brand{display:flex;align-items:center;gap:12px;flex:none;color:var(--color-nav-active)}.brand:hover{color:var(--color-nav-active)}.brand-symbol{width:34px;height:34px;fill:#83b4ff}.brand-mark{display:block;font-size:20px;line-height:1.1;font-weight:850;letter-spacing:-.055em}.brand-mark em{font-style:normal;color:#91b9f7;font-weight:550;margin-left:3px}.brand-sub{display:block;margin-top:4px;font-size:11px;line-height:1.4;font-weight:400;color:var(--color-nav-text)}.rail-nav{align-self:stretch;display:flex;align-items:stretch;gap:4px;margin-left:auto}.rail-nav a{position:relative;display:flex;align-items:center;justify-content:center;padding:0 13px;min-height:44px;color:var(--color-nav-text);font-size:var(--text-sm);font-weight:550;white-space:nowrap}.rail-nav a:hover{background:#ffffff0d;color:var(--color-nav-active)}.rail-nav a[aria-current=page]{color:var(--color-nav-active);font-weight:750}.rail-nav a[aria-current=page]:after{content:"";position:absolute;bottom:0;right:13px;left:13px;height:3px;background:#83b4ff;border-radius:2px 2px 0 0}.rail :focus-visible{outline-color:#91b9f7;outline-offset:-4px}.menu-toggle{display:none;align-items:center;justify-content:center;gap:8px;min-width:70px;min-height:44px;border:1px solid #55667e;border-radius:var(--radius-sm);background:transparent;color:#fff;font-size:var(--text-sm)}.page{width:100%;flex:1;display:flex;flex-direction:column;min-width:0}main{width:min(var(--width-page),calc(100% - 64px));margin:0 auto;flex:1;padding:44px 0 72px;min-width:0}.view{min-width:0}.view-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.view-head .meta{flex:none}.eyebrow{display:block;color:var(--color-secondary);font-size:var(--text-xs);line-height:1.5;font-weight:600;margin-bottom:8px}.meta,.muted{color:var(--color-secondary)}.meta{font-size:var(--text-xs);line-height:1.6}.meta time,time.meta{font-variant-numeric:tabular-nums}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:650;line-height:1.45;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease);text-align:center}.button:hover{background:var(--color-surface-soft);border-color:var(--color-accent);color:var(--color-accent)}.button.primary{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.button.primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button.ghost{border-color:transparent;background:transparent;color:var(--color-accent)}.button.small{min-height:36px;padding:7px 12px;font-size:var(--text-xs)}.link-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 0;border:0;background:transparent;color:var(--color-accent);font-size:var(--text-sm);font-weight:600;text-align:left;line-height:1.5}.link-button:hover{text-decoration:underline;text-underline-offset:4px}.action-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.surface,.source-tile,.promise-card,.composer{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel)}.section-block{margin-top:32px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.section-head h2{font-size:var(--text-section)}.surface-head{padding:20px 24px 10px;margin:0}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:28px}.home-main,.home-aside{min-width:0}.home-aside{display:grid;gap:24px}.source-tile{overflow:hidden}.record-row{width:100%;display:flex;align-items:center;gap:20px;padding:20px 24px;text-align:left;border:0;border-top:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink)}.record-row:first-of-type{border-top:0}.record-row:hover{background:var(--color-surface-soft)}.record-date{width:52px;flex:none;font-variant-numeric:tabular-nums;text-align:left}.record-date strong{display:block;font-size:20px;font-weight:650;line-height:1.4;letter-spacing:-.03em}.record-date small{font-size:11px;color:var(--color-secondary)}.record-title{display:block;font-size:var(--text-body);line-height:1.5;font-weight:650;word-break:keep-all;overflow-wrap:anywhere}.record-content{flex:1;min-width:0}.record-content .meta{display:block;margin-top:4px}.record-row>.icon{color:var(--color-muted)}.aside-panel{padding:20px}.aside-panel h2{margin-bottom:14px}.resource-link{display:flex;align-items:center;gap:12px;min-height:64px;padding:14px 16px;border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface)}.resource-link:hover{border-color:var(--color-accent);color:var(--color-ink);background:var(--color-accent-soft)}.resource-link+.resource-link{margin-top:10px}.resource-link>.icon:first-child{color:var(--color-accent)}.resource-link>span{flex:1;min-width:0}.resource-link strong{display:block;font-size:var(--text-sm);font-weight:650;line-height:1.5}.resource-link small{display:block;margin-top:3px;color:var(--color-secondary);font-size:12px;line-height:1.5}.resource-link>.icon:last-child{width:15px;height:15px;color:var(--color-secondary)}.lab-teaser{overflow:hidden;display:block}.lab-teaser:hover{border-color:var(--color-accent);color:var(--color-ink)}.lab-teaser img{display:block;width:100%;height:auto;background:var(--color-navy)}.lab-teaser-copy{padding:18px 20px}.lab-teaser-copy .eyebrow{color:var(--color-accent)}.lab-teaser h3{font-size:var(--text-body);line-height:1.5;margin-bottom:10px}.topic-list{border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);overflow:hidden}.topic-card{display:block;padding:22px 24px;border-bottom:1px solid var(--color-line);transition:background var(--duration) var(--ease)}.topic-card:last-child{border-bottom:0}.topic-card:hover{background:var(--color-surface-soft);color:var(--color-ink)}.topic-card:hover h3{color:var(--color-accent)}.topic-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.topic-card h3{font-size:1.0625rem;line-height:1.55;font-weight:650}.topic-stats{font-size:var(--text-xs);color:var(--color-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.status-chip,.type-chip{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600;line-height:1.5;background:#edf0f5;color:var(--color-secondary)}.status-chip.active{background:var(--color-accent-soft);color:var(--color-accent)}.status-chip.pending{background:var(--color-pending-soft);color:var(--color-pending)}.status-chip.confirmed{background:var(--color-success-soft);color:var(--color-success)}.status-chip.closed{background:#edf0f5;color:var(--color-secondary)}.type-chip{background:transparent;padding:0;min-height:20px;letter-spacing:0;font-weight:600}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filter-button{min-height:40px;padding:8px 16px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-secondary);font-size:var(--text-sm);font-weight:550}.filter-button:hover{background:#e9eef7;color:var(--color-accent)}.filter-button[aria-pressed=true]{background:var(--color-accent-soft);border-color:#b6c9ed;color:var(--color-accent);font-weight:700}.search-field{display:flex;align-items:center;gap:10px;min-width:220px;margin-left:auto;border:1px solid var(--color-control);background:#fff;border-radius:var(--radius-sm);padding:0 12px;color:var(--color-secondary)}.search-field:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.search-input{width:100%;min-width:0;min-height:42px;padding:8px 0;background:transparent;border:0;outline:0;font-size:var(--text-sm);color:var(--color-ink)}.search-input:focus-visible{outline:0}.empty-state{padding:28px;color:var(--color-secondary);text-align:center}.topic-view{max-width:var(--width-reading);margin:0 auto}.back-link{display:inline-flex;align-items:center;gap:6px;min-height:36px;margin-bottom:20px;color:var(--color-secondary);font-size:var(--text-sm)}.topic-head{padding-bottom:24px}.topic-labels{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.topic-title{font-size:clamp(1.625rem,3vw,2rem);line-height:1.4}.topic-content{min-width:0}.source-details,.choice-details{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);overflow:hidden}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.source-details summary,.choice-details summary{display:flex;align-items:center;gap:12px;min-height:54px;padding:14px 20px;font-size:var(--text-sm);color:var(--color-ink)}.source-details summary:after,.choice-details summary:after{content:"";width:7px;height:7px;border-right:1.5px solid var(--color-secondary);border-bottom:1.5px solid var(--color-secondary);transform:rotate(45deg);margin:-4px 2px 0 auto;flex:none}.source-details[open] summary:after,.choice-details[open] summary:after{transform:rotate(225deg);margin-top:5px}.source-summary-label{min-width:0}.source-summary-label strong{font-weight:550}.source-inner{border-top:1px solid var(--color-line);padding:18px 20px;font-size:var(--text-sm)}.source-inner .meta{margin-bottom:12px}.source-inner>.link-button{margin-top:12px}.thread-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:28px 0 14px}.thread-head h2{font-size:var(--text-section)}.thread-head .meta{display:block;margin-top:3px}.comment-list{padding:4px 24px;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-panel)}.comment{padding:24px 0;border-bottom:1px solid var(--color-line);min-width:0}.comment:last-child{border-bottom:0}.comment-meta{display:flex;align-items:center;gap:12px;font-size:var(--text-xs);line-height:1.5;color:var(--color-secondary)}.comment-meta strong{display:block;color:var(--color-ink);font-size:var(--text-sm);font-weight:650}.comment-meta .meta-line{display:block;margin-top:3px;font-size:12px}.comment-meta a{color:var(--color-accent);text-decoration:underline}.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border-radius:10px;color:#466289;background:#ecf1f8;font-size:13px;font-weight:600}.comment p{margin:14px 0 12px 46px;font-size:var(--text-body);line-height:1.8;word-break:normal;overflow-wrap:anywhere;white-space:pre-wrap}.comment-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-left:46px}.comment-actions .link-button{font-size:var(--text-xs);font-weight:550;color:var(--color-secondary)}.reaction-button{display:inline-flex;gap:6px;align-items:center;justify-content:center;min-height:36px;padding:5px 9px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-secondary);font-size:var(--text-xs)}.reaction-button .icon{width:15px;height:15px}.reaction-button:hover{background:var(--color-surface-soft);color:var(--color-accent)}.reaction-button[aria-pressed=true]{color:var(--color-accent);background:var(--color-accent-soft);border-color:#b6c9ed}.comment.reply{margin:18px 0 0 46px;padding:18px 0 0 18px;border-left:2px solid var(--color-line);border-bottom:0}.comment.reply p,.comment.reply .comment-actions{margin-left:0}.comment.reply .avatar{width:28px;height:28px;font-size:12px;border-radius:8px}.choice-details{margin-top:24px}.choice-details summary .meta{margin-left:auto;margin-right:6px}.choice-details summary:after{margin-left:0}.choice-details summary strong{font-weight:550}.choice-inner{padding:4px 20px 16px}.choice-row{display:flex;flex-wrap:wrap;gap:8px}.choice-button{min-height:42px;padding:8px 14px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:#fff;color:var(--color-secondary);font-size:var(--text-sm)}.choice-button[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft);font-weight:650}.choice-note{margin-top:10px;font-size:var(--text-xs);color:var(--color-secondary)}.choice-note:empty{display:none}.composer{margin-top:24px;padding:24px;scroll-margin-top:24px}.composer-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:24px}.composer-head h2{font-size:var(--text-section)}.field{margin-bottom:20px}.field label{display:block;margin-bottom:8px;font-size:var(--text-sm);font-weight:600}.field input,.field select,.field textarea,.promise-tools input,.promise-tools select{display:block;width:100%;min-height:44px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:#fff;color:var(--color-ink);padding:11px 12px;font-size:var(--text-body)}.field textarea{min-height:150px;resize:vertical;line-height:1.7}input::placeholder,textarea::placeholder{color:var(--color-muted);opacity:1}.field[data-state=error] textarea{border-color:var(--color-danger)}.reply-context{display:flex;align-items:start;gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px;background:var(--color-surface-soft);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.reply-context strong{font-size:var(--text-sm)}.reply-context p{font-size:var(--text-sm);color:var(--color-secondary);margin-top:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.reply-context .link-button{flex:none;font-size:var(--text-xs)}.identity-row{padding-top:18px;border-top:1px solid var(--color-line);font-size:var(--text-sm)}.identity-row>div{display:flex;align-items:center;gap:12px}.submit-row{display:flex;justify-content:flex-end;margin-top:20px}.composer-own{margin:24px 0 0;border-top:1px solid var(--color-line);padding-top:18px}.promise-list{display:grid;gap:20px}.promise-card{padding:24px}.promise-card h2{margin:8px 0 22px;font-size:1.25rem}.promise-grid{display:grid;grid-template-columns:1fr 1fr 1.05fr;gap:24px;margin:0 0 18px}.promise-grid>div{border-top:1px solid var(--color-line);padding-top:14px;min-width:0}.promise-grid dt{color:var(--color-secondary);font-size:var(--text-xs);margin-bottom:8px}.promise-grid dd{margin:0;font-size:var(--text-sm);line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}.result-unknown{color:var(--color-pending)}.lab-layout{max-width:940px;margin:auto;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-panel);overflow:hidden}.lab-copy{padding:28px 32px}.lab-copy h2{font-size:1.5rem;margin:8px 0 16px}.lab-copy p{max-width:68ch;line-height:1.8}.lab-figure img{display:block;width:100%;height:auto;background:var(--color-navy)}.lab-figure figcaption{padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:var(--text-xs);color:var(--color-secondary)}.resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}.resource-grid .resource-link{margin:0;padding:20px;min-height:92px}.resource-grid .resource-link strong{font-size:var(--text-body)}.return-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px}.return-table-panel{padding:24px}.return-table-panel h2{margin-bottom:20px}.return-table-panel>.link-button{margin-top:16px}.return-discussion h2{margin-bottom:14px}.data-table-wrap{max-width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);text-align:left}.data-table th{font-weight:550;color:var(--color-secondary);font-size:var(--text-xs);background:var(--color-surface-soft)}.data-table th,.data-table td{padding:13px 16px;border-bottom:1px solid var(--color-line);vertical-align:top;line-height:1.65}.data-table tr:last-child td{border-bottom:0}.data-table td{font-variant-numeric:tabular-nums}.reading{max-width:var(--width-reading);padding:8px 28px;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-panel)}.reading section{padding:24px 0;border-bottom:1px solid var(--color-line)}.reading section:last-child{border-bottom:0}.reading h2{margin-bottom:12px}.reading p{color:var(--color-secondary);line-height:1.85}.reading p+p{margin-top:12px}footer{width:min(var(--width-page),calc(100% - 64px));margin:0 auto;padding:24px 0 28px;border-top:1px solid var(--color-line);display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--color-secondary);font-size:12px}footer a{min-height:32px;display:inline-flex;align-items:center}dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--color-line);border-radius:var(--radius-dialog);background:#fff;color:var(--color-ink);box-shadow:var(--shadow-dialog);overflow:auto}dialog::backdrop{background:var(--color-overlay)}.dialog-inner{padding:26px}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--color-line)}.dialog-head h2{font-size:1.3rem;margin-top:4px}.dialog-head .meta{display:block;margin-bottom:8px}.dialog-close{flex:none}.dialog-body{padding-top:20px}.dialog-body p{line-height:1.8;color:var(--color-secondary)}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:24px;flex-wrap:wrap}.system-intro{max-width:760px;margin-bottom:32px}.system-intro p{color:var(--color-secondary);margin-top:12px}.system-section{margin:32px 0}.system-section>h2{margin-bottom:16px}.system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.system-swatch{padding:16px;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-panel)}.system-swatch i{display:block;height:54px;border-radius:var(--radius-sm);background:var(--swatch);margin-bottom:12px}.system-swatch strong,.system-swatch code{display:block;font-size:var(--text-sm)}.system-swatch code{color:var(--color-secondary);margin-top:4px}.system-example{padding:24px;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-panel)}.system-example+.system-example{margin-top:16px}.system-example>h3{margin-bottom:16px}.system-example .action-row+.action-row{margin-top:16px}.system-example .composer{margin-top:0}.system-code{font:12px/1.6 var(--font-mono);color:var(--color-secondary);overflow-wrap:anywhere}.review-focus{outline:3px solid var(--color-focus);outline-offset:3px}@media(min-width:981px){.rail-nav{display:flex!important}}@media(max-width:980px){.header-inner{min-height:72px;flex-wrap:wrap;gap:0;justify-content:space-between;padding:0 24px}.brand{min-height:72px}.menu-toggle{display:inline-flex}.rail-nav{display:none;width:100%;margin:0;padding:0 0 16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.rail.nav-open .rail-nav{display:grid}.rail-nav a{padding:10px 12px;border-radius:var(--radius-sm);justify-content:flex-start}.rail-nav a[aria-current=page]{background:#ffffff17}.rail-nav a[aria-current=page]:after{display:none}main{width:calc(100% - 48px);padding-top:32px}footer{width:calc(100% - 48px)}.home-grid{grid-template-columns:minmax(0,1fr) 270px;gap:20px}.return-grid{grid-template-columns:minmax(0,1fr) 290px;gap:20px}.promise-grid{gap:20px}}@media(max-width:760px){.home-grid,.return-grid{grid-template-columns:1fr}.home-aside{grid-template-columns:1fr 1fr;gap:20px}.resource-grid{gap:12px}.promise-grid{grid-template-columns:1fr 1fr}.promise-grid>div:last-child{grid-column:1/-1}.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-copy{padding:24px}.search-field{flex:1 1 220px}}@media(max-width:520px){.header-inner{padding:0 20px}.brand-mark{font-size:19px}.brand-symbol{width:30px;height:30px}.rail-nav{grid-template-columns:repeat(2,minmax(0,1fr))}main{width:calc(100% - 32px);padding:28px 0 48px}.view-head{margin-bottom:24px;align-items:baseline;gap:12px}.home-aside{grid-template-columns:1fr}.surface-head{padding:18px 18px 8px}.record-row{padding:18px;gap:14px}.record-date{width:44px}.record-date strong{font-size:18px}.topic-card{padding:18px}.topic-card h3{font-size:1rem}.resource-grid{grid-template-columns:1fr;margin-bottom:24px}.resource-grid .resource-link{min-height:80px;padding:16px}.return-table-panel{padding:18px}.data-table td,.data-table th{padding:12px 10px}.toolbar{gap:4px}.filter-button{padding:8px 12px}.search-field{width:100%;flex-basis:100%;margin-top:10px}.back-link{margin-bottom:16px}.topic-head{padding-bottom:20px}.topic-labels{gap:10px}.source-details summary,.choice-details summary{padding:14px 16px}.source-inner{padding:16px}.source-inner .data-table th,.source-inner .data-table td{padding:10px 8px}.thread-head{margin-top:24px;gap:8px}.thread-head .button{padding:9px 12px;font-size:13px;min-height:42px}.comment-list{padding:0 16px}.comment{padding:20px 0}.comment p{margin-left:0;line-height:1.8}.comment-actions{margin-left:0}.comment.reply{margin-left:14px;padding-left:14px}.choice-inner{padding:0 16px 16px}.choice-button{padding:8px 11px}.composer{padding:18px}.composer-head{margin-bottom:20px}.composer-head>.link-button{font-size:13px;white-space:nowrap}.submit-row .button{width:100%}.reply-context{display:block;padding:12px}.reply-context .link-button{margin-top:8px}.promise-card{padding:20px}.promise-grid{grid-template-columns:1fr;gap:16px}.promise-card h2{font-size:1.125rem}.lab-copy{padding:20px}.lab-copy h2{font-size:1.25rem}.lab-figure figcaption{padding:14px 18px;flex-wrap:wrap;gap:4px}.reading{padding:0 20px}.reading section{padding:20px 0}footer{width:calc(100% - 32px);display:block;padding:20px 0;font-size:11px}footer>span{display:block}footer>span+span{margin-top:8px}.dialog-inner{padding:20px}.dialog-head{gap:12px}.dialog-head h2{font-size:1.125rem}.dialog-actions .button{flex:1}.system-example{padding:18px}.system-grid{gap:12px}}.promise-tools{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-bottom:24px}.lab-post{border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface);overflow:hidden;margin-bottom:40px}.lab-post-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.lab-post-card{display:block;border:1px solid var(--color-line);border-radius:10px;background:#fff;overflow:hidden}.lab-post-card:hover{border-color:var(--color-accent)}.lab-post-card>img{display:block;width:100%;height:auto;aspect-ratio:1024/720;object-fit:contain;background:var(--color-navy)}.lab-post-card .lab-teaser-copy{padding:24px}.lab-post-card h2{margin:8px 0 12px}.lab-post-card p{color:var(--color-secondary)}.lab-article-view{max-width:1024px;margin:auto}.lab-article-view h1{margin:8px 0 20px}@media(max-width:760px){.lab-post-list{grid-template-columns:1fr}.lab-post-card .lab-teaser-copy{padding:20px}}.lab-post .lab-copy{max-width:840px;margin:auto}.lab-post .lab-copy p+p{margin-top:16px}.lab-post .lab-figure{max-width:1024px;margin:auto}.parts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.part-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--color-line);border-radius:10px;padding:16px}.part-card img,.part-placeholder{width:72px;height:72px;object-fit:contain;flex-shrink:0}.part-card strong,.part-card small,.part-card .meta{display:block}.part-card strong{overflow-wrap:anywhere}.part-detail{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}.part-portrait{width:100%;max-height:300px;object-fit:contain;background:#fff;border-radius:10px}.part-stats{padding:24px}.part-stats dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.part-stats dt{font-size:13px;color:var(--color-secondary)}.part-stats dd{margin:0;font-weight:650}.part-stats .link-button{display:inline-flex;margin-top:16px}@media(max-width:1100px){.header-inner{gap:24px}.rail-nav{gap:0}.rail-nav a{padding-left:12px;padding-right:12px}.parts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.parts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.part-detail{grid-template-columns:1fr}.part-portrait{max-height:180px}.part-stats dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.parts-grid{grid-template-columns:1fr}.part-card{padding:12px}.part-stats{padding:18px}}.promise-tools label{display:grid;gap:6px;font-size:13px;min-width:140px}.promise-tools .promise-search{flex:1;min-width:220px}#promise-results .promise-list{gap:0;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface);overflow:hidden}.promise-entry{border-bottom:1px solid var(--color-line)}.promise-entry:last-child{border-bottom:0}.promise-entry summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;cursor:pointer}.promise-entry summary>span:first-child{display:grid;gap:4px}.promise-entry summary:after{content:"＋";flex-shrink:0}.promise-entry[open] summary:after{content:"−"}.promise-entry summary .status-chip{margin-left:auto}.promise-body{padding:0 20px 20px}.promise-body .link-button{margin-left:16px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:24px}.poll-history{margin-top:20px}.poll-history article{padding:16px 0;border-top:1px solid var(--color-line)}.choice-button:disabled{cursor:default;opacity:.65}.image-viewer{width:min(1400px,94vw);max-width:94vw;max-height:94dvh}.image-viewer .dialog-inner{padding:16px}.image-viewer .dialog-head h2{font-size:16px}.image-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.image-stage{max-height:70dvh;overflow:auto;text-align:center}.image-stage img{display:block;max-width:100%;max-height:70dvh;width:auto;height:auto;margin:auto}.image-stage.original img{max-width:none;max-height:none}@media(max-width:520px){.promise-tools{gap:12px}.promise-tools label{flex:1;min-width:120px}.promise-tools .promise-search{flex-basis:100%;min-width:0}.promise-entry summary{padding:16px;gap:8px;flex-wrap:wrap}.promise-entry summary>span:first-child{flex-basis:100%}.promise-body{padding:0 16px 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}}.nova-web{min-width:1024px;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.rail{flex:none}.rail-nav{display:flex!important}.menu-toggle{display:none!important}.rail-actions{display:flex;align-items:center;gap:12px;margin-left:28px;flex:none}.workshop-launch{display:inline-flex;align-items:center;min-height:38px;padding:7px 14px;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;font-size:var(--text-sm);font-weight:650;white-space:nowrap}.workshop-launch:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.workshop-launch[aria-current=page]{background:transparent;color:var(--color-nav-active);border-color:#55667e}.web-account{display:flex;align-items:center;gap:10px;color:var(--color-nav-text);font-size:var(--text-xs);white-space:nowrap}.web-account button{min-height:34px;padding:5px 11px;border:1px solid #55667e;border-radius:var(--radius-sm);background:transparent;color:var(--color-nav-active);font-size:var(--text-xs)}.web-account button:hover{border-color:#83b4ff;color:#83b4ff}.web-notice{flex:none;display:flex;align-items:center;gap:16px;padding:10px max(28px,calc((100vw - var(--width-page)) / 2));background:var(--color-accent-soft);color:var(--color-ink);font-size:var(--text-sm)}.web-notice[role=alert]{background:#fff1f1;color:var(--color-danger)}.web-notice a{color:var(--color-accent);font-weight:650;text-decoration:underline;text-underline-offset:3px}.web-notice button{margin-left:auto;border:0;background:transparent;color:inherit;padding:0 6px;font-size:17px}.app-view{flex:1;min-width:0;min-height:0;overflow:auto;padding:30px max(28px,calc((100vw - var(--width-page)) / 2))}.app-view>.view{max-width:var(--width-page);margin:0 auto}.app-view>.view.reading-width{max-width:var(--width-reading)}.app-view .toolbar .search-field{flex:1;max-width:420px;margin-left:0}.app-view footer{display:flex;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-line);color:var(--color-muted);font-size:12px}.app-view footer nav{display:flex;gap:var(--space-5);flex-wrap:wrap}.topic-card.publication-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer}.publication-row-link{position:absolute;inset:0;z-index:2;border-radius:inherit}.publication-row-link:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.publication-row-main{flex:1;min-width:0}.publication-row-main h3{font-size:1.0625rem;line-height:1.55;font-weight:650}.topic-card:hover .publication-row-main h3{color:var(--color-accent)}.publication-build-preview{width:116px;height:92px;flex:none;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-navy);pointer-events:none}.publication-build-preview>.lab-viewer{width:100%;min-width:0;height:100%;background:transparent}.publication-row>.status-chip{flex:none;align-self:flex-start}.publication-excerpt{margin-top:8px;font-size:var(--text-sm);line-height:1.65;color:var(--color-secondary);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.publication-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:var(--text-xs);color:var(--color-secondary)}.publication-reading .guide-body{margin:26px 0;font-size:var(--text-body);line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.publication-reading .guide-attachments{margin-top:30px}.publication-reading .guide-attachments h2{margin-bottom:14px}.publication-actions{display:flex;gap:12px;margin-top:30px;padding-top:22px;border-top:1px solid var(--color-line)}.composer-status{font-size:var(--text-xs);color:var(--color-secondary)}.composer-signin{margin:-8px 0 22px;padding:12px 16px;font-size:var(--text-sm);line-height:1.6;background:var(--color-accent-soft);color:var(--color-secondary);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.composer-signin .link-button{min-height:0;font-size:var(--text-sm)}.field.field-title input{min-height:52px;font-size:1.3125rem;font-weight:650}.field.field-version select{max-width:260px}.field.field-version .field-label{display:block;margin-bottom:8px;font-size:var(--text-sm);font-weight:600}.field.field-version output{display:block;width:min(100%,260px);min-height:44px;padding:11px 12px;border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface-soft);color:var(--color-ink)}.field.field-version small{display:block;margin-top:7px;color:var(--color-secondary);font-size:var(--text-xs)}.guide-attachments{margin-top:24px;padding:22px;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:var(--radius-panel)}.guide-attachments>header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.guide-attachments>header h2{margin-right:auto;font-size:var(--text-section)}.attachment-copy-note{margin:-4px 0 14px;font-size:var(--text-xs);line-height:1.6;color:var(--color-secondary)}.attachment-empty{margin-top:6px;font-size:var(--text-sm);color:var(--color-secondary)}.composer .submit-row{gap:10px}.attachment-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:16px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel)}.attachment-card+.attachment-card{margin-top:12px}.attachment-model{height:180px;min-width:0;background:var(--color-navy);border-radius:var(--radius-sm);overflow:hidden}.attachment-model>.lab-viewer{width:100%;min-width:0;height:100%;background:transparent}.attachment-description{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:0}.attachment-description>strong{font-size:var(--text-body);font-weight:650}.attachment-description p{font-size:var(--text-sm);line-height:1.6;color:var(--color-secondary);overflow-wrap:anywhere}.attachment-stats{display:flex;flex-wrap:wrap;gap:5px 16px;font-size:var(--text-sm);color:var(--color-secondary)}.attachment-stats b{color:var(--color-ink);font-variant-numeric:tabular-nums}.attachment-calculation{font-size:var(--text-xs);color:var(--color-secondary)}.attachment-calculation summary{display:inline-flex;gap:6px;color:var(--color-accent)}.attachment-calculation dl{display:grid;grid-template-columns:72px minmax(0,1fr);gap:4px;margin:10px 0 0}.attachment-calculation dd{margin:0;overflow-wrap:anywhere}.version-mismatch{font-size:var(--text-xs);color:var(--color-pending)}.attachment-card{--lab-ink: var(--color-ink);--lab-muted: var(--color-secondary);--lab-error: var(--color-danger);--lab-rule: var(--color-line);--lab-accent: var(--color-accent)}.attachment-description>div:last-child{display:flex;gap:8px;margin-top:2px}.attachment-description>div:last-child button{min-height:34px;padding:6px 12px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-xs)}.web-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:var(--color-overlay)}.web-panel{width:440px;max-height:80vh;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:16px;background:var(--color-surface);color:var(--color-ink);border-radius:var(--radius-dialog);box-shadow:var(--shadow-dialog)}.web-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.web-panel label{display:flex;flex-direction:column;gap:8px;font-size:var(--text-sm);font-weight:600}.web-panel input{min-height:44px;padding:11px 12px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-body)}.web-panel>button{min-height:42px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:650}.web-panel>button.primary{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.web-panel>button.primary:hover{background:var(--color-accent-hover)}.web-panel>button:not(.primary):hover{border-color:var(--color-accent);color:var(--color-accent)}.web-panel [role=alert]{color:var(--color-danger);font-size:var(--text-sm)}.auth-reason{margin:-4px 0 0;padding:12px 14px;font-size:var(--text-sm);line-height:1.6;background:var(--color-accent-soft);color:var(--color-secondary);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.web-panel .link-button{justify-content:center}.web-panel small{display:block;margin-top:3px;color:var(--color-secondary);font-size:12px}.web-panel span{display:block;margin-top:4px;color:var(--color-pending);font-size:12px}.reference-picker{width:min(620px,calc(100vw - 48px))}.reference-picker>header{align-items:flex-start}.reference-picker>header p{margin-top:4px;color:var(--color-secondary);font-size:var(--text-xs);font-weight:400}.reference-direct{border-color:var(--color-accent)!important;color:var(--color-accent)!important}.reference-version-filter{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--color-accent-soft)}.web-panel .reference-version-filter span{margin:0;color:var(--color-secondary);font-size:var(--text-xs)}.reference-version-filter button{flex:none;border:0;background:transparent;color:var(--color-accent);font-size:var(--text-xs);font-weight:650}.reference-tabs{display:flex;gap:8px;flex-wrap:wrap}.reference-tabs button{min-height:36px;padding:7px 11px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-secondary);font-size:var(--text-xs)}.reference-tabs button[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);font-weight:650}.reference-tabs button:disabled{opacity:.45}.reference-search{display:flex;gap:8px}.reference-search input{flex:1;min-width:0}.reference-search button{min-width:64px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-xs);font-weight:650}.reference-results{display:grid;gap:8px;max-height:320px;overflow:auto}.reference-item{min-height:58px;padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);text-align:left}.reference-item:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.reference-item strong{font-size:var(--text-sm)}.reference-item small{margin:0;color:var(--color-secondary)}.reference-empty{padding:18px 4px;color:var(--color-secondary);font-size:var(--text-sm)}@media(max-width:1180px){.header-inner{gap:18px;padding:0 20px}.rail-nav a{padding:0 9px}.rail-actions{gap:9px;margin-left:16px}.app-view,.web-notice{padding-inline:24px}}.web-panel .auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:var(--color-muted);font-size:var(--text-xs)}.web-panel .auth-divider:before,.web-panel .auth-divider:after{content:"";flex:1;height:1px;background:var(--color-line)}.web-panel .google-signin{display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 14px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:650;text-decoration:none}.web-panel .google-signin:before{content:"G";display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#1a73e8;color:#fff;font-size:12px;font-weight:700}.web-panel .google-signin:hover{border-color:var(--color-accent);color:var(--color-accent)}.rail-actions .kakao-chat{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 12px;border-radius:var(--radius-sm);border:1px solid #e3cf00;background:#fee500;color:#191600;font-size:var(--text-sm);font-weight:700;text-decoration:none;white-space:nowrap}.rail-actions .kakao-chat:hover{background:#ffd900;border-color:#c9b800}.rail-actions .kakao-chat .kakao-bubble{width:15px;height:13px;flex:none;background:#191600;border-radius:50%/58% 58% 42% 42%;clip-path:polygon(0 0,100% 0,100% 74%,46% 74%,22% 100%,27% 74%,0 74%)}@media(max-width:1100px){.rail-actions .kakao-chat span:last-child{display:none}.rail-actions .kakao-chat{padding:5px 9px}}.reader-site{flex:1;min-width:0;min-height:0;overflow:auto;padding:30px max(28px,calc((100vw - var(--width-page)) / 2))}.reader-site>.view{max-width:var(--width-page);margin:0 auto}.reader-site>.view:empty{display:none}.reader-site .page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);margin-bottom:28px}.reader-site .back-link{margin-bottom:var(--space-5)}.reader-site .lab-copy{max-width:var(--width-reading);margin:28px auto}.reader-site .toolbar{flex-wrap:wrap}.reader-site .source-tile,.reader-site .aside-panel{overflow:hidden}.reader-site .promise-tools input{width:100%}.reader-site .promise-entry strong{display:block}.reader-site .reading section+section{margin-top:28px}.reader-site footer{display:flex;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-line);color:var(--color-muted);font-size:12px}.reader-site footer nav{display:flex;gap:var(--space-5);flex-wrap:wrap}.reader-site .record-row{display:block;padding:0}.reader-site .record-row summary{display:flex;gap:var(--space-4);padding:18px 22px;cursor:pointer}.reader-site .record-row summary strong,.reader-site .record-row summary small{display:block}.reader-site .record-row summary time{min-width:42px;color:var(--color-muted)}.reader-site .record-row summary small{font-size:var(--text-xs);color:var(--color-muted)}.reader-site .resource-link summary{cursor:pointer}.reader-site .resource-link summary small{display:block}.reader-site .source-details{border-top:1px solid var(--color-line)}.reader-site .source-details summary{display:flex;flex-wrap:wrap;gap:4px var(--space-4);padding:var(--space-4);cursor:pointer}.reader-site .source-details summary .meta{display:block;width:100%}.reader-site .source-body{padding:var(--space-4)}.reader-site .lab-post-list{display:grid;gap:var(--space-6)}.reader-site .lab-post-card>div{padding:var(--space-5)}.reader-site .lab-post-card img{max-width:100%;height:auto}.reader-site .comment{margin:var(--space-3) 0}.reader-site .comment .comment{margin-left:var(--space-6)}.reader-site .topic-context{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-6)}.reader-site .topic-context p{width:100%;color:var(--color-secondary)}.assembly-entry .button{display:block;margin-top:var(--space-4);text-align:center}.assembly-entry-links{display:grid;gap:10px;margin-top:18px;font-size:var(--text-sm)}.assembly-entry-links a{color:var(--color-accent)}.site-image-dialog{width:min(1200px,94vw);height:auto;max-height:94vh;padding:var(--space-5);border:0;border-radius:var(--radius-dialog);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-dialog)}.site-image-dialog::backdrop{background:var(--color-overlay)}.site-image-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.site-image-dialog img{display:block;max-width:100%;max-height:78vh;margin:auto;object-fit:contain}.site-image-scroll{max-height:78vh;overflow:auto}.site-image-scroll[data-original=true] img{max-width:none;max-height:none;width:auto;height:auto;margin:0}@media(max-width:1180px){.reader-site{padding-inline:24px}}.reader-site .source-citation{display:flex;align-items:flex-start;gap:var(--space-3);margin:var(--space-3) 0 0;padding:10px 14px;font-size:var(--text-sm);background:var(--color-surface-soft, #f2f5f8);border:1px solid var(--color-line);border-radius:var(--radius-panel)}.reader-site .source-citation>span:nth-child(2){flex:1;min-width:0}.reader-site .source-citation strong{display:block;overflow-wrap:anywhere}.reader-site .source-citation .meta{display:block;font-size:var(--text-xs);color:var(--color-muted)}.reader-site .source-citation>.meta:first-child{flex:none;min-width:26px;padding-top:2px}.reader-site .source-citation .source-note{display:block;margin-top:2px;color:var(--color-secondary)}.reader-site .source-citation .button{flex:none}.community-links a{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:inherit}.community-links .community-mark{flex:none;width:10px;height:10px;border-radius:3px;background:var(--community-colour, var(--color-muted))}.community-links [data-community=chat]{--community-colour: #fee500}.community-links [data-community=cafe]{--community-colour: #03c75a}.community-links [data-community=official]{--community-colour: #1c5d99}.community-links .community-out{flex:none;color:var(--color-muted);font-size:11px}.community-links strong{font-weight:600}.reader-site footer .community-links{display:flex;flex-wrap:wrap;gap:6px var(--space-5)}@media(max-width:520px){.reader-site footer{display:block}.reader-site footer nav,.reader-site footer .community-links{margin-top:10px}}.reader-site footer .community-links a{min-height:32px}.reader-site footer .community-links strong{font-weight:inherit}.aside-panel .community-links{display:grid;gap:6px}.aside-panel .community-links a{padding:9px 12px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel)}.aside-panel .community-links a:hover{border-color:var(--color-accent)}.aside-panel .community-links .community-mark{width:20px;height:20px;border-radius:6px}.aside-panel .community-links .community-text{flex:1;min-width:0;display:grid}.aside-panel .community-links strong{font-size:var(--text-sm);font-weight:650}.aside-panel .community-links small{color:var(--color-muted);font-size:var(--text-xs)}.reader-site .promise-evidence{margin:var(--space-3) 0 0}.reader-site .promise-evidence b{margin-right:6px;color:var(--color-secondary);font-size:var(--text-xs)}.reader-site .reading .section-head{display:flex;align-items:baseline;gap:var(--space-3)}.web-lab{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--lab-bg, #101b28)}.web-lab[hidden]{display:none}.web-lab>.lab-workspace{flex:1;height:auto;min-height:0;max-height:100%;min-width:0;grid-template-rows:30px minmax(150px,252px) minmax(0,1fr) minmax(76px,auto);padding:6px 10px;gap:6px}@media(max-height:820px){.web-lab>.lab-workspace{grid-template-rows:30px minmax(150px,200px) minmax(0,1fr) minmax(72px,auto)}}.web-lab .lab-header h1{font-size:15px;letter-spacing:.08em}.web-lab .lab-header .lab-site-tools{display:flex;align-items:center;gap:8px}.web-lab .lab-header .lab-site-tools button{font-size:11px;padding:2px 8px}.web-lab .saved-deck{grid-template-rows:26px minmax(0,1fr);padding:5px;gap:4px}.web-lab>.lab-workspace{--shelf-heading: 36px}.web-lab .saved-slots{gap:5px;grid-template-columns:repeat(5,minmax(0,1fr))}.web-lab .saved-slots>button{padding:4px}.web-lab .saved-slots>button>strong{font-size:12px}.web-lab .deck-card>.deck-preview{inset:22px 4px 4px}.web-lab .unit-station{padding:5px}.web-lab .current-unit,.web-lab .assembly-preview{min-height:100px}.web-lab .capture-stats{padding:5px 8px}.web-lab .capture-stats h2{font-size:13px}.web-lab .browser-dock{padding:5px}.web-lab .browser-dock>.part-picker{grid-template-rows:24px 27px minmax(0,1fr);gap:4px 8px}.web-lab .browser-dock .hover-preview strong{font-size:11px}.recovery-panel{position:relative}.recovery-panel>summary{font-size:11px;padding:2px 8px;border:1px solid var(--lab-rule, #476179);border-radius:3px;color:inherit;white-space:nowrap}.recovery-panel>div{position:absolute;right:0;top:26px;z-index:100;width:480px;max-height:300px;overflow:auto;padding:var(--space-3);background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-line);border-radius:var(--radius-panel);box-shadow:var(--shadow-dialog)}.recovery-panel>div>div{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.recovery-panel>div button{min-height:32px;padding:4px 10px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-xs)}.recovery-panel small{width:100%;overflow-wrap:anywhere;color:var(--color-secondary)}.quick-dialog{width:min(1400px,calc(100vw - 32px));height:calc(100dvh - 32px);max-width:none;max-height:none;padding:0;overflow:hidden;border:0;border-radius:var(--radius-dialog);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-dialog)}.quick-dialog::backdrop{background:var(--color-overlay)}.quick-dialog[open]{display:flex;flex-direction:column}.quick-dialog>header,.quick-dialog>footer{flex:none;display:flex;align-items:center;gap:var(--space-3);padding:12px var(--space-4);background:var(--color-surface)}.quick-dialog>header{border-bottom:1px solid var(--color-line)}.quick-dialog>footer{border-top:1px solid var(--color-line)}.quick-dialog>header h2{margin-right:auto;font-size:var(--text-section)}.quick-dialog>header label{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--color-secondary)}.quick-dialog>header select{max-width:320px;min-height:30px;padding:3px 8px;font-size:12px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink)}.quick-dialog>header button,.quick-dialog>footer button{min-height:36px;padding:7px 12px;border:1px solid var(--color-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:650}.quick-dialog>header button:hover,.quick-dialog>footer button:hover{border-color:var(--color-accent);color:var(--color-accent)}.quick-dialog>footer span{color:var(--color-secondary);font-size:12px}.quick-dialog>footer .primary{margin-left:auto;border-color:var(--color-accent);background:var(--color-accent);color:#fff}.quick-dialog>footer .primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.quick-version-notice{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:6px var(--space-4);background:var(--color-pending-soft);color:var(--color-pending);font-size:12px}.quick-dialog>.quick-layout{background:var(--lab-bg, #101b28)}.quick-layout.lab-workspace{flex:1;display:grid;height:auto;min-height:0;overflow:hidden;grid-template-columns:300px minmax(230px,1fr) minmax(300px,1.15fr);grid-template-rows:minmax(0,1fr);gap:var(--space-3);padding:var(--space-3);font-size:12px}.quick-stations{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));min-height:0;gap:8px}.quick-stations .part-station{grid-template-columns:90px minmax(0,1fr);height:auto;min-height:0}.quick-stations .part-model,.quick-stations .lab-viewer{min-height:0}.quick-stations .part-controls{padding:6px;overflow:auto}.quick-stations .station-heading{gap:2px}.quick-stations .station-heading h2{font-size:12px}.quick-stations .part-carousel{grid-template-columns:23px minmax(0,1fr) 23px}.quick-stations .subcore-label{display:none}.quick-stations .part-choice{font-size:12px}.quick-preview{display:flex;flex-direction:column;min-height:0;overflow:auto;gap:8px}.quick-preview>label{display:flex;flex-direction:column;gap:4px}.quick-preview>label input{width:100%}.quick-preview details p{white-space:pre-line;font-size:11px}.quick-model,.quick-preview .lab-viewer{flex:1;min-height:150px}.quick-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:3px var(--space-3);margin:0}.quick-stats>div{display:flex;justify-content:space-between}.quick-stats dd{margin:0;color:var(--lab-accent, #79b9ef)}.quick-browser{position:relative;min-height:0;overflow:hidden;border:1px solid var(--lab-rule, #476179);background:var(--lab-panel, #162021)}.quick-browser-hint{position:absolute;inset:0;display:grid;place-items:center;color:var(--lab-muted, #a7bacb);pointer-events:none}.quick-browser .part-picker{position:relative;inset:auto;z-index:1;width:100%;height:100%;max-height:none;box-shadow:none}.quick-browser .part-picker .part-preview{min-height:0}.quick-browser .hover-preview{height:110px}.quick-browser .hover-projection{height:auto;max-height:180px}.quick-browser .picker-results{min-height:80px}@media(max-width:1180px){.quick-layout.lab-workspace{grid-template-columns:270px minmax(210px,1fr) 310px;gap:8px;padding:8px}.quick-stations .part-station{grid-template-columns:68px minmax(0,1fr)}.quick-dialog>header span{display:none}}
