:root{--bg:#f2f2f7;--surface:#fff;--surface-2:#f9f9fb;--text:#1c1c1e;--muted:#8e8e93;--accent:#30694b;--accent-soft:#30694b1f;--divider:#3c3c431f;--danger:#ff3b30;--warning:#ff9500;--shadow-card:0 1px 2px #0000000a;--shadow-elevated:0 4px 16px #0000000f;--segmented-bg:#7878801f;--segmented-selected:#fff;--font-ui:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:14px;--radius-pill:9999px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:20px;--space-xl:24px;--space-2xl:32px;--space-3xl:40px;--space-4xl:48px;--space-3xs:2px;--text-2xs:12px;--text-xs:13px;--text-sm:14px;--text-title:28px;--size-thumb:56px}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--text:#fff;--muted:#8e8e93;--accent:#4a9472;--accent-soft:#4a947238;--divider:#54545857;--shadow-card:0 1px 2px #0000004d;--shadow-elevated:0 4px 16px #00000080;--segmented-bg:#78788052;--segmented-selected:#636366}}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;line-height:1.4}body{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.hidden-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:inherit}button:focus:not(:focus-visible),label:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{max-width:480px;padding:var(--space-md) var(--space-md) calc(var(--space-md) + env(safe-area-inset-bottom));flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}@media (width>=768px){body{flex-direction:column;justify-content:center;display:flex}.app{min-height:auto;margin:var(--space-2xl) auto;padding:var(--space-xl);background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated)}}.product-header{gap:var(--space-sm);margin-bottom:var(--space-lg);padding-top:var(--space-xs);flex-direction:column;display:flex}.product-header-top{justify-content:space-between;align-items:center;display:flex}.product-title{font-size:var(--text-title);letter-spacing:-.02em;font-weight:700}.add-more-btn{border-radius:var(--radius-pill);background:var(--accent-soft);width:36px;height:36px;color:var(--accent);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:filter .15s;display:inline-flex}.add-more-btn:active{filter:brightness(.9)}.add-more-icon{place-items:center;line-height:0;display:grid}.segmented{background:var(--segmented-bg);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);gap:var(--space-3xs);padding:3px;font-weight:500;display:flex}.segmented .seg-item{border-radius:var(--radius-sm);min-height:40px;color:var(--text);font-family:inherit;font-size:var(--text-sm);flex:1;padding:10px 12px;transition:background-color .15s}.segmented .seg-item.active,.format-toggle .fmt-item.active{background:var(--segmented-selected);box-shadow:0 1px 2px #0000001a,0 0 0 .5px #0000000a}@media (prefers-color-scheme:dark){.segmented .seg-item.active,.format-toggle .fmt-item.active{box-shadow:0 1px 2px #0006}}.install-banner{align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--accent-soft);border-radius:var(--radius-lg);display:flex}.install-banner-body{flex:1;min-width:0}.install-banner-title{font-size:var(--text-sm);color:var(--accent);margin-bottom:var(--space-3xs);font-weight:600}.install-banner-text{font-size:var(--text-xs);color:var(--text);line-height:1.4}.install-banner-glyph{vertical-align:-4px;margin:0 var(--space-3xs);color:var(--accent);align-items:center;display:inline-flex}.install-banner-close{border-radius:var(--radius-pill);width:32px;height:32px;color:var(--muted);flex-shrink:0;place-items:center;font-size:18px;line-height:1;display:grid}.install-banner-close:active{background:#78788029}.empty-card{background:var(--surface);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-lg);text-align:center;box-shadow:var(--shadow-card);cursor:pointer;margin-bottom:auto;transition:background-color .15s;display:block}.empty-card:active{background:var(--surface-2)}.empty-card .empty-icon{width:var(--size-thumb);height:var(--size-thumb);margin:0 auto var(--space-sm);background:var(--accent-soft);border-radius:var(--radius-xl);color:var(--accent);font-size:var(--text-title);place-items:center;font-weight:500;display:grid}.empty-card .empty-label{margin-bottom:var(--space-2xs);font-size:17px;font-weight:600}.empty-card .empty-hint{font-size:var(--text-xs);color:var(--muted)}.app-credits{justify-content:center;align-items:center;gap:var(--space-sm);padding-top:var(--space-md);color:var(--muted);font-size:var(--text-2xs);flex-direction:row;line-height:1.4;display:flex}.app-credits-link{color:var(--accent);border-radius:var(--radius-sm);justify-content:center;align-items:center;min-width:44px;min-height:44px;transition:opacity .15s;display:inline-flex}.app-credits-link:active{opacity:.5}.app-credits-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.file-list{gap:var(--space-xs);margin-bottom:var(--space-md);flex-direction:column;flex:1;display:flex}.file-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:flex;position:relative;overflow:hidden}.file-row.completed{padding-left:var(--space-md)}.file-row.completed:before{content:"";width:var(--space-2xs);background:var(--accent);position:absolute;top:0;bottom:0;left:0}.file-row.errored:before{content:"";width:var(--space-2xs);background:var(--danger);position:absolute;top:0;bottom:0;left:0}.file-row.errored{padding-left:var(--space-md)}.file-thumb{width:var(--size-thumb);height:var(--size-thumb);border-radius:var(--radius-md);object-fit:cover;background:var(--surface-2);flex-shrink:0;box-shadow:inset 0 0 0 .5px #0000001a}.file-thumb-placeholder{background:var(--surface-2)}.file-info{flex:1;min-width:0}.file-name{margin-bottom:var(--space-3xs);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;overflow:hidden}.file-sizes{font-size:var(--text-xs);color:var(--muted)}.file-sizes .arrow{margin:0 var(--space-2xs)}.file-error{font-size:var(--text-2xs);color:var(--danger);margin-top:var(--space-3xs)}.format-toggle{padding:var(--space-3xs);gap:var(--space-3xs);background:var(--segmented-bg);border-radius:var(--radius-sm);margin-top:6px;display:inline-flex}.format-toggle .fmt-item{border-radius:var(--radius-xs);min-height:32px;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.02em;color:var(--muted);padding:6px 12px;font-weight:600;transition:background-color .15s,color .15s}.format-toggle .fmt-item.active{color:var(--text)}.format-toggle .fmt-item:disabled{opacity:.45}.badge-reduction{padding:var(--space-2xs) var(--space-xs);background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;font-family:var(--font-mono);font-feature-settings:"tnum";flex-shrink:0;align-items:center;display:inline-flex}.badge-reduction.warning{color:var(--warning);gap:var(--space-2xs);background:#ff95001f}.badge-shared{align-items:center;gap:var(--space-2xs);margin-left:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);background:var(--accent);color:#fff;border-radius:var(--radius-sm);flex-shrink:0;font-size:11px;font-weight:500;animation:.25s ease-out fade-in;display:inline-flex}@keyframes fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.badge-glyph{align-items:center;line-height:0;display:inline-flex}.spinner{border:2px solid var(--divider);border-top-color:var(--muted);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.save-bar{padding-top:var(--space-sm);border-top:1px solid var(--divider);background:var(--bg);padding-bottom:calc(var(--space-2xs) + env(safe-area-inset-bottom));position:sticky;bottom:0}.toolbar-options{justify-content:space-between;align-items:center;gap:var(--space-2xs) var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;display:flex}.toolbar-options .totals{font-size:var(--text-xs);white-space:nowrap}.save-error{margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);color:var(--danger);font-size:var(--text-xs);background:#ff3b301a;line-height:1.35}.save-caption{margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--muted);text-align:center}.switch{align-items:center;gap:var(--space-xs);font-size:var(--text-xs);cursor:pointer;display:inline-flex}.switch input[type=checkbox]{appearance:none;border-radius:var(--radius-pill);cursor:pointer;background:#78788052;border:none;flex-shrink:0;width:44px;height:26px;margin:0;transition:background-color .2s;position:relative}.switch input[type=checkbox]:before{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000002e}.switch input[type=checkbox]:checked{background:var(--accent)}.switch input[type=checkbox]:checked:before{transform:translate(18px)}.btn{border-radius:var(--radius-lg);letter-spacing:-.01em;padding:13px 22px;font-family:inherit;font-size:16px;font-weight:600;transition:filter .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.92)}.btn-primary:disabled{background:var(--muted);opacity:.4}.btn-full{width:100%;padding:var(--space-md)}
