:root{--blitz-primary: #FFB300;--blitz-primary-deep: #E59A00;--blitz-primary-soft: #FFE7A8;--blitz-on-primary: #1A1208;--blitz-acid-lime: #C6FF3D;--blitz-acid-pink: #FF3DAA;--blitz-acid-blue: #2D6BFF;--bone-50: #FBF9F4;--bone-100: #F5F1E8;--bone-200: #ECE6D6;--bone-300: #DDD3BC;--bone-400: #B8AC91;--bone-500: #8A8068;--bone-700: #3D3727;--bone-900: #18140A;--bg: var(--bone-50);--bg-elev: #FFFFFF;--bg-sunken: var(--bone-100);--bg-tint: var(--bone-200);--ink: var(--bone-900);--ink-mid: var(--bone-700);--ink-soft: var(--bone-500);--ink-faint: var(--bone-400);--hairline: var(--bone-300);--hairline-soft: var(--bone-200);--focus-ring: var(--blitz-primary);--status-ok: #1F7A3D;--status-warn: #B86E00;--status-err: #C81F3B;--status-info: #1B4FB8;--font-sans: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--t-xs: 12px;--t-sm: 14px;--t-base: 16px;--t-md: 18px;--t-lg: 22px;--lh-base: 1.5;--lh-snug: 1.2;--lh-tight: 1.05;--tr-tight: -.02em;--tr-tighter: -.04em;--tr-wide: .02em;--tr-wider: .08em;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-1: 2px;--r-2: 4px;--r-pill: 999px;--bw: 1px;--ease: cubic-bezier(.2, .8, .2, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s}[data-theme=dark]{--bg: #0E0B05;--bg-elev: #15110A;--bg-sunken: #080602;--bg-tint: #1F1A0E;--ink: #FBF6E8;--ink-mid: #D9CFB4;--ink-soft: #8A8068;--ink-faint: #5A5238;--hairline: #2C2616;--hairline-soft: #1F1A0E;--blitz-primary-soft: #3B2E0E;--status-ok: #4FD17A;--status-warn: #FFB84D;--status-err: #FF6B85;--status-info: #6B9BFF}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--t-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:var(--blitz-primary);color:var(--blitz-on-primary)}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);font-family:var(--font-sans);font-weight:600;font-size:var(--t-sm);letter-spacing:var(--tr-wide);padding:12px 20px;border-radius:var(--r-1);border:var(--bw) solid transparent;cursor:pointer;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--blitz-primary);color:var(--blitz-on-primary);border-color:var(--blitz-primary)}.btn--primary:hover{background:var(--blitz-primary-deep);border-color:var(--blitz-primary-deep)}.btn--secondary{background:transparent;color:var(--ink);border-color:var(--ink)}.btn--secondary:hover{background:var(--ink);color:var(--bg)}.btn--ghost{background:transparent;color:var(--ink);border-color:transparent}.btn--ghost:hover{background:var(--bg-tint)}.btn--sm{padding:7px 12px;font-size:var(--t-xs)}.btn--lg{padding:14px 28px;font-size:var(--t-base)}.badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:var(--tr-wider);text-transform:uppercase;padding:3px 8px;border-radius:var(--r-1);border:var(--bw) solid var(--hairline);background:var(--bg);color:var(--ink-mid);white-space:nowrap}.badge--primary{background:var(--blitz-primary);color:var(--blitz-on-primary);border-color:var(--blitz-primary)}.badge--ok{color:var(--status-ok);border-color:var(--status-ok)}.badge--warn{color:var(--status-warn);border-color:var(--status-warn)}.badge--err{color:var(--status-err);border-color:var(--status-err)}.badge--info{color:var(--status-info);border-color:var(--status-info)}.field-label{display:block;font-family:var(--font-mono);font-size:var(--t-xs);font-weight:600;letter-spacing:var(--tr-wider);text-transform:uppercase;color:var(--ink-mid);margin-bottom:var(--s-2)}.tabs--boxed{display:inline-flex;gap:3px;padding:3px;background:var(--bg-sunken);border:var(--bw) solid var(--hairline);border-radius:var(--r-1)}.tabs--boxed .tab{padding:7px 16px;border-radius:var(--r-1);font-family:var(--font-sans);font-size:var(--t-sm);font-weight:500;color:var(--ink-soft);cursor:pointer;background:transparent;border:var(--bw) solid transparent;transition:all var(--dur-1) var(--ease);-webkit-user-select:none;user-select:none}.tabs--boxed .tab:hover{color:var(--ink)}.tabs--boxed .tab.is-active{background:var(--bg-elev);color:var(--ink);border-color:var(--hairline);font-weight:600}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-4);background:var(--bg);border-bottom:var(--bw) solid var(--hairline)}.brand{display:flex;align-items:center;gap:var(--s-3)}.brand__mark{width:34px;height:34px;background:var(--blitz-primary);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:16px;color:var(--blitz-on-primary);border-radius:var(--r-1);flex-shrink:0}.brand__name{font-size:var(--t-md);font-weight:700;letter-spacing:var(--tr-tight);line-height:1}.brand__tagline{font-family:var(--font-mono);font-size:10px;color:var(--ink-soft);margin-top:2px;text-transform:uppercase;letter-spacing:var(--tr-wider)}.header-right{display:flex;align-items:center;gap:var(--s-2)}.theme-btn{width:34px;height:34px;border-radius:var(--r-1);border:var(--bw) solid var(--hairline);background:var(--bg-elev);color:var(--ink-mid);font-size:15px;display:grid;place-items:center;cursor:pointer;transition:all var(--dur-1) var(--ease);flex-shrink:0}.theme-btn:hover{border-color:var(--ink);color:var(--ink)}.privacy-badge{display:none}@media (min-width: 480px){.privacy-badge{display:inline-flex}}.app-main{max-width:680px;margin:0 auto;padding-bottom:var(--s-8)}.upload-section{padding:var(--s-5) var(--s-4) var(--s-4)}.drop-zone{border:2px dashed var(--hairline);border-radius:var(--r-2);padding:var(--s-8) var(--s-5);text-align:center;cursor:pointer;background:var(--bg-elev);transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease);-webkit-user-select:none;user-select:none}.drop-zone:hover{border-color:var(--bone-400)}.drop-zone.is-over{border-color:var(--blitz-primary);background:var(--blitz-primary-soft)}.drop-zone.is-over .dz-icon{transform:translateY(6px);color:var(--blitz-primary-deep)}.dz-icon{display:block;margin:0 auto var(--s-4);color:var(--ink-faint);width:48px;height:48px;transition:transform var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}.drop-zone__title{font-size:var(--t-md);font-weight:600;color:var(--ink);margin:0 0 var(--s-2)}.drop-zone__sub{font-size:var(--t-sm);color:var(--ink-soft);margin:0 0 var(--s-4)}.drop-zone__chips{display:flex;gap:var(--s-2);justify-content:center;flex-wrap:wrap}.link-btn{background:none;border:none;padding:0;color:var(--blitz-primary-deep);font-weight:700;cursor:pointer;font-family:inherit;font-size:inherit;text-decoration:underline;text-underline-offset:2px}[data-theme=dark] .link-btn{color:var(--blitz-primary)}.options-panel{padding:0 var(--s-4) var(--s-5);border-bottom:var(--bw) solid var(--hairline)}.options-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-4)}.info-toggle{padding:7px 12px;background:transparent;border:var(--bw) solid var(--hairline);border-radius:var(--r-1);cursor:pointer;font-family:var(--font-mono);font-size:var(--t-xs);color:var(--ink-soft);letter-spacing:var(--tr-wide);transition:all var(--dur-1) var(--ease);white-space:nowrap}.info-toggle:hover{border-color:var(--ink);color:var(--ink)}.info-toggle.is-open{background:var(--bg-tint);border-color:var(--ink);color:var(--ink)}.quality-row{margin-bottom:var(--s-4)}.quality-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-2)}.quality-header .field-label{margin-bottom:0}.quality-val{font-family:var(--font-mono);font-size:var(--t-sm);font-weight:600;color:var(--blitz-primary-deep)}[data-theme=dark] .quality-val{color:var(--blitz-primary)}.quality-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--hairline);border-radius:var(--r-pill);outline:none;cursor:pointer}.quality-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:var(--r-pill);background:var(--blitz-primary);cursor:pointer;border:2px solid var(--bg);box-shadow:0 0 0 1px var(--hairline)}.quality-slider::-moz-range-thumb{width:22px;height:22px;border-radius:var(--r-pill);background:var(--blitz-primary);cursor:pointer;border:2px solid var(--bg)}.quality-hints{display:flex;justify-content:space-between;margin-top:var(--s-2);font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}.info-card{background:var(--bg-sunken);border:var(--bw) solid var(--hairline);border-radius:var(--r-1);padding:var(--s-4);animation:fadeDown var(--dur-2) var(--ease)}@keyframes fadeDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.info-card__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-bottom:var(--s-3)}@media (max-width: 460px){.info-card__grid{grid-template-columns:1fr}}.info-card__col .badge{margin-bottom:var(--s-2)}.info-card__col p{font-size:var(--t-xs);color:var(--ink-mid);margin:0 0 var(--s-2);line-height:var(--lh-base)}.info-card__col p.stat{font-family:var(--font-mono);color:var(--ink-soft);margin:0}.info-card__col p.stat strong{color:var(--ink)}.info-card__note{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);margin:var(--s-3) 0 0;padding-top:var(--s-3);border-top:var(--bw) solid var(--hairline);line-height:var(--lh-base)}.files-section{padding:var(--s-5) var(--s-4) var(--s-4)}.files-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.files-header-left{display:flex;align-items:center;gap:var(--s-2)}.files-title{font-size:var(--t-lg);font-weight:700;letter-spacing:var(--tr-tight)}.files-total{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--ink-soft)}.files-list{display:flex;flex-direction:column;gap:var(--s-2)}@keyframes cardIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.preview-card{display:flex;align-items:center;gap:var(--s-3);background:var(--bg-elev);border:var(--bw) solid var(--hairline);border-radius:var(--r-1);padding:var(--s-3) var(--s-4);animation:cardIn var(--dur-3) var(--ease)}.preview-card__thumb{width:52px;height:52px;flex-shrink:0;border:var(--bw) solid var(--hairline);border-radius:var(--r-1);overflow:hidden;background:var(--bg-tint)}.preview-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}.preview-card__info{flex:1;min-width:0}.preview-card__name{display:block;font-size:var(--t-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.preview-card__meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);margin-top:2px;display:block}.remove-btn{width:28px;height:28px;border-radius:var(--r-1);border:var(--bw) solid transparent;background:transparent;color:var(--ink-faint);font-size:18px;line-height:1;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all var(--dur-1) var(--ease)}.remove-btn:hover{background:var(--bg-tint);color:var(--ink);border-color:var(--hairline)}.convert-action{padding:var(--s-4) var(--s-4) 0;display:flex;justify-content:stretch}.convert-action .btn{flex:1}.proc-section{padding:var(--s-5) var(--s-4)}.proc-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-5);flex-wrap:wrap}.proc-title{font-size:var(--t-lg);font-weight:700;letter-spacing:var(--tr-tight);margin:0}.proc-sub{font-size:var(--t-sm);color:var(--ink-soft);margin:var(--s-1) 0 0}.proc-alert{border:var(--bw) solid var(--status-err);border-radius:var(--r-1);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4);font-size:var(--t-sm);line-height:var(--lh-base);color:var(--status-err);background:var(--bg-elev)}.file-status-list{display:flex;flex-direction:column;gap:var(--s-3)}.file-status{border:var(--bw) solid var(--hairline);border-radius:var(--r-1);padding:var(--s-3) var(--s-4);background:var(--bg-elev);animation:cardIn var(--dur-3) var(--ease);transition:border-color var(--dur-2) var(--ease)}.file-status--pending{opacity:.45}.file-status--active{border-color:var(--blitz-primary)}.file-status--done{border-color:var(--status-ok)}.file-status--error{border-color:var(--status-err)}.file-status__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.file-status__name{font-size:var(--t-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.file-status__tag{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:var(--tr-wider);flex-shrink:0}.file-status__tag--pending{color:var(--ink-faint)}.file-status__tag--active{color:var(--blitz-primary)}.file-status__tag--done{color:var(--status-ok)}.file-status__tag--error{color:var(--status-err)}.step-list{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3);padding-top:var(--s-3);border-top:var(--bw) solid var(--hairline)}.step-item{display:flex;align-items:center;gap:var(--s-2);font-family:var(--font-mono);font-size:var(--t-xs)}.step-icon{width:16px;height:16px;flex-shrink:0;border-radius:var(--r-pill);border:var(--bw) solid;display:grid;place-items:center;font-size:9px;font-weight:700}.step-icon--pending{border-color:var(--hairline);color:var(--ink-faint)}.step-icon--active{border-color:var(--blitz-primary);color:var(--blitz-primary)}.step-icon--done{border-color:var(--status-ok);background:var(--status-ok);color:#fff}.step-icon--error{border-color:var(--status-err);background:var(--status-err);color:#fff}.step--pending .step-label{color:var(--ink-faint)}.step--active .step-label{color:var(--blitz-primary);font-weight:600}.step--done .step-label{color:var(--ink-mid)}.step--error .step-label{color:var(--status-err)}@keyframes spin{to{transform:rotate(360deg)}}.step-spinner{display:block;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--blitz-primary);border-top-color:transparent;animation:spin .7s linear infinite}.step-error{font-family:var(--font-mono);font-size:10px;color:var(--status-err);margin-top:var(--s-1);padding-left:24px;line-height:var(--lh-base)}.result-section{padding:var(--s-5) var(--s-4) var(--s-4)}.result-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap}.result-title{font-size:var(--t-lg);font-weight:700;letter-spacing:var(--tr-tight);margin:0}.result-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.file-card{background:var(--bg-elev);border:var(--bw) solid var(--hairline);border-radius:var(--r-1);overflow:hidden;transition:border-color var(--dur-2) var(--ease);animation:cardIn var(--dur-3) var(--ease)}.file-card.is-done{border-color:var(--status-ok)}.file-card.is-warn{border-color:var(--status-warn)}.file-card.is-error{border-color:var(--status-err)}.file-card__header{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-4);gap:var(--s-3);background:var(--bg-sunken);border-bottom:var(--bw) solid var(--hairline)}.file-card__info{min-width:0;flex:1}.file-card__name{font-size:var(--t-sm);font-weight:600;color:var(--ink);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card__meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);margin-top:2px;display:block}.file-card__preview{display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;gap:var(--s-2);padding:var(--s-4)}.preview-col{display:flex;flex-direction:column;align-items:center;gap:var(--s-2)}.preview-col__label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tr-wider);color:var(--ink-soft)}.preview-img-box{width:100%;aspect-ratio:4/3;background:var(--bg-tint);border:var(--bw) solid var(--hairline);border-radius:var(--r-1);overflow:hidden;display:flex;align-items:center;justify-content:center}.preview-img-box img{width:100%;height:100%;object-fit:cover;display:block}.preview-arrow{font-family:var(--font-mono);font-size:var(--t-lg);color:var(--ink-faint);text-align:center;padding-bottom:28px}.preview-size{font-family:var(--font-mono);font-size:11px;color:var(--ink-mid);font-weight:500;text-align:center}.preview-size.saved{color:var(--status-ok)}.preview-size.bigger{color:var(--status-warn)}.file-card__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-4);gap:var(--s-3);border-top:var(--bw) solid var(--hairline)}.card-status{display:flex;align-items:center;gap:var(--s-2);flex:1;min-width:0;flex-wrap:wrap}.card-actions{display:flex;gap:var(--s-2);flex-shrink:0}.app-footer{display:flex;align-items:center;justify-content:space-between;max-width:680px;margin:0 auto;padding:var(--s-4) var(--s-4) var(--s-6);border-top:var(--bw) solid var(--hairline)}.app-footer__copy{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);letter-spacing:var(--tr-wide)}.feedback-btn{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:var(--tr-wide);text-transform:uppercase;padding:5px 10px;border-radius:var(--r-1);border:var(--bw) solid var(--hairline);background:transparent;color:var(--ink-soft);cursor:pointer;transition:all var(--dur-1) var(--ease)}.feedback-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--bg-tint)}.savings-pill{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:var(--tr-wider);padding:3px 8px;border-radius:var(--r-1);border:var(--bw) solid;white-space:nowrap}.savings-pill.ok{color:var(--status-ok);border-color:var(--status-ok)}.savings-pill.warn{color:var(--status-warn);border-color:var(--status-warn)}.savings-pill.info{color:var(--status-info);border-color:var(--status-info)}.savings-pill.err{color:var(--status-err);border-color:var(--status-err)}
