:root{--bg: #f6faf9;--surface: #fff;--mint-50: #eaf7f3;--mint-100: #d5f0e8;--primary: #14a38b;--primary-strong: #0e8a74;--primary-soft: #e7f6f2;--primary-ring: #14a38b33;--ink: #1e293b;--text: #334155;--muted: #64748b;--faint: #94a3b8;--line: #e3ebe8;--line-strong: #cfdcd8;--accent: #f59e0b;--accent-soft: #fef6e7;--accent-ink: #b45309;--danger: #e5484d;--danger-soft: #fff1f1;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 2px #0f3d3414, 0 1px 3px #0f3d340d;--shadow-md: 0 6px 20px #0f3d3414, 0 2px 6px #0f3d340a;--shadow-lg: 0 18px 48px #0f3d341f, 0 4px 12px #0f3d340d;--blue: var(--primary);--border: var(--line);--orange: var(--accent);--green: #3b82f6;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}.tone-math{--tone: #3b82f6;--tone-soft: #eaf2ff}.tone-physics{--tone: #8b5cf6;--tone-soft: #f2edff}.tone-chemistry{--tone: #f97316;--tone-soft: #fff1e6}.tone-biology{--tone: #22a55b;--tone-soft: #e8f7ee}.tone-geography{--tone: #0ea5e9;--tone-soft: #e6f6fd}.tone-chinese{--tone: #e11d48;--tone-soft: #fdebef}.tone-english{--tone: #6366f1;--tone-soft: #eef0ff}.tone-history{--tone: #b45309;--tone-soft: #fbf1e3}.tone-politics{--tone: #dc2626;--tone-soft: #fdeceb}.tone-science{--tone: #0d9488;--tone-soft: #e5f6f4}.tone-nature{--tone: #65a30d;--tone-soft: #f0f7e4}.tone-free{--tone: var(--primary-strong);--tone-soft: var(--primary-soft)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--primary-ring);outline-offset:2px}input,textarea,select{outline:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}input,select{padding:9px 11px;min-width:0}select{cursor:pointer}textarea{resize:vertical;line-height:1.75}textarea::placeholder,input::placeholder{color:var(--faint)}button:hover{color:var(--primary-strong)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}input[type=range]{width:100%;height:6px;padding:0;border:0;box-shadow:none;border-radius:8px;accent-color:var(--primary);cursor:pointer;display:block;margin:10px 0}input[type=color]{height:36px;padding:4px;cursor:pointer}input[type=checkbox]{accent-color:var(--primary)}progress{accent-color:var(--primary)}.primary{background:var(--primary);color:#fff;border-radius:var(--radius-md);font-weight:600;box-shadow:0 4px 12px #14a38b33;transition:background .15s,transform .15s,box-shadow .15s}.primary:hover{background:var(--primary-strong);color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px #14a38b40}.primary:disabled:hover{transform:none;background:var(--primary)}.secondary{border:1px solid var(--line-strong);border-radius:10px;padding:9px 14px;font-size:14px;background:var(--surface);color:var(--text);transition:border-color .15s,background .15s}.secondary:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.text-button{font-size:14px;color:var(--primary-strong);padding:6px 2px;font-weight:500}.text-button:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.icon-btn{padding:8px;border-radius:10px;flex-shrink:0;color:var(--muted);transition:background .15s,color .15s}.icon-btn:hover{background:var(--primary-soft);color:var(--primary-strong)}.icon-btn.selected{color:var(--primary-strong);background:var(--mint-100)}.icon-btn.small{padding:4px;border-radius:7px}.full{width:100%}.muted{color:var(--faint);font-size:12px}.eyebrow{font-size:12px;letter-spacing:1px;color:var(--primary-strong);font-weight:600}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);display:inline-block;flex-shrink:0;box-shadow:0 0 0 3px var(--primary-soft)}.pending{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.subject-tag{display:inline-flex;align-items:center;font-size:12px;font-weight:600;line-height:1;padding:4px 9px;border-radius:999px;color:var(--tone, var(--primary-strong));background:var(--tone-soft, var(--primary-soft));white-space:nowrap}.subject-chip{font-size:13px;padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.subject-chip:hover{border-color:var(--tone);color:var(--tone);background:var(--tone-soft)}.subject-chip.active{background:var(--tone);border-color:var(--tone);color:#fff;font-weight:600}.section-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-row h3{font-size:14px;font-weight:600;color:var(--ink)}.section-row>button{font-size:13px;white-space:nowrap;flex-shrink:0}.checkbox-label{display:flex!important;align-items:center;gap:8px;font-size:14px!important;cursor:pointer;color:var(--text)}.checkbox-label input{accent-color:var(--primary);width:auto}.field-note{font-size:12px!important;line-height:1.8;color:var(--muted);margin:14px 0}.two-fields{display:flex;gap:10px}.two-fields>label{flex:1;min-width:0}.two-fields input{width:100%}.spin{animation:spin 1s linear infinite}.app{height:100dvh;min-height:600px;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.topbar{height:64px;flex-shrink:0;padding:0 24px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);z-index:3}.brand{display:flex;gap:10px;align-items:center;min-width:0}.brand-mark{height:36px;width:36px;background:linear-gradient(135deg,#1bbc9f,var(--primary-strong));border-radius:11px;display:grid;place-items:center;box-shadow:0 4px 10px #14a38b33;flex-shrink:0}.brand-mark svg{width:26px;fill:none;stroke:#fff;stroke-width:1.6}.brand-name{display:flex;align-items:baseline;font-size:21px;font-weight:700;color:var(--ink);letter-spacing:1px;white-space:nowrap}.brand-sub{font-size:13px;color:var(--muted);letter-spacing:.5px;font-weight:400;margin-left:12px;border-left:1px solid var(--line);padding-left:12px}.topnav{display:flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px}.topnav button{font-size:14px;color:var(--muted);padding:7px 16px;border-radius:999px;white-space:nowrap;transition:background .15s,color .15s}.topnav button:hover{color:var(--ink)}.topnav button.active{color:var(--primary-strong);background:var(--surface);font-weight:600;box-shadow:var(--shadow-sm)}.topnav button span{background:var(--mint-100);color:var(--primary-strong);border-radius:999px;font-size:12px;line-height:1;padding:3px 7px;font-weight:600}.top-actions{display:flex;align-items:center;gap:12px}.save-status{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px;white-space:nowrap}.new-button{padding:9px 16px;font-size:14px;white-space:nowrap}.avatar{display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);font-size:14px;font-weight:600;width:34px;height:34px;border-radius:50%;flex-shrink:0}.mobile-tabs{display:none}.home{flex:1;min-height:0;overflow-y:auto;background:radial-gradient(1100px 420px at 50% -120px,var(--mint-100),transparent 70%),var(--bg);padding:48px 24px 32px;scrollbar-color:var(--line-strong) transparent}.home-hero{max-width:880px;margin:0 auto;text-align:center}.home-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--primary-strong);background:var(--surface);border:1px solid var(--mint-100);border-radius:999px;padding:5px 14px;box-shadow:var(--shadow-sm)}.home-hero h1{margin-top:18px;font-size:36px;line-height:1.3;font-weight:700;color:var(--ink);letter-spacing:1px}.home-hero>p{margin:12px auto 28px;max-width:680px;font-size:16px;line-height:1.8;color:var(--muted)}.home-hero .input-form{text-align:left}.home-steps{list-style:none;padding:0;margin:28px auto 0;max-width:880px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.home-steps li{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#ffffffb3;border:1px solid var(--line);border-radius:var(--radius-lg)}.home-steps li>svg{flex-shrink:0;width:38px;height:38px;padding:9px;border-radius:12px;color:var(--primary-strong);background:var(--primary-soft)}.home-steps strong{display:block;font-size:15px;color:var(--ink)}.home-steps small{display:block;font-size:13px;color:var(--muted);margin-top:2px}.home-section{max-width:1120px;margin:48px auto 0}.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-section-head h2{font-size:22px;font-weight:700;color:var(--ink)}.home-section-head .text-button{display:inline-flex;gap:4px}.home-section-note{font-size:14px;color:var(--muted);margin-top:6px}.home-section-head+.recent-grid{margin-top:16px}.subject-filter{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 18px}.home-footer{text-align:center;font-size:13px;color:var(--faint);margin:56px auto 0}.example-grid,.recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.project-thumb{display:grid;place-items:center;width:100%;aspect-ratio:16 / 10;background:var(--surface);border-bottom:1px solid var(--line);color:var(--faint);overflow:hidden}.project-thumb img{width:100%;height:100%;object-fit:contain;padding:8px;transition:transform .25s}.thumb-loading{width:60%;height:50%;border-radius:10px;background:linear-gradient(90deg,var(--mint-50),var(--mint-100),var(--mint-50));background-size:200% 100%;animation:shimmer 1.4s linear infinite}.example-card,.recent-card>.recent-open{width:100%;min-width:0;flex-direction:column;align-items:stretch;gap:0;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s}.example-card:hover,.recent-card>.recent-open:hover{color:inherit;transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--mint-100)}.example-card:hover .project-thumb img,.recent-card>.recent-open:hover .project-thumb img{transform:scale(1.03)}.card-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px 16px;min-width:0}.card-body strong{font-size:15px;font-weight:600;color:var(--ink);line-height:1.45}.card-body strong em{font-style:normal;font-weight:400;color:var(--muted)}.card-body small{font-size:13px;line-height:1.65;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recent-card{position:relative;min-width:0}.recent-card .card-body strong{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-card .card-body small{display:flex;align-items:center;gap:8px;font-size:12px}.remove-project{position:absolute;top:8px;right:8px;background:#ffffffe6;box-shadow:var(--shadow-sm);opacity:0;transition:opacity .15s}.recent-card:hover .remove-project,.remove-project:focus-visible{opacity:1}.remove-project:hover{color:var(--danger);background:var(--danger-soft)}.empty-library{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--muted);font-size:14px;text-align:center}.empty-library svg{color:var(--primary)}.empty-library strong{font-size:16px;color:var(--ink)}.input-form{display:flex;flex-direction:column}.prompt-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:12px;transition:border-color .15s,box-shadow .15s,background .15s}.prompt-card:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.input-form.drag-over .prompt-card{border-color:var(--primary);border-style:dashed;background:var(--primary-soft)}.input-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--ink)}.input-label span{font-size:12px;font-weight:400;color:var(--faint);font-variant-numeric:tabular-nums}#prompt{padding:4px 0;width:100%;min-height:132px;font-size:14px;flex-shrink:0;border:0;background:transparent;box-shadow:none;resize:vertical;color:var(--ink)}.material-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.material{display:flex;align-items:center;max-width:100%;border:1px solid var(--mint-100);background:var(--primary-soft);border-radius:999px;padding:2px 4px 2px 10px}.material>button:first-child{min-width:0;justify-content:flex-start;font-size:13px;color:var(--primary-strong);gap:6px;padding:3px 0}.material span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.material svg{flex-shrink:0}.upload-zone{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.attach-button{font-size:13px;font-weight:500;color:var(--primary-strong);background:var(--primary-soft);border-radius:999px;padding:6px 13px;gap:6px}.attach-button:hover{background:var(--mint-100)}.upload-hint{font-size:12px;color:var(--faint)}.page-input{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);margin-top:8px}.page-input label{white-space:nowrap}.page-input input{padding:6px 10px;font-size:13px;flex:1;border-color:var(--line);background:var(--bg)}.input-options{display:flex;flex-direction:column;gap:14px;margin:16px 0}.field-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}.subject-chips{display:flex;flex-wrap:wrap;gap:6px}.grade-field{display:block;min-width:0}.grade-field select{width:100%;font-size:14px;padding:8px 10px}.generate-row{display:flex;flex-direction:column;align-items:stretch;gap:4px}.generate{width:100%;padding:13px 16px;font-size:15px;flex-shrink:0}.generate svg:last-child{margin-left:2px}.cancel{align-self:center}.resume{width:100%;padding:11px 14px;font-size:14px;margin-top:10px}.input-note{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px;margin-top:12px;text-align:center}.input-note p{line-height:1.6}.input-note .status-dot{width:6px;height:6px;box-shadow:none}.input-form.hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:20px}.input-form.hero .prompt-card{border-color:var(--line);background:var(--bg);border-radius:var(--radius-lg);padding:16px 18px 12px}.input-form.hero .prompt-card:focus-within{background:var(--surface)}.input-form.hero .input-label{font-size:15px}.input-form.hero #prompt{min-height:128px;font-size:16px}.input-form.hero .input-options{flex-direction:row;align-items:flex-start;gap:20px;margin:18px 4px}.input-form.hero .subject-field{flex:1;min-width:0}.input-form.hero .grade-field{width:160px;flex-shrink:0}.input-form.hero .generate-row{flex-direction:row;justify-content:center;align-items:center;gap:16px}.input-form.hero .generate{width:auto;min-width:260px;padding:14px 32px;font-size:16px;border-radius:14px}.input-form.hero .cancel{align-self:auto}.input-form.hero .resume{max-width:420px;align-self:center}.workspace{display:grid;grid-template-columns:64px minmax(0,1fr) 300px;flex:1;min-height:0;width:100%;max-width:2200px;margin:0 auto}.workspace.input-open{grid-template-columns:320px minmax(0,1fr) 300px}.input-panel{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.input-rail{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0}.rail-label{writing-mode:vertical-rl;letter-spacing:4px;font-size:14px;font-weight:600;padding:14px 9px;border-radius:12px;color:var(--primary-strong);background:var(--primary-soft);transition:background .15s}.rail-label:hover{background:var(--mint-100)}.input-panel-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding:22px 20px 16px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.input-panel.open .input-rail,.input-panel.collapsed .input-panel-body{display:none}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.panel-heading h1{font-size:22px;font-weight:700;color:var(--ink);margin-top:6px;line-height:1.35}.panel-description{font-size:13px;color:var(--muted);line-height:1.7;margin:6px 0 16px}.examples-link{margin-top:16px;width:100%}.left-footer{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--faint);font-size:12px;margin-top:auto;padding-top:20px}.canvas-panel{position:relative;display:flex;min-width:0;flex-direction:column;min-height:0;background:var(--bg)}.canvas-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:14px;flex-shrink:0}.document-title{display:flex;align-items:center;gap:12px;min-width:0}.document-icon{height:40px;width:40px;display:grid;place-items:center;color:var(--tone, var(--primary-strong));background:var(--tone-soft, var(--primary-soft));border-radius:12px;flex-shrink:0}.document-title>div{min-width:0}.document-title h2{font-size:16px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}.document-title div>span{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;margin-top:4px;white-space:nowrap}.document-title .subject-tag{padding:3px 8px}.canvas-header-actions{display:flex;align-items:center;gap:8px}.revise-trigger{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid var(--mint-100);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary-strong);font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.revise-trigger:hover,.revise-trigger.active{background:var(--primary);border-color:var(--primary);color:#fff}.export-btn{padding:9px 16px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;font-size:14px;font-weight:500;color:var(--primary-strong);gap:6px;box-shadow:var(--shadow-sm)}.export-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.canvas-tools{display:flex;justify-content:space-between;align-items:center;margin:0 16px 8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:4px 8px;box-shadow:var(--shadow-sm);flex-shrink:0}.tool-group,.zoom-controls{display:flex;align-items:center;gap:2px}.tool-divider{width:1px;height:20px;background:var(--line);margin:0 6px}.zoom-controls{font-size:13px;color:var(--muted)}.zoom-controls>span{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.canvas-stage{flex:1;min-height:200px;position:relative;overflow:hidden;margin:0 16px;display:flex;align-items:center;justify-content:center;background-color:#eef5f3;background-image:radial-gradient(#cfe3dd 1px,transparent 1px);background-size:18px 18px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:50px 12px 32px}.paper{background:#fff;box-shadow:var(--shadow-md);border-radius:4px;position:relative;transform-origin:center;flex-shrink:0;transition:box-shadow .2s}.svg-content{height:100%;width:100%;display:flex}.svg-content>svg{width:100%;height:100%;display:block;overflow:hidden}.svg-content [data-node]:hover{cursor:pointer;filter:drop-shadow(0 0 2px #14a38b40)}.selection-note{position:absolute;left:0;top:-25px;font-size:12px;color:var(--primary-strong);display:flex;align-items:center;gap:5px;pointer-events:none}.canvas-hint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px;white-space:nowrap;background:#ffffffd9;padding:5px 12px;border-radius:999px}.hint-dot{width:6px;height:6px;background:var(--primary);border-radius:50%}.panning{cursor:grab}.panning:active{cursor:grabbing}.stage-error{position:absolute;inset:40%;font-size:14px;color:var(--danger)}.refine-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);font-size:12px;white-space:nowrap}.refine-chip .text-button{font-size:12px;padding:2px 8px}.upgrade-notice{width:100%;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px 10px 14px;background:var(--surface);border:1px solid var(--mint-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.upgrade-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--primary-soft);color:var(--primary);flex-shrink:0}.upgrade-text{flex:1 1 220px;display:flex;flex-direction:column;gap:2px;min-width:0}.upgrade-text strong{font-size:14px;color:var(--ink)}.upgrade-text span{font-size:12px;color:var(--muted);line-height:1.5}.upgrade-text em,.modal-description em{display:block;font-style:normal;color:var(--accent-ink)}.upgrade-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.upgrade-actions .primary,.upgrade-actions .secondary{padding:7px 14px;font-size:13px}.upgrade-compare{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}.upgrade-compare figure{margin:0;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.upgrade-compare figcaption{padding:8px 12px;font-size:13px;font-weight:600;color:var(--text);border-bottom:1px solid var(--line)}.upgrade-compare .project-thumb{border-bottom:0}.upgrade-arrow{color:var(--primary)}.upgrade-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.upgrade-modal-actions button{padding:9px 18px;font-size:14px}@media(max-width:900px){.stage-notices{top:auto;bottom:34px}.upgrade-compare{grid-template-columns:1fr}.upgrade-arrow{justify-self:center;transform:rotate(90deg)}}.animation-bar{position:relative;display:flex;align-items:center;gap:12px;margin:10px 16px 14px;background:var(--surface);border:1px solid var(--line);padding:10px 14px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-shrink:0}.animation-bar[hidden],.canvas-hint[hidden]{display:none}.replay{color:var(--muted);padding:6px}.play-button{background:var(--primary);color:#fff;border-radius:50%;height:42px;width:42px;flex-shrink:0;padding:0;box-shadow:0 4px 12px #14a38b40;transition:background .15s,transform .15s}.play-button:hover{background:var(--primary-strong);color:#fff;transform:scale(1.05)}.timeline{flex:1;min-width:50px}.timeline-caption{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);margin-bottom:4px}.timeline-caption span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}.timeline-caption span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}.timeline input{height:6px;margin:8px 0 4px}.speed-select{border:1px solid var(--line);font-size:13px;padding:5px 6px;width:58px;color:var(--text);border-radius:8px;background:var(--bg)}.generation-overlay{position:absolute;inset:0;background:#f6faf9e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:2}.generation-card{width:min(480px,100%);max-height:100%;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:28px 28px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.generation-orbit{color:var(--primary-strong);height:64px;width:64px;background:var(--primary-soft);border-radius:20px;display:grid;place-items:center;margin-bottom:6px;animation:breathe 2s ease-in-out infinite}.generation-card>strong{font-size:18px;font-weight:700;color:var(--ink)}.generation-card>span{font-size:14px;color:var(--muted)}.generation-progress{width:100%;height:8px;border-radius:999px;background:var(--mint-50);overflow:hidden;margin:8px 0 4px}.generation-progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#34c7a9,var(--primary));transition:width .4s ease}.generation-progress>i.indeterminate{width:36%;animation:indeterminate 1.6s ease-in-out infinite}.generation-facts{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left}.generation-facts span{font-size:13px;line-height:1.6;color:var(--text);background:var(--bg);border-radius:10px;padding:7px 12px}.generation-actions{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:6px}.generation-actions .primary{padding:10px 20px;font-size:14px}.generation-task-details{display:grid;gap:16px;line-height:1.7;font-size:13px;overflow-wrap:anywhere}.generation-task-details h3{font-size:15px;color:var(--ink)}.generation-task-details h3,.generation-task-details p{margin:0}.stage-notices{position:absolute;top:10px;right:12px;z-index:3;width:min(580px,calc(100% - 24px));display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.stage-notices>*{pointer-events:auto}.stage-notices .revision-note{max-width:460px;border:1px solid var(--mint-100);box-shadow:var(--shadow-md)}.revision-composer{position:absolute;top:60px;right:16px;z-index:20;width:min(480px,calc(100% - 32px));box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 14px;display:grid;gap:10px;box-shadow:var(--shadow-lg);transition:border-color .15s,box-shadow .15s}.revision-composer:focus-within,.revision-composer.drag{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.revision-composer[inert]{opacity:.7}.revision-head{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:14px;min-width:0}.revision-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;color:var(--primary-strong);background:var(--primary-soft)}.revision-icon svg{width:15px;height:15px}.revision-head strong{font-weight:700;white-space:nowrap}.revision-head>span:not(.revision-icon){color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revision-head .icon-btn{margin-left:auto;flex-shrink:0}.revision-note{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:10px;background:var(--primary-soft);color:var(--primary-strong);font-size:13px;line-height:1.6}.revision-note>svg{flex-shrink:0;margin-top:3px}.revision-note-body{flex:1;min-width:0;display:grid;gap:6px}.revision-note-body>span{max-height:58px;overflow:auto;overflow-wrap:anywhere}.revision-note-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.revision-note-actions em{font-style:normal;color:var(--primary-strong);font-size:12px}.revision-toggle{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid var(--mint-100);border-radius:999px;background:var(--surface);color:var(--primary-strong);font:inherit;font-size:12px;cursor:pointer}.revision-toggle[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.revision-toggle:disabled{opacity:.45;cursor:default}.revision-note .icon-btn{width:24px;height:24px;padding:3px;flex-shrink:0}.revision-box{display:grid;gap:6px}.revision-box textarea{width:100%;resize:vertical;min-height:84px;max-height:200px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px;line-height:1.6;color:var(--ink);background:var(--bg);outline:none;box-shadow:none}.revision-box textarea:focus{background:var(--surface);border-color:var(--line);box-shadow:none}.revision-thumbs{display:flex;gap:8px;flex-wrap:wrap}.revision-thumb{position:relative;width:58px;height:44px;border-radius:8px;border:1px solid var(--line);background:var(--bg);display:grid;place-items:center;color:var(--muted)}.revision-thumb img{width:100%;height:100%;object-fit:cover;border-radius:7px}.revision-thumb button{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--ink);color:#fff;align-items:center;justify-content:center}.revision-actions{display:flex;align-items:center;gap:8px}.revision-tip{flex:1;color:var(--faint);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary.revision-send{padding:7px 16px;font-size:14px;gap:6px;flex-shrink:0;border-radius:10px}.generation-overlay.revision{background:#f6faf966;-webkit-backdrop-filter:none;backdrop-filter:none;align-items:flex-start;padding-top:18px}.revision-progress{display:flex;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:12px 16px;background:var(--surface);border:1px solid var(--mint-100);border-radius:14px;box-shadow:var(--shadow-md);color:var(--primary)}.revision-progress>div{display:grid;gap:3px;min-width:0}.revision-progress strong{color:var(--ink);font-size:14px}.revision-progress span{color:var(--muted);font-size:12px}.inspector{background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.inspector-tabs{display:flex;gap:4px;margin:12px 16px 0;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:12px;flex-shrink:0}.inspector-tabs button{flex:1;font-size:14px;color:var(--muted);padding:8px 6px;border-radius:9px;gap:6px;white-space:nowrap}.inspector-tabs button.active{color:var(--primary-strong);background:var(--surface);font-weight:600;box-shadow:var(--shadow-sm)}.inspector-body{padding:18px 16px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.inspector-description{font-size:13px;line-height:1.6;color:var(--muted);margin:6px 0 16px}.parameter{margin-bottom:12px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);transition:border-color .15s,background .15s}.parameter:hover{border-color:var(--mint-100)}.parameter>label{display:flex;align-items:center;font-size:14px;font-weight:600;color:var(--ink);gap:8px;margin-bottom:10px}.parameter-dot{height:8px;width:8px;background:var(--primary);border-radius:50%;flex-shrink:0}.dot-1{background:var(--accent)}.dot-2{background:var(--green)}.unit{color:var(--muted);font-size:12px;font-weight:400;margin-left:auto}.numeric-control{display:flex;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);overflow:hidden}.numeric-control:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.numeric-control>input{flex:1;border:0;background:none;box-shadow:none!important;font-size:16px;font-weight:600;color:var(--ink);padding:7px 12px;appearance:textfield;-moz-appearance:textfield;width:40px;font-variant-numeric:tabular-nums}.numeric-control input::-webkit-inner-spin-button{-webkit-appearance:none}.numeric-control>div{display:flex;align-items:center;gap:2px;padding-right:6px}.numeric-control button{padding:5px;border-radius:7px;color:var(--muted)}.numeric-control button:hover{background:var(--primary-soft)}.parameter-slider{margin-top:14px!important}.slider-1{accent-color:var(--accent)!important}.slider-2{accent-color:var(--green)!important}.range-labels{display:flex;justify-content:space-between;color:var(--faint);font-size:12px;margin-top:6px;font-variant-numeric:tabular-nums}.parameter>input:not([type=range]),.parameter>select{width:100%;font-size:14px}.parameter>input[type=checkbox]{width:auto}.parameter small{font-size:12px;color:var(--muted);line-height:1.7;display:block;margin-top:8px}.derived-values{margin:20px 0;padding:14px 16px;background:var(--primary-soft);border-radius:var(--radius-md)}.derived-values h3{font-size:14px;color:var(--ink);margin-bottom:8px}.derived-values>div{display:flex;justify-content:space-between;font-size:13px;margin:8px 0;color:var(--text);gap:10px}.derived-values strong{color:var(--primary-strong);font-weight:700;font-variant-numeric:tabular-nums}.derived-values strong small{margin-left:4px;font-size:12px;font-weight:400}.inspector-details{border-top:1px solid var(--line);padding-top:14px;margin-top:16px;font-size:13px}.inspector-details summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--ink);font-weight:600;font-size:14px;margin-bottom:10px}.inspector-details summary::-webkit-details-marker{display:none}.inspector-details summary>svg{color:var(--muted);transition:transform .15s}.inspector-details[open] summary>svg{transform:rotate(180deg)}.inspector-details label,.object-editor label{display:block;color:var(--muted);font-size:13px;margin:12px 0}.inspector-details input,.inspector-details select,.object-editor input,.object-editor textarea{display:block;width:100%;font-size:14px;margin-top:6px}.knowledge-notes p{font-size:13px;color:var(--text);line-height:1.8;margin:8px 0}.review-badge{font-size:12px;font-weight:600;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);padding:2px 8px;margin-left:auto;margin-right:8px}.review-item{color:var(--accent-ink)!important;background:var(--accent-soft);border-left:3px solid var(--accent);padding:9px 12px;border-radius:8px;font-size:13px;line-height:1.75}.inspector-footer{margin-top:auto;border-top:1px solid var(--line);color:var(--faint);font-size:12px;display:flex;align-items:center;gap:7px;justify-content:center;padding:14px 0;flex-shrink:0}.layer-list{margin:12px -6px;max-height:340px;overflow-y:auto;scrollbar-width:thin}.layer-row{display:flex;width:100%;gap:8px;text-align:left;justify-content:flex-start;font-size:13px;padding:10px;border-radius:10px;color:var(--text)}.layer-row:hover{background:var(--bg)}.layer-row>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-row.active{background:var(--primary-soft);color:var(--primary-strong);font-weight:600}.layer-type{margin-left:auto;font-size:12px;font-weight:400;color:var(--faint)}.object-editor{border-top:1px solid var(--line);padding-top:16px}.object-editor h3{font-size:15px;color:var(--ink)}.object-editor textarea{height:100px;padding:8px 10px;resize:vertical}.object-editor .checkbox-label input{width:auto;margin:0}.error-banner{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--danger-soft);border:1px solid #f6caca;box-shadow:var(--shadow-md);border-radius:14px;display:flex;align-items:center;gap:10px;padding:10px 14px;color:#b42318;font-size:14px;z-index:100;max-width:min(760px,90vw)}.error-banner>svg{flex-shrink:0}.toast{position:fixed;top:80px;left:50%;transform:translate(-50%);background:var(--ink);box-shadow:var(--shadow-lg);padding:11px 18px;border-radius:999px;display:flex;align-items:center;gap:8px;font-size:14px;color:#fff;z-index:110;animation:appear .2s ease}.toast svg{color:#5eead4}.modal-backdrop{position:fixed;inset:0;background:#1e293b59;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50;padding:28px}.modal{width:520px;max-width:100%;max-height:88dvh;overflow-y:auto;background:var(--surface);border-radius:var(--radius-xl);padding:28px;box-shadow:0 30px 80px #0f172a33;animation:appear .2s ease}.modal.medium{width:680px}.modal.wide{width:960px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.modal-header h2{font-size:24px;margin-top:6px;font-weight:700;color:var(--ink)}.modal-description{font-size:14px;color:var(--muted);line-height:1.75;margin-bottom:20px}.modal .section-row{margin-bottom:18px}.modal .section-row .modal-description{margin-bottom:0}.modal .example-grid,.modal .recent-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.export-options{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;margin-bottom:16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);font-size:14px;color:var(--text)}.export-options label{display:flex;align-items:center}.export-options select{font-size:14px;margin-left:10px;padding:6px 10px}.export-formats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.export-formats>button{width:100%;min-width:0;padding:14px;justify-content:flex-start;align-items:center;gap:14px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);transition:border-color .15s,box-shadow .15s,transform .15s}.export-formats>button:hover{color:inherit;border-color:var(--mint-100);box-shadow:var(--shadow-md);transform:translateY(-2px)}.export-formats>button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.export-formats>button>span:nth-child(2){min-width:0}.format-icon{flex-shrink:0;background:#eaf2ff;color:#2563eb;font-size:13px;font-weight:700;border-radius:14px;width:48px;height:48px;display:grid;place-items:center}.format-icon.orange{background:#fff1e6;color:#ea580c}.format-icon.green{background:var(--primary-soft);color:var(--primary-strong)}.format-icon.purple{background:#f2edff;color:#7c3aed}.format-icon.red{background:#fdebef;color:#e11d48}.format-icon.teal{background:#e6f6fd;color:#0284c7}.export-formats strong{font-size:15px;font-weight:600;color:var(--ink);display:block}.export-formats small{font-size:12px;line-height:1.6;display:block;color:var(--muted);margin-top:4px}.export-formats>button>svg{margin-left:auto;flex-shrink:0;color:var(--primary)}.media-export{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 16px;border-radius:var(--radius-md);background:var(--primary-soft);font-size:14px;color:var(--primary-strong)}.media-export progress{flex:1;height:8px;accent-color:var(--primary)}.help-content>.modal-description{margin-bottom:16px}.help-steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}.help-steps li{display:flex;gap:14px;padding:14px 16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);font-size:13px;line-height:1.8;color:var(--text)}.help-steps b{flex-shrink:0;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:13px;color:#fff;background:var(--primary)}.help-steps strong{display:block;font-size:15px;color:var(--ink);margin-bottom:2px}.help-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.material-preview img{max-width:100%;max-height:340px;object-fit:contain;background:var(--bg);border-radius:var(--radius-md);display:block;margin:18px auto}.material-preview pre{white-space:pre-wrap;word-break:break-word;max-height:350px;overflow:auto;font-size:13px;line-height:1.8;background:var(--bg);padding:16px;border-radius:var(--radius-md);color:var(--text)}.material-preview h3{font-size:16px;color:var(--ink)}.material-preview>p{font-size:13px;color:var(--muted);margin-top:10px}.focus-mode .workspace,.focus-mode .workspace.input-open{grid-template-columns:1fr}.focus-mode .input-panel,.focus-mode .inspector{display:none}.focus-mode .canvas-stage{padding:50px 12px 32px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@keyframes breathe{50%{transform:translateY(-4px)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(280%)}}@media(min-width:1600px){.workspace{grid-template-columns:64px minmax(0,1fr) 320px}.workspace.input-open{grid-template-columns:340px minmax(0,1fr) 320px}.input-panel #prompt{min-height:170px}}@media(max-width:1200px){.workspace{grid-template-columns:60px minmax(0,1fr) 264px}.workspace.input-open{grid-template-columns:280px minmax(0,1fr) 264px}.input-panel-body{padding:18px 16px 14px}.panel-heading h1{font-size:20px}.inspector-body{padding:16px 14px}.canvas-stage{padding:25px 15px 40px}.animation-bar{gap:8px;padding:10px}.brand-sub{display:none}.topnav button{padding:7px 12px}.top-actions{gap:8px}}@media(max-height:820px)and (min-width:901px){.input-panel-body{padding-top:16px}.panel-description{margin-bottom:12px}.input-panel #prompt{min-height:110px}.input-options{margin:12px 0;gap:10px}.canvas-header{height:58px}.animation-bar{margin-top:8px;margin-bottom:8px;padding-top:7px;padding-bottom:7px}.play-button{width:38px;height:38px}.home{padding-top:32px}.home-hero h1{font-size:32px}.home-hero>p{margin-bottom:20px}}@media(max-width:1100px){.home-steps{grid-template-columns:1fr}}@media(max-width:900px){.app{min-height:560px}.topbar{padding:0 12px;height:56px;gap:8px}.brand-mark{width:32px;height:32px}.brand-name{font-size:19px}.topnav{padding:3px;gap:0}.topnav button{font-size:13px;padding:6px 10px}.topnav button span,.save-status,.avatar{display:none}.top-actions{gap:4px}.new-button{width:36px;height:36px;padding:0;font-size:0;gap:0}.mobile-tabs{order:5;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));flex-shrink:0}.mobile-tabs button{flex:1;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);padding:6px 4px;border-radius:12px}.mobile-tabs button.active{background:var(--primary-soft);color:var(--primary-strong);font-weight:600}.workspace,.workspace.input-open{display:block;position:relative;overflow:hidden}.input-panel,.inspector,.canvas-panel{width:100%;height:100%}.input-panel,.inspector{display:none;border:0}.mobile-input .input-panel{display:flex;max-width:600px;margin:auto}.input-panel .input-rail,.input-panel .collapse-input{display:none}.input-panel.collapsed .input-panel-body{display:flex}.mobile-input .canvas-panel{display:none}.mobile-params .inspector{display:flex;max-width:600px;margin:auto}.mobile-params .canvas-panel{display:none}.canvas-header{height:64px;padding:0 12px}.document-icon{width:36px;height:36px}.document-title h2{max-width:52vw;font-size:15px}.canvas-tools,.canvas-stage{margin-left:12px;margin-right:12px}.canvas-stage{padding:50px 12px 32px}.canvas-tools{padding:4px}.canvas-tools .icon-btn{padding:7px}.tool-divider{margin:0 2px}.zoom-controls>span{min-width:38px}.canvas-header-actions>.icon-btn{display:none}.export-btn,.revise-trigger{padding:8px 12px;font-size:13px;white-space:nowrap}.animation-bar{margin:10px 12px 12px;padding:8px 10px;gap:8px}.modal-backdrop{padding:12px}.modal{padding:20px;max-height:90dvh;border-radius:20px}.modal-header h2{font-size:20px}.modal .example-grid,.modal .recent-grid,.export-formats,.help-actions{grid-template-columns:1fr}.error-banner{font-size:13px;bottom:84px;width:92vw}.toast{top:68px;font-size:13px;max-width:92vw;white-space:nowrap}.input-panel #prompt{min-height:140px}.inspector-body{padding:18px}.focus-mode .canvas-stage{padding:50px 12px 32px}.remove-project{opacity:1}.home{padding:28px 14px 24px}.home-hero h1{font-size:26px}.home-hero>p{font-size:14px;margin-bottom:18px}.input-form.hero{padding:14px;border-radius:20px}.input-form.hero #prompt{font-size:15px;min-height:120px}.input-form.hero .input-options{flex-direction:column;gap:12px;margin:14px 2px}.input-form.hero .grade-field{width:100%}.input-form.hero .generate-row{flex-direction:column;align-items:stretch}.input-form.hero .generate{min-width:0;width:100%}.home-section{margin-top:36px}.home-section-head h2{font-size:19px}.example-grid,.recent-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.card-body{padding:12px}}@media(max-width:900px){.revision-composer{top:56px;right:12px;width:calc(100% - 24px)}.revision-head>span:not(.revision-icon),.revision-tip{display:none}.revision-actions .revision-send{margin-left:auto}}@media(max-width:420px){.brand-name{display:none}.page-input{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
