:root{--bg:#f5f7fb;--panel:#ffffff;--panel-strong:#ffffff;--surface-soft:#f1f4f9;--surface-softer:#f8fafc;--ink:#0f172a;--ink-soft:#1e293b;--muted:#64748b;--muted-strong:#475569;--line:#e4e8ef;--line-strong:#d5dbe5;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:rgba(37,99,235,0.1);--success:#0f9d75;--success-soft:rgba(15,157,117,0.12);--warning:#b8590d;--warning-soft:rgba(184,89,13,0.12);--danger:#b42318;--danger-soft:rgba(180,35,24,0.1);--shadow-xs:0 1px 2px rgba(15,23,42,0.04);--shadow-sm:0 1px 2px rgba(15,23,42,0.04),0 2px 4px rgba(15,23,42,0.03);--shadow:0 1px 2px rgba(15,23,42,0.04),0 10px 24px rgba(15,23,42,0.06);--radius-xs:6px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--ring:0 0 0 3px var(--accent-soft);--control-height:40px;--control-height-lg:44px}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{color:var(--ink);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.015em}.shell{max-width:1120px;margin:0 auto;padding:48px 24px 72px}.hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:36px 36px 32px}.eyebrow{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--radius-xs);background:var(--accent-soft);color:var(--accent-strong);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.title{margin:18px 0 12px;font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.15;letter-spacing:-.02em;font-weight:700}.subtitle{max-width:68ch;margin:0;color:var(--muted);font-size:.98rem;line-height:1.65}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:16px;gap:16px;margin-top:28px}.card{padding:22px;border-radius:var(--radius);background:var(--panel-strong);border:1px solid var(--line);box-shadow:var(--shadow-xs)}.card h3{margin:0 0 8px;font-size:1rem;font-weight:600}.card p,.muted{color:var(--muted);font-size:.94rem;line-height:1.6;margin:0}.stack{flex-direction:column;gap:20px}.nav,.stack{display:flex}.nav{flex-wrap:wrap;gap:10px;margin:24px 0 0}.nav a{display:inline-flex;align-items:center;height:var(--control-height);padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);font-size:.92rem;font-weight:500;transition:border-color .15s ease,background .15s ease,color .15s ease}.nav a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.admin-shell{display:grid;grid-template-columns:264px minmax(0,1fr);grid-gap:28px;gap:28px;max-width:1320px;margin:0 auto;padding:32px 24px 64px}.admin-sidebar{display:flex;flex-direction:column;gap:16px;position:-webkit-sticky;position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow-y:auto;padding-right:2px}.admin-inline-card,.admin-login-card,.admin-panel,.admin-sidebar-panel,.admin-stat-card,.admin-subject-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.admin-panel,.admin-sidebar-panel,.admin-subject-card{padding:22px 22px 20px}.admin-sidebar-panel{display:flex;flex-direction:column;gap:10px}.admin-sidebar-panel .muted{font-size:.88rem;line-height:1.55}.admin-account-card{gap:8px}.admin-account-card strong{font-size:.98rem;font-weight:600;word-break:break-all}.admin-account-card .muted{font-size:.82rem;line-height:1.55}.admin-account-card form{margin-top:6px}.admin-main{display:flex;flex-direction:column;gap:24px;min-width:0}.admin-nav{display:grid;grid-gap:4px;gap:4px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.admin-nav-link{display:flex;align-items:center;height:38px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--ink-soft);font-size:.92rem;font-weight:500;transition:background .15s ease,color .15s ease}.admin-nav-link:hover{background:var(--surface-soft);color:var(--accent-strong)}.admin-inline-card{display:flex;align-items:center;min-height:52px;padding:12px 16px;border-radius:var(--radius-sm);font-size:.94rem;font-weight:500;color:var(--ink-soft);transition:border-color .15s ease,color .15s ease,background .15s ease}.admin-inline-card:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--surface-softer)}.admin-page-title,.admin-sidebar-title{margin:0;font-size:clamp(1.4rem,2.1vw,1.85rem);line-height:1.2;letter-spacing:-.02em;font-weight:700}.admin-sidebar-title{font-size:1.15rem}.admin-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:1px solid var(--line);padding-top:4px;padding-bottom:20px}.admin-page-header>div{display:flex;flex-direction:column;gap:8px}.admin-page-header .subtitle{margin-top:2px}.admin-content-grid,.admin-filter-grid,.admin-form-grid,.admin-link-grid,.admin-stats-grid,.admin-subject-grid{display:grid;grid-gap:16px;gap:16px}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.admin-content-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.admin-filter-grid,.admin-form-grid,.admin-link-grid,.admin-subject-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-stat-card{display:flex;flex-direction:column;gap:6px;padding:18px 20px;transition:border-color .15s ease,box-shadow .15s ease}.admin-stat-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.admin-account-label,.admin-field span,.admin-stat-card span{color:var(--muted);font-size:.82rem;font-weight:500;letter-spacing:.01em}.admin-account-label{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.admin-stat-card strong{font-size:1.85rem;letter-spacing:-.02em;font-weight:700;color:var(--ink);line-height:1.1}.admin-form{gap:18px}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-field>span{font-size:.84rem;font-weight:500;color:var(--muted-strong)}.admin-input{width:100%;min-height:var(--control-height);padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);font:inherit;font-size:.94rem;line-height:1.45;transition:border-color .15s ease,box-shadow .15s ease}.admin-input::placeholder{color:#94a3b8}.admin-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.admin-input:disabled{opacity:.6;cursor:not-allowed;background:var(--surface-soft)}.admin-button{display:inline-flex;justify-content:center;align-items:center;height:var(--control-height);padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;font-size:.92rem;font-weight:500;white-space:nowrap;transition:border-color .15s ease,background .15s ease,color .15s ease}.admin-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong);background:var(--surface-softer)}.admin-button:focus-visible{outline:none;box-shadow:var(--ring);border-color:var(--accent)}.admin-button:disabled{opacity:.6;cursor:wait}.admin-button-primary{background:var(--accent);color:#ffffff;border-color:var(--accent)}.admin-button-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#ffffff}.admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.admin-row-action{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.admin-checkbox,.admin-checklist-item{display:flex;gap:10px;align-items:flex-start;font-size:.94rem;line-height:1.45}.admin-checkbox input,.admin-checklist-item input{margin-top:3px;accent-color:var(--accent)}.admin-error,.admin-warning{margin:0;padding:11px 14px;border-radius:var(--radius-sm);font-size:.92rem;line-height:1.5}.admin-error{background:var(--danger-soft);border:1px solid rgba(180,35,24,.2);color:var(--danger)}.admin-warning{background:var(--warning-soft);border:1px solid rgba(184,89,13,.22);color:var(--warning)}.admin-inline-status{display:block;max-width:220px;font-size:.82rem;line-height:1.4}.admin-inline-status-success{color:var(--success)}.admin-inline-status-error{color:var(--danger)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:.94rem}.admin-table tr:last-child td{border-bottom:0}.admin-table th{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-softer);border-bottom:1px solid var(--line)}.admin-empty-cell,.admin-table th{color:var(--muted)}.admin-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--radius-xs);background:var(--surface-soft);color:var(--ink-soft);font-size:.78rem;font-weight:500;letter-spacing:.01em}.admin-badge-success{background:var(--success-soft);color:var(--success)}.admin-badge-muted{background:var(--surface-soft);color:var(--muted)}.admin-checklist{display:flex;flex-direction:column;gap:10px}.admin-checklist-item span{display:flex;flex-direction:column;gap:2px}.admin-checklist-item small{color:var(--muted);font-size:.84rem}.admin-subject-card{display:flex;flex-direction:column;gap:14px;padding:20px 22px}.admin-subject-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-subject-header h2{margin:0;font-size:1.05rem;font-weight:600}.admin-subsection-title{margin:0;font-size:.95rem;font-weight:600;color:var(--muted-strong)}.admin-question-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.admin-question-row-fill{flex:1 1 280px}.admin-question-prompt-cell{min-width:280px}.admin-textarea{min-height:120px;resize:vertical;line-height:1.55}.admin-rich-editor{display:flex;flex-direction:column;gap:8px}.admin-rich-editor-shell{overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);transition:border-color .15s ease,box-shadow .15s ease}.admin-rich-editor-shell:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.admin-rich-editor-loading{padding:16px;color:var(--muted);font-size:.94rem}.admin-rich-editor-shell .cke{border:0;box-shadow:none}.admin-rich-editor-shell .cke_top{background:var(--surface-softer);border-bottom:1px solid var(--line)}.admin-rich-editor-shell .cke_bottom{display:none}.rich-content{display:grid;grid-gap:12px;gap:12px;line-height:1.65;font-size:.96rem;color:var(--ink-soft)}.rich-content>:first-child{margin-top:0}.rich-content>:last-child{margin-bottom:0}.rich-content blockquote,.rich-content figure,.rich-content h2,.rich-content h3,.rich-content h4,.rich-content ol,.rich-content p,.rich-content table,.rich-content ul{margin:0}.rich-content blockquote{padding:4px 0 4px 14px;border-left:3px solid var(--accent);color:var(--muted-strong)}.rich-content img{max-width:100%;border-radius:var(--radius-sm)}.rich-content img:not([style*=height]):not([height]){height:auto}.rich-content table{width:100%;border-collapse:collapse}.rich-content td,.rich-content th{padding:10px 12px;border:1px solid var(--line)}.rich-content .math-node-inline{display:inline;padding:0 2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:inherit}.rich-content .math-node-inline .katex{font-family:KaTeX_Main,Times New Roman,serif}.rich-content .math-node-block{display:block;margin:12px 0;text-align:center}.rich-content .math-node-block .katex-display,.rich-content .math-tex .katex-display{margin:0}.admin-readonly{display:flex;align-items:center;min-height:var(--control-height);color:var(--ink);font-size:.94rem}.admin-section-title{margin:0 0 14px;font-size:1.05rem;font-weight:600}.admin-login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.admin-login-card{width:min(440px,100%);margin:0;display:grid;grid-gap:18px;gap:18px;padding:32px}.admin-login-card .eyebrow{justify-self:start}.admin-login-card .admin-page-title{font-size:1.5rem}.mini-root{gap:12px;min-height:100vh;padding-bottom:108px;background:var(--bg)}.mini-root,.mini-shell{display:flex;flex-direction:column}.mini-shell{max-width:680px;margin:0 auto;padding:20px 16px 0;gap:14px;width:100%}.mini-card,.mini-hero,.mini-package-card,.mini-question-card,.mini-sticky-bar{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-xs)}.mini-card,.mini-hero,.mini-question-card{padding:22px}.mini-hero-head,.mini-question-head,.mini-section-head,.mini-subject-head{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:28px}.mini-question-head h2,.mini-section-head h2,.mini-subject-head h2{margin:0;font-size:1.02rem;font-weight:600}.mini-hero .mini-hero-head+.mini-title{margin-top:14px}.mini-title{margin:0 0 8px;font-size:clamp(1.4rem,4.5vw,1.9rem);line-height:1.2;letter-spacing:-.02em;font-weight:700}.mini-dev-banner,.mini-empty,.mini-note,.mini-subtitle,.mini-test-row small{color:var(--muted);line-height:1.55;font-size:.92rem;margin:0}.mini-subtitle{font-size:.94rem}.mini-matching-grid,.mini-option-list,.mini-review-grid,.mini-section,.mini-stack,.mini-test-list{display:flex;flex-direction:column;gap:10px}.mini-section,.mini-stack{gap:14px}.mini-package-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.mini-link-button,.mini-package-card,.mini-primary-button,.mini-secondary-button,.mini-step,.mini-test-row{font:inherit;cursor:pointer}.mini-package-card{text-align:left;padding:18px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.mini-package-card:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-sm)}.mini-package-card:disabled{opacity:.6;cursor:not-allowed}.mini-package-card h3{margin:0;font-weight:600;font-size:1rem;letter-spacing:-.01em;color:var(--ink)}.mini-package-card p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.mini-package-card strong{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin-top:auto}.mini-chip,.mini-review-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--radius-xs);background:var(--surface-soft);color:var(--ink-soft);font-size:.76rem;font-weight:500;letter-spacing:.01em;white-space:nowrap}.mini-chip-success{background:var(--success-soft);color:var(--success)}.mini-chip-warn{background:var(--warning-soft);color:var(--warning)}.mini-link-button,.mini-primary-button,.mini-secondary-button{display:inline-flex;align-items:center;justify-content:center;height:var(--control-height);padding:0 16px;border-radius:var(--radius-sm);font-weight:500;font-size:.92rem;white-space:nowrap;transition:border-color .15s ease,background .15s ease,color .15s ease}.mini-link-button,.mini-secondary-button,.mini-select{border:1px solid var(--line-strong);background:var(--panel);color:var(--ink)}.mini-link-button{height:32px;padding:0 12px;font-size:.86rem;border-radius:var(--radius-sm);color:var(--muted-strong)}.mini-link-button:hover,.mini-secondary-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong);background:var(--surface-softer)}.mini-primary-button{border:1px solid var(--accent);background:var(--accent);color:#ffffff;height:var(--control-height-lg)}.mini-primary-button:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.mini-primary-button:disabled,.mini-secondary-button:disabled{opacity:.5;cursor:not-allowed}.mini-test-row{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;transition:border-color .15s ease,background .15s ease}.mini-test-row:hover:not(:disabled){border-color:var(--accent);background:var(--surface-softer)}.mini-test-row:disabled{opacity:.55;cursor:not-allowed}.mini-test-row>span:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.mini-test-row strong{font-size:.96rem;font-weight:600;color:var(--ink);letter-spacing:-.005em}.mini-test-row small{font-size:.8rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.mini-matching-row,.mini-option-row,.mini-review-row{display:flex;flex-direction:column;gap:8px}.mini-context-block{padding:14px 16px;border-radius:var(--radius-sm);background:var(--surface-softer);border:1px solid var(--line);font-size:.94rem}.mini-step-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));grid-gap:6px;gap:6px}.mini-step{aspect-ratio:1/1;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel);font-size:.86rem;font-weight:600;color:var(--ink-soft);transition:border-color .15s ease,background .15s ease,color .15s ease}.mini-step:hover:not(.mini-step-current){border-color:var(--accent);color:var(--accent-strong)}.mini-step-current{background:var(--accent);border-color:var(--accent);color:#ffffff}.mini-step-answered{background:var(--success-soft);border-color:rgba(15,157,117,.3);color:var(--success)}.mini-option-row{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);flex-direction:row;align-items:flex-start;gap:10px;transition:border-color .15s ease,background .15s ease;cursor:pointer;font-size:.94rem;line-height:1.5}.mini-option-row:hover{border-color:var(--accent);background:var(--surface-softer)}.mini-option-row input{margin:2px 0 0;accent-color:var(--accent);flex-shrink:0}.mini-option-correct,.mini-option-correct:hover{border-color:rgba(15,157,117,.4);background:var(--success-soft)}.mini-option-wrong,.mini-option-wrong:hover{border-color:rgba(180,35,24,.35);background:var(--danger-soft)}.mini-matching-row{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel);gap:8px}.mini-select{width:100%;min-height:var(--control-height);padding:8px 12px;border-radius:var(--radius-sm);font-size:.94rem;transition:border-color .15s ease,box-shadow .15s ease}.mini-select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.mini-review-row{padding:14px 16px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--line);font-size:.94rem}.mini-review-badge{background:var(--accent-soft);color:var(--accent-strong)}.mini-sticky-bar{position:-webkit-sticky;position:sticky;bottom:12px;max-width:680px;margin:0 auto;width:calc(100% - 32px);padding:10px;display:flex;gap:8px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 -1px 2px rgba(15,23,42,.04),0 12px 28px rgba(15,23,42,.08);z-index:10}.mini-sticky-bar>*{flex:1 1}.mini-sticky-bar .mini-primary-button,.mini-sticky-bar .mini-secondary-button,.mini-sticky-bar>*{height:var(--control-height-lg)}.mini-dev-banner,.mini-global-error{max-width:680px;margin:16px auto 0;width:calc(100% - 32px);padding:11px 14px;border-radius:var(--radius-sm);font-size:.92rem}.mini-dev-banner{background:var(--accent-soft);border:1px solid rgba(37,99,235,.2);color:var(--accent-strong)}.mini-global-error{background:var(--danger-soft);border:1px solid rgba(180,35,24,.2);color:var(--danger)}@media (max-width:980px){.admin-shell{grid-template-columns:1fr;gap:20px}.admin-sidebar{position:static;max-height:none;overflow:visible}}@media (max-width:720px){body{font-size:14.5px}.admin-page-header{flex-direction:column;align-items:stretch}.shell{padding:32px 16px 56px}.admin-shell{padding:24px 16px 48px}.hero{padding:26px 22px 24px}.mini-sticky-bar{flex-wrap:wrap;gap:8px}.mini-sticky-bar>*{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px)}.mini-sticky-bar .mini-primary-button{flex:1 1 100%}.mini-card,.mini-hero,.mini-question-card{padding:18px}}