:root{--green-50:#ecfdf3;--green-100:#d1fae0;--green-200:#a7f3c6;--green-300:#6ee7a8;--green-400:#34d399;--green-500:#10b981;--green-600:#0f9d58;--green-700:#0c7a45;--green-800:#0a5c35;--bg:#f5faf7;--card:#fff;--surface-2:#f3f8f5;--line:#e3ece6;--text:#16241c;--ink:#0d1b14;--muted:#5b6b62;--accent-text:#0c7a45;--soft:#ecfdf3;--soft-border:#a7f3c6;--nav-bg:rgba(245,250,247,.72);--shadow:0 1px 2px rgba(13,27,20,.04),0 8px 30px rgba(13,27,20,.06);--shadow-lg:0 20px 60px rgba(12,122,69,.16);--radius:16px;color-scheme:light}[data-theme=dark]{--bg:#0c1310;--card:#141e19;--surface-2:#0f1814;--line:#25332c;--text:#d8e6df;--ink:#f1f7f4;--muted:#8ba596;--accent-text:#4ade80;--soft:#16271d;--soft-border:#2b4636;--nav-bg:rgba(12,19,16,.72);--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 36px rgba(0,0,0,.45);--shadow-lg:0 24px 70px rgba(0,0,0,.6);color-scheme:dark}*{box-sizing:border-box}body,html{padding:0;margin:0}html{scroll-behavior:smooth}body{background:radial-gradient(1100px 520px at 100% -5%,rgba(16,185,129,.08),transparent 60%),radial-gradient(900px 500px at -10% 8%,rgba(15,157,88,.06),transparent 55%),var(--bg);background-attachment:fixed;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4{font-family:Plus Jakarta Sans,Inter,sans-serif;color:var(--ink);line-height:1.12;letter-spacing:-.02em;margin:0}a{color:inherit;text-decoration:none}.container{max-width:1120px;margin:0 auto;padding:0 24px}::selection{background:rgba(16,185,129,.22);color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:var(--soft-border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--soft-border);border-radius:999px;border:2px solid var(--bg)}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--nav-bg);border-bottom:1px solid var(--line)}.nav-inner{justify-content:space-between;height:66px}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:10px;font-family:Plus Jakarta Sans;font-weight:800;font-size:19px;color:var(--ink)}.logo-dot{width:30px;height:30px;border-radius:9px;background:url(/logo.png) 50%/cover no-repeat,linear-gradient(135deg,var(--green-500),var(--green-700));color:transparent;font-size:0;box-shadow:0 4px 12px rgba(15,157,88,.35)}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{color:var(--muted);font-weight:500;font-size:14.5px}.nav-links a:hover{color:var(--accent-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-weight:600;font-size:15px;border-radius:12px;padding:12px 20px;transition:transform .12s ease,box-shadow .2s ease,background .2s,border-color .2s;font-family:inherit;-webkit-tap-highlight-color:transparent}.btn-primary{background:linear-gradient(135deg,var(--green-500),var(--green-700));color:#fff;box-shadow:0 8px 22px rgba(15,157,88,.28);position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsla(0,0%,100%,.2),transparent 46%);pointer-events:none}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,157,88,.36)}.btn-ghost{background:var(--card);color:var(--accent-text);border:1px solid var(--line)}.btn-ghost:hover{border-color:var(--green-400)}.btn-lg{padding:15px 28px;font-size:16px}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.hero{position:relative;overflow:hidden;padding:70px 0 40px}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(900px 380px at 80% -10%,rgba(16,185,129,.18),transparent 60%),radial-gradient(700px 360px at 5% 10%,rgba(15,157,88,.12),transparent 55%);z-index:0}.hero .container{position:relative;z-index:1}.pill{display:inline-flex;align-items:center;gap:8px;background:var(--soft);color:var(--accent-text);border:1px solid var(--soft-border);font-weight:600;font-size:13px;padding:6px 14px;border-radius:999px;box-shadow:0 2px 10px rgba(16,185,129,.12)}.hero h1{font-size:clamp(34px,6vw,60px);margin:22px 0 16px;max-width:16ch;letter-spacing:-.03em;animation:rise .6s cubic-bezier(.2,.7,.3,1) both}.hero h1 .hl{background:linear-gradient(120deg,var(--green-500),var(--green-400));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.sub{font-size:clamp(16px,2.4vw,20px);color:var(--muted);max-width:56ch;margin:0 0 28px;animation:rise .6s cubic-bezier(.2,.7,.3,1) .06s both}.hero-cta{gap:14px;align-items:center;animation:rise .6s cubic-bezier(.2,.7,.3,1) .12s both}.hero-cta,.trust{display:flex;flex-wrap:wrap}.trust{gap:18px;margin-top:22px;color:var(--muted);font-size:13.5px;animation:rise .6s cubic-bezier(.2,.7,.3,1) .18s both}.trust span{display:flex;align-items:center;gap:7px}.check{color:var(--green-500);font-weight:800}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}section.block{padding:64px 0}.eyebrow{color:var(--accent-text);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.h2{font-size:clamp(26px,4vw,40px);margin:10px 0 14px}.lead{color:var(--muted);font-size:17px;max-width:60ch}.center{text-align:center;margin:0 auto}.grid{display:grid;grid-gap:20px;gap:20px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}@media (max-width:900px){.grid-3{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}.nav-links .hide-sm{display:none}}@media (max-width:620px){.grid-3{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.feat{transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .2s}.feat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.feat .ico{width:46px;height:46px;border-radius:12px;background:var(--soft);color:var(--accent-text);display:grid;place-items:center;font-size:22px;margin-bottom:14px;border:1px solid var(--soft-border)}.feat h3{font-size:18px;margin-bottom:6px}.feat p{color:var(--muted);font-size:14.5px;margin:0}.price-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px}@media (max-width:960px){.price-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.price-grid{grid-template-columns:1fr}}.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .22s}.plan:hover{transform:translateY(-4px)}.plan.feature,.plan:hover{box-shadow:var(--shadow-lg)}.plan.feature{border:2px solid var(--green-500);position:relative;transform:scale(1.035)}.plan.feature:hover{transform:scale(1.035) translateY(-4px)}@media (max-width:560px){.plan.feature,.plan.feature:hover{transform:none}}.plan.feature .tag{position:absolute;top:-12px;left:22px;background:var(--green-600);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px}.plan h3{font-size:18px}.plan .price{font-size:34px;font-weight:800;color:var(--ink);font-family:Plus Jakarta Sans;margin:10px 0 2px}.plan .per{color:var(--muted);font-size:13px}.plan ul{list-style:none;padding:0;margin:16px 0 22px;display:flex;flex-direction:column;gap:10px}.plan li{font-size:14px;color:var(--text);display:flex;gap:9px;align-items:flex-start}.plan li:before{content:"✓";color:var(--green-500);font-weight:800}.plan .btn{margin-top:auto;width:100%}.toggle-wrap{display:flex;justify-content:center;align-items:center;gap:12px;margin:22px 0 8px}.switch{position:relative;width:54px;height:30px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);cursor:pointer;transition:background .2s}.switch.on{background:var(--green-500);border-color:var(--green-500)}.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch.on i{left:27px}.save-badge{font-size:12px;font-weight:700;color:var(--accent-text);background:var(--soft);border:1px solid var(--soft-border);padding:3px 9px;border-radius:999px}.faq-item{border:1px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:12px;overflow:hidden}.faq-q{width:100%;text-align:left;background:none;border:none;padding:18px 20px;font-size:15.5px;font-weight:600;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;gap:12px;font-family:inherit}.faq-a{padding:0 20px 18px;font-size:14.5px;line-height:1.65}.faq-a,footer{color:var(--muted)}footer{border-top:1px solid var(--line);padding:40px 0;font-size:14px;margin-top:30px}.foot-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:30px 18px;background:radial-gradient(700px 320px at 50% -5%,rgba(16,185,129,.16),transparent 60%),var(--bg)}.auth-card{width:100%;max-width:440px}.tabs{display:flex;background:var(--soft);border:1px solid var(--soft-border);border-radius:12px;padding:4px;margin-bottom:22px}.tabs button{flex:1 1;border:none;background:transparent;padding:9px;border-radius:9px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer;font-family:inherit}.tabs button.active{background:var(--card);color:var(--accent-text);box-shadow:var(--shadow)}.field{margin-bottom:14px}.label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}.input,select.input,textarea.input{width:100%;border:1px solid var(--line);background:var(--surface-2);border-radius:11px;padding:12px 14px;font-size:15px;font-family:inherit;color:var(--text);outline:none;transition:border .15s,box-shadow .15s}.input:focus,select.input:focus,textarea.input:focus{border-color:var(--green-400);box-shadow:0 0 0 4px rgba(16,185,129,.14)}.alert{border-radius:11px;padding:11px 14px;font-size:14px;margin-bottom:14px}.alert-err{background:rgba(220,38,38,.1);color:#ef6b6b;border:1px solid rgba(220,38,38,.25)}.alert-ok{background:var(--soft);border:1px solid var(--soft-border)}.alert-ok,.keybox{color:var(--accent-text)}.keybox{font-family:ui-monospace,monospace;font-size:20px;font-weight:700;letter-spacing:2px;background:var(--surface-2);border:1px dashed var(--green-500);border-radius:12px;padding:14px;text-align:center;margin:6px 0 14px;word-break:break-all}.muted-sm{color:var(--muted);font-size:12.5px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:var(--card);border-bottom:1px solid var(--line)}.topbar-inner{justify-content:space-between;height:60px;gap:14px}.topbar-inner,.usage{display:flex;align-items:center}.usage{gap:10px}.credits{display:flex;flex-direction:column;gap:7px;min-width:150px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}@media (max-width:760px){.credits{flex:1 1 100%;min-width:0;order:3}}.row select.input,.row>select{flex-shrink:1;max-width:100%}.credits-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.credits-left{font-size:12.5px;font-weight:800;color:var(--ink);white-space:nowrap;font-family:Plus Jakarta Sans}.meter{width:100%;height:7px;background:var(--soft);border-radius:999px;overflow:hidden;border:1px solid var(--soft-border)}.meter>i{display:block;height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-700));transition:width .5s cubic-bezier(.2,.7,.3,1)}.badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--accent-text);border:1px solid var(--soft-border)}.badge.warn{background:rgba(245,158,11,.12);color:#d08700;border-color:rgba(245,158,11,.3)}.ws{flex:1 1}.ws-tabs{display:flex;gap:6px;margin:22px 0 18px;flex-wrap:wrap}.ws-tabs button{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:9px 16px;border-radius:999px;font-weight:600;font-size:14px;cursor:pointer;font-family:inherit;transition:all .15s}.ws-tabs button:hover{border-color:var(--green-400)}.ws-tabs button.active{background:var(--green-600);color:#fff;border-color:var(--green-600)}.editor-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}@media (max-width:920px){.editor-grid{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:420px;overflow:hidden;transition:box-shadow .2s}.panel:focus-within{box-shadow:0 0 0 3px rgba(16,185,129,.12),var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.panel-head .ttl{font-weight:700;font-size:14px;color:var(--ink)}.editor{flex:1 1;padding:16px;font-size:15px;line-height:1.7;outline:none;overflow:auto;white-space:pre-wrap;color:var(--text);min-height:300px;background:transparent;border:none;resize:none;font-family:inherit;width:100%}.editor::placeholder{color:var(--muted);opacity:.7}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-2)}.chip{font-size:12px;color:var(--muted)}.mic{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--card);cursor:pointer;display:grid;place-items:center;font-size:17px}.mic.rec{background:rgba(239,68,68,.15);border-color:#fca5a5;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 6px rgba(239,68,68,0)}}.row{gap:10px;align-items:center}.row,.seg{display:flex;flex-wrap:wrap}.seg{gap:6px}.seg button{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:7px 13px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.seg button.on{background:var(--soft);color:var(--accent-text);border-color:var(--soft-border)}.gauge{text-align:center;padding:18px}.gauge .num{font-size:54px;font-weight:800;font-family:Plus Jakarta Sans;line-height:1}.spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.5);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.hidden{display:none}.engine-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}@media (max-width:720px){.engine-row{grid-template-columns:1fr}}.engine{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:13px;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:transform .18s cubic-bezier(.2,.7,.3,1),border .15s,box-shadow .2s,background .15s;font-family:inherit}.engine:hover{border-color:var(--green-400);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.engine.on{border-color:var(--green-500);background:var(--soft);box-shadow:0 0 0 3px rgba(16,185,129,.12)}.engine-name{font-weight:700;font-size:15px;color:var(--ink)}.engine-desc{font-size:12.5px;color:var(--muted)}.engine-model{align-self:flex-start;margin-top:5px;font-size:10.5px;letter-spacing:.02em;color:var(--accent-text);font-weight:700;background:var(--soft);border:1px solid var(--soft-border);border-radius:999px;padding:2px 9px;text-transform:uppercase}.pro-pill{font-size:9.5px;font-weight:800;letter-spacing:.5px;background:linear-gradient(135deg,var(--green-600),var(--green-700));color:#fff;padding:1px 6px;border-radius:999px;margin-left:7px;vertical-align:middle}.tools-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px;margin-bottom:16px}@media (max-width:900px){.tools-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:560px){.tools-grid{grid-template-columns:repeat(2,1fr)}}.tool{border:1px solid var(--line);background:var(--card);border-radius:13px;padding:13px 12px;cursor:pointer;display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;transition:transform .18s cubic-bezier(.2,.7,.3,1),background .15s,box-shadow .2s,border-color .2s;font-family:inherit}.tool:hover{border-color:var(--green-400);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.tool.on{border-color:var(--green-500);background:var(--soft);box-shadow:0 0 0 3px rgba(16,185,129,.12)}.tool-ico{font-size:20px}.tool-name{font-weight:700;font-size:14px;color:var(--ink)}.tool-desc{font-size:11.5px;color:var(--muted)}.editor-wrap{position:relative;flex:1 1}.editor-wrap,.empty-hint{display:flex;flex-direction:column}.empty-hint{position:absolute;inset:0;align-items:center;justify-content:center;gap:7px;text-align:center;color:var(--muted);pointer-events:none;padding:24px}.empty-hint b{color:var(--text);font-size:15px}.empty-hint span{font-size:13px;max-width:36ch}.empty-hint .eh-ico{font-size:34px;opacity:.85;max-width:none}.scorebar{height:10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.scorebar>i{display:block;height:100%;transition:width .5s cubic-bezier(.2,.7,.3,1)}.toast-wrap{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:200}.toast{padding:11px 16px;border-radius:11px;font-size:14px;font-weight:600;color:#fff;box-shadow:var(--shadow-lg);animation:toastIn .22s ease;max-width:330px}.toast-ok{background:var(--green-700)}.toast-err{background:#b42318}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.theme-toggle{position:fixed;left:18px;bottom:18px;z-index:120;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--accent-text);cursor:pointer;display:grid;place-items:center;font-size:18px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .2s}.theme-toggle:hover{transform:translateY(-2px) scale(1.05);box-shadow:var(--shadow-lg)}table{width:100%;border-collapse:collapse;font-size:14px}table thead tr{text-align:left;color:var(--muted);border-bottom:1px solid var(--line)}table th{padding:12px 14px;font-weight:600}table td{padding:10px 14px}table tbody tr{border-bottom:1px solid var(--line);transition:background .15s}table tbody tr:hover{background:var(--soft)}.btn:focus-visible,.input:focus-visible,a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--green-500);outline-offset:2px}@media (max-width:900px){.container{padding:0 18px}.panel{min-height:340px}.editor{min-height:200px}.toast-wrap{left:14px;right:14px}.toast{max-width:none}}@media (max-width:600px){.container{padding:0 14px}.topbar-inner{height:auto;min-height:56px;padding:9px 0}.topbar-inner,.usage{flex-wrap:wrap;gap:8px}.usage{justify-content:flex-end;width:100%}.credits{flex:1 1 100%;min-width:0;order:3}.usage .btn{flex:1 1 auto;justify-content:center}.usage .muted-sm{font-size:11px}.ws-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;margin:16px 0 14px;scrollbar-width:none}.ws-tabs::-webkit-scrollbar{display:none}.ws-tabs button{white-space:nowrap;flex:0 0 auto}.toolbar{gap:6px}.toolbar .btn{flex:1 1 auto;justify-content:center}.panel{min-height:300px}.editor{min-height:220px;font-size:16px}.row .seg{width:100%}.row>select.input{width:100%!important}.hero{padding:44px 0 28px}.hero-cta .btn{width:100%}.nav-links{gap:12px}.nav-links .btn{padding:8px 12px!important}.foot-inner{flex-direction:column;align-items:flex-start;gap:10px}.theme-toggle{left:12px;bottom:12px}}@media (max-width:380px){.ws-tabs button{padding:8px 12px;font-size:13px}.engine{padding:10px 11px}.brand{font-size:17px!important}}.ed-wrap{position:relative}.ed-drop{position:absolute;inset:0;z-index:130;background:rgba(15,157,88,.12);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:2px dashed var(--green-500);border-radius:14px;justify-content:center;pointer-events:none}.ed-drop,.ed-drop-card{display:flex;align-items:center}.ed-drop-card{flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px 30px;box-shadow:var(--shadow-lg)}.ed-drop-card b{color:var(--ink);font-size:16px}.ed-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:14px 14px 0 0;position:-webkit-sticky;position:sticky;top:60px;z-index:20}.ed-group{display:flex;gap:4px;padding-right:8px;border-right:1px solid var(--line)}.ed-group:last-child{border-right:none}.ed-btn{min-width:34px;height:34px;padding:0 9px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;transition:all .14s}.ed-btn:hover{border-color:var(--green-400);background:var(--soft)}.ed-btn.on{background:var(--soft);border-color:var(--green-500);color:var(--accent-text)}.ed-sel{height:34px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:0 8px;font-size:13px;font-family:inherit;cursor:pointer}.ed-ai-group{margin-left:auto;gap:8px;border-right:none}.ed-ai-menu-wrap{position:relative}.ed-ai-btn{height:34px;padding:0 14px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--green-500),var(--green-700));color:#fff;font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(15,157,88,.3)}.ed-ai-btn:hover{filter:brightness(1.05)}.ed-ai-menu{position:absolute;right:0;top:42px;width:230px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:60;display:flex;flex-direction:column;gap:2px}.ed-ai-item{text-align:left;padding:9px 12px;border:none;background:transparent;color:var(--text);border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}.ed-ai-item:hover{background:var(--soft);color:var(--accent-text)}.ed-ai-row{display:flex;gap:6px;padding:8px 6px 4px;border-top:1px solid var(--line);margin-top:4px}.ed-ai-row .ed-sel{flex:1 1;min-width:0}.ed-surface-wrap{position:relative;overflow:hidden;border-radius:0 0 14px 14px}.ed-surface{min-height:460px;max-height:70vh;overflow:auto;padding:28px 32px;background:var(--card);border:1px solid var(--line);border-top:none;border-radius:0 0 14px 14px;outline:none;font-size:16.5px;line-height:1.75;color:var(--text)}.ed-surface:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.ed-surface[dir=rtl]{text-align:right}.ed-surface h1{font-size:1.7em;margin:.6em 0 .3em}.ed-surface h2{font-size:1.35em;margin:.6em 0 .3em}.ed-surface p{margin:0 0 .8em}.ed-surface ol,.ed-surface ul{margin:0 0 .8em;-webkit-padding-start:1.6em;padding-inline-start:1.6em}.ed-surface blockquote{margin:0 0 .8em;padding:.4em 1em;-webkit-border-start:3px solid var(--green-400);border-inline-start:3px solid var(--green-400);background:var(--soft);border-radius:6px;color:var(--ink)}.ed-surface a{color:var(--accent-text);text-decoration:underline}.ed-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none;overflow:hidden}.ed-empty button{pointer-events:auto}.ed-empty-card{max-width:520px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.ed-empty-ico{font-size:42px}.ed-empty-card b{font-size:19px;color:var(--ink);font-family:Plus Jakarta Sans}.ed-empty-card>p{max-width:42ch;margin:0 0 6px}.ed-empty-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:8px}.ed-tips{display:grid;grid-gap:7px;gap:7px;text-align:start;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--muted)}.ed-tips span{line-height:1.4}.ed-tips b{color:var(--text);font-weight:600}.ed-busy{position:absolute;top:14px;right:18px;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--accent-text);box-shadow:var(--shadow);z-index:15}.ed-busy,.ed-foot{display:flex;align-items:center}.ed-foot{justify-content:space-between;gap:12px;padding:12px 4px 0;flex-wrap:wrap}.ed-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ed-goal{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.ed-goalbar{width:80px;height:6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.ed-goalbar>i{display:block;height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-700));transition:width .4s cubic-bezier(.2,.7,.3,1)}.ed-goal-set{border:1px dashed var(--line);background:transparent;color:var(--muted);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.ed-goal-set:hover{border-color:var(--green-400);color:var(--accent-text)}.ed-goal-edit{display:inline-flex;align-items:center;gap:6px}.ed-save{font-size:12px;font-weight:600;min-width:56px;transition:opacity .3s}.ed-save-saving{color:var(--muted)}.ed-save-saved{color:var(--accent-text)}.ed-save-local{color:#d97706}.ed-save-idle{opacity:0}.ed-cloud-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding:11px 14px;background:var(--soft);border:1px solid var(--soft-border);border-radius:12px;font-size:13.5px;color:var(--accent-text);font-weight:600}.ed-cloud-actions,.ed-docs{display:flex;gap:8px}.ed-docs{align-items:center;margin-bottom:10px;flex-wrap:wrap}.ed-docs-label{font-size:16px}.ed-docs-sel{height:36px;min-width:180px;max-width:280px;font-weight:600}.ed-docs-count{margin-left:auto}@media (max-width:600px){.ed-docs-sel{min-width:0;flex:1 1}.ed-docs-count{display:none}}.ed-bubble{position:fixed;transform:translateX(-50%);display:flex;gap:2px;background:var(--ink);border-radius:10px;padding:4px;box-shadow:var(--shadow-lg);z-index:120}.ed-bubble button{border:none;background:transparent;color:#fff;font-size:12.5px;font-weight:600;padding:7px 10px;border-radius:7px;cursor:pointer;font-family:inherit;white-space:nowrap}.ed-bubble button:hover{background:hsla(0,0%,100%,.16)}.ed-modal{position:fixed;inset:0;background:rgba(8,15,12,.55);display:flex;align-items:center;justify-content:center;padding:18px;z-index:200;animation:toastIn .18s ease}.ed-card{width:min(640px,100%);max-height:84vh;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}.ed-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.ed-card-body{padding:18px;overflow:auto;white-space:pre-wrap;line-height:1.7;font-size:15px;color:var(--text)}.ed-card-foot{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px;border-top:1px solid var(--line)}@media (max-width:600px){.ed-sel,.gen-input,.input{font-size:16px}.app-shell table{min-width:560px}.ed-toolbar{position:static;top:auto;gap:5px;padding:7px;border-radius:12px 12px 0 0}.ed-group{padding-right:5px}.ed-btn{min-width:34px;height:38px;padding:0 8px;font-size:13px}.ed-sel{height:34px;font-size:16px;max-width:150px}.ed-ai-group{width:100%;margin-left:0;order:9;justify-content:space-between;padding-top:7px;border-top:1px solid var(--line)}.ed-ai-btn{flex:1 1;height:34px}.ed-ai-menu{width:min(86vw,260px)}.ed-surface{padding:16px 14px;font-size:16px;min-height:58vh}.ed-empty{padding:14px;align-items:flex-start}.ed-empty-card{gap:6px}.ed-empty-ico{font-size:30px}.ed-empty-card b{font-size:16px}.ed-empty-card>p{font-size:12.5px;margin-bottom:2px}.ed-empty-actions{gap:6px;margin-bottom:4px}.ed-empty-actions .btn{padding:8px 12px}.ed-tips{display:none}.ed-bubble{max-width:94vw;flex-wrap:wrap;justify-content:center}.ed-foot{flex-direction:column;align-items:stretch;gap:10px}.ed-foot>div{justify-content:space-between!important}.ed-foot .btn{flex:1 1 auto;justify-content:center}.ed-foot>div>.btn-primary{flex:1 1 100%}.ed-card-foot .btn{flex:1 1 auto;justify-content:center}.ed-docs{gap:6px}.ed-docs-label{display:none}.ed-docs-sel{flex:1 1 100%;max-width:none;min-width:0}.ed-docs .ed-btn{flex:1 1 auto;height:36px}.ed-stats{width:100%;justify-content:flex-start;row-gap:4px}}.strength-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:16px}@media (max-width:720px){.strength-row{grid-template-columns:1fr}}.strength{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:11px 13px;cursor:pointer;display:flex;flex-direction:column;gap:2px;font-family:inherit;transition:transform .16s cubic-bezier(.2,.7,.3,1),border-color .15s,box-shadow .2s,background .15s}.strength:hover{border-color:var(--green-400);transform:translateY(-2px);box-shadow:var(--shadow)}.strength.on{border-color:var(--green-500);background:var(--soft);box-shadow:0 0 0 3px rgba(16,185,129,.12)}.strength .s-name{font-weight:700;font-size:13.5px;color:var(--ink)}.strength.on .s-name{color:var(--accent-text)}.strength .s-desc{font-size:11.5px;color:var(--muted)}.gen-form{display:flex;flex-direction:column;gap:13px;padding:16px;flex:1 1;overflow:auto}.gen-form .field{margin:0}.gen-form .label{display:flex;align-items:center;gap:6px}.gen-form .label .req{color:#dc2626}.gen-form .hint{font-weight:500;color:var(--muted);font-size:11.5px;margin-left:auto}.gen-input{width:100%;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.gen-input:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(16,185,129,.13)}textarea.gen-input{resize:vertical;min-height:64px;line-height:1.5}.gen-two{display:grid;grid-template-columns:1fr 1fr;grid-gap:13px;gap:13px}@media (max-width:560px){.gen-two{grid-template-columns:1fr}}.len-row{display:flex;flex-wrap:wrap;gap:7px}.len-row button{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:8px 12px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;display:flex;flex-direction:column;gap:1px;align-items:flex-start}.len-row button .ln{font-weight:700;color:var(--ink)}.len-row button .lw{font-size:11px;color:var(--muted);font-weight:500}.len-row button.on{background:var(--soft);border-color:var(--soft-border)}.len-row button.on .ln{color:var(--accent-text)}.est-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);padding:2px 0}.est-bar .est-pill{background:var(--soft);color:var(--accent-text);border:1px solid var(--soft-border);border-radius:999px;padding:4px 11px;font-weight:700;font-size:12.5px}.est-bar .est-over{background:#fef2f2;color:#b42318;border-color:#fecaca}[data-theme=dark] .est-bar .est-over{background:rgba(220,38,38,.16);color:#fca5a5;border-color:rgba(220,38,38,.4)}[data-theme=dark] .badge.warn{background:rgba(245,158,11,.16);color:#fbbf24;border-color:rgba(245,158,11,.4)}[data-theme=dark] .toast-err{background:#7f1d1d}.op-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;color:var(--muted)}.op-load b{color:var(--text);font-size:15px}.op-load .op-sub{font-size:13px;min-height:18px;transition:opacity .3s}.op-progress{width:220px;max-width:80%}.op-progress .pbar{height:8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.op-progress .pbar>i{display:block;height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-700));transition:width .45s cubic-bezier(.2,.7,.3,1)}.op-progress .plabel{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:600}.doc-build{width:78px;height:96px;border-radius:8px;border:1.5px solid var(--green-400);background:var(--card);position:relative;overflow:hidden;box-shadow:var(--shadow)}.doc-build:before{content:"";position:absolute;left:0;right:0;top:0;height:22px;background:linear-gradient(90deg,var(--green-500),var(--green-700))}.doc-build i{position:absolute;left:11px;right:11px;height:6px;border-radius:3px;background:var(--surface-2);transform-origin:left;transform:scaleX(0);animation:lineGrow 2.1s ease-in-out infinite}.doc-build i:first-child{top:34px;animation-delay:0s}.doc-build i:nth-child(2){top:46px;animation-delay:.28s}.doc-build i:nth-child(3){top:58px;animation-delay:.56s}.doc-build i:nth-child(4){top:70px;animation-delay:.84s}.doc-build i:nth-child(5){top:82px;width:60%;animation-delay:1.12s}@keyframes lineGrow{0%{transform:scaleX(0);background:var(--surface-2)}40%{transform:scaleX(1);background:var(--green-400)}80%,to{transform:scaleX(1);background:var(--surface-2)}}.shimmer{width:200px;max-width:80%;display:flex;flex-direction:column;gap:9px}.shimmer span{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--soft) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shine 1.3s linear infinite}.shimmer span:nth-child(2){width:88%;animation-delay:.1s}.shimmer span:nth-child(3){width:72%;animation-delay:.2s}.shimmer span:nth-child(4){width:94%;animation-delay:.3s}@keyframes shine{0%{background-position:200% 0}to{background-position:-200% 0}}.radar{width:84px;height:84px;border-radius:50%;border:1.5px solid var(--line);position:relative;background:radial-gradient(circle,var(--soft) 0,transparent 70%)}.radar:after{background:conic-gradient(from 0deg,transparent 0deg,rgba(16,185,129,.45) 40deg,transparent 70deg);animation:spin 1.4s linear infinite}.radar:after,.radar:before{content:"";position:absolute;inset:0;border-radius:50%}.radar:before{box-shadow:0 0 0 1px var(--line) inset,0 0 0 22px transparent;background:repeating-radial-gradient(circle,transparent 0 13px,var(--line) 13px 14px);opacity:.5}.scanbox{width:104px;height:84px;border-radius:9px;border:1.5px solid var(--line);background:var(--surface-2);position:relative;overflow:hidden}.scanbox span{position:absolute;left:8%;right:8%;height:5px;border-radius:3px;background:var(--line)}.scanbox span:first-child{top:20%}.scanbox span:nth-child(2){top:42%;right:32%}.scanbox span:nth-child(3){top:64%}.scanbox:after{content:"";position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--green-500),transparent);box-shadow:0 0 8px 2px rgba(16,185,129,.5);top:0;animation:scan 1.5s ease-in-out infinite}@keyframes scan{0%{top:4%}50%{top:92%}to{top:4%}}.dots{display:flex;gap:8px}.dots i{width:11px;height:11px;border-radius:50%;background:var(--green-500);animation:bob .9s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes bob{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-9px);opacity:1}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}