.starter-setup{min-height:0;display:grid;place-items:center;background:#f4f4f5;padding:48px}.starter-setup__inner{width:min(880px,100%);display:grid;gap:28px}.starter-setup__section,.starter-setup__heading,.starter-setup__library,.starter-setup__book-main,.starter-setup__copy{display:grid}.starter-setup__section{gap:14px}.starter-setup__heading{gap:6px}.starter-setup__heading p,.starter-setup__heading h2{margin:0}.starter-setup__heading p,.starter-setup__library-bar,.starter-setup__book-main small,.starter-setup__book-status,.starter-setup__empty,.starter-setup__message{color:#71717a;font-size:12px;font-weight:700}.starter-setup__heading h2{color:#18181b;font-size:22px;font-weight:760}.starter-setup__library,.starter-setup__list{gap:10px}.starter-setup__library-bar,.starter-setup__book,.starter-setup__refresh,.starter-setup__icon,.starter-setup__book-status{display:flex;align-items:center}.starter-setup__library-bar,.starter-setup__book{justify-content:space-between}.starter-setup__refresh{width:32px;height:32px;justify-content:center;border:1px solid #d4d4d8;border-radius:8px;background:#fff;color:#52525b;cursor:pointer}.starter-setup__list{max-height:260px;display:grid;overflow:auto}.starter-setup__book,.starter-setup__option{min-width:0;border:1px solid #d4d4d8;border-radius:8px;background:#fff;color:#18181b;text-align:left;font:inherit;cursor:pointer}.starter-setup__book{width:100%;gap:16px;padding:14px 16px}.starter-setup__book:hover,.starter-setup__book:focus-visible,.starter-setup__refresh:hover,.starter-setup__refresh:focus-visible,.starter-setup__option:hover,.starter-setup__option:focus-visible{border-color:#0f766e;box-shadow:0 0 0 3px #14b8a629;outline:none}.starter-setup__book:disabled{cursor:wait;opacity:.72}.starter-setup__book-main,.starter-setup__copy{min-width:0;gap:4px}.starter-setup__book-main strong{overflow:hidden;font-size:15px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.starter-setup__book-status{min-width:44px;justify-content:flex-end;color:#0f766e;font-weight:650}.starter-setup__empty,.starter-setup__message{margin:0;padding:18px 0;font-weight:650}.starter-setup__message{color:#b91c1c}.starter-setup__options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.starter-setup__option{min-height:128px;display:grid;align-content:space-between;gap:18px;padding:18px}.starter-setup__icon{width:44px;height:44px;justify-content:center;border:1px solid #e4e4e7;border-radius:8px;background:#fafafa;color:#0f766e}.starter-setup__copy{gap:6px}.starter-setup__copy strong{font-size:16px;font-weight:760}.starter-setup__copy small{color:#71717a;font-size:12px;font-weight:620;line-height:1.45}@media (max-width: 720px){.starter-setup{padding:28px}.starter-setup__options{grid-template-columns:1fr}}.textbook-problem-inline-editor.svelte-o18w9p{height:100%;min-height:96px;overflow:auto;color:#18181b;font-size:11px;line-height:1.45}.textbook-problem-inline-editor .ContentEditable__root{min-height:100%;outline:none}.textbook-problem-inline-editor p{margin:0 0 4px}.textbook-problem-inline-editor table{max-width:100%}.textbook-problem-lexical-view.svelte-1e5soww{width:100%;max-width:100%;overflow:visible}.textbook-problem-lexical-view .ContentEditable__root{min-height:0;outline:none}.textbook-problem-lexical-view p{margin:0 0 4px}.textbook-problem-lexical-view table{max-width:100%}.object-preview{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%;height:100%;overflow:hidden}.object-preview__header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#0f766e;font-size:12px;font-weight:700}.object-preview__meta{color:#71717a;font-size:10px;font-weight:650;text-transform:uppercase}.object-preview__action{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid #99f6e4;border-radius:6px;background:#f0fdfa;color:#0f766e;cursor:pointer}.object-preview__drag{position:absolute;top:6px;right:34px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid #d4d4d8;border-radius:6px;background:#fff;color:#64748b;cursor:grab}.object-preview__drag:active{cursor:grabbing}.object-preview__action:disabled{border-color:#e4e4e7;background:#f4f4f5;color:#a1a1aa;cursor:not-allowed}.object-preview__body{margin:0;color:#27272a;font-size:11px;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.object-preview__empty{color:#a1a1aa;font-size:11px}.textbook-shape{box-sizing:border-box;width:100%;height:100%;opacity:var(--shape-opacity)}.textbook-shape--rectangle,.textbook-shape--ellipse{display:flex;align-items:center;justify-content:center;border:var(--shape-stroke-width) solid var(--shape-stroke);background:var(--shape-fill)}.textbook-shape--rectangle{border-radius:var(--shape-radius)}.textbook-shape--ellipse{border-radius:9999px}.textbook-shape__page-number{color:var(--shape-stroke);font-size:12px;font-weight:700;line-height:1;pointer-events:none;text-align:center;-webkit-user-select:none;user-select:none}.textbook-shape--line:not(svg){display:block;position:relative;background:transparent}.textbook-shape--line:not(svg):before{position:absolute;top:50%;right:0;left:0;height:var(--shape-stroke-width);background:var(--shape-stroke);content:"";transform:translateY(-50%)}.textbook-shape--path{display:block;overflow:visible;fill:none;stroke:var(--shape-stroke);stroke-linecap:round;stroke-linejoin:round;stroke-width:var(--shape-stroke-width)}.textbook-shape--path path{vector-effect:non-scaling-stroke}.object-preview__content.svelte-468b3o{flex:1;min-height:0;overflow:hidden;color:#27272a;font-size:11px;line-height:1.45}.object-preview--inline-editing.svelte-468b3o .object-preview__content:where(.svelte-468b3o){overflow:visible}.object-preview__content p{margin:0 0 4px}.textbook-problem-static-preview{max-height:100%;overflow:hidden}.textbook-problem-static-preview .editor-equation{display:inline-block;max-width:100%;vertical-align:-.15em}.textbook-problem-static-preview div.editor-equation{display:block;margin:2px 0 4px}.textbook-problem-static-preview .katex{font-size:1em}.textbook-problem-static-preview .textbook-static-image{display:flex;width:100%;margin:4px 0;align-items:flex-start}.textbook-problem-static-preview .textbook-static-image[data-alignment=center]{justify-content:center}.textbook-problem-static-preview .textbook-static-image[data-alignment=left]{justify-content:flex-start}.textbook-problem-static-preview .textbook-static-image[data-alignment=right]{justify-content:flex-end}.textbook-problem-static-preview .textbook-static-image .image-node-wrapper{display:inline-block;max-width:100%}.textbook-problem-static-preview .textbook-static-image__img{display:block;max-width:100%;object-fit:contain}.textbook-problem-static-preview .square-wrapper-node{margin:4px 0}.textbook-problem-static-preview .square-node{max-width:100%;font-size:1em;line-height:inherit;break-inside:avoid}.textbook-problem-static-preview .square-node--borderless{min-height:0;margin:2px 0 0;padding:0}.textbook-problem-static-preview .square-node p{margin:0 0 2px;break-inside:avoid}.textbook-problem-static-preview .square-col-break{display:block;height:0;margin:0;padding:0;break-before:column;pointer-events:none}.object-preview--text.svelte-1f2eelj{justify-content:center;overflow:visible}.object-preview--text.svelte-1f2eelj .object-preview__body:where(.svelte-1f2eelj){color:inherit;font:inherit;line-height:inherit}.text-object__editor-mount.svelte-1f2eelj{min-height:48px;border:1px dashed #14b8a6;border-radius:6px;background:#f0fdfa;color:#115e59;padding:8px;font-size:11px;line-height:1.45}.hidden-measurement.svelte-7b05nz{position:absolute;left:-100000px;top:0;width:0;height:0;overflow:hidden;pointer-events:none;visibility:hidden}.hidden-measurement__item.svelte-7b05nz{box-sizing:border-box;contain:layout style;padding:10px;border:1px solid transparent}.hidden-measurement__item.svelte-7b05nz .object-preview{height:auto;overflow:visible}.hidden-measurement__item.svelte-7b05nz .object-preview__content,.hidden-measurement__item.svelte-7b05nz .object-preview__body{flex:none;min-height:auto;overflow:visible}.hidden-measurement__item.svelte-7b05nz .object-preview__body{display:block;-webkit-line-clamp:initial}.hidden-measurement__item.svelte-7b05nz .object-preview__lexical{flex:none;overflow:visible}.hidden-measurement__item.svelte-7b05nz .textbook-problem-static-preview{max-height:none;overflow:visible}.render-stats.svelte-ta47jm{position:fixed;right:16px;bottom:16px;z-index:40;display:grid;gap:3px;max-width:320px;border:1px solid #27272a;border-radius:8px;background:#18181be6;color:#f4f4f5;padding:10px 12px;font-size:11px;line-height:1.35;box-shadow:0 16px 32px #0f172a38;pointer-events:none}.render-stats.svelte-ta47jm strong:where(.svelte-ta47jm){font-size:12px}.render-stats__issues.svelte-ta47jm{display:grid;gap:2px;color:#fde68a}.export-dialog-backdrop.svelte-m6r5us{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#0f172a47;padding:24px}.export-dialog-backdrop__dismiss.svelte-m6r5us{position:absolute;inset:0;border:0;background:transparent;cursor:default}.export-dialog.svelte-m6r5us{position:relative;width:min(760px,100%);max-height:min(720px,100%);display:grid;grid-template-rows:auto auto auto 1fr auto;margin:0;padding:0;border:1px solid #d4d4d8;border-radius:8px;background:#fff;box-shadow:0 24px 80px #0f172a3d;overflow:hidden}.export-dialog__header.svelte-m6r5us,.export-dialog__footer.svelte-m6r5us{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e4e4e7}.export-dialog__footer.svelte-m6r5us{justify-content:flex-end;gap:8px;border-top:1px solid #e4e4e7;border-bottom:0}.export-dialog.svelte-m6r5us h2:where(.svelte-m6r5us),.export-dialog.svelte-m6r5us p:where(.svelte-m6r5us){margin:0}.export-dialog.svelte-m6r5us h2:where(.svelte-m6r5us){font-size:16px}.export-dialog.svelte-m6r5us p:where(.svelte-m6r5us),.export-dialog.svelte-m6r5us span:where(.svelte-m6r5us){color:#71717a;font-size:12px}.export-dialog__icon-button.svelte-m6r5us,.export-dialog__button.svelte-m6r5us{border:1px solid #d4d4d8;border-radius:6px;background:#fff;color:#27272a;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.export-dialog__icon-button.svelte-m6r5us{width:32px;height:32px;font-size:18px}.export-dialog__button.svelte-m6r5us{min-width:76px;height:34px}.export-dialog__button--primary.svelte-m6r5us{border-color:#0f766e;background:#0f766e;color:#fff}.export-dialog__button.svelte-m6r5us:disabled{border-color:#d4d4d8;background:#e4e4e7;color:#71717a;cursor:not-allowed}.export-dialog__warnings.svelte-m6r5us{display:grid;gap:4px;background:#fffbeb;border-bottom:1px solid #fde68a;padding:10px 18px}.export-dialog__readiness.svelte-m6r5us{display:grid;gap:4px;border-bottom:1px solid #bae6fd;background:#f0f9ff;padding:10px 18px}.export-dialog__readiness.svelte-m6r5us p.error:where(.svelte-m6r5us){color:#b91c1c}.export-dialog__pages.svelte-m6r5us{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;padding:16px 18px}.export-dialog__page.svelte-m6r5us{display:grid;gap:8px}.export-dialog__page-thumb.svelte-m6r5us{position:relative;border:1px solid #d4d4d8;box-shadow:0 8px 24px #0f172a14}.export-dialog__page-thumb.svelte-m6r5us span:where(.svelte-m6r5us){position:absolute;right:8px;top:8px;color:#52525b;font-weight:700}.export-dialog__page-meta.svelte-m6r5us{display:grid;gap:2px}.topbar.svelte-7m95ws{display:grid;grid-template-columns:240px minmax(0,1fr) 390px;align-items:center;gap:12px;padding:5px 10px;border-bottom:1px solid var(--border);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand.svelte-7m95ws,.topbar__actions.svelte-7m95ws,.toolbar.svelte-7m95ws{display:flex;align-items:center}.brand.svelte-7m95ws{gap:10px;min-width:0}.brand__mark.svelte-7m95ws,.toolbar.svelte-7m95ws button:where(.svelte-7m95ws){display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:#3f3f46}.brand__mark.svelte-7m95ws{background:#ecfeff;color:#0f766e}.brand.svelte-7m95ws h1:where(.svelte-7m95ws){margin:0;font-size:12px;font-weight:650}.brand.svelte-7m95ws p:where(.svelte-7m95ws){margin:1px 0 0;color:var(--muted);font-size:11px}.toolbar.svelte-7m95ws{justify-content:center;gap:4px}button.svelte-7m95ws{font:inherit;cursor:pointer}.toolbar.svelte-7m95ws button.active:where(.svelte-7m95ws){border-color:#14b8a6;background:var(--accent-soft);color:#0f766e}.toolbar.svelte-7m95ws button:where(.svelte-7m95ws){position:relative}.toolbar.svelte-7m95ws kbd:where(.svelte-7m95ws){position:absolute;right:2px;bottom:1px;color:#71717a;font-family:inherit;font-size:8px;font-weight:700;line-height:1}.topbar__actions.svelte-7m95ws{justify-content:flex-end;gap:6px}.button.svelte-7m95ws{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 9px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:#27272a;font-size:12px;font-weight:600}.button--primary.svelte-7m95ws{border-color:#0f766e;background:#0f766e;color:#fff}.sync-status.svelte-7m95ws{color:var(--muted);font-size:11px;white-space:nowrap}.sync-status.ok.svelte-7m95ws{color:#0f766e}.sync-status.warning.svelte-7m95ws{color:#92400e}.sync-status.error.svelte-7m95ws{color:#dc2626}.sync-status.progress.svelte-7m95ws{color:#1d4ed8}@media (max-width: 1180px){.topbar.svelte-7m95ws{grid-template-columns:220px minmax(0,1fr) auto}}@media (max-width: 820px){.topbar.svelte-7m95ws{grid-template-columns:1fr}.toolbar.svelte-7m95ws,.topbar__actions.svelte-7m95ws{justify-content:flex-start;overflow-x:auto}}.panel-section{padding:12px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#27272a}.panel-heading h2{margin:0;font-size:13px;font-weight:650}.panel-heading p{margin:2px 0 0;color:var(--muted);font-size:11px}.panel-heading button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:#3f3f46}.template-list,.panel-list{display:flex;flex-direction:column;gap:6px}.template-list button,.page-row,.layer-row,.asset-row{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--card);color:#27272a;text-align:left;font:inherit;cursor:pointer}.template-list button,.layer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px}.template-list button.active,.page-row.active,.layer-row.active{border-color:#14b8a6;background:var(--accent-soft);color:#0f766e}.page-row,.asset-row{padding:9px 10px}.template-list small,.layer-row small{color:var(--muted);font-size:11px}.template-slots.svelte-1l1qo53{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 14px;color:#52525b;font-size:12px;font-weight:700}.template-slots.svelte-1l1qo53 div:where(.svelte-1l1qo53){display:grid;grid-template-columns:repeat(4,28px);gap:4px}.template-slots.svelte-1l1qo53 button:where(.svelte-1l1qo53){height:28px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#3f3f46;font:inherit;cursor:pointer}.template-slots.svelte-1l1qo53 button.active:where(.svelte-1l1qo53){border-color:#14b8a6;background:var(--accent-soft);color:#0f766e}.left-panel.svelte-phiwus{min-height:0;height:100%;border-right:1px solid var(--border);background:#fafafa;overflow:hidden}.panel-collapse.svelte-phiwus{display:flex;align-items:center;justify-content:center;width:calc(100% - 16px);height:30px;margin:8px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#52525b;font:inherit;cursor:pointer}.tabs.svelte-phiwus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px;border-bottom:1px solid var(--border)}.tabs.svelte-phiwus button:where(.svelte-phiwus){display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 9px;border:1px solid transparent;border-radius:8px;background:transparent;color:#52525b;font:inherit;font-size:12px;cursor:pointer}.left-panel--collapsed.svelte-phiwus .tabs:where(.svelte-phiwus){grid-template-columns:1fr;padding:8px}.left-panel--collapsed.svelte-phiwus .tabs:where(.svelte-phiwus) button:where(.svelte-phiwus){justify-content:center;padding:0}.tabs.svelte-phiwus button.active:where(.svelte-phiwus),.template-list button.active,.page-row.active,.layer-row.active{border-color:#14b8a6;background:var(--accent-soft);color:#0f766e}.canvas{position:relative;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(#e4e4e7 1px,transparent 1px),linear-gradient(90deg,#e4e4e7 1px,transparent 1px),#f4f4f5;background-size:24px 24px;touch-action:none}.canvas--hand{cursor:grab}.canvas__surface{position:relative;width:100%;height:100%;min-width:980px;min-height:1280px}.canvas__clear-layer{position:absolute;inset:0;border:0;background:transparent;cursor:default}.page-stage{position:absolute;top:0;left:0;transform-origin:0 0;transition:none;will-change:transform;pointer-events:none}.page-stage .page-shell{pointer-events:auto}@media (max-width: 820px){.canvas__surface{min-width:860px;padding:32px}}.section-chip.svelte-1hmxcm2,.problem-card.svelte-1hmxcm2 span:where(.svelte-1hmxcm2){border-radius:8px;font-size:12px;font-weight:700}.section-chip.svelte-1hmxcm2{width:fit-content;background:#dcfce7;color:#166534;padding:5px 9px}.problem-card.svelte-1hmxcm2{width:100%;min-height:118px;border:1px dashed #cbd5e1;border-radius:8px;padding:12px;background:#fff;color:#27272a}.problem-card--large.svelte-1hmxcm2{min-height:176px}.problem-card--note.svelte-1hmxcm2{border-style:solid;border-color:#fde68a;background:#fffbeb;min-height:148px}.problem-card.svelte-1hmxcm2 strong:where(.svelte-1hmxcm2){color:#15803d;margin-right:8px}.problem-card.svelte-1hmxcm2 span:where(.svelte-1hmxcm2){display:inline-flex;background:#ffedd5;color:#c2410c;padding:2px 6px;font-size:11px}.problem-card.svelte-1hmxcm2 p:where(.svelte-1hmxcm2){margin:12px 0 0;color:#52525b;font-size:13px;line-height:1.5}.flow-region.svelte-121q4b1{position:absolute;z-index:1;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;border:1px solid rgba(148,163,184,.42);border-radius:4px;background:transparent;padding:8px;overflow:hidden;text-align:left;font:inherit;cursor:pointer}.flow-region.active.svelte-121q4b1{border-color:#14b8a6;box-shadow:0 0 0 1px #14b8a640}.flow-region--note.svelte-121q4b1{border-color:#94a3b857}.flow-region--content.svelte-121q4b1{justify-content:flex-start}.flow-region--header.svelte-121q4b1,.flow-region--footer.svelte-121q4b1{justify-content:center;gap:0;border-color:transparent;padding:4px 10px}.flow-region--header.svelte-121q4b1:hover,.flow-region--header.svelte-121q4b1:focus-visible,.flow-region--footer.svelte-121q4b1:hover,.flow-region--footer.svelte-121q4b1:focus-visible{border-color:#94a3b880}.flow-region__label.svelte-121q4b1{display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;font-weight:650;color:#71717a}.flow-region--content.svelte-121q4b1 .flow-region__label:where(.svelte-121q4b1){justify-content:flex-start}.line-selection-box.svelte-dn1ujr{position:absolute;z-index:4;height:0;border-top:1px solid #14b8a6;box-shadow:0 0 0 1px #14b8a624;pointer-events:none;transform-origin:center}.line-selection-box__handle.svelte-dn1ujr{position:absolute;top:0;width:10px;height:10px;border:1px solid #0f766e;border-radius:999px;background:#fff;padding:0;transform:translate(-50%,-50%);pointer-events:auto}.line-selection-box__handle--start.svelte-dn1ujr{left:0;cursor:ew-resize}.line-selection-box__handle--middle.svelte-dn1ujr{left:50%;cursor:grab}.line-selection-box__handle--end.svelte-dn1ujr{left:100%;cursor:ew-resize}.line-selection-box__rotate.svelte-dn1ujr{position:absolute;top:-30px;left:50%;width:12px;height:12px;border:1px solid #0f766e;border-radius:999px;background:#fff;padding:0;cursor:grab;transform:translate(-50%,-50%);pointer-events:auto}.line-selection-box__rotate.svelte-dn1ujr:active,.line-selection-box__handle--middle.svelte-dn1ujr:active{cursor:grabbing}.problem-type-block.svelte-4b7p9m{box-sizing:border-box;display:flex;align-items:center;gap:7px;width:100%;height:100%;color:#18181b;font-family:Pretendard,system-ui,sans-serif}.problem-type-block__dot.svelte-4b7p9m{flex:0 0 auto;width:7px;height:7px;border-radius:999px;background:#0f766e}.problem-type-block.svelte-4b7p9m strong:where(.svelte-4b7p9m){flex:0 0 auto;color:#0f766e;font-size:12px;font-weight:800;line-height:1;white-space:nowrap}.problem-type-block__title.svelte-4b7p9m{min-width:0;overflow:hidden;font-size:13px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.object-layer{position:absolute;inset:0;z-index:2;pointer-events:none}.problem-leading-block-placement{position:absolute;box-sizing:border-box;pointer-events:none}.canvas-object{position:absolute;border:1px solid #cbd5e1;border-radius:8px;background:#ffffffeb;color:#27272a;padding:10px;text-align:left;font:inherit;cursor:pointer;pointer-events:auto;transform-origin:center;box-shadow:0 8px 20px #0f172a14}.canvas-object.active{border-color:#14b8a6;outline:2px solid rgba(20,184,166,.28)}.canvas-object--shape{border-color:transparent;background:transparent;padding:0;box-shadow:none;cursor:grab}.canvas-object--shape.active{border-color:transparent;outline:none}.canvas-object--shape:active{cursor:grabbing}.canvas-object--text{cursor:move}.canvas-object--text{box-sizing:border-box;border-color:transparent;border-radius:0;background:transparent;padding:0;overflow:visible;box-shadow:none}.canvas-object--text.active{border-color:transparent;outline:1px dashed rgba(20,184,166,.72);outline-offset:2px}.canvas-object--image{cursor:move}.canvas-object--solution{background:#f0fdf4eb}.canvas-object--image{background:#f5f3ffeb}.canvas-object--editing,.canvas-object--text.canvas-object--editing{border-color:#14b8a6;border-radius:4px;background:#fff;padding:4px;outline:none;box-shadow:0 4px 12px #0f172a1a}.canvas-object--drop-before:before,.canvas-object--drop-after:after{position:absolute;right:-2px;left:-2px;z-index:3;height:3px;border-radius:999px;background:#2563eb;content:"";pointer-events:none}.canvas-object--drop-before:before{top:-8px}.canvas-object--drop-after:after{bottom:-8px}.canvas-object-placeholder{position:absolute;border:1px solid rgba(20,184,166,.32);border-radius:6px;background:#14b8a61f;pointer-events:none;transform-origin:center}.path-selection-box.svelte-5dhupk{position:absolute;z-index:4;pointer-events:none;transform-origin:center}.path-selection-box__indicator.svelte-5dhupk{position:absolute;inset:0;fill:none;stroke:#14b8a6;stroke-linecap:round;stroke-linejoin:round;stroke-width:1;overflow:visible}.path-selection-box__indicator.svelte-5dhupk path:where(.svelte-5dhupk){vector-effect:non-scaling-stroke}.path-selection-box__control-line.svelte-5dhupk{stroke:#0f766e7a;stroke-dasharray:3 3;stroke-width:1;vector-effect:non-scaling-stroke}.path-selection-box__anchor.svelte-5dhupk,.path-selection-box__midpoint.svelte-5dhupk,.path-selection-box__rotate.svelte-5dhupk,.path-selection-box__control.svelte-5dhupk{position:absolute;padding:0;border:1px solid #0f766e;background:#fff;transform:translate(-50%,-50%);pointer-events:auto}.path-selection-box__anchor.svelte-5dhupk{width:10px;height:10px;border-radius:999px;cursor:grab}.path-selection-box__anchor.svelte-5dhupk:active{cursor:grabbing}.path-selection-box__anchor--selected.svelte-5dhupk{box-shadow:0 0 0 3px #14b8a629}.path-selection-box__midpoint.svelte-5dhupk{width:5px;height:5px;border-color:transparent;border-radius:999px;background:#0f766e;opacity:.58;cursor:copy}.path-selection-box__control.svelte-5dhupk{width:8px;height:8px;border-radius:2px;cursor:grab}.path-selection-box__control.svelte-5dhupk:active{cursor:grabbing}.path-selection-box__rotate.svelte-5dhupk{top:-30px;left:50%;width:12px;height:12px;border-radius:999px;cursor:grab}.path-selection-box__rotate.svelte-5dhupk:active{cursor:grabbing}.page-shell{position:absolute;color:inherit;text-align:left;font:inherit}.page-shell.active .page-frame{outline:2px solid #14b8a6;outline-offset:8px}.page-shell.row-active .page-frame{outline-style:dashed}.page-insert{position:absolute;z-index:5;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid #14b8a6;border-radius:999px;background:#fff;color:#0f766e;box-shadow:0 8px 18px #0f172a29;cursor:pointer}.page-insert:hover,.page-insert:focus-visible,.page-select-button:hover,.page-select-button:focus-visible,.page-group-select:hover,.page-group-select:focus-visible,.page-delete:hover,.page-delete:focus-visible{transform:none!important}.page-insert--top,.page-insert--bottom{left:calc(50% - 28px)}.page-insert--top{top:-78px}.page-insert--bottom{top:calc(100% + 24px)}.page-insert--right,.page-insert--left{top:calc(50% - 28px)}.page-insert--right{left:calc(100% + 24px)}.page-insert--left{right:calc(100% + 24px)}.page-select-button{position:absolute;top:-22px;right:-22px;z-index:7;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid #99f6e4;border-radius:999px;background:#f0fdfa;color:#0f766e;box-shadow:0 8px 18px #0f172a29;cursor:pointer}.page-select-button[aria-pressed=true]{border-color:#0f766e;background:#0f766e;color:#fff}.page-group-select{position:absolute;top:calc(50% + 36px);right:calc(100% + 24px);z-index:7;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid #99f6e4;border-radius:999px;background:#f0fdfa;color:#0f766e;box-shadow:0 8px 18px #0f172a29;cursor:pointer}.page-group-select[aria-pressed=true]{border-color:#0f766e;background:#0f766e;color:#fff}.page-delete{position:absolute;z-index:7;right:-18px;bottom:-18px;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #fecaca;border-radius:999px;background:#fff;color:#dc2626;box-shadow:0 8px 18px #0f172a24;cursor:pointer}.page-caption{position:absolute;top:-26px;left:0;border:0;background:transparent;color:#52525b;padding:0;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.page-frame{position:relative;border:0;background:#fff;box-shadow:0 0 0 1px #d4d4d8,0 16px 40px #0f172a24;overflow:hidden}.page-select-zone{position:absolute;inset:0;z-index:0;border:0;background:transparent;cursor:pointer}.repeat-region-handle{position:absolute;z-index:4;height:18px;border:1px solid rgba(148,163,184,.5);border-radius:3px;background:#fffffff0;color:#52525b;padding:0 5px;font:inherit;font-size:10px;font-weight:650;line-height:16px;opacity:0;cursor:pointer;transition:opacity .12s ease}.page-frame:hover .repeat-region-handle,.repeat-region-handle:hover,.repeat-region-handle:focus-visible,.repeat-region-handle.active{border-color:#14b8a6;color:#0f766e;opacity:1}.selection-box.svelte-qk1szx{position:absolute;z-index:4;border:1px solid #14b8a6;box-shadow:0 0 0 1px #14b8a63d;pointer-events:none}.selection-box__handle.svelte-qk1szx{position:absolute;width:10px;height:10px;border:1px solid #0f766e;border-radius:999px;background:#fff;padding:0;pointer-events:auto}.selection-box__rotate.svelte-qk1szx{position:absolute;top:-30px;left:50%;width:12px;height:12px;border:1px solid #0f766e;border-radius:999px;background:#fff;padding:0;cursor:grab;transform:translate(-50%,-50%);pointer-events:auto}.selection-box__rotate.svelte-qk1szx:active{cursor:grabbing}.selection-box__handle--nw.svelte-qk1szx,.selection-box__handle--n.svelte-qk1szx,.selection-box__handle--ne.svelte-qk1szx{top:0}.selection-box__handle--nw.svelte-qk1szx,.selection-box__handle--se.svelte-qk1szx{cursor:nwse-resize}.selection-box__handle--ne.svelte-qk1szx,.selection-box__handle--sw.svelte-qk1szx{cursor:nesw-resize}.selection-box__handle--n.svelte-qk1szx,.selection-box__handle--s.svelte-qk1szx{cursor:ns-resize}.selection-box__handle--e.svelte-qk1szx,.selection-box__handle--w.svelte-qk1szx{cursor:ew-resize}.selection-box__handle--e.svelte-qk1szx,.selection-box__handle--w.svelte-qk1szx{top:50%}.selection-box__handle--sw.svelte-qk1szx,.selection-box__handle--s.svelte-qk1szx,.selection-box__handle--se.svelte-qk1szx{top:100%}.selection-box__handle--nw.svelte-qk1szx,.selection-box__handle--w.svelte-qk1szx,.selection-box__handle--sw.svelte-qk1szx{left:0}.selection-box__handle--n.svelte-qk1szx,.selection-box__handle--s.svelte-qk1szx{left:50%}.selection-box__handle--ne.svelte-qk1szx,.selection-box__handle--e.svelte-qk1szx,.selection-box__handle--se.svelte-qk1szx{left:100%}.selection-box__handle--nw.svelte-qk1szx,.selection-box__handle--n.svelte-qk1szx,.selection-box__handle--ne.svelte-qk1szx,.selection-box__handle--e.svelte-qk1szx,.selection-box__handle--se.svelte-qk1szx,.selection-box__handle--s.svelte-qk1szx,.selection-box__handle--sw.svelte-qk1szx,.selection-box__handle--w.svelte-qk1szx{transform:translate(-50%,-50%)}.problem-ordering.svelte-1qfk9vm{grid-column:1 / -1;display:grid;gap:8px;padding-top:4px;border-top:1px solid var(--border)}.problem-ordering__heading.svelte-1qfk9vm h3:where(.svelte-1qfk9vm){margin:0;color:#27272a;font-size:12px;font-weight:700}.segmented.svelte-1qfk9vm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid var(--border);border-radius:8px;padding:3px;background:#fafafa}.segmented.svelte-1qfk9vm button:where(.svelte-1qfk9vm){min-height:30px;border:0;border-radius:6px;background:transparent;color:#64748b;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.segmented.svelte-1qfk9vm button.active:where(.svelte-1qfk9vm){background:#fff;color:#0f172a;box-shadow:0 1px 2px #0f172a14}.segmented.svelte-1qfk9vm button:where(.svelte-1qfk9vm):disabled{color:#cbd5e1;cursor:default}.rule-list.svelte-1qfk9vm{display:grid;gap:6px}.rule-list.svelte-1qfk9vm label:where(.svelte-1qfk9vm){justify-content:flex-start}.rule-list.svelte-1qfk9vm input:where(.svelte-1qfk9vm){width:14px;height:14px;min-width:14px;accent-color:#2563eb}.rule-list.svelte-1qfk9vm span:where(.svelte-1qfk9vm){color:#334155;font-size:11px;font-weight:700}.segmented--scope.svelte-1qfk9vm{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--card);padding:12px}.inspector-card .panel-heading{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;color:#27272a}.inspector-card .panel-heading h2,.inspector-card .panel-heading p{margin:0}.inspector-card .panel-heading h2{font-size:13px;font-weight:650}.inspector-card .panel-heading p{margin-top:3px;color:var(--muted);font-size:11px}.inspector-card label{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:#fafafa}.inspector-card label span{color:var(--muted);font-size:11px;font-weight:700}.inspector-card input,.inspector-card select{min-width:0;width:100%;border:0;background:transparent;color:#18181b;font:inherit;font-size:12px;outline:0}.inspector-card input:disabled,.inspector-card select:disabled{color:#a1a1aa}.inspector-card .label--wide{grid-column:1 / -1}.inspector-option-row{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:8px;background:#fafafa;padding:6px 8px}.inspector-option-row>span{color:var(--muted);font-size:11px;font-weight:700}.inspector-switch{position:relative;width:34px;height:20px;border:0;border-radius:999px;background:#d4d4d8;padding:0;cursor:pointer;transition:background .12s ease}.inspector-switch span{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:999px;background:#fff;transition:transform .12s ease}.inspector-switch.active{background:#14b8a6}.inspector-switch.active span{transform:translate(14px)}.inspector-switch:disabled{cursor:not-allowed;opacity:.56}.shape-insert-panel{display:grid;gap:10px;border:1px solid var(--border);border-radius:8px;background:var(--card);padding:12px}.shape-insert-panel__heading h3,.shape-insert-panel__heading p{margin:0}.shape-insert-panel__heading h3{color:#27272a;font-size:13px;font-weight:650}.shape-insert-panel__heading p{margin-top:3px;color:var(--muted);font-size:11px}.shape-insert-scope,.inspector-segmented{display:grid;flex:1 1 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid var(--border);border-radius:8px;background:#f4f4f5;padding:3px}.shape-insert-scope button,.inspector-segmented button{min-width:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:650;padding:6px 8px;cursor:pointer}.shape-insert-scope button.active,.inspector-segmented button.active{background:#fff;color:#0f766e;box-shadow:0 1px 2px #0f172a14}.shape-insert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shape-insert-button{display:grid;place-items:center;gap:6px;min-width:0;height:68px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#27272a;font:inherit;font-size:11px;font-weight:650;cursor:pointer}.shape-insert-button:hover{border-color:#14b8a6;background:#f0fdfa;color:#0f766e}.problem-copy-inspector.svelte-eei59m{min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--card)}.problem-copy-inspector__header.svelte-eei59m{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.problem-copy-inspector__header.svelte-eei59m h2:where(.svelte-eei59m){margin:0;color:#18181b;font-size:13px;font-weight:700}.problem-copy-inspector__header.svelte-eei59m span:where(.svelte-eei59m){min-width:0;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.problem-copy-inspector.svelte-eei59m .preview-panel{min-height:0}.problem-copy-inspector__static.svelte-eei59m{min-height:0;flex:1;padding:12px;overflow:hidden}.problem-copy-inspector__static.svelte-eei59m .object-preview{height:100%}.problem-copy-inspector__empty.svelte-eei59m{margin:auto;color:var(--muted);font-size:13px}.page-insert-list.svelte-12pflxb{display:flex;flex-direction:column;gap:8px}.page-insert-choice.svelte-12pflxb{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:54px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:#27272a;padding:10px;text-align:left;font:inherit;cursor:pointer}.page-insert-choice.svelte-12pflxb:hover{border-color:#14b8a6;background:#f8fffd}.page-insert-choice.svelte-12pflxb:focus-visible{outline:2px solid #14b8a6;outline-offset:2px}.page-insert-choice.svelte-12pflxb:disabled{cursor:default;opacity:.55}.page-insert-choice__icon.svelte-12pflxb{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--muted-bg);color:#0f766e}.page-insert-choice__text.svelte-12pflxb{display:flex;min-width:0;flex-direction:column;gap:2px}.page-insert-choice.svelte-12pflxb strong:where(.svelte-12pflxb){font-size:13px;font-weight:700}.page-insert-choice.svelte-12pflxb small:where(.svelte-12pflxb){color:var(--muted);font-size:11px}.folder-view-adapter.svelte-17j4p4w{min-height:360px;margin-bottom:12px;flex:1 1 auto;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.folder-view-adapter--compact.svelte-17j4p4w{flex:0 0 250px;min-height:250px}.folder-view-adapter.svelte-17j4p4w .folder-view{height:100%;min-height:360px;border:0;background:transparent}.folder-view-adapter.svelte-17j4p4w .folder-view__toolbar{padding:8px}.folder-view-adapter.svelte-17j4p4w .folder-view__trees{min-height:260px;padding:0 8px}.folder-view-adapter--compact.svelte-17j4p4w .folder-view{min-height:250px}.folder-view-adapter--compact.svelte-17j4p4w .folder-view__trees{min-height:160px}.folder-active-book.svelte-17j4p4w{margin:0;padding:6px 10px 8px;color:var(--muted);font-size:11px}.source-card.svelte-w3i7m{border:1px solid var(--border);border-radius:8px;background:var(--card);padding:12px;min-height:0;display:flex;flex:1 1 auto;flex-direction:column}.source-workspace.svelte-pno3rz{min-width:0;min-height:0;height:100%}.source-workspace.svelte-pno3rz .problem-workspace-panel{height:100%;border-radius:8px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.source-workspace.svelte-pno3rz .problem-workspace-panel__list,.source-workspace.svelte-pno3rz .problem-workspace-panel__preview{padding:14px 16px}.right-dock-panel.svelte-1nje5sj{min-height:0;display:flex;flex:1 1 auto;flex-direction:column;gap:12px}.right-dock-panel[hidden].svelte-1nje5sj{display:none}.source-slot--with-problem-workspace.svelte-1nje5sj .right-dock-panel--source:where(.svelte-1nje5sj):not([hidden]){display:contents}body{background:#f4f4f5}.textbook-editor-shell{--background: #f4f4f5;--foreground: #18181b;--card: #ffffff;--muted: #71717a;--muted-bg: #f4f4f5;--border: #e4e4e7;--accent: #0f766e;--accent-soft: #ccfbf1;--source-folder-width: 300px;--source-problem-workspace-min: 780px;--source-problem-workspace-max: 860px;--source-panel-gap: 12px;--source-panel-padding-x: 24px;height:100%;min-height:0;min-width:1180px;display:grid;grid-template-rows:40px minmax(0,1fr);background:var(--background);color:var(--foreground)}.textbook-editor-shell .workspace{min-height:0;display:grid;grid-template-columns:268px minmax(0,1fr) 320px}.textbook-editor-shell .workspace:has(.source-slot--with-problem-workspace){grid-template-columns:268px minmax(360px,1fr) minmax(calc(var(--source-folder-width) + var(--source-problem-workspace-min) + var(--source-panel-gap) + var(--source-panel-padding-x)),calc(var(--source-folder-width) + var(--source-problem-workspace-max) + var(--source-panel-gap) + var(--source-panel-padding-x)))}.textbook-editor-shell .workspace.workspace--left-collapsed{grid-template-columns:52px minmax(0,1fr) 320px}.textbook-editor-shell .workspace.workspace--left-collapsed:has(.source-slot--with-problem-workspace){grid-template-columns:52px minmax(180px,1fr) minmax(calc(var(--source-folder-width) + var(--source-problem-workspace-min) + var(--source-panel-gap) + var(--source-panel-padding-x)),calc(var(--source-folder-width) + var(--source-problem-workspace-max) + var(--source-panel-gap) + var(--source-panel-padding-x)))}.textbook-editor-shell .left-slot{min-width:0;min-height:0}.textbook-editor-shell .source-slot{min-height:0;border-left:1px solid var(--border);background:#fafafa;padding:12px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.textbook-editor-shell .source-slot--with-problem-workspace{display:grid;grid-template-columns:var(--source-folder-width) minmax(var(--source-problem-workspace-min),var(--source-problem-workspace-max));align-items:stretch}.textbook-export-status{position:fixed;right:18px;bottom:18px;z-index:60;margin:0;border:1px solid #99f6e4;border-radius:8px;background:#f0fdfa;color:#115e59;padding:8px 10px;font-size:12px;font-weight:650}.textbook-export-status--error{border-color:#fecaca;background:#fef2f2;color:#991b1b}@media (max-width: 1180px){.textbook-editor-shell .workspace{grid-template-columns:220px minmax(0,1fr) 300px}.textbook-editor-shell .workspace:has(.source-slot--with-problem-workspace){grid-template-columns:220px minmax(320px,1fr) minmax(calc(var(--source-folder-width) + var(--source-problem-workspace-min) + var(--source-panel-gap) + 16px),calc(var(--source-folder-width) + var(--source-problem-workspace-max) + var(--source-panel-gap) + 16px))}.textbook-editor-shell .workspace.workspace--left-collapsed{grid-template-columns:52px minmax(0,1fr) 300px}.textbook-editor-shell .workspace.workspace--left-collapsed:has(.source-slot--with-problem-workspace){grid-template-columns:52px minmax(160px,1fr) minmax(calc(var(--source-folder-width) + var(--source-problem-workspace-min) + var(--source-panel-gap) + 16px),calc(var(--source-folder-width) + var(--source-problem-workspace-max) + var(--source-panel-gap) + 16px))}.textbook-editor-shell .source-slot{padding:8px}.textbook-editor-shell .source-slot--with-problem-workspace{grid-template-columns:var(--source-folder-width) minmax(var(--source-problem-workspace-min),var(--source-problem-workspace-max))}}@media (max-width: 820px){.textbook-editor-shell{grid-template-rows:auto minmax(0,1fr)}}
