:root{--primary:#3ecf8e;--primary-deep:#24b47e;--ink:#171717;--ink-muted:#6b6b6b;--ink-faint:#9a9a9a;--canvas:#ffffff;--canvas-soft:#fafafa;--canvas-raised:#ffffff;--hairline:#dfdfdf;--hairline-cool:#ededed;--danger:#b42318;--danger-bg:#fff3f1;--danger-button-bg:#b42318;--danger-button-ink:#ffffff;--success:#067647;--success-bg:#ecfdf3;--focus-ring:rgb(36 180 126/0.32);--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}:root[data-theme=dark]{--ink:#f4f4f4;--ink-muted:#a0a0a0;--ink-faint:#7a7a7a;--canvas:#171717;--canvas-soft:#1c1c1c;--canvas-raised:#202020;--hairline:#3a3a3a;--hairline-cool:#2e2e2e;--danger:#ffb4a8;--danger-bg:#351a18;--danger-button-bg:#d92d20;--danger-button-ink:#ffffff;--success:#7ee2ae;--success-bg:#143226;--focus-ring:rgb(62 207 142/0.4)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2{font-weight:560;letter-spacing:-.02em;margin:0}button,input{font:inherit}:focus-visible{outline:2px solid var(--primary-deep);outline-offset:2px}.meta{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.09em;margin:0;text-transform:uppercase}.rule{border:0;border-top:1px dashed var(--hairline);margin:0}.num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.primary-button,.secondary-button{align-items:center;border:1px solid transparent;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:560;gap:8px;justify-content:center;min-height:38px;padding:0 16px;text-decoration:none;transition:background-color .15s ease,border-color .15s ease}.primary-button{background:var(--primary);color:#171717}.primary-button:hover:not(:disabled){background:var(--primary-deep)}.secondary-button{background:var(--canvas-raised);border-color:var(--hairline);color:var(--ink)}.secondary-button:hover:not(:disabled){background:var(--canvas-soft)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text]{background:var(--canvas-raised);border:1px solid var(--hairline);border-radius:6px;color:var(--ink);min-height:40px;padding:8px 12px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=text]:focus{border-color:var(--primary-deep);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.theme-toggle{align-items:center;background:transparent;border:1px solid var(--hairline);border-radius:6px;color:var(--ink);cursor:pointer;display:inline-flex;height:34px;justify-content:center;padding:0;transition:background-color .15s ease;width:34px}.theme-toggle:hover{background:var(--canvas-soft)}.auth-shell{align-items:center;background-color:var(--canvas);background-image:linear-gradient(rgb(255 255 255/.72),rgb(255 255 255/.86)),url(/receipt-background.jpg);background-position:50%;background-size:cover;display:flex;justify-content:center;min-height:100vh;padding:32px 24px}:root[data-theme=dark] .auth-shell{background-image:linear-gradient(rgb(20 20 20/.82),rgb(20 20 20/.9)),url(/receipt-background.jpg)}.auth-card{animation:card-in .32s ease-out both;background:var(--canvas-raised);border:1px solid var(--hairline-cool);border-radius:10px;box-shadow:0 8px 24px rgb(0 0 0/.08);width:min(100%,400px)}:root[data-theme=dark] .auth-card{box-shadow:0 8px 24px rgb(0 0 0/.4)}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.auth-head{gap:12px;justify-content:space-between;padding:18px 28px}.auth-head,.brand-lockup{align-items:center;display:flex}.brand-lockup{font-size:14px;font-weight:600;gap:9px;letter-spacing:-.01em}.brand-mark{background:var(--primary);border-radius:4px;display:inline-block;flex:none;height:16px;width:16px}.auth-body{display:grid;grid-gap:22px;gap:22px;padding:26px 28px 28px}.auth-body h1{font-size:30px;line-height:1.15;margin-bottom:6px}.auth-copy{color:var(--ink-muted);font-size:14px;margin:0;text-align:center}.auth-form{display:grid;grid-gap:16px;gap:16px}.auth-form label{display:grid;grid-gap:7px;gap:7px}.auth-foot{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:14px 28px}.form-error,.form-status{border-left:2px solid;font-size:13px;line-height:1.45;margin:0;padding:8px 12px}.form-error{background:var(--danger-bg);color:var(--danger)}.form-status{background:var(--success-bg);color:var(--success)}.shell{margin:0 auto;max-width:1080px;padding:40px 24px 64px}.topbar{align-items:flex-end;border-bottom:1px dashed var(--hairline);display:flex;gap:24px;justify-content:space-between;padding-bottom:20px}.topbar h1{font-size:28px;margin:10px 0 4px}.topbar-actions{align-items:center;display:flex;gap:10px}.workspace{align-items:start;display:grid;grid-gap:20px;gap:20px;grid-template-columns:1fr;padding-top:24px}.panel{background:var(--canvas-raised);border:1px solid var(--hairline-cool);border-radius:10px;min-width:0;padding:22px}.panel h2{font-size:17px;margin:0 0 4px}.panel-copy{color:var(--ink-muted);font-size:13px;margin:0}.upload-panel{display:grid;grid-gap:16px;gap:16px}.dropzone-group{grid-gap:8px;gap:8px}.dropzone,.dropzone-group{display:grid;justify-items:center}.dropzone{background:var(--canvas-soft);border:1px dashed var(--hairline);border-radius:8px;cursor:pointer;grid-gap:6px;gap:6px;padding:26px 16px;position:relative;text-align:center;width:100%;transition:border-color .15s ease,background-color .15s ease}.dropzone:focus-within,.dropzone:hover{border-color:var(--primary-deep)}.dropzone[data-dragging=true]{background:var(--success-bg);border-color:var(--primary-deep)}.dropzone input{height:1px;opacity:0;position:absolute;width:1px}.dropzone-headline{font-size:14px;font-weight:560;margin:0}.dropzone-file{font-family:var(--font-mono);font-size:12px;margin:0;overflow-wrap:anywhere}.table-panel{padding:22px 0 0}.table-heading{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:0 22px 16px}.table-heading-actions{align-items:center;display:flex;gap:8px}.table-heading-actions .icon-button{width:38px}.table-totals{align-items:baseline;border-top:1px dashed var(--hairline);display:flex;gap:24px;padding:14px 22px}.table-totals p{margin:0}.table-totals span{color:var(--ink-muted);font-size:12px}.table-totals strong{font-size:15px;font-weight:560;margin-left:8px}.table-wrap{overflow-x:auto}.table-feedback{margin:0 22px 16px}table{border-collapse:collapse;font-size:14px;min-width:560px;width:100%}td,th{padding:11px 22px;text-align:left}th{border-block:1px dashed var(--hairline);color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.09em;text-transform:uppercase}tbody td{border-bottom:1px dashed var(--hairline-cool)}tbody tr:hover td{background:var(--canvas-soft)}.col-amount{text-align:right}.cell-muted{color:var(--ink-muted)}.receipt-edit-input{min-width:130px}.receipt-amount-input{min-width:120px;text-align:right}.row-actions{display:flex;gap:6px;justify-content:flex-end}.compact-button{min-height:32px;padding-inline:10px}.icon-button{padding:0;width:32px}.icon-button .lucide{color:currentColor;display:block;flex:none;height:18px;stroke:currentColor;width:18px}.secondary-button.icon-button{background:transparent;border-color:transparent;color:var(--ink-muted)}.secondary-button.icon-button:hover:not(:disabled){background:var(--canvas-soft);color:var(--ink)}.table-empty,.table-loading{color:var(--ink-muted);font-size:14px;margin:0;padding:4px 22px 22px}.skeleton-row{animation:pulse 1.4s ease-in-out infinite;background:var(--hairline-cool);border-radius:4px;height:12px;margin:18px 22px}@keyframes pulse{50%{opacity:.45}}.mode-switch{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:8px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:1fr 1fr;padding:4px}.mode-switch button{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--ink-muted);cursor:pointer;font-size:14px;font-weight:560;min-height:32px;transition:background-color .15s ease,color .15s ease}.mode-switch button[data-active=true]{background:var(--canvas-raised);border-color:var(--hairline);color:var(--ink)}.admin-panel{grid-column:1/-1}.inline-form{align-items:end;display:flex;gap:10px;margin-top:16px}.inline-field{display:grid;flex:1 1;grid-gap:7px;gap:7px;min-width:0}.tag{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:999px;color:var(--ink-muted);font-size:11px;letter-spacing:.04em;margin-left:8px;padding:2px 8px;text-transform:uppercase;vertical-align:middle}.danger-button{align-items:center;background:var(--danger-button-bg);border:1px solid transparent;border-radius:6px;color:var(--danger-button-ink);cursor:pointer;display:inline-flex;font-size:14px;font-weight:560;justify-content:center;min-height:38px;padding:0 16px;transition:opacity .15s ease}.danger-button:hover{opacity:.88}.danger-button:disabled{cursor:not-allowed;opacity:.55}.danger-button.icon-button{background:transparent;border-color:transparent;color:var(--danger)}.danger-button.icon-button:hover:not(:disabled){background:var(--danger-bg);opacity:1}.modal{background:transparent;border:none;color:inherit;max-height:100dvh;max-width:100vw;padding:0}.modal::-webkit-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgb(0 0 0/.45)}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgb(0 0 0/.45)}.modal-card{background:var(--canvas-raised);border:1px solid var(--hairline);border-radius:10px;box-shadow:0 18px 44px rgb(0 0 0/.22);display:grid;grid-gap:14px;gap:14px;max-width:min(420px,calc(100vw - 32px));padding:24px}.modal-card.upload-modal-card{max-width:min(480px,calc(100vw - 32px));width:480px}.modal-card h3{font-size:17px;margin:0 0 5px}.modal-copy{color:var(--ink-muted);font-size:13px;line-height:1.5;margin:0}.modal-copy strong{color:var(--ink);font-weight:560;overflow-wrap:anywhere}.delete-receipt-summary{background:var(--canvas-soft);border:1px solid var(--hairline-cool);border-radius:7px;display:grid;grid-gap:2px;gap:2px;padding:11px 12px}.delete-receipt-summary strong{font-size:14px;font-weight:560;overflow-wrap:anywhere}.delete-receipt-summary span{color:var(--ink-muted);font-size:12px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:860px){.workspace{grid-template-columns:1fr}}@media (max-width:620px){.shell{padding:28px 16px 48px}.topbar{align-items:stretch;flex-direction:column;gap:16px}.topbar h1{font-size:24px}.auth-body h1{font-size:26px}.table-totals{flex-direction:column;gap:6px}.inline-form{align-items:stretch;flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}