:root{color-scheme:light;--bg: #ffffff;--section-light: #eef4fb;--panel: linear-gradient(180deg, #1c1e54 0%, #0d253d 100%);--panel-border: rgba(185, 185, 249, .22);--ink: #061b31;--ink-on-dark: #ffffff;--muted: #64748d;--muted-on-dark: rgba(255, 255, 255, .76);--accent: #533afd;--accent-bright: #f96bee;--accent-hover: #4434d4;--surface: #ffffff;--surface-soft: rgba(255, 255, 255, .08);--surface-soft-strong: rgba(255, 255, 255, .14);--border-soft: #e5edf5;--border-accent: #b9b9f9;--paper: #ffffff;--line: #1d1d1f;--shadow: rgba(50, 50, 93, .25) 0px 30px 45px -30px, rgba(0, 0, 0, .1) 0px 18px 36px -18px;font-family:sohne-var,SF Pro Display,Helvetica Neue,Helvetica,Arial,sans-serif;font-feature-settings:"ss01" 1;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-width:1200px;min-height:100vh;background:var(--bg)}button,input{font:inherit}.app-shell{display:grid;grid-template-columns:360px minmax(0,1fr);min-height:100vh}.control-panel{position:sticky;top:0;height:100vh;overflow-y:auto;padding:28px 24px 40px;background:var(--panel);-webkit-backdrop-filter:saturate(160%) blur(16px);backdrop-filter:saturate(160%) blur(16px);border-right:1px solid var(--panel-border);color:var(--ink-on-dark);box-shadow:#03032740 0 14px 21px -14px,#0000001a 0 8px 17px -8px}.panel-header h1,.preview-header h2,.worksheet-header h1{margin:0;font-weight:600}.panel-header h1{line-height:1.07;letter-spacing:-.06rem;font-weight:300}.panel-copy{color:var(--muted-on-dark);line-height:1.4;font-size:1rem;font-weight:300}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--accent-bright);font-weight:400}.control-group{margin-top:22px;padding:18px;border-radius:6px;background:var(--surface-soft);border:1px solid rgba(255,255,255,.08)}.control-group h2{margin:0 0 12px;font-size:1.02rem;font-weight:400;letter-spacing:-.02em}.group-title-row,.toggle-row,.action-row,.preview-header,.worksheet-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.grade-grid,.segmented{display:flex;flex-wrap:wrap;gap:8px}.chip,.primary-button,.secondary-button{border:1px solid transparent;border-radius:980px;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.chip{padding:8px 14px;background:transparent;border-color:var(--border-accent);color:var(--ink-on-dark);border-radius:4px}.chip.active{background:var(--accent);color:#fff;border-color:transparent}.switch-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;min-width:0;background:#ffffff14;border:1px solid rgba(185,185,249,.22);border-radius:999px;box-shadow:inset 0 1px #ffffff0d}.switch-tab{border:0;border-radius:999px;padding:9px 14px;background:transparent;color:#ffffffbd;cursor:pointer;white-space:nowrap;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.switch-tab.active{background:linear-gradient(180deg,#fff,#eef4ff);color:var(--ink);box-shadow:#0713292e 0 10px 18px -12px,inset 0 1px #ffffffb8}.switch-tab:hover,.chip:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.chapter-list{display:grid;gap:10px}.chapter-card{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:6px;border:1px solid rgba(185,185,249,.18);background:#ffffff08}.chapter-card.active{border-color:var(--border-accent);background:#533afd1f}.chapter-card input{margin-top:4px}.chapter-meta{display:flex;flex-direction:column;gap:4px}.chapter-meta small,.hint,.hint-block,.preview-header p{color:inherit;opacity:.72}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.difficulty-panel{display:grid;gap:10px}.difficulty-slider{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:8px;border-radius:999px;background:linear-gradient(90deg,#ffffff6b,#f96bee9e,#533afde6);outline:none}.difficulty-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.95);background:#fff;box-shadow:#07132959 0 6px 16px -4px;cursor:pointer}.difficulty-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.95);background:#fff;box-shadow:#07132959 0 6px 16px -4px;cursor:pointer}.difficulty-scale{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.84rem;opacity:.78}.setting-list{display:grid;gap:10px}.setting-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 14px 14px 16px;border-radius:10px;border:1px solid rgba(185,185,249,.18);background:linear-gradient(180deg,#ffffff0d,#ffffff05);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.setting-card:hover{transform:translateY(-1px);border-color:#b9b9f959}.setting-card.active{border-color:#f96bee6b;background:linear-gradient(180deg,#f96bee1f,#533afd1f);box-shadow:inset 0 0 0 1px #ffffff0f}.setting-copy{display:grid;gap:4px;min-width:0}.setting-copy strong{font-size:.98rem;font-weight:500}.setting-copy small{color:inherit;opacity:.72;line-height:1.35}.setting-control{position:relative;flex:0 0 auto;display:inline-flex;align-items:center}.setting-control input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.setting-switch{width:44px;height:26px;border-radius:999px;background:#ffffff29;box-shadow:inset 0 1px 2px #0000001f;transition:background .18s ease,border-color .18s ease}.setting-switch:after{content:"";position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:#0713294d 0 4px 10px -4px;transition:transform .18s ease}.setting-control input:checked+.setting-switch{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-bright) 100%);border-color:transparent}.setting-control input:checked+.setting-switch:after{transform:translate(18px)}.setting-control input:focus-visible+.setting-switch{outline:2px solid rgba(255,255,255,.8);outline-offset:2px}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metrics-grid label,.toggle-row{display:flex;flex-direction:column;gap:6px}.metrics-grid input{width:100%;border:1px solid var(--border-soft);border-radius:4px;padding:10px 12px;background:#fff;color:var(--ink);box-shadow:#1717170f 0 3px 6px}.toggle-row{flex-direction:row;align-items:center}.primary-button,.secondary-button{padding:10px 16px;border-radius:4px;font-weight:400}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-hover)}.secondary-button{background:transparent;border-color:#b9b9f9a6;color:var(--ink-on-dark)}.status-card{margin:0 0 8px;font-weight:600}.error-text{margin:10px 0 0;color:#ff9f0a}.preview-shell{padding:40px 32px 64px;background:radial-gradient(circle at 0% 0%,rgba(249,107,238,.16),transparent 26%),radial-gradient(circle at 100% 10%,rgba(83,58,253,.1),transparent 28%),linear-gradient(180deg,#ffffff 0%,var(--section-light) 100%)}.preview-header{max-width:1080px;margin:0 auto 18px;color:var(--ink)}.preview-header h2{line-height:1.12;letter-spacing:-.06rem;font-weight:300}.preview-header p{color:var(--muted);opacity:1}.page-stack{display:grid;gap:28px;max-width:1080px;margin:0 auto}.worksheet-page{width:210mm;min-height:297mm;padding:16mm 14mm 14mm;margin:0 auto;background:var(--paper);border-radius:8px;box-shadow:var(--shadow);break-after:page;display:flex;flex-direction:column}.worksheet-header{margin-bottom:18px;text-align:center}.worksheet-header h2{margin-bottom:10px;line-height:1.07;letter-spacing:-.02em}.worksheet-meta{justify-content:center;font-size:.88rem;color:var(--muted);gap:18px}.meta-writing{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.meta-line{display:inline-block;border-bottom:1.5px solid rgba(29,29,31,.5);height:.95em}.meta-page{flex:auto;min-width:4.5rem;text-align:center}.date-line{width:10em}.score-line{width:5em}.problem-rows{display:grid;gap:var(--problem-row-gap, 18px);flex:1 1 auto;min-height:0}.problem-row{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;min-height:0}.worksheet-page[data-layout=vertical] .problem-row{grid-template-columns:10px minmax(0,1fr);gap:4px}.row-index{color:#1d1d1f6b;font-size:.72rem;line-height:1;display:flex;align-items:center;justify-content:flex-end;padding-top:.72rem;font-family:SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif}.problem-grid{display:grid;gap:var(--problem-row-gap, 18px) var(--problem-col-gap, 16px);align-items:end}.worksheet-footer{margin-top:10px;display:flex;justify-content:flex-end;font-size:.82rem;color:var(--muted)}.problem-card{color:var(--ink);font-family:SF Mono,SFMono-Regular,Menlo,Roboto Mono,monospace;font-variant-numeric:tabular-nums lining-nums;display:grid;justify-items:start;position:relative;width:100%}.problem-card.with-difficulty-bar{padding:6px 8px 4px;border-radius:8px;background:linear-gradient(90deg,rgba(83,58,253,.18) 0,rgba(249,107,238,.14) var(--difficulty-fill, 0%),rgba(83,58,253,.02) var(--difficulty-fill, 0%),rgba(83,58,253,.02) 100%);box-shadow:inset 0 0 0 1px #533afd0f}.problem-card.horizontal{font-size:var(--problem-font-size, 1.55rem);line-height:var(--problem-line-height, 1.85)}.problem-card.vertical{align-self:end;padding-right:2rem}.horizontal-problem{display:grid;grid-template-columns:repeat(7,max-content);align-items:end;justify-content:start;column-gap:.18em;min-height:1.45em}.problem-expression{display:contents;min-width:100%}.expr-cell{text-align:right;white-space:nowrap;min-width:0}.expr-cell.operator,.expr-cell.equal{text-align:center}.expr-cell.answer{text-align:left}.inline-answer{color:var(--accent);font-size:.88rem;font-family:SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif}.filled-answer{color:var(--accent)}.fraction{display:inline-grid;grid-template-rows:auto 1px auto;align-items:center;justify-items:center;vertical-align:middle;min-width:1.4em;margin:0 .04em;line-height:1}.fraction-top,.fraction-bottom{display:block;padding:0 .14em;font-size:.72em}.fraction-line{width:100%;border-top:1.5px solid currentColor;transform:translateY(-.02em)}.vertical-problem{min-width:7.4ch;display:grid;justify-items:end;gap:4px;font-size:var(--problem-font-size, 2rem);line-height:var(--problem-line-height, 1.1);align-content:end}.division-problem{min-width:7.8ch;display:grid;justify-items:end;gap:4px;font-size:var(--problem-font-size, 2rem);line-height:var(--problem-line-height, 1.1);align-content:end}.division-answer{width:100%;min-height:1.1em;display:flex;justify-content:flex-end;padding-right:.25ch}.division-body{width:100%;display:grid;grid-template-columns:auto .72ch minmax(3.8ch,auto);align-items:start;justify-content:end;column-gap:0}.division-divisor,.division-dividend{min-height:1.2em;display:flex;align-items:flex-start}.division-divisor{justify-content:flex-end;padding-right:.3ch}.division-dividend{justify-content:flex-start;border-top:1px solid var(--line);padding-top:.08em;padding-left:.28ch;min-width:3.8ch}.division-bracket{width:.72ch;min-height:1.28em;border-right:1px solid var(--line);border-bottom-right-radius:.9em;transform:skewY(-10deg)}.vertical-row{width:100%;display:grid;grid-template-columns:1.2ch minmax(3.8ch,auto);justify-content:end;text-align:right;min-height:1.2em;align-items:end}.vertical-row.bottom{gap:6px}.vertical-row.result{padding-top:6px;min-height:1.3em;gap:.3ch}.vertical-line{width:60%;border-top:1px solid var(--line)}.blank-slot{display:inline-block;min-width:2.4ch;min-height:1em}.inline-slot{min-width:3.8ch;vertical-align:baseline}.result-slot{min-width:3.2ch}.inline-answer-fill{display:inline-block;min-width:3.8ch}.equals-mark{font-size:.9em}.operator.placeholder{visibility:hidden}@media (max-width: 1280px){body{min-width:0}.app-shell{grid-template-columns:1fr}.control-panel{position:static;height:auto}.preview-shell{overflow-x:auto}}@page{size:A4 portrait;margin:10mm}@media print{body{background:#fff}.app-shell{display:block}.control-panel,.preview-header{display:none}.preview-shell{padding:0;background:#fff}.page-stack{gap:0}.worksheet-page{width:auto;min-height:277mm;margin:0;padding:0;border-radius:0;box-shadow:none;box-sizing:border-box}.worksheet-page[data-layout=horizontal][data-density=compact]{--problem-font-size: .74rem;--problem-line-height: .86;--problem-row-gap: 0px;--problem-col-gap: 3px}.worksheet-page[data-layout=horizontal][data-density=normal]{--problem-font-size: 1.02rem;--problem-line-height: 1.18;--problem-row-gap: 8px;--problem-col-gap: 12px}.worksheet-page[data-layout=vertical][data-density=compact]{--problem-font-size: .98rem;--problem-line-height: .92;--problem-row-gap: 1px;--problem-col-gap: 6px}.worksheet-page[data-layout=vertical][data-density=normal]{--problem-font-size: 1.72rem;--problem-line-height: 1.06;--problem-row-gap: 10px;--problem-col-gap: 12px}.worksheet-header{margin-bottom:1px}.worksheet-header h1{font-size:1.12rem;margin-bottom:0}.worksheet-meta{font-size:.54rem;gap:6px}.meta-line{height:.54em}.score-line{width:4.8em}.worksheet-meta .meta-writing:first-child .meta-line{width:8.6em}.problem-row{grid-template-columns:14px minmax(0,1fr);gap:1px}.worksheet-page[data-layout=vertical] .problem-row{grid-template-columns:8px minmax(0,1fr);gap:1px}.row-index{font-size:.42rem;padding-top:.18rem}.horizontal-problem{min-height:.8em;column-gap:.04em}.worksheet-page[data-layout=vertical][data-density=compact] .vertical-problem{min-width:5.6ch;gap:1px}.problem-card.vertical{padding-right:2rem}.worksheet-page[data-layout=vertical][data-density=compact] .vertical-row{grid-template-columns:.9ch minmax(2.6ch,auto);min-height:.82em}.worksheet-page[data-layout=vertical][data-density=compact] .vertical-row.bottom{gap:2px}.worksheet-page[data-layout=vertical][data-density=compact] .vertical-row.result{padding-top:1px;min-height:.9em;gap:.16ch}.worksheet-page[data-layout=vertical][data-density=compact] .vertical-line{width:54%;border-top-width:1px}.worksheet-page[data-layout=vertical][data-density=compact] .result-slot{min-width:2ch}.worksheet-page[data-layout=vertical][data-density=compact] .blank-slot{min-width:.9ch;min-height:.54em}.inline-slot,.inline-answer-fill{min-width:1.9ch}.blank-slot{min-width:1.1ch;min-height:.62em}.fraction{min-width:1em;margin:0 .02em}.fraction-top,.fraction-bottom{font-size:.62em;padding:0 .08em}.fraction-line{border-top-width:1px}.vertical-row{grid-template-columns:1ch minmax(3.1ch,auto)}.vertical-line{border-top-width:1.5px}.worksheet-footer{margin-top:0;font-size:.48rem}}
