*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}dialog{margin:auto}:root{--bg: #f6f4ef;--bg-sunken: #eeeae2;--bg-surface: #fffefc;--bg-elevated: #ffffff;--bg-mat: #efebe2;--ink-900: #15110d;--ink-800: #1f1a15;--ink-700: #2c2620;--border: rgba(21, 17, 13, .08);--border-strong: rgba(21, 17, 13, .15);--border-loud: rgba(21, 17, 13, .26);--text: #1a1714;--text-muted: #57514a;--text-faint: #6b6459;--text-inverse: #f7f3ec;--accent: #2f7a68;--accent-deep: #0d2f28;--accent-contrast: #ffffff;--danger: #b32a1b;--success: #256b48;--font-ui: "Inter", system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.0625rem;--fs-xl: 1.1875rem;--fs-2xl: clamp(1.375rem, 1.1rem + .9vw, 1.75rem);--fs-3xl: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);--fs-4xl: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);--fs-5xl: clamp(2.6rem, 1.7rem + 3.8vw, 4.5rem);--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4rem;--s-9: 6rem;--section-y: clamp(3.5rem, 7vw, 6.5rem);--radius-xs: 4px;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-xl: 26px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(21, 17, 13, .05);--shadow: 0 1px 2px rgba(21, 17, 13, .04), 0 6px 16px rgba(21, 17, 13, .05);--shadow-md: 0 2px 4px rgba(21, 17, 13, .05), 0 12px 28px rgba(21, 17, 13, .08);--shadow-lg: 0 4px 8px rgba(21, 17, 13, .06), 0 24px 56px rgba(21, 17, 13, .12);--ring: 0 0 0 3px var(--accent);--ease: cubic-bezier(.2, .6, .2, 1);--dur-fast: .13s;--dur: .22s;--container: 75rem;--container-narrow: 52rem;--container-form: 30rem;font-family:var(--font-ui);font-size:16px;line-height:1.6;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}@supports (font-variation-settings: normal){:root{font-family:"Inter var",var(--font-ui)}}body{min-height:100dvh;background:var(--bg);display:flex;flex-direction:column}body>main{flex:1 0 auto}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:-.015em;text-wrap:balance}h1{font-size:var(--fs-4xl)}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-xl);line-height:1.25;letter-spacing:-.01em}h4{font-size:var(--fs-lg);line-height:1.3;letter-spacing:0}p{color:var(--text)}small{font-size:var(--fs-sm)}a{color:inherit;text-decoration:none}a:not(.btn):hover{color:color-mix(in srgb,var(--accent) 72%,var(--accent-deep))}::selection{background:color-mix(in srgb,var(--accent) 26%,transparent)}:focus-visible{outline:2px solid transparent;outline-offset:2px;box-shadow:var(--ring);border-radius:var(--radius-sm)}img,svg,video{display:block;max-width:100%}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:calc(clamp(1.25rem,4vw,2.5rem) + env(safe-area-inset-left)) calc(clamp(1.25rem,4vw,2.5rem) + env(safe-area-inset-right))}.container-narrow{max-width:var(--container-narrow)}.container-sm{max-width:var(--container-form)}.stack{display:flex;flex-direction:column}.section{padding-block:var(--section-y)}.section-tight{padding-block:clamp(2.5rem,5vw,4rem)}.measure{max-width:62ch}.lead{font-size:var(--fs-xl);line-height:1.55;color:var(--text-muted);max-width:56ch}.grid-auto{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}.grid-2{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}.grid-3{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}.section-head{display:flex;flex-direction:column;gap:var(--s-3);max-width:46rem}.section-head h2{margin:0}.app-page h1{font-size:var(--fs-3xl)}.app-page h2{font-size:var(--fs-xl)}.app-page h3{font-size:var(--fs-md);letter-spacing:0}.app-page h4{font-size:var(--fs-sm);letter-spacing:0}.app-page .lead{font-size:var(--fs-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);font:inherit;font-weight:550;line-height:1;min-height:2.5rem;padding:0 1.05rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-align:center;white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--ink-900);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--ink-700);box-shadow:var(--shadow)}.btn-accent{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.btn-accent:hover{filter:brightness(1.06);box-shadow:var(--shadow)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-loud)}.btn-ghost:hover{background:var(--bg-surface);border-color:var(--text)}.btn-subtle{background:var(--bg-surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn-subtle:hover{border-color:var(--border-loud);background:var(--bg-elevated)}.btn-quiet{background:transparent;color:var(--text-muted)}.btn-quiet:hover{background:var(--bg-sunken);color:var(--text)}.btn-primary:focus-visible,.btn-accent:focus-visible,.btn-subtle:focus-visible{box-shadow:var(--shadow-sm),var(--ring)}.btn-danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:var(--danger)}.btn-sm{min-height:2rem;padding:0 .7rem;font-size:var(--fs-sm)}.btn-lg{min-height:3rem;padding:0 1.6rem;font-size:var(--fs-lg);border-radius:var(--radius)}.btn-icon{width:2.25rem;min-height:2.25rem;height:2.25rem;padding:0;font-size:1.25rem;line-height:1;font-weight:400;border-radius:var(--radius-sm)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-5);box-shadow:var(--shadow-sm)}.card-hover{transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.card-hover:hover{border-color:var(--border-loud);transform:translateY(-3px);box-shadow:var(--shadow-md)}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(1.25rem,3vw,2rem)}.divider{height:1px;background:var(--border);border:0}.frame{display:grid;place-items:center;background:var(--bg-mat);overflow:hidden;aspect-ratio:4 / 3;padding:clamp(.6rem,2%,1.1rem)}.frame>img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 2px 6px #15110d29,0 10px 24px #15110d1f}.frame-tall{aspect-ratio:3 / 4}.frame-wide{aspect-ratio:16 / 10}.field{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}.label{font-size:var(--fs-sm);font-weight:550;color:var(--text-muted)}.input,.select,textarea.input,input.input{font:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:2.5rem;padding:.5rem .75rem;width:100%;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}textarea.input{min-height:6rem;line-height:1.55;resize:vertical}.input::placeholder{color:var(--text-faint)}.input:hover,.select:hover{border-color:var(--border-loud)}.input:focus,.select:focus,textarea.input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.select{appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23857e73' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:.7rem}input[type=file].input{padding:.35rem;cursor:pointer}input[type=file].input::file-selector-button{font:inherit;font-weight:550;font-size:var(--fs-sm);line-height:1;min-height:2.25rem;padding:0 var(--s-3);margin-inline-end:var(--s-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}input[type=file].input:hover::file-selector-button{border-color:var(--border-loud);background:var(--bg-elevated)}.hint{font-size:var(--fs-sm);color:var(--text-faint)}.notice{background:var(--bg-elevated);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:var(--s-4);font-size:var(--fs-sm);color:var(--text-muted)}.notice strong{color:var(--text)}.notice-danger{border-left-color:var(--danger)}.confirm{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);color:var(--text);padding:var(--s-5);max-width:var(--container-form);box-shadow:var(--shadow-lg)}.confirm::backdrop{background:color-mix(in srgb,var(--ink-900) 45%,transparent)}.confirm-form{gap:var(--s-4)}.confirm-actions{display:flex;gap:var(--s-3);justify-content:flex-end}.banner[data-receipt]:focus{outline:none}.banner[data-receipt]:focus-visible{box-shadow:var(--ring)}.banner{border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);font-size:var(--fs-sm);border:1px solid var(--border);background:var(--bg-surface);color:var(--text)}.banner-ok{border-color:color-mix(in srgb,var(--success) 35%,transparent);color:var(--success)}.banner-err{border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.banner-warn{border-color:color-mix(in srgb,var(--danger) 22%,transparent);background:color-mix(in srgb,var(--danger) 4%,var(--bg-surface))}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;padding:.2rem .6rem;border-radius:var(--radius-full);border:1px solid var(--border-strong);color:var(--text-muted);background:var(--bg-surface);white-space:nowrap}.badge-ok{color:var(--success);border-color:color-mix(in srgb,var(--success) 38%,transparent)}.badge-muted{color:var(--text-muted)}.badge-ink{color:var(--text);border-color:var(--border-loud)}.ident{font-family:var(--font-mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;user-select:all}.tabular{font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th{text-align:left;font-weight:600;color:var(--text-muted);padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border-strong);white-space:nowrap;vertical-align:bottom}.data-table td{padding:var(--s-3);border-bottom:1px solid var(--border);vertical-align:top}.data-table tbody tr:last-child td{border-bottom:0}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.amount-debit{color:var(--danger)}.amount-credit{color:var(--success)}.badge-danger{background:color-mix(in srgb,var(--danger) 12%,var(--bg-surface));border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.badge-accent{color:color-mix(in srgb,var(--accent) 75%,var(--accent-deep));border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-surface))}.eyebrow{font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 74%,var(--accent-deep))}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.filters-summary{display:flex;align-items:center;gap:var(--s-2);min-height:2.5rem;font-weight:600;font-size:var(--fs-sm);color:var(--text);list-style:none;cursor:pointer;border-radius:var(--radius-sm)}.filters-summary::-webkit-details-marker{display:none}.filters-summary:after{content:"";margin-inline-start:auto;width:.6rem;height:.6rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:translateY(-.15rem) rotate(45deg);transition:transform var(--dur-fast) var(--ease)}.filters-fold[open]>.filters-summary:after{transform:translateY(.15rem) rotate(-135deg)}.filters-fold[open]>.filters-summary{margin-bottom:var(--s-4)}.filters-count{display:inline-flex;align-items:center;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;padding:.2rem .6rem;border-radius:var(--radius-full);color:color-mix(in srgb,var(--accent) 75%,var(--accent-deep));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-surface));white-space:nowrap;font-variant-numeric:tabular-nums}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.link-cta{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:var(--fs-sm);color:color-mix(in srgb,var(--accent) 74%,var(--accent-deep))}.link-cta:after{content:"→";transition:transform var(--dur) var(--ease)}.card-hover:hover .link-cta:after,.link-cta:hover:after{transform:translate(3px)}.on-ink{background:var(--ink-900);color:var(--text-inverse);--text: #f7f3ec;--text-muted: rgba(247, 243, 236, .72);--text-faint: rgba(247, 243, 236, .52);--border: rgba(247, 243, 236, .14);--border-strong: rgba(247, 243, 236, .22);--border-loud: rgba(247, 243, 236, .38);--bg-surface: rgba(247, 243, 236, .05);--bg-elevated: rgba(247, 243, 236, .08);--bg-sunken: rgba(0, 0, 0, .25);--shadow-sm: none}.on-ink p{color:var(--text-muted)}.on-ink .eyebrow,.on-ink .link-cta{color:color-mix(in srgb,var(--accent) 88%,#fff)}.on-ink .btn-primary{background:var(--text-inverse);color:var(--ink-900)}.on-ink .btn-primary:hover{background:#fff}.on-ink .btn-ghost{color:var(--text-inverse);border-color:var(--border-loud)}.on-ink .btn-ghost:hover{background:#f7f3ec1a;border-color:var(--text-inverse)}.on-ink .card{background:var(--bg-surface);border-color:var(--border);box-shadow:none}@media(max-width:39.99rem){.btn{min-height:3rem}.btn-sm{min-height:2.75rem}.btn-icon{width:3rem;min-height:3rem;height:3rem}.input,.select,input.input{min-height:3rem;font-size:var(--fs-md)}textarea.input{font-size:var(--fs-md)}.filters-summary{min-height:3rem}.filters-fold{padding-block:var(--s-2)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
