@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}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#fafafa;font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#root{min-height:100vh}:root{--bg:#fafafa;--surface:#fff;--surface-2:#f7f7f8;--surface-hover:#f3f4f6;--border:#e6e7ea;--border-strong:#d3d5da;--text:#1b1b1d;--text-2:#6b6f76;--text-3:#9a9ea6;--accent:#2f6fed;--accent-soft:#eaf1ff;--accent-ring:#2f6fed40;--ok-bg:#edf9f1;--ok-fg:#1f6f3f;--ok-border:#bfe6cd;--warn-bg:#fff7e8;--warn-fg:#8a5a00;--warn-border:#f5dca8;--err-bg:#fdeeee;--err-fg:#a11d1d;--err-border:#f3c2c2;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-lg:0 12px 32px #10182824, 0 2px 6px #1018280f;--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fiori-accent:var(--accent);--fiori-border:var(--border);--fiori-text:var(--text);--fiori-text-secondary:var(--text-2);--fiori-surface:var(--surface);--fiori-bg:var(--bg);--fiori-radius:var(--radius-sm);--fiori-font:var(--font)}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;line-height:1.5}button,input{font-family:inherit}code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:.92em}strong{font-weight:600}.shell-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;align-items:center;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.shell-logo{letter-spacing:-.01em;color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.shell-logo img{border-radius:5px;width:22px;height:22px;display:block}.shell-right{align-items:center;gap:12px;margin-left:auto;display:flex}.pill{border:1px solid var(--border);background:var(--surface);height:24px;color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.pill--ok{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-border)}.pill--ok:before{content:"";background:#22a55b;border-radius:50%;width:6px;height:6px}.shell-link{color:var(--text-2);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 8px;font-size:13px;font-weight:500}.shell-link:hover{color:var(--text);background:var(--surface-hover)}.app{max-width:1280px;margin:0 auto;padding:32px 24px 64px}.page-header{margin-bottom:24px}.page-header h1{letter-spacing:-.02em;color:var(--text);font-size:24px;font-weight:600;line-height:1.25}.page-header p{color:var(--text-2);max-width:820px;margin-top:6px;font-size:14px}.page-header p strong{color:var(--text);font-weight:500}.hero{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:56px 16px 48px;display:flex}.hero-kicker{border:1px solid var(--border);background:var(--surface);height:30px;box-shadow:var(--shadow-xs);color:var(--text-2);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 8px 0 12px;font-size:13px;font-weight:500;transition:background .2s,border-color .2s;display:inline-flex}.hero-kicker:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.hero-kicker svg{width:12px;height:12px;transition:transform .2s}.hero-kicker:hover svg{transform:translate(1px)}.hero h1{letter-spacing:-.035em;color:var(--text);text-wrap:balance;font-size:clamp(40px,6.2vw,64px);font-weight:600;line-height:1.05}.hero p{color:var(--text-2);text-wrap:balance;max-width:540px;font-size:18px;line-height:1.5}.hero-actions{gap:10px;margin-top:4px;display:flex}.btn-lg{border-radius:10px;height:40px;padding:0 16px;font-size:14px}.upload-card,.stat,.toolbar,.sheet-wrap,.export-bar,.how-to-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.upload-card{margin-bottom:20px;overflow:hidden}.upload-card--compact{margin-bottom:12px}.upload-card-header{border-bottom:1px solid var(--border);color:var(--text-2);padding:10px 16px;font-size:13px;font-weight:500}.dropzone{text-align:center;cursor:pointer;border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);margin:12px;padding:40px 24px;transition:background .15s,border-color .15s}.dropzone:hover,.dropzone.dragging{background:var(--accent-soft);border-color:var(--accent)}.dropzone svg{width:28px;height:28px;color:var(--text-2);margin-bottom:10px}.dropzone p{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:500}.dropzone span{color:var(--text-2);font-size:13px}.dropzone input{display:none}.dropzone--compact{justify-content:center;align-items:center;gap:10px;margin:8px;padding:12px 16px;display:flex}.dropzone--compact svg{width:18px;height:18px;margin:0}.dropzone--compact p{margin:0;font-size:13px}.recibo{border-top:1px solid var(--border);background:var(--ok-bg);color:var(--ok-fg);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 16px;font-size:13px;display:flex}.recibo--warn{background:var(--warn-bg);color:var(--warn-fg)}.recibo-main{flex:320px}.recibo-main strong{font-weight:600}.recibo-toggle{background:var(--surface);color:inherit;cursor:pointer;opacity:.9;border:1px solid;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.recibo-toggle:hover{opacity:1}.recibo-list{flex-basis:100%;margin:4px 0 0;padding-left:20px;font-size:13px}.recibo-list li{margin:2px 0}.recibo-list code{background:#ffffffb3;border-color:#0000}.stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:8px;display:grid}@media (width<=1000px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{min-width:0;padding:12px 14px}.stat-label{color:var(--text-2);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.stat-value{letter-spacing:-.01em;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;display:block;overflow:hidden}.stat-hint{color:var(--text-3);margin-top:2px;font-size:12px;display:block}.stat--accent{background:var(--text);border-color:var(--text)}.stat--accent .stat-value{color:#fff}.stat--accent .stat-label,.stat--accent .stat-hint{color:#ffffffb3}.stats-note{color:var(--text-2);margin:0 2px 16px;font-size:13px}.stats-note strong{color:var(--text);font-weight:500}.toolbar{border-radius:var(--radius) var(--radius) 0 0;box-shadow:none;border-bottom:none;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.tabs button{height:26px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 10px;font-size:13px;font-weight:500}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.tab-count{background:var(--surface-hover);color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.tabs button.active .tab-count{background:var(--accent-soft);color:var(--accent)}.grid-quick-filter{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:160px;height:32px;color:var(--text);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a9ea6' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 10px center/16px no-repeat;outline:none;flex:1;padding:0 10px 0 32px;font-size:13px}.grid-quick-filter::placeholder{color:var(--text-3)}.grid-quick-filter:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.grid-count{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.btn-export,.btn-ghost,.btn-clear,.btn-danger{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;height:34px;padding:0 14px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.btn-export{background:var(--text);color:#fff;border:1px solid var(--text);box-shadow:var(--shadow-xs)}.btn-export:hover{background:#303135;border-color:#303135}.btn-export:active{background:#000}.btn-export svg{width:15px;height:15px}.btn-export-count{color:#ffffffbf;font-variant-numeric:tabular-nums;border-left:1px solid #ffffff40;padding-left:8px;font-weight:400}.btn-ghost,.btn-clear{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.btn-ghost:hover:not(:disabled),.btn-clear:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn-ghost:disabled{color:var(--text-3);cursor:default;box-shadow:none}.btn-danger{color:#fff;background:#d92d20;border:1px solid #d92d20}.btn-danger:hover{background:#b42318;border-color:#b42318}.confirm-text{color:var(--text);font-size:13px}.sheet-wrap{border-radius:0 0 var(--radius) var(--radius);overflow:hidden}.sheet-wrap .grid-body{height:620px}.grid-body[hidden]{display:none}.cell-tipo-egreso{color:#b42318;font-weight:500}.cell-tipo-otro{color:var(--text-3)}.export-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px;display:flex}.filename-input{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:180px;height:34px;color:var(--text);background:var(--surface);outline:none;flex:0 260px;padding:0 10px;font-size:13px}.filename-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.export-hint{color:var(--text-2);flex:260px;font-size:12px;line-height:1.4}.export-clear{align-items:center;gap:8px;margin-left:auto;display:flex}.download-msg{border-radius:var(--radius-sm);border:1px solid;margin-top:8px;padding:10px 14px;font-size:13px}.download-msg.ok{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-border)}.download-msg.error{background:var(--err-bg);color:var(--err-fg);border-color:var(--err-border)}.how-to-card{margin-bottom:20px;overflow:hidden}.how-to-bottom{margin-top:20px}.how-to-card--compact .how-to-body{padding:16px 20px}.how-to-header{border-bottom:1px solid var(--border);color:var(--text);padding:12px 20px;font-size:14px;font-weight:600}.how-to-body{padding:20px}.how-to-steps{gap:16px;list-style:none;display:grid}.how-to-steps li{align-items:flex-start;gap:12px;display:flex}.how-to-steps li>div>strong{color:var(--text);margin-bottom:2px;font-size:14px;font-weight:600;display:block}.how-to-steps p{color:var(--text-2);font-size:13px}.how-to-steps p strong{color:var(--text);font-weight:500}.step-num{background:var(--text);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:1px;font-size:12px;font-weight:600;display:inline-flex}.step-hint{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);margin-top:6px;padding:8px 10px;font-size:13px}.how-to-faq{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.how-to-faq>strong{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.how-to-faq details{border-bottom:1px solid var(--border)}.how-to-faq summary{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:10px 0;font-size:13px;font-weight:500;list-style:none;display:flex}.how-to-faq summary::-webkit-details-marker{display:none}.how-to-faq summary:before{content:"+";color:var(--text-3);width:12px;font-weight:500}.how-to-faq details[open] summary:before{content:"−"}.how-to-faq details p{color:var(--text-2);padding:0 0 12px 20px;font-size:13px}.dialog-overlay{z-index:1000;background:#11111359;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:520px;box-shadow:var(--shadow-lg);overflow:hidden}.dialog-header{align-items:center;gap:10px;padding:20px 24px 0;display:flex}.dialog-header svg{color:#22a55b;width:22px;height:22px}.dialog-header h2{letter-spacing:-.01em;font-size:18px;font-weight:600}.dialog-body{padding:12px 24px 8px}.dialog-body p{color:var(--text-2);font-size:14px}.dialog-list{gap:8px;margin:12px 0;list-style:none;display:grid}.dialog-list li{color:var(--text-2);padding-left:22px;font-size:13px;position:relative}.dialog-list li:before{content:"";background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:50%;width:12px;height:12px;position:absolute;top:5px;left:0}.dialog-list strong{color:var(--text);font-weight:500}.dialog-note{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);padding:10px 12px;font-size:13px!important}.dialog-footer{justify-content:flex-end;gap:8px;padding:16px 24px 20px;display:flex}.privacy-layer{z-index:1100;background:var(--bg);position:fixed;inset:0;overflow:auto}.privacy-doc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);max-width:860px;padding:28px 32px}.privacy-doc section{margin-bottom:20px}.privacy-doc h2{letter-spacing:-.01em;margin-bottom:6px;font-size:15px;font-weight:600}.privacy-doc p{color:var(--text-2);margin-bottom:8px;font-size:14px}.privacy-doc ul{color:var(--text-2);margin:8px 0;padding-left:20px;font-size:14px}.privacy-doc li{margin-bottom:4px}.footer{border-top:1px solid var(--border);background:var(--surface)}.footer-inner{max-width:1280px;color:var(--text-2);flex-wrap:wrap;align-items:center;gap:10px;margin:0 auto;padding:18px 24px;font-size:12px;display:flex}.footer-brand{color:var(--text);font-weight:600}.footer-sep{color:var(--border-strong)}.footer-link{color:var(--text-2);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;font-size:12px;text-decoration:underline}.footer-link:hover{color:var(--text)}.sf{width:320px;color:var(--text);flex-direction:column;padding:4px 0;font-size:13px;display:flex}.sf-menu{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin:0 4px;padding:7px 12px}.sf-menu:hover:not(:disabled){background:var(--surface-hover)}.sf-menu:disabled{color:var(--text-3);cursor:default}.sf-sep{background:var(--border);height:1px;margin:4px 0}.sf-search{border:1px solid var(--border);border-radius:var(--radius-sm);height:30px;font:inherit;outline:none;margin:4px 12px;padding:0 10px}.sf-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.sf-list{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:260px;margin:4px 12px;padding:4px 0;overflow:auto}.sf-item{padding:4px 10px;padding-left:calc(10px + var(--depth,0) * 18px);cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:8px;margin:0 4px;display:flex}.sf-item:hover{background:var(--surface-hover)}.sf-item input{width:15px;height:15px;accent-color:var(--text);margin:0}.sf-item-label{text-overflow:ellipsis;flex:1;overflow:hidden}.sf-all .sf-item-label{font-weight:600}.sf-count{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:6px;font-size:11px}.sf-group-row{align-items:center;display:flex}.sf-group-row .sf-item{flex:1;margin-left:0;padding-left:0}.sf-caret{width:18px;margin-left:calc(6px + var(--depth,0) * 18px);color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.sf-leaf .sf-item{padding-left:calc(28px + var(--depth,0) * 18px)}.sf-empty{color:var(--text-3);text-align:center;padding:12px}.sf-actions{justify-content:flex-end;gap:8px;padding:8px 12px 4px;display:flex}.sf-ok,.sf-cancel{border-radius:var(--radius-sm);height:30px;font:inherit;cursor:pointer;padding:0 14px;font-size:13px;font-weight:500}.sf-ok{background:var(--text);color:#fff;border:1px solid var(--text)}.sf-ok:hover:not(:disabled){background:#303135}.sf-ok:disabled{opacity:.4;cursor:default}.sf-cancel{background:var(--surface);color:var(--text);border:1px solid var(--border)}.sf-cancel:hover{background:var(--surface-hover)}@media (width<=640px){.shell-header{padding:0 14px}.app{padding:16px 12px 48px}.page-header h1{font-size:20px}.page-header p{font-size:13px}.hero{gap:16px;padding:36px 8px 32px}.hero h1{font-size:36px}.hero p{font-size:16px}.hero-actions{flex-direction:column;width:100%}.hero-actions button{width:100%}.dropzone{padding:24px 12px}.stats{gap:8px}.stat{padding:10px 12px}.stat-value{font-size:18px}.toolbar{padding:8px}.tabs button{padding:0 8px;font-size:12px}.grid-quick-filter{flex-basis:100%}.sheet-wrap .grid-body{height:70vh}.export-bar{z-index:5;box-shadow:var(--shadow-lg);position:sticky;bottom:0}.export-hint{display:none}.filename-input{flex-basis:100%}.btn-export{flex:auto}.how-to-bottom,.shell-right .pill{display:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes pulse-ring{0%{box-shadow:0 0 #2f6fed40}to{box-shadow:0 0 0 10px #2f6fed00}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.hero>*{animation:.6s cubic-bezier(.2,.7,.2,1) backwards fade-up}.hero>:first-child{animation-delay:50ms}.hero>:nth-child(2){animation-delay:.12s}.hero>:nth-child(3){animation-delay:.2s}.hero>:nth-child(4){animation-delay:.28s}.page-header,.upload-card,.how-to-card,.toolbar,.sheet-wrap,.export-bar{animation:.5s cubic-bezier(.2,.7,.2,1) backwards fade-up}.upload-card{animation-delay:.32s}.how-to-card{animation-delay:.4s}.upload-card--compact,.toolbar,.sheet-wrap,.export-bar{animation-delay:0s}.toolbar{animation-delay:80ms}.sheet-wrap{animation-delay:.12s}.export-bar{animation-delay:.16s}.stat{animation:.45s cubic-bezier(.2,.7,.2,1) backwards pop-in}.stat:first-child{animation-delay:20ms}.stat:nth-child(2){animation-delay:60ms}.stat:nth-child(3){animation-delay:.1s}.stat:nth-child(4){animation-delay:.14s}.stat:nth-child(5){animation-delay:.18s}.stat:nth-child(6){animation-delay:.22s}.stat{transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s}.stat:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.recibo,.download-msg,.stats-note{animation:.35s cubic-bezier(.2,.7,.2,1) backwards slide-down}.export-clear>*{animation:.2s both fade-in}.btn-export,.btn-ghost,.btn-clear,.btn-danger,.hero-kicker,.recibo-toggle,.sf-ok,.sf-cancel{transition:background .15s,border-color .15s,box-shadow .2s,transform .15s cubic-bezier(.2,.7,.2,1),color .15s}.btn-export:hover,.btn-ghost:hover:not(:disabled),.btn-clear:hover,.btn-danger:hover{transform:translateY(-1px)}.btn-export:hover{box-shadow:0 4px 12px #1b1b1d38}.btn-ghost:hover:not(:disabled),.btn-clear:hover{box-shadow:var(--shadow-sm)}.btn-export:active,.btn-ghost:active,.btn-clear:active,.btn-danger:active,.hero-kicker:active{box-shadow:none;transform:translateY(0)scale(.98)}.tabs button{transition:background .2s,color .15s,box-shadow .2s,transform .15s}.tabs button:active{transform:scale(.97)}.shell-link,.footer-link{transition:color .15s,background .15s}.dropzone{transition:background .2s,border-color .2s,transform .2s cubic-bezier(.2,.7,.2,1)}.dropzone svg{transition:transform .25s cubic-bezier(.2,.7,.2,1),color .2s}.dropzone:hover svg{color:var(--accent);transform:translateY(-3px)}.dropzone.dragging{animation:1.2s ease-out infinite pulse-ring;transform:scale(1.005)}.dropzone.dragging svg{color:var(--accent);transform:translateY(-5px)scale(1.08)}.dropzone--loading{pointer-events:none}.dropzone--loading svg{color:var(--accent);animation:.9s linear infinite spin}.dropzone--loading p{background:linear-gradient(90deg, var(--text-2) 0%, var(--text) 50%, var(--text-2) 100%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:1.4s linear infinite shimmer}.dialog-overlay{animation:.2s ease-out both fade-in}.dialog{animation:.3s cubic-bezier(.2,.7,.2,1) backwards pop-in}.privacy-layer{animation:.25s cubic-bezier(.2,.7,.2,1) backwards fade-up}.sf{animation:.18s cubic-bezier(.2,.7,.2,1) backwards pop-in}.how-to-faq summary:before{transition:transform .2s;display:inline-block}.how-to-faq details[open] summary:before{transform:rotate(180deg)}.how-to-faq details p{animation:.25s cubic-bezier(.2,.7,.2,1) backwards slide-down}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}.pill--ok:before{animation:2.4s ease-in-out infinite blink}.stat-value{transition:color .2s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
