:root{color:#17201c;background:#eef2ef;font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-size:16px;--surface: #fffdf8;--surface-muted: #f5f7f2;--surface-cool: #edf4f0;--border: #d4ddd5;--border-strong: #b9c6be;--text-soft: #5f6c64;--text-muted: #738077;--green: #1f6455;--green-dark: #16483d;--green-soft: #dcece5;--rust: #91442f;--rust-soft: #f4ded1;--yellow-soft: #ece7bd;--danger: #872d23;--danger-soft: #f8d8d2}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{min-height:44px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:#17201c;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.button-link,.entry-action-button{min-height:44px;border:1px solid var(--border-strong);border-radius:6px;color:#17201c;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px}button.primary{color:#fff;background:var(--green);border-color:var(--green)}button:hover:not(:disabled),.button-link:hover,.entry-action-button:hover{border-color:var(--green);background:var(--surface-cool)}button.primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}button:focus-visible,.button-link:focus-visible,.entry-action-button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(31,100,85,.28);outline-offset:2px}button:disabled,input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed}input,textarea,select{width:100%;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:#17201c;min-height:44px;padding:8px 10px}textarea{min-height:72px;resize:vertical}h1,h2,h3,h4,p{margin:0}h1{font-size:32px;line-height:1.15}h2{font-size:22px}h3{font-size:18px}h4{font-size:15px}.app-shell{max-width:1480px;margin:0 auto;padding:24px}.app-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.header-brand{display:flex;align-items:center;gap:14px;min-width:0}.header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}.app-title-button{min-height:0;border:0;background:transparent;padding:0;color:inherit;justify-content:flex-start;text-align:left}.app-title-button:hover:not(:disabled){background:transparent;color:var(--green)}.mobile-title,.mobile-bottom-nav{display:none}.profile-open-button,.contact-open-button{flex:0 0 auto}.global-heatmap-button{min-height:38px;padding:0 14px;border-color:var(--green);background:var(--green-soft);color:var(--green-dark);font-weight:700}.global-heatmap-button:hover:not(:disabled){border-color:var(--green);background:var(--surface-cool);color:var(--green-dark)}.global-heatmap-button svg{flex:0 0 auto}.contact-open-button{border-color:#1f645552;background:var(--surface);color:var(--green-dark)}.settings-menu-wrap{position:relative;flex:0 0 auto}.settings-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:40;min-width:150px;display:grid;gap:4px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px #16221d2e;padding:6px}.settings-menu button{width:100%;justify-content:flex-start;border-color:transparent;background:transparent}.settings-menu button:hover{border-color:var(--border);background:var(--surface-cool)}.app-header p,.workflow-head p,.section-heading p,.card-note{color:var(--text-muted);margin-top:5px}.eyebrow{color:var(--rust);font-size:12px;text-transform:uppercase;letter-spacing:0;font-weight:700}.toast{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--green-dark);color:#fff;border-radius:6px;padding:10px 12px;margin-bottom:14px;position:relative}.toast-text{min-width:0;flex:1 1 auto;line-height:1.35;word-break:break-word}.toast-copy-button{flex:0 0 auto;min-height:32px;border-color:#ffffff38;background:#ffffff1f;color:#fff}.toast-copy-button:hover:not(:disabled){border-color:#ffffff61;background:#ffffff2e}.toast-copy-button:focus-visible{outline-color:#ffffff73}.workspace{display:grid;grid-template-columns:292px minmax(0,1fr);gap:18px;align-items:start}.nav-collapsed .workspace{grid-template-columns:64px minmax(0,1fr)}.chapter-nav{position:sticky;top:16px;height:calc(100vh - 48px);overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface);display:flex;flex-direction:column;box-shadow:0 10px 24px #24312a0f}.chapter-nav-head{min-height:54px;padding:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.chapter-nav-list{padding:8px;overflow:auto;display:grid;gap:5px}.mobile-chapter-picker-trigger{display:none}.chapter-nav-item{width:100%;justify-content:flex-start;min-height:42px;padding:6px 8px;background:transparent;border-color:transparent}.chapter-nav.collapsed .chapter-nav-head,.chapter-nav.collapsed .chapter-nav-item{justify-content:center}.chapter-nav-item.selected{border-color:var(--green);background:var(--green-soft)}.chapter-index{width:24px;flex:0 0 auto;color:var(--rust);font-weight:700;font-size:12px}.chapter-name{flex:1;min-width:0;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chapter-status,.flow-status{flex:0 0 auto;border-radius:999px;background:#e4e9e2;color:#536057;padding:3px 8px;font-size:12px;white-space:nowrap}.chapter-status.in_progress,.flow-status.generated,.flow-status.previewed,.flow-status.printed,.flow-status.submitted,.flow-status.pdf_received{background:#f2d9c8;color:#7f3a23}.chapter-status.review_due,.flow-status.graded,.flow-status.needs_review{background:var(--yellow-soft);color:#645600}.chapter-status.mastered,.flow-status.archived{background:#cfe8da;color:var(--green)}.flow-status.failed,.flow-status.failed_generate,.flow-status.failed_grade{background:var(--danger-soft);color:var(--danger)}.flow-status.available{background:var(--green-soft);color:var(--green)}.flow-status.missing{background:#fff6d7;color:#7a5a0f}.flow-status.missing_source,.flow-status.unavailable{background:#e7ece8;color:var(--text-muted)}.icon-button{width:38px;padding:0}.chapter-workspace{min-width:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px;margin-bottom:16px;box-shadow:0 10px 24px #24312a0d}.chapter-summary{display:grid;grid-template-columns:minmax(250px,1fr) minmax(400px,1.2fr);gap:16px;align-items:end}.chapter-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.heatmap-launch-button{min-width:180px;border-color:var(--border-strong);background:#fff;color:var(--green);box-shadow:0 4px 10px #1f645514}.header-heatmap-button{min-width:154px}.heatmap-launch-button:hover{background:var(--surface-cool)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.stats-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-tile{border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);padding:12px}.stat-tile span{color:var(--text-muted);font-size:13px}.stat-tile strong{display:block;margin-top:6px;font-size:22px}.mobile-chapter-status-line{display:none}.global-heatmap-summary{display:flex;flex:1 1 auto;flex-wrap:nowrap;justify-content:flex-start;gap:6px 10px;min-width:0;overflow:hidden;color:#f4f7f3e0;font-size:13px}.global-heatmap-summary span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.knowledge-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.heatmap-overlay{position:fixed;inset:0;z-index:200}.heatmap-overlay-backdrop{position:absolute;inset:0;background:#0f1614b8}.heatmap-overlay-panel{position:absolute;inset:0;z-index:1;width:100%;height:100dvh;margin:0;padding:0;border-radius:0;background:#1f2529;border:0;box-shadow:none;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.heatmap-titlebar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:6px 10px;border-bottom:1px solid rgba(244,247,243,.05);background:linear-gradient(180deg,#242c27,#1f2529)}.heatmap-title-copy{display:flex;flex-direction:column;gap:4px;flex:0 0 auto;min-width:0}.heatmap-titlebar h2{margin:0;color:#f4f7f3;font-size:1rem;line-height:1.15;white-space:nowrap}.heatmap-overlay-body{min-height:0;display:grid;overflow:hidden}.global-heatmap-summary{color:#f4f7f3e6;font-size:12px}.heatmap-close-button{flex:0 0 auto;min-width:52px;min-height:32px;padding:0 10px;color:#f4f7f3;background:#ffffff0f;border-color:#ffffff1f}.heatmap-close-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff2e}.knowledge-section-head strong{font-size:14px}.knowledge-section-head span{color:var(--text-muted);font-size:12px}.knowledge-map-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.knowledge-view-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.knowledge-view-tabs button{min-height:34px;border-color:transparent;background:transparent;white-space:nowrap}.knowledge-view-tabs button.selected{color:var(--green);border-color:var(--green);background:#fff;font-weight:700}.knowledge-map-summary{display:flex;flex-wrap:wrap;gap:10px;color:var(--text-soft);font-size:13px}.knowledge-map-summary span{display:inline-flex;align-items:center;gap:6px}.knowledge-filter-group{display:inline-flex;gap:4px;padding:2px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted)}.knowledge-filter-group button{min-height:26px;border-radius:999px;border-color:transparent;background:transparent;padding:0 10px;font-size:12px}.knowledge-filter-group button.selected{color:#fff;background:var(--green);border-color:var(--green)}.legend-dot{width:10px;height:10px;border:1px solid var(--border-strong);border-radius:999px;background:#fff}.legend-dot.mastered{background:#bfe1cf;border-color:var(--green)}.legend-dot.needs_review{background:var(--yellow-soft);border-color:#c6b85d}.heatmap-canvas-shell{position:relative;min-height:0;overflow:hidden;border:0;border-radius:0;background:#1f2529}.heatmap-canvas-shell-stretch{width:100%;height:100%}.heatmap-canvas-surface{display:block}.heatmap-empty-state{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted);pointer-events:none}.mobile-map-open-card,.mobile-paper-open-card,.mobile-fullscreen-sheet,.mobile-practice-actions,.mobile-sheet-mini-head,.mobile-history-chapter{display:none}.knowledge-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.knowledge-card{min-height:132px;display:grid;align-content:space-between;gap:10px;border:1px solid var(--border);border-radius:8px;padding:12px;background:#fff}.knowledge-card.mastered{border-color:#94bca8;background:#edf7f1}.knowledge-card.needs_review{border-color:#d7cb76;background:#fff9d9}.knowledge-card.uncovered{background:#fff}.knowledge-card strong{display:block;line-height:1.35}.knowledge-card span{color:var(--text-muted);font-size:12px}.knowledge-card p{color:var(--text-soft);font-size:13px;line-height:1.55}.knowledge-market-board{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-auto-flow:dense;gap:1px;padding:4px;border:0;border-radius:8px;background:#20342e}.knowledge-market-tile:hover:not(:disabled){z-index:40;filter:brightness(.97)}.heat-mastered{--tile-bg: #1f9d5b;--tile-fg: #ffffff;--tile-muted: rgba(255, 255, 255, .82)}.heat-review-low{--tile-bg: #3f7f60;--tile-fg: #ffffff;--tile-muted: rgba(255, 255, 255, .82)}.heat-review-mid{--tile-bg: #b77328;--tile-fg: #ffffff;--tile-muted: rgba(255, 255, 255, .88)}.heat-review-high{--tile-bg: #b43f3f;--tile-fg: #ffffff;--tile-muted: rgba(255, 255, 255, .88)}.heat-uncovered{--tile-bg: #465852;--tile-fg: #ffffff;--tile-muted: rgba(255, 255, 255, .84)}.knowledge-card-foot{display:flex;justify-content:space-between;gap:8px;align-items:center}.knowledge-card-foot small{color:var(--text-muted)}.knowledge-market-layout{display:block}.knowledge-market-board{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));grid-auto-flow:dense;gap:1px;padding:4px;border:0;border-radius:8px;background:#20342e}.knowledge-market-tile{--tile-bg: #fffdf8;--tile-fg: #17201c;--tile-muted: #627167;position:relative;min-height:54px;display:grid;place-items:center;gap:2px;padding:6px;border-radius:3px;text-align:center;color:var(--tile-fg);background:var(--tile-bg);border:0;box-shadow:none}.knowledge-market-tile:hover:not(:disabled){z-index:40;background:var(--tile-bg);border-color:transparent;filter:brightness(.96)}.knowledge-market-tile:focus-visible{z-index:40;outline:2px solid rgba(31,100,85,.42);outline-offset:1px}.knowledge-market-tile strong{width:100%;font-size:12.5px;line-height:1.22;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.knowledge-hover-card span{color:var(--tile-muted);font-size:11px;line-height:1.1}.knowledge-market-tile.mastered{--tile-bg: #1f9d5b;--tile-fg: #ffffff;--tile-muted: rgba(255, 255, 255, .82)}.knowledge-market-tile.needs_review{--tile-bg: #f3dc61;--tile-fg: #17201c;--tile-muted: #5d612f}.knowledge-market-tile.review-low{--tile-bg: #f8e986;--tile-muted: #667044}.knowledge-market-tile.review-mid{--tile-bg: #efd347;--tile-muted: #5b5f2b}.knowledge-market-tile.review-high{--tile-bg: #d49a22;--tile-muted: #443a17}.knowledge-market-tile.uncovered{--tile-bg: #fffdf8;--tile-fg: #17201c;--tile-muted: #738077}.knowledge-hover-card{position:absolute;left:0;top:calc(100% + 6px);z-index:80;width:min(320px,70vw);display:none;gap:7px;border:1px solid var(--border-strong);border-radius:8px;background:#fffdf8;color:#17201c;box-shadow:0 18px 46px #16221d42;padding:12px;text-align:left}.knowledge-market-tile:hover .knowledge-hover-card,.knowledge-market-tile:focus-visible .knowledge-hover-card{display:grid}.knowledge-hover-card strong{font-size:15px;line-height:1.35;display:block}.knowledge-hover-card em{color:var(--text-soft);font-style:normal;font-size:13px;line-height:1.55}.knowledge-hover-card>span{color:var(--text-muted);font-size:12px}.knowledge-image-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.knowledge-page-card{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:10px}.knowledge-page-card img{width:100%;height:150px;object-fit:cover;object-position:top;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.knowledge-page-card strong{display:block;margin-bottom:3px}.knowledge-page-card p{color:var(--text-muted);font-size:13px;margin-bottom:8px}.page-point-list{display:flex;flex-wrap:wrap;gap:6px}.point-pill{border:1px solid var(--border-strong);border-radius:999px;background:#fff;padding:4px 8px;color:var(--text-soft);font-size:12px}.point-pill.mastered{border-color:#94bca8;background:#edf7f1;color:var(--green)}.point-pill.needs_review{border-color:#d7cb76;background:#fff9d9;color:#645600}.flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.active-paper-panel,.result-panel{display:grid;gap:14px;align-content:start}.workflow-entry-card{width:100%;min-height:72px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-content:stretch;text-align:left;padding:12px 14px;gap:14px;background:#fff;border:1px solid var(--border-strong);border-radius:6px}.workflow-entry-card.disabled{background:#f1f4f0;border-color:var(--border)}.support-entry-card{border-color:#1f64553d;background:#f6faf7}.support-entry-card .entry-action-button{color:var(--green-dark);border-color:#1f645547;background:#fff}.support-entry-card .entry-action-button:hover{border-color:var(--green);background:var(--surface-cool)}.workflow-head,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.section-heading{justify-content:flex-start;margin-bottom:12px}.section-heading svg{color:var(--green);margin-top:1px}.subtle-icon-button{width:34px;min-height:34px;margin-left:auto;padding:0;border-color:transparent;background:transparent;color:var(--text-muted)}.subtle-icon-button:hover:not(:disabled){border-color:var(--border);background:var(--surface-cool);color:var(--green)}.overview-actions{display:grid;gap:12px}.practice-entry-strip{display:grid;gap:10px;padding:14px}.practice-entry-strip .section-heading{margin-bottom:0}.practice-entry-strip .workflow-entry-card{min-height:60px;padding:12px;background:#fbfdf9}.practice-entry-strip .workflow-entry-card>div:first-child strong{font-size:15px}.practice-entry-strip .workflow-entry-card small{display:none}.practice-overview-progress{display:grid;gap:12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);padding:14px}.progress-copy{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.progress-copy span,.workflow-entry-card small{color:var(--text-muted);font-size:13px}.progress-copy strong{font-size:18px}.progress-track{height:8px;overflow:hidden;border-radius:999px;background:#dfe7e1}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--green)}.progress-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.progress-stat-grid .stat-tile{padding:10px}.progress-stat-grid .stat-tile strong{font-size:20px}.practice-stat-line{display:flex;flex-wrap:wrap;gap:8px}.practice-stat-line span{border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-soft);font-size:12px;padding:5px 9px}.workflow-entry-card>div:first-child{min-width:0;display:grid;gap:3px}.workflow-entry-card>div:first-child strong{font-size:16px}.entry-action-cluster{min-width:max-content;display:flex;align-items:center;justify-content:flex-end;gap:10px}.entry-action-button{min-width:104px;color:#fff;background:var(--green);border-color:var(--green);font-weight:700;white-space:nowrap;padding:0 12px 0 14px;box-shadow:0 4px 10px #1f645524;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}.entry-action-button svg{margin-right:-3px}.entry-action-button:hover{color:#fff;background:var(--green-dark);border-color:var(--green-dark);box-shadow:0 6px 14px #1f645533;transform:translateY(-1px)}.entry-action-button.disabled{color:var(--text-muted);background:#e7ece8;border-color:var(--border);box-shadow:none;pointer-events:none}.extract-workspace{display:grid;gap:16px;scroll-margin-top:16px}.extract-compact-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px}.extract-init-copy{min-width:0;display:grid;gap:3px}.extract-init-copy strong{font-size:15px}.extract-init-copy span{color:var(--text-muted);font-size:13px;line-height:1.4}.extract-init-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.extract-init-chip{border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-soft);font-size:12px;line-height:1;padding:6px 8px;white-space:nowrap}.extract-hero-panel{display:flex;align-items:center;gap:14px}.extract-hero-panel p,.extract-status-panel p,.extract-source-panel p{color:var(--text-muted);margin-top:5px}.extract-status-panel,.extract-source-panel{display:grid;gap:14px}.extract-profile-summary{display:grid;gap:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);padding:12px}.extract-profile-summary strong{color:var(--text);font-size:14px}.extract-profile-summary p{color:var(--text-muted);font-size:13px;line-height:1.5;margin:0}.extract-profile-summary .extract-init-actions{justify-content:flex-start}.extract-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.extract-source-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.extract-source-grid a{display:grid;gap:7px;color:inherit;text-decoration:none;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);padding:8px}.extract-source-grid img{width:100%;aspect-ratio:3 / 4;object-fit:cover;object-position:top;border:1px solid var(--border);border-radius:6px;background:#fff}.extract-source-grid span{overflow:hidden;color:var(--text-soft);font-size:12px;white-space:nowrap;text-overflow:ellipsis}.extract-profile-dialog{width:min(720px,calc(100vw - 40px))}.extract-profile-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.extract-focus-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.extract-focus-list>.field-label{flex:0 0 100%}.check-pill,.check-row{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;background:#fff;padding:7px 10px;color:#17201c;font-size:13px}.check-row{width:fit-content;margin-top:12px;border-radius:6px}.check-pill input,.check-row input{width:auto;min-height:0}.destructive-note{margin-top:12px;border:1px solid #d8aaa2;border-radius:6px;background:#fff7f5;color:var(--danger);padding:10px 12px;font-size:13px;line-height:1.55}.practice-workspace{display:grid;gap:16px}.practice-workspace-head{display:flex;align-items:center;padding:0 0 4px}.back-to-overview{font-size:14px;color:var(--green);border:1px solid var(--border);padding:6px 16px 6px 12px}.back-to-overview:hover{background:var(--green-soft);border-color:var(--green)}.workspace-title-panel{display:flex;align-items:center;gap:14px;min-height:96px}.workspace-title-panel button{flex:0 0 auto}.workspace-title-panel p{color:var(--text-muted);margin-top:5px}.paper-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:18px;align-items:start}.paper-main-column,.practice-side-rail{display:grid;gap:16px;align-content:start}.practice-mobile-workspace{display:none}.practice-side-rail{position:sticky;top:18px}.paper-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.paper-toolbar p{color:var(--text-muted);margin-top:5px}.paper-toolbar-side{display:grid;gap:10px;justify-items:end;flex:0 0 auto}.paper-mode-switch{display:inline-grid;grid-template-columns:repeat(2,minmax(72px,1fr));gap:4px;padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.paper-mode-switch button{min-height:32px;border-color:transparent;background:transparent;padding:0 10px;white-space:nowrap}.paper-mode-switch button.selected{border-color:var(--green);background:#fff;color:var(--green);font-weight:700}.paper-preview-frame{height:min(78vh,900px);min-height:620px;border:1px solid var(--border);border-radius:8px;background:#f8faf7;overflow:hidden}.paper-preview-frame iframe{width:100%;height:100%;border:0;display:block;background:#fff}.create-practice-panel,.workflow-controls{display:grid;gap:12px}.workflow-controls{grid-template-columns:minmax(320px,1fr) minmax(150px,210px);align-items:end;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);padding:12px}label{display:grid;gap:6px;color:#4b574f;font-size:13px}.field-hint{color:var(--text-muted);font-size:12px}.duration-field{display:grid;gap:6px}.field-label{color:#4b574f;font-size:13px;font-weight:700}.duration-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.duration-option{min-height:40px;padding:0 8px;white-space:nowrap;background:#fff}.duration-option.selected{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:700}.first-round-progress{display:grid;gap:8px;padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.first-round-progress .progress-copy strong{font-size:16px}.first-round-progress p{color:var(--text-muted);font-size:12px;line-height:1.5}.practice-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.paper-action-bar{display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(150px,1fr) minmax(170px,1fr);gap:8px}.paper-page-switch{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;min-height:38px}.paper-page-switch button{min-height:38px;padding:0 10px}.paper-page-switch span{color:var(--text-muted);font-size:13px;font-weight:700;white-space:nowrap}.upload-strip{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#fff}.upload-strip p{color:var(--text-muted);font-size:13px;margin-top:3px}.upload-strip .button-link{justify-self:start}.upload-file-actions{display:flex;flex-wrap:wrap;gap:8px}.upload-strip .danger-subtle{justify-self:start;color:var(--danger);border-color:#d8aaa2;background:#fff7f5}.upload-strip .danger-subtle:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.full-width{width:100%}.card-note{border-left:3px solid var(--border-strong);padding-left:10px;font-size:13px}.job-line{display:grid;gap:8px;grid-column:1 / -1;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);padding:9px 10px;color:#4b574f}.job-line-current{display:flex;align-items:center;gap:8px;min-width:0}.job-line-current span{min-width:0;overflow-wrap:anywhere}.job-progress-track{height:6px;overflow:hidden;border-radius:999px;background:#dfe7e1}.job-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width .22s ease}.job-events{display:grid;gap:5px;margin:0;padding-left:24px;color:#6c746c;font-size:12px;line-height:1.45}.job-events li{overflow-wrap:anywhere}.job-line.failed{background:#fff0ed;color:var(--danger)}.job-line.failed .job-progress-track span{background:var(--danger)}.job-failure-hint{border-top:1px solid #ecc5bf;color:#8f3326;font-size:12px;line-height:1.45;padding-top:8px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-button,.result-actions{justify-self:start}.result-actions{display:flex;flex-wrap:wrap;gap:8px}.modal-backdrop{position:fixed;inset:0;z-index:420;display:grid;place-items:center;background:#17201c5c;padding:24px}.modal-panel{width:min(920px,100%);max-height:min(820px,calc(100vh - 48px));overflow:auto;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px #15251f47;padding:16px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.modal-panel .result-panel{border:0;box-shadow:none;padding:0}.profile-dialog{width:min(720px,100%);display:grid;gap:12px}.settings-dialog{width:min(680px,100%);display:grid;gap:12px}.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-dialog label,.settings-dialog label{display:grid;gap:6px}.profile-dialog textarea{min-height:82px}.inline-check{display:flex!important;grid-template-columns:none;align-items:center;gap:8px;color:var(--text-muted)}.inline-check input{width:auto}.settings-status,.settings-path,.form-error{border:1px solid var(--border);border-radius:6px;padding:9px 10px;font-size:14px}.settings-status.configured{background:var(--green-soft);color:var(--green-dark)}.settings-status.missing,.form-error{background:var(--peach);color:var(--rust)}.settings-path{background:var(--surface-muted);color:var(--text-muted);word-break:break-all}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.artifact-links{margin-top:12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);padding:10px}.artifact-links h4{margin-bottom:8px}.artifact-links div{display:flex;flex-wrap:wrap;gap:8px}.artifact-links a{border:1px solid var(--border-strong);border-radius:999px;color:var(--green);background:var(--surface);padding:5px 10px;text-decoration:none;font-size:13px}.history-list{display:grid;gap:8px}.history-select-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;justify-content:stretch;text-align:left;border:1px solid var(--border);background:var(--surface-muted);padding:10px;min-height:62px}.history-select-row.selected{border-color:var(--green);background:var(--green-soft)}.history-select-row .flow-status{align-self:start}.history-select-row strong,.history-select-row span,.history-select-row small{min-width:0}.history-select-row strong,.history-select-row div>span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history-select-row small{grid-column:2;color:var(--text-muted)}.history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);padding:10px}.history-row strong,.history-row span{display:block}.history-row div>span{color:var(--text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.empty-state{border:1px dashed var(--border-strong);border-radius:6px;color:var(--text-muted);padding:18px;background:var(--surface-muted)}.grading-table{display:grid;gap:8px;margin-top:12px}.grading-row{display:grid;grid-template-columns:60px 90px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);padding:10px;text-align:left;width:100%}.grading-row p{color:#4b574f}.grading-row.selected{border-color:var(--green);background:var(--green-soft)}.grading-detail-card{display:grid;gap:8px;margin-top:12px;border:1px solid var(--border-strong);border-radius:8px;background:#fff;padding:12px}.grading-detail-card p{color:#4b574f}.weak-points{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.weak-points h4{width:100%}.weak-points span{border-radius:999px;background:var(--rust-soft);color:#7f3a23;padding:4px 9px;font-size:12px}.weak-points p{color:var(--text-muted)}@media(max-width:1080px){.workspace,.nav-collapsed .workspace,.chapter-summary,.flow-grid,.paper-workspace-grid{grid-template-columns:1fr}.practice-side-rail{position:static}.chapter-nav{position:static;height:auto;max-height:320px}.chapter-nav.collapsed{max-height:54px}.chapter-nav.collapsed .chapter-nav-list{display:none}.heatmap-titlebar{flex-wrap:nowrap}}@media(max-width:760px){.app-shell{padding:14px}.app-header,.workflow-head,.paper-toolbar,.workspace-title-panel{display:grid}.header-actions{justify-content:flex-start}.stats-grid,.stats-grid.compact,.practice-links,.paper-action-bar,.workflow-controls,.history-row,.profile-form-grid,.grading-row,.progress-copy,.extract-compact-panel,.workflow-entry-card{grid-template-columns:1fr}.extract-init-actions{justify-content:flex-start}.progress-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-copy{display:grid}.history-select-row small{grid-column:1}.global-heatmap-summary{gap:4px 8px;justify-content:flex-start;font-size:12px}.heatmap-close-button{width:36px;min-width:36px;min-height:32px;padding:0;font-size:0}.heatmap-close-button:before{content:"×";font-size:24px;line-height:1}}@media(max-width:760px){:root{--surface: #fffdf7;--surface-muted: #f4f3ea;--surface-cool: #e8f1ec;--border: #d9ded4;--border-strong: #b9c4bb;--text-soft: #56625a;--text-muted: #7b857d;--green: #1d7664;--green-dark: #123f36;--green-soft: #dceee7;--rust: #a56b2b;--rust-soft: #f3dfc0;background:var(--surface)}html,body,#root{width:100%;min-width:0;overflow-x:hidden}body{background:var(--surface);color:#17201c}html{background:var(--surface)}h1{font-size:22px;line-height:1.15}h2{font-size:20px;line-height:1.25}h3{font-size:17px;line-height:1.3}button,.button-link,.entry-action-button{min-height:44px;border-radius:8px;touch-action:manipulation}button.primary,.primary{background:var(--green);border-color:var(--green)}.app-shell{width:100%;padding:0 0 calc(72px + env(safe-area-inset-bottom))}.app-header{position:sticky;top:0;z-index:60;display:grid;grid-template-columns:minmax(0,1fr) 50px 50px 50px;gap:8px;align-items:center;min-height:68px;margin:0;padding:8px 12px;border-bottom:1px solid rgba(18,63,54,.08);background:#fffdf7f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-brand{display:contents}.app-title-button h1{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.desktop-title{display:none}.mobile-title{display:inline}.header-actions,.global-heatmap-button,.contact-open-button,.profile-open-button{width:100%}.header-actions{display:contents}.settings-menu-wrap{width:100%}.global-heatmap-button,.contact-open-button,.profile-open-button{width:50px;min-width:50px;padding:0;border-color:transparent;background:transparent;gap:0;font-size:0}.global-heatmap-button svg,.contact-open-button svg,.profile-open-button svg{width:19px;height:19px}.settings-menu{top:calc(100% + 5px);left:auto;right:0;min-width:168px}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(18,63,54,.1);background:#fffdf7fa;box-shadow:0 -12px 30px #26302a14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-bottom-nav button{min-width:0;min-height:58px;display:grid;justify-items:center;align-content:center;gap:3px;padding:4px;border-color:transparent;background:transparent;color:var(--text-muted);font-size:14px;font-weight:700}.mobile-bottom-nav button.selected{border-color:#1d76642e;background:var(--green-soft);color:var(--green-dark)}.toast{align-items:stretch;flex-direction:column;padding:10px}.toast-copy-button{width:100%}.workspace{gap:8px}.chapter-workspace{display:flex;flex-direction:column;gap:2px}.chapter-nav,.chapter-nav.collapsed{position:sticky;top:68px;z-index:50;max-height:none;height:auto;margin:8px 10px 0;border:1px solid var(--border);border-radius:8px;background:#fffdf7f7;box-shadow:none;overflow:hidden}.chapter-nav-head{display:none}.mobile-chapter-picker-trigger{width:100%;min-height:56px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:8px 14px;border-width:0;border-radius:0;background:#fffdf7f7;text-align:left;color:var(--text)}.mobile-chapter-picker-trigger>span{min-width:0}.mobile-chapter-picker-trigger strong{display:block;overflow:hidden;font-size:19px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}.mobile-chapter-picker-trigger em{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;overflow:hidden;border-radius:999px;background:#123f360f;color:var(--text-soft);font-size:16px;font-style:normal;line-height:1;font-weight:700;white-space:nowrap;text-overflow:ellipsis}.mobile-chapter-picker-trigger svg{flex:0 0 auto;color:var(--green)}.chapter-nav-list,.chapter-nav.collapsed .chapter-nav-list{display:none}.chapter-picker-sheet{background:radial-gradient(circle at 12% 0%,rgba(29,118,100,.08),transparent 28%),linear-gradient(180deg,#fffdf7,#f4f3ea);color:var(--text);grid-template-rows:auto minmax(0,1fr)}.chapter-picker-sheet .mobile-sheet-head{min-height:56px;border-bottom-color:var(--border);background:#fffdf7fa;color:var(--text)}.chapter-picker-sheet .mobile-sheet-head span{display:block;max-width:calc(100vw - 72px);overflow:hidden;color:var(--text-muted);font-size:12px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}.chapter-picker-sheet .mobile-sheet-close{border-color:var(--border);background:#fff;color:var(--text)}.chapter-picker-body{min-height:0;overflow:auto;display:grid;align-content:start;gap:7px;padding:10px 8px calc(12px + env(safe-area-inset-bottom))}.chapter-picker-row{width:100%;min-height:54px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fffdf7eb;text-align:left;color:var(--text)}.chapter-picker-row.selected{border-color:var(--green);background:var(--green-soft)}.chapter-picker-index{color:var(--green);font-size:12px;font-weight:800}.chapter-picker-title{min-width:0;overflow:hidden;font-size:14px;font-weight:700;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}.chapter-picker-row .chapter-status{justify-self:end}.panel{margin-bottom:0;padding:10px;border:1px solid rgba(18,63,54,.08);border-radius:0;background:transparent;box-shadow:none}.practice-entry-strip .workflow-entry-card{min-height:82px;padding:10px 12px 10px 0;background:transparent}.chapter-summary{order:1;gap:6px;padding:0 10px}.chapter-summary-head{display:none}.knowledge-map-panel{order:2}.practice-entry-strip,.extract-workspace,.compact-history{order:3}.chapter-summary-head,.knowledge-map-head,.workflow-head,.section-heading,.paper-toolbar,.modal-head{min-width:0}.stats-grid,.progress-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.chapter-summary .stats-grid{display:none}.mobile-chapter-status-line{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 14px;border:1px solid rgba(18,63,54,.08);border-radius:8px;background:#fffdf7b8;color:var(--text-soft);font-size:16px;font-weight:700;white-space:nowrap}.mobile-chapter-status-line:before{content:"";width:11px;height:11px;border:2px solid rgba(29,118,100,.55);border-radius:50%}.stat-tile{min-width:0;padding:6px 7px;border-color:#123f3614;border-radius:8px;background:#fffdf7c2}.stat-tile span{font-size:12px}.stat-tile strong{margin-top:3px;font-size:17px}.practice-entry-strip{margin-top:-14px;padding:0 10px 8px;border:0;border-top:0;background:transparent}.practice-entry-strip>.section-heading,.workflow-entry-card.flow-ability{display:none}.workflow-entry-card{min-height:82px;grid-template-columns:46px minmax(0,1fr) auto;gap:8px;padding:11px 0;border:0;border-top:1px solid rgba(18,63,54,.1);border-radius:0;background:transparent;box-shadow:none}.flow-grid{counter-reset:task 1;grid-template-columns:1fr;gap:0}.workflow-entry-card:before{counter-increment:task;content:counter(task);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#dceee7b8;color:var(--green);font-size:20px;font-weight:900}.workflow-entry-card>div:first-child{grid-column:2}.workflow-entry-card>div:first-child strong{color:var(--green-dark);font-size:20px}.workflow-entry-card small{display:block;margin-top:4px;color:var(--text-muted);font-size:15px}.practice-entry-strip .workflow-entry-card small{display:block}.workflow-entry-card .flow-status{display:none}.entry-action-cluster{grid-column:3}.entry-action-button{min-width:78px;min-height:44px;padding:0 13px;font-size:17px}.support-entry-card .entry-action-button{min-width:54px;padding:0;border-color:transparent;background:transparent;box-shadow:none;color:var(--green);font-size:0}.support-entry-card .entry-action-button svg{width:20px;height:20px}.knowledge-map-panel{padding:8px 10px 0;border:0;background:transparent}.knowledge-map-panel .knowledge-map-head,.knowledge-map-summary,.desktop-heatmap-inline{display:none}.mobile-map-open-card{width:100%;min-height:82px;display:grid;grid-template-columns:46px minmax(0,1fr) 52px auto auto;align-items:center;gap:8px;padding:10px 12px 9px 0;border:0;border-top:1px solid rgba(18,63,54,.1);border-radius:0;background:transparent;color:var(--green-dark);text-align:left}.mobile-map-open-card:before{content:"1";display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#dceee7b8;color:var(--green);font-size:20px;font-weight:900}.mobile-map-open-card strong,.mobile-map-open-card em{display:block}.mobile-map-open-card strong{font-size:20px;line-height:1.2}.mobile-map-open-card em{display:block;margin-top:4px;color:var(--text-muted);overflow:hidden;font-size:15px;font-style:normal;white-space:nowrap;text-overflow:ellipsis}.mobile-map-open-card svg{flex:0 0 auto}.mobile-map-mini{width:52px;height:44px;display:grid;place-items:center;color:#1d766438;pointer-events:none}.mobile-map-action{color:var(--green);font-size:17px;font-weight:900}.mobile-fullscreen-sheet{position:fixed;inset:0;z-index:300;display:grid;grid-template-rows:auto minmax(0,1fr);background:#f4f3ea}.mobile-sheet-head{min-height:56px;display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 8px) 10px 8px;border-bottom:1px solid rgba(18,63,54,.1);color:#17201c;background:#fffdf7fa}.mobile-sheet-head strong,.mobile-sheet-head span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mobile-sheet-head strong{font-size:16px;line-height:1.25}.mobile-sheet-head span{margin-top:3px;color:var(--text-muted);font-size:12px}.mobile-sheet-close{width:44px;min-height:44px;padding:0;color:#17201c;background:#f4f3eae6;border-color:var(--border)}.mobile-sheet-body{min-height:0;overflow:hidden}.mobile-map-sheet-body .heatmap-canvas-shell{width:100%;height:100%;min-height:0;border-radius:0}.heatmap-canvas-shell{min-height:410px;border-radius:7px}.heatmap-canvas-surface{max-width:100%}.entry-action-cluster,.entry-action-button{width:100%;min-width:0}.knowledge-view-tabs,.knowledge-filter-group,.duration-options,.paper-mode-switch{width:100%}.knowledge-view-tabs,.duration-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.knowledge-filter-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:8px}.knowledge-filter-group button{min-height:38px;border-radius:6px}.knowledge-wall,.knowledge-image-board,.extract-source-grid{grid-template-columns:1fr}.knowledge-market-board{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.knowledge-hover-card{width:min(280px,calc(100vw - 36px))}.knowledge-page-card{grid-template-columns:82px minmax(0,1fr)}.knowledge-page-card img{height:112px}.extract-compact-panel,.extract-hero-panel{display:grid}.extract-init-actions,.extract-actions,.modal-actions,.result-actions,.artifact-links div,.upload-file-actions{display:grid;grid-template-columns:1fr;width:100%}.check-row{width:100%;align-items:flex-start}.practice-workspace{gap:8px}.practice-workspace-head{display:none}.back-to-overview{width:100%}.paper-workspace-grid,.paper-main-column,.practice-side-rail{gap:6px}.practice-mobile-workspace{display:grid;gap:8px}.practice-desktop-workspace{display:none}.practice-workspace.has-paper .paper-main-column{order:2}.practice-workspace.has-paper .practice-side-rail,.practice-workspace.empty-paper .practice-side-rail{order:1}.practice-workspace.empty-paper .paper-main-column{order:2}.history-panel{order:1;background:transparent;padding:10px}.mobile-history-chapter{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:baseline;margin-bottom:12px;color:var(--green-dark)}.mobile-history-chapter span{color:var(--green);font-size:15px;font-weight:800}.mobile-history-chapter strong{overflow:hidden;font-size:20px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}.mobile-history-chapter em{padding:3px 8px;border:1px solid rgba(31,100,85,.18);border-radius:8px;background:var(--green-soft);color:var(--green-dark);font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}.create-practice-panel{order:2}.mobile-practice-actions{order:2;display:grid;grid-template-columns:1fr;gap:8px;padding:0 4px}.mobile-practice-actions button{width:100%}.mobile-practice-actions .progress-line{grid-column:1 / -1}.mobile-sheet-mini-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid rgba(18,63,54,.1)}.mobile-sheet-mini-head strong{color:var(--green-dark);font-size:17px}.mobile-sheet-mini-head button{width:44px;min-width:44px;padding:0}.create-practice-panel,.upload-strip{display:none}.create-practice-panel.mobile-open,.upload-strip.mobile-open{position:fixed;left:8px;right:8px;bottom:8px;z-index:320;max-height:calc(100dvh - 24px);overflow:auto;display:grid;gap:12px;padding:12px;border:1px solid rgba(18,63,54,.12);border-radius:12px 12px 8px 8px;background:#fffdf7;box-shadow:0 -18px 50px #17201c2e}.mobile-bottom-sheet{position:fixed;left:8px;right:8px;bottom:8px;z-index:330;display:grid;gap:12px;max-height:min(64dvh,520px);overflow:auto;padding:12px;border:1px solid rgba(18,63,54,.12);border-radius:12px 12px 8px 8px;background:#fffdf7;box-shadow:0 -18px 50px #17201c33}.paper-toolbar-side{width:100%;justify-items:stretch}.active-paper-panel,.paper-preview-frame{display:none}.mobile-paper-open-card{width:100%;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-color:#1d76642e;border-radius:8px;background:#fffdf7d6;text-align:left}.mobile-paper-open-card strong,.mobile-paper-open-card em{display:block}.mobile-paper-open-card strong{color:var(--green-dark);font-size:17px;line-height:1.25}.mobile-paper-open-card em{margin-top:5px;color:var(--text-muted);font-size:13px;font-style:normal;line-height:1.4}.mobile-paper-reader-toolbar{display:grid;gap:8px;max-height:34dvh;overflow:auto;padding:8px;border-bottom:1px solid var(--border);background:#fffdf7}.mobile-paper-reader-toolbar .paper-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-paper-reader-toolbar .paper-page-switch{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.mobile-paper-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mobile-paper-actions button,.mobile-paper-actions .button-link{width:100%}.mobile-paper-upload{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:#fff}.mobile-paper-upload input[type=file]{min-width:0;max-width:100%}.mobile-paper-upload>button,.mobile-paper-upload .button-link,.mobile-paper-upload .danger-subtle{width:100%}.paper-reader-sheet{grid-template-rows:auto auto minmax(0,1fr);background:#f4f3ea}.paper-reader-sheet .mobile-sheet-head{color:#17201c;background:var(--surface);border-bottom-color:var(--border)}.paper-reader-sheet .mobile-sheet-head span{color:var(--text-muted)}.paper-reader-sheet .mobile-sheet-close{color:#17201c;background:var(--surface-muted);border-color:var(--border-strong)}.mobile-paper-sheet-body{display:grid;overflow:hidden;padding:8px;background:#e7ece6}.mobile-paper-sheet-body iframe{width:100%;height:100%;border:1px solid rgba(18,63,54,.1);border-radius:8px;display:block;background:#fff}.paper-action-bar{grid-template-columns:1fr}.paper-page-switch{grid-template-columns:1fr auto 1fr}.paper-page-switch button{padding:0 8px}.upload-strip input[type=file]{min-width:0;max-width:100%}.history-select-row{grid-template-columns:auto minmax(0,1fr);gap:6px 10px;min-height:68px;padding:12px;border-color:#123f3624;border-radius:8px;background:#fffdf7d1;align-items:center}.history-select-row .flow-status{grid-column:1}.history-select-row strong,.history-select-row small{grid-column:2}.history-select-row small{color:var(--text-muted)}.history-select-row.selected{border-color:var(--green);background:var(--green-soft)}.history-select-row strong,.history-select-row div>span{white-space:normal}.modal-backdrop{align-items:end;padding:6px}.modal-panel,.extract-profile-dialog,.profile-dialog,.settings-dialog,.contact-dialog{width:100%;max-height:calc(100dvh - 12px);border-radius:8px;padding:10px}.modal-head{display:grid;grid-template-columns:minmax(0,1fr) auto}.modal-actions button,.modal-actions .button-link,.result-actions button,.artifact-links a,.upload-file-actions button,.upload-file-actions .button-link,.upload-strip>button{width:100%}.contact-qr-block{grid-template-columns:1fr;text-align:left}.contact-qr-image{width:min(220px,100%);justify-self:center}.grading-row{gap:7px}.global-heatmap-button,.contact-open-button,.profile-open-button,.heatmap-launch-button,.header-heatmap-button,.app-title-button{min-height:44px}.subtle-icon-button{width:44px;min-height:44px}.paper-mode-switch button,.duration-option,.paper-page-switch button{min-height:44px}}@media(max-width:420px){.app-shell{padding:0 0 calc(72px + env(safe-area-inset-bottom))}.panel{padding:10px}.stats-grid,.stats-grid.compact,.progress-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.duration-options,.knowledge-view-tabs,.paper-page-switch{grid-template-columns:1fr}.paper-page-switch span{text-align:center}.paper-preview-frame{display:none}.heatmap-canvas-shell{min-height:360px}}.setup-wizard{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:40px 24px;background:#eef3ef}.setup-shell{width:100%;max-width:1120px;display:flex;flex-direction:column}.setup-card{background:var(--surface);border:1px solid rgba(185,198,190,.72);border-radius:8px;box-shadow:0 16px 42px #17201c17;padding:32px}.setup-body{display:grid;grid-template-columns:minmax(380px,460px) minmax(540px,620px);gap:20px;align-items:stretch;justify-content:center}.setup-origin-card{display:flex;flex-direction:column;gap:16px;background:#fffdf8}.setup-origin-copy{display:flex;flex-direction:column;align-items:stretch;gap:14px}.setup-kicker{width:fit-content;border:1px solid rgba(31,100,85,.2);border-radius:999px;background:#dcece58a;color:var(--green-dark);font-size:.76rem;font-weight:700;line-height:1;padding:6px 10px}.setup-origin-card h2{margin:0;font-size:1.56rem;line-height:1.2;color:var(--green-dark);text-align:center}.setup-origin-card p{margin:0;color:#26342d;font-size:.96rem;line-height:1.72;text-align:left}.setup-origin-points{display:grid;gap:8px;padding:12px 0;border-top:1px solid rgba(31,100,85,.12);border-bottom:1px solid rgba(31,100,85,.12)}.setup-origin-points div{display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:baseline}.setup-origin-points strong{color:var(--green-dark);font-size:.9rem;line-height:1.4}.setup-origin-points span{color:var(--text-soft);font-size:.88rem;line-height:1.5}.contact-qr-block{display:flex;flex-direction:row;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(31,100,85,.14);border-radius:8px;background:#f4f7f2;text-align:left}.contact-qr-block.compact{margin-top:auto;flex-direction:column;align-items:center;text-align:center}.contact-qr-image{width:70px;max-width:100%;max-height:88px;object-fit:contain;padding:5px;border:1px solid rgba(31,100,85,.22);border-radius:8px;background:#fff}.contact-qr-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.contact-qr-copy strong{color:var(--green-dark);font-size:.88rem}.contact-qr-copy p{margin:0;color:var(--text-soft);font-size:.79rem;line-height:1.45}.contact-qr-block.compact .contact-qr-image{width:188px;max-height:none}.contact-qr-block.compact .contact-qr-copy p{text-align:center}.contact-dialog{max-width:380px}.contact-dialog .contact-qr-block{flex-direction:column;padding-top:0;border-top:0;text-align:center}.contact-dialog .contact-qr-image{width:min(260px,100%);max-height:none}.setup-config-card{display:flex;flex-direction:column;gap:22px;min-width:0}.setup-inline-contact{margin-top:0}.setup-section-title{margin:0 0 12px;font-size:1.04rem;font-weight:700;color:var(--green);padding-bottom:8px;border-bottom:1px solid rgba(31,100,85,.16)}.setup-section{display:flex;flex-direction:column;gap:12px}.setup-config-card .setup-section:last-of-type{padding-bottom:4px}.setup-card .profile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.priority-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.priority-option{border:1px solid rgba(185,198,190,.78);border-radius:8px;background:#fbfcf8;padding:16px;min-height:108px;align-items:flex-start;text-align:left;gap:8px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.priority-option input{width:auto;min-height:0;margin:2px 0 0}.priority-option strong{font-size:1rem;color:var(--green-dark)}.priority-option span{color:var(--text-soft);font-size:.9rem;line-height:1.55}.priority-option.selected{border-color:var(--green);background:#dcece5d6;box-shadow:inset 0 0 0 1px #1f64551a}.priority-option.disabled{border-color:#b9c6be94;background:#f0f2ef;color:#7b847d;cursor:not-allowed;box-shadow:none}.priority-option.disabled strong,.priority-option.disabled span{color:#7b847d}.priority-option.disabled input{cursor:not-allowed}.priority-option em{display:inline-flex;align-items:center;min-height:22px;margin-left:6px;padding:1px 7px;border:1px solid rgba(115,128,119,.36);border-radius:999px;color:#66736a;background:#ffffffa3;font-size:.74rem;font-style:normal;font-weight:700;vertical-align:1px}.setup-card label{display:flex;flex-direction:column;gap:4px}.setup-card .field-label{font-size:.85rem;font-weight:700;color:var(--text-soft)}.setup-card input,.setup-card textarea{border:1px solid rgba(185,198,190,.84);border-radius:6px;min-height:44px;padding:10px 12px;font-size:.95rem;background:#f8faf6;color:inherit;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.setup-card input:focus,.setup-card textarea:focus{border-color:var(--green);outline:none;background:var(--surface)}.setup-card textarea{min-height:64px;resize:vertical}.setup-hint{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.5}.setup-hint code{background:var(--green-soft);padding:1px 5px;border-radius:4px;font-size:.8rem}.setup-card .setup-consent{flex-direction:row;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid rgba(31,100,85,.2);border-radius:8px;background:#fbfcf8;color:#33443a;font-size:.9rem;line-height:1.62}.setup-card .setup-consent.checked{border-color:#1f645580;background:var(--green-soft);color:#17201c}.setup-card .setup-consent input{width:19px;min-height:19px;margin:3px 0 0;padding:0;flex:0 0 auto;accent-color:var(--green)}.setup-actions{display:flex;flex-direction:column;align-items:center;gap:10px;justify-content:center;margin-top:2px;padding-top:18px;border-top:1px solid rgba(31,100,85,.12)}.setup-mobile-actions{display:none}.setup-submit{min-width:168px;min-height:46px;padding:10px 34px;font-size:1rem;font-weight:600}@media(max-width:980px){.setup-wizard{align-items:flex-start;padding:28px 18px}.setup-body{grid-template-columns:1fr;max-width:680px;margin:0 auto}}@media(max-width:520px){.setup-wizard{padding:16px}.contact-qr-block{align-items:center}.contact-qr-image{width:86px}.setup-card .profile-form-grid,.priority-choice{grid-template-columns:1fr}.setup-card{padding:24px 18px}.setup-origin-card h2{font-size:1.28rem}.setup-origin-card p{font-size:.94rem}.setup-origin-points div{grid-template-columns:1fr;gap:2px}.setup-submit{width:100%}}@media(max-width:760px){.setup-wizard{align-items:flex-start;min-height:100dvh;padding:10px}.setup-body{width:100%;max-width:none;gap:10px}.setup-shell.setup-step-consent .setup-config-card,.setup-shell.setup-step-config .setup-origin-card{display:none}.setup-card{padding:16px;box-shadow:none}.setup-origin-card h2{text-align:left}.setup-card .profile-form-grid,.priority-choice{grid-template-columns:1fr}.priority-option{min-height:0;padding:14px}.contact-qr-block,.contact-dialog .contact-qr-block{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center}.contact-qr-image,.contact-dialog .contact-qr-image{width:min(220px,100%);max-height:none}.setup-actions{align-items:stretch}.setup-mobile-actions{display:grid;grid-template-columns:1fr;margin-top:auto;padding-top:8px}.setup-submit{width:100%}}
