@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7fb;--panel:#fff;--inset:#eef2f8;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--muted:#475569;--accent:#2563eb;--accent-soft:#2563eb14;--on-accent:#fff;--cta:#22c55e;--on-cta:#052e16;--danger:#dc2626;--danger-soft:#dc262612;--danger-border:#dc262661;--success:#15803d;--warning:#b45309;--ring:#2563eb;--log-text:#334155;--shadow:0 1px 2px #0f172a0d, 0 8px 24px -16px #0f172a2e}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1120;--panel:#111a2e;--inset:#0d1526;--border:#94a3b829;--border-strong:#94a3b852;--text:#e2e8f0;--muted:#94a3b8;--accent:#60a5fa;--accent-soft:#60a5fa1f;--on-accent:#0b1120;--cta:#22c55e;--on-cta:#052e16;--danger:#f87171;--danger-soft:#f871711a;--danger-border:#f8717166;--success:#4ade80;--warning:#fbbf24;--ring:#60a5fa;--log-text:#94a3b8;--shadow:0 1px 2px #0006, 0 12px 32px -18px #000000b3}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0;font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.5;transition:background-color .2s,color .2s}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.muted{color:var(--muted);font-weight:400}.app{flex-direction:column;max-width:960px;min-height:100vh;margin:0 auto;padding:34px 20px 40px;display:flex}main{flex:1;margin-top:26px}.header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.brand{letter-spacing:-.02em;cursor:pointer;align-items:center;gap:10px;margin:0;font-size:24px;font-weight:700;display:flex}.brand-mark{color:var(--cta);flex-shrink:0}.brand-name{white-space:nowrap}.brand .muted{color:var(--muted);white-space:nowrap;font-size:13.5px;font-weight:500}.tagline{color:var(--muted);margin:10px 0 0;font-size:14.5px}.warning{background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger);border-radius:10px;margin-top:14px;padding:11px 14px;font-size:13.5px;line-height:1.6}.header-links{align-items:center;gap:8px;display:flex}.header-links button{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:500}.header-links button:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.header-links button.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.header-links button.icon-btn{justify-content:center;width:34px;height:34px;padding:0}button{background:var(--panel);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s,filter .15s,transform .15s;display:inline-flex}button:hover:not(:disabled){border-color:var(--border-strong);background:var(--inset)}button:active:not(:disabled){filter:brightness(.97)}button:disabled{opacity:.55;cursor:not-allowed}button.btn-primary{background:var(--cta);color:var(--on-cta);border-color:#0000;font-weight:600}button.btn-primary:hover:not(:disabled){background:var(--cta);filter:brightness(1.07);border-color:#0000;transform:translateY(-1px)}button.btn-primary:active:not(:disabled){transform:translateY(0)}button.ghost{border-color:var(--border);color:var(--muted);background:0 0;padding:6px 12px;font-size:12.5px}button.ghost:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:0 0}button.icon-ghost{border-radius:8px;width:30px;height:30px;padding:0}.tabs{background:var(--inset);border:1px solid var(--border);border-radius:12px;gap:4px;width:-moz-fit-content;width:fit-content;max-width:100%;margin-bottom:18px;padding:4px;display:flex}.tab{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:9px;padding:8px 24px;font-size:14.5px;font-weight:550}.tab:hover:not(:disabled){color:var(--text);background:0 0;border-color:#0000}.tab.active{background:var(--panel);color:var(--text);border-color:var(--border);box-shadow:var(--shadow);font-weight:600}.badge-dev{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600}.settings{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:14px;padding:13px 16px;display:flex}.setting{color:var(--muted);align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex}.setting select{background:var(--inset);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 10px;font-family:inherit;font-size:13.5px;transition:border-color .15s}.setting select:hover{border-color:var(--border-strong)}.setting-hint{color:var(--muted);font-size:12.5px}.mode-hint{color:var(--muted);margin:-6px 0 14px;font-size:13px}.dropzone{border:2px dashed var(--border-strong);text-align:center;cursor:pointer;background:var(--panel);border-radius:14px;padding:42px 20px;transition:border-color .18s,background-color .18s}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{background:var(--accent-soft);width:58px;height:58px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;margin:0 auto 14px;transition:transform .18s;display:flex}.dropzone:hover .dropzone-icon,.dropzone.dragover .dropzone-icon{transform:translateY(-3px)}.dropzone-text{font-size:15.5px;font-weight:550}.dropzone-hint{color:var(--muted);margin-top:8px;font-size:13px}.coming-soon{background:var(--panel);border:1px dashed var(--border-strong);text-align:center;color:var(--muted);border-radius:14px;padding:32px 20px;font-size:14.5px}.unlock-tip{border:1px solid var(--border);background:linear-gradient(120deg, var(--accent-soft), transparent 55%), var(--panel);color:inherit;border-radius:14px;align-items:center;gap:14px;margin-top:14px;padding:14px 16px;text-decoration:none;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.unlock-tip:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.unlock-tip-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.unlock-tip-body{flex-direction:column;gap:2px;min-width:0;display:flex}.unlock-tip-title{color:var(--text);font-size:14.5px;font-weight:650}.unlock-tip-text{color:var(--muted);font-size:13px}.unlock-tip-cta{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;margin-left:auto;padding:8px 14px;font-size:13px;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.unlock-tip:hover .unlock-tip-cta{background:var(--accent);color:var(--on-accent)}.progress-row{align-items:center;gap:10px;margin-bottom:14px;display:flex}.progress{background:var(--inset);border:1px solid var(--border);border-radius:999px;flex:1;height:10px;margin:0;position:relative;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent), var(--cta));border-radius:inherit;height:100%;transition:width .2s}.progress-bar.indeterminate{animation:1.2s ease-in-out infinite indeterminate;width:40%!important}@keyframes indeterminate{0%{margin-left:-40%}to{margin-left:100%}}.progress-pct{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:38px;font-size:11.5px;font-weight:700}.tasklist{margin-top:26px}.tasklist-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.tasklist-header h3{color:var(--muted);margin:0;font-size:13.5px;font-weight:600}.tasklist-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:14px;margin-bottom:10px;padding:13px 15px;transition:border-color .15s;display:flex}.task-card:hover{border-color:var(--border-strong)}.task-card.task-error{border-color:var(--danger-border)}.task-icon{color:var(--muted);flex-shrink:0;align-items:center;display:flex}.task-card.task-running .task-icon{color:var(--accent)}.task-card.task-done .task-icon{color:var(--success)}.task-card.task-error .task-icon{color:var(--danger)}.spin{animation:1s linear infinite spin;display:inline-flex}@keyframes spin{to{transform:rotate(1turn)}}.task-main{flex:1;min-width:0}.task-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:550;overflow:hidden}.task-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12.5px;overflow:hidden}.task-error-msg{color:var(--danger)}.task-warning-msg{color:var(--warning);align-items:center;gap:4px;display:inline-flex}.task-progress{margin-top:8px;margin-bottom:0}.task-actions{align-items:center;gap:8px;display:flex}.spike h2{letter-spacing:-.01em;margin:0 0 8px;font-size:17px;font-weight:650}.hint{color:var(--muted);font-size:13.5px}.spike-actions{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.log{background:var(--inset);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;min-height:160px;max-height:380px;color:var(--log-text);border-radius:12px;padding:13px 15px;font-family:Cascadia Mono,Consolas,SFMono-Regular,ui-monospace,monospace;font-size:12.5px;line-height:1.6;overflow:auto}.log-line.log-ok{color:var(--success)}.log-line.log-err{color:var(--danger)}.log-line.log-info{color:var(--log-text)}.about{max-width:68ch}.about h2{letter-spacing:-.01em;margin:26px 0 8px;font-size:16.5px;font-weight:650}.about h2:first-child{margin-top:0}.about p,.about li{color:var(--muted);font-size:14.5px;line-height:1.75}.about strong{color:var(--text);font-weight:600}.about ul{margin:6px 0;padding-left:1.3em}.about li{margin:5px 0}.about a{color:var(--accent);text-underline-offset:3px}.app-footer{border-top:1px solid var(--border);color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-top:44px;padding-top:18px;font-size:13px;display:flex}.footer-projects{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.footer-projects a{color:var(--accent);text-underline-offset:3px}.footer-projects a:hover{text-decoration-thickness:2px}.footer-copy{font-size:12.5px}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.18)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes icon-swap{0%{opacity:0;transform:rotate(-50deg)scale(.6)}to{opacity:1;transform:none}}.app-header{animation:.45s cubic-bezier(.16,1,.3,1) both fade-up}.app-footer{animation:.4s cubic-bezier(.16,1,.3,1) .18s both fade-up}.tabs{animation:.4s cubic-bezier(.16,1,.3,1) 40ms both fade-up}.settings{animation:.4s cubic-bezier(.16,1,.3,1) .1s both fade-up}.mode-hint{animation:.4s cubic-bezier(.16,1,.3,1) .13s both fade-up}.dropzone,.coming-soon{animation:.4s cubic-bezier(.16,1,.3,1) .16s both fade-up}.unlock-tip{animation:.4s cubic-bezier(.16,1,.3,1) .22s both fade-up}.about,.spike{animation:.4s cubic-bezier(.16,1,.3,1) 80ms both fade-up}.task-card{animation:.35s cubic-bezier(.16,1,.3,1) both fade-up}.task-card:nth-child(2){animation-delay:60ms}.task-card:nth-child(3){animation-delay:.12s}.task-card:nth-child(4){animation-delay:.18s}.task-card:nth-child(5){animation-delay:.24s}.task-card.task-done .task-icon{animation:.4s cubic-bezier(.16,1,.3,1) both pop}.task-card.task-error .task-icon{animation:.4s both shake}.dropzone-icon svg{animation:2.8s ease-in-out infinite float}.theme-icon{animation:.3s both icon-swap;display:inline-flex}@media (max-width:640px){.app{padding:20px 14px 32px}.brand{font-size:20px}.tabs{width:100%}.tab{flex:1;padding:9px 8px}.settings{gap:10px;padding:12px}.dropzone{padding:32px 16px}.unlock-tip{flex-wrap:wrap}.unlock-tip-cta{width:-moz-fit-content;width:fit-content;margin-left:58px}.header-links button:not(.icon-btn){padding:7px 11px;font-size:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
