:root{--ui-font:"Segoe UI", "Inter", system-ui, -apple-system, Roboto, "Noto Sans", sans-serif;--accent:#1d4ed8;--accent-2:#2563eb;--accent-soft:#e8efff;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--line:#e2e8f0;--panel:#fffffff0;--panel-solid:#fff;--shadow:0 1px 2px #0f172a0f, 0 8px 28px #0f172a1f;--shadow-lg:0 20px 60px #0f172a38;--radius:18px;--danger:#dc2626;--ui:1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.app{--btn:calc(52px * var(--ui));--btn-sm:calc(40px * var(--ui));--topbar-h:calc(60px * var(--ui));--fs:calc(15px * var(--ui));--gap:calc(10px * var(--ui));--inset-t:max(10px, env(safe-area-inset-top));--inset-b:max(10px, env(safe-area-inset-bottom));--inset-l:max(10px, env(safe-area-inset-left));--inset-r:max(10px, env(safe-area-inset-right));height:100%}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--ui-font);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background:#eef2f7;overflow:hidden}button{font:inherit;color:inherit}input,textarea,select{font:inherit}.board-canvas{width:100vw;height:100vh;touch-action:none;height:100dvh;display:block;position:fixed;inset:0}.icon-btn{width:var(--btn);height:var(--btn);cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:14px;flex:none;place-items:center;transition:background .12s,color .12s,transform 80ms;display:inline-grid;position:relative}.icon-btn:hover{color:var(--ink);background:#f1f5f9}.icon-btn:active{transform:scale(.94)}.icon-btn.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px #1d4ed859}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0;transform:none}.icon-btn.sm{width:var(--btn-sm);height:var(--btn-sm);border-radius:calc(11px * var(--ui))}.icon-btn svg{width:calc(var(--btn) * .46);height:calc(var(--btn) * .46)}.icon-btn.sm svg{width:calc(var(--btn-sm) * .5);height:calc(var(--btn-sm) * .5)}.icon-btn .badge-dot{border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;bottom:7px;right:7px;box-shadow:0 0 0 1px #0f172a26}.icon-btn .corner-mark{opacity:.6;border-bottom:5px solid;border-left:5px solid #0000;width:0;height:0;position:absolute;bottom:5px;right:5px}.btn{height:calc(44px * var(--ui));padding:0 calc(16px * var(--ui));border:1px solid var(--line);cursor:pointer;font-weight:550;font-size:var(--fs);color:var(--ink-2);white-space:nowrap;background:#fff;border-radius:12px;align-items:center;gap:8px;display:inline-flex}.btn:hover{background:#f8fafc}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:#1e40af}.btn.danger{color:var(--danger)}.btn.ghost{background:0 0;border-color:#0000}.btn:disabled{opacity:.5;cursor:default}.panel{background:var(--panel);-webkit-backdrop-filter:blur(14px)saturate(1.4);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #e2e8f0e6}.divider{background:var(--line);width:70%;height:1px;margin:4px auto}.vdivider{background:var(--line);width:1px;height:28px;margin:0 4px}.topbar{top:var(--inset-t);left:var(--inset-l);right:var(--inset-r);height:var(--topbar-h);align-items:center;gap:calc(8px * var(--ui));z-index:20;padding:0 10px 0 14px;transition:transform .25s,opacity .25s;display:flex;position:fixed}.app.presenting .topbar{opacity:0;pointer-events:none;transform:translateY(-120%)}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-weight:700;display:flex}.brand-mark{width:calc(36px * var(--ui));height:calc(36px * var(--ui));color:#fff;background:linear-gradient(135deg,#1d4ed8,#4f46e5);border-radius:10px;flex:none;place-items:center;display:grid;box-shadow:0 4px 12px #1d4ed859}.brand small{color:var(--muted);letter-spacing:.02em;font-size:11px;font-weight:500;display:block}.brand-text{line-height:1.1;font-size:calc(16px * var(--ui))}.brand-mark svg{width:55%;height:55%}.tabs{background:#f1f5f9;border-radius:14px;gap:4px;margin-left:8px;padding:4px;display:flex}.tab{height:calc(40px * var(--ui));padding:0 calc(14px * var(--ui));cursor:pointer;font-weight:600;font-size:calc(14.5px * var(--ui));color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;display:inline-flex}.tab.active{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0f172a1f}.title-input{min-width:60px;max-width:420px;height:calc(42px * var(--ui));font-size:calc(16px * var(--ui));color:var(--ink);-webkit-user-select:text;user-select:text;text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:10px;flex:auto;padding:0 12px;font-weight:600}.title-input:hover{border-color:var(--line)}.title-input:focus{border-color:var(--accent-2);background:#fff;outline:none}.spacer{flex:1}.save-status{font-size:calc(13px * var(--ui));color:var(--muted);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.save-status .dot{background:#22c55e;border-radius:50%;width:8px;height:8px}.save-status.saving .dot{background:#f59e0b}.save-status.error .dot{background:var(--danger)}.menu-wrap{position:relative}.menu{min-width:calc(260px * var(--ui));z-index:50;background:var(--panel-solid);max-width:calc(100vw - 20px);box-shadow:var(--shadow-lg);border:1px solid var(--line);border-radius:14px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.menu button{width:100%;padding:calc(12px * var(--ui));cursor:pointer;text-align:left;font-size:var(--fs);color:var(--ink-2);background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;display:flex}.menu button:hover{color:var(--ink);background:#f1f5f9}.menu button small{color:var(--muted);font-size:12.5px;display:block}.dock{left:var(--inset-l);top:calc(var(--topbar-h) + var(--inset-t) + 12px);bottom:var(--inset-b);z-index:15;pointer-events:none;flex-direction:column;justify-content:center;transition:top .25s,opacity .3s;display:flex;position:fixed}.app.presenting .dock{top:var(--inset-t)}.app.dock-right .dock{left:auto;right:var(--inset-r)}.app.dock-bottom .dock{top:auto;left:var(--inset-l);right:var(--inset-r);bottom:var(--inset-b);flex-direction:row;justify-content:center}.app.dock-bottom .dock-inner{flex-direction:row;max-width:100%;overflow:auto hidden}.app.dock-2col .dock-inner{grid-template-columns:repeat(2, var(--btn));justify-items:center;display:grid}.app.dock-2col .divider{display:none}.app.dock-bottom.dock-2col .dock-inner{grid-template-columns:repeat(7, var(--btn))}.app.dock-bottom.dock-2col .page-bar{bottom:calc(var(--btn) * 2 + var(--inset-b) + 26px)}.app.dock-bottom .divider{width:1px;height:calc(var(--btn) * .6);flex:none;margin:0 3px}.dock-inner{pointer-events:auto;align-items:center;gap:calc(3px * var(--ui));padding:calc(6px * var(--ui));scrollbar-width:none;flex-direction:column;max-height:100%;display:flex;overflow-y:auto}.dock-inner::-webkit-scrollbar{display:none}.popover{z-index:30;padding:calc(14px * var(--ui));width:min(calc(300px * var(--ui)), calc(100vw - 24px));max-height:calc(100vh - 24px);position:fixed;overflow-y:auto}.popover h4{font-size:calc(12px * var(--ui));text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-weight:650}.popover .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.popover .section+.section{margin-top:14px}.swatch{width:calc(38px * var(--ui));height:calc(38px * var(--ui));cursor:pointer;border:2px solid #0f172a1f;border-radius:50%;padding:0;transition:transform 80ms;position:relative}.swatch:active{transform:scale(.9)}.swatch.active{box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--accent-2)}.swatch.custom{background:conic-gradient(#ef4444,#f59e0b,#84cc16,#06b6d4,#6366f1,#d946ef,#ef4444);overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.size-dot{width:calc(44px * var(--ui));height:calc(44px * var(--ui));border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;place-items:center;display:grid}.size-dot.active{border-color:var(--accent-2);background:var(--accent-soft)}.size-dot span{background:var(--ink-2);border-radius:50%;display:block}.slider{width:100%;accent-color:var(--accent);height:28px}.toggle-row{font-size:calc(14px * var(--ui));color:var(--ink-2);justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}.switch{cursor:pointer;background:#cbd5e1;border:0;border-radius:99px;flex:none;width:48px;height:28px;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(20px)}.shape-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.shape-grid .icon-btn{width:100%}.hint{font-size:calc(12.5px * var(--ui));color:var(--muted);margin-top:8px;line-height:1.4}.bottom-bar{bottom:var(--inset-b);z-index:15;padding:calc(5px * var(--ui));align-items:center;gap:2px;transition:opacity .3s;display:flex;position:fixed}.page-bar{left:50%;transform:translate(-50%)}.zoom-bar{right:var(--inset-r)}.app.dock-right .zoom-bar{right:auto;left:var(--inset-l)}.app.dock-bottom .page-bar{bottom:calc(var(--btn) + var(--inset-b) + 22px)}.app.dock-bottom .zoom-bar{display:none}.page-label{min-width:calc(96px * var(--ui));text-align:center;font-weight:600;font-size:var(--fs);color:var(--ink-2);font-variant-numeric:tabular-nums;padding:0 6px}.zoom-label{min-width:calc(62px * var(--ui));height:var(--btn-sm);font-size:var(--fs);cursor:pointer;font-variant-numeric:tabular-nums;color:var(--ink-2);background:0 0;border:0;border-radius:10px;font-weight:600}.zoom-label:hover{background:#f1f5f9}.sel-bar{z-index:25;white-space:nowrap;align-items:center;gap:2px;padding:5px;display:flex;position:fixed;transform:translate(-50%)}.sel-bar .swatch{width:calc(28px * var(--ui));height:calc(28px * var(--ui));margin:0 2px}.sel-bar{max-width:calc(100vw - 16px);overflow-x:auto}.text-editor{z-index:12;border:1.5px dashed var(--accent-2);resize:none;white-space:pre;line-height:1.3;font-family:var(--ui-font);-webkit-user-select:text;user-select:text;caret-color:var(--accent-2);background:#fff0;border-radius:4px;outline:none;min-width:40px;margin:0;padding:0;position:fixed;overflow:hidden}.scrim{z-index:60;background:#0f172a5c;place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.dialog{box-shadow:var(--shadow-lg);width:min(760px, calc(100vw / var(--ui) - 32px));max-height:calc(min(88vh, 900px) / var(--ui));zoom:var(--ui);background:#fff;border-radius:22px;flex-direction:column;animation:.18s pop;display:flex;overflow:hidden}.dialog header{align-items:center;gap:12px;padding:18px 20px 12px;display:flex}.dialog header h2{letter-spacing:-.01em;flex:1;margin:0;font-size:20px}.dialog .body{padding:4px 20px 16px;overflow:auto}.dialog footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:12px 20px 18px;display:flex}.dialog textarea,.dialog input[type=text],.dialog input[type=search]{border:1px solid var(--line);-webkit-user-select:text;user-select:text;border-radius:12px;width:100%;padding:12px 14px;font-size:16px}.dialog textarea:focus,.dialog input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent-2)}.math-input{min-height:84px;font-family:ui-monospace,Cascadia Code,Consolas,monospace!important}.math-preview{border:1px solid var(--line);background:#f8fafc;border-radius:14px;place-items:center;min-height:120px;margin-top:12px;padding:16px;display:grid;overflow:auto}.math-preview img{max-width:100%;max-height:220px}.math-error{color:var(--danger);font-size:14px}.template-groups{margin-top:14px}.template-group{margin-bottom:10px}.template-group h5{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;height:36px;color:var(--ink-2);background:#fff;border-radius:99px;padding:0 12px;font-size:14px}.chip:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-soft)}.kbd-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 28px;display:grid}.kbd-row{color:var(--ink-2);border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:8px 0;font-size:14.5px;display:flex}kbd{font-family:var(--ui-font);color:var(--ink);background:#f1f5f9;border:1px solid #e2e8f0;border-bottom-width:2px;border-radius:7px;margin-left:3px;padding:3px 8px;font-size:12.5px}.pages-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.page-card{border:2px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:14px;padding:0;position:relative;overflow:hidden}.page-card.current{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-soft)}.page-card .thumb{aspect-ratio:16/10;background:#f8fafc;place-items:center;display:grid;overflow:hidden}.page-card .thumb img{object-fit:contain;width:100%;height:100%}.page-card .meta{color:var(--ink-2);justify-content:space-between;align-items:center;gap:4px;padding:6px 6px 6px 10px;font-size:13px;font-weight:600;display:flex}.page-card .meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-card .actions{gap:0;display:flex}.bg-swatch{border:2px solid var(--line);cursor:pointer;border-radius:14px;width:52px;height:52px}.bg-swatch.active{box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--accent-2)}.pattern-btn{border:2px solid var(--line);cursor:pointer;width:76px;height:64px;color:var(--ink-2);background:#fff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.pattern-btn.active{border-color:var(--accent-2);background:var(--accent-soft);color:var(--accent)}.pattern-btn i{background-color:#fff;border:1px solid #cbd5e1;border-radius:4px;width:40px;height:26px;display:block}.lessons-view{z-index:18;padding:calc(var(--topbar-h) + 34px) 28px 40px;-webkit-user-select:none;user-select:none;background:#f4f6fb;position:fixed;inset:0;overflow:auto}.lessons-head{flex-wrap:wrap;align-items:center;gap:12px;max-width:1280px;margin:0 auto 22px;display:flex}.lessons-head h1{letter-spacing:-.02em;flex:auto;margin:0;font-size:28px}.lessons-head .search{width:min(320px,100%);position:relative}.lessons-head .search input{border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#fff;border-radius:12px;width:100%;height:44px;padding:0 14px 0 40px;font-size:15px}.lessons-head .search svg{color:var(--muted);position:absolute;top:12px;left:12px}.lessons-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;max-width:1280px;margin:0 auto;display:grid}.lesson-card{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.lesson-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.lesson-card.current{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-soft)}.lesson-card .thumb{aspect-ratio:16/10;cursor:pointer;background:#f1f5f9;border:0;place-items:center;width:100%;padding:0;display:grid;overflow:hidden}.lesson-card .thumb img{object-fit:cover;width:100%;height:100%}.lesson-card .info{align-items:center;gap:6px;padding:12px 12px 10px 16px;display:flex}.lesson-card .info div{flex:1;min-width:0}.lesson-card .info strong{white-space:nowrap;text-overflow:ellipsis;font-size:15.5px;display:block;overflow:hidden}.lesson-card .info small{color:var(--muted);font-size:12.5px}.new-card{cursor:pointer;min-height:230px;color:var(--accent);background:0 0;border:2px dashed #cbd5e1;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:16px;font-weight:650;display:flex}.new-card:hover{background:var(--accent-soft);border-color:var(--accent-2)}.empty-note{text-align:center;color:var(--muted);padding:40px}.toasts{left:50%;bottom:calc(var(--btn) * 1.6 + 40px);z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.toast{color:#fff;padding:calc(12px * var(--ui)) calc(18px * var(--ui));font-size:calc(14.5px * var(--ui));box-shadow:var(--shadow-lg);background:#0f172a;border-radius:12px;max-width:90vw;animation:.18s pop}.toast.error{background:#b91c1c}.busy{z-index:90;background:#0f172a73;place-items:center;display:grid;position:fixed;inset:0}.busy .card{zoom:var(--ui);min-width:300px;box-shadow:var(--shadow-lg);background:#fff;border-radius:18px;padding:24px 28px}.busy .bar{background:#e2e8f0;border-radius:99px;height:8px;margin-top:14px;overflow:hidden}.busy .bar i{background:var(--accent);height:100%;transition:width .2s;display:block}.drop-overlay{z-index:70;border:3px dashed var(--accent-2);color:var(--accent);pointer-events:none;background:#2563eb14;border-radius:24px;place-items:center;font-size:22px;font-weight:700;display:grid;position:fixed;inset:10px}.presenter-exit{z-index:25;position:fixed;top:12px;right:12px}.app.fade.writing .topbar,.app.fade.writing .dock,.app.fade.writing .bottom-bar,.app.fade.writing .popover{opacity:.15}.app.hc .panel{-webkit-backdrop-filter:none;background:#fff;border:2px solid #0f172a47}.app.hc .icon-btn{color:#0f172a}.app.hc .icon-btn svg{stroke-width:2.4px}.app.hc .icon-btn.active{background:#1e3a8a}.app.hc .page-label,.app.hc .zoom-label,.app.hc .title-input{color:#0f172a}.mode-chip{height:var(--btn-sm);padding:0 calc(12px * var(--ui));border:1px solid var(--line);cursor:pointer;font-weight:600;font-size:calc(13.5px * var(--ui));color:var(--ink-2);white-space:nowrap;background:#fff;border-radius:99px;align-items:center;gap:6px;display:inline-flex}.mode-chip svg{width:calc(18px * var(--ui));height:calc(18px * var(--ui))}.mode-chip:hover{border-color:var(--accent-2);color:var(--accent)}.mode-cards{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.mode-card{text-align:left;border:2px solid var(--line);cursor:pointer;color:var(--ink-2);background:#fff;border-radius:16px;flex-direction:column;gap:6px;padding:14px;display:flex}.mode-card strong{color:var(--ink);align-items:center;gap:8px;font-size:16px;display:flex}.mode-card span{font-size:13px;line-height:1.4}.mode-card.active{border-color:var(--accent-2);background:var(--accent-soft)}.mode-card em{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;font-style:normal;font-weight:700}.seg{background:#f1f5f9;border-radius:12px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:8px 14px;font-size:14px;font-weight:600}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0f172a1f}.cap-table{border-collapse:collapse;width:100%;font-size:13.5px}.cap-table td{vertical-align:top;border-bottom:1px solid #f1f5f9;padding:7px 4px}.cap-table td:first-child{color:var(--muted);width:46%}.cap-ok{color:#15803d;font-weight:600}.cap-no{color:#b45309;font-weight:600}.note{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.45}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px;font-size:13px;font-weight:650}@media (max-width:1100px){.brand-text{display:none}}@media (max-width:900px){.save-status span,.mode-chip span,.tab span{display:none}}@media (max-width:640px){.tabs{margin-left:0}.zoom-bar{display:none}.lessons-view{padding:calc(var(--topbar-h) + 22px) 14px 30px}.hide-sm{display:none!important}.brand-mark{display:none}}@media (max-width:400px){.title-input{display:none}}@media print{.topbar,.dock,.bottom-bar{display:none}}.app.dock-bottom .toasts{bottom:calc(var(--btn) * 2 + var(--inset-b) + 90px)}.app.dock-bottom.dock-2col .toasts{bottom:calc(var(--btn) * 3 + var(--inset-b) + 90px)}.ai-launch{height:var(--btn-sm);padding:0 calc(14px * var(--ui));cursor:pointer;white-space:nowrap;font-weight:650;font-size:calc(14px * var(--ui));color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border:0;border-radius:99px;align-items:center;gap:7px;display:inline-flex;box-shadow:0 4px 14px #4f46e559}.ai-launch svg{width:calc(18px * var(--ui));height:calc(18px * var(--ui))}.ai-launch.on{background:#1e1b4b}.app{--ai-w:min(calc(460px * var(--ui)), 42vw)}.ai-panel{z-index:22;top:calc(var(--topbar-h) + var(--inset-t) + 12px);right:var(--inset-r);bottom:var(--inset-b);width:var(--ai-w);font-size:calc(15px * var(--ui));background:#fff;flex-direction:column;animation:.2s ai-in;display:flex;position:fixed;overflow:hidden}@keyframes ai-in{0%{opacity:0;transform:translate(16px)}}.app.presenting .ai-panel{top:var(--inset-t)}.app.ai-open .zoom-bar,.app.ai-open.dock-right .dock{right:calc(var(--ai-w) + var(--inset-r) + 10px)}.ai-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 10px 8px 14px;display:flex}.ai-title{align-items:center;gap:10px;display:flex}.ai-title strong{font-size:1.05em;display:block}.ai-title small{color:var(--muted);font-size:.8em}.ai-badge{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.ai-ctx{border-bottom:1px solid var(--line)}.ai-ctx-summary{cursor:pointer;text-align:left;width:100%;color:var(--ink-2);background:#f8fafc;border:0;justify-content:space-between;align-items:center;gap:8px;padding:9px 14px;font-size:.88em;display:flex}.ai-ctx-summary em{color:#b45309;font-style:normal}.ai-ctx-form{grid-template-columns:1fr 1fr 1fr;gap:8px 10px;padding:10px 14px 12px;display:grid}.ai-ctx-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:.78em;font-weight:600;display:flex}.ai-ctx-form .wide{grid-column:1/-1}.ai-ctx-form input,.ai-ctx-form select{border:1px solid var(--line);height:38px;color:var(--ink);-webkit-user-select:text;user-select:text;background:#fff;border-radius:10px;width:100%;min-width:0;padding:0 10px;font-size:15px}.ai-seg-row{flex-wrap:wrap;gap:8px;display:flex}.ai-seg-row .seg button{padding:6px 12px;font-size:13.5px}.ai-body{-webkit-user-select:text;user-select:text;overscroll-behavior:contain;flex:1;padding:12px 14px;overflow-y:auto}.ai-note{color:var(--muted)}.ai-card{border:1px solid var(--line);background:#f8fafc;border-radius:14px;flex-direction:column;gap:8px;padding:14px;display:flex}.ai-card.warn{background:#fffbeb;border-color:#fde68a}.ai-card p{color:var(--ink-2);margin:0;font-size:.93em;line-height:1.45}.ai-card input{border:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;-webkit-user-select:text;user-select:text;border-radius:12px;height:46px;padding:0 12px;font-size:18px}.ai-welcome p{color:var(--ink-2);margin:4px 0 8px;line-height:1.5}.ai-turn{margin-bottom:18px}.ai-q{color:#3730a3;background:#eef2ff;border-radius:14px 14px 14px 4px;max-width:92%;margin-bottom:8px;padding:7px 12px;font-size:.9em;font-weight:600;display:inline-block}.ai-a{color:var(--ink);line-height:1.55}.ai-a p{margin:4px 0 8px}.ai-sec{margin-bottom:6px}.ai-sec-head{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.ai-sec-head h3{color:#1d4ed8;margin:0;font-size:1.02em}.ai-li{gap:8px;margin:3px 0;display:flex}.ai-li .dot{color:#1d4ed8;min-width:1.1em;font-weight:700}.ai-math{background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin:8px 0;padding:8px 10px;display:flex;overflow-x:auto}.ai-math img{max-width:100%;max-height:90px}.mini-add{color:#3730a3;cursor:pointer;-webkit-user-select:none;user-select:none;background:#eef2ff;border:1px solid #c7d2fe;border-radius:99px;flex:none;align-items:center;gap:3px;height:28px;padding:0 10px;font-size:12.5px;font-weight:650;display:inline-flex}.mini-add:hover{background:#e0e7ff}.ai-caret{vertical-align:-3px;background:#6366f1;border-radius:2px;width:8px;height:18px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.ai-err{color:#b91c1c;margin:0;font-size:.92em}.ai-err-box{background:#fef2f2;border-radius:12px;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.ai-actions{border-top:1px dashed var(--line);-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;display:flex}.ai-add{box-shadow:0 4px 12px #1d4ed84d}.ai-follow{flex-wrap:wrap;gap:6px;width:100%;display:flex}.ai-follow .chip,.ai-quick .chip{align-items:center;gap:5px;height:32px;font-size:13px;display:inline-flex}.chip:disabled{opacity:.5;cursor:default}.chip.accent{color:#3730a3;background:#eef2ff;border-color:#c7d2fe}.ai-model{color:var(--muted);width:100%;font-size:11.5px}.ai-compose{border-top:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#fff;flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.ai-quick{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.ai-quick::-webkit-scrollbar{display:none}.ai-quick .chip{flex:none}.ai-selection{color:#3730a3;background:#eef2ff;border-radius:10px;justify-content:space-between;align-items:center;gap:6px;padding:4px 4px 4px 10px;font-size:12.5px;display:flex}.ai-input{align-items:flex-end;gap:8px;display:flex}.ai-input textarea{resize:none;border:1px solid var(--line);-webkit-user-select:text;user-select:text;border-radius:14px;flex:1;min-height:52px;max-height:140px;padding:10px 12px;font-family:inherit;font-size:15.5px;line-height:1.4}.ai-input textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent-2)}.ai-send{border-radius:14px;width:52px;height:52px}.ai-send:disabled{color:#6366f1;opacity:1;background:#e0e7ff}.ai-solve{align-self:flex-start;align-items:center;gap:5px;height:32px;font-size:13px;display:inline-flex}.ai-disclaimer{color:var(--muted);margin:0;font-size:11.5px}.sel-bar .ask-ai{color:#6d28d9}@media (max-width:900px){.app{--ai-w:calc(100vw - 2 * var(--inset-r))}.ai-panel{z-index:40;border-radius:22px 22px 18px 18px;height:min(78vh,760px);top:auto;box-shadow:0 -12px 40px #0f172a40}.ai-launch span{display:none}.ai-launch{width:var(--btn-sm);justify-content:center;padding:0}.ai-ctx-form{grid-template-columns:1fr 1fr}}.admin-wrap{-webkit-user-select:text;user-select:text;background:#f4f6fb;font-size:15px;position:fixed;inset:0;overflow:auto}.admin-login{max-width:420px;box-shadow:var(--shadow);background:#fff;border-radius:20px;flex-direction:column;gap:12px;margin:12vh auto;padding:32px;display:flex}.admin-login h1{margin:0;font-size:22px}.admin-login p{color:var(--muted);margin:0}.admin-login input,.admin-card input,.admin-card select,.admin-inline input{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;height:40px;padding:0 10px;font-size:14.5px}.admin-card td input{width:100%}.admin-back{color:var(--accent);align-items:center;gap:6px;font-size:14px;text-decoration:none;display:inline-flex}.admin-head{z-index:2;border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex;position:sticky;top:0}.admin-head h1{margin:0;font-size:20px}.admin-head small{color:var(--muted)}.admin-head a.btn{text-decoration:none}.admin-main{max-width:1240px;margin:0 auto;padding:22px 24px 60px}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;display:grid}.admin-grid .wide{grid-column:1/-1}.admin-stack{flex-direction:column;gap:16px;display:flex}.admin-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:18px 20px;overflow-x:auto}.admin-card h2{margin:0 0 10px;font-size:17px}.admin-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-row{align-items:center;gap:10px;padding:6px 0;display:flex}.admin-muted{color:var(--muted);font-size:13px}.admin-err{color:#b91c1c;font-size:14px}.admin-warn{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:8px 12px;font-size:13.5px}.admin-big{margin:4px 0;font-size:30px;font-weight:700}.admin-big small{color:var(--muted);font-size:14px;font-weight:500}.admin-meter{background:#e2e8f0;border-radius:99px;height:10px;overflow:hidden}.admin-meter i{height:100%;display:block}.admin-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.admin-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px;font-size:12.5px;font-weight:600}.admin-table td{vertical-align:top;border-bottom:1px solid #f1f5f9;padding:8px}.admin-table td small{margin-top:3px;font-size:12px;display:block}.admin-table code,.admin-code code{background:#f1f5f9;border-radius:6px;padding:2px 6px;font-size:13px}.ok{color:#15803d;font-weight:600}.bad{color:#b91c1c;font-weight:600}.admin-routes{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 16px;margin:8px 0;display:grid}.admin-routes label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.admin-routes label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}.admin-savebar{background:#f4f6fb;align-items:center;gap:10px;padding:12px 0;display:flex;position:sticky;bottom:0}.admin-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-inline input{flex:200px}.admin-code{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;display:flex}.admin-code p{width:100%;margin:0}.admin-code code{letter-spacing:.08em;background:#fff;padding:6px 12px;font-size:20px}.admin-flash{color:#fff;z-index:5;background:#0f172a;border-radius:12px;padding:10px 18px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.ai-cut{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:8px 10px;font-size:.88em}.pic-search{flex-wrap:wrap;gap:8px;display:flex}.pic-search input{flex:260px}.pic-search select{border:1px solid var(--line);border-radius:12px;height:46px;padding:0 10px}.pic-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:12px;display:grid}.pic-card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;margin:0;display:flex;overflow:hidden}.pic-card button{cursor:pointer;aspect-ratio:4/3;background:#f8fafc;border:0;place-items:center;padding:0;display:grid}.pic-card button:hover{outline:3px solid var(--accent-2);outline-offset:-3px}.pic-card img{object-fit:contain;max-width:100%;max-height:100%}.pic-card figcaption{flex-direction:column;gap:2px;padding:6px 8px;font-size:12.5px;display:flex}.pic-card figcaption span{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.pic-card figcaption small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.pic-gen{flex-wrap:wrap;align-items:flex-start;gap:14px;margin-top:12px;display:flex}.pic-gen img{border:1px solid var(--line);border-radius:12px;max-width:min(520px,100%)}.pic-gen-actions{flex-direction:column;gap:8px;display:flex}.explain-float{z-index:45;color:#fff;cursor:pointer;white-space:nowrap;background:#b45309;border:0;border-radius:99px;align-items:center;gap:6px;margin-top:-8px;padding:8px 14px;font-size:13.5px;font-weight:650;display:inline-flex;position:fixed;transform:translate(-50%,-100%);box-shadow:0 6px 18px #b4530959}.explain-float:disabled{opacity:.7}.sel-bar .explain-box{color:#b45309}.sel-bar .picture-btn{color:#0f766e}
