:root{--color-bg:#f5f6f8;--color-surface:#fff;--color-surface-muted:#eef1f4;--color-text:#1a1f26;--color-text-muted:#56606c;--color-border:#d9dee4;--color-border-strong:#b7c0ca;--color-accent:#0b6b5d;--color-accent-hover:#08574b;--color-accent-soft:#e3f2ef;--color-on-accent:#fff;--color-danger:#b42318;--color-danger-soft:#fdecea;--color-focus:#2563eb;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:1.875rem;--text-total:clamp(2.25rem, 8vw, 3rem);--leading:1.5;--radius:10px;--radius-small:6px;--touch:2.75rem;--content-width:72rem;--shadow:0 1px 2px #1018280f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--color-bg:#12161b;--color-surface:#1b2128;--color-surface-muted:#232a33;--color-text:#e8ecf0;--color-text-muted:#a3adb8;--color-border:#2e3742;--color-border-strong:#45515e;--color-accent:#4fbfa9;--color-accent-hover:#6fd0bc;--color-accent-soft:#173a34;--color-on-accent:#0b1714;--color-danger:#f27b70;--color-danger-soft:#3a1d1b;--color-focus:#7aa7ff;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading);margin:0}h1,h2,h3,p{margin:0}h1{font-size:var(--text-2xl);font-weight:700;line-height:1.2}a{color:var(--color-accent);text-underline-offset:.15em}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-small)}main:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.muted{color:var(--color-text-muted)}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.stack{gap:var(--space-5);flex-direction:column;display:flex}.stack-tight{gap:var(--space-4);flex-direction:column;display:flex}.skip-link{left:var(--space-4);z-index:10;padding:var(--space-2) var(--space-4);background:var(--color-surface);border-radius:var(--radius-small);position:absolute;top:-10rem}.skip-link:focus{top:var(--space-2)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-small);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--color-surface-muted);color:var(--color-text)}.button:disabled{opacity:.6;cursor:progress}.button-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.button-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent)}.button-secondary{color:var(--color-accent);border-color:var(--color-accent)}.button-secondary:hover{background:var(--color-accent-soft);color:var(--color-accent-hover)}.button-danger{color:var(--color-danger);border-color:var(--color-danger)}.button-danger:hover{background:var(--color-danger-soft);color:var(--color-danger)}.button-small{padding:0 var(--space-3);font-size:var(--text-sm)}.button-block{width:100%}.button-link{color:var(--color-accent);text-underline-offset:.15em;background:0 0;border-color:#0000;font-weight:500;text-decoration:underline}.button-link:hover{color:var(--color-accent-hover);background:0 0}.button-icon{width:var(--touch);font-size:var(--text-xl);padding:0;line-height:1}.button-glyph{font-weight:700}.field{gap:var(--space-1);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);font-weight:600}input,select,textarea{min-height:var(--touch);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-small);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:max(16px, var(--text-md))}input[aria-invalid=true]{border-color:var(--color-danger)}.field-error{color:var(--color-danger);font-weight:500}.input-code{font-size:var(--text-xl);letter-spacing:.3em;font-variant-numeric:tabular-nums}.loading{align-items:center;gap:var(--space-3);padding:var(--space-6) 0;color:var(--color-text-muted);display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.notice{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;display:flex}.notice-error{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-text)}.empty{padding:var(--space-7) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius);text-align:center;gap:var(--space-2);flex-direction:column;display:flex}.empty p:first-child{font-size:var(--text-lg);font-weight:600}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.topbar-inner{max-width:var(--content-width);padding:var(--space-3) var(--space-4) 0;align-items:center;gap:var(--space-2) var(--space-4);grid-template-columns:1fr auto;grid-template-areas:"brand account""nav nav";margin:0 auto;display:grid}.brand{font-size:var(--text-lg);letter-spacing:-.01em;color:var(--color-accent);grid-area:brand;font-weight:800}.brand-large{font-size:var(--text-xl)}.account{align-items:center;gap:var(--space-3);grid-area:account;display:flex}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;font-weight:600;overflow:hidden}.nav{scrollbar-width:none;grid-area:nav;overflow-x:auto}.nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.nav a{min-height:var(--touch);padding:0 var(--space-3);color:var(--color-text-muted);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;font-weight:600;text-decoration:none;display:flex}.nav a:hover{color:var(--color-text)}.nav a.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}@media (width>=60rem){.topbar-inner{grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav account";padding-top:0}.nav a{min-height:3.75rem}}.page{max-width:var(--content-width);padding:var(--space-5) var(--space-4) var(--space-7);margin:0 auto;display:block}.page-narrow{max-width:32rem}.page-header{gap:var(--space-2);flex-direction:column;display:flex}@media (width>=48rem){.page{padding:var(--space-6) var(--space-5) var(--space-7)}}.period{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:var(--space-3);flex-direction:column;margin:0;display:flex}.period-months{align-items:center;gap:var(--space-2);display:flex}.period-label{text-align:center;font-size:var(--text-lg);flex:1;font-weight:600}.period-label:first-letter{text-transform:uppercase}.period-range{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.period-range input{width:100%}@media (width>=48rem){.period{padding:var(--space-3) var(--space-4);flex-direction:row;justify-content:space-between;align-items:flex-end}.period-months{align-self:center}.period-label{min-width:14rem}.period-range{grid-template-columns:11rem 11rem}}.result[aria-busy=true]{opacity:.55;transition:opacity .15s}.summary{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow);flex-direction:column;display:flex}.summary-label{color:var(--color-text-muted);font-weight:600}.summary-total{font-size:var(--text-total);letter-spacing:-.02em;font-weight:700;line-height:1.15}.summary-count{color:var(--color-text-muted)}@media (width>=48rem){.summary{flex-direction:row;justify-content:space-between;align-items:flex-end}}.tag{padding:.125rem var(--space-2);background:var(--color-surface-muted);font-size:var(--text-sm);white-space:nowrap;border-radius:999px;font-weight:500;display:inline-block}.what{font-weight:600;display:block}.merchant{color:var(--color-text-muted);font-size:var(--text-sm);display:block}.col-receipt a{min-height:var(--touch);align-items:center;font-weight:500;display:inline-flex}.col-receipt .muted{min-height:var(--touch);font-size:var(--text-sm);align-items:center;display:inline-flex}.col-actions{white-space:nowrap}.col-actions .button+.button{margin-left:var(--space-2)}.expenses{border-collapse:collapse;width:100%}@media (width>=48rem){.expenses{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);border-collapse:separate;border-spacing:0;overflow:hidden}.expenses th,.expenses td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.expenses td{padding-top:var(--space-4);padding-bottom:var(--space-4)}.expenses th{background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-sm);white-space:nowrap;font-weight:600}.expenses tbody tr:last-child td{border-bottom:0}.expenses .col-amount{text-align:right;font-weight:600}.expenses .col-date{white-space:nowrap;font-variant-numeric:tabular-nums}.expenses .col-why{color:var(--color-text-muted)}.expenses td.col-receipt,.expenses td.col-actions{padding-top:var(--space-1);padding-bottom:var(--space-1)}}@media (width<=47.99rem){.expenses,.expenses tbody{display:block}.expenses thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.expenses tbody{gap:var(--space-3);flex-direction:column;display:flex}.expenses tbody tr{column-gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);grid-template-columns:auto 1fr auto;grid-template-areas:"what what amount""why why why""date category category""person person person""receipt receipt actions";display:grid}.expenses td{padding:0;display:block}.expenses .col-what{grid-area:what}.expenses .col-amount{font-size:var(--text-lg);text-align:right;grid-area:amount;font-weight:700}.expenses .col-why{margin-top:var(--space-1);color:var(--color-text-muted);grid-area:why}.expenses .col-date{margin-top:var(--space-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums;grid-area:date;align-self:center}.expenses .col-category{margin-top:var(--space-3);grid-area:category}.expenses .col-person{margin-top:var(--space-2);font-size:var(--text-sm);grid-area:person;font-weight:600}.expenses .col-receipt{margin-top:var(--space-2);grid-area:receipt;align-self:center}.expenses .col-actions{margin-top:var(--space-2);grid-area:actions;align-self:center}}.login{min-height:100dvh;padding:var(--space-7) var(--space-4);justify-content:center;align-items:flex-start;display:flex}.login-card{gap:var(--space-4);width:100%;max-width:26rem;padding:var(--space-6) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex}.login-card h1{font-size:var(--text-xl)}.nowrap-email{overflow-wrap:anywhere}@media (width>=48rem){.login{padding-top:var(--space-4);align-items:center}}.back-link{min-height:var(--touch);align-self:flex-start;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{text-decoration:underline}.toolbar{gap:var(--space-3);flex-direction:column;display:flex}@media (width>=48rem){.toolbar{flex-direction:row;justify-content:space-between;align-items:center}}.card{padding:var(--space-5);border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow)}.card h2{font-size:var(--text-lg)}.columns{gap:var(--space-5);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=60rem){.columns{grid-template-columns:3fr 2fr}}.strong{font-weight:700}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.data-table thead th{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}.data-table tbody th{font-weight:600}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}.data-table .num{text-align:right}.person-link{min-height:var(--touch);color:inherit;overflow-wrap:anywhere;flex-direction:column;justify-content:center;text-decoration:none;display:flex}.person-link .what{color:var(--color-accent)}.person-link:hover .what{text-decoration:underline}.result>.data-table{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.result>.data-table th,.result>.data-table td{padding-left:var(--space-3);padding-right:var(--space-3)}.chart{width:100%;height:15rem}.chart-note{font-size:var(--text-sm)}.tag-ok{background:var(--color-accent-soft);color:var(--color-accent)}.tag-off{background:var(--color-danger-soft);color:var(--color-danger)}.row-inactive .what,.row-inactive .col-email{color:var(--color-text-muted)}.people{border-collapse:collapse;width:100%}.people .col-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width>=60rem){.people{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);border-collapse:separate;border-spacing:0;overflow:hidden}.people th,.people td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-border)}.people th{background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-sm);white-space:nowrap;font-weight:600}.people tbody tr:last-child td{border-bottom:0}.people .col-actions{white-space:nowrap;display:table-cell}.people .col-actions .button+.button{margin-left:var(--space-2)}}@media (width<=59.99rem){.people,.people tbody{display:block}.people thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.people tbody{gap:var(--space-3);flex-direction:column;display:flex}.people tbody tr{gap:var(--space-1) var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);grid-template-columns:1fr auto;grid-template-areas:"name status""email email""role wa""actions actions";display:grid}.people td{padding:0;display:block}.people .col-name{grid-area:name}.people .col-status{grid-area:status;justify-self:end}.people .col-email{overflow-wrap:anywhere;color:var(--color-text-muted);font-size:var(--text-sm);grid-area:email}.people .col-role{margin-top:var(--space-2);grid-area:role}.people .col-wa{margin-top:var(--space-2);color:var(--color-text-muted);grid-area:wa;justify-self:end}.people .col-actions{margin-top:var(--space-3);grid-area:actions}}.wa-status{align-items:center;gap:var(--space-3);font-size:var(--text-xl);font-weight:700;display:flex}.wa-dot{background:var(--color-border-strong);border-radius:50%;width:.875rem;height:.875rem}.wa-ok .wa-dot{background:var(--color-accent)}.wa-off .wa-dot{background:var(--color-danger)}.qr{text-align:center;align-items:center}.qr-box{padding:var(--space-3);border-radius:var(--radius);border:1px solid var(--color-border);background:#fff;line-height:0}.qr-box svg{width:min(16rem,100%);height:auto}.dialog-overlay{z-index:50;background:#0a0e148c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{gap:var(--space-4);width:100%;max-width:30rem;max-height:100dvh;padding:var(--space-5);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;display:flex;overflow-y:auto}.dialog:focus{outline:none}.dialog-title{font-size:var(--text-xl);line-height:1.2}.dialog-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}@media (width>=48rem){.dialog-overlay{padding:var(--space-5);align-items:center}.dialog{border-radius:var(--radius);box-shadow:0 10px 30px #0a0e144d}}
