@property --bg{syntax:"<color>";inherits:true;initial-value:#0d0d0d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body,.app,.sidebar,.modal-overlay,.modal,input,select,textarea,label,p,span,td,th{transition:background-color var(--duration-slow) var(--ease), border-color var(--duration-slow) var(--ease), color var(--duration-slow) var(--ease)}::view-transition-old(root){animation-duration:1s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-new(root){animation-duration:1s;animation-timing-function:cubic-bezier(.4,0,.2,1)}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0c0d;--surface:#161617;--surface-2:#1d1d1f;--surface-hover:#202022;--surface-active:#ffffff0f;--border:#ffffff12;--border-strong:#ffffff21;--text:#f2f2f4;--text-muted:#9a9aa0;--text-subtle:#6a6a70;--green:#3ecf8e;--green-dim:#3ecf8e24;--red:#e5654a;--red-dim:#e5654a1f;--yellow:#d9a441;--yellow-dim:#d9a44121;--blue:#5b8def;--blue-dim:#5b8def24;--brand:#3ecf8e;--brand-dim:#3ecf8e24;--brand-hover:#34b97d;--brand-text:#0d0d0d;--brand-fg:var(--brand);--tag-blue:#6f90d9;--tag-purple:#b08fe0;--tag-teal:#45bfae;--tag-amber:#d9a93d;--tag-orange:#d98a50;--tag-green:#5cc480;--tag-cyan:#4dbfd1;--tag-pink:#d981ae;--tag-red:#d97c7c;--tag-indigo:#7e8ad9;--tag-slate:#93a1b3;--tag-violet:#a38dd9;--tag-gray:#9ca3af;--tag-yellow:#d9bd4a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--text-xs:.72rem;--text-sm:.8rem;--text-base:.875rem;--text-md:.95rem;--text-lg:1.1rem;--text-xl:1.4rem;--text-2xl:1.8rem;--text-hero:3rem;--font-title:600 var(--text-xl)/1.2 inherit;--weight-title:600;--weight-heading:600;--tracking-title:-.02em;--tracking-tight:-.01em;--radius:8px;--radius-sm:6px;--radius-lg:14px;--radius-pill:40px;--card-pad:var(--space-5);--card-pad-lg:var(--space-6);--gutter:16px;--content-max:1180px;--shadow-sm:0 1px 2px #0000002e;--shadow-md:0 4px 16px #00000038;--shadow-lg:0 18px 48px #0006, 0 6px 14px #00000038;--ease:cubic-bezier(.2, .8, .2, 1);--duration-fast:.12s;--duration-base:.18s;--duration-slow:.28s;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11", "ss01";text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Helvetica Neue,Segoe UI,sans-serif;font-size:14px;line-height:1.55}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e9e9ec;--surface:#fff;--surface-2:#f1f1f4;--surface-hover:#ebebee;--surface-active:#0000000f;--border:#0000001f;--border-strong:#0003;--text:#1d1d1f;--text-muted:#5e5e63;--text-subtle:#86868b;--green:#1f9d67;--green-dim:#1f9d671a;--red:#c24a33;--red-dim:#c24a331a;--yellow:#b8860b;--yellow-dim:#b8860b1a;--blue:#4472d9;--blue-dim:#4472d91a;--brand:#1f9d67;--brand-dim:#1f9d671a;--brand-hover:#18804f;--brand-text:#0d0d0d;--brand-fg:var(--brand);--tag-blue:#2563eb;--tag-purple:#7c3aed;--tag-teal:#0d9488;--tag-amber:#b45309;--tag-orange:#c2410c;--tag-green:#15803d;--tag-cyan:#0e7490;--tag-pink:#be185d;--tag-red:#dc2626;--tag-indigo:#4338ca;--tag-slate:#475569;--tag-violet:#6d28d9;--tag-gray:#4b5563;--tag-yellow:#a16207;--shadow-sm:0 1px 2px #00000012;--shadow-md:0 4px 14px #0000001a;--shadow-lg:0 18px 48px #00000029, 0 6px 14px #00000017}body{background:var(--bg);min-height:100dvh;overflow-x:clip}.app{max-width:1200px;margin:0 auto;padding:0 24px}main{padding-top:4px}.app-footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:48px;padding:32px 0 24px;font-size:.75rem;display:flex}.footer-links{gap:16px;display:flex}.footer-link{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-family:inherit;font-size:.75rem;transition:color .15s}.footer-link:hover{color:var(--text)}.avatar{background:var(--brand);color:#fff;letter-spacing:.04em;-webkit-user-select:none;user-select:none;width:32px;height:32px;box-shadow:0 0 0 1px var(--border);border:none;border-radius:50%;outline:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex;position:relative;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar--has-photo,.user-mgmt-avatar--has-photo{background:0 0}.avatar--lg{letter-spacing:.03em;width:72px;height:72px;margin-bottom:4px;font-size:1.2rem}.avatar--editable{cursor:pointer}.avatar--uploading{opacity:.6}.avatar-edit-overlay{opacity:0;background:#00000073;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;transition:opacity .15s;display:flex;position:absolute;inset:0}.avatar--editable:hover .avatar-edit-overlay{opacity:1}.avatar-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite avatar-spin;display:block}@keyframes avatar-spin{to{transform:rotate(360deg)}}.header{z-index:50;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:0;padding:18px 0 32px;display:flex;position:sticky;top:0}.header-bg{z-index:0;pointer-events:none;background:linear-gradient(to bottom, var(--bg) 35%, transparent 100%);position:absolute;inset:0 calc(50% - 50vw) -40px}.header>:not(.header-bg):not(.header-center){z-index:1;position:relative}.header-left{align-items:center;gap:10px;display:flex}.header-left h1{color:var(--text);letter-spacing:-.022em;font-size:1.15rem;font-weight:600}.year-badge{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem;font-weight:500}.header-center{z-index:1;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.header-right{align-items:center;gap:12px;display:flex}.last-updated{color:var(--text-muted);font-size:.75rem}.year-dropdown{position:relative}.year-stepper{background:var(--surface-hover);border-radius:10px;align-items:center;gap:1px;padding:3px;display:inline-flex;position:relative}.year-step{width:26px;height:28px;color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.year-step:hover:not(:disabled){color:var(--text);background:var(--surface)}.year-step:disabled{opacity:.3;cursor:default}.year-step-label{height:28px;color:var(--text);letter-spacing:-.01em;cursor:pointer;font-variant-numeric:tabular-nums;transition:background var(--duration-fast) var(--ease);background:0 0;border:none;border-radius:8px;align-items:center;gap:5px;padding:0 10px;font-family:inherit;font-size:.8rem;font-weight:600;display:inline-flex}.year-step-label:hover{background:var(--surface)}.year-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-1);z-index:200;min-width:160px;box-shadow:var(--shadow-lg);position:absolute;top:calc(100% + 6px);right:0}.year-menu-list{max-height:240px;margin:0;padding:0;list-style:none;overflow-y:auto}.year-menu-item{align-items:center;display:flex}.year-menu-item .year-option{flex:1}.year-option{width:100%;color:var(--text-muted);cursor:pointer;padding:var(--space-2) var(--space-3);letter-spacing:.02em;border-radius:var(--radius-sm);text-align:left;transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);background:0 0;border:none;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:600;display:flex}.year-option:hover{background:var(--surface-hover);color:var(--text)}.year-option.active{color:var(--brand-fg);background:var(--brand-dim)}.year-option.active:after{content:"✓";font-size:.78rem}.year-remove{color:var(--text-muted);cursor:pointer;transition:color var(--duration-base) var(--ease);background:0 0;border:none;padding:0 8px;font-size:1rem;line-height:1}.year-remove:hover{color:var(--red)}.year-menu-divider{background:var(--border);height:1px;margin:var(--space-1) 0}.year-menu-add-row{flex-direction:column;gap:2px;padding:2px;display:flex}.year-menu-add-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:var(--space-2) var(--space-3);text-align:left;transition:color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;border:none;align-items:center;gap:5px;font-size:.8rem;font-weight:500;display:flex}.year-menu-add-btn:hover{color:var(--brand-fg);background:var(--brand-dim)}.refresh-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;padding:4px 10px;font-size:1.1rem;line-height:1;transition:color .2s,border-color .2s}.refresh-btn:hover{color:var(--text);border-color:var(--border-strong)}.period-selector{background:var(--surface-hover);border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex;position:relative}.period-btn{color:var(--text-muted);cursor:pointer;height:28px;transition:color var(--duration-base) var(--ease);white-space:nowrap;z-index:1;background:0 0;border:none;border-radius:8px;padding:0 13px;font-family:inherit;font-size:.78rem;font-weight:500;position:relative}.period-btn:hover{color:var(--text)}.period-btn.active{color:var(--brand-fg);font-weight:600}.period-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:16px;margin:0 3px}.period-pill{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);pointer-events:none;z-index:0;border-radius:8px;position:absolute;top:3px;bottom:3px;left:0}[data-theme=light] .period-selector{background:#0000000d}[data-theme=light] .period-pill{border-color:var(--border);background:#fff;box-shadow:0 1px 4px #00000014}[data-theme=light] .iva-qcard{background:0 0}[data-theme=light] .iva-qcard:hover{background:#0000000a}[data-theme=light] .iva-qcard--active{background:#00000014}.two-col{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px;display:grid}.card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad)}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:14px;display:flex}.card-title{font-size:var(--text-md);font-weight:var(--weight-heading);letter-spacing:var(--tracking-tight);color:var(--text)}.card-link{font-size:var(--text-xs);color:var(--text-subtle);cursor:pointer;transition:color var(--duration-fast) var(--ease);background:0 0;border:none;font-family:inherit}.card-link:hover{color:var(--brand-fg)}.table-card{border:none;border-top:1px solid var(--border);padding:var(--space-7) 0 var(--space-4);margin-bottom:var(--space-6);background:0 0;border-radius:0;overflow:hidden}.two-col .table-card{background:var(--surface);border-radius:var(--radius);border:none;margin-bottom:24px;padding:12px}.table-card h2{color:var(--text);letter-spacing:-.01em;margin-bottom:20px;font-size:.9rem;font-weight:600}.two-col .table-card h2{text-transform:none;letter-spacing:-.01em;color:var(--text);font-size:.9rem;font-weight:600}.table-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.table-header h2{margin-bottom:0}.table-header-left{align-items:center;gap:var(--space-3);min-width:0;display:flex}.table-header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.filter-strip{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:4px;padding:2px 0 14px;display:flex}.filter-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);align-items:center;gap:6px;padding:5px 11px 5px 8px;font-family:inherit;font-size:.78rem;font-weight:500;display:inline-flex}.filter-chip:hover{border-color:var(--border-strong);color:var(--text)}.filter-chip--active{background:var(--surface-active);border-color:var(--border-strong);color:var(--text)}.filter-chip-check{border:1px solid var(--border-strong);width:14px;height:14px;color:var(--brand-text);transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.filter-chip-check.checked{background:var(--brand);border-color:var(--brand)}.filter-chip-label{text-overflow:ellipsis;white-space:nowrap;max-width:170px;overflow:hidden}.filter-chip-count{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:.7rem}.filter-chip--active .filter-chip-count{color:var(--text-muted)}.filter-strip{scrollbar-width:thin;max-height:132px;overflow-y:auto}.cell-actions-inline{align-items:center;gap:var(--space-2);display:flex}.cell-actions-inline--end{justify-content:flex-end}.table-section-separator{padding:6px var(--space-3) 2px;font-size:var(--text-xs);color:var(--text-muted);opacity:.7;letter-spacing:.03em;text-transform:uppercase}.search-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:var(--space-2) var(--space-4);width:220px;transition:border-color var(--duration-base) var(--ease), box-shadow var(--duration-base) var(--ease);background:0 0;outline:none;font-family:inherit;font-size:.8rem;line-height:1.4}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim)}.search-input--full{flex:1;width:auto;min-width:0}.btn-search{color:var(--text-muted)}.btn-search--active{color:var(--brand-fg)}.search-row-mobile{align-items:center;gap:6px;padding:0 0 10px;display:flex;overflow:hidden}.table-scroll{overflow-x:auto}.table-scroll::-webkit-scrollbar{height:4px}.table-scroll::-webkit-scrollbar-track{background:var(--surface)}.table-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.table-scroll thead th{background:var(--bg);z-index:1;position:sticky;top:0}table{border-collapse:collapse;width:100%;font-size:.88rem}th{text-align:left;color:var(--text-muted);letter-spacing:.01em;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);white-space:nowrap;font-size:.78rem;font-weight:500}th.num,td.num{text-align:right}td{padding:var(--space-3);border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums;font-size:var(--text-base)}td.negative{color:var(--text)}tbody tr:hover{background:var(--surface-hover)}tfoot td{border-top:1px solid var(--border-strong);color:var(--text);border-bottom:none;font-size:.875rem;font-weight:500}.badge{letter-spacing:.01em;border-radius:40px;padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-block}.badge-paid,.badge-pending{letter-spacing:.02em;justify-content:center;align-items:center;gap:5px;min-width:90px;padding:3px 11px 3px 8px;font-weight:700;display:inline-flex}.badge-paid:before,.badge-pending:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge-paid{background:var(--green-dim);color:var(--green)}.badge-pending{background:var(--yellow-dim);color:var(--yellow)}.badge-row{align-items:center;gap:4px;display:inline-flex}.irpf-rate-badge{border-radius:var(--radius-sm);padding:1px 5px;font-size:.75rem;font-weight:600}.quarter-badge{letter-spacing:.02em;color:var(--text-muted);background:var(--surface-hover);border-radius:var(--radius-sm);flex-shrink:0;padding:1px 5px;font-size:.72rem;font-weight:600}.irpf-rate-badge--yellow{color:var(--yellow);background:var(--yellow-dim)}.currency-badge{border-radius:var(--radius-sm);color:var(--blue);background:var(--blue-dim);letter-spacing:.03em;padding:1px 5px;font-size:.72rem;font-weight:600}.amount-cell{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.amount-cell.negative span:first-child{color:var(--red)}.amount-eur{color:var(--text-muted);font-size:.75rem}.vat-result-row td{font-weight:600}td.positive{color:var(--red)}td.negative-val{color:var(--green)}.vat-bars{flex-direction:column;gap:14px;margin-top:20px;display:flex}.vat-bar-group{opacity:.6;transition:opacity .2s}.vat-bar-group.active{opacity:1}.vat-bar-label{color:var(--text-muted);margin-bottom:4px;font-size:.75rem;display:block}.vat-bar-track{background:var(--border);border-radius:3px;height:6px;margin-bottom:4px;overflow:hidden}.vat-bar{border-radius:3px;height:100%}.iva-desktop{display:block}.iva-mobile{display:none}.iva-desktop-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px;display:grid}.iva-desktop-grid .iva-qcard{padding:12px}.iva-total-text{flex-direction:column;gap:8px;padding:4px 2px;display:flex}.iva-total-label{color:var(--text-muted);letter-spacing:.01em;font-size:.75rem;font-weight:600}.iva-total-cols{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.iva-total-col{flex-direction:column;gap:4px;display:flex}.iva-total-col .iva-qcard-row{font-size:.85rem}.iva-total-result span:last-child{color:var(--yellow)}.iva-mobile{grid-template-columns:1fr 1fr;gap:8px}.iva-qcard{border-radius:var(--radius);cursor:pointer;transition:background var(--duration-base) var(--ease);background:0 0;border:none;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.iva-qcard:hover{background:var(--surface-hover)}.iva-qcard--active{background:var(--brand-dim)}.iva-qcard-header{justify-content:space-between;align-items:center;display:flex}.iva-qcard-label{color:var(--text-muted);letter-spacing:.01em;font-size:.78rem;font-weight:600}.iva-qcard-rows{flex-direction:column;gap:4px;display:flex}.iva-qcard-row{color:var(--text-muted);justify-content:space-between;gap:6px;font-size:.75rem;display:flex}.iva-qcard-row span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.iva-qcard-row span:last-child{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;flex-shrink:0}.iva-qcard-balance{font-variant-numeric:tabular-nums;letter-spacing:-.03em;border-top:1px solid var(--border);padding-top:8px;font-size:1.05rem;font-weight:500}.iva-qcard-balance.positive{color:var(--yellow)}.iva-qcard-balance.negative-val{color:var(--green)}.irpf-card,.iva-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad);border:none;flex-direction:column;margin-bottom:0;display:flex}.irpf-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.irpf-header h2{margin-bottom:0}.quarter-period-title{color:var(--text);font-size:.88rem;font-weight:700}.irpf-period-badge{color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem}.irpf-rows{flex-direction:column;flex:1;gap:5px;display:flex}.irpf-row{justify-content:space-between;align-items:center;display:flex}.irpf-label{color:var(--text-muted);font-size:.82rem}.irpf-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:500}.irpf-separator{border-top:1px solid var(--border);margin:4px 0}.irpf-result{margin-top:auto;padding-top:8px}.irpf-big-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:500;line-height:1}.irpf-result.pay .irpf-big-value{color:var(--red)}.iva-card--single{margin-top:0}.iva-card--single .irpf-result.pay .irpf-big-value{color:var(--yellow)}.irpf-result.refund .irpf-big-value{color:var(--green)}.quarter-period-header{align-items:center;gap:24px;margin-bottom:16px;display:flex}.irpf-value--large{letter-spacing:-.02em;font-size:1.05rem;font-weight:600}.irpf-brackets{flex-direction:column;margin-bottom:4px;display:flex}.irpf-bracket-row{align-items:center;gap:8px;padding:4px 0;display:flex}.irpf-bracket-rate{color:var(--red);background:var(--red-dim);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;flex-shrink:0;padding:2px 6px;font-size:.72rem;font-weight:700}.irpf-bracket-base{color:var(--text-muted);flex:1;font-size:.78rem}.irpf-bracket-tax{color:var(--text);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:500}.irpf-invoice-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.irpf-invoice-list--limited{max-height:400px;padding-right:4px;overflow-y:auto}.irpf-invoice-row{flex-direction:column;gap:4px;display:flex}.irpf-invoice-info{flex-direction:column;gap:2px;display:flex}.irpf-invoice-client{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.8rem;overflow:hidden}.irpf-invoice-pct-row{font-variant-numeric:tabular-nums;white-space:nowrap;flex-wrap:nowrap;align-self:flex-end;align-items:center;gap:5px;font-size:.75rem;display:flex}.irpf-paid-block{color:var(--text-muted);align-items:center;gap:4px;display:flex}.irpf-paid-amount{color:var(--red);opacity:.75;font-size:.75rem}.irpf-arrow{color:var(--text-muted);opacity:.5}.irpf-remaining-block{align-items:center;gap:4px;font-weight:600;display:flex}.irpf-remaining-amount{opacity:.85;font-size:.75rem;font-weight:400}.irpf-bar-track{background:var(--border);border-radius:2px;height:3px;overflow:hidden}.irpf-bar-fill{background:var(--red);opacity:.5;border-radius:2px;height:100%}.irpf-bar-fill--pending{background:var(--yellow);opacity:.6}.irpf-invoice-row--pending{opacity:.85}.irpf-not-withheld{color:var(--yellow);font-size:.78rem;font-style:italic}.pct-remaining{color:var(--red);font-weight:600}.pct-ok{color:var(--green);font-weight:600}.pin-overlay{background:var(--bg);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pin-card{background:var(--surface);border-radius:16px;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:360px;margin-bottom:8vh;padding:52px 40px;display:flex}.pin-title{color:var(--text);letter-spacing:-.02em;font-size:1.2rem;font-weight:700}.pin-subtitle{color:var(--text-muted);margin-bottom:8px;font-size:.82rem}.pin-inputs{gap:8px;margin-top:4px;display:flex}.pin-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:40px;height:46px;color:var(--text);text-align:center;caret-color:#0000;transition:border-color var(--duration-base) var(--ease), box-shadow var(--duration-base) var(--ease);background:0 0;outline:none;font-family:inherit;font-size:1.2rem}.pin-input:focus{border-color:var(--brand);background:var(--brand-dim);box-shadow:0 0 0 3px var(--brand-dim)}.pin-input--filled{border-color:var(--brand);background:var(--brand-dim)}.pin-input--error{border-color:var(--red);background:var(--red-dim)}.pin-error{color:var(--red);margin-top:4px;font-size:.78rem}.login-card{width:100%;max-width:360px}.login-logo{justify-content:center;align-items:center;margin-bottom:32px;display:flex}.login-logo-text{letter-spacing:-.06em;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;font-size:2.2rem;font-weight:700;line-height:1}.login-form{flex-direction:column;gap:12px;width:94%;margin-top:8px;display:flex}.login-field{flex-direction:column;gap:5px;display:flex}.login-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.75rem;font-weight:600}.login-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color var(--duration-base) var(--ease), box-shadow var(--duration-base) var(--ease);box-sizing:border-box;background:0 0;font-family:inherit;font-size:.9rem}.login-input:focus{border-color:var(--brand);background:var(--brand-dim);box-shadow:0 0 0 3px var(--brand-dim);outline:none}.login-input--error{border-color:var(--red);background:var(--red-dim)}.login-input-wrap{align-items:center;display:flex;position:relative}.login-input-wrap .login-input{padding-right:40px}.login-eye{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;transition:color .15s;display:flex;position:absolute;right:10px}.login-eye:hover{color:var(--text)}.login-submit{background:var(--brand);color:var(--brand-text);border-color:var(--brand);width:100%;margin-top:4px;padding:10px;font-size:.88rem}.login-switch{color:var(--brand-fg);cursor:pointer;background:0 0;border:none;border-radius:6px;margin-top:12px;padding:4px 8px;font-size:.78rem;transition:background .2s}.login-switch:hover{background:var(--brand-dim)}.login-quick-avatar{background:var(--brand-dim);width:64px;height:64px;color:var(--brand-fg);border:2px solid var(--border);border-radius:50%;justify-content:center;align-items:center;margin:4px auto 10px;font-size:1.4rem;font-weight:700;display:flex;overflow:hidden}.login-quick-avatar img{object-fit:cover;width:100%;height:100%}.login-quick-name{color:var(--text);text-align:center;margin:0 0 4px;font-size:1.1rem;font-weight:600}.user-mgmt-modal{width:100%;max-width:540px}.user-mgmt-list{flex-direction:column;gap:6px;max-height:320px;margin:12px 0;display:flex;overflow-y:auto}.user-mgmt-page{max-width:880px}.user-mgmt-page .table-card{padding-top:var(--space-5)}.user-mgmt-page .user-mgmt-list{gap:8px;max-height:none;margin:0;overflow-y:visible}.user-mgmt-page .user-mgmt-row{transition:border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);padding:13px 16px}.user-mgmt-page .user-mgmt-row:hover{border-color:var(--border-strong)}.user-mgmt-page .user-mgmt-avatar{width:40px;height:40px;font-size:.85rem}.user-mgmt-page .user-mgmt-name{font-size:.95rem}.user-mgmt-empty{color:var(--text-muted);text-align:center;padding:20px 0;font-size:.85rem}.user-mgmt-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.user-mgmt-row--self{border-color:var(--brand);background:#2d63f80a}.user-mgmt-info{align-items:center;gap:10px;min-width:0;display:flex}.user-mgmt-avatar{background:var(--brand-dim);width:32px;height:32px;color:var(--brand-fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex;overflow:hidden}.user-mgmt-name{color:var(--text);align-items:center;gap:6px;font-size:.88rem;font-weight:600;display:flex}.user-mgmt-you{color:var(--brand-fg);font-size:.75rem;font-weight:500}.user-mgmt-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.user-mgmt-email{color:var(--text-muted);font-size:.75rem}.user-mgmt-username{color:var(--brand-fg);font-size:.75rem;font-weight:500}.user-mgmt-role-badge{color:var(--text-muted);background:var(--surface-hover);border-radius:4px;padding:1px 6px;font-size:.75rem;font-weight:600}.user-mgmt-role-badge[data-role=admin]{color:var(--brand-fg);background:var(--brand-dim)}.user-mgmt-lastlogin{color:var(--text-muted);opacity:.7;font-size:.75rem}.user-mgmt-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.btn-ghost--danger{color:var(--red)!important}.btn-ghost--danger:hover{border-color:var(--red)!important;background:var(--red-dim)!important}.btn-ghost--warning{color:var(--yellow)!important}.btn-ghost--warning:hover{color:var(--yellow)!important;border-color:var(--yellow)!important;background:var(--yellow-dim,color-mix(in srgb, var(--yellow) 15%, transparent))!important}.user-mgmt-frozen{color:var(--yellow);font-size:.75rem;font-weight:500}.user-mgmt-error{color:var(--red);background:var(--red-dim);border:1px solid var(--red);border-radius:8px;margin-bottom:8px;padding:8px 12px;font-size:.8rem}.user-mgmt-form{border-top:1px solid var(--border);margin-top:4px;padding-top:12px;overflow:hidden}.user-mgmt-form-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.user-mgmt-form-actions{justify-content:flex-end;gap:8px;display:flex}.user-edit-form{background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;margin-bottom:6px;padding:12px;overflow:hidden}.profile-panel-modal{width:100%;max-width:440px}.profile-photo-section{justify-content:center;padding:16px 0 8px;display:flex}.profile-photo-circle{background:var(--brand-dim);width:80px;height:80px;color:var(--brand-fg);cursor:pointer;border:2px solid var(--border);border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;font-weight:700;transition:border-color .15s;display:flex;position:relative;overflow:hidden}.profile-photo-circle img{object-fit:cover;width:100%;height:100%}.profile-photo-circle:hover{border-color:var(--brand)}.profile-photo-circle--uploading{opacity:.6;cursor:default}.profile-photo-overlay{color:#fff;opacity:0;background:#00000073;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.profile-photo-circle:hover .profile-photo-overlay{opacity:1}.profile-form{padding-top:4px}.profile-form-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.profile-form-actions{justify-content:flex-end;gap:8px;display:flex}.profile-success{color:var(--green);margin-top:6px;font-size:.8rem}.confirm-popup{border:none;border-top:1px solid var(--border);background:0 0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 0;display:flex}.confirm-popup-msg{color:var(--text);flex:1;font-size:.8rem}.confirm-popup-actions{flex-shrink:0;gap:6px;display:flex}.user-badge{color:var(--text-muted);white-space:nowrap;align-items:center;gap:5px;font-size:.78rem;font-weight:600;display:flex}.user-badge--clickable{cursor:pointer;border-radius:6px;padding:2px 6px;transition:background .2s}.user-badge--clickable:hover{background:var(--surface-hover)}.user-badge-admin{color:var(--brand-fg);background:var(--brand-dim);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:1px 5px;font-size:.75rem;font-weight:700}.viewing-banner{border-bottom:1px solid var(--brand-dim);color:var(--text-muted);background:#2d63f814;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:.82rem;display:flex}.viewing-banner-btn{border:1px solid var(--brand);color:var(--brand-fg);cursor:pointer;background:0 0;border-radius:6px;padding:3px 10px;font-size:.78rem;transition:background .2s}.viewing-banner-btn:hover{background:var(--brand-dim)}.error-banner{background:var(--red-dim);color:var(--red);border-radius:var(--radius);border:1px solid #ff4d6a33;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:.85rem;display:flex}.error-retry{border:1px solid var(--red);border-radius:var(--radius-sm);color:var(--red);cursor:pointer;white-space:nowrap;background:0 0;padding:4px 12px;font-size:.78rem;font-weight:600;transition:background .2s}.error-retry:hover{background:var(--red-dim)}.empty-state{text-align:center;color:var(--text-muted);font-size:.85rem;padding:32px 0!important}.days-badge{border-radius:var(--radius-pill);letter-spacing:.02em;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.days-pending{background:var(--yellow-dim);color:var(--yellow)}.gap-warning{color:var(--yellow);background:var(--yellow-dim);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;max-width:280px;padding:3px 8px;font-size:.75rem;overflow:hidden}.vat-dot{background:var(--border-strong);cursor:pointer;width:8px;height:8px;transition:background var(--duration-base) var(--ease), opacity var(--duration-base) var(--ease);border-radius:50%;flex-shrink:0;display:inline-block}.vat-dot:hover{background:var(--text-subtle)}.vat-dot--paid{background:var(--green)}.vat-dot--paid:hover{opacity:.7}.input-error{border-color:var(--red)!important;background:var(--red-dim)!important}.rate-input-row{align-items:center;gap:6px;display:flex}.rate-input-row input{flex:1;min-width:0}.rate-auto-badge{color:var(--brand-fg);background:var(--brand-dim);white-space:nowrap;letter-spacing:.03em;border-radius:4px;padding:2px 7px;font-size:.75rem;font-weight:600}.rate-hint-row{min-height:1em;margin-top:3px}.rate-hint{color:var(--text-muted);opacity:.8;font-size:.75rem}.rate-hint--error{color:var(--red);opacity:1}.rate-module--loading{opacity:.55;pointer-events:none}.rate-spinner{border:1.5px solid var(--border);border-top-color:var(--brand);vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:5px;animation:.7s linear infinite bulk-spin;display:inline-block}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}::-webkit-scrollbar-corner{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}@media (width<=900px){.kpi-secondary{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.header{flex-wrap:wrap;gap:10px;padding:14px 0}.header-left{flex:1;min-width:0}.header-right{flex-shrink:0;order:2}.header-center{flex-basis:100%;order:3;align-items:stretch;width:100%;position:static;left:auto;transform:none}.period-selector{justify-content:space-between;width:100%}.lang-switcher--desktop{display:none}.lang-toggle{display:flex}}@media (width<=600px){input,select,textarea{font-size:16px!important}.app{padding:0 12px 40px}.table-card{padding:20px 0 12px}.two-col .table-card{padding:12px}main{padding-top:8px}.kpi-hero{grid-template-columns:1fr;gap:0}.kpi-hero .kpi-card{padding:16px}.kpi-hero .kpi-value{font-size:2.8rem}.kpi-secondary{grid-template-columns:repeat(2,1fr);gap:0 8px;margin-bottom:28px}.kpi-secondary .kpi-card{padding:16px}.kpi-secondary .kpi-card:nth-child(-n+2){padding-bottom:8px}.kpi-secondary .kpi-card:nth-child(n+3){padding-top:8px}.table-header{flex-direction:column;align-items:flex-start;gap:10px}.table-header>div:first-child{flex-wrap:wrap;row-gap:6px}.table-header>div:last-child{justify-content:flex-start;width:100%}.table-header>div:last-child .btn-search{margin-right:auto}.pin-overlay{justify-content:stretch;align-items:stretch}.pin-card.login-card{box-shadow:none;background:var(--bg);border:none;border-radius:0;flex:1;justify-content:center;max-width:100%;margin-bottom:0;padding:0 28px}.login-logo{margin-bottom:4px}.login-input{border-radius:10px;padding:13px 14px;font-size:16px}.login-input[type=password]{font-size:16px}.login-submit{border-radius:10px;margin-top:6px;padding:14px;font-size:.95rem}.login-quick-avatar{width:72px;height:72px;font-size:1.6rem}.login-quick-name{font-size:1.3rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:92vh;padding:24px 20px}.form-grid,.form-grid--3{grid-template-columns:1fr;gap:12px}.header-left h1{font-size:1rem}.header-right{flex-wrap:nowrap;gap:6px}.btn-ghost.btn-sm{padding:5px 8px;font-size:.75rem}.invoice-table th:first-child,.invoice-table td:first-child,.invoice-table th:nth-child(3),.invoice-table td:nth-child(3),.invoice-table th:nth-child(4),.invoice-table td:nth-child(4),.invoice-table th:nth-child(5),.invoice-table td:nth-child(5),.invoice-table th:nth-child(6),.invoice-table td:nth-child(6),.invoice-table th:nth-child(8),.invoice-table td:nth-child(8),.invoice-table th:nth-child(9),.invoice-table td:nth-child(9),.invoice-table tfoot,.expense-table th:first-child,.expense-table td:first-child,.expense-table th:nth-child(3),.expense-table td:nth-child(3),.expense-table th:nth-child(4),.expense-table td:nth-child(4),.expense-table th:nth-child(5),.expense-table td:nth-child(5),.expense-table th:nth-child(7),.expense-table td:nth-child(7),.expense-table tfoot{display:none}.table-scroll{overflow-x:hidden}.expense-table{table-layout:fixed;width:100%}.expense-table th:nth-child(2),.expense-table td:nth-child(2){width:65%}.expense-table th:nth-child(6),.expense-table td:nth-child(6){width:35%}.cell-meta,.cell-tag-dots{display:flex}.row-tags,.iva-desktop{display:none}.iva-mobile{display:grid}.filter-dropdown-menu{left:auto;right:0}.bulk-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.tag-picker-list{gap:5px}.tag-chip{padding:2px 6px;font-size:.75rem}.modal--wide,.user-mgmt-modal{width:100%}.user-mgmt-list{max-height:none}.user-mgmt-row{flex-direction:column;align-items:flex-start;gap:10px}.user-mgmt-info{width:100%}.user-mgmt-actions{border-top:1px solid var(--border);justify-content:flex-end;width:100%;padding-top:8px}.user-mgmt-meta{gap:4px}.user-edit-form{padding:10px}}.btn-primary{color:var(--brand);border:1.5px solid var(--brand);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-5);transition:background var(--duration-base) var(--ease), color var(--duration-base) var(--ease), transform var(--duration-fast) var(--ease);letter-spacing:.005em;background:0 0;justify-content:center;align-items:center;gap:6px;font-weight:600;line-height:1.4;display:inline-flex}.btn-primary:hover{background:var(--brand-dim)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost,.btn-secondary{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-4);transition:color var(--duration-base) var(--ease), border-color var(--duration-base) var(--ease), background var(--duration-base) var(--ease);background:0 0;justify-content:center;align-items:center;gap:6px;font-weight:500;display:inline-flex}.btn-ghost:hover,.btn-secondary:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-hover)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;padding:var(--space-7) var(--space-8);overflow-y:auto}.panel-overlay{-webkit-backdrop-filter:blur(2px);z-index:100;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.panel{background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);width:100%;max-width:480px;height:100%;padding:var(--space-6) var(--space-7);overflow:clip auto}@media (width<=600px){.panel{max-width:100%}}.legal-modal{max-width:680px}.legal-content{color:var(--text);margin-top:16px;font-size:.82rem;line-height:1.7}.legal-content h3{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-top:20px;margin-bottom:6px;font-size:.78rem;font-weight:700}.legal-content p{color:var(--text-secondary,var(--text));margin-bottom:8px}.legal-content ul{margin-bottom:8px;padding-left:18px}.legal-content ul li{margin-bottom:4px}.legal-content a{color:var(--brand-fg);text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-updated{color:var(--text-muted);margin-bottom:16px;font-size:.75rem}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{letter-spacing:-.02em;font-size:1rem;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1rem;transition:color .15s}.modal-close:hover{color:var(--text)}.form-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}.form-grid--single{grid-template-columns:1fr;gap:16px}.form-grid--3{grid-template-columns:1fr 1fr 1fr}.form-input-wrap{display:flex;position:relative}.form-input-wrap input{flex:1;padding-right:40px!important}.form-eye{cursor:pointer;width:38px;color:var(--text-muted);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0}.form-eye:hover{color:var(--text)}.form-field{flex-direction:column;gap:5px;display:flex}.form-field label{color:var(--text-muted);letter-spacing:.01em;font-size:.75rem;font-weight:500}.form-field-error{color:#e5484d;margin-top:1px;font-size:.72rem;font-weight:500}.form-field input,.form-field select,.form-field textarea{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);padding:var(--space-2) var(--space-3);transition:border-color var(--duration-base) var(--ease), box-shadow var(--duration-base) var(--ease);background-color:#0000;outline:none;width:100%;font-family:inherit;line-height:1.4}.form-field textarea{resize:vertical}.form-field--full{grid-column:1/-1}.form-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none' stroke='%23909090' stroke-width='1.4' stroke-linecap='round'%3E%3Cpolyline points='1,2.5 4,5.5 7,2.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:calc(var(--space-3) + 16px)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim);outline:none}.form-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.form-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-field input[type=number]{-moz-appearance:textfield}.form-field select option{background:#1a1a1a}[data-theme=light] .form-field select option{color:var(--text);background:#fff}.form-preview{background:var(--surface-hover);border-radius:var(--radius-sm);color:var(--text-muted);gap:20px;margin-bottom:16px;padding:12px;font-size:.82rem;display:flex}.form-preview strong{color:var(--text)}.form-error{background:var(--red-dim);color:var(--red);border-radius:var(--radius-sm);margin-bottom:14px;padding:10px 12px;font-size:.82rem}.form-actions{justify-content:flex-end;gap:10px;margin-top:32px;display:flex}.form-field input.input-error,.form-field select.input-error,.datepicker-input.input-error{background:var(--red-dim);border-color:var(--red)!important}.datepicker-input{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:var(--space-2) var(--space-3);cursor:pointer;width:100%;transition:border-color var(--duration-base) var(--ease);outline:none;font-size:.85rem}.datepicker-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim)}.datepicker-calendar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:232px;padding:14px}.datepicker-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.datepicker-month{color:var(--text);font-size:.82rem;font-weight:600}.datepicker-nav-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-size:1.1rem;line-height:1;transition:color .2s,background .2s}.datepicker-nav-btn:hover{color:var(--text);background:var(--surface-hover)}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-dayname{color:var(--text-muted);text-align:center;padding:3px 0;font-size:.75rem;font-weight:500}.datepicker-day{color:var(--text);border-radius:var(--radius-sm);cursor:pointer;text-align:center;background:0 0;border:none;padding:5px 0;font-size:.75rem;transition:background .12s,color .12s}.datepicker-day:hover{background:var(--surface-hover)}.datepicker-day.today{color:var(--brand-fg);font-weight:600}.datepicker-day.selected{background:var(--brand);color:var(--brand-text);font-weight:600}.btn-add{border-radius:var(--radius-sm);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);align-items:center;gap:5px;padding:7px 14px;font-size:.8rem;font-weight:500;display:inline-flex}.btn-add:hover,.btn-add--dragging{background:var(--surface-hover);border-color:var(--text-subtle)}.btn-add--primary{color:var(--brand);border-color:var(--brand);background:0 0;font-weight:600}.btn-add--primary:hover{background:var(--brand-dim);border-color:var(--brand)}.row-actions{justify-content:flex-end;gap:4px;display:flex}.btn-icon{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:5px 9px;font-size:.82rem;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.btn-icon:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-hover)}.btn-icon--danger:hover,.btn-icon--danger.btn-icon--active{color:var(--red);border-color:var(--red);background:var(--red-dim)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.theme-toggle{justify-content:center;align-items:center;padding:5px 10px;display:inline-flex}.status-toggle{cursor:pointer;transition:opacity .15s}.status-toggle:hover{opacity:.75}.expense-table tbody tr,.invoice-table tbody tr{-webkit-user-select:none;user-select:none}.tr-selected td{background:#8080800f}.tr-selected td:first-child{box-shadow:inset 3px 0 0 var(--border-strong)}.tr-amortized td{opacity:.55}.tr-amortized:hover td{opacity:.72}.amort-badge{border-radius:var(--radius-sm);color:var(--text-muted);vertical-align:middle;letter-spacing:.01em;background:#6b72801f;margin-left:5px;padding:1px 5px;font-size:12px;font-weight:500;display:inline-block}.selection-count{color:var(--text-muted);white-space:nowrap;opacity:.7;font-size:.75rem}.btn-delete-bulk{border-radius:var(--radius-sm);background:var(--red-dim);color:var(--red);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:5px 12px;font-size:.78rem;font-weight:600;transition:border-color .15s}.btn-delete-bulk:hover{border-color:var(--red)}.btn-delete-bulk--active{border-color:var(--red);background:color-mix(in srgb, var(--red) 22%, transparent)}.btn-delete-bulk:disabled{opacity:.5;cursor:not-allowed}.modal--wide{max-width:820px}.bulk-dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:6px;margin-bottom:16px;padding:36px 20px;transition:border-color .15s,background .15s;display:flex}.bulk-dropzone:hover,.bulk-dropzone--active{border-color:var(--blue);background:var(--blue-dim)}.bulk-dropzone-icon{color:var(--text-muted);font-size:1.6rem;line-height:1}.bulk-dropzone--active .bulk-dropzone-icon{color:var(--blue)}.bulk-dropzone-text{color:var(--text);font-size:.88rem;font-weight:500}.bulk-dropzone-hint{color:var(--text-muted);font-size:.75rem}.bulk-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:4px;overflow-x:auto}.bulk-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.82rem}.bulk-table th{text-align:left;color:var(--text-muted);letter-spacing:.03em;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 6px;font-size:.75rem;font-weight:600}.bulk-table th.num,.bulk-table td.num{text-align:right}.bulk-row td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px;overflow:hidden}.bulk-row td:last-child{text-align:center;padding:6px 4px}.bulk-row td:last-child .btn-icon{padding:4px 6px}.bulk-row:last-child td{border-bottom:none}.bulk-row--processing{opacity:.65}.bulk-row--error td:not(:first-child):not(:last-child){opacity:.4}.bulk-filename{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.78rem;overflow:hidden}.bulk-input{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);width:100%;min-width:60px;transition:border-color var(--duration-base) var(--ease);outline:none;padding:5px 7px;font-size:.8rem}.bulk-input:focus{border-color:var(--border-strong)}.bulk-input:disabled{opacity:.35;cursor:not-allowed}select.bulk-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none' stroke='%23909090' stroke-width='1.4' stroke-linecap='round'%3E%3Cpolyline points='1,2.5 4,5.5 7,2.5'/%3E%3C/svg%3E");background-position:right 7px center;background-repeat:no-repeat;padding-right:22px;line-height:1.4}.bulk-input--rate{width:70px;padding:2px 4px;font-size:.75rem}.bulk-input--sm{padding:4px 3px;font-size:.75rem}.bulk-input[type=number]{font-variant-numeric:tabular-nums;-moz-appearance:textfield}.bulk-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bulk-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}select.bulk-input option{background:#1a1a1a}[data-theme=light] select.bulk-input option{color:var(--text);background:#fff}.bulk-total{font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap;font-size:.82rem}.bulk-error-msg{color:var(--red);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:.75rem;display:block;overflow:hidden}.bulk-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.75rem;font-weight:700;display:inline-flex}.bulk-badge--ok{background:var(--green-dim);color:var(--green)}.bulk-badge--err{background:var(--red-dim);color:var(--red)}.bulk-spinner{border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite bulk-spin;display:inline-block}@keyframes bulk-spin{to{transform:rotate(360deg)}}.monthly-chart-card{border:none;border-top:1px solid var(--border);background:0 0;border-radius:0;margin-bottom:24px;padding:28px 0 16px}@media (width<=680px){.monthly-chart-card{display:none}}.monthly-chart-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.monthly-chart-title-row{align-items:center;gap:10px;display:flex}.chart-avg-badge{color:var(--green);background:var(--green-dim);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;padding:2px 8px;font-size:.78rem;font-weight:600}.monthly-chart-header h2{color:var(--text);letter-spacing:-.02em;font-size:1rem;font-weight:600}.monthly-filters{gap:6px;display:flex}.monthly-filter-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:3px 10px;font-family:inherit;font-size:.75rem;font-weight:500;transition:border-color .15s,color .15s,background .15s}.monthly-filter-btn:hover{border-color:var(--border-strong);color:var(--text)}.monthly-filter-btn--income{background:var(--brand-dim);border-color:var(--brand);color:var(--brand-fg)}.monthly-filter-btn--expense{border-color:var(--red);color:var(--red);background:#f44f691a}.chart-svg-wrapper{position:relative}.line-chart-svg{width:100%;height:auto;display:block}@keyframes chart-pulse{0%,to{opacity:.7;transform:scale(1)}60%{opacity:0;transform:scale(2.8)}}.chart-pulse-ring{transform-box:fill-box;transform-origin:50%;animation:2s ease-out infinite chart-pulse}.chart-tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);pointer-events:none;z-index:20;white-space:nowrap;box-shadow:var(--shadow-md);min-width:130px;padding:8px 10px;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.chart-tooltip-month{color:var(--text);margin:0 0 6px;font-size:.75rem;font-weight:600}.chart-tooltip-row{justify-content:space-between;gap:16px;margin-bottom:3px;display:flex}.chart-tooltip-row:last-child{margin-bottom:0}.chart-tooltip-label{color:var(--text-muted);font-size:.75rem}.chart-tooltip-value{font-size:.75rem;font-weight:600}.chart-tooltip-value--net{color:var(--green)}.chart-tooltip-value--income{color:var(--brand-fg)}.chart-tooltip-value--expense{color:var(--red)}.month-detail{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.month-detail-cols{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=680px){.month-detail-cols{grid-template-columns:1fr}}.month-detail-heading{align-items:center;gap:7px;margin-bottom:10px;display:flex}.month-detail-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.month-detail-dot--income{background:var(--brand)}.month-detail-dot--expense{background:var(--red)}.month-detail-label{color:var(--text);flex:1;font-size:.82rem;font-weight:600}.month-detail-month{color:var(--brand-fg);opacity:.75;font-size:.75rem;font-weight:500}.month-detail-total{font-size:.82rem;font-weight:500}.month-detail-total--income{color:var(--brand-fg)}.month-detail-total--expense{color:var(--red)}.month-detail-empty{color:var(--text-muted);padding:6px 0;font-size:.78rem}.month-detail-table{border-collapse:collapse;width:100%;font-size:.8rem}.month-detail-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 6px;font-weight:500}.month-detail-table td{border-bottom:1px solid var(--border);color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:160px;padding:5px 6px;overflow:hidden}.month-detail-table tr:last-child td{border-bottom:none}.month-detail-table th.num,.month-detail-table td.num{text-align:right}.tag-chip{border-radius:var(--radius-pill);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;padding:2px 7px;font-size:.75rem;font-weight:500;line-height:1.4;display:inline-flex}.tag-chip--clickable{cursor:pointer;transition:opacity .15s}.tag-chip--clickable:hover{opacity:.75}.tag-chip--blue{background:color-mix(in srgb, var(--tag-blue) 16%, transparent);color:var(--tag-blue)}.tag-chip--purple{background:color-mix(in srgb, var(--tag-purple) 16%, transparent);color:var(--tag-purple)}.tag-chip--teal{background:color-mix(in srgb, var(--tag-teal) 16%, transparent);color:var(--tag-teal)}.tag-chip--amber{background:color-mix(in srgb, var(--tag-amber) 16%, transparent);color:var(--tag-amber)}.tag-chip--orange{background:color-mix(in srgb, var(--tag-orange) 16%, transparent);color:var(--tag-orange)}.tag-chip--green{background:color-mix(in srgb, var(--tag-green) 16%, transparent);color:var(--tag-green)}.tag-chip--cyan{background:color-mix(in srgb, var(--tag-cyan) 16%, transparent);color:var(--tag-cyan)}.tag-chip--pink{background:color-mix(in srgb, var(--tag-pink) 16%, transparent);color:var(--tag-pink)}.tag-chip--red{background:color-mix(in srgb, var(--tag-red) 16%, transparent);color:var(--tag-red)}.tag-chip--indigo{background:color-mix(in srgb, var(--tag-indigo) 16%, transparent);color:var(--tag-indigo)}.tag-chip--slate{background:color-mix(in srgb, var(--tag-slate) 16%, transparent);color:var(--tag-slate)}.tag-chip--violet{background:color-mix(in srgb, var(--tag-violet) 16%, transparent);color:var(--tag-violet)}.tag-chip--gray{background:color-mix(in srgb, var(--tag-gray) 16%, transparent);color:var(--tag-gray)}.tag-chip--yellow{background:color-mix(in srgb, var(--tag-yellow) 16%, transparent);color:var(--tag-yellow)}.tag-filter-active{cursor:pointer}.tag-filter-active:hover{opacity:.8}.row-tags{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}@media (width<=600px){.row-tags{display:none}}.bulk-tags{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.bulk-tags .tag-chip{cursor:pointer}.bulk-tags .tag-chip:hover{opacity:.7}.tag-picker{flex-direction:column;gap:8px;display:flex}.tag-picker-list{flex-wrap:wrap;gap:6px;display:flex}.tag-picker .tag-chip{cursor:pointer;opacity:.45;border:1px solid #0000;transition:opacity .14s,transform .1s}.tag-picker .tag-chip:hover{opacity:.75;transform:scale(1.04)}.tag-chip--sel{outline-offset:1px;outline:1.5px solid;opacity:1!important}.tag-picker-custom-list{flex-wrap:wrap;gap:6px;display:flex}.tag-chip-remove{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:.8rem;line-height:1}.tag-chip-remove:hover{opacity:1}.tag-picker-add-row{align-items:center;gap:6px;display:flex}.tag-picker-input{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;height:28px;color:var(--text);flex:1;padding:0 8px;font-size:.78rem}.tag-picker-input::placeholder{color:var(--text-subtle)}.tag-picker-btn{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;font-size:1rem;transition:background .2s;display:flex}.tag-picker-btn:hover{background:var(--brand-dim);color:var(--brand-fg)}.filter-dropdown{position:relative}.sort-dropdown{align-items:center;gap:6px;display:inline-flex}.filter-dropdown-trigger{white-space:nowrap;align-items:center;gap:5px;display:flex}.sort-dir-btn{padding:5px 7px}.filter-dropdown-chevron{opacity:.6;flex-shrink:0}.filter-dropdown-menu{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:170px;max-height:280px;box-shadow:var(--shadow-lg);flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.filter-dropdown-menu--right{left:auto;right:0}.filter-dropdown-item{text-align:left;width:100%;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease);background:0 0;border:none;align-items:center;gap:8px;padding:6px 8px;font-family:inherit;font-size:.8rem;display:flex}.filter-dropdown-item:hover{background:var(--surface-hover)}.filter-dropdown-item--active{background:var(--brand-dim);color:var(--brand-fg)}.filter-dropdown-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.filter-dropdown-item-count{color:var(--text-muted);flex-shrink:0;font-size:.72rem}.filter-dropdown-pill{color:var(--text-muted);margin-left:-2px;font-size:.72rem}.tag-analyze-error{color:var(--red);padding:4px 20px 0;font-size:.75rem}.cell-name{align-items:center;gap:6px;min-width:0;max-width:200px;font-size:.82rem;display:flex}.cell-name-inner{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;display:block;overflow:hidden}.cell-tag-dots{flex-shrink:0;align-items:center;gap:3px}@media (width>=601px){.cell-tag-dots{display:none}}.tag-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.tag-dot--blue{background:var(--tag-blue)}.tag-dot--purple{background:var(--tag-purple)}.tag-dot--teal{background:var(--tag-teal)}.tag-dot--amber{background:var(--tag-amber)}.tag-dot--orange{background:var(--tag-orange)}.tag-dot--green{background:var(--tag-green)}.tag-dot--cyan{background:var(--tag-cyan)}.tag-dot--pink{background:var(--tag-pink)}.tag-dot--red{background:var(--tag-red)}.tag-dot--indigo{background:var(--tag-indigo)}.tag-dot--slate{background:var(--tag-slate)}.tag-dot--violet{background:var(--tag-violet)}.tag-dot--gray{background:var(--tag-gray)}.tag-dot--yellow{background:var(--tag-yellow)}.cell-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:5px;margin-top:2px;font-size:.71rem;display:none}.cell-meta-sep{opacity:.4}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot--paid{background:var(--green)}.status-dot--pending{background:var(--yellow)}.detail-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.detail-sheet{background:var(--surface);width:100%;max-height:80vh;box-shadow:var(--shadow-lg);border-radius:14px 14px 0 0;padding:8px 20px 32px;overflow-y:auto}.detail-handle{background:var(--border-strong);box-sizing:content-box;background-clip:content-box;border-radius:2px;width:36px;height:4px;margin:0 auto 12px;padding:10px 20px}.detail-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.detail-title{color:var(--text);font-size:1rem;font-weight:600;line-height:1.3}.detail-subtitle{color:var(--text-muted);margin-top:2px;font-size:.78rem}.detail-close{background:var(--surface-hover);cursor:pointer;width:28px;height:28px;color:var(--text-muted);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;display:flex}.detail-close:hover{color:var(--text)}.detail-rows{border-top:1px solid var(--border);flex-direction:column;gap:0;margin-bottom:12px;display:flex}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;display:flex}.detail-row-label{color:var(--text-muted);flex-shrink:0;font-size:.78rem}.detail-row-value-wrap{text-align:right}.detail-row-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:.88rem}.detail-row-value--bold{color:var(--text);font-size:1rem;font-weight:700}.detail-row-sub{color:var(--text-muted);margin-top:1px;font-size:.75rem;display:block}.detail-status-row{margin-bottom:16px}.detail-tags{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.detail-actions{gap:10px;padding-top:8px;display:flex}.detail-actions>*{text-align:center;flex:1;justify-content:center}.btn-icon-mobile{display:none}.btn-text-desktop{display:inline}.btn-hamburger{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:7px 9px;display:none}@media (width<=600px){.btn-icon-mobile{display:block}.btn-text-desktop{display:none}.btn-hamburger{display:flex}.header-right{display:none!important}.header-year-desktop{display:none}}.mobile-menu-overlay{z-index:200;background:#00000080;position:fixed;inset:0}.mobile-menu-sheet{z-index:201;background:var(--surface);border-radius:14px 14px 0 0;flex-direction:column;gap:20px;padding:12px 20px 32px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-menu-handle{background:var(--border);box-sizing:content-box;background-clip:content-box;border-radius:2px;width:36px;height:4px;margin:0 auto;padding:10px 20px}.mobile-menu-section{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.mobile-menu-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:600}.mobile-menu-actions{flex-direction:column;gap:4px;display:flex}.mobile-menu-btn{color:var(--text);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:12px 8px;font-size:.9rem;font-weight:500;transition:background .2s;display:flex}.mobile-menu-btn:hover{background:var(--surface-hover)}.mobile-menu-btn--danger{color:var(--red)}.mobile-menu-actions .btn-ghost{border-radius:var(--radius-sm);justify-content:flex-start;gap:12px;width:100%;padding:12px 8px;font-size:.9rem;font-weight:500}.header-year-desktop{display:contents}.btn-ghost--active{background:var(--brand-dim);color:var(--brand-fg);border-color:var(--brand)}.rate-auto-btn{cursor:pointer;white-space:nowrap;appearance:none;min-width:52px;transition:none;box-shadow:none!important;outline:none!important}.btn-ghost.rate-auto-btn,.btn-ghost.rate-auto-btn:hover,.btn-ghost.rate-auto-btn:focus,.btn-ghost.rate-auto-btn:focus-visible{color:var(--text-muted);border-color:var(--border);box-shadow:none;background:0 0;outline:none}.btn-ghost.rate-auto-btn.btn-ghost--active,.btn-ghost.rate-auto-btn.btn-ghost--active:hover,.btn-ghost.rate-auto-btn.btn-ghost--active:focus,.btn-ghost.rate-auto-btn.btn-ghost--active:focus-visible{color:var(--brand-fg);border-color:var(--brand);background:var(--brand-dim);box-shadow:none;outline:none}.btn-ghost.rate-auto-btn:active{transform:scale(.93)}.month-detail-table td.muted{color:var(--text-muted)}.app-shell{min-height:100dvh;display:flex}.main-area{flex-direction:column;flex:1;min-width:0;margin-left:232px;transition:margin-left .22s;display:flex;overflow-x:hidden}.page-content{max-width:var(--content-max);flex:1;width:100%;margin:0 auto;padding:32px 36px 48px;overflow-x:hidden}.tauri-desktop .page-content{padding-top:48px}.sidebar{width:232px;transition:width var(--duration-slow) var(--ease);z-index:40;padding:var(--space-2) var(--space-2) 0;background:0 0;flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-logo{flex-shrink:0;align-items:center;gap:9px;min-height:52px;padding:6px 20px 0;display:flex}.tauri-desktop .sidebar-logo{min-height:64px;padding-top:28px}.sidebar-logo-text{color:var(--text);letter-spacing:-.03em;white-space:nowrap;font-size:2rem;font-weight:700}.sidebar-nav{padding:var(--space-3) var(--space-2);scrollbar-width:none;flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden auto}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;min-height:36px;font-family:inherit;font-size:.83rem;font-weight:500;display:flex}.sidebar-item:hover{background:var(--surface-hover);color:var(--text)}.sidebar-item.active{background:var(--surface-active);color:var(--text);font-weight:600}.sidebar-item-icon{opacity:.6;width:16px;height:16px;transition:color var(--duration-fast) var(--ease), opacity var(--duration-fast) var(--ease);flex-shrink:0}.sidebar-item.active .sidebar-item-icon{opacity:1;color:var(--brand-fg)}.sidebar-divider{background:var(--border);height:1px;margin:var(--space-2)}.sidebar-bottom{padding:var(--space-2) 0 var(--space-3);flex-direction:column;gap:2px;display:flex}.sidebar-user{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:background var(--duration-fast) var(--ease);background:0 0;border:none;align-items:center;gap:8px;font-family:inherit;display:flex}.sidebar-user:hover{background:var(--surface-hover)}.sidebar-user .avatar{border:1px solid var(--border-strong);width:24px;height:24px;font-size:.65rem}.sidebar-username{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.83rem;font-weight:500;overflow:hidden}@media (width<=1024px) and (width>=769px){.sidebar{width:56px}.main-area{margin-left:56px}.sidebar-item{justify-content:center;padding:8px}.sidebar-item-label,.sidebar-logo-text,.sidebar-username{display:none}.sidebar-logo,.sidebar-user{justify-content:center}}@media (width<=768px){.sidebar{display:none}.main-area{margin-left:0}.page-content{padding:16px 16px 32px}}.mobile-topbar{padding:0 var(--space-4);background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);height:56px;box-shadow:0 1px 0 color-mix(in srgb, var(--border) 70%, transparent);z-index:30;border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;display:none;position:fixed;top:0;left:0;right:0}@media (width<=768px){.mobile-topbar{display:flex}}.mobile-topbar-logo{color:var(--text);letter-spacing:-.04em;align-items:center;gap:8px;font-size:1.7rem;font-weight:700;display:flex}.burger-btn{width:36px;height:36px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;font-family:inherit;display:flex}.burger-btn:hover{background:var(--surface-hover);color:var(--text)}.page-header{align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.page-header-left{min-width:0;max-width:100%}.page-title{font-size:var(--text-xl);letter-spacing:-.02em;color:var(--text);font-weight:600;line-height:1.2}.page-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:3px}.page-header-toolbar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.kanban-board{gap:var(--gutter);grid-template-columns:repeat(4,minmax(210px,1fr));padding-bottom:8px;display:grid;overflow-x:auto}.kanban-col{flex-direction:column;gap:6px;min-width:0;display:flex}.kanban-col-header{cursor:default;align-items:center;gap:7px;padding:0 2px 4px;display:flex}.kanban-col-hint{color:var(--text-subtle);border-bottom:1px solid var(--border);padding:0 2px 10px;font-size:.68rem}.kanban-col-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.kanban-col-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.kanban-col-count{color:var(--text-subtle);margin-left:auto;font-size:.72rem}.kanban-cards{border-radius:var(--radius);flex-direction:column;flex:1;gap:6px;min-height:40px;transition:background .15s;display:flex;position:relative}.kanban-drop-line{border-radius:var(--radius-pill);background:var(--brand);height:2px;box-shadow:0 0 0 3px var(--brand-dim);pointer-events:none;margin-top:-1px;animation:.1s ease-out kanban-drop-line-in;position:absolute;left:2px;right:2px}@keyframes kanban-drop-line-in{0%{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;padding:9px 14px;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s,opacity .12s}.kanban-card:hover{border-color:var(--border-strong);background:var(--surface-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.kanban-card--dragging{opacity:.4}.kanban-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.kanban-card-name{min-width:0;color:var(--text);letter-spacing:-.01em;flex:1 1 0;align-items:center;gap:6px;font-size:.84rem;font-weight:600;line-height:1.3;display:flex}.kanban-card-name-text{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;overflow:hidden}.kanban-card-emoji{flex-shrink:0;font-size:.95rem;line-height:1}.kanban-card-client{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.74rem;overflow:hidden}.kanban-card-budget-wrap{flex-shrink:0;align-items:center;gap:5px;display:flex}.kanban-card-budget{color:var(--text);font-variant-numeric:tabular-nums;opacity:.55;font-size:.78rem;font-weight:600}.kanban-card-invoice-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.kanban-card-invoice-dot.paid{background:var(--green)}.kanban-card-invoice-dot.pending{background:var(--yellow)}.kanban-card-tasklist{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:6px;padding-top:6px;display:flex}.kanban-card-task{cursor:pointer;align-items:center;gap:6px;line-height:1;display:flex}.kanban-card-task .task-checkbox{width:13px;height:13px}.kanban-card-task-text{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;font-size:.74rem;line-height:1;overflow:hidden}.kanban-card-task-text.done{color:var(--text-subtle);text-decoration:line-through}.kanban-add-btn{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:8px 4px;font-family:inherit;font-size:.78rem;transition:color .12s,background .12s;display:flex}.kanban-add-btn:hover{color:var(--brand-fg);background:var(--brand-dim)}@media (width<=768px){.kanban-board{grid-template-columns:repeat(4,calc(100vw - 96px));padding-inline:34px}}.undo-toast-stack{z-index:200;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.undo-toast{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);color:var(--text);align-items:center;gap:14px;padding:10px 10px 10px 16px;font-size:.82rem;display:flex}.fin-grid{gap:var(--gutter);grid-template-columns:repeat(3,1fr);margin-bottom:24px;display:grid}.fin-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad);flex-direction:column;gap:5px;transition:background .15s;display:flex}.fin-card:hover{background:var(--surface-hover)}.fin-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:600}.fin-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);font-size:1.6rem;font-weight:600}.fin-card.green .fin-value{color:var(--green)}.fin-card.yellow .fin-value{color:var(--yellow)}.fin-card.blue .fin-value{color:var(--blue)}.fin-card.red .fin-value{color:var(--red)}.fin-sub{color:var(--text-subtle);font-size:.72rem}@media (width<=640px){.fin-grid{grid-template-columns:1fr}}.fin-grid-4{grid-template-columns:repeat(4,1fr);margin-bottom:0}@media (width<=640px){.fin-grid-4{grid-template-columns:1fr 1fr}}.notion-empty-hint{color:var(--text-subtle);padding:4px 0;font-size:.82rem}.linked-list{flex-direction:column;gap:1px;display:flex}.linked-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:7px 0;font-size:.82rem;display:flex}.linked-row:last-child{border-bottom:none}.linked-row-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.linked-row-amount{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.insights-panel{flex-direction:column;gap:8px;display:flex}.insight-chip{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text-muted);align-items:center;gap:8px;font-size:.84rem;display:flex}.insight-chip strong{color:var(--text);font-weight:700}.insight-chip--yellow{border-color:color-mix(in srgb, var(--yellow) 35%, var(--border))}.insight-chip--green{border-color:color-mix(in srgb, var(--green) 35%, var(--border))}.insight-chip--red{border-color:color-mix(in srgb, var(--red) 35%, var(--border))}.stat-pills{flex-wrap:wrap;gap:8px;margin:12px 0 22px;display:flex}.stat-pill{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:100px;padding:10px 16px;display:flex}.stat-pill-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.67rem;font-weight:600}.stat-pill-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text);font-size:1.05rem;font-weight:600}.stat-pill.positive .stat-pill-value{color:var(--green)}.stat-pill.negative .stat-pill-value{color:var(--red)}.tab-nav{border-bottom:1px solid var(--border);scrollbar-width:none;margin-bottom:20px;display:flex;overflow-x:auto}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:8px 16px;font-family:inherit;font-size:.82rem;font-weight:500;transition:color .12s,border-color .12s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--brand-fg);border-bottom-color:var(--brand)}.task-list{flex-direction:column;display:flex}.task-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:9px 0;display:flex}.task-row:last-of-type{border-bottom:none}.task-row--dragging{opacity:.4}.task-drag-handle{width:12px;color:var(--text-subtle);cursor:grab;opacity:0;transition:opacity var(--duration-fast) var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:flex}.task-drag-handle:active{cursor:grabbing}.task-row:hover .task-drag-handle{opacity:1}.task-checkbox{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;width:16px;height:16px;transition:border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.task-checkbox.done{background:var(--brand);border-color:var(--brand);color:var(--brand-text)}.task-title-text{color:var(--text);cursor:text;flex:1;min-width:0;font-size:.84rem}.task-title-text.done{color:var(--text-subtle);text-decoration:line-through}.task-title-input{min-width:0;color:var(--text);background:var(--bg);border:1px solid var(--brand);border-radius:var(--radius-sm);outline:none;flex:1;padding:2px 6px;font-family:inherit;font-size:.84rem}.task-drop-line{border-radius:var(--radius-pill);background:var(--brand);height:2px;box-shadow:0 0 0 3px var(--brand-dim);pointer-events:none;margin-top:-1px;position:absolute;left:0;right:0}.task-due{color:var(--text-subtle);white-space:nowrap;flex-shrink:0;font-size:.71rem}.task-due.overdue{color:var(--red)}.priority-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.priority-dot.high{background:var(--red)}.priority-dot.medium{background:var(--yellow)}.priority-dot.low{background:var(--text-subtle)}.task-add-row{align-items:center;gap:10px;margin-top:4px;padding:8px 0;display:flex}.task-add-input{border:none;border-bottom:1px dashed var(--border-strong);color:var(--text);background:0 0;outline:none;flex:1;padding:4px 0;font-family:inherit;font-size:.84rem}.task-add-input::placeholder{color:var(--text-subtle)}.task-add-input:focus{border-bottom-color:var(--brand)}.vat-year-row{flex-wrap:wrap;gap:4px;margin-bottom:24px;display:flex}.vat-year-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:5px 13px;font-family:inherit;font-size:.8rem;font-weight:600;transition:color .12s,border-color .12s,background .12s}.vat-year-btn.active{color:var(--text);border-color:var(--border-strong);background:var(--surface)}.vat-quarters-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=1100px){.vat-quarters-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=680px){.vat-quarters-grid{grid-template-columns:1fr}}.vat-qcard{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px}.vat-qcard-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.vat-qcard-title{color:var(--text);font-size:.84rem;font-weight:700}.vat-row{justify-content:space-between;align-items:center;padding:7px 0;font-size:.8rem;display:flex}.vat-row+.vat-row{border-top:1px solid var(--border)}.vat-row-label{color:var(--text-muted)}.vat-row-value{font-variant-numeric:tabular-nums;font-weight:500}.vat-net{border-top:2px solid var(--border-strong);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.vat-net-label{color:var(--text);font-size:.8rem;font-weight:700}.vat-net-amount{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.vat-net-amount.pay{color:var(--yellow)}.vat-net-amount.credit{color:var(--green)}.vat-net-amount.zero{color:var(--text-muted)}.back-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin-bottom:10px;padding:4px 0;font-family:inherit;font-size:.8rem;transition:color .12s;display:inline-flex}.back-btn:hover{color:var(--text)}.notes-area{background:var(--surface-hover);border:1px solid var(--border);width:100%;min-height:180px;color:var(--text);resize:vertical;border-radius:6px;outline:none;padding:12px 14px;font-family:inherit;font-size:.84rem;line-height:1.6;transition:border-color .12s}.notes-area:focus{border-color:var(--brand)}.notes-area::placeholder{color:var(--text-subtle)}.badge-active{background:var(--green-dim);color:var(--green)}.badge-paused{background:var(--yellow-dim);color:var(--yellow)}.badge-completed{background:var(--blue-dim);color:var(--blue)}.badge-archived{background:var(--surface-hover);color:var(--text-muted)}.badge-high{background:var(--red-dim);color:var(--red)}.badge-medium{background:var(--yellow-dim);color:var(--yellow)}.badge-low{background:var(--surface-hover);color:var(--text-muted)}.two-col{gap:var(--gutter);grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.two-col{grid-template-columns:1fr}}.saved-tag{color:var(--green);align-items:center;gap:4px;font-size:.72rem;display:inline-flex}.notion-doc{max-width:780px;padding-bottom:60px}.notion-topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.identity-wrap{margin-bottom:10px;position:relative}.notion-emoji-btn{border-radius:var(--radius);background:var(--surface-hover);cursor:pointer;width:44px;height:44px;transition:background var(--duration-fast) var(--ease);border:none;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:flex}.notion-emoji-btn:hover{background:var(--surface-hover);filter:brightness(1.15)}.identity-popover{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:240px;padding:12px;position:absolute;top:50px;left:0}.identity-popover:has(.epr-main){width:320px}.identity-popover .epr-main{--epr-bg-color:var(--surface);--epr-dark-bg-color:var(--surface);--epr-text-color:var(--text);--epr-dark-text-color:var(--text);--epr-picker-border-color:transparent;--epr-dark-picker-border-color:transparent;--epr-hover-bg-color:var(--surface-hover);--epr-dark-hover-bg-color:var(--surface-hover);--epr-focus-bg-color:var(--surface-hover);--epr-dark-focus-bg-color:var(--surface-hover);--epr-highlight-color:var(--brand);--epr-dark-highlight-color:var(--brand);--epr-search-border-color:var(--brand);--epr-dark-search-border-color:var(--brand);--epr-search-input-bg-color:var(--bg);--epr-dark-search-input-bg-color:var(--bg);--epr-search-input-bg-color-active:var(--bg);--epr-dark-search-input-bg-color-active:var(--bg);--epr-search-input-text-color:var(--text);--epr-dark-search-input-text-color:var(--text);--epr-search-input-placeholder-color:var(--text-subtle);--epr-dark-search-input-placeholder-color:var(--text-subtle);--epr-category-label-bg-color:var(--surface);--epr-dark-category-label-bg-color:var(--surface);--epr-category-label-text-color:var(--text-muted);--epr-dark-category-label-text-color:var(--text-muted);--epr-category-icon-active-color:var(--brand);--epr-dark-category-icon-active-color:var(--brand);--epr-picker-border-radius:8px;--epr-search-input-border-radius:6px;--epr-search-input-height:32px;--epr-header-padding:0 0 8px;--epr-horizontal-padding:0;--epr-search-bar-inner-padding:10px;--epr-category-padding:0;--epr-emoji-size:19px;--epr-emoji-padding:4px;--epr-category-navigation-button-size:24px;--epr-preview-height:0px;--epr-preview-text-padding:0px;--epr-preview-border-color:transparent;box-shadow:none;border:none;font-family:inherit}.identity-popover .epr-main .epr-search-container input{font-size:.78rem}.identity-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:.68rem;font-weight:700}.identity-section-label:not(:first-child){margin-top:12px}.identity-emoji-input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;outline:none;margin-top:8px;padding:5px 8px;font-family:inherit;font-size:.78rem}.color-grid{grid-template-columns:repeat(8,1fr);gap:6px;display:grid}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.color-option.selected{border-color:var(--text)}.invoice-link-chip{align-items:center;gap:4px;display:flex}.invoice-link-chip .notion-inline-value{background:0 0;padding:2px 0}.invoice-link-chip .notion-inline-value:hover{color:var(--brand-fg);background:0 0}.invoice-unlink-btn{width:20px;height:20px;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.invoice-unlink-btn:hover{background:var(--surface-hover);color:var(--red)}.time-margin-pill{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:.7rem;font-weight:600}.time-margin-pill.ok{color:var(--green);background:color-mix(in srgb, var(--green) 12%, transparent)}.time-margin-pill.bad{color:var(--red);background:color-mix(in srgb, var(--red) 12%, transparent)}.time-stats{flex-wrap:wrap;gap:20px;margin:10px 0 14px;display:flex}.time-stat{flex-direction:column;gap:2px;display:flex}.time-stat-label{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;font-size:.66rem}.time-stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:600}.time-stat-value.ok{color:var(--green)}.time-stat-value.bad{color:var(--red)}.time-progress{margin:4px 0 14px}.time-progress-head{justify-content:space-between;align-items:baseline;margin-bottom:5px;font-size:.76rem;display:flex}.time-progress-label{color:var(--text-muted);font-variant-numeric:tabular-nums}.time-progress-status{font-weight:600}.time-progress-status.ok{color:var(--green)}.time-progress-status.warn{color:var(--yellow)}.time-progress-status.over{color:var(--red)}.time-progress-track{background:var(--bg);border-radius:5px;height:8px;overflow:hidden}.time-progress-fill{border-radius:5px;height:100%}.time-progress-fill.ok{background:var(--green)}.time-progress-fill.warn{background:var(--yellow)}.time-progress-fill.over{background:var(--red)}.time-add-row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 10px;display:flex}.time-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 8px;font-family:inherit;font-size:.8rem}.time-input:focus{border-color:var(--text-subtle);outline:none}.time-input--hours{text-align:center;width:56px}.time-input--note{flex:1;min-width:120px}.time-quick{gap:5px;display:flex}.time-quick-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:3px 9px;font-family:inherit;font-size:.72rem;transition:color .12s,border-color .12s}.time-quick-btn:hover{color:var(--text);border-color:var(--text-subtle)}.time-entry-list{flex-direction:column;display:flex}.time-entry-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;font-size:.8rem;display:flex}.time-entry-row:last-child{border-bottom:none}.time-entry-date{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;width:80px;font-size:.76rem}.time-entry-hours{font-variant-numeric:tabular-nums;flex-shrink:0;width:56px;font-weight:600}.time-entry-hours--editable{cursor:pointer;border-radius:4px;margin-left:-4px;padding:1px 4px;transition:background .12s}.time-entry-hours--editable:hover{background:var(--surface-hover)}.time-entry-hours-input{flex-shrink:0;width:56px;min-width:0;font-size:.8rem;font-weight:600}.time-entry-note{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.78rem;overflow:hidden}.invoice-picker-popover{width:320px}.invoice-picker-filters{gap:6px;display:flex}.invoice-picker-filters .notion-prop-select{border:1px solid var(--border);background:var(--surface-hover);flex:1}.invoice-picker-list{flex-direction:column;gap:1px;max-height:220px;margin-top:8px;display:flex;overflow-y:auto}.invoice-picker-row{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:7px 8px;font-family:inherit;transition:background .1s;display:flex}.invoice-picker-row:hover{background:var(--surface-hover)}.invoice-picker-number{color:var(--text);flex-shrink:0;font-size:.78rem;font-weight:600}.invoice-picker-client{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.78rem;overflow:hidden}.invoice-picker-amount{color:var(--text-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.78rem}.invoice-picker-empty{color:var(--text-subtle);text-align:center;padding:10px 4px;font-size:.8rem}.notion-title{color:var(--text);letter-spacing:-.03em;cursor:text;word-break:break-word;outline:none;min-height:1.2em;margin-bottom:24px;font-size:2rem;font-weight:700;line-height:1.15}.notion-title:empty:before{content:"Untitled";color:var(--text-subtle)}.notion-title:focus{outline:none}.notion-title::selection{background:var(--surface-hover);color:var(--text-subtle)}.notion-inline-input::selection{background:var(--surface-hover);color:var(--text-subtle)}.notion-props{flex-direction:column;gap:0;max-width:640px;margin-bottom:8px;display:flex}.notion-prop-row{align-items:center;gap:16px;padding:5px 0;display:flex}.notion-prop-label{color:var(--text-muted);flex-shrink:0;align-items:center;gap:6px;width:110px;font-size:.78rem;font-weight:500;display:flex}.notion-prop-label svg{flex-shrink:0}.notion-inline-value{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;min-width:60px;padding:2px 4px;font-family:inherit;font-size:.84rem;transition:background .12s}.notion-inline-value:hover{background:var(--surface-hover)}.notion-inline-value.empty{color:var(--text-subtle)}.notion-inline-input{color:var(--text);background:var(--surface-hover);border:1px solid var(--brand);border-radius:4px;outline:none;min-width:60px;padding:2px 6px;font-family:inherit;font-size:.84rem}.notion-prop-select{color:var(--text);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease);appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none' stroke='%23909090' stroke-width='1.4' stroke-linecap='round'%3E%3Cpolyline points='1,2.5 4,5.5 7,2.5'/%3E%3C/svg%3E") right 6px center no-repeat;border:none;outline:none;padding:3px 20px 3px 6px;font-family:inherit;font-size:.84rem}.notion-prop-select:hover{background-color:var(--surface-hover)}.notion-divider{background:var(--border);height:1px;margin:24px 0}.notion-section{margin-bottom:8px}.notion-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.72rem;font-weight:700}.notion-section-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.notion-section-header .notion-section-label{margin-bottom:0}.link-invoice-wrap{position:relative}.notion-task-row{padding:7px 0}.notion-task-row .notion-task-delete{opacity:0;width:24px;height:24px;padding:0;transition:opacity .12s}.notion-task-row:hover .notion-task-delete{opacity:1}.notion-notes{width:100%;min-height:160px;color:var(--text);resize:none;white-space:pre-wrap;word-break:break-word;tab-size:4;background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:.88rem;line-height:1.7;overflow:hidden}.notion-notes::placeholder{color:var(--text-subtle)}.notion-notes:focus{outline:none}.context-menu{z-index:1000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow-lg);padding:4px;position:fixed}.context-menu-item{text-align:left;width:100%;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease);background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;font-family:inherit;font-size:.82rem;display:flex}.context-menu-item:hover:not(:disabled){background:var(--surface-hover)}.context-menu-item:disabled{color:var(--text-subtle);cursor:default}.context-menu-item.danger{color:var(--red)}.context-menu-item.danger:hover:not(:disabled){background:var(--red-dim)}.context-menu-divider{background:var(--border);height:1px;margin:4px 2px}.overview-two-col{gap:var(--gutter);margin-top:var(--gutter);margin-bottom:var(--gutter);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (width<=900px){.overview-two-col{grid-template-columns:1fr}}.overview-panel{background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad)}.overview-panel-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.overview-panel-title{color:var(--text);font-size:.84rem;font-weight:600}.overview-panel-link{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.75rem;transition:color .12s}.overview-panel-link:hover{color:var(--brand-fg)}.overview-panel-empty{color:var(--text-subtle);padding:12px 0;font-size:.82rem}.overview-invoice-end{flex-shrink:0;align-items:center;gap:8px;display:flex}.overview-invoice-foot{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;gap:12px;padding:10px 0 0;font-size:.78rem;display:flex}.overview-invoice-foot-value{color:var(--yellow);font-variant-numeric:tabular-nums;font-weight:600}.quarter-dash{gap:var(--gutter);margin-bottom:var(--gutter);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;display:grid}@media (width<=900px){.quarter-dash{grid-template-columns:1fr}}.quarter-summary{background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad);flex-direction:column;display:flex}.quarter-summary-head{align-items:baseline;gap:9px;margin-bottom:18px;display:flex}.quarter-summary-q{letter-spacing:-.01em;color:var(--text);font-size:1.05rem;font-weight:700}.quarter-summary-range{color:var(--text-subtle);font-size:.78rem}.quarter-summary-hero{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding-bottom:18px;display:flex}.quarter-summary-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);font-size:2.4rem;font-weight:600;line-height:1.05}.quarter-summary.green .quarter-summary-value{color:var(--green)}.quarter-summary.red .quarter-summary-value{color:var(--red)}.quarter-summary-list{flex-direction:column;margin-top:4px;display:flex}.qsum-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.qsum-row:last-child{border-bottom:none}.qsum-label{color:var(--text-muted);font-size:.85rem}.qsum-value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.05rem;font-weight:600}.qsum-value--income{color:var(--green)}.qsum-value--expense{color:var(--red)}.qsum-value--vat{color:var(--yellow)}.analytics-total{color:var(--text);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:600}.analytics-pill{color:var(--text-subtle);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:500}.analytics-pill--warn{color:var(--tag-orange);border-color:color-mix(in srgb, var(--tag-orange) 35%, transparent)}.analytics-empty{color:var(--text-subtle);padding:12px 0;font-size:.82rem}.cat-bar-list{flex-direction:column;gap:12px;display:flex}.cat-bar-row{flex-direction:column;gap:5px;display:flex}.cat-bar-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cat-bar-label{color:var(--text);align-items:center;gap:7px;min-width:0;font-size:.8rem;display:flex}.cat-bar-label--client{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cat-bar-dot{border-radius:3px;flex-shrink:0;width:8px;height:8px}.cat-bar-amount{color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.8rem;font-weight:600}.cat-bar-track{background:var(--bg);border-radius:5px;align-items:center;height:8px;display:flex;position:relative;overflow:hidden}.cat-bar-fill{border-radius:5px;min-width:2px;height:100%}.cat-bar-fill--client{background:var(--brand)}.cat-bar-pct{color:var(--text-subtle);font-size:.62rem;font-weight:600;line-height:1;position:absolute;right:6px}.cat-bar-others{color:var(--text-subtle);border-top:1px solid var(--border);justify-content:space-between;padding-top:4px;font-size:.76rem;display:flex}.analytics-grid{gap:var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px;display:grid}@media (width<=700px){.analytics-grid{grid-template-columns:1fr}}.clients-grid{gap:var(--gutter);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=1080px){.clients-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.clients-grid{grid-template-columns:1fr}}.client-card{text-align:left;background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad);cursor:pointer;border:none;outline:none;flex-direction:column;gap:12px;font-family:inherit;transition:background .14s,transform .14s;display:flex;position:relative}.client-card:hover{background:var(--surface-hover);transform:translateY(-2px)}.client-card[draggable=true]{cursor:grab}.client-card[draggable=true]:active{cursor:grabbing}.client-card--dragging{opacity:.45}.client-card--drop-before:before,.client-card--drop-after:after{content:"";border-radius:var(--radius-pill);background:var(--brand-fg);width:3px;position:absolute;top:6px;bottom:6px}.client-card--drop-before:before{left:calc(var(--gutter) / -2 - 1.5px)}.client-card--drop-after:after{right:calc(var(--gutter) / -2 - 1.5px)}.client-card-top{align-items:center;gap:11px;min-width:0;display:flex}.client-avatar{letter-spacing:.5px;width:38px;height:38px;color:var(--brand-fg);background:color-mix(in srgb, var(--brand) 16%, transparent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:.82rem;font-weight:700;display:flex}.client-card-id{flex-direction:column;min-width:0;display:flex}.client-card-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.client-card-email{color:var(--text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.client-card-stats{border-top:1px solid var(--border);gap:18px;padding-top:12px;display:flex}.client-stat{flex-direction:column;gap:2px;display:flex}.client-stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.client-stat-value--pending{color:var(--yellow)}.client-stat-label{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.4px;font-size:.68rem}.client-card-meta{color:var(--text-subtle);gap:5px;font-size:.74rem;display:flex}.client-empty{color:var(--text-subtle);padding:24px 0;font-size:.84rem}.linked-row--button{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:inherit}.linked-row--button:hover{background:var(--bg)}.status-dot-label{font-size:.7rem;line-height:1}.overview-invoice-list{flex-direction:column;display:flex}.overview-invoice-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 0;display:flex}.overview-invoice-row:last-of-type{border-bottom:none}.overview-invoice-client{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.82rem;overflow:hidden}.overview-invoice-amount{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem;font-weight:600}.overview-invoice-project{color:var(--text-subtle);font-weight:400}.overview-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);margin-bottom:var(--space-4);flex-direction:column;gap:6px;display:flex}.overview-hero-value{font-size:var(--text-hero);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);font-weight:600;line-height:1}.overview-hero.green .overview-hero-value{color:var(--green)}.overview-hero.red .overview-hero-value{color:var(--red)}.kpi-grid{gap:var(--gutter);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.kpi-grid--secondary{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=480px){.kpi-grid--secondary{grid-template-columns:1fr}}.kpi-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--card-pad);flex-direction:column;gap:6px;min-width:0;display:flex}.kpi-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.kpi-value{font-size:var(--text-2xl);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.kpi-card.green .kpi-value{color:var(--green)}.kpi-card.red .kpi-value{color:var(--red)}.kpi-card.yellow .kpi-value{color:var(--yellow)}.kpi-card.blue .kpi-value{color:var(--blue)}.kpi-sub{color:var(--text-subtle);font-size:.72rem}@media (width<=900px){.kpi-grid:not(.kpi-grid--secondary){grid-template-columns:repeat(2,1fr)}.kpi-grid:not(.kpi-grid--secondary) .kpi-card:nth-child(2){border-right:none}.kpi-grid:not(.kpi-grid--secondary) .kpi-card:first-child,.kpi-grid:not(.kpi-grid--secondary) .kpi-card:nth-child(2){border-bottom:1px solid var(--border)}.overview-hero-value{font-size:2.2rem}}@media (width<=480px){.kpi-grid:not(.kpi-grid--secondary){grid-template-columns:1fr 1fr}}.settings-shell{grid-template-columns:200px 1fr;align-items:start;gap:32px;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex;position:sticky;top:24px}.settings-nav-item{text-align:left;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:.84rem;font-weight:500;transition:background .12s,color .12s}.settings-nav-item:hover{background:var(--surface-hover);color:var(--text)}.settings-nav-item.active{background:var(--surface-hover);color:var(--text);font-weight:600}.settings-panel{min-width:0;max-width:640px}@media (width<=860px){.settings-shell{grid-template-columns:1fr;gap:16px}.settings-nav{scrollbar-width:none;flex-direction:row;gap:4px;padding-bottom:4px;position:static;overflow-x:auto}.settings-nav::-webkit-scrollbar{display:none}.settings-nav-item{white-space:nowrap;flex-shrink:0}.settings-panel{max-width:100%}}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5);margin-bottom:var(--space-3)}.settings-section-title{color:var(--text);margin-bottom:var(--space-4);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.settings-row{padding:var(--space-2) 0;justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-label{color:var(--text);flex:1;font-size:.84rem}.settings-hint{color:var(--text-muted);margin-top:2px;font-size:.74rem}.accent-color-picker{align-items:center;gap:8px;display:flex;position:relative}.accent-swatch{border:2px solid var(--surface);cursor:pointer;outline-offset:2px;border-radius:50%;outline:2px solid #0000;width:22px;height:22px;padding:0;transition:transform .12s,outline-color .12s;position:relative}.accent-swatch:hover{transform:scale(1.1)}.accent-swatch--active{outline-color:var(--border-strong)}.accent-swatch--custom{background:var(--surface-hover);border:2px dashed var(--border-strong);color:var(--text-muted);justify-content:center;align-items:center;display:flex;overflow:hidden}.accent-swatch--custom:hover{color:var(--text)}.accent-swatch--custom.accent-swatch--active{border-style:solid}.accent-swatch--custom svg{pointer-events:none;flex-shrink:0}.accent-picker-popover{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:200px;box-shadow:var(--shadow-lg);flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.accent-sv-square{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background-image:linear-gradient(#0000 0%,#000 100%),linear-gradient(90deg,#fff 0%,#fff0 100%);background-clip:padding-box;width:100%;height:130px;position:relative}.accent-sv-cursor{width:14px;height:14px;box-shadow:0 0 0 1px #0006, var(--shadow-sm);pointer-events:none;border:2px solid #fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.accent-hue-slider{appearance:none;border-radius:var(--radius-pill);cursor:pointer;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);outline:none;width:100%;height:10px;margin:0}.accent-hue-slider::-webkit-slider-runnable-track{border-radius:var(--radius-pill);background:0 0;height:10px}.accent-hue-slider::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--surface);width:16px;height:16px;box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;background:#fff;border-radius:50%;margin-top:-3px}.accent-hue-slider::-moz-range-track{border-radius:var(--radius-pill);background:0 0;height:10px}.accent-hue-slider::-moz-range-thumb{border:2px solid var(--surface);width:14px;height:14px;box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;background:#fff;border-radius:50%}.accent-rgb-row{gap:6px;display:flex}.accent-rgb-field{flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.accent-rgb-field input{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;width:100%;color:var(--text);padding:4px 2px;font-family:inherit;font-size:.78rem}.accent-rgb-field input:focus{border-color:var(--brand);outline:none}.accent-rgb-field span{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:.62rem}.year-chip-list{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.year-chip{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px var(--space-3);color:var(--text);align-items:center;gap:4px;font-size:.82rem;display:flex}.year-chip-remove{cursor:pointer;color:var(--text-subtle);transition:color var(--duration-fast) var(--ease);background:0 0;border:none;padding:0 0 0 4px;font-size:.9rem;line-height:1}.year-chip-remove:hover{color:var(--red)}.year-chip-add{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-subtle);cursor:pointer;transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;justify-content:center;align-items:center;font-size:.95rem;line-height:1;display:flex}.year-chip-add:hover{color:var(--brand-fg);border-color:var(--brand);background:var(--brand-dim)}.settings-legal-link{font-size:.82rem}.settings-input{background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--text);transition:border-color var(--duration-base) var(--ease);outline:none;width:200px;font-family:inherit;font-size:.82rem}.settings-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim)}.settings-input-at{display:inline-block;position:relative}.settings-input-at .settings-at{left:var(--space-3);color:var(--text-muted);pointer-events:none;font-size:.82rem;position:absolute;top:50%;transform:translateY(-50%)}.settings-input--at{padding-left:calc(var(--space-3) + 13px)}select.settings-input{appearance:none;padding-right:calc(var(--space-3) + 16px);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none' stroke='%23909090' stroke-width='1.4' stroke-linecap='round'%3E%3Cpolyline points='1,2.5 4,5.5 7,2.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;line-height:1.4}@media (width<=480px){.settings-row{flex-wrap:wrap}.settings-input{width:100%}.settings-input-at{width:100%;display:block}}.app-footer--shell{margin:0 36px;padding-top:22px}@media (width<=768px){.page-content{padding:72px 14px 40px!important}.app-footer--shell{margin:0 14px}.notion-doc{max-width:100%}.notion-title{font-size:1.6rem}.kanban-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;gap:10px}.kanban-col{scroll-snap-align:center;scroll-snap-stop:always}.kanban-card{padding:8px 12px}.stat-pills{gap:6px}.stat-pill{min-width:80px;padding:8px 12px}.notion-task-row .notion-task-delete{opacity:1}.page-header-toolbar{flex-wrap:wrap}}@media (width<=480px){.notion-title{font-size:1.4rem}.notion-props{max-width:100%}.notion-prop-label{width:90px;font-size:.74rem}.kpi-value{font-size:1.35rem}.kpi-card{padding:16px 14px}}.provision-grid{grid-template-columns:1fr 1fr;gap:28px;display:grid}.provision-total-label{color:var(--text);font-weight:600}.provision-total-value{color:var(--yellow);font-size:1.02rem;font-weight:700}.provision-hint{color:var(--text-subtle);margin:10px 0 0;font-size:.72rem;line-height:1.45}.provision-deadlines-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:600}.provision-deadline-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:7px 0;font-size:.8rem;display:flex}.provision-deadline-row:last-of-type{border-bottom:none}.provision-deadline-label{color:var(--text);flex:1}.provision-deadline-date{color:var(--text-muted);white-space:nowrap;font-size:.74rem}.provision-days-far{border:1px solid var(--border);color:var(--text-muted);background:0 0}@media (width<=720px){.provision-grid{grid-template-columns:1fr;gap:18px}}.vatbd-cols{flex-wrap:wrap;gap:8px 28px;display:flex}.vatbd-col{flex:1;min-width:230px}.vatbd-quarters{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px 28px;display:grid}.vatbd-quarter{flex-direction:column;gap:12px;display:flex}.vatbd-quarter .vatbd-col{min-width:0}.vatbd-quarter-title{color:var(--text);border-bottom:1px solid var(--border-strong);padding-bottom:6px;font-size:.8rem;font-weight:700}.vatbd-col-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:600}.vatbd-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;font-size:.8rem;display:flex}.vatbd-row:last-child{border-bottom:none}.vatbd-row--total{border-top:1px solid var(--border-strong);border-bottom:none;margin-top:2px}.vatbd-row--total .vatbd-base{color:var(--brand-fg,var(--text))}.vatbd-rate{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.vatbd-count{color:var(--text-subtle);margin-left:6px;font-size:.72rem;font-weight:400}.vatbd-base{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.currency-manager{max-width:340px}.currency-results{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:50;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 10px 30px #00000040}.currency-result{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;font-size:.8rem;display:flex}.currency-result:hover{background:color-mix(in srgb, var(--brand) 10%, transparent)}.currency-result-code{font-variant-numeric:tabular-nums;font-weight:700}.currency-result-name{color:var(--text-muted)}.res-quickadd{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--text-subtle);align-items:center;gap:10px;margin-bottom:14px;padding:9px 14px;transition:border-color .15s;display:flex}.res-quickadd:focus-within{border-color:var(--brand);border-style:solid}.res-quickadd input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.84rem}.res-quickadd input::placeholder{color:var(--text-subtle)}.res-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.res-toolbar-left,.res-toolbar-right{align-items:center;gap:8px;display:flex}.res-view-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;overflow:hidden}.res-view-btn{width:30px;height:28px;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.res-view-btn+.res-view-btn{border-left:1px solid var(--border)}.res-view-btn:hover{color:var(--text)}.res-view-btn--active{background:var(--surface-hover);color:var(--text)}.res-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.res-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;gap:7px;padding:13px 14px;transition:border-color .15s,transform .15s;display:flex}.res-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.res-thumb{aspect-ratio:2;background:var(--surface-hover);border-bottom:1px solid var(--border);border-radius:11px 11px 0 0;margin:-13px -14px 3px;position:relative;overflow:hidden}.res-thumb-fallback{opacity:.85;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.res-thumb-img{object-fit:cover;object-position:top;opacity:0;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.res-thumb-img--visible{opacity:1}.res-card-top{align-items:center;gap:8px;min-width:0;display:flex}.res-card-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.86rem;font-weight:600;overflow:hidden}.res-favicon{object-fit:contain;border-radius:4px;flex-shrink:0}.res-favicon--letter{background:var(--surface-hover);color:var(--text-muted);justify-content:center;align-items:center;font-size:.66rem;font-weight:700;display:inline-flex}.res-link-btn{opacity:0;flex-shrink:0;transition:opacity .12s}.res-card:hover .res-link-btn,tr:hover .res-link-btn{opacity:1}.res-link-btn:hover{color:var(--brand-fg,var(--text))}.res-star-btn{opacity:0;flex-shrink:0;transition:opacity .12s}.res-card:hover .res-star-btn,tr:hover .res-star-btn{opacity:1}.res-star-btn:hover{color:var(--yellow)}.res-star-btn--on{opacity:1;color:var(--yellow)}.res-row-actions{align-items:center;gap:2px;display:flex}.res-domain{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:.72rem}.res-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.76rem;line-height:1.45;display:-webkit-box;overflow:hidden}.res-card-tags{flex-wrap:wrap;gap:4px;margin-top:auto;display:flex}.res-table tbody tr{cursor:pointer;transition:background .1s}.res-table tbody tr:hover{background:var(--surface-hover)}.res-table td{padding:8px 12px}.res-row-name{align-items:center;gap:8px;display:flex}.res-row-name-text{text-overflow:ellipsis;max-width:260px;font-weight:600;overflow:hidden}.res-row-desc{color:var(--text-subtle);text-overflow:ellipsis;max-width:320px;margin-top:2px;font-size:.72rem;overflow:hidden}.res-row-domain{color:var(--text-muted);font-size:.78rem}.res-row-date{color:var(--text-subtle);font-size:.76rem}.res-row-tags{flex-wrap:wrap;gap:4px;max-width:260px;display:flex}.res-tag-dots{flex-shrink:0;align-items:center;gap:3px;display:none}.res-empty{text-align:center;color:var(--text-subtle);border:1px dashed var(--border);border-radius:12px;padding:48px 20px;font-size:.84rem}.res-url-row{align-items:center;gap:6px;display:flex}.res-url-row input{flex:1}@media (width<=640px){.res-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.res-card{padding:11px 12px}.res-thumb{margin:-11px -12px 3px}.res-toolbar-right{justify-content:space-between;width:100%}.res-toolbar-right .search-input{flex:1}.res-link-btn,.res-star-btn{opacity:1;width:28px;height:28px;padding:0}.res-link-btn{margin-right:-5px}.res-link-btn svg,.res-star-btn svg{width:16px;height:16px}.res-card-top .res-favicon,.res-table th:nth-child(2),.res-table td:nth-child(2),.res-table th:nth-child(3),.res-table td:nth-child(3),.res-table th:nth-child(4),.res-table td:nth-child(4){display:none}.res-tag-dots{display:inline-flex}.res-row-name-text{flex:1;min-width:0;max-width:none}.res-row-desc{max-width:none}.res-table td{padding:10px}}.overview-invoice-dot{display:none}@media (width<=640px){.overview-invoice-row .badge{display:none}.overview-invoice-dot{width:8px;height:8px;display:inline-block}.overview-invoice-end{gap:8px}.overview-hero-value{font-size:clamp(1.9rem,9vw,2.6rem)}.quarter-summary-value{font-size:clamp(1.7rem,8.5vw,2.4rem)}.gap-warning{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.provision-deadline-row{flex-wrap:wrap}.settings-row .settings-input,.settings-row textarea.settings-input{width:100%;max-width:340px}.currency-manager{width:100%;max-width:100%}}@media (width<=600px){.table-card.irpf-card,.table-card.iva-card{padding:18px 16px}}.mobile-tabbar{display:none}.mobile-topbar-profile{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.mobile-topbar-profile .avatar{border:1px solid var(--border-strong);width:37px;height:37px;font-size:.78rem}.mobile-topbar-more{cursor:pointer;width:37px;height:37px;color:var(--text);background:color-mix(in srgb, var(--surface-hover) 75%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}@media (width<=768px){.mobile-topbar{background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.3);backdrop-filter:blur(18px)saturate(1.3);box-shadow:none;justify-content:space-between}.mobile-tabbar{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;background:color-mix(in srgb, var(--surface) 58%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.5);backdrop-filter:blur(24px)saturate(1.5);box-shadow:0 12px 32px #00000059, inset 0 0 0 1px color-mix(in srgb, var(--border) 55%, transparent);border-radius:999px;padding:7px 8px;display:flex;position:fixed}.mobile-tab{cursor:pointer;min-width:0;color:var(--text-muted);-webkit-tap-highlight-color:transparent;transition:color var(--duration-fast) var(--ease);background:0 0;border:none;border-radius:999px;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:5px 2px;font-family:inherit;font-size:.6rem;font-weight:500;display:flex}.mobile-tab>span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-tab-icon{justify-content:center;align-items:center;width:20px;height:20px;display:flex}.mobile-tab-icon svg{width:19px;height:19px}.mobile-tab.active{color:var(--brand-fg)}.page-content{padding:calc(56px + 12px) 14px calc(112px + env(safe-area-inset-bottom))!important}.app-footer--shell{display:none}.btn-primary,.btn-ghost,.btn-secondary,.search-input,.btn-search{border-radius:999px}.overview-panel,.m-summary,.m-section-head,.table-card.iva-card,.table-card.irpf-card,.settings-section,.insight-chip,.quarter-summary,.kpi-card,.fin-card,.client-card,.kanban-card,.res-card{background:color-mix(in srgb, var(--surface) 62%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.35);backdrop-filter:blur(20px)saturate(1.35);border:none;border-radius:22px}.table-card.iva-card,.table-card.irpf-card{border-top:none;margin-bottom:0}.m-overview .overview-hero{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;margin-bottom:0;padding:10px 6px 4px}.m-overview .overview-hero-value{font-size:clamp(2.5rem,13vw,3.2rem)}.period-selector,.year-stepper{background:color-mix(in srgb, var(--surface-hover) 72%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px}.period-btn,.period-pill,.year-step,.year-step-label{border-radius:999px}.page-header-toolbar{flex-wrap:nowrap;gap:8px;width:100%}.m-controls{align-items:center;gap:8px;display:flex}.page-header-toolbar .period-selector,.m-controls .period-selector{flex:1;justify-content:space-between;width:auto;min-width:0}.page-header-toolbar .year-stepper,.m-controls .year-stepper{flex-shrink:0}.m-actions{gap:8px;display:flex}.m-actions>*{white-space:nowrap;border-radius:999px;flex:1 1 0;justify-content:center;min-height:42px}.m-actions .btn-primary{background:var(--brand-dim);border-color:#0000}.m-actions .btn-ghost{background:color-mix(in srgb, var(--surface) 62%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.35);backdrop-filter:blur(20px)saturate(1.35);color:var(--text);border-color:#0000}.m-overview{gap:var(--gutter);flex-direction:column;display:flex}.m-overview>*{min-width:0}.m-overview .overview-two-col,.m-overview .overview-panel{margin-top:0;margin-bottom:0}.m-summary{flex-direction:column;display:flex}.m-summary .qsum-row{border-bottom:none;padding:10px 0}.m-qsum-link{cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:100%;font-family:inherit}.m-qsum-end{align-items:center;gap:8px;display:flex}.m-qsum-end svg{color:var(--text-subtle);flex-shrink:0}.m-qsum-count{color:var(--text-subtle);margin-left:8px;font-size:.72rem;font-weight:400}.m-section-head{width:100%;padding:16px var(--card-pad);cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;gap:10px;font-family:inherit;display:flex}.m-section-title{color:var(--text);font-size:.9rem;font-weight:600}.m-section-chevron{color:var(--text-subtle);transition:transform .2s var(--ease);flex-shrink:0}.m-section-chevron.open{transform:rotate(180deg)}.m-section-body{gap:var(--gutter);padding-top:var(--gutter);flex-direction:column;display:flex}.m-section-body>*{margin:0!important}.mobile-menu-sheet,.detail-sheet{background:color-mix(in srgb, var(--surface) 80%, transparent);-webkit-backdrop-filter:blur(28px)saturate(1.4);backdrop-filter:blur(28px)saturate(1.4);border-radius:26px 26px 0 0}.mobile-menu-sheet{padding-bottom:calc(20px + env(safe-area-inset-bottom));z-index:201}.mobile-menu-profile{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:4px 0 0;font-family:inherit;display:flex}.mobile-menu-profile .avatar{border:1px solid var(--border-strong);width:44px;height:44px;font-size:.95rem}.mobile-menu-profile-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.mobile-menu-profile-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.mobile-menu-profile-sub{color:var(--text-muted);font-size:.74rem}.mobile-menu-profile-chevron{color:var(--text-subtle);flex-shrink:0}.fin-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.fin-grid-4{grid-template-columns:1fr 1fr}.fin-card{gap:3px;padding:12px 12px 10px}.fin-label{letter-spacing:.03em;font-size:.62rem}.fin-value{font-size:1.02rem}.fin-sub{display:none}.kanban-board{grid-template-columns:repeat(4,calc(100vw - 76px));padding-inline:16px}.kanban-card{padding:12px 14px}.kanban-card-name{font-size:.9rem}.kanban-card-client{font-size:.78rem}.kanban-card-budget{font-size:.84rem}.sort-label-prefix{display:none}.table-header{flex-flow:wrap;justify-content:space-between;align-items:center;gap:6px}.table-header>div:first-child{flex-wrap:nowrap;gap:5px}.table-header>div:last-child{gap:5px;width:auto}.btn-import-label{display:none}.table-header .filter-dropdown-trigger{padding:6px 8px}.table-header .sort-dir-btn{padding:5px 6px}.table-header .btn-add{padding:6px 10px}.res-quickadd{padding:3px 14px}.res-quickadd input{padding:5px 0}.res-toolbar .search-input{padding:6px 14px}.expense-table .cell-tag-dots{display:none}.cell-meta{display:flex}}
