:root{--font-display:"Anta", "Montserrat", sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--fs-xs:11px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--space-7:6rem;--space-8:8rem;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--t-fast:.15s ease;--t-base:.25s ease;--t-slow:.35s ease;--color-black:#000;--color-white:#fff}:root,html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0c0c0e;--color-surface:#111115;--color-lift:#18181e;--color-border:#222228;--color-border-hi:#2e2e38;--color-text:#f0f0f8;--color-text-mid:#d0d0e0;--color-text-muted:#a8b0c8;--color-text-dim:#9098b2;--color-primary:#7c6bf7;--color-primary-hi:#7b2ff7;--color-primary-dim:#9b1fe81f;--color-primary-glow:#7c6bf740;--color-primary-10:#7c6bf71a;--color-primary-20:#7c6bf733;--color-primary-text:#c4b5fd;--color-secondary:#c4146e;--color-success:#22c55e;--color-danger:#e05060;--color-grad:linear-gradient(90deg, var(--color-primary), var(--color-primary-hi), var(--color-secondary));--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 10px 30px #0009;--color-overlay:#0c0c0ed9;--color-grid-line:#ffffff06}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f6f7fb;--color-surface:#fff;--color-lift:#eef1f8;--color-border:#dbe1ee;--color-border-hi:#c2ccdf;--color-text:#0f1a2f;--color-text-mid:#354260;--color-text-muted:#52607a;--color-text-dim:#6a7588;--color-primary:#2b63ff;--color-primary-hi:#00a3ff;--color-primary-dim:#2b63ff1a;--color-primary-glow:#2b63ff33;--color-primary-10:#2b63ff1a;--color-primary-20:#2b63ff33;--color-primary-text:#1f4ed8;--color-secondary:#ff4d7a;--color-success:#16a34a;--color-danger:#dc2626;--color-grad:linear-gradient(90deg, var(--color-primary), var(--color-primary-hi), var(--color-secondary));--shadow-sm:0 1px 2px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 10px 30px #00000024;--color-overlay:#f6f7fbe0;--color-grid-line:#0000000f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.6}.dyno-logo{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-text);font-size:1.375rem;font-weight:800;text-decoration:none}.dyno-logo-dot{color:var(--color-primary)}.dyno-logo-sub{font-weight:400}.btn{font-family:var(--font-body);font-size:var(--fs-sm);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--t-base), transform var(--t-base), box-shadow var(--t-base);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 22px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-grad);color:#fff;box-shadow:0 0 24px var(--color-primary-glow)}.btn-primary:hover:not(:disabled){opacity:.88;box-shadow:0 0 36px var(--color-primary-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){opacity:1;transform:translateY(0)}.btn-ghost{color:var(--color-text-mid);border:1.5px solid var(--color-border-hi);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--color-text-muted);color:var(--color-text)}.btn-sm{font-size:var(--fs-xs);border-radius:var(--radius-xs);padding:7px 14px}.btn-lg{font-size:var(--fs-base);padding:14px 32px}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}:root{--bg0:var(--color-bg);--bg1:var(--color-surface);--text0:var(--color-text);--text1:var(--color-text-mid);--text2:var(--color-text-muted);--border0:var(--color-border);--border1:var(--color-border-hi);--shadow0:var(--shadow-md);--accent:var(--color-primary);--accent2:var(--color-primary-hi);--danger:var(--color-danger);--danger2:#b91c1c;--ok:var(--color-success);--admin:#7c3aed;--radius0:var(--radius-md);--radius1:var(--radius-lg);--space1:6px;--space2:10px;--space3:14px;--space4:18px;--space5:24px;--space6:32px;--mono:var(--font-mono);font-family:var(--font-body);color:var(--text0);line-height:1.5}*{box-sizing:border-box}body{margin:0;transition:background-color .2s,color .2s}.page-wrap{flex-direction:column;min-height:100vh;display:flex}nav{border-bottom:2px solid var(--color-border);z-index:100;background:var(--color-bg);flex-shrink:0;align-items:center;gap:20px;height:68px;padding:0 40px;display:flex;position:sticky;top:0}.logo-mark{flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:flex}.anta{font-family:var(--font-display)}.logo-text{font-family:var(--font-display);letter-spacing:.5px;color:var(--color-text);font-size:24px;font-weight:800;line-height:1}.logo-text .dot{color:var(--color-primary)}.logo-text .logo-light{color:var(--color-text);font-weight:400}.nav-badge{letter-spacing:2px;text-transform:uppercase;color:var(--color-primary-text);background:var(--color-primary-10);border:1px solid var(--color-primary-20);border-radius:var(--radius-pill);white-space:nowrap;padding:3px 10px;font-size:10px;font-weight:700}.nav-actions{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.theme-switch{cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:none;flex-shrink:0;align-items:center;padding:4px;display:flex}.ts-track{border-radius:var(--radius-pill);background:var(--color-lift);border:1.5px solid var(--color-border-hi);width:44px;height:26px;transition:background var(--t-base), border-color var(--t-base);position:relative}.ts-thumb{background:var(--color-text-muted);border:1px solid var(--color-border-hi);width:18px;height:18px;transition:transform .25s cubic-bezier(.4,0,.2,1), background var(--t-base);color:var(--color-bg);border-radius:50%;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;top:3px;left:3px}.ts-icon-light{display:none}.ts-icon-dark{display:inline}html[data-theme=light] .ts-track{background:var(--color-primary);border-color:var(--color-primary)}html[data-theme=light] .ts-thumb{color:var(--color-primary);background:#fff;border-color:#0000;transform:translate(18px)}html[data-theme=light] .ts-icon-dark{display:none}html[data-theme=light] .ts-icon-light{display:inline}code{font-family:var(--mono);font-size:.92em}.muted{color:var(--color-text-muted)}.page{max-width:1040px;padding:var(--space6) var(--space5);gap:var(--space5);flex-direction:column;flex:1;margin:0 auto;display:flex}.badge{border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);color:var(--color-text-muted);background:var(--color-lift);white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.badge--ok{color:var(--color-success);background:#22c55e1a;border-color:#22c55e40}html[data-theme=light] .badge--ok{background:#16a34a1a;border-color:#16a34a40}.badge--admin{color:#a78bfa;background:#7c3aed1a;border-color:#7c3aed40}html[data-theme=light] .badge--admin{color:#5b21b6}.badge--logout{cursor:pointer}.badge--logout:hover{opacity:.7}.card{background:var(--color-surface);border-radius:var(--radius1);border:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:var(--space5)}.card--split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;padding:0;display:grid;overflow:hidden}.card-split__form{padding:var(--space5);border-right:1px solid var(--color-border)}.card-split__result{padding:var(--space5);gap:var(--space3);flex-direction:column;display:flex;position:sticky;top:88px}.card__header{margin-bottom:var(--space4);flex-direction:column;gap:4px;display:flex}.card__header--tight{margin-bottom:var(--space3)}.card__title{letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:16px}.card__subtitle{color:var(--color-text-muted);margin:0;font-size:13px}.form{gap:var(--space4);flex-direction:column;display:flex}.grid{gap:var(--space3);display:grid}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--color-text-mid);font-size:12px;font-weight:650}.field__help{color:var(--color-text-muted);font-size:12px}.field__help--error{color:var(--color-danger)}.field__control{border-radius:var(--radius-md);border:1px solid var(--color-border-hi);background:var(--color-bg);width:100%;color:var(--color-text);font-family:var(--font-body);font-size:var(--fs-base);outline:none;padding:10px 12px}.field__control:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-10)}.field__control--color{border-radius:var(--radius-md);height:40px;padding:0}.colorRow{gap:var(--space2);grid-template-columns:52px 1fr;align-items:center;display:grid}.advanced{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-lift);padding:var(--space3)}.advanced__summary{cursor:pointer;justify-content:space-between;gap:var(--space3);color:var(--color-text-mid);font-weight:650;display:flex}.advanced__summaryHint{color:var(--color-text-muted);font-size:12px;font-weight:500}.advanced__body{margin-top:var(--space3);gap:var(--space3);flex-direction:column;display:flex}.actions{align-items:center;gap:var(--space2);flex-wrap:wrap;display:flex}.actions__spacer{flex:1}.btn{border-radius:var(--radius-sm);border:1.5px solid var(--color-border-hi);background:var(--color-lift);color:var(--color-text-mid);font-family:var(--font-body);font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:transform 80ms ease, border-color var(--t-fast), background var(--t-fast), color var(--t-fast);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:focus-visible{box-shadow:0 0 0 4px var(--color-primary-10);outline:none}.btn--lg{border-radius:var(--radius-md);padding:12px 20px}.btn--primary{background:var(--color-grad);color:#fff;box-shadow:0 2px 12px var(--color-primary-glow);border:none;font-weight:800}.btn--primary:hover:not(:disabled){opacity:.85}.btn--danger{background:var(--color-danger);color:#fff;border-color:#e0506059;font-weight:700}.btn--ghost{color:var(--color-text-mid);background:0 0}.btn--ghost:hover{border-color:var(--color-text-muted);color:var(--color-text)}.statusLine{color:var(--color-text-muted);font-size:13px}.statusLine--ok{color:var(--color-success);font-weight:600}.statusLine--error{color:var(--color-danger);font-weight:600}.result{gap:var(--space4);grid-template-columns:380px minmax(0,1fr);align-items:start;display:grid}.result__preview{border-radius:var(--radius1);border:1px solid var(--color-border);background:var(--color-lift);place-items:center;min-height:120px;display:grid;overflow:hidden}.result__preview--filled{background:var(--color-surface);display:block}.result__empty{color:var(--color-text-muted);padding:var(--space3);text-align:center;font-size:13px}#previewImg{width:100%;height:auto;display:block}.copyRow{gap:var(--space2);align-items:center;display:flex}.urlBar{flex:1;position:relative}.urlBar__input{cursor:pointer;padding-right:36px}.urlBar__copy{cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-xs);transition:color var(--t-fast);background:0 0;border:none;align-items:center;padding:4px;font-size:16px;line-height:1;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.urlBar__copy:hover{color:var(--color-primary)}.out{background:var(--color-lift);border:1px solid var(--color-border);padding:var(--space3);border-radius:var(--radius-md);max-height:14rem;font-size:12px;line-height:1.45;font-family:var(--font-mono);color:var(--color-text-mid);overflow:auto}.isHidden{display:none!important}.isDisabled{pointer-events:none;opacity:.55}.genLog{gap:var(--space3);flex-direction:column;display:flex}.genLog__hint{margin:0;font-size:13px;line-height:1.45}.genLog__list{gap:var(--space2);flex-direction:column;min-height:0;display:flex}.genLog__footer{align-items:center;gap:var(--space3);flex-wrap:wrap;display:flex}.genLogRow{gap:var(--space2);padding:var(--space3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.genLogRow__caption{word-break:break-word;font-size:12px;line-height:1.4}.genLogRow__body{gap:var(--space4);grid-template-columns:minmax(140px,220px) minmax(0,1fr);align-items:start;display:grid}.genLogRow__preview{border-radius:var(--radius1);border:1px solid var(--color-border);background:var(--color-lift);aspect-ratio:16/9;place-items:center;min-height:72px;display:grid;position:relative;overflow:hidden}.genLogRow__preview img{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.genLogRow__previewEmpty{color:var(--color-text-muted);padding:var(--space2);text-align:center;font-size:12px}.genLogRow__metaCol{gap:var(--space3);flex-direction:column;min-width:0;display:flex}.genLogWlList{gap:var(--space2);flex-direction:column;display:flex}.genLogWlLine{word-break:break-word;font-size:13px}.genLogWlLine a{color:var(--color-primary);font-weight:500}.genLogWlStatus{font-weight:400}.history-card{padding:0;overflow:hidden}.history-details .genLog{padding:0 var(--space5) var(--space5)}.history-summary{align-items:center;gap:var(--space2);padding:var(--space4) var(--space5);cursor:pointer;color:var(--color-text-mid);-webkit-user-select:none;user-select:none;font-weight:650;list-style:none;display:flex}.history-summary::-webkit-details-marker{display:none}.history-summary>span:first-child{flex:1}.history-count{border-radius:var(--radius-pill);background:var(--color-primary-dim);color:var(--color-primary-text);border:1px solid var(--color-primary-20);padding:2px 8px;font-size:11px;font-weight:700}.history-chevron{color:var(--color-text-dim);transition:transform var(--t-base);flex-shrink:0;font-size:18px}.history-details[open] .history-chevron{transform:rotate(180deg)}.footer{justify-content:space-between;gap:var(--space3);padding-bottom:var(--space4);flex-wrap:wrap;display:flex}@media (width<=860px){nav{padding:0 20px}.nav-badge{display:none}.page{padding:var(--space5) var(--space4)}.grid--2,.grid--3,.result,.genLogRow__body,.card--split{grid-template-columns:1fr}.card-split__form{border-right:none;border-bottom:1px solid var(--color-border)}.card-split__result{position:static}}
