:root{
  --ink:#20231f;--muted:#73776f;--bg:#f3efe5;--surface:#fffdf8;--surface2:#f7f3ea;--line:#d8d0c1;
  --accent:#7d2f28;--accent2:#a24d3f;--good:#2f7651;--bad:#a13b35;--warn:#b57b24;--gold:#b59350;
  --shadow:0 12px 30px rgba(44,42,35,.09);--radius:16px;--q-scale:1.2;
  --q-font:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR","Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}
body{font-family:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR","Segoe UI",sans-serif;font-size:15px}
button,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}
body.font-exam{--q-font:"Batang","바탕","Noto Serif KR","Nanum Myeongjo",serif}
body.aux-hidden .aux-action{display:none!important}
body.topbar-collapsed .topbar{height:38px;padding:3px 14px}body.topbar-collapsed .breadcrumb,body.topbar-collapsed .font-tool,body.topbar-collapsed .font-select-tool,body.topbar-collapsed #dbBadge,body.topbar-collapsed #btnMenu,body.topbar-collapsed #btnHome{display:none}
body.topbar-collapsed .topbar-tools{margin-left:auto}body.topbar-collapsed #btnTopbarCollapse{transform:rotate(180deg)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.hidden{display:none!important}
.app-shell{min-height:100vh}.main{padding:82px 18px 44px}.view{display:none}.view.active{display:block}
.page-narrow{width:min(820px,100%);margin:0 auto}.page-wide{width:min(1240px,100%);margin:0 auto}.page-player{width:min(1460px,100%);margin:0 auto}
.topbar{position:fixed;z-index:50;top:0;left:0;right:0;height:64px;background:#20241f;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 18px;box-shadow:0 2px 14px rgba(0,0,0,.16);transition:.18s}
.topbar-main,.topbar-tools{display:flex;align-items:center;gap:10px;min-width:0}.topbar-tools{margin-left:auto}.brand-button{width:38px;height:38px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);color:#fff;border-radius:10px;font-size:23px;display:grid;place-items:center}
.icon-button{width:34px;height:34px;border:1px solid rgba(120,120,110,.25);background:transparent;color:inherit;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:18px}
.topbar .icon-button{border-color:rgba(255,255,255,.25);color:#fff}.breadcrumb{display:flex;align-items:center;gap:2px;overflow:hidden;white-space:nowrap}.breadcrumb button{border:0;background:transparent;color:#e7e4db;font-weight:800;padding:6px 5px}.breadcrumb button+button:before{content:"›";margin-right:9px;color:#969a91}.breadcrumb button:last-child{color:#fff}
.font-tool{display:flex;align-items:center;gap:7px;color:#e6e4dc;font-size:12px;font-weight:700}.font-tool input{width:110px}.font-tool output{width:38px}.font-select-tool select{width:auto;min-width:70px;padding:6px 7px;border-radius:7px;background:#f7f5ed;border:0;color:#222}
.badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#f1ede3;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800;color:#555b54}.topbar .badge{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.2)}.badge.compact{padding:5px 8px}.badge.strong{background:#342f28;color:#fff;border-color:#342f28}
.drawer{position:fixed;z-index:80;top:0;left:0;bottom:0;width:min(360px,88vw);background:#fffdf8;box-shadow:12px 0 35px rgba(0,0,0,.2);transform:translateX(-105%);transition:.2s;display:flex;flex-direction:column}.drawer.open{transform:none}.drawer-backdrop{position:fixed;z-index:70;inset:0;background:rgba(18,20,17,.38);opacity:0;pointer-events:none;transition:.2s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer-head{height:62px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:18px}.drawer-body{padding:12px;overflow:auto}.drawer-link{width:100%;border:0;background:transparent;border-radius:10px;padding:12px 13px;text-align:left;display:grid;gap:3px;color:var(--ink)}.drawer-link:hover{background:#f0eadf}.drawer-link b{font-size:15px}.drawer-link small{color:var(--muted);font-size:11px}.drawer hr{border:0;border-top:1px solid var(--line);margin:10px 0}.storage-status{font-size:10px;color:var(--muted);padding:12px}
.page-title-block{padding:28px 4px 18px}.page-title-block h1,.dashboard-head h1,.training-head h1{font-size:30px;letter-spacing:-.03em;margin:0;font-weight:900}.compact-title{padding-bottom:14px}
.subject-card-list,.branch-list,.vertical-menu-list{display:grid;gap:14px}.subject-card,.branch-card,.vertical-menu-card{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:16px;box-shadow:var(--shadow);text-align:left;color:var(--ink)}
.subject-card{padding:22px 24px;display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:18px}.subject-card:hover,.branch-card:hover,.vertical-menu-card:hover{border-color:#a89a82;transform:translateY(-1px)}.subject-card .subject-glyph{width:58px;height:58px;border-radius:14px;background:#222720;color:#f3ead4;display:grid;place-items:center;font-family:serif;font-size:30px}.subject-card b{display:block;font-size:23px}.subject-card small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.subject-card .subject-stat{text-align:right;min-width:180px}.subject-card .subject-stat strong{font-size:18px}.mini-progress{height:6px;border-radius:10px;background:#e4ded2;overflow:hidden;margin-top:7px}.mini-progress i{display:block;height:100%;background:var(--accent)}
.subject-banner{display:flex;align-items:center;gap:18px;padding:32px 4px 20px}.subject-banner .subject-glyph{width:70px;height:70px;border-radius:17px;background:#222720;color:#f3ead4;display:grid;place-items:center;font-family:serif;font-size:36px}.subject-banner h1{margin:0;font-size:31px}.subject-banner p{margin:6px 0 0;color:var(--muted)}
.branch-card{padding:25px 24px;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:16px}.branch-icon,.menu-icon{font-size:29px}.branch-card b,.vertical-menu-card b{font-size:21px;display:block}.branch-card small,.vertical-menu-card small{font-size:12px;color:var(--muted);display:block;margin-top:5px}.chevron{font-size:30px;color:#938b7d}.war-branch{border-left:5px solid var(--accent)}.summary-branch{border-left:5px solid var(--gold)}
.vertical-menu-list{padding-top:5px}.vertical-menu-card{padding:18px 20px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;box-shadow:0 6px 18px rgba(44,42,35,.06)}.vertical-menu-card.emphasis{border-left:5px solid var(--accent)}
.dashboard-head,.training-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 15px}.training-head p{margin:6px 0 0;color:var(--muted)}
.metric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:15px;box-shadow:0 5px 15px rgba(40,38,30,.05)}.metric span{display:block;color:var(--muted);font-size:11px}.metric b{display:block;font-size:22px;margin:5px 0}.metric small{color:#777;font-size:10px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:14px}.compact-panel{padding-bottom:12px}.panel-head{margin-bottom:15px}.panel-head h1,.panel-head h2,.panel-head h3{margin:0}.panel-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head-row small{display:block;color:var(--muted);margin-top:4px}.unit-search{width:min(300px,42vw);border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 11px}
.unit-status{display:grid;gap:9px}.unit-status-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(240px,1fr) auto;align-items:center;gap:14px;border-top:1px solid #ece6da;padding:12px 4px}.unit-status-row:first-child{border-top:0}.unit-status-row b{font-size:14px}.unit-status-row small{color:var(--muted);font-size:11px}.bar{height:7px;background:#e6dfd2;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.attempt-list{display:grid}.attempt-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid #ece6da}.attempt-item:first-child{border-top:0}.attempt-dot{width:8px;height:8px;border-radius:50%;background:var(--good)}.attempt-dot.wrong{background:var(--bad)}.attempt-dot.unknown{background:var(--warn)}.attempt-item b{font-size:12px}.attempt-item small{font-size:10px;color:var(--muted);display:block;margin-top:2px}
.empty-workspace{border:1px dashed #cfc3af;border-radius:14px;padding:60px 20px;text-align:center;color:var(--muted);background:rgba(255,255,255,.55)}
.primary-button,.secondary-button,.ghost-button,.state-button,.text-button{border:1px solid transparent;border-radius:9px;padding:10px 14px;font-weight:800}.primary-button{background:var(--accent);border-color:var(--accent);color:#fff}.primary-button:hover{background:#6e2923}.secondary-button{background:#333831;color:#fff;border-color:#333831}.ghost-button{background:#fff;border-color:var(--line);color:#42463f}.small{padding:7px 10px;font-size:12px}.large{padding:12px 22px;font-size:15px}.text-button{padding:3px 5px;background:transparent;color:var(--accent);font-size:11px}
.import-panel{padding-top:8px}.import-step{display:grid;grid-template-columns:42px 1fr;gap:15px;padding:18px 0;border-top:1px solid var(--line)}.import-step:first-child{border-top:0}.import-step.disabled{opacity:.42;pointer-events:none}.step-no{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#2d332d;color:#fff;font-weight:900}.step-body h3{margin:3px 0 10px}.file-row{display:grid;grid-template-columns:1.4fr .6fr;gap:12px}.file-drop{border:1px dashed #b7a88f;background:var(--surface2);border-radius:11px;padding:15px;display:flex;flex-direction:column;gap:6px}.file-drop span{font-size:11px;color:var(--muted)}.preset-box{display:flex;align-items:end;gap:8px}.preset-box label{flex:1}.split-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:9px;margin-top:10px}.mapping-item{border:1px solid var(--line);border-radius:9px;padding:9px;background:var(--surface2)}.mapping-item b,.mapping-item small{display:block}.mapping-item small{font-size:9px;color:var(--muted);margin:3px 0 6px}.validation-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.validation-card{border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--surface2)}.validation-card b{font-size:19px;display:block}.validation-card span{font-size:10px;color:var(--muted)}.validation-card.bad b{color:var(--bad)}.validation-card.warn b{color:var(--warn)}.table-wrap{overflow:auto;max-height:340px;border:1px solid var(--line);border-radius:9px}.preview-table{width:100%;border-collapse:collapse;font-size:11px}.preview-table th,.preview-table td{padding:8px;border-bottom:1px solid #eee6da;text-align:left;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.preview-table th{position:sticky;top:0;background:#eee8dd}.check-line{display:flex;gap:9px;align-items:flex-start}.check-line small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.inline-status{font-size:11px;color:var(--muted);margin-top:8px}
label{font-size:12px;font-weight:800;color:#4c504b}select,input[type="text"],input[type="search"],input[type="number"],textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 10px;color:var(--ink)}
.type-map-panel{padding:17px}.unit-progress-tree{display:grid;gap:12px}.front-group{border:1px solid #d7cdbd;border-radius:13px;overflow:hidden;background:#fbf8f1}.front-group>summary{list-style:none;padding:14px 15px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;cursor:pointer;background:#eee7da}.front-group>summary::-webkit-details-marker{display:none}.front-group>summary b{font-size:16px}.front-group>summary small{display:block;color:var(--muted);margin-top:3px}.front-group-body{padding:10px}.subfront-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 4px 6px;font-size:13px}.type-progress-list{display:grid;gap:8px}.type-progress-card{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px 13px;text-align:left;color:var(--ink)}.type-progress-card:hover{border-color:#aa9b82}.type-progress-card.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(125,47,40,.08);background:#fffaf4}.type-progress-name{display:flex;align-items:center;justify-content:space-between;gap:12px}.type-progress-name b{font-size:14px}.type-progress-name>span{font-size:11px;color:var(--muted)}.type-progress-stat{font-size:11px;color:#676b64;margin:6px 0}.focus-type-fraction{font-weight:900;color:#353935}.focus-type-percent{color:var(--accent)}.type-progress-track,.type-exhaustive-track,.type-stage4-track{height:7px;border-radius:10px;background:#e7e0d4;overflow:hidden}.type-progress-track span{display:block;height:100%;background:#7d2f28}.type-exhaustive-row,.type-stage4-row{display:grid;grid-template-columns:72px 1fr auto;gap:8px;align-items:center;margin-top:7px;font-size:10px;color:var(--muted)}.type-exhaustive-track span{display:block;height:100%;background:#6f7d67}.type-stage4-track span{display:block;height:100%;background:#b59350}.front-summary-stats{min-width:210px}.front-summary-stats .mini-progress{margin-top:5px}
.training-options-panel{padding:18px}.stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.stage-card{position:relative;border:1px solid var(--line);border-radius:11px;padding:12px;background:var(--surface2);display:flex;align-items:center;gap:10px;cursor:pointer}.stage-card input{position:absolute;opacity:0}.stage-card:has(input:checked){border-color:var(--accent);background:#fff8f0;box-shadow:0 0 0 2px rgba(125,47,40,.07)}.stage-no{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#2f342f;color:#fff;font-weight:900;flex:none}.stage-card b,.stage-card small{display:block}.stage-card small{font-size:10px;color:var(--muted);margin-top:2px}.training-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.training-controls label:not(.toggle-line){display:grid;gap:5px;min-width:150px}.toggle-line{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.setup-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}#selectedScopeLabel{font-weight:800;color:#555b54}
.player{padding-top:1px}.player-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:10px}.session-progress{min-width:0}.progress-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:800;margin-bottom:5px}.progress-track{height:8px;border-radius:10px;background:#dcd5c9;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:var(--accent);transition:.18s}.player-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(360px,.75fr);gap:13px}.question-panel,.explain-panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.question-panel{min-height:calc(100vh - 135px);padding:28px 30px;display:flex;flex-direction:column}.explain-panel{overflow:hidden;align-self:start;position:sticky;top:74px}.explain-panel section{padding:18px;border-bottom:1px solid var(--line)}.explain-panel section:last-child{border-bottom:0}.question-meta{display:flex;align-items:center;gap:8px}.muted{font-size:12px;color:var(--muted)}.question-prompt{font-family:var(--q-font);font-size:calc(26px * var(--q-scale));line-height:1.62;letter-spacing:-.02em;margin:22px 0 20px;font-weight:700;word-break:keep-all}.stimulus{font-family:var(--q-font);font-size:calc(15px * var(--q-scale));line-height:1.75;white-space:pre-wrap;background:#f5f0e5;border-left:4px solid var(--gold);padding:14px 16px;margin-top:13px}.media-box img{max-width:100%;border-radius:10px;margin-top:12px}.choice-area{display:grid;gap:10px}.choice{width:100%;border:1px solid #d5ccbc;border-radius:11px;background:#fff;padding:13px 15px;display:grid;grid-template-columns:35px 1fr;align-items:flex-start;gap:11px;text-align:left;color:var(--ink);transition:.1s}.choice:hover{background:#fffaf2;border-color:#ad9d83}.choice:active{transform:scale(.997)}.choice.selected{background:#f6eee7;border-color:#b26b60}.choice.correct{background:#e9f4ed;border-color:#5c9b73}.choice.wrong{background:#f8e7e5;border-color:#c66d65}.choice-key{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#eee8dc;font-weight:900;font-size:13px}.choice.correct .choice-key{background:#5c9b73;color:white}.choice.wrong .choice-key{background:#c66d65;color:white}.choice-text{font-family:var(--q-font);font-size:calc(17px * var(--q-scale));line-height:1.6;word-break:keep-all}.short-answer{display:grid;gap:7px;font-size:13px}.short-answer input{font-family:var(--q-font);font-size:calc(18px * var(--q-scale));padding:13px}.inline-feedback{margin-top:14px;padding:13px 15px;border-radius:10px;font-size:14px;line-height:1.65}.inline-feedback.good{background:#eaf5ed;color:#285c40}.inline-feedback.bad{background:#fae9e7;color:#79332f}.answer-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:24px}.status-actions,.submit-actions{display:flex;align-items:center;gap:7px}.state-button{background:#f8f4eb;border-color:var(--line);color:#414640;display:flex;align-items:center;gap:6px}.state-button span{font-size:11px}.state-button.active.star{background:#fff0b9;border-color:#d8b23c;color:#6b5500}.state-button.active.master{background:#e7f2e9;border-color:#6c9c79;color:#2f6641}.panel-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.locked-copy,.asset-placeholder{border:1px dashed var(--line);border-radius:9px;background:var(--surface2);padding:11px;font-size:12px;color:var(--muted);line-height:1.55}.explanation-content{font-family:var(--q-font);font-size:calc(14px * var(--q-scale));line-height:1.78;white-space:pre-wrap}.note-area{font-family:var(--q-font);font-size:calc(13px * var(--q-scale));line-height:1.65;min-height:150px;resize:vertical}.save-indicator{font-size:10px;color:var(--good)}.editor-actions,.review-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}

/* 전투 종료/중간 결과 화면: 전체 창과 동일한 폭·정렬 통일 */
.review-screen .review-panel{padding:18px 20px;width:min(560px,100%);margin-left:0;margin-right:auto}
.review-head{margin-bottom:15px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.review-head h1{font-size:20px}
.review-head p{margin:6px 0 0;font-size:12px;color:var(--muted)}
.review-actions{justify-content:flex-end;padding-top:16px;border-top:1px solid var(--line);margin-top:18px}
.review-actions .primary-button,.review-actions .secondary-button{min-width:120px;text-align:center}
.review-list{display:grid;gap:8px}.review-item{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface2)}.review-item.good{border-left:4px solid var(--good)}.review-item.bad{border-left:4px solid var(--bad)}.review-item.unknown{border-left:4px solid var(--warn)}.review-item h4{margin:0 0 6px;font-size:14px}.review-item p{margin:4px 0;font-size:12px;color:#555b54}.toast{position:fixed;z-index:120;right:20px;bottom:20px;background:#272c27;color:#fff;padding:11px 14px;border-radius:9px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s}.toast.show{opacity:1;transform:none}.toast.bad{background:#843934}
.shortcut-dialog{border:0;border-radius:15px;padding:0;box-shadow:0 20px 55px rgba(0,0,0,.24);width:min(520px,92vw)}.shortcut-dialog::backdrop{background:rgba(0,0,0,.38)}.shortcut-dialog form{margin:0}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.shortcut-grid{display:grid;grid-template-columns:110px 1fr;gap:10px 13px;padding:16px}.shortcut-grid kbd{background:#2e332e;color:#fff;border-radius:7px;padding:6px 8px;text-align:center;font-weight:800}.shortcut-grid span{align-self:center;font-size:12px;color:#51564f}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}.player-grid{grid-template-columns:1fr}.explain-panel{position:static}.stage-grid{grid-template-columns:repeat(2,1fr)}.mapping-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.main{padding:65px 10px 30px}.topbar{height:56px;padding:7px 9px}.font-tool,.font-select-tool,#dbBadge{display:none}.subject-card{grid-template-columns:48px 1fr}.subject-card .subject-stat{grid-column:1/-1;text-align:left;min-width:0}.subject-card .subject-glyph{width:46px;height:46px;font-size:25px}.branch-card,.vertical-menu-card{padding:17px 15px}.metric-grid{grid-template-columns:repeat(2,1fr)}.unit-status-row{grid-template-columns:1fr}.file-row,.mapping-grid,.validation-summary{grid-template-columns:1fr}.stage-grid{grid-template-columns:1fr}.training-controls{display:grid;grid-template-columns:1fr 1fr}.training-controls label:not(.toggle-line){min-width:0}.setup-footer{align-items:stretch;flex-direction:column}.question-panel{padding:18px 16px;min-height:calc(100vh - 105px)}.question-prompt{font-size:calc(22px * var(--q-scale))}.choice-text{font-size:calc(16px * var(--q-scale))}.player-header{grid-template-columns:auto 1fr}.player-header .badge{display:none}.answer-actions{align-items:stretch;flex-direction:column}.status-actions,.submit-actions{width:100%}.submit-actions{justify-content:flex-end}.panel-head-row{align-items:stretch;flex-direction:column}.unit-search{width:100%}.front-summary-stats{min-width:120px}}

/* v0.3 usability overrides */
:root{--q-scale:1.2}
.player-grid{align-items:start}
.question-panel{align-self:start;min-height:0;padding:30px 34px}
.explain-panel{align-self:start;position:sticky;top:74px;max-height:calc(100vh - 90px);overflow-y:auto;overscroll-behavior:contain}
.answer-actions{margin-top:18px;padding-top:6px;border-top:0}
.question-prompt{font-size:calc(28px * var(--q-scale));line-height:1.58;margin:22px 0 22px;white-space:normal}
.question-prompt .prompt-body{display:block;margin-top:.22em}
.choice-area{gap:12px}
.choice{padding:16px 18px;grid-template-columns:39px 1fr;gap:13px}
.choice-key{width:32px;height:32px;font-size:14px}
.choice-text{font-size:calc(20px * var(--q-scale));line-height:1.58;letter-spacing:-.012em}
.explanation-content{font-size:calc(15.5px * var(--q-scale));line-height:1.78}
.note-area{font-size:calc(14px * var(--q-scale));line-height:1.65}
.inline-feedback{font-size:calc(14px * var(--q-scale));margin-top:16px}

/* folder-style front navigation */
.unit-progress-tree{gap:10px}
.campaign-folder,.section-folder,.battle-folder{border:1px solid #d9d0c1;border-radius:13px;background:#fffdf9;overflow:hidden}
.campaign-folder{box-shadow:0 5px 16px rgba(44,42,35,.045)}
.campaign-folder>summary,.section-folder>summary,.battle-folder>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}
.campaign-folder>summary::-webkit-details-marker,.section-folder>summary::-webkit-details-marker,.battle-folder>summary::-webkit-details-marker{display:none}
.campaign-folder>summary{padding:16px 17px;background:#eae3d7}
.campaign-folder>summary b{font-size:18px}.campaign-folder>summary small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.campaign-code{display:inline-flex;min-width:34px;height:26px;align-items:center;justify-content:center;border-radius:7px;background:#2d322d;color:#fff;margin-right:8px;font-size:12px;font-weight:900}
.campaign-body{display:grid;gap:8px;padding:10px}
.section-folder>summary{padding:13px 14px;background:#f3eee4}.section-folder>summary b{font-size:15px}.section-folder>summary small{font-size:10px;color:var(--muted)}
.section-body{display:grid;gap:7px;padding:8px}
.battle-folder>summary{padding:11px 12px;background:#fbf8f1}.battle-folder>summary b{font-size:14px}.battle-folder>summary small{font-size:10px;color:var(--muted)}
.battle-body{display:grid;gap:7px;padding:8px 9px 10px}
.battle-scope-button{width:100%;border:1px dashed #c9bdab;border-radius:9px;background:#fffaf2;padding:9px 11px;text-align:left;color:#4b4f48;font-weight:800;font-size:12px}
.battle-scope-button.active{border-style:solid;border-color:var(--accent);background:#fff4ec;color:var(--accent)}
.type-progress-card{padding:13px 14px}
.type-progress-name b{font-size:15px}.type-progress-name>span{font-size:11px}.type-progress-stat{font-size:11.5px}
.taxonomy-empty{font-size:11px;color:var(--muted);padding:8px 4px}
.unmatched-folder{margin-top:8px;border-style:dashed}

/* inline training configuration: appears directly below selected battle/type */
.training-options-dock{border:1px solid #bda98d;border-radius:12px;background:#fffaf2;padding:13px;margin:8px 0 4px;box-shadow:0 7px 20px rgba(65,52,38,.08)}
.inline-training-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.inline-training-head b{display:block;font-size:14px}.inline-training-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.compact-stage-grid{gap:7px}.compact-stage-grid .stage-card{padding:9px 10px}.compact-stage-grid .stage-no{width:28px;height:28px;font-size:12px}.compact-stage-grid .stage-card b{font-size:12px}.compact-stage-grid .stage-card small{font-size:9px}
.compact-controls{margin-top:10px;padding-top:10px;gap:8px}.compact-controls label:not(.toggle-line){min-width:120px;font-size:11px}.compact-controls select{padding:8px}
.training-options-dock .setup-footer{padding-top:10px;margin-top:9px}

/* settings + feedback capture */
.settings-dialog{border:0;border-radius:16px;padding:0;box-shadow:0 22px 60px rgba(0,0,0,.28);width:min(680px,94vw);max-height:88vh;overflow:hidden}.settings-dialog::backdrop{background:rgba(0,0,0,.38)}.settings-dialog form{margin:0}.settings-body{padding:16px;overflow-y:auto;max-height:calc(88vh - 62px)}
.settings-section{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fffdf9;margin-bottom:12px}.settings-section h3{margin:0 0 11px;font-size:15px}
.setting-check{display:flex;align-items:flex-start;gap:9px;padding:9px 4px;border-top:1px solid #eee7db}.setting-check:first-of-type{border-top:0}.setting-check input{margin-top:3px}.setting-check b{display:block;font-size:13px}.setting-check small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.feedback-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.feedback-context{padding:8px 10px;border-radius:8px;background:#f4efe6;color:#646960;font-size:10px;margin-bottom:8px}.feedback-section textarea{width:100%;resize:vertical;min-height:110px;border:1px solid var(--line);border-radius:9px;padding:11px;line-height:1.55}.feedback-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}.feedback-list{display:grid;gap:7px;margin-top:12px}.feedback-item{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}.feedback-item-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.feedback-item-head small{font-size:9px;color:var(--muted)}.feedback-item p{margin:6px 0 0;white-space:pre-wrap;font-size:12px;line-height:1.55}.feedback-delete{border:0;background:transparent;color:#9b4941;font-size:11px;padding:3px}
.quick-feedback{position:fixed;z-index:68;right:18px;bottom:18px;border:0;border-radius:999px;padding:11px 15px;background:#2d322d;color:#fff;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.18)}
body.edit-mode .quick-feedback{display:block!important}

@media(max-width:1100px){.explain-panel{position:static;max-height:none;overflow:visible}.player-grid{align-items:start}.question-panel{min-height:0}.choice-text{font-size:calc(19px * var(--q-scale))}}
@media(max-width:760px){.question-panel{padding:20px 17px}.question-prompt{font-size:calc(23px * var(--q-scale))}.choice-text{font-size:calc(18px * var(--q-scale))}.choice{padding:14px 13px}.campaign-folder>summary{padding:14px 12px}.compact-stage-grid{grid-template-columns:repeat(2,1fr)}.feedback-actions{display:grid;grid-template-columns:1fr}.feedback-actions button{width:100%}}


/* v0.4 training navigation modes + unified session banner */
.training-map-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.training-view-switch{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:#eee8dc}
.training-view-switch button{border:0;background:transparent;color:#666b63;border-radius:7px;padding:7px 11px;font-size:11px;font-weight:900}
.training-view-switch button.active{background:#2d322d;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.folder-browser{display:grid;gap:11px}
.folder-browser-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 1px 3px}
.folder-browser-nav{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.folder-back{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;font-weight:900;color:#424740}
.folder-back:disabled{opacity:.35}
.folder-crumbs{display:flex;align-items:center;gap:5px;min-width:0;color:#676b64;font-size:11px;font-weight:800;flex-wrap:wrap}
.folder-crumbs span+span:before{content:"›";margin-right:5px;color:#aaa08f}
.folder-current-scope{width:auto;flex:none}
.folder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:9px}
.folder-entry{width:100%;min-height:86px;border:1px solid #d8d0c1;border-radius:12px;background:#fffdf9;padding:13px 14px;text-align:left;color:var(--ink);display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center}
.folder-entry:hover{background:#fff8ee;border-color:#ab9a7e;transform:translateY(-1px)}
.folder-entry-icon{width:40px;height:40px;border-radius:10px;background:#e9e1d3;display:grid;place-items:center;font-size:21px}
.folder-entry-main{min-width:0}.folder-entry-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.folder-entry-title b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-entry-title small{font-size:10px;color:var(--muted);white-space:nowrap}
.folder-entry-sub{font-size:10.5px;color:#6c7068;margin-top:6px}
.folder-entry .mini-progress{margin-top:7px}
.folder-leaf-wrap{display:grid;gap:8px}
.folder-mode-hint{font-size:10px;color:var(--muted);margin-left:auto}
.player-header{background:#eee8dc;border:1px solid #d4cbbb;border-radius:12px;padding:8px 10px;margin-bottom:10px;box-shadow:0 5px 14px rgba(44,42,35,.05)}
.session-progress{display:grid;gap:6px}
.session-banner-meta{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden}
.session-banner-meta #sessionLabel{font-size:13px;font-weight:900;overflow:hidden;text-overflow:ellipsis}
.session-banner-meta #questionUnit{font-size:10.5px;color:#6f746c;overflow:hidden;text-overflow:ellipsis}
.session-side{display:flex;align-items:center;gap:9px;white-space:nowrap}
.session-side #questionCounter{font-size:12px}
.question-panel>.question-meta{display:none!important}
@media(max-width:900px){
  .training-map-toolbar{justify-content:stretch}.training-view-switch{width:100%}.training-view-switch button{flex:1}
  .unit-search{width:100%}.folder-grid{grid-template-columns:1fr}
  .player-header{grid-template-columns:auto 1fr}.session-side{grid-column:2;justify-self:end}.session-banner-meta #questionUnit{display:none}
}

/* v0.5 responsive study workspace, 3-pane player, readability and performance */
:root{
  --question-scale:1;
  --choice-scale:1;
  --example-scale:1;
  --q-font:"Noto Sans CJK KR","Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo","Segoe UI",sans-serif;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,.folder-entry,.type-progress-card,.stage-card{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.page-player{width:min(1740px,100%)}

/* Lower-level navigation is intentionally stacked for lower cognitive load and iPad stability. */
.training-map-toolbar{align-items:stretch;flex-direction:column}
.training-view-switch{align-self:flex-start}
.folder-browser-head{align-items:stretch;flex-direction:column}
.folder-browser-nav{align-items:flex-start;flex-direction:column;width:100%}
.folder-current-scope{width:100%}
.folder-grid{grid-template-columns:1fr!important}
.compact-stage-grid,.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.training-controls,.compact-controls{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important}
.training-controls label:not(.toggle-line),.compact-controls label:not(.toggle-line){min-width:0!important;width:100%}
.toggle-line{min-height:44px}
.setup-footer{align-items:stretch;flex-direction:column}
.setup-footer .primary-button{width:100%}
.front-group>summary,.campaign-folder>summary,.section-folder>summary,.battle-folder>summary{grid-template-columns:1fr!important;align-items:start!important}
.front-summary-stats{min-width:0;width:100%}
.campaign-folder,.section-folder,.battle-folder,.type-progress-card{content-visibility:auto;contain-intrinsic-size:auto 92px}

/* Player: memo | question | explanation on PC. */
.player-grid{position:relative;display:grid!important;grid-template-columns:minmax(0,1.55fr) minmax(330px,.72fr)!important;gap:12px!important;align-items:start}
.player-grid.memo-open{grid-template-columns:minmax(235px,.52fr) minmax(0,1.45fr) minmax(330px,.72fr)!important}
.question-panel{position:relative;min-width:0;padding:26px 30px!important}
.explain-panel{min-width:0;position:sticky!important;top:74px!important;max-height:calc(100vh - 90px)!important;overflow-y:auto!important;overscroll-behavior:contain}
.memo-panel{display:none;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px;position:sticky;top:74px;max-height:calc(100vh - 90px);overflow:hidden;flex-direction:column}
.player-grid.memo-open .memo-panel{display:flex}
.memo-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.memo-panel-head b{font-size:14px;font-weight:650}
.memo-close{width:28px;height:28px;color:var(--ink)}
.memo-panel .note-area{width:100%;flex:1;min-height:260px;margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;resize:none}
.memo-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px;color:var(--muted)}
.memo-panel-foot small{font-size:9px}
.memo-edge-button{position:absolute;z-index:4;left:-13px;top:68px;border:1px solid #cfc5b6;background:#fffdf8;color:#4b4f48;border-radius:10px;padding:9px 6px;display:grid;gap:2px;place-items:center;box-shadow:0 5px 16px rgba(40,35,28,.1);font-size:15px}
.memo-edge-button span{font-size:9px;writing-mode:vertical-rl;letter-spacing:.08em}
.memo-edge-button.active{background:#2d322d;color:#fff;border-color:#2d322d}

/* Question evaluation + direct-edit strip */
.question-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #ece5d9;padding:0 0 9px;margin-bottom:7px;min-width:0}
.question-ratings{display:flex;align-items:center;gap:7px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;padding:1px 0;scrollbar-width:thin}
.rating-group{display:inline-flex;align-items:center;gap:2px;border:1px solid #ded6c9;border-radius:8px;padding:2px;background:#faf7f0;white-space:nowrap;flex:none}
.rating-title{font-size:9.5px;color:#777b73;padding:0 4px}
.rating-group button{border:0;background:transparent;color:#777b73;border-radius:5px;min-width:27px;height:26px;padding:0 6px;font-size:10px;font-weight:600}
.rating-group button.active{background:#353a34;color:#fff}
.question-edit-button{flex:none;font-size:10px;padding:6px 8px;border-radius:7px;background:#f8f3e9}

/* Readability: less bold, independent sizes, Hanja-friendly spacing. */
.question-prompt{font-family:var(--q-font);font-size:calc(28px * var(--q-scale) * var(--question-scale))!important;line-height:1.62!important;font-weight:520!important;letter-spacing:-.008em!important;word-break:keep-all;overflow-wrap:anywhere;margin:18px 0 20px!important}
.question-lead{display:block;font-weight:620;margin-bottom:.22em}
.question-prompt .prompt-body{display:block;margin-top:.16em}
.choice{min-height:58px;padding:15px 17px!important;grid-template-columns:36px minmax(0,1fr)!important;transition:background .08s,border-color .08s!important}
.choice-key{font-weight:700!important}
.choice-text{font-family:var(--q-font);font-size:calc(20px * var(--q-scale) * var(--choice-scale))!important;line-height:1.62!important;font-weight:400!important;letter-spacing:0!important;min-width:0;overflow-wrap:anywhere}
.stimulus{font-family:var(--q-font);font-size:calc(16px * var(--q-scale) * var(--example-scale))!important;line-height:1.76!important;font-weight:400}
.explanation-content{font-weight:400!important;letter-spacing:0!important}
.locked-copy,.asset-placeholder{font-weight:400}
.panel-mini-head b{font-weight:650}

/* Structured ㄱ/ㄴ/ㄷ or 가/나/다 content. */
.study-list{display:grid;gap:7px;margin:.2em 0;width:100%}
.study-list-row{display:grid;grid-template-columns:1.8em minmax(0,1fr);gap:.45em;align-items:start;width:100%;margin:.08em 0}
.study-marker{display:inline-grid;place-items:center;min-width:1.55em;height:1.55em;border-radius:6px;background:#eee8dc;color:#4f534d;font-size:.82em;font-weight:650;line-height:1}
.study-list-text{min-width:0}
.study-subhead{display:block;margin:.38em 0 .18em;padding:.18em 0 .18em .55em;border-left:3px solid #c7b79d;color:#4b4d48;font-weight:620}
.study-paragraph{display:block;min-width:0}
.study-gap{display:block;height:.42em}

/* Direct question editor and Ctrl+F1 quick modification dialog. */
.question-edit-dialog{width:min(780px,94vw)}
.edit-field{display:grid;gap:6px;margin-bottom:11px}
.edit-field>span{font-size:11px;color:#646960;font-weight:600}
.edit-field textarea,.quick-modify-text{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 12px;line-height:1.55;resize:vertical;font-family:var(--q-font)}
.question-edit-choices{display:grid;gap:4px}
.edit-help{display:block;color:var(--muted);font-size:10px;margin:6px 0 10px}
.quick-modify-dialog{width:min(720px,94vw)}
.quick-modify-text{min-height:220px}
.size-setting-grid{display:grid;gap:9px;margin-top:10px;padding-top:10px;border-top:1px solid #eee7db}
.size-setting-grid label{display:grid;grid-template-columns:96px 1fr 48px;align-items:center;gap:9px;font-size:11px;color:#62675f}
.size-setting-grid input{width:100%}.size-setting-grid output{text-align:right;font-size:10px}

/* Tablet compatibility: memo becomes a slide-over, question + explanation stay usable in landscape. */
@media(max-width:1180px){
  .page-player{width:100%}
  .player-grid,.player-grid.memo-open{grid-template-columns:minmax(0,1fr) minmax(300px,.66fr)!important}
  .memo-panel,.player-grid.memo-open .memo-panel{display:flex;position:fixed;z-index:65;left:10px;top:68px;bottom:10px;width:min(320px,78vw);max-height:none;transform:translateX(calc(-100% - 24px));transition:transform .16s ease}
  .player-grid.memo-open .memo-panel{transform:none}
  .explain-panel{position:sticky!important;top:68px!important;max-height:calc(100vh - 78px)!important}
  .memo-edge-button{left:-8px}
}
@media(max-width:900px){
  .main{padding-left:10px;padding-right:10px}
  .question-panel{padding:20px 18px!important}
  .question-topline{align-items:stretch;flex-direction:column}
  .question-edit-button{align-self:flex-end}
  .question-ratings{width:100%}
  .player-header{grid-template-columns:auto minmax(0,1fr)!important}
  .session-side{grid-column:2;justify-self:end}
  .session-banner-meta #questionUnit{display:none}
  .folder-browser-head,.folder-browser-nav{width:100%}
  .training-view-switch{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .training-view-switch button{min-height:42px}
}
@media(max-width:820px){
  .player-grid,.player-grid.memo-open{grid-template-columns:1fr!important}
  .explain-panel{position:static!important;max-height:none!important;overflow:visible!important}
  .memo-edge-button{left:5px;top:54px}
  .question-topline{padding-left:42px}
  .question-prompt{font-size:calc(23px * var(--q-scale) * var(--question-scale))!important}
  .choice-text{font-size:calc(18px * var(--q-scale) * var(--choice-scale))!important}
  .stimulus{font-size:calc(15px * var(--q-scale) * var(--example-scale))!important}
  .answer-actions{flex-direction:column;align-items:stretch}
  .status-actions,.submit-actions{width:100%}.submit-actions .primary-button{width:100%}
  .folder-entry{grid-template-columns:36px minmax(0,1fr);padding:12px}.folder-entry-icon{width:34px;height:34px;font-size:18px}
  .size-setting-grid label{grid-template-columns:78px 1fr 42px}
}
@media(max-width:560px){
  .question-ratings{gap:4px}.rating-title{font-size:9px}.rating-group button{min-width:25px;padding:0 5px}
  .question-panel{padding:17px 13px!important}.question-topline{padding-left:40px}
  .memo-edge-button{left:4px}
}
/* v0.6 layout hardening: the hidden memo pane must never consume/collapse the first grid column. */
.player-grid:not(.memo-open)>.question-panel{grid-column:1}
.player-grid:not(.memo-open)>.explain-panel{grid-column:2}
.player-grid.memo-open>.memo-panel{grid-column:1}
.player-grid.memo-open>.question-panel{grid-column:2}
.player-grid.memo-open>.explain-panel{grid-column:3}
.question-panel,.explain-panel,.memo-panel{min-width:0;max-width:100%}
.question-panel{overflow:hidden}
.question-prompt,.choice-text,.stimulus,.explanation-content{max-width:100%}

/* Stages are a compact 2 x 2 command panel. */
.stage-grid,.compact-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.compact-stage-grid .stage-card,.stage-grid .stage-card{min-width:0;min-height:56px;padding:9px 10px!important;gap:9px}
.compact-stage-grid .stage-no,.stage-grid .stage-no{width:29px;height:29px;font-size:12px}
.compact-stage-grid .stage-card b,.stage-grid .stage-card b{font-size:12px;line-height:1.2}
.compact-stage-grid .stage-card small,.stage-grid .stage-card small{font-size:9px;line-height:1.25}

/* Compact non-navigation controls without turning the folder/navigation hierarchy horizontal. */
@media(min-width:761px){
  .training-controls,.compact-controls{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .stage-grid,.compact-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .compact-stage-grid .stage-card,.stage-grid .stage-card{padding:8px!important;gap:7px}
  .compact-stage-grid .stage-no,.stage-grid .stage-no{width:27px;height:27px}
}
@media(max-width:1180px){
  .player-grid:not(.memo-open)>.question-panel,.player-grid.memo-open>.question-panel{grid-column:1}
  .player-grid:not(.memo-open)>.explain-panel,.player-grid.memo-open>.explain-panel{grid-column:2}
  .player-grid.memo-open>.memo-panel{grid-column:auto}
}
@media(max-width:820px){
  .player-grid:not(.memo-open)>.question-panel,.player-grid.memo-open>.question-panel,
  .player-grid:not(.memo-open)>.explain-panel,.player-grid.memo-open>.explain-panel{grid-column:1}
}

.stage-card.selected-stage{border-color:var(--accent)!important;background:#fff8f0!important;box-shadow:0 0 0 2px rgba(125,47,40,.07)!important}

/* v0.7 compact study UI: reduce horizontal sprawl and keep the question as the visual center. */
:root{
  --workspace-max:1040px;
  --player-max:1340px;
  --question-content-max:820px;
}
.page-wide{width:min(var(--workspace-max),100%)!important}
.page-player{width:min(var(--player-max),100%)!important}
#trainingSetup{width:min(980px,100%)!important}
#trainingSetup .training-head{max-width:900px;margin-left:auto;margin-right:auto}
#trainingSetup .type-map-panel{max-width:900px;margin-left:auto;margin-right:auto;padding:15px 16px}
#trainingSetup .unit-progress-tree{max-width:820px;margin-left:auto;margin-right:auto}
.folder-browser{max-width:820px;margin:0 auto}
.folder-entry{min-height:68px;padding:10px 12px;gap:10px;border-radius:10px}
.folder-entry-icon{width:34px;height:34px;border-radius:8px;font-size:18px}
.folder-entry-title b{font-size:14px}
.folder-entry-sub{margin-top:4px;font-size:10px}
.folder-entry .mini-progress{margin-top:5px;height:5px}
.folder-browser-head{padding-bottom:2px}
.folder-crumbs{font-size:10px;line-height:1.45}
.battle-scope-button,.folder-back{min-height:36px}

/* Selected battle setup behaves like a compact command card, not a full-width form. */
.training-options-dock{width:min(720px,100%);margin:10px auto 6px!important;padding:12px 13px!important;border-radius:11px;box-shadow:none!important;background:#fffdf8}
.inline-training-head{margin-bottom:8px}
.inline-training-head b{font-size:13px}.inline-training-head small{font-size:9.5px}
.stage-grid,.compact-stage-grid{max-width:600px;margin:0 auto;gap:7px!important}
.compact-stage-grid .stage-card,.stage-grid .stage-card{min-height:52px!important;padding:8px 9px!important;border-radius:9px}
.compact-stage-grid .stage-no,.stage-grid .stage-no{width:27px!important;height:27px!important;font-size:11px!important}
.compact-stage-grid .stage-card b,.stage-grid .stage-card b{font-size:11.5px!important}
.compact-stage-grid .stage-card small,.stage-grid .stage-card small{font-size:8.8px!important}
.training-controls,.compact-controls{max-width:600px;margin-left:auto!important;margin-right:auto!important}
.compact-controls select{min-height:38px;padding:6px 8px!important}
.toggle-line{min-height:38px!important;padding:7px 9px!important;font-size:11px}
.training-options-dock .setup-footer{max-width:600px;margin-left:auto;margin-right:auto}
.training-options-dock .setup-footer .primary-button{min-width:180px;padding:10px 16px;font-size:13px}

/* Player is intentionally constrained: broad desktop monitors should not create broad reading lines. */
.player-header{max-width:1260px;margin-left:auto;margin-right:auto;padding:7px 9px;border-radius:10px;box-shadow:none}
.player-grid{max-width:1260px;margin:0 auto;grid-template-columns:minmax(0,1fr) 360px!important;gap:12px!important}
.player-grid.memo-open{grid-template-columns:250px minmax(0,1fr) 340px!important}
.question-panel{min-height:calc(100vh - 126px);padding:22px 24px!important;border-radius:14px;box-shadow:0 7px 22px rgba(44,42,35,.065)}
.explain-panel{width:100%;border-radius:14px;box-shadow:0 7px 22px rgba(44,42,35,.065)}
.memo-panel{border-radius:14px;box-shadow:0 7px 22px rgba(44,42,35,.065)}
.question-topline,#stimulusBox,#mediaBox,#questionPrompt,#choiceArea,#inlineFeedback,.answer-actions{width:min(var(--question-content-max),100%);margin-left:auto;margin-right:auto}
.question-topline{padding:0 0 8px!important;margin-bottom:5px!important}
.question-prompt{margin:15px auto 17px!important;line-height:1.56!important}
.choice-area{gap:9px}
.choice{min-height:54px;padding:12px 14px!important;border-radius:10px}
.answer-actions{padding-top:18px!important}
.inline-feedback{margin-top:12px}

/* Memo is a contextual action in the question toolbar, never a vertical edge tab. */
.memo-edge-button{display:none!important}
.question-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:none}
.question-tool-button{border:1px solid #ddd5c7;background:#faf7f0;color:#4b5049;border-radius:8px;min-height:30px;padding:5px 8px;font-size:10px;font-weight:650;white-space:nowrap}
.question-tool-button:hover{background:#f1ebdf;border-color:#c5baa8}
.question-tool-button.active{background:#313630;color:#fff;border-color:#313630}
.question-edit-button{background:#faf7f0!important}

/* The evaluation strip is secondary information; keep it quiet and compact. */
.question-ratings{gap:5px}
.rating-group{border-color:#e2dbcf;background:#fbf9f4;padding:1px;border-radius:7px}
.rating-title{font-size:9px;padding:0 3px}
.rating-group button{min-width:25px;height:24px;padding:0 5px;font-size:9.5px}

/* Explanation column is a separate scroll surface and does not dictate the question height. */
.explain-panel{max-height:calc(100vh - 86px)!important;overflow-y:auto!important;overscroll-behavior:contain}
.explain-panel section{padding:15px 16px}
.explanation-content{font-size:calc(13.5px * var(--q-scale));line-height:1.72}
.locked-copy,.asset-placeholder{padding:10px;font-size:11.5px}

/* Tablet: preserve compact widths, make notes a slide-over, and keep touch targets usable. */
@media(max-width:1180px){
  .page-wide,#trainingSetup{width:min(900px,100%)!important}
  .player-header,.player-grid{max-width:100%}
  .player-grid,.player-grid.memo-open{grid-template-columns:minmax(0,1fr) minmax(300px,36vw)!important}
  .memo-panel,.player-grid.memo-open .memo-panel{width:min(300px,78vw)}
  .question-panel{padding:19px 18px!important}
  .question-tool-button{min-height:34px;padding:6px 9px}
}
@media(max-width:900px){
  #trainingSetup .type-map-panel,#trainingSetup .unit-progress-tree,.folder-browser{max-width:100%}
  .training-options-dock{width:100%}
  .question-topline{flex-direction:column!important;align-items:stretch!important;padding-left:0!important}
  .question-toolbar-actions{justify-content:flex-end}
  .question-ratings{width:100%}
}
@media(max-width:820px){
  .player-grid,.player-grid.memo-open{grid-template-columns:1fr!important}
  .question-topline{padding-left:0!important}
  .explain-panel{max-height:none!important;overflow:visible!important}
  .question-panel{min-height:auto}
  .question-prompt{font-size:calc(22px * var(--q-scale) * var(--question-scale))!important}
  .choice-text{font-size:calc(18px * var(--q-scale) * var(--choice-scale))!important}
}
@media(max-width:560px){
  .main{padding-left:7px;padding-right:7px}
  .question-panel{padding:15px 12px!important}
  .question-topline{padding-left:0!important}
  .question-toolbar-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .question-tool-button{width:100%}
  .stage-grid,.compact-stage-grid{max-width:100%}
  .training-controls,.compact-controls,.training-options-dock .setup-footer{max-width:100%}
}
/* v0.7 compact override corrections for older responsive rules. */
@media(min-width:761px){
  .folder-current-scope{width:auto!important}
  .training-options-dock .setup-footer{flex-direction:row!important;align-items:center!important;justify-content:flex-end!important}
  .training-options-dock .setup-footer .primary-button{width:auto!important}
}
@media(max-width:760px){
  .folder-current-scope{width:100%!important}
  .training-options-dock .setup-footer{flex-direction:column!important;align-items:stretch!important}
  .training-options-dock .setup-footer .primary-button{width:100%!important}
}


/* v0.8 balanced desktop width: use the screen, but keep reading lines comfortable. */
:root{
  --workspace-max:1480px;
  --player-max:1700px;
  --question-content-max:1040px;
}
.page-wide{width:min(var(--workspace-max),calc(100vw - 36px))!important}
.page-player{width:min(var(--player-max),calc(100vw - 28px))!important}

/* Training/navigation should feel like a desktop workspace, not a phone column. */
#trainingSetup{width:min(1420px,calc(100vw - 36px))!important}
#trainingSetup .training-head{max-width:1320px!important;margin-left:auto;margin-right:auto}
#trainingSetup .type-map-panel{max-width:1320px!important;margin-left:auto;margin-right:auto;padding:17px 18px!important}
#trainingSetup .unit-progress-tree{max-width:1240px!important;margin-left:auto;margin-right:auto}
.folder-browser{max-width:1240px!important;margin-left:auto;margin-right:auto}

/* Keep the selected battle controls compact, but not phone-narrow. */
.training-options-dock{width:min(920px,100%)!important;padding:14px 16px!important}
.stage-grid,.compact-stage-grid{max-width:760px!important}
.training-controls,.compact-controls{max-width:760px!important}
.training-options-dock .setup-footer{max-width:760px!important}

/* Main study surface: comfortable desktop proportions. */
.player-header{max-width:1640px!important;width:100%;margin-left:auto;margin-right:auto}
.player-grid{max-width:1640px!important;width:100%;grid-template-columns:minmax(0,1fr) minmax(380px,430px)!important;gap:16px!important}
.player-grid.memo-open{grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(360px,410px)!important;gap:14px!important}
.question-panel{padding:24px 28px!important}
.question-topline,#stimulusBox,#mediaBox,#questionPrompt,#choiceArea,#inlineFeedback,.answer-actions{
  width:min(var(--question-content-max),100%)!important;
}
.explain-panel{min-width:0}

/* Large monitors may use more room, while line length still stays controlled. */
@media(min-width:1700px){
  :root{--question-content-max:1100px}
  .player-grid{grid-template-columns:minmax(0,1fr) 440px!important}
  .player-grid.memo-open{grid-template-columns:290px minmax(0,1fr) 420px!important}
}

/* iPad / small laptop: responsive, but do not collapse early. */
@media(max-width:1180px){
  .page-wide,#trainingSetup{width:calc(100vw - 24px)!important}
  #trainingSetup .training-head,#trainingSetup .type-map-panel,#trainingSetup .unit-progress-tree,.folder-browser{max-width:100%!important}
  .player-header,.player-grid{max-width:100%!important}
  .player-grid,.player-grid.memo-open{grid-template-columns:minmax(0,1fr) minmax(310px,38vw)!important}
  .question-panel{padding:20px 20px!important}
}


/* v0.9 proportional desktop layout: broad navigation, centered fixed study lane, reserved memo rail. */
:root{
  --workspace-max:1480px;
  --player-max:1608px;
  --question-content-max:820px;
}

/* Training navigation: the outer workspace stays broad, while the working lane is comfortably desktop-sized. */
#trainingSetup{width:min(1480px,calc(100vw - 36px))!important}
#trainingSetup .type-map-panel{max-width:1340px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
#trainingSetup .unit-progress-tree{max-width:1080px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
.folder-browser{max-width:1080px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
.folder-grid{width:100%!important}
.folder-leaf-wrap{width:100%!important;min-width:0}
.type-progress-card{width:100%!important}
.training-options-dock{width:min(900px,100%)!important;max-width:900px!important;margin:12px auto 7px!important}
.stage-grid,.compact-stage-grid{max-width:760px!important;width:100%!important}
.training-controls,.compact-controls{max-width:760px!important;width:100%!important}
.training-options-dock .setup-footer{max-width:760px!important;width:100%!important}

/* Desktop player: reserve the memo rail even while closed so the question never shifts sideways. */
.page-player{width:min(var(--player-max),calc(100vw - 24px))!important}
.player-header{max-width:1608px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
.player-grid,
.player-grid.memo-open{
  max-width:1608px!important;
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  grid-template-columns:340px minmax(700px,860px) 380px!important;
  justify-content:center!important;
  gap:14px!important;
  align-items:start!important;
}
.player-grid>.memo-panel{grid-column:1!important}
.player-grid>.question-panel{grid-column:2!important}
.player-grid>.explain-panel{grid-column:3!important}

/* Closed memo keeps its column as an empty rail; opening it does not move the question. */
@media(min-width:1181px){
  .memo-panel,
  .player-grid.memo-open .memo-panel{
    display:flex!important;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    position:sticky!important;
    top:74px!important;
    width:auto!important;
    transform:none!important;
    transition:opacity .14s ease,visibility .14s ease!important;
  }
  .player-grid.memo-open .memo-panel{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
  }
}

/* Restore the more comfortable v0.7-style question width instead of stretching the reading lane. */
.question-panel{padding:22px 24px!important;min-width:0!important}
.question-topline,#stimulusBox,#mediaBox,#questionPrompt,#choiceArea,#inlineFeedback,.answer-actions{
  width:min(820px,100%)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.question-prompt{max-width:820px!important}
.choice-area{max-width:820px!important}

/* Memo is a bottom action again, beside the learning-state controls. */
.status-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
.state-button.memo{border-color:#d8cfbf;background:#faf7f0;color:#4c514b}
.state-button.memo:hover{background:#f0eadf;border-color:#baa98f}
.state-button.memo.active{background:#313630;color:#fff;border-color:#313630}
.question-toolbar-actions{justify-content:flex-end!important}

/* Small laptop / iPad: memo becomes an overlay and the reserved desktop rail disappears. */
@media(max-width:1180px){
  #trainingSetup{width:calc(100vw - 24px)!important}
  #trainingSetup .type-map-panel,#trainingSetup .unit-progress-tree,.folder-browser{max-width:100%!important;width:100%!important}
  .training-options-dock{width:min(860px,100%)!important}
  .player-grid,.player-grid.memo-open{
    grid-template-columns:minmax(0,1fr) minmax(310px,38vw)!important;
    max-width:100%!important;
    justify-content:stretch!important;
  }
  .player-grid>.question-panel,.player-grid.memo-open>.question-panel{grid-column:1!important}
  .player-grid>.explain-panel,.player-grid.memo-open>.explain-panel{grid-column:2!important}
  .memo-panel,.player-grid.memo-open .memo-panel{
    grid-column:auto!important;
    display:flex!important;
    position:fixed!important;
    z-index:65!important;
    left:10px!important;
    top:68px!important;
    bottom:10px!important;
    width:min(320px,78vw)!important;
    max-height:none!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:translateX(calc(-100% - 24px))!important;
    transition:transform .16s ease!important;
  }
  .player-grid.memo-open .memo-panel{transform:none!important}
}
@media(max-width:820px){
  .player-grid,.player-grid.memo-open{grid-template-columns:1fr!important}
  .player-grid>.question-panel,.player-grid.memo-open>.question-panel,
  .player-grid>.explain-panel,.player-grid.memo-open>.explain-panel{grid-column:1!important}
  .question-topline,#stimulusBox,#mediaBox,#questionPrompt,#choiceArea,#inlineFeedback,.answer-actions{width:100%!important}
}

/* v0.10 study-flow optimization: persistent controls, compact metadata, collapsible explanations. */
.recent-battle-card{
  width:min(1080px,100%);margin:0 auto 12px;padding:11px 13px;border:1px solid #d8cfbf;border-radius:11px;
  background:linear-gradient(90deg,#fffdf8,#f7f2e8);display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.recent-battle-main{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:9px;row-gap:2px;align-items:baseline}
.recent-battle-kicker{grid-row:1/3;align-self:center;font-size:9px;font-weight:850;color:#7d2f28;border:1px solid #d8c5b6;background:#fff8f0;border-radius:999px;padding:4px 7px;white-space:nowrap}
.recent-battle-main b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-battle-main small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Question metadata should stay available without visually competing with the stem. */
.question-topline{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:8px!important;min-height:30px}
.rating-disclosure{position:relative;min-width:0}
.rating-disclosure>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid #e2dbcf;background:#fbf9f4;border-radius:8px;padding:5px 8px;color:#666d65;font-size:9.5px;line-height:1;user-select:none}
.rating-disclosure>summary::-webkit-details-marker{display:none}
.rating-disclosure>summary:after{content:'▾';font-size:8px;color:#8b8f89;margin-left:2px}
.rating-disclosure[open]>summary:after{content:'▴'}
.rating-summary-label{font-weight:800;color:#474d47}
#ratingSummary{white-space:nowrap;color:#777c76}
.rating-disclosure .question-ratings{position:absolute;z-index:12;top:34px;left:0;display:flex;gap:6px;padding:7px;background:#fffdf8;border:1px solid #ddd4c6;border-radius:9px;box-shadow:0 9px 26px rgba(36,35,31,.12);width:max-content;max-width:min(620px,78vw)}
.question-tool-button{min-height:28px!important;padding:4px 8px!important;font-size:9.5px!important}

/* Sticky action bar: learning-state buttons and Next never disappear below a long question. */
.answer-actions{
  position:sticky;bottom:0;z-index:10;margin-top:auto!important;padding:11px 2px 9px!important;
  border-top:1px solid rgba(214,205,190,.82);background:linear-gradient(to bottom,rgba(255,253,248,.92),#fffdf8 24%,#fffdf8);
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
}
.state-button{min-height:38px}
#btnNextQuestion,#btnSubmitAnswer{min-height:40px;min-width:104px}

/* Explanation is progressive disclosure, not a single wall of text. */
.explain-shell{padding-bottom:9px!important}
.explanation-answer{margin:0 0 9px;padding:9px 10px;border-radius:8px;background:#eef5ef;color:#315b3f;font-size:12px;line-height:1.5;font-weight:750}
.explain-disclosure{border-top:1px solid #ebe3d7}
.explain-disclosure:first-of-type{border-top:0}
.explain-disclosure>summary{list-style:none;cursor:pointer;padding:10px 1px 8px;font-size:11.5px;font-weight:800;color:#333934;display:flex;align-items:center;justify-content:space-between;gap:8px}
.explain-disclosure>summary::-webkit-details-marker{display:none}
.explain-disclosure>summary:after{content:'＋';font-size:12px;color:#8d8170;font-weight:500}
.explain-disclosure[open]>summary:after{content:'−'}
.explanation-content,.choice-explanation-content{padding:1px 1px 10px}
.choice-explanation-content{font-family:var(--q-font);font-size:calc(13px * var(--q-scale));line-height:1.72}
.choice-explanation-row{padding:7px 0;border-top:1px dashed #e9e0d3}
.choice-explanation-row:first-child{border-top:0}
.choice-explanation-key{display:inline-flex;min-width:23px;height:23px;align-items:center;justify-content:center;margin-right:6px;border-radius:50%;background:#eee8dd;font-size:10px;font-weight:850;vertical-align:top}
.asset-shell{padding-top:4px!important;padding-bottom:7px!important}
.asset-disclosure .asset-placeholder{margin-bottom:7px}

/* Comfortable desktop navigation width; content fills the lane instead of floating as a narrow island. */
#trainingSetup .unit-progress-tree,.folder-browser{max-width:1220px!important}
.training-options-dock{width:min(980px,100%)!important;max-width:980px!important}
.stage-grid,.compact-stage-grid,.training-controls,.compact-controls,.training-options-dock .setup-footer{max-width:860px!important}

/* iPad landscape: keep question + explanation, notes remain slide-over. */
@media(max-width:1180px) and (min-width:821px){
  .recent-battle-card{width:100%}
  .player-grid,.player-grid.memo-open{grid-template-columns:minmax(0,1fr) minmax(290px,36vw)!important}
  .answer-actions{bottom:0}
  .rating-disclosure .question-ratings{max-width:72vw;flex-wrap:wrap}
}

/* iPad portrait / narrow view: question first, explanation below, action bar remains reachable. */
@media(max-width:820px){
  .recent-battle-card{align-items:stretch;margin-bottom:9px}
  .recent-battle-main{grid-template-columns:1fr}.recent-battle-kicker{grid-row:auto;width:max-content}.recent-battle-card .secondary-button{align-self:center;white-space:nowrap}
  .player-header{position:sticky;top:56px;z-index:18;background:rgba(247,243,235,.96);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
  .question-panel{padding-bottom:0!important}
  .answer-actions{margin-left:-2px!important;margin-right:-2px!important;width:calc(100% + 4px)!important}
  .status-actions{gap:5px!important}.state-button{min-height:40px;padding:7px 9px}
  .explain-panel{margin-top:10px}
  .explain-panel section{padding:12px 14px}
  .question-topline{flex-direction:row!important;align-items:flex-start!important}
  .rating-disclosure .question-ratings{position:fixed;left:12px;right:12px;top:auto;width:auto;max-width:none;flex-wrap:wrap}
}

@media(max-width:560px){
  .recent-battle-card{display:grid;grid-template-columns:1fr auto}
  .recent-battle-main small{white-space:normal}
  .answer-actions{gap:7px!important}.status-actions{display:grid!important;grid-template-columns:repeat(4,1fr)!important}.state-button{justify-content:center;padding:6px!important}.state-button span:last-child{display:none}
  .submit-actions{width:auto!important}.submit-actions .primary-button{width:auto!important}
  .rating-disclosure .question-ratings{display:grid;grid-template-columns:1fr;gap:5px}
}

/* React shell helpers */
.drawer-subject-links{display:grid;gap:2px}

/* =====================================================================
   v0.12 사용자 요청: 페이지 크기 최적화 (PC / iPad Mini 5)
   ===================================================================== */

/* 1) 단계 선택바: 4칸 일렬 + 크기 축소 (설명 텍스트는 JSX에서 제거) */
@media(min-width:761px){
  #trainingSetup .stage-grid,
  #trainingSetup .compact-stage-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:4px!important;
    max-width:none!important;
    width:100%!important;
    margin:0!important;
  }
  #trainingSetup .stage-grid .stage-card{
    min-height:32px!important;
    padding:3px 4px!important;
    gap:4px!important;
    border-radius:7px!important;
    justify-content:center!important;
  }
  #trainingSetup .stage-grid .stage-no{
    width:17px!important;
    height:17px!important;
    font-size:9px!important;
  }
  #trainingSetup .stage-grid .stage-card b{
    font-size:10.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
}
#trainingSetup .stage-grid .stage-card small{display:none!important}

/* 2) 풀이방식 선택 dock: 선택한 카드 내부에서 펼쳐지는 인라인 패널 */
.training-options-dock.inline{
  position:static!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-shadow:none!important;
  border:0!important;
  border-top:1px dashed var(--line)!important;
  border-radius:0!important;
  padding:6px 6px 8px!important;
  background:transparent!important;
}
.type-progress-card-wrap{position:relative;min-width:0}
.type-progress-card-wrap .type-progress-card{width:100%}
.type-progress-card-wrap .type-progress-options{
  width:100%;
}
.type-progress-card-wrap.expanded .type-progress-card{
  border-color:var(--accent)!important;
  box-shadow:0 0 0 2px rgba(125,47,40,.08);
}

/* 3) PC 데스크톱: 메모 레일 폭 축소 → 문제 영역을 왼쪽으로 당김 */
@media(min-width:1181px){
  .player-grid,
  .player-grid.memo-open{
    grid-template-columns:minmax(240px,260px) minmax(0,1fr) minmax(330px,360px)!important;
    gap:12px!important;
  }
  .question-panel{padding:20px 22px!important}
}

.subfront{min-width:0}

/* 4) 풀이방식 선택 UI 간결화: 헤더 제거 + 세로 1열 컴팩트 */
.training-options-dock.inline .inline-training-head{
  display:none!important;
}
.training-options-dock.inline .training-controls{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:4px!important;
  max-width:none!important;
  width:100%!important;
  margin-top:5px!important;
  padding-top:5px!important;
}
.training-options-dock.inline .training-controls label:not(.toggle-line){
  min-width:0!important;
  width:100%!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:8px!important;
  font-size:11px!important;
}
.training-options-dock.inline .training-controls select{
  padding:3px 6px!important;
  min-height:28px!important;
  font-size:11px!important;
}
.training-options-dock.inline .training-controls .toggle-row{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:6px!important;
}
.training-options-dock.inline .training-controls .controls-row{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:6px!important;
}
.training-options-dock.inline .training-controls .controls-row label{
  min-width:0!important;
  width:100%!important;
  grid-template-columns:1fr!important;
  gap:3px!important;
  font-size:11px!important;
}
.training-options-dock.inline .training-controls .toggle-line{
  min-height:28px!important;
  padding:3px 8px!important;
  font-size:11px!important;
}
.training-options-dock.inline .setup-footer{
  max-width:none!important;
  width:100%!important;
  padding-top:6px!important;
  margin-top:6px!important;
}
.training-options-dock.inline .setup-footer .primary-button{
  min-width:0!important;
  width:100%!important;
  padding:7px 12px!important;
  font-size:12px!important;
}
/* =====================================================================
   v0.12 사용자 요청: 훈련 설정 화면 전체 좌우 폭 축소
   (PC 기준이라도 메뉴·선택 패널·옵션 패널이 지나치게 넓지 않게)
   + v0.12 후속 요청: 메뉴 카드와 동일하게 560px로 균일 통일
   ===================================================================== */
#trainingSetup{
  width:min(560px,calc(100vw - 28px))!important;
}
#trainingSetup .training-head{
  max-width:560px!important;
}
#trainingSetup .type-map-panel{
  max-width:560px!important;
}
#trainingSetup .unit-progress-tree,
#trainingSetup .folder-browser{
  max-width:560px!important;
}
#trainingSetup .training-options-dock{
  width:100%!important;
  max-width:560px!important;
}
#trainingSetup .folder-grid{
  grid-template-columns:1fr!important;
  max-width:560px!important;
}
#trainingSetup .recent-battle-card{
  width:560px!important;
  max-width:100%!important;
}

/* =====================================================================
   v0.12 사용자 요청: 메뉴 카드 전반 패딩·높이·간격 압축
   (메뉴 글에 비해 박스가 크지 않게 일괄 축소)
   ===================================================================== */
.subject-card{padding:13px 15px!important;gap:12px!important}
.subject-card b{font-size:19px!important}
.subject-card .subject-glyph{width:46px!important;height:46px!important;font-size:24px!important}
.subject-card .subject-stat strong{font-size:15px!important}
.branch-card{padding:13px 15px!important;gap:12px!important}
.branch-card b,.vertical-menu-card b{font-size:17px!important}
.branch-card .branch-icon,.vertical-menu-card .menu-icon{font-size:24px!important}
.vertical-menu-card{padding:11px 14px!important;gap:10px!important}
#trainingSetup .type-map-panel{padding:12px 14px!important}
.folder-entry{min-height:52px!important;padding:8px 11px!important;gap:10px!important}
.folder-entry-icon{width:32px!important;height:32px!important;font-size:17px!important}
.type-progress-card{padding:8px 10px!important}
.type-progress-name{gap:10px!important}
.type-progress-name b{font-size:13px!important}
.front-group>summary{padding:9px 11px!important}
.front-group>summary b{font-size:14px!important}
.front-group-body{padding:8px!important}
.type-progress-list,.unit-progress-tree,.subject-card-list,.branch-list,.vertical-menu-list{gap:8px!important}
/* 대시보드 & 패널 */
.panel{padding:14px!important}
.panel-head{margin-bottom:10px!important}
.metric-grid{gap:8px!important;margin-bottom:10px!important}
.metric{padding:11px!important}
.metric b{font-size:18px!important}
.unit-status-row{padding:9px 4px!important;gap:10px!important}
.attempt-item{padding:8px 4px!important}

/* =====================================================================
   v0.12 사용자 요청: 메뉴·화면 위치 시작점 + 너비 전면 통일
   (모든 화면을 좌측 정렬 + 동일 폭으로 출렁임 제거)
   ===================================================================== */
/* 1) 공통 컨테이너: 좌측 정렬 + 동일 최대 폭 */
.page-narrow,
.page-wide,
.page-player,
#trainingSetup{
  margin-left:0!important;
  margin-right:auto!important;
}
/* 2) 메뉴/선택/훈련 설정 화면: 동일 폭으로 통일 */
.page-narrow,
#trainingSetup{
  width:min(560px,calc(100vw - 28px))!important;
}
/* 3) 메뉴 리스트가 컨테이너 시작점에 정확히 붙도록 */
.subject-card-list,.branch-list,.vertical-menu-list{
  margin-left:0!important;
  max-width:560px!important;
}
/* 4) 전선별 훈련 내부 패널: 좌측 정렬 + 통일 폭 */
#trainingSetup .training-head,
#trainingSetup .type-map-panel,
#trainingSetup .unit-progress-tree,
#trainingSetup .folder-browser,
#trainingSetup .training-options-dock,
#trainingSetup .recent-battle-card{
  margin-left:0!important;
  margin-right:auto!important;
}





/* v0.13 knowledge layer / Pattern Board */
.subtle-copy{margin:.25rem 0;color:var(--muted,#747b85);font-size:.9rem}
.bundled-data-panel{margin-bottom:18px}
.bundled-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.pattern-board-panel{margin-top:18px}
.pattern-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pattern-toolbar select,.pattern-toolbar input{min-height:38px;border:1px solid var(--line,#d9dde4);border-radius:9px;background:var(--surface,#fff);padding:0 10px;color:inherit}
.pattern-toolbar input{min-width:260px}
.pattern-list{display:flex;flex-direction:column;gap:10px}
.pattern-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.8fr);gap:18px;padding:15px 16px;border:1px solid var(--line,#e0e3e8);border-radius:12px;background:var(--surface,#fff)}
.pattern-row-title{display:flex;align-items:center;gap:8px;margin-bottom:4px}.pattern-row-title b{font-size:1rem}
.pattern-priority{font-size:.7rem;font-weight:800;letter-spacing:.02em;padding:3px 6px;border-radius:6px;background:#eef0f4}.pattern-priority.main{background:#e8eefc}.pattern-priority.medium{background:#edf5ed}.pattern-priority.minor{background:#f4f1ea}.pattern-priority.exception{background:#faecec}
.pattern-row-main>small{color:var(--muted,#7b818b)}.pattern-row-main p{margin:8px 0 9px;line-height:1.5}.pattern-meta{display:flex;gap:6px;flex-wrap:wrap}.pattern-meta span{font-size:.75rem;background:var(--soft,#f5f6f8);border-radius:999px;padding:3px 7px;color:var(--muted,#626a75)}
.pattern-trap{display:grid;grid-template-columns:auto 1fr;align-content:start;gap:7px 9px;font-size:.82rem;line-height:1.45}.pattern-trap b{white-space:nowrap}.pattern-trap span{color:var(--muted,#626a75)}
@media(max-width:800px){.bundled-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-row{grid-template-columns:1fr}.pattern-toolbar input{min-width:0;width:100%}}

/* v0.14 Weakness / Queue */
.focus-mode-switch{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.focus-mode-switch button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 12px;font-weight:800;cursor:pointer}.focus-mode-switch button.active{border-color:var(--accent);color:var(--accent);background:#fff8f2}.weakness-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:12px}.queue-list,.hot-pattern-list{display:flex;flex-direction:column;gap:8px}.queue-row,.hot-pattern-row{display:grid;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:11px 12px}.queue-row{grid-template-columns:32px minmax(0,1fr) auto}.hot-pattern-row{grid-template-columns:minmax(0,1fr) auto}.queue-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft);font-size:12px;font-weight:900;color:var(--muted)}.queue-main,.hot-pattern-row>div:first-child{min-width:0}.queue-title{display:flex;gap:7px;align-items:flex-start;min-width:0}.queue-title b{font-size:13px;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.queue-main small,.hot-pattern-row small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.queue-type{flex:0 0 auto;font-size:9px;font-weight:900;border-radius:999px;padding:3px 6px;background:var(--soft);color:var(--muted)}.queue-type.statement_ox{background:#eef3ec}.queue-type.contrast_2choice{background:#f5eee7}.queue-type.question{background:#edf0f5}.risk-pill{display:inline-grid;grid-template-columns:auto auto;align-items:baseline;gap:4px;border-radius:999px;padding:5px 8px;min-width:54px;justify-content:center;background:#f1f1ed;color:#686a64}.risk-pill span{font-size:8px;text-transform:uppercase;font-weight:900;letter-spacing:.04em}.risk-pill b{font-size:13px}.risk-pill.low{background:#eef2e9;color:#5f6d58}.risk-pill.mid{background:#f5eedf;color:#84652f}.risk-pill.high{background:#f5e5e2;color:#8a4039}.risk-pill.compact{padding:3px 6px;min-width:46px;margin-left:auto}.risk-pill.compact b{font-size:11px}.queue-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--soft);color:var(--muted);font-size:11px;line-height:1.55}.weakness-badge.low{background:#eef2e9;color:#5f6d58}.weakness-badge.mid{background:#f5eedf;color:#84652f}.weakness-badge.high{background:#f5e5e2;color:#8a4039}
@media(max-width:950px){.weakness-grid{grid-template-columns:1fr}}
/* v0.15 Focus knowledge player */
.queue-row.playable{cursor:pointer;transition:border-color .14s ease,transform .14s ease,box-shadow .14s ease}.queue-row.playable:hover{border-color:#b59474;box-shadow:0 5px 16px rgba(77,57,38,.08);transform:translateY(-1px)}
.focus-session-summary{display:flex;align-items:center;gap:14px;padding:10px 13px;margin:0 0 12px;border:1px solid #d9cfbd;border-radius:11px;background:#fbf8f1;font-size:12px;color:var(--muted)}.focus-session-summary b{color:var(--ink)}
.focus-player-page{padding-bottom:34px}.focus-player-head{position:sticky;top:0;z-index:8}.focus-player-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);gap:14px;align-items:start}.focus-question-panel{min-height:520px}.focus-kicker{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--soft);font-size:10px;font-weight:900;color:var(--muted);margin-bottom:15px}.focus-question-title{font-size:20px;line-height:1.55;margin:0 0 20px}.focus-statement-text{font-size:25px;font-weight:800;line-height:1.75;padding:24px 22px;border:1px solid var(--line);border-radius:14px;background:#fffdf8;margin:18px 0 22px}.focus-answer-grid{display:grid;gap:12px}.focus-answer-grid.ox{grid-template-columns:1fr 1fr}.focus-answer-grid button{position:relative;border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px;text-align:left;color:var(--ink);cursor:pointer;min-height:98px}.focus-answer-grid button:hover:not(:disabled){border-color:#a78f75;background:#fffaf4}.focus-answer-grid button>span{position:absolute;right:12px;top:10px;font-size:10px;font-weight:900;color:var(--muted)}.focus-answer-grid.ox button{text-align:center}.focus-answer-grid.ox button b{display:block;font-size:35px}.focus-answer-grid.ox button small{color:var(--muted)}.focus-answer-grid.contrast button b{display:block;font-size:16px;line-height:1.6;padding-right:18px}.focus-answer-grid button.correct{border-color:#77906c;background:#eef5ea;box-shadow:0 0 0 2px rgba(80,120,72,.08)}.focus-unknown-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.focus-unknown-row small{color:var(--muted)}.focus-next-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.focus-explain-panel{position:sticky;top:78px}.focus-explain-panel .explanation-content{line-height:1.7}
@media(max-width:950px){.focus-player-grid{grid-template-columns:1fr}.focus-explain-panel{position:static}.focus-question-panel{min-height:0}}
/* v0.16 Random mock exam */
.mock-setup-page,.mock-result-page{padding-bottom:36px}.mock-setup-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:14px;align-items:start}.mock-config-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.mock-config-form>label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800;color:var(--muted)}.mock-config-form input,.mock-config-form select,.mock-unit-weight select{min-height:38px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 10px;color:var(--ink)}.mock-config-form .mock-toggle{align-self:end;min-height:38px;flex-direction:row;align-items:center}.mock-unit-weight{border-top:1px solid var(--line);padding-top:14px}.mock-unit-weight h3{margin:0 0 3px}.mock-unit-weight>p{margin:0 0 10px;color:var(--muted);font-size:11px}.mock-unit-weight>label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line)}.mock-unit-weight>label>span{display:flex;flex-direction:column}.mock-unit-weight small{color:var(--muted);font-size:10px;margin-top:2px}.mock-unit-weight select{min-width:100px}.mock-session-list{display:flex;flex-direction:column;gap:8px}.mock-session-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.mock-session-list article>div:first-child{display:flex;flex-direction:column;min-width:0}.mock-session-list article small,.mock-session-list code{color:var(--muted);font-size:10px;margin-top:2px;overflow:hidden;text-overflow:ellipsis}.mock-session-list article>div:last-child{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.mock-live-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(1180px,calc(100vw - 28px));margin:0 0 8px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fffaf3;font-size:11px}.mock-result-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.mock-result-hero h1{margin:5px 0}.mock-result-hero p{margin:0;color:var(--muted)}.mock-result-hero small{display:block;margin-top:6px;color:var(--muted)}.mock-result-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.mock-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mock-pattern-list,.mock-recovery-list{display:flex;flex-direction:column;gap:7px}.mock-pattern-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line)}.mock-pattern-list span{display:flex;flex-direction:column}.mock-pattern-list small{font-size:9px;color:var(--muted)}.mock-pattern-list strong{font-size:11px}.mock-recovery-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);font-size:11px}.mock-recovery-list>div>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-workspace.compact{min-height:120px}.mock-live-view .page-player{margin-top:0!important}@media(max-width:950px){.mock-setup-grid,.mock-result-grid{grid-template-columns:1fr}.mock-config-form{grid-template-columns:1fr 1fr}.mock-result-hero{align-items:flex-start;flex-direction:column}.mock-result-actions{justify-content:flex-start}.mock-session-list article{grid-template-columns:1fr}.mock-session-list article>div:last-child{justify-content:flex-start}}@media(max-width:600px){.mock-config-form{grid-template-columns:1fr}.mock-live-tools{width:calc(100vw - 20px);margin-left:0}}

/* v0.17 cross-subject Pattern Board editor */
.pattern-editor-page{max-width:1800px}.pattern-head-actions{display:flex;gap:8px;align-items:center}.pattern-notice{position:sticky;top:66px;z-index:20;margin:0 auto 10px;width:max-content;max-width:90%;padding:8px 12px;border-radius:999px;background:#30362f;color:#fff;font-size:11px;box-shadow:0 5px 18px rgba(0,0,0,.15)}
.pattern-editor-layout{display:grid;grid-template-columns:minmax(520px,1.08fr) minmax(440px,.92fr);gap:12px;align-items:start}.pattern-board-panel,.pattern-detail-panel{min-width:0}.pattern-board-panel .pattern-list.compact{max-height:calc(100vh - 285px);overflow:auto;padding-right:4px}.pattern-select-row{width:100%;text-align:left;border:0;background:transparent;color:inherit;cursor:pointer}.pattern-select-row.selected{outline:2px solid #84735d;background:#fbf6ec}.pattern-select-row.archived{opacity:.58}.user-badge{font-size:8.5px;font-weight:800;padding:2px 5px;border-radius:999px;background:#e8dfcf;color:#665944;letter-spacing:.04em}
.pattern-detail-panel{position:sticky;top:70px;max-height:calc(100vh - 84px);overflow:auto}.pattern-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:12px}.pattern-detail-head h2{font-size:19px;margin:3px 0 7px;line-height:1.35}.pattern-detail-head>div>small{color:var(--muted);font-size:9px}.pattern-detail-copy{display:grid;gap:4px}.pattern-detail-copy>b{font-size:10px;color:#666d64;margin-top:7px}.pattern-detail-copy p{margin:0 0 5px;line-height:1.58;font-size:12px;white-space:pre-wrap}.pattern-edit-form,.pattern-form-grid{display:grid;gap:9px}.pattern-edit-form label,.pattern-form-grid label{display:grid;gap:5px}.pattern-edit-form label>span,.pattern-form-grid label>span{font-size:10px;font-weight:700;color:#666d64}.pattern-edit-form input,.pattern-edit-form select,.pattern-edit-form textarea,.pattern-form-grid input,.pattern-form-grid select,.pattern-form-grid textarea,.pattern-merge-box select,.pattern-link-search input,.pattern-add-links input,.pattern-link-actions select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 9px;font:inherit;font-size:11px}.pattern-edit-form textarea,.pattern-form-grid textarea{min-height:70px;resize:vertical;line-height:1.5}.pattern-form-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pattern-form-grid{grid-template-columns:1fr 180px}.pattern-form-grid .wide{grid-column:1/-1}.pattern-create-panel{margin-bottom:12px}.pattern-merged-box,.pattern-merge-box{border:1px solid #ddd3c4;background:#fbf7ef;border-radius:10px;padding:10px;margin:10px 0;display:grid;gap:7px}.pattern-merged-box p,.pattern-merge-box small{margin:0;color:#656a62;font-size:10px;line-height:1.45}.pattern-merge-box>div{display:grid;grid-template-columns:1fr auto;gap:6px}.pattern-link-editor{border-top:1px solid var(--line);margin-top:13px;padding-top:12px}.pattern-link-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:8px}.pattern-link-tabs button{border:1px solid var(--line);background:#faf7f0;border-radius:7px;padding:7px;font-size:10px}.pattern-link-tabs button.active{background:#353a34;color:#fff;border-color:#353a34}.pattern-link-search{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;margin-bottom:8px}.pattern-link-search span{font-size:9px;color:var(--muted)}.pattern-linked-list{display:grid;gap:6px;max-height:360px;overflow:auto;padding-right:3px}.pattern-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #e5ded2;border-radius:9px;padding:8px;background:#fff}.pattern-link-row.add{background:#f8f6f1}.pattern-link-row b{font-size:9px;color:#666d64}.pattern-link-row p{font-size:10.5px;line-height:1.45;margin:3px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pattern-link-row small{font-size:8.5px;color:var(--muted)}.pattern-link-actions{display:grid;gap:4px;min-width:138px}.pattern-link-actions button,.pattern-link-actions select{font-size:9px;min-height:29px}.pattern-add-links{display:grid;gap:6px;border-top:1px dashed #ddd3c4;margin-top:10px;padding-top:10px}.pattern-add-links>b{font-size:10px}.compact-empty{padding:18px!important}.primary-button.small{padding:5px 8px!important;min-height:29px!important}
@media(max-width:1180px){.pattern-editor-layout{grid-template-columns:1fr}.pattern-detail-panel{position:static;max-height:none}.pattern-board-panel .pattern-list.compact{max-height:520px}}
@media(max-width:700px){.pattern-form-grid,.pattern-form-two{grid-template-columns:1fr}.pattern-form-grid .wide{grid-column:auto}.pattern-head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.pattern-link-row{grid-template-columns:1fr}.pattern-link-actions{min-width:0;grid-template-columns:1fr 1fr}.pattern-link-actions select{grid-column:1/-1}}
.pattern-detail-actions{display:flex;gap:6px;align-items:center;flex:none}

/* v0.18 Pattern-based Recovery Course */
.recovery-hot-row{align-items:center}.hot-pattern-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end}.secondary-button.tiny{min-height:28px;padding:4px 8px;font-size:9px}.recovery-outcome{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f7f5ef}.recovery-outcome>div{display:flex;flex-direction:column;gap:3px}.recovery-outcome b{font-size:12px}.recovery-outcome span{font-size:10px;color:var(--muted)}.recovery-outcome.resolved{background:#edf6eb;border-color:#c7d9c3}.recovery-outcome.improved{background:#fff8e7;border-color:#ead9a7}.recovery-outcome.still_weak{background:#fff0ed;border-color:#e8c7bf}.recovery-player-page{padding-bottom:34px}.recovery-choice-list{display:grid;gap:8px;margin-top:14px}.recovery-choice-list>button{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:9px;text-align:left;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px 12px;color:var(--ink);cursor:pointer}.recovery-choice-list>button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--soft);font-size:10px;font-weight:900}.recovery-choice-list>button>b{font-size:12px;line-height:1.55;font-weight:600}.recovery-choice-list>button:hover:not(:disabled){border-color:#a78f75;background:#fffaf4}.recovery-choice-list>button.selected{outline:2px solid rgba(132,115,93,.25);border-color:#9b876c}.recovery-choice-list>button.correct{background:#edf5ea;border-color:#78936e}.recovery-choice-list>button.wrong{background:#fff0ed;border-color:#c88779}.recovery-choice-list .recovery-submit{grid-template-columns:1fr;text-align:center;justify-items:center}.recovery-short-answer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:16px}.recovery-short-answer input{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;font:inherit;color:inherit}.recovery-player-page .session-banner-meta{display:flex;gap:7px;align-items:center;min-width:0}.recovery-player-page .session-banner-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.hot-pattern-actions{align-items:flex-end;flex-direction:column}.recovery-outcome{align-items:flex-start;flex-direction:column}.recovery-short-answer{grid-template-columns:1fr}}

/* v0.19 Final Mode */
.final-mode-page{padding-bottom:38px}.muted-copy{margin:4px 0 0;color:var(--muted);font-size:11px}.final-profile-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}.final-profile-card{display:flex;flex-direction:column;gap:3px;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:10px 12px;color:inherit;cursor:pointer}.final-profile-card b{font-size:12px}.final-profile-card small{color:var(--muted);font-size:9px}.final-profile-card.active{border-color:#9b6f54;background:#fff7ef;box-shadow:0 0 0 2px rgba(155,111,84,.08)}.final-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.final-signal-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.final-signal-grid button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;color:inherit;cursor:pointer}.final-signal-grid button b{font-size:16px}.final-signal-grid button span{font-size:8.5px;color:var(--muted);text-align:center}.final-signal-grid button.active{border-color:#8a5f47;background:#fff6ed}.final-pool-list{display:flex;flex-direction:column;gap:7px}.final-pool-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 11px}.final-rank{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#f1ede6;color:#756858;font-size:10px;font-weight:900}.final-pool-copy{min-width:0}.final-pool-copy>b{display:block;font-size:12px;line-height:1.45;margin:4px 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.final-pool-copy>small{display:block;color:var(--muted);font-size:9px;line-height:1.45}.final-pool-tags{display:flex;gap:4px;flex-wrap:wrap}.mini-tag{font-size:8px;font-weight:800;padding:2px 5px;border-radius:999px;background:#f7eee4;color:#7a5a45}.final-outcome{margin-bottom:12px}.final-outcome h2{margin:7px 0 4px;font-size:18px}.final-outcome p{margin:0;color:var(--muted);font-size:10px}.final-outcome.resolved{background:#edf6eb;border-color:#c7d9c3}.final-outcome.improved{background:#fff8e7;border-color:#ead9a7}.final-outcome.weak{background:#fff0ed;border-color:#e8c7bf}.final-mode-player .focus-kicker{background:#fff1e7;color:#825638}.final-mode-player .progress-track i{background:#9d6345}
@media(max-width:1050px){.final-signal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.final-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.final-profile-row{grid-template-columns:1fr}.final-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.final-metrics{grid-template-columns:1fr}.final-pool-row{grid-template-columns:30px minmax(0,1fr)}.final-pool-row>.risk-pill{grid-column:2;justify-self:start}}

/* v0.20 representative question system */
.representative-page{padding-bottom:38px}.representative-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.representative-layout{display:grid;grid-template-columns:minmax(430px,.9fr) minmax(520px,1.1fr);gap:12px;align-items:start}.representative-list-panel{min-width:0}.representative-detail-panel{position:sticky;top:70px;max-height:calc(100vh - 84px);overflow:auto;min-width:0}.representative-toolbar{display:flex;gap:7px;flex-wrap:wrap}.representative-toolbar select,.representative-toolbar input{min-height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 9px;font:inherit;font-size:10px}.representative-toolbar input{min-width:190px}.representative-pattern-list{display:grid;gap:6px;max-height:calc(100vh - 300px);overflow:auto;padding-right:3px}.representative-pattern-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 10px;color:inherit;cursor:pointer}.representative-pattern-row.selected{border-color:#8d7359;background:#fff8ef;box-shadow:0 0 0 2px rgba(141,115,89,.08)}.representative-pattern-row>span{font-size:11px;font-weight:900;text-align:center;color:#7a6856}.representative-pattern-title{display:flex;gap:6px;align-items:center;min-width:0}.representative-pattern-title>b{font-size:10.5px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.representative-pattern-row small{display:block;color:var(--muted);font-size:8.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rep-status{font-size:8px;font-weight:900;padding:2px 5px;border-radius:999px;background:#f0eee9;color:#777066;white-space:nowrap}.rep-status.confirmed{background:#e7f2e4;color:#4e7048}.rep-status.big{font-size:9px;padding:5px 8px}.representative-detail-head{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.representative-detail-head small{color:var(--muted);font-size:8.5px}.representative-detail-head h2{font-size:17px;margin:3px 0 5px}.representative-detail-head p{font-size:10px;color:var(--muted);line-height:1.45;margin:0}.representative-current,.representative-candidates{display:grid;gap:7px}.representative-current-card{border:1px solid #cfdcc9;background:#f3f8f1;border-radius:10px;padding:10px}.representative-current-card>b{font-size:9px;color:#55704f}.representative-current-card p{font-size:11px;line-height:1.5;margin:4px 0}.representative-current-card small{font-size:8.5px;color:var(--muted)}.representative-empty{padding:11px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:9.5px}.representative-supports{display:grid;gap:5px;margin-top:5px}.representative-supports>b{font-size:9px;color:var(--muted)}.representative-supports>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:9px}.representative-supports button{font-size:8px}.representative-seed{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;border:1px solid #eadfcf;background:#fbf7ef;border-radius:9px;padding:8px 9px;margin:10px 0}.representative-seed b{font-size:9px}.representative-seed span{font-size:9px;font-weight:800}.representative-seed small{grid-column:1/-1;font-size:8.5px;color:var(--muted);line-height:1.4}.representative-candidate{display:grid;grid-template-columns:52px minmax(0,1fr) 92px;gap:9px;align-items:start;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px}.representative-candidate.confirmed{border-color:#9ab691;background:#f4f9f2}.rep-score{display:grid;place-items:center;border-radius:9px;background:#f2eee8;min-height:48px}.rep-score b{font-size:16px}.rep-score span{font-size:7.5px;color:var(--muted);text-transform:uppercase}.rep-copy{min-width:0}.rep-candidate-head{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.rep-candidate-head>b{font-size:9px}.rep-copy p{font-size:10.5px;line-height:1.48;margin:4px 0}.rep-copy>small{font-size:8.5px;color:var(--muted)}.rep-reasons{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.rep-reasons span{font-size:7.5px;padding:2px 5px;border-radius:999px;background:#f5f3ef;color:#6f6a62}.rep-actions{display:grid;gap:4px}.rep-actions button{font-size:8.5px;min-height:28px}.representative-final-recovery{margin-bottom:12px}.representative-final-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.representative-final-actions button{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left}.representative-final-actions button b{font-size:9.5px}.representative-final-actions button span{font-size:8.5px}.representative-recovery-outcome{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.representative-recovery-outcome b{font-size:10px}.representative-recovery-outcome span{font-size:9px;color:var(--muted)}
@media(max-width:1180px){.representative-layout{grid-template-columns:1fr}.representative-detail-panel{position:static;max-height:none}.representative-pattern-list{max-height:480px}.representative-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.representative-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.representative-candidate{grid-template-columns:44px minmax(0,1fr)}.rep-actions{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr))}.representative-final-actions{grid-template-columns:1fr}.representative-toolbar{width:100%}.representative-toolbar input{min-width:0;flex:1}.representative-detail-head{flex-direction:column}}
.rep-candidate-tools{display:flex;align-items:center;gap:6px}.rep-candidate-tools small{color:var(--muted);font-size:8.5px}

/* v0.21 War Dashboard command center */
.dashboard-v021{padding-bottom:38px}.dashboard-command{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(360px,1.45fr) minmax(220px,.65fr);gap:16px;align-items:stretch;margin-bottom:12px;background:linear-gradient(135deg,#fbf7ef,#fff)}.command-readiness,.command-next,.command-side{min-width:0}.command-readiness{padding-right:14px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.command-readiness>span,.command-next>span{font-size:9px;font-weight:900;color:var(--muted);letter-spacing:.04em}.command-readiness>b{font-size:21px;margin:4px 0 2px}.command-readiness>small{font-size:9px;color:var(--muted)}.command-progress{height:7px;border-radius:999px;background:#e8e2d8;overflow:hidden;margin-top:10px}.command-progress i{display:block;height:100%;background:#8f765c;border-radius:inherit}.command-next{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.command-next h2{font-size:20px;margin:4px 0 5px}.command-next p{margin:0 0 10px;font-size:10.5px;line-height:1.55;color:var(--muted)}.command-side{display:grid;grid-template-columns:1fr;gap:7px}.command-side>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.72);padding:8px 10px}.command-side small{font-size:8.5px;color:var(--muted)}.command-side b{font-size:15px}.dashboard-metrics{grid-template-columns:repeat(8,minmax(0,1fr));margin-bottom:12px}.dashboard-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dashboard-action{display:grid;grid-template-columns:28px minmax(0,1fr) 18px;gap:8px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px;color:inherit;cursor:pointer}.dashboard-action:hover{border-color:#a98d70;background:#fffaf3}.dashboard-action>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--soft);font-size:10px;font-weight:900}.dashboard-action>div{min-width:0}.dashboard-action b{display:block;font-size:11px;margin-bottom:3px}.dashboard-action small{display:block;color:var(--muted);font-size:8.5px;line-height:1.45}.dashboard-action>strong{font-size:18px;color:var(--muted)}.dashboard-action.primary{background:#fff8ef;border-color:#dac6ae}.dashboard-action.danger{background:#fff4f1;border-color:#e3c7c0}.dashboard-two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:12px;margin-top:12px}.dashboard-pattern-list,.dashboard-mock-list{display:flex;flex-direction:column;gap:6px}.dashboard-pattern-list>div,.dashboard-mock-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 0;border-bottom:1px dashed var(--line)}.dashboard-pattern-list>div>span:first-child,.dashboard-mock-list>div>span:first-child{display:flex;flex-direction:column;min-width:0}.dashboard-pattern-list b,.dashboard-mock-list b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-pattern-list small,.dashboard-mock-list small{font-size:8.5px;color:var(--muted);margin-top:2px}.dashboard-mock-list>div>span:last-child{font-size:8.5px;color:var(--muted);white-space:nowrap}.dashboard-readiness-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.dashboard-readiness-row>div{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px}.dashboard-readiness-row span{font-size:8.5px;color:var(--muted)}.dashboard-readiness-row b{font-size:16px}.dashboard-v021 .unit-status-row{grid-template-columns:minmax(180px,.8fr) minmax(180px,1fr) auto}.dashboard-v021 .metric b{font-size:19px}
@media(max-width:1200px){.dashboard-command{grid-template-columns:.8fr 1.2fr}.command-side{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.command-readiness{border-right:1px solid var(--line)}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-two-col{grid-template-columns:1fr}.dashboard-action-grid{grid-template-columns:1fr}}
@media(max-width:700px){.dashboard-command{grid-template-columns:1fr}.command-readiness{border-right:0;border-bottom:1px solid var(--line);padding-right:0;padding-bottom:12px}.command-side{grid-template-columns:1fr}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-readiness-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-v021 .unit-status-row{grid-template-columns:1fr}.dashboard-v021 .unit-status-row>.badge{justify-self:start}.dashboard-head{align-items:flex-start;gap:10px}}

/* v0.22 · Summary Resource system */
.summary-manager-page{max-width:1760px}.summary-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.summary-title-row>div{min-width:0}.summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.summary-manager-layout{display:grid;grid-template-columns:minmax(390px,.72fr) minmax(560px,1.28fr);gap:12px;align-items:start}.summary-resource-list-panel,.summary-detail-panel{min-width:0}.summary-resource-list{display:grid;gap:6px;max-height:calc(100vh - 320px);overflow:auto;padding-right:3px}.summary-resource-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fffdf9;color:var(--ink);padding:11px 12px;cursor:pointer}.summary-resource-row:hover,.summary-resource-row.selected{border-color:#aa9478;background:#fbf5e9}.summary-resource-row b{display:block;font-size:13px}.summary-resource-row small,.summary-resource-row>span{font-size:9.5px;color:var(--muted)}.summary-toolbar{display:flex;gap:7px}.summary-toolbar input{min-width:190px}.summary-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.summary-detail-head h2{margin:3px 0 7px}.summary-edit-form{display:grid;gap:11px}.summary-edit-form label{display:grid;gap:5px}.summary-edit-form label>span{font-size:10px;font-weight:800;color:var(--muted)}.summary-edit-form input,.summary-edit-form select,.summary-edit-form textarea,.summary-toolbar input,.summary-toolbar select,.summary-target-search input,.summary-target-search select{border:1px solid var(--line);background:#fffdf9;color:var(--ink);border-radius:8px;padding:8px 9px;font:inherit}.summary-edit-form textarea{resize:vertical;line-height:1.6}.summary-edit-preview{border:1px dashed #d6c9b5;border-radius:11px;padding:12px;background:#fbf8f1}.summary-edit-preview>b{font-size:10px;color:var(--muted);display:block;margin-bottom:8px}.summary-preview-note,.summary-note-body{line-height:1.72}.summary-preview-figure,.summary-inline-figure{margin:0}.summary-preview-figure img,.summary-inline-figure img{display:block;max-width:100%;max-height:520px;object-fit:contain;border-radius:10px;border:1px solid var(--line);background:#fff}.summary-preview-figure figcaption,.summary-inline-figure figcaption{font-size:10px;color:var(--muted);margin-top:6px}.summary-external-link{display:inline-flex;align-items:center;gap:5px;color:#5b4a35;font-weight:800;text-decoration:none;border:1px solid #d7c8b2;border-radius:8px;padding:8px 10px;background:#fffaf2;word-break:break-all}.summary-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:9px}.summary-table{width:100%;border-collapse:collapse;font-size:11px;background:#fff}.summary-table th,.summary-table td{padding:7px 8px;border-bottom:1px solid #eee6da;border-right:1px solid #eee6da;text-align:left;vertical-align:top;white-space:pre-wrap}.summary-table th{background:#f2ebdf;font-weight:900}.summary-table tr:last-child td{border-bottom:0}.summary-links-panel{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.summary-linked-targets,.summary-target-results{display:grid;gap:6px}.summary-link-row,.summary-target-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:#fffdf9}.summary-link-row b,.summary-target-row b{font-size:10px}.summary-link-row small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.summary-link-row>div:last-child{display:flex;gap:5px}.summary-link-row button,.summary-target-row button{border:1px solid #d6cabb;background:#f9f4eb;border-radius:7px;padding:5px 7px;font-size:9px;cursor:pointer}.summary-target-search{margin-top:11px}.summary-target-search>div:first-child{display:grid;grid-template-columns:130px 1fr;gap:6px;margin-bottom:7px}.summary-target-row p{margin:2px 0 0;font-size:10px;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.related-summary-list{display:grid;gap:7px;padding-bottom:5px}.related-summary-card{border:1px solid var(--line);border-radius:9px;background:#fffdf9;overflow:hidden}.related-summary-card>summary{list-style:none;cursor:pointer;padding:8px 9px;display:flex}.related-summary-card>summary::-webkit-details-marker{display:none}.related-summary-card>summary span{display:grid;gap:2px}.related-summary-card>summary b{font-size:10.5px}.related-summary-card>summary small{font-size:8.5px;color:var(--muted)}.related-summary-card>.explanation-content,.related-summary-card>.summary-table-wrap,.related-summary-card>.summary-inline-figure,.related-summary-card>.summary-external-link{margin:0 9px 9px}.summary-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ebe1d2;color:#655845;font-size:8px;margin-left:auto}.asset-disclosure>summary{gap:6px}
@media(max-width:1050px){.summary-manager-layout{grid-template-columns:1fr}.summary-resource-list{max-height:390px}.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.summary-title-row{align-items:stretch;flex-direction:column}.summary-toolbar{display:grid;grid-template-columns:1fr}.summary-toolbar input{min-width:0}.summary-target-search>div:first-child{grid-template-columns:1fr}.summary-link-row,.summary-target-row{align-items:flex-start;flex-direction:column}.summary-link-row>div:last-child{width:100%}}

/* v0.23 paper mock grading */
.paper-entry-page{padding-bottom:40px}.paper-entry-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.paper-entry-hero h1{margin:5px 0}.paper-entry-hero p{margin:0 0 7px;color:var(--muted);max-width:820px}.paper-entry-hero code{font-size:10px;color:var(--muted)}.paper-entry-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:14px;align-items:start}.paper-input-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:11px;font-weight:800;color:var(--muted)}.paper-input-field textarea,.paper-input-field input,.paper-short-answer input{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:10px 12px;color:var(--ink);font:inherit}.paper-input-field textarea{resize:vertical;min-height:92px}.paper-input-field small{font-weight:600;margin-left:4px}.paper-entry-warning{padding:9px 11px;border:1px solid #d9a9a0;background:#fff2ef;border-radius:9px;font-size:10px;color:#8d3c31;margin-bottom:10px}.paper-entry-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}.paper-entry-summary>span{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px;font-size:9px;color:var(--muted)}.paper-entry-summary b{font-size:17px;color:var(--ink)}.paper-detail-toggle{display:flex;align-items:flex-start!important;gap:8px;border-top:1px solid var(--line);padding-top:12px}.paper-detail-toggle>span{display:flex;flex-direction:column;gap:2px}.paper-detail-toggle small{font-size:9px;color:var(--muted)}.paper-entry-actions{display:flex;justify-content:flex-end;margin-top:16px}.paper-entry-guide h2{margin-top:0}.paper-entry-guide dl{margin:0}.paper-entry-guide dt{font-weight:900;font-size:10px;margin-top:10px}.paper-entry-guide dd{margin:3px 0 0;font-size:9.5px;line-height:1.5;color:var(--muted)}.paper-entry-note{margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--line);font-size:9px;color:var(--muted);line-height:1.5}.paper-detail-panel{margin-top:14px}.paper-detail-list{display:flex;flex-direction:column;gap:9px}.paper-detail-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.paper-detail-row.bad{border-color:#d9a9a0;background:#fff8f6}.paper-detail-number{display:grid;place-items:center;align-self:start;width:34px;height:34px;border-radius:50%;background:var(--soft);font-size:12px;font-weight:900}.paper-detail-body h3{margin:0 0 8px;font-size:11px;line-height:1.5}.paper-choice-grid{display:grid;grid-template-columns:1fr;gap:5px}.paper-choice-grid button{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;text-align:left;align-items:start;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:7px 9px;color:var(--ink);cursor:pointer}.paper-choice-grid button:hover{border-color:#bda183}.paper-choice-grid button.active{border-color:#9b7754;background:#fff3e5;box-shadow:inset 0 0 0 1px #9b7754}.paper-choice-grid button b{font-size:10px}.paper-choice-grid button span{font-size:10px;line-height:1.45}.paper-short-answer{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:800}.paper-short-answer input{flex:1}.paper-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:9px;color:var(--muted)}.paper-detail-meta strong{color:#9b3b30}.badge.warn{background:#fff1d7;color:#8a5b14}@media(max-width:900px){.paper-entry-grid{grid-template-columns:1fr}}@media(max-width:620px){.paper-entry-summary{grid-template-columns:1fr 1fr}.paper-entry-hero{flex-direction:column}.paper-detail-row{grid-template-columns:34px minmax(0,1fr)}}
.paper-unknown-lock{padding:9px 10px;border-radius:8px;background:#fff5e5;border:1px solid #e2cda9;font-size:9.5px;color:#7c5a20}
.paper-hero-actions,.mock-live-tool-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}

/* v0.24 · essential closeout: battle log + multi-subject import readiness */
.subject-db-status{margin-bottom:14px}.db-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.db-status-grid article{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface2)}.db-status-grid article b{font-size:13px}.db-status-grid article strong{font-size:24px;letter-spacing:-.04em}.db-status-grid article small{color:var(--muted);line-height:1.45}.inline-status.bad{background:#fae9e7;color:#79332f;border-color:#e6b8b3}.inline-status.warn{background:#fff4d8;color:#745711;border-color:#e4cf8c}
.battle-log-page{padding-bottom:28px}.battle-log-metrics{margin-bottom:14px}.battle-log-panel{overflow:hidden}.battle-log-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(125px,auto));gap:8px;padding:14px;border-bottom:1px solid var(--line);background:var(--surface2)}.battle-log-toolbar input,.battle-log-toolbar select{min-width:0}.battle-log-list{display:grid}.battle-log-row{border-bottom:1px solid var(--line)}.battle-log-row:last-child{border-bottom:0}.battle-log-row-main{width:100%;border:0;background:transparent;color:var(--ink);display:grid;grid-template-columns:128px minmax(0,1fr) 70px;gap:14px;align-items:center;text-align:left;padding:14px 16px}.battle-log-row-main:hover{background:#fbf8f1}.battle-log-time{display:grid;gap:4px}.battle-log-time b{font-size:12px}.battle-log-time small,.battle-log-target small{font-size:11px;color:var(--muted)}.battle-log-target{min-width:0}.battle-log-title-line{display:flex;align-items:center;gap:7px;min-width:0}.battle-log-title-line b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-log-title-line code{font-size:10px;color:var(--muted);background:var(--surface2);padding:2px 5px;border-radius:5px}.result-chip{font-size:10px;font-weight:900;padding:3px 6px;border-radius:999px;flex:none}.result-chip.correct{background:#e5f2e9;color:#2d6641}.result-chip.wrong{background:#f8e5e3;color:#873c36}.result-chip.unknown{background:#fff1c9;color:#72550b}.battle-log-tail{display:flex;justify-content:flex-end;align-items:center;gap:10px;color:var(--muted);font-size:11px}.battle-log-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px 16px 158px;background:#fcfaf5}.battle-log-detail>div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.battle-log-detail>div>span{display:block;font-size:10px;color:var(--muted);font-weight:800;margin-bottom:4px}.battle-log-detail p,.battle-log-detail ul{margin:0;font-size:12px;line-height:1.6;white-space:pre-wrap}.battle-log-detail ul{padding-left:17px}.battle-log-flags{grid-column:1/-1!important;display:flex!important;flex-wrap:wrap;gap:6px!important;background:transparent!important;border:0!important;padding:0!important}.battle-log-flags span{font-size:10px;background:#efe9dd;border:1px solid var(--line);padding:4px 7px;border-radius:999px}.battle-log-row.wrong .battle-log-row-main{box-shadow:inset 3px 0 #c66d65}.battle-log-row.unknown .battle-log-row-main{box-shadow:inset 3px 0 #d3a92b}
@media(max-width:900px){.db-status-grid{grid-template-columns:1fr}.battle-log-toolbar{grid-template-columns:1fr 1fr}.battle-log-row-main{grid-template-columns:92px minmax(0,1fr)}.battle-log-tail{display:none}.battle-log-detail{padding-left:16px;grid-template-columns:1fr}}

/* v0.25 Pattern Compression - additive styles only. v0.24 paper/beige palette is preserved. */
.compression-page{padding-bottom:40px}.compression-metrics{grid-template-columns:repeat(5,1fr)}
.compression-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;align-items:start}.compression-sidebar{position:sticky;top:78px;max-height:calc(100vh - 100px);overflow:hidden;display:flex;flex-direction:column}.compression-filters{display:grid;grid-template-columns:120px 1fr;gap:7px;margin-bottom:10px}.compression-filters select,.compression-filters input,.compression-form input,.compression-form select,.compression-form textarea,.compression-question textarea,.compression-question input,.recall-input{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 10px;color:var(--ink)}.compression-pattern-list{overflow:auto;display:grid;gap:5px;padding-right:3px}.compression-pattern-row{border:1px solid #e4ddcf;background:#fffdf8;border-radius:10px;padding:10px;text-align:left;color:var(--ink)}.compression-pattern-row:hover{background:#f8f2e7}.compression-pattern-row.selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);background:#fffaf1}.compression-pattern-row>div{display:flex;align-items:flex-start;gap:6px}.compression-pattern-row b{font-size:12px;line-height:1.45}.compression-pattern-row small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.compression-main{min-width:0}.compression-header{padding:17px 20px}.compression-title{display:flex;justify-content:space-between;gap:18px}.compression-title h2{margin:5px 0 2px;font-size:23px}.compression-title p{margin:4px 0;color:var(--muted);font-size:11px}.compression-title>div:first-child>small{margin-left:8px;color:var(--muted)}.compression-status{min-width:145px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);padding:11px 13px;text-align:right;align-self:start}.compression-status span,.compression-status b{display:block}.compression-status span{font-size:11px;color:var(--muted)}.compression-status b{font-size:14px;margin-top:4px}.compression-drift{margin-top:12px;padding:10px 12px;border:1px solid #dfbd7e;background:#fff5dc;border-radius:9px;color:#7b5315;font-size:12px;font-weight:800}.compression-tabs{display:flex;gap:7px;margin:0 0 14px}.compression-tabs button{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:9px 16px;font-weight:900;color:var(--ink)}.compression-tabs button.active{background:#2f342e;color:#fff;border-color:#2f342e}.compression-design-stack,.compression-train-stack{display:grid;gap:0}.coverage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.coverage-card{border:1px solid #e3dbcc;border-radius:11px;padding:12px;background:var(--surface2)}.coverage-card span,.coverage-card small{display:block;color:var(--muted);font-size:10px}.coverage-card b{font-size:19px;display:block;margin:4px 0 7px}.coverage-card .bar{margin-bottom:5px}.rep-item-list{display:grid;gap:7px;margin-bottom:12px}.rep-item{border:1px solid #e4dccf;background:var(--surface2);border-radius:10px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:start}.rep-item b{font-size:12px;line-height:1.5}.rep-item small{grid-column:2;color:var(--muted);font-size:10px}.compression-details{border-top:1px solid #e8e1d6;padding:10px 0}.compression-details summary{font-weight:900;cursor:pointer}.coverage-list{display:grid;gap:5px;max-height:390px;overflow:auto;margin-top:9px}.coverage-list label{display:flex;align-items:flex-start;gap:8px;border:1px solid #ebe4d8;border-radius:8px;background:#fff;padding:8px;font-size:11px}.coverage-list label>span{flex:1;line-height:1.45}.coverage-list input[type="checkbox"]{margin-top:2px}.coverage-dual{display:grid;grid-template-columns:1fr 1fr;gap:14px}.coverage-dual h4{margin:0 0 6px}.compression-form{display:grid;gap:7px;margin-top:10px}.compression-form textarea{min-height:70px;resize:vertical}.form-row{display:flex;gap:8px;align-items:center}.form-row>*{flex:1}.form-row label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800}.compact-info{border:1px solid #e4dccf;border-radius:9px;background:var(--surface2);padding:10px;margin:7px 0}.compact-info b,.compact-info small{display:block}.compact-info p{white-space:pre-wrap;margin:6px 0;font-size:12px}.compact-info small{color:var(--muted);margin-top:5px}.compression-stage-nav{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.compression-stage-nav button{border:1px solid var(--line);background:var(--surface2);border-radius:9px;padding:8px 5px;font-size:10px;font-weight:900;color:#4d514b}.compression-stage-nav button small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.compression-stage-nav button.active{background:#2f342e;color:#fff;border-color:#2f342e}.compression-stage-nav button.active small{color:#ddd}.compression-stage-nav button.complete{box-shadow:inset 0 -3px 0 var(--good)}.training-card{min-height:420px}.compression-question{display:grid;gap:13px}.compression-question>h3{font-family:var(--q-font);font-size:calc(19px * var(--question-scale,1));line-height:1.65;margin:4px 0}.compression-question textarea{min-height:110px;font-family:var(--q-font);line-height:1.6}.compression-choices{display:grid;gap:8px}.compression-choices button{border:1px solid #d7cfc1;background:#fff;border-radius:10px;padding:12px 14px;text-align:left;color:var(--ink);font-family:var(--q-font);font-size:calc(14px * var(--choice-scale,1));line-height:1.5}.compression-choices button:hover{border-color:#9c8d78}.compression-choices button.selected{border-color:var(--accent);background:#fff3ec;box-shadow:inset 3px 0 0 var(--accent)}.compression-choices.contrast{grid-template-columns:1fr 1fr}.compression-feedback{border-radius:10px;padding:12px;border:1px solid var(--line);white-space:pre-wrap}.compression-feedback.good{background:#edf7f0;border-color:#a8cdb5;color:#225b3d}.compression-feedback.bad{background:#fff0ed;border-color:#d8aaa4;color:#7c302b}.compression-feedback p{margin:6px 0}.error-detection-box{border:1px dashed #bba88b;border-radius:11px;padding:14px;background:#fbf6eb}.error-detection-box small{color:var(--muted)}.error-detection-box h3{font-family:var(--q-font);line-height:1.65;margin:10px 0 0}.compression-answer-key{border:1px solid #cfc4b3;background:#f5efe2;border-radius:10px;padding:13px;white-space:pre-wrap}.compression-answer-key p{line-height:1.6;margin:6px 0 0}.self-grade-buttons{display:flex;gap:7px}.self-grade-buttons button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;font-weight:800}.pattern-priority.unranked{background:#ebe6dc;color:#65685f;border-color:#d8d0c1}
@media(max-width:1000px){.compression-layout{grid-template-columns:1fr}.compression-sidebar{position:relative;top:auto;max-height:420px}.compression-metrics{grid-template-columns:repeat(2,1fr)}.coverage-grid{grid-template-columns:repeat(2,1fr)}.compression-stage-nav{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.coverage-dual,.compression-choices.contrast{grid-template-columns:1fr}.compression-stage-nav{grid-template-columns:repeat(2,1fr)}.compression-title{display:block}.compression-status{text-align:left;margin-top:10px}.compression-filters{grid-template-columns:1fr}.compression-metrics{grid-template-columns:1fr 1fr}.coverage-grid{grid-template-columns:1fr 1fr}}
.compression-rep-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.compression-rep-actions .state-button{min-width:66px}.source-memo textarea{width:100%;min-height:110px;margin:9px 0;border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px;color:var(--ink);font-family:var(--q-font);line-height:1.55}

/* v0.25.3 representative workbench redesign: unit -> compare -> split -> choose */
.representative-workbench-page{padding-bottom:42px;max-width:1760px}
.rep-workbench-nav{padding:13px 15px!important}.rep-unit-row{display:grid;grid-template-columns:minmax(320px,1.2fr) minmax(300px,1fr) auto;gap:10px;align-items:end}.rep-unit-row label{display:grid;gap:5px}.rep-unit-row label>span{font-size:10px;color:var(--muted);font-weight:850}.rep-compact-stats{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.rep-compact-stats span{border:1px solid var(--line);background:var(--surface2);border-radius:8px;padding:7px 9px;font-size:9px;color:var(--muted)}.rep-compact-stats b{font-size:12px;color:var(--ink);margin-left:3px}.rep-pattern-strip{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}.rep-pattern-strip>b{font-size:12px}.rep-pattern-strip>small{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-shelf-panel{padding:14px 15px!important}.rep-shelf-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.rep-shelf-head>div:first-child{display:grid;gap:2px}.rep-shelf-head b{font-size:14px}.rep-shelf-head small{font-size:9.5px;color:var(--muted)}.rep-shelf-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.rep-shelf-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(320px,1fr) minmax(330px,1fr);gap:9px}.rep-shelf-slot,.rep-build-box{min-width:0;border:1px solid var(--line);border-radius:10px;background:#fbf8f1;padding:10px}.rep-shelf-slot>small,.rep-build-box label>span{display:block;font-size:9px;font-weight:900;color:var(--muted);margin-bottom:5px}.rep-shelf-slot>span{font-size:10px;color:var(--muted)}.rep-shelf-slot.primary.filled{background:#f0f6ee;border-color:#bfd0b8}.rep-shelf-slot.primary>b{font-size:10px}.rep-shelf-slot.primary p{margin:5px 0;font-size:10px;line-height:1.45}.rep-support-chip{display:grid;grid-template-columns:minmax(0,1fr) 25px;gap:6px;align-items:center;border-top:1px dashed #ded5c7;padding:5px 0}.rep-support-chip:first-of-type{border-top:0}.rep-support-chip span{font-size:9.5px;line-height:1.35}.rep-support-chip button{border:0;background:transparent;color:#9a4b43}.rep-build-box{display:grid;gap:6px}.rep-build-box label{display:grid;gap:2px}.rep-build-box select{min-height:34px}.rep-build-box textarea{min-height:68px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px 9px;background:#fff;font:inherit;font-size:10px;line-height:1.5}.rep-build-box>small{font-size:8.5px;color:var(--muted)}
.rep-workbench-panel{padding:14px!important;overflow:hidden}.rep-selection-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.rep-selection-actions>span{font-size:9.5px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rep-link-warning{margin:-2px 0 10px;padding:8px 10px;border:1px solid #e2cda9;background:#fff5e5;border-radius:8px;font-size:9.5px;color:#76581f}.rep-compare-board{display:flex;gap:10px;min-height:300px;overflow-x:auto;overflow-y:hidden;padding:3px 2px 10px;scroll-snap-type:x proximity}.rep-compare-board.has-cards{min-height:430px}.rep-drop-empty{min-width:100%;min-height:290px;border:2px dashed #cfc3af;border-radius:12px;background:#fbf8f1;display:grid;place-items:center;align-content:center;text-align:center;gap:5px;color:var(--muted)}.rep-drop-empty b{color:#666158}.rep-drop-empty span{font-size:10px;max-width:520px}.rep-work-card{flex:0 0 360px;scroll-snap-align:start;border:1px solid #d8d0c1;border-radius:12px;background:#fffdf9;padding:11px 12px;box-shadow:0 4px 13px rgba(45,40,30,.045);cursor:pointer;display:flex;flex-direction:column;max-height:610px;overflow:auto}.rep-work-card:hover{border-color:#ad9b81}.rep-work-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(125,47,40,.1)}.rep-work-card-head,.rep-pool-card-head,.rep-fragment-source{display:flex;align-items:center;justify-content:space-between;gap:8px}.rep-work-card-head>div,.rep-pool-card-head>div{display:flex;align-items:center;gap:5px}.rep-work-card-head b,.rep-pool-card-head b{font-size:10px}.rep-drag-handle{color:#9a9286;font-size:16px;cursor:grab;line-height:1}.rep-role-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 5px;font-size:7.5px;font-weight:900;margin-left:3px;background:#efece6;color:#746f68}.rep-role-badge.primary{background:#e5f2e5;color:#466a45}.rep-role-badge.support{background:#edf0f6;color:#4e607d}.rep-role-badge.unlinked{background:#fff0dc;color:#8b6026}.rep-role-badge.rejected{background:#f7e7e5;color:#8e4039}.rep-work-card>small{display:block;margin-top:5px;color:var(--muted);font-size:8.5px;line-height:1.35}.rep-work-card h3{font-family:var(--q-font);font-size:15px;font-weight:620;line-height:1.55;margin:9px 0}.rep-work-stimulus{font-family:var(--q-font);white-space:pre-wrap;background:#f5f0e5;border-left:3px solid var(--gold);padding:8px 9px;margin-bottom:8px;font-size:10.5px;line-height:1.55}.rep-work-choices{display:grid;gap:5px}.rep-work-choices>div{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;border:1px solid #e7e0d5;border-radius:8px;background:#fff;padding:6px 7px}.rep-work-choices span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#eee8dc;font-size:8.5px;font-weight:850}.rep-work-choices p{margin:0;font-family:var(--q-font);font-size:10.5px;line-height:1.45}.rep-short-card{padding:9px;border:1px dashed var(--line);border-radius:8px;font-size:9.5px;color:var(--muted)}.rep-work-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:9px}.rep-work-card-foot>span{font-size:8px;color:var(--muted)}
.rep-fragment-panel{padding:14px!important}.rep-fragment-actions{display:flex;align-items:center;gap:7px}.rep-fragment-actions>span{font-size:9px;color:var(--muted)}.rep-fragment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:7px}.rep-fragment-card{position:relative;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 9px 9px 30px}.rep-fragment-card.role-core{border-color:#a8c6a1;background:#f4f8f2}.rep-fragment-card.role-trap{border-color:#d8b28e;background:#fff8ef}.rep-fragment-card.role-hold{background:#f4f2ed}.rep-fragment-card.pair-selected{box-shadow:0 0 0 2px rgba(125,47,40,.12);border-color:var(--accent)}.rep-fragment-pair{position:absolute;left:7px;top:8px;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:9px;padding:0}.rep-fragment-source b{font-size:8.5px;color:var(--muted)}.rep-fragment-source button{border:0;background:transparent;color:#9a4b43}.rep-fragment-card p{font-family:var(--q-font);font-size:10.5px;line-height:1.45;margin:7px 0}.rep-fragment-controls{display:grid;grid-template-columns:1fr 1fr;gap:5px}.rep-fragment-controls select{padding:5px 6px;font-size:9px}.rep-contrast-drafts{margin-top:12px;border-top:1px solid var(--line);padding-top:9px;display:grid;gap:5px}.rep-contrast-drafts>b{font-size:10px}.rep-contrast-drafts>div{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 24px;gap:6px;align-items:center;border:1px solid #e8dfd2;background:#fbf8f1;border-radius:8px;padding:6px 8px}.rep-contrast-drafts span{font-size:9px;line-height:1.35}.rep-contrast-drafts strong{color:var(--accent)}.rep-contrast-drafts button{border:0;background:transparent;color:#9a4b43}
.rep-pool-panel{padding:14px!important}.rep-pool-toolbar{display:flex;align-items:center;gap:7px}.rep-pool-toolbar input{min-width:230px;max-width:360px}.rep-question-pool{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.rep-pool-card{min-width:0;border:1px solid var(--line);border-radius:10px;background:#fffdf9;padding:9px 10px;cursor:pointer}.rep-pool-card:hover{border-color:#ad9b81;background:#fffaf3}.rep-pool-card.staged{border-color:#c2b097;background:#f9f4ea}.rep-pool-card>small{display:block;color:var(--muted);font-size:8px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rep-pool-card>p{font-family:var(--q-font);font-size:10.5px;line-height:1.45;margin:7px 0}.rep-pool-preview{display:grid;gap:2px;margin:5px 0 8px}.rep-pool-preview span{font-size:8.5px;color:#666b64;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1250px){.rep-unit-row{grid-template-columns:1fr 1fr}.rep-compact-stats{grid-column:1/-1;justify-content:flex-start}.rep-shelf-grid{grid-template-columns:1fr 1fr}.rep-build-box{grid-column:1/-1}.rep-question-pool{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.rep-unit-row,.rep-shelf-grid{grid-template-columns:1fr}.rep-pattern-strip{grid-template-columns:auto minmax(0,1fr)}.rep-pattern-strip>small{grid-column:1/-1;white-space:normal}.rep-shelf-head,.panel-head-row{align-items:stretch;flex-direction:column}.rep-shelf-actions,.rep-selection-actions,.rep-pool-toolbar{justify-content:flex-start}.rep-question-pool{grid-template-columns:1fr}.rep-work-card{flex-basis:min(86vw,350px)}.rep-fragment-grid{grid-template-columns:1fr}.rep-pool-toolbar{flex-direction:column;align-items:stretch}.rep-pool-toolbar input{max-width:none;min-width:0}}

/* =====================================================================
   v0.25.4 representative sorting board · game/inventory-style workflow
   All candidate questions stay in one arena. Sticky baskets classify by
   click or drag/drop; comparison and option fragments stay nearby.
   ===================================================================== */
.representative-sort-page{padding-bottom:48px;max-width:1780px!important;width:min(1780px,calc(100vw - 28px))!important}
.rep-sort-title{margin-bottom:9px}.rep-sort-title p{margin:4px 0 0;color:var(--muted);font-size:10px}
.rep-sort-nav{display:grid;grid-template-columns:minmax(300px,1.2fr) minmax(300px,1fr) auto;gap:9px;align-items:end;padding:11px 13px!important;margin-bottom:8px!important}
.rep-sort-nav>label{display:grid;gap:4px}.rep-sort-nav>label>span{font-size:9px;font-weight:850;color:var(--muted)}
.rep-sort-stats{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}.rep-sort-stats span{border:1px solid var(--line);border-radius:8px;background:var(--surface2);padding:6px 8px;font-size:8.5px;color:var(--muted)}.rep-sort-stats b{font-size:11px;color:var(--ink);margin-left:3px}
.rep-sort-pattern{grid-column:1/-1;display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:7px;align-items:center;border-top:1px solid var(--line);padding-top:8px}.rep-sort-pattern>b{font-size:11.5px}.rep-sort-pattern>small{font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.rep-command-hud{position:sticky;top:68px;z-index:32;border:1px solid #cfc3b2;border-radius:13px;background:rgba(247,243,234,.97);box-shadow:0 8px 28px rgba(42,36,28,.12);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);padding:9px 10px;margin:0 0 9px}
.rep-command-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.rep-selection-state{display:grid;gap:1px;min-width:0}.rep-selection-state b{font-size:11px}.rep-selection-state small{font-size:8.5px;color:var(--muted)}.rep-command-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.rep-command-tools .active{background:#30352f;color:#fff;border-color:#30352f}
.rep-bucket-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.rep-bucket{min-width:0;min-height:58px;border:1px solid #d7cebf;border-radius:10px;background:#fffdf9;color:var(--ink);display:grid;grid-template-columns:27px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;text-align:left;transition:.1s}
.rep-bucket:not(:disabled):hover,.rep-bucket.drag-over{border-color:#a58e72;transform:translateY(-1px);box-shadow:0 5px 13px rgba(65,53,39,.08)}
.rep-bucket:disabled{opacity:.55}.rep-bucket-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eee7da;font-size:15px;font-weight:900}.rep-bucket-copy{display:grid;gap:1px;min-width:0}.rep-bucket-copy b,.rep-bucket>b{font-size:10.5px}.rep-bucket-copy small,.rep-bucket>small{font-size:7.8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rep-bucket>strong{font-size:14px}
.rep-bucket.role-primary{border-color:#afc7aa;background:#f3f8f1}.rep-bucket.role-primary .rep-bucket-icon{background:#dfeedd;color:#3f6c43}
.rep-bucket.role-support{border-color:#bdc6d8;background:#f4f6fa}.rep-bucket.role-support .rep-bucket-icon{background:#e3e8f1;color:#526481}
.rep-bucket.role-llm{border-color:#c8b8d2;background:#f8f4fa}.rep-bucket.role-llm .rep-bucket-icon{background:#eee4f3;color:#6f4f7d}
.rep-bucket.role-hold{background:#f5f2eb}.rep-bucket.role-rejected{border-color:#dfc1bb;background:#fff4f2}.rep-bucket.role-rejected .rep-bucket-icon{background:#f4dfdb;color:#884940}.rep-bucket.unsorted{grid-template-columns:27px minmax(0,1fr) auto}
.rep-build-hud{display:grid;grid-template-columns:210px minmax(0,1fr);gap:7px;margin-top:7px;padding-top:7px;border-top:1px solid rgba(207,195,178,.72)}.rep-build-hud label{display:grid;gap:3px}.rep-build-hud label>span{font-size:8px;color:var(--muted);font-weight:850}.rep-build-hud select{min-height:30px;padding:4px 7px;font-size:9.5px}.rep-build-note textarea{min-height:30px;max-height:62px;resize:vertical;padding:5px 8px;font-size:9.5px;line-height:1.4}

.rep-compare-dock,.rep-fragment-dock,.rep-arena-panel{padding:12px 13px!important;margin-bottom:9px!important}
.rep-compare-tools{display:flex;gap:5px}.rep-compare-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 8px;scroll-snap-type:x proximity}
.rep-compare-card{flex:0 0 390px;scroll-snap-align:start;border:1px solid var(--line);border-radius:11px;background:#fffdf9;padding:10px;max-height:670px;overflow:auto}.rep-compare-card.role-primary{border-color:#9fbe99;box-shadow:inset 0 4px #6e9a69}.rep-compare-card.role-support{border-color:#adb9d1;box-shadow:inset 0 4px #7588ad}.rep-compare-card.role-llm{border-color:#c7afd4;box-shadow:inset 0 4px #8c6a9c}.rep-compare-card.role-rejected{opacity:.78}
.rep-compare-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.rep-compare-card-head>div{display:grid;gap:2px}.rep-compare-card-head b{font-size:10px}.rep-compare-card-head small{font-size:8px;color:var(--muted);line-height:1.3}.rep-compare-card h3{font-family:var(--q-font);font-size:14px;font-weight:620;line-height:1.55;margin:8px 0}.rep-compare-stimulus{font-family:var(--q-font);font-size:10px;line-height:1.55;white-space:pre-wrap;background:#f5f0e5;border-left:3px solid var(--gold);padding:7px 8px;margin-bottom:7px}
.rep-compare-choices{display:grid;gap:4px}.rep-compare-choices>div{display:grid;grid-template-columns:21px minmax(0,1fr);gap:6px;border:1px solid #e9e1d5;border-radius:7px;padding:5px 6px}.rep-compare-choices span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#eee8dc;font-size:8px;font-weight:850}.rep-compare-choices p{margin:0;font-family:var(--q-font);font-size:10px;line-height:1.4}.rep-compare-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin:8px 0}.rep-compare-actions button{border:1px solid var(--line);background:#f8f4ec;border-radius:6px;padding:5px 3px;font-size:8px;font-weight:800}.rep-compare-actions button:hover:not(:disabled){background:#eee7dc}.rep-question-note{display:grid;gap:3px;margin-top:7px}.rep-question-note>span{font-size:8px;color:var(--muted);font-weight:800}.rep-question-note textarea{min-height:52px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px 7px;font:inherit;font-size:9px;line-height:1.4;resize:vertical}

.rep-fragment-dock{background:#fffdf8}.rep-fragment-dock .rep-fragment-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}

.rep-arena-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px}.rep-arena-head h2{margin:0;font-size:16px}.rep-arena-head small{display:block;margin-top:2px;font-size:8.5px;color:var(--muted)}.rep-arena-controls{display:flex;gap:6px;align-items:center}.rep-arena-controls input{width:270px;min-height:34px;padding:6px 8px;font-size:10px}
.rep-filter-row{display:flex;gap:4px;align-items:center;overflow-x:auto;padding:1px 0 8px}.rep-filter-row button{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;border:1px solid var(--line);background:#fbf8f1;border-radius:999px;padding:5px 8px;font-size:9px;color:#62675f;font-weight:800}.rep-filter-row button b{font-size:9px}.rep-filter-row button.active{background:#30352f;color:#fff;border-color:#30352f}
.rep-card-arena{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:start}
.rep-arena-card{min-width:0;border:1px solid var(--line);border-radius:11px;background:#fffdf9;padding:8px 9px;cursor:grab;transition:border-color .1s,box-shadow .1s,transform .1s;content-visibility:auto;contain-intrinsic-size:auto 390px}.rep-arena-card:hover{border-color:#aa987e;box-shadow:0 5px 15px rgba(44,39,31,.065)}.rep-arena-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(125,47,40,.12)}.rep-arena-card.comparing{box-shadow:inset 0 -3px #8d755d}.rep-arena-card.role-primary{background:#f6faf4;border-color:#afc6aa}.rep-arena-card.role-support{background:#f7f8fb;border-color:#c1c9d8}.rep-arena-card.role-llm{background:#fbf8fc;border-color:#d3c3dc}.rep-arena-card.role-hold{background:#f7f5f0}.rep-arena-card.role-rejected{opacity:.6;filter:saturate(.72)}
.rep-arena-card-head{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:6px;align-items:center}.rep-select-dot{width:24px;height:24px;border:1px solid #cfc5b6;background:#fff;border-radius:7px;color:#fff;font-size:12px;font-weight:900;padding:0}.rep-select-dot.active{background:var(--accent);border-color:var(--accent)}.rep-arena-id{min-width:0;cursor:pointer}.rep-arena-id b{display:block;font-size:9px}.rep-arena-id small{display:block;color:var(--muted);font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rep-disposition{font-size:7.5px;font-weight:900;padding:3px 5px;border-radius:999px;background:#eeeae3;color:#736d65}.rep-disposition.role-primary{background:#dfeedd;color:#416a43}.rep-disposition.role-support{background:#e4e9f2;color:#526580}.rep-disposition.role-llm{background:#eee5f2;color:#6f517b}.rep-disposition.role-hold{background:#ece9e2}.rep-disposition.role-rejected{background:#f3dfdc;color:#87493f}
.rep-arena-body{margin-top:6px;cursor:pointer}.rep-arena-body h3{font-family:var(--q-font);font-size:11.5px;font-weight:600;line-height:1.46;margin:5px 0 6px}.rep-arena-stimulus{font-family:var(--q-font);font-size:8.8px;line-height:1.45;background:#f5f0e5;border-left:2px solid var(--gold);padding:5px 6px;margin-bottom:5px}.rep-arena-choices{display:grid;gap:2px}.rep-arena-choices>div{display:grid;grid-template-columns:18px minmax(0,1fr);gap:4px;align-items:start;padding:3px 4px;border-top:1px dashed #ebe4d8}.rep-arena-choices>div:first-child{border-top:0}.rep-arena-choices span{font-size:7.5px;font-weight:850;color:#6b665e}.rep-arena-choices p{margin:0;font-family:var(--q-font);font-size:8.7px;line-height:1.36;color:#555a53}.rep-arena-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px;padding-top:6px;border-top:1px solid #eee7db}.rep-arena-foot>div{display:flex;gap:4px;align-items:center}.rep-arena-foot .ghost-button{padding:4px 6px!important;min-height:26px!important;font-size:8px!important}.rep-arena-foot .active{background:#30352f;color:#fff;border-color:#30352f}.rep-note-dot{display:inline-flex;padding:2px 5px;border-radius:999px;background:#fff0ca;color:#765c20;font-size:7px;font-weight:850}

@media(max-width:1280px){.rep-card-arena{grid-template-columns:repeat(2,minmax(0,1fr))}.rep-bucket-row{grid-template-columns:repeat(3,minmax(0,1fr))}.rep-sort-nav{grid-template-columns:1fr 1fr}.rep-sort-stats{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:900px){.rep-command-hud{top:58px}.rep-command-top,.rep-arena-head{align-items:stretch;flex-direction:column}.rep-command-tools{justify-content:flex-start}.rep-build-hud{grid-template-columns:1fr}.rep-card-arena{grid-template-columns:1fr}.rep-arena-controls{align-items:stretch;flex-direction:column}.rep-arena-controls input{width:100%}.rep-compare-card{flex-basis:min(88vw,390px)}}
@media(max-width:680px){.representative-sort-page{width:calc(100vw - 14px)!important}.rep-sort-nav{grid-template-columns:1fr}.rep-sort-pattern{grid-template-columns:auto minmax(0,1fr)}.rep-sort-pattern>small{grid-column:1/-1;white-space:normal}.rep-bucket-row{grid-template-columns:repeat(2,minmax(0,1fr))}.rep-selection-state small{display:none}.rep-command-tools{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.rep-command-tools button{width:100%}}

/* v0.25.5 · 지식편 / 본초사전 */
.knowledge-branch{border-left:5px solid #55785d}
.knowledge-menu-card{border-left:5px solid #55785d}
.related-herbs-panel{margin-top:10px;border:1px solid #cbd8c9;border-radius:12px;background:#f5f9f3;padding:11px 12px;box-shadow:0 4px 12px rgba(57,83,60,.05)}
.related-herbs-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.related-herbs-head b{font-size:13px;color:#355a3d}.related-herbs-head small{font-size:9.5px;color:var(--muted)}
.related-herb-buttons{display:flex;gap:6px;flex-wrap:wrap}.related-herb-buttons button{border:1px solid #adc2ab;background:#fffdf8;color:#2f5337;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:850}.related-herb-buttons button:hover{background:#e9f2e7;border-color:#779b7b}
body.herb-modal-open{overflow:hidden}
.herb-modal-backdrop{position:fixed;z-index:140;inset:0;background:rgba(14,16,13,.72);display:grid;place-items:center;padding:12px}
.herb-modal{width:min(1120px,calc(100vw - 24px));height:min(940px,calc(100vh - 24px));background:#151515;border:1px solid rgba(255,255,255,.18);border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.45);overflow:hidden;display:grid;grid-template-rows:48px minmax(0,1fr)}
.herb-modal>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px 7px 14px;background:#20241f;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.herb-modal>header>div{min-width:0}.herb-modal>header b{display:block;font-size:14px}.herb-modal>header small{display:block;color:#b8c0b6;font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.herb-modal-close{width:34px;height:34px;border:1px solid rgba(255,255,255,.24);border-radius:9px;background:rgba(255,255,255,.06);color:#fff;font-size:22px;line-height:1}.herb-modal-runtime{width:100%;height:100%;overflow:auto;background:radial-gradient(circle at 50% 25%,#211d18 0,#0c0b0a 75%);padding:10px;display:flex;justify-content:center;align-items:flex-start}
@media(max-width:820px){.herb-modal-backdrop{padding:4px}.herb-modal{width:calc(100vw - 8px);height:calc(100vh - 8px);grid-template-rows:44px minmax(0,1fr);border-radius:9px}.related-herbs-head{align-items:flex-start;flex-direction:column;gap:2px}}
