:root{--bg: #eef4fa;--bg-2: #e6eff8;--surface: #ffffff;--surface-2: #f3f8fd;--ink: #06304e;--ink-2: #3d5b73;--ink-3: #7d95a8;--line: #d8e6f2;--brand: #0079c2;--brand-2: #009fe0;--brand-deep: #003366;--brand-grad: linear-gradient(135deg, #003366 0%, #0079c2 55%, #00ccff 100%);--accent: #00ccff;--accent-soft: #a0e1ff;--gold: #ffd200;--warn: #e08a00;--danger: #b25a00;--ok: #1f9d78;--r-lg: 22px;--r-md: 14px;--r-sm: 10px;--sh-1: 0 1px 2px rgba(0, 48, 80, .05), 0 2px 8px rgba(0, 48, 80, .04);--sh-2: 0 4px 12px rgba(0, 48, 80, .08), 0 12px 32px rgba(0, 48, 80, .08);--sh-3: 0 10px 30px rgba(0, 121, 194, .22), 0 30px 60px rgba(0, 121, 194, .14);--ease: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:radial-gradient(1200px 800px at 12% -10%,#e6f2fb 0%,transparent 55%),radial-gradient(1000px 700px at 110% 10%,#eaf6fd 0%,transparent 50%),var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d7deec;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#c2cbdd;background-clip:content-box}.app{display:grid;grid-template-columns:var(--sidebar, 300px) 1fr;height:100vh;min-height:0;overflow:hidden;transition:grid-template-columns .45s var(--ease)}.app.collapsed{--sidebar: 76px}.sidebar{background:linear-gradient(180deg,#ffffffe6,#ffffffb8);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:5}.sb-head{display:flex;align-items:center;gap:12px;padding:20px 18px 14px}.logo{width:42px;height:42px;flex:0 0 42px;border-radius:13px;background:var(--brand-grad);box-shadow:var(--sh-3);display:grid;place-items:center;color:#fff;font-weight:800;font-size:18px;animation:floaty 5s var(--ease) infinite}@keyframes floaty{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-2deg)}}.logo-text{min-width:0;opacity:1;transition:opacity .25s var(--ease)}.collapsed .logo-text{opacity:0;pointer-events:none}.logo-text b{font-size:15px;letter-spacing:-.2px;display:block}.logo-text small{color:var(--ink-3);font-size:11.5px}.sb-actions{padding:4px 14px 12px;display:flex;flex-direction:column;gap:8px}.new-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;border:none;border-radius:var(--r-md);background:var(--brand-grad);color:#fff;font-weight:600;font-size:14px;box-shadow:var(--sh-3);transition:transform .28s var(--ease-spring),box-shadow .28s var(--ease),filter .2s}.new-btn:hover{transform:translateY(-2px) scale(1.02);filter:saturate(1.1)}.new-btn:active{transform:translateY(0) scale(.98)}.collapsed .new-btn span{display:none}.sb-list{flex:1;overflow-y:auto;padding:4px 12px 12px;display:flex;flex-direction:column;gap:6px}.sess{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;cursor:pointer;position:relative;transition:background .2s var(--ease),transform .2s var(--ease-spring),border-color .2s;animation:slideIn .4s var(--ease) backwards}@keyframes slideIn{0%{opacity:0;transform:translate(-14px)}}.sess:hover{background:var(--surface-2);transform:translate(3px)}.sess.active{background:#fff;border-color:#d5e8f6;box-shadow:var(--sh-2)}.sess.active:before{content:"";position:absolute;left:-12px;top:14px;bottom:14px;width:4px;border-radius:4px;background:var(--brand-grad);animation:grow .35s var(--ease-spring)}@keyframes grow{0%{transform:scaleY(0)}}.sess-ico{width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:linear-gradient(135deg,#e8f4fd,#e8f4fd);display:grid;place-items:center;font-size:16px;transition:transform .25s var(--ease-spring)}.sess:hover .sess-ico{transform:rotate(-6deg) scale(1.08)}.sess-main{min-width:0;flex:1}.sess-title{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sess-sub{font-size:11px;color:var(--ink-3)}.collapsed .sess-main,.collapsed .sess-del{display:none}.collapsed .sess{justify-content:center}.sess-del{opacity:0;border:none;background:transparent;color:var(--ink-3);border-radius:8px;padding:4px 6px;transition:all .2s}.sess:hover .sess-del{opacity:1}.sess-del:hover{background:#fdf2e6;color:var(--danger)}.sb-foot{padding:12px 14px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.sb-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-md);transition:background .2s}.sb-user:hover{background:var(--surface-2)}.avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--brand-grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}.collapsed .sb-user .sb-user-txt,.collapsed .sb-foot .lbl{display:none}.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100vh;overflow:hidden;position:relative}.topbar{height:64px;display:flex;align-items:center;gap:14px;padding:0 22px;border-bottom:1px solid var(--line);background:#ffffffa8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:11px;width:40px;height:40px;display:grid;place-items:center;transition:all .22s var(--ease-spring);font-size:17px}.icon-btn:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:#d5e8f6}.title-input{border:1px solid transparent;background:transparent;font-size:17px;font-weight:700;padding:8px 10px;border-radius:10px;min-width:0;flex:1;color:var(--ink);transition:all .2s}.title-input:hover{background:var(--surface-2)}.title-input:focus{outline:none;background:#fff;border-color:#d5e8f6;box-shadow:var(--sh-1)}.spacer{flex:1}.btn{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 16px;font-weight:600;font-size:13.5px;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;transition:all .22s var(--ease-spring)}.btn:hover{transform:translateY(-2px);box-shadow:var(--sh-2);color:var(--ink)}.btn.primary{background:var(--brand-grad);color:#fff;border:none;box-shadow:var(--sh-3)}.btn.primary:hover{filter:saturate(1.12) brightness(1.03)}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--danger)}.btn.danger:hover{background:#fdf2e6;border-color:#f6dcb8}.content{flex:1;min-height:0;display:grid;grid-template-columns:1fr 460px;overflow:hidden}.content.full{grid-template-columns:1fr}.tree-pane{overflow-y:auto;overflow-x:hidden;min-height:0;padding:20px 24px 60px}.det-pane{border-left:1px solid var(--line);background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:auto;padding:20px;animation:slideInRight .4s var(--ease)}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}}.tnode{animation:fadeUp .35s var(--ease) backwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}}.row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);border:1px solid transparent;margin:2px 0;transition:background .18s,border-color .2s,transform .18s var(--ease-spring)}.row:hover{background:#fff;border-color:var(--line);box-shadow:var(--sh-1)}.row.sel{background:#fff;border-color:#cfe6f6;box-shadow:var(--sh-2)}.row.checked{background:linear-gradient(90deg,#eef9f6,#fff)}.caret{width:22px;height:22px;flex:0 0 22px;border:none;background:transparent;border-radius:6px;color:var(--ink-3);display:grid;place-items:center;transition:transform .25s var(--ease-spring),background .2s}.caret.open{transform:rotate(90deg)}.caret:hover{background:var(--surface-2)}.caret.leaf{visibility:hidden}.chk{width:20px;height:20px;flex:0 0 20px;border-radius:7px;border:2px solid #cfd7e8;background:#fff;display:grid;place-items:center;padding:0;line-height:0;transition:all .22s var(--ease-spring);color:#fff}.chk svg{display:block}.chk:hover{border-color:var(--brand-2);transform:scale(1.08)}.chk.on{background:var(--brand-grad);border-color:transparent;box-shadow:0 2px 8px #4c6fff59}.chk.locked{background:#eef1f8;border-color:#dfe4f0;color:var(--ink-3)}.n-name{font-size:13.5px;font-weight:600;white-space:nowrap}.n-name.req:after{content:"*";color:var(--danger);margin-left:2px}.n-type{font-size:11px;color:var(--ink-3);background:var(--surface-2);padding:2px 8px;border-radius:20px;border:1px solid var(--line);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.n-typedoc{font-size:11px;color:var(--ink-3);opacity:.85;font-style:italic;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.n-rec{font-size:11px;color:var(--warn);background:#fff7e0;padding:2px 8px;border-radius:20px;border:1px solid #ffe9a8}.badge{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;background:#e8f4fd;color:var(--brand);border:1px solid #cfe8f8}.badge.multi{background:#e4f6f1;color:var(--ok);border-color:#c3ecdf}.n-field{margin-left:auto;display:flex;align-items:center;gap:8px}.fld{padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:13px;color:var(--ink);min-width:180px;transition:all .22s var(--ease);outline:none}.fld:focus{border-color:var(--brand-2);box-shadow:0 0 0 4px #4c6fff1f}.fld:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}.fld.grow{min-width:340px}textarea.fld{resize:vertical;min-height:38px;line-height:1.45}.wiz{border:none;background:#fff;border-radius:9px;width:30px;height:30px;transition:all .2s var(--ease-spring)}.wiz:hover{background:#e8f4fd;transform:scale(1.12) rotate(8deg)}.children{margin-left:24px;border-left:1.5px dashed #e3e8f2;padding-left:14px;overflow:hidden}.children.anim{animation:expand .32s var(--ease)}@keyframes expand{0%{opacity:0;transform:scaleY(.9);transform-origin:top}}.attrs-box{margin:4px 0 4px 24px;padding:10px 14px;border-radius:var(--r-md);background:var(--surface-2);border:1px dashed var(--line)}.attrs-box h5{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-3)}.attr-row{display:flex;align-items:center;gap:8px;margin:5px 0}.search{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);margin-bottom:14px}.search input{border:none;outline:none;flex:1;font-size:14px;background:transparent}.empty{display:grid;place-items:center;height:100%;text-align:center;padding:40px}.empty .big{margin-bottom:14px;display:inline-flex;animation:floaty 6s var(--ease) infinite;opacity:.9}.empty h2{margin:0 0 6px}.empty p{color:var(--ink-3);max-width:460px;line-height:1.6}.login-wrap{height:100vh;display:grid;place-items:center;background:radial-gradient(900px 600px at 20% 10%,#e6f2fb,transparent 60%),radial-gradient(800px 600px at 90% 90%,#eaf6fd,transparent 55%),var(--bg)}.card{width:400px;background:#ffffffdb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--r-lg);padding:36px;box-shadow:var(--sh-2),0 30px 80px #4c6fff24;border:1px solid rgba(255,255,255,.9);animation:popIn .5s var(--ease-spring)}@keyframes popIn{0%{opacity:0;transform:translateY(24px) scale(.96)}}.card h1{margin:0 0 4px;font-size:24px;letter-spacing:-.4px}.card .sub{color:var(--ink-3);font-size:13.5px;margin-bottom:24px}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.field input,.field select{width:100%;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:#fff;font-size:14px;outline:none;transition:all .22s var(--ease)}.field input:focus,.field select:focus{border-color:var(--brand-2);box-shadow:0 0 0 4px #4c6fff1f}.submit{width:100%;padding:13px;border:none;border-radius:var(--r-md);background:var(--brand-grad);color:#fff;font-weight:700;font-size:15px;box-shadow:var(--sh-3);margin-top:6px;transition:transform .24s var(--ease-spring),filter .2s}.submit:hover{transform:translateY(-2px);filter:brightness(1.04)}.submit:active{transform:translateY(0) scale(.99)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a223347;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;animation:fade .2s}@keyframes fade{0%{opacity:0}}.modal{width:520px;max-width:92vw;max-height:86vh;overflow:auto;background:#fff;border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-2),0 40px 90px #1a223333;animation:popIn .4s var(--ease-spring)}.modal h3{margin:0 0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:100}.toast{padding:13px 18px;border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-2);border-left:4px solid var(--brand);font-size:13.5px;min-width:240px;animation:toastIn .4s var(--ease-spring)}.toast.err{border-color:var(--danger)}.toast.ok{border-color:var(--ok)}@keyframes toastIn{0%{opacity:0;transform:translate(40px) scale(.95)}}.import-drop{border:2px dashed #cfd7e8;border-radius:var(--r-md);padding:22px;text-align:center;color:var(--ink-3);transition:all .25s var(--ease);cursor:pointer}.import-drop:hover,.import-drop.over{border-color:var(--brand-2);background:#f0f8fd;color:var(--brand);transform:scale(1.01)}.text-preview{max-height:260px;overflow:auto;background:var(--surface-2);border-radius:var(--r-sm);padding:12px;font-size:12.5px;white-space:pre-wrap;line-height:1.5;margin-top:12px;border:1px solid var(--line)}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--ink-3);margin:18px 0 8px;font-weight:700}.loader{width:18px;height:18px;border:2.5px solid #dfe4f0;border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px;background:#e2e7f0;transition:all .3s var(--ease)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px #1f9d7824}.row.filled{background:linear-gradient(90deg,#eef9f6,#fff)}.ctx-menu{position:fixed;z-index:200;min-width:280px;background:#fffffffa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-2),0 20px 50px #1a22332e;padding:6px;animation:popIn .22s var(--ease-spring)}.ctx-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:transparent;border-radius:9px;font-size:13px;color:var(--ink);text-align:left;transition:background .15s,transform .15s var(--ease-spring)}.ctx-item:hover{background:#e8f4fd;transform:translate(3px)}.ctx-ico{font-size:15px;width:20px;text-align:center}.progress-wrap{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink-2)}.progress-bar{width:140px;height:8px;border-radius:20px;background:#e8ecf5;overflow:hidden}.progress-fill{height:100%;border-radius:20px;background:linear-gradient(90deg,#0079c2,#0cf);transition:width .6s var(--ease)}.view-tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:12px;border:1px solid var(--line)}.view-tab{border:none;background:transparent;padding:7px 13px;border-radius:9px;font-size:12.5px;font-weight:600;color:var(--ink-2);transition:all .22s var(--ease-spring)}.view-tab:hover{color:var(--ink)}.view-tab.on{background:#fff;color:var(--brand);box-shadow:var(--sh-1)}.ctx-item{align-items:flex-start;padding:8px 12px}.ctx-body{display:flex;flex-direction:column;gap:1px;min-width:0}.ctx-label{font-size:13px;font-weight:600;color:var(--ink)}.ctx-hint{font-size:11px;color:var(--ink-3);line-height:1.35}.ctx-sep{height:1px;background:var(--line);margin:5px 8px}.ctx-item.help .ctx-label{color:var(--brand)}.ctx-menu{min-width:320px;max-width:360px}.req-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);display:inline-block;margin-right:2px;box-shadow:0 0 0 3px #0079c224}.view-tab{display:inline-flex;align-items:center;gap:5px}.logo svg{box-shadow:var(--sh-3);border-radius:13px}.sess-ico svg{opacity:.95}.wiz svg{pointer-events:none}.btn svg,.new-btn svg,.icon-btn svg{pointer-events:none}.foot-btn{justify-content:flex-start}.collapsed .foot-btn{justify-content:center;padding-left:0;padding-right:0}.collapsed .foot-btn .lbl{display:none}.collapsed .sb-foot .btn{width:100%}@media(max-width:1100px){.content{grid-template-columns:1fr}.det-pane{display:none}.app{--sidebar: 240px}}@media(max-width:820px){.app{--sidebar: 0px;grid-template-columns:0 1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:40;transform:translate(-100%);transition:transform .4s var(--ease);box-shadow:0 0 60px #00305040}.app.mobile-open .sidebar{transform:translate(0)}.app.collapsed .sidebar{width:280px}.collapsed .logo-text,.collapsed .sess-main,.collapsed .sess-del{opacity:1;pointer-events:auto;display:revert}.collapsed .sess{justify-content:flex-start}.topbar{padding:0 12px;gap:8px;flex-wrap:wrap;height:auto;min-height:56px}.title-input{font-size:15px}.content{grid-template-columns:1fr}.det-pane{display:none}}.mobile-menu-btn{display:none}@media(max-width:820px){.mobile-menu-btn{display:grid}}.mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00305059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:39;animation:fade .2s}.save-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:4px 12px;font-size:12px;color:var(--ink-2);transition:all .25s var(--ease)}.save-badge.saved{color:var(--ok);border-color:#c3ecdf}.save-badge.saving{color:var(--ink-3)}.save-badge.error{color:var(--warn);border-color:#ffe9a8;background:#fff7e0}.save-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.save-dot.saved{background:var(--ok);box-shadow:0 0 0 3px #1f9d7826}.save-dot.saving{background:var(--brand);animation:pulse 1s ease-in-out infinite}.save-dot.error{background:var(--warn)}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.outline{margin-bottom:12px;border:1px solid var(--line);border-radius:var(--r-md);background:#ffffffb3;overflow:hidden}.outline-head{width:100%;display:flex;align-items:center;gap:10px;padding:11px 14px;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--ink);transition:background .2s}.outline-head:hover{background:var(--surface-2)}.outline-overall{margin-left:auto;font-size:12px;color:var(--brand);font-weight:700}.outline-caret{font-size:10px;color:var(--ink-3)}.outline-list{padding:4px 8px 10px;display:flex;flex-direction:column;gap:2px;animation:fadeUp .25s var(--ease)}.outline-item{display:grid;grid-template-columns:1fr 90px 40px;align-items:center;gap:8px;border:none;background:transparent;padding:7px 8px;border-radius:9px;font-size:12.5px;color:var(--ink-2);text-align:left;transition:all .18s}.outline-item:hover{background:var(--surface-2);transform:translate(2px)}.outline-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outline-bar{height:6px;background:#e8ecf5;border-radius:20px;overflow:hidden}.outline-fill{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));border-radius:20px;transition:width .5s var(--ease)}.outline-pct{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:11.5px}.tipbtn-wrap{position:relative;display:inline-flex}.tipbtn{border:1px solid var(--line);background:#fff;border-radius:9px;width:30px;height:30px;display:grid;place-items:center;transition:all .2s var(--ease-spring)}.tipbtn:hover{border-color:var(--brand-2);transform:translateY(-1px);box-shadow:var(--sh-1)}.tipbtn-tip{position:absolute;bottom:calc(100% + 8px);right:0;z-index:60;background:var(--brand-deep);color:#fff;font-size:12px;line-height:1.3;padding:7px 11px;border-radius:9px;white-space:nowrap;max-width:320px;box-shadow:var(--sh-2);animation:fadeUp .18s var(--ease)}.tipbtn-tip:after{content:"";position:absolute;top:100%;right:12px;border:6px solid transparent;border-top-color:var(--brand-deep)}.warn-box{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 13px;border-radius:var(--r-md);font-size:12.5px;line-height:1.45;background:#fff7e0;border:1px solid #ffe9a8;color:#8a6a00}.warn-box svg{stroke:#e08a00;flex:0 0 auto;margin-top:1px}.sess-rename{opacity:0;border:none;background:transparent;color:var(--ink-3);border-radius:8px;padding:4px 6px;transition:all .2s}.sess:hover .sess-rename{opacity:1}.sess-rename:hover{background:#eaf4fd;color:var(--brand)}.sess-title{cursor:text}.mode-nav{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--r-md);background:transparent;border:1px solid transparent;transition:background .2s var(--ease),transform .2s var(--ease-spring);font-size:13px}.mode-nav:hover{background:var(--surface-2);transform:translate(2px)}.mode-ico{display:grid;place-items:center;opacity:.9}.mode-lbl{font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapsed .mode-lbl,.collapsed .mode-nav .badge{display:none}.collapsed .mode-nav{justify-content:center}.preview-box{margin-top:14px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--surface-2);display:grid;place-items:center;max-height:380px;animation:fadeUp .3s var(--ease)}.preview-box img{max-width:100%;max-height:380px;display:block}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.profile-card{text-align:left;padding:13px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:#fff;transition:all .22s var(--ease-spring)}.profile-card:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:#d5e8f6}.profile-card.on{border-color:var(--brand);box-shadow:0 0 0 3px #0079c224,var(--sh-2);background:linear-gradient(135deg,#f3f9ff,#fff)}.pc-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.pc-name{font-weight:700;font-size:13.5px;color:var(--ink)}.pc-hint{font-size:12px;color:var(--ink-3);line-height:1.45}.params-row{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;margin-top:4px}.param{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-2)}.param>span{font-weight:600}.param input[type=range]{width:180px;accent-color:var(--brand)}.param b{color:var(--brand)}.check-param{flex-direction:row;align-items:center;gap:8px;padding-bottom:8px}.check-param input{width:17px;height:17px;accent-color:var(--brand)}.compare-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:1000px){.compare-wrap{grid-template-columns:1fr}}.compare-col{min-width:0}.img-frame{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:repeating-conic-gradient(#f1f5fa,#f1f5fa 25%,#fff 0%,#fff 50%) 50% / 22px 22px;display:grid;place-items:center;min-height:200px;max-height:460px}.img-frame img{max-width:100%;max-height:460px;display:block}.img-frame.empty-mini{min-height:220px;color:var(--ink-3)}.side-card{background:#fffc;border:1px solid var(--line);border-radius:var(--r-md);padding:15px 16px;margin-bottom:14px;box-shadow:var(--sh-1)}.side-card h4{margin:0 0 10px;font-size:13px;display:flex;align-items:center;gap:8px;color:var(--ink)}.side-card h4 svg{stroke:var(--brand)}.side-list{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-2);line-height:1.6}.side-list li{margin-bottom:5px}.side-list.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}.side-list.mono li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:8px;background:#fff}.dot.err{background:var(--danger);box-shadow:0 0 0 3px #b25a0024}.dot.run{background:var(--brand);animation:pulse 1s ease-in-out infinite}.dot.off{background:var(--ink-3)}@media(max-width:820px){.mode-lbl,.collapsed .mode-lbl{display:inline}}.sb-label{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--ink-3);font-weight:700;padding:4px 18px 6px}.collapsed .sb-label{display:none}.chain{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;position:relative}.step-card{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:12px 14px;transition:all .22s var(--ease);box-shadow:var(--sh-1);animation:fadeUp .3s var(--ease) backwards}.step-card.done{border-color:#c3ecdf;background:linear-gradient(180deg,#f6fdfa,#fff)}.step-card.error{border-color:#f6dcb8;background:#fffdf7}.step-card.running{border-color:#cfe6f6;box-shadow:0 0 0 3px #0079c21a,var(--sh-2)}.step-head{display:flex;align-items:center;gap:10px}.step-num{width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:var(--brand-grad);color:#fff;display:grid;place-items:center;font-size:12.5px;font-weight:700}.step-ico{display:grid;place-items:center;opacity:.9}.step-title{font-size:13.5px;font-weight:700;color:var(--ink)}.step-model{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-actions{display:flex;gap:3px;margin-left:6px}.step-actions .icon-btn:disabled{opacity:.35;cursor:not-allowed}.step-body{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.model-note{margin-top:10px;font-size:12.5px;color:var(--ink-2);line-height:1.5;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}.add-step{border:1px dashed var(--brand);border-radius:var(--r-md);padding:14px;background:#f5faff;animation:fadeUp .25s var(--ease)}.models-group{margin-bottom:20px}.models-group-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:14px}.models-group-head svg{stroke:var(--brand)}.models-table{display:flex;flex-direction:column;gap:8px}.model-row{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}.model-row.off{opacity:.62;background:var(--surface-2)}.mr-main{flex:1;min-width:0}.mr-name{font-weight:700;font-size:13.5px;color:var(--ink)}.mr-desc{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.45}.mr-tech{font-size:11.5px;color:var(--ink-3);margin-top:4px;line-height:1.4}.mr-tag{font-size:11px;color:var(--brand);white-space:nowrap;font-weight:600}.adv-details{margin-top:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}.adv-details>summary{cursor:pointer;padding:9px 12px;font-size:12.5px;font-weight:600;color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:6px}.adv-details>summary:before{content:"▸";color:var(--brand);transition:transform .2s}.adv-details[open]>summary:before{transform:rotate(90deg)}.adv-details>summary::-webkit-details-marker{display:none}.adv-details .param{padding:0 12px 12px}.hint-dim{font-size:11.5px;color:var(--ink-3);line-height:1.4}.onboarding{display:block!important;padding:28px 24px 60px}.onb-wrap{max-width:620px;margin:0 auto}.onb-hero{text-align:center;margin-bottom:26px}.onb-hero svg{margin-bottom:10px}.onb-hero h2{margin:0 0 8px;font-size:24px;letter-spacing:-.3px}.onb-hero p{margin:0 auto;color:var(--ink-2);font-size:14px;line-height:1.6;max-width:480px}.onb-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.onb-step{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;box-shadow:var(--sh-1)}.onb-num{width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:var(--brand-grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}.onb-step b{font-size:13.5px;color:var(--ink)}.onb-step div div{font-size:12.5px;color:var(--ink-3);margin-top:2px;line-height:1.45}.onb-note{display:flex;gap:9px;align-items:flex-start;margin-top:18px;padding:12px 14px;background:#f3f9ff;border:1px solid #d5e8f6;border-radius:var(--r-md);font-size:12.5px;color:var(--ink-2);line-height:1.5}.onb-note svg{stroke:var(--brand);flex:0 0 auto;margin-top:1px}.chain-empty{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;background:#f3f9ff;border:1px dashed #b9dcf3;border-radius:var(--r-md);font-size:13px;color:var(--ink-2);line-height:1.5}.chain-empty svg{stroke:var(--brand);flex:0 0 auto;margin-top:2px}.compare-hint{font-size:12.5px;color:var(--ink-3);margin:-6px 0 10px}.ba-outer{display:flex;justify-content:center}.ba-wrap{position:relative;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:#eef3f9;-webkit-user-select:none;user-select:none;cursor:ew-resize;touch-action:none;box-shadow:var(--sh-2)}.ba-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;display:block}.ba-divider{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:linear-gradient(180deg,#036,#0079c2,#0cf);box-shadow:0 0 12px #0079c273;pointer-events:none}.ba-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 4px 14px #00305047;border:2px solid #fff}.ba-tag{position:absolute;top:12px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;background:#ffffffeb;color:var(--ink);box-shadow:var(--sh-1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}.ba-tag-l{left:12px}.ba-tag-r{right:12px;background:var(--brand-grad);color:#fff}.ba-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:12px;color:#fff;background:#00305099;padding:5px 12px;border-radius:20px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.info-box{display:flex;gap:9px;align-items:flex-start;margin:10px 0;padding:11px 13px;background:#f3f9ff;border:1px solid #d5e8f6;border-radius:var(--r-md);font-size:12.5px;color:var(--ink-2);line-height:1.5}.info-box svg{stroke:var(--brand);flex:0 0 auto;margin-top:1px}.result-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.strength-row{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:12.5px;color:var(--ink-2);flex-wrap:wrap}.strength-row input[type=range]{flex:1;min-width:160px;accent-color:var(--brand)}.strength-row b{color:var(--brand);min-width:44px;text-align:right}.ba-blend{cursor:default}.step-out-bar{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.step-out-label{font-size:12.5px;color:var(--ink-2);font-weight:600}.step-dl{padding:8px 14px;font-size:13px}.result-from{font-size:12.5px;color:var(--ink-3)}.result-from b{color:var(--ink)}.step-quick{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.step-quick-row{gap:14px}
