@font-face{font-family:Alegreya;src:url('/static/assets/AlegreyaSans-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Alegreya;src:url('/static/assets/AlegreyaSans-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:oklch(31% .039 125);--muted:oklch(49% .023 106);--accent:oklch(51% .126 39);--accent-dark:oklch(43% .116 39);--paper:oklch(99% .003 85);--bg:oklch(97% .012 85);--line:oklch(87% .019 85);--cream:oklch(92% .032 85);--soft:oklch(95% .028 55);--good:oklch(39% .065 140);--error:oklch(44% .15 27);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;font-size:15px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button,input,select,textarea{border-radius:9px}button{min-height:46px;padding:10px 17px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:600;transition:background .15s ease-out,transform .15s ease-out}button:hover{background:var(--cream)}button:active{transform:translateY(1px)}button.primary{background:var(--accent);color:var(--paper);border-color:var(--accent)}button.primary:hover{background:var(--accent-dark)}button.text{border-color:transparent;background:transparent;color:var(--accent);padding-inline:9px}button.danger{color:var(--error)}button.icon-only{width:44px;padding:10px;flex:none}button svg{vertical-align:middle;margin-right:7px}button.icon-only svg{margin:0}svg.icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin-top:0}h1{font-size:1.85rem;line-height:1.15;letter-spacing:-.035em;margin-bottom:9px}h2{font-size:1.1rem;letter-spacing:-.015em;margin-bottom:20px}h3{font-size:1rem}p{line-height:1.55;max-width:72ch}small,.small{font-size:.8rem}.muted{color:var(--muted)}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:650;color:var(--muted)}.skip{position:fixed;top:-70px;left:15px;z-index:100;background:var(--paper);padding:15px}.skip:focus{top:10px}.boot{max-width:360px;margin:22vh auto;padding:24px;text-align:center}.boot img{width:240px;margin-bottom:32px}.password-wrap{display:flex;gap:8px}.password-wrap input{min-width:0}.shell{display:grid;grid-template-columns:215px 1fr;min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:215px;display:flex;flex-direction:column;border-right:1px solid var(--line);padding:36px 19px 22px;background:var(--paper);z-index:20}.brand img{width:174px;height:32px;object-fit:contain}.brand .eyebrow{display:block;margin:12px 0 40px 8px;letter-spacing:.17em}.nav{display:grid;gap:7px}.nav button{text-align:left;background:transparent;border-color:transparent;font-size:.9rem;padding:13px 12px;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:11px}.nav button svg{margin:0}.nav button[aria-current=page]{background:var(--soft);color:var(--accent);font-weight:650}.sidebar-footer{margin-top:auto;padding:25px 8px 0}.profile{display:flex;align-items:center;gap:11px;font-size:.86rem;margin-bottom:9px}.avatar{width:33px;height:33px;border-radius:50%;background:var(--cream);display:grid;place-items:center;color:var(--accent);font-size:.8rem;font-weight:700}.profile small{display:block;color:var(--muted);margin-top:3px}.sidebar-footer .text{font-size:.8rem}.workspace{grid-column:2;min-width:0;padding:0 38px 56px}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:36px;font-size:.8rem;color:var(--muted)}.topbar .brand-mobile{display:none}.private-status{display:flex;gap:7px;align-items:center}.private-status svg{width:15px}.page-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:27px}.page-head p{font-size:.9rem;color:var(--muted);margin:0}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;border-radius:5px;background:var(--cream);padding:5px 8px;white-space:nowrap;font-weight:550}.pill.good{background:oklch(94% .026 140);color:var(--good)}.pill.warn{background:var(--soft);color:var(--accent)}.pill.danger{background:oklch(95% .024 27);color:var(--error)}.editor-layout{display:grid;grid-template-columns:minmax(350px,1.02fr) minmax(300px,.98fr);gap:32px;align-items:start}.editor{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:26px;min-width:0}.form-section+.form-section{border-top:1px solid var(--line);padding-top:24px;margin-top:26px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.section-heading h2{margin:0}.step{font-size:.72rem;color:var(--accent);background:var(--soft);border-radius:50%;width:23px;height:23px;display:inline-grid;place-items:center;margin-right:9px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fields.three{grid-template-columns:1fr 1fr 1fr}.field{display:block;margin-bottom:15px;font-size:.82rem;font-weight:550;min-width:0}.field span:first-child{display:block;margin-bottom:8px}.field small{display:block;font-weight:400;margin-top:7px;color:var(--muted);line-height:1.4}input,select,textarea{display:block;width:100%;min-height:46px;background:var(--paper);border:1px solid var(--line);padding:11px 12px;color:var(--ink);font-size:16px;line-height:1.3;font-weight:400}input::placeholder,textarea::placeholder{color:oklch(63% .018 100)}textarea{resize:vertical;min-height:86px}input[readonly]{background:var(--bg);color:var(--muted)}select{padding-right:25px;text-overflow:ellipsis}.address{display:flex;gap:10px;color:var(--muted);font-size:.85rem;line-height:1.6;margin:0 0 18px}.address svg{margin-top:4px;width:16px}.address p{margin:0;white-space:pre-line}.line-item{padding:18px 0;border-bottom:1px solid var(--line)}.line-item:first-child{padding-top:0}.line-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.line-header span{font-size:.75rem;color:var(--muted)}.line-header button{min-height:30px;width:33px;padding:4px;border:0;background:none;color:var(--muted)}.line-item .field{margin-bottom:12px}.line-numbers{display:grid;grid-template-columns:.8fr 1fr 1.1fr;gap:13px;align-items:start}.line-total{text-align:right;padding-top:33px;font-size:1rem;font-weight:600;overflow-wrap:anywhere}.add-line{margin-top:15px;width:100%;border-style:dashed;color:var(--accent);font-size:.85rem}.editor-total{display:flex;justify-content:space-between;align-items:center;padding:25px 0 20px}.editor-total strong{font-size:1.65rem;letter-spacing:-.035em}.editor-total small{display:block;color:var(--muted);font-size:.75rem;margin-top:6px}.editor-actions{display:flex;gap:10px;align-items:center}.editor-actions>.primary{flex:1}.saved-line{font-size:.73rem;display:flex;align-items:center;gap:6px;color:var(--muted);margin:14px 0 0;min-height:18px}.preview-column{position:sticky;top:25px;min-width:0}.preview-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 14px}.preview-heading span{font-size:.72rem}.paper{background:var(--paper);border:1px solid var(--line);padding:30px 26px;aspect-ratio:210/297;box-shadow:0 8px 24px oklch(30% .025 90/.035);font-family:Alegreya,sans-serif;color:#2C3620;min-width:0;font-variant-numeric:lining-nums tabular-nums}.paper-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.paper-header img{width:49%;margin-top:5px}.paper-title{text-align:right;font-size:11px;line-height:1.4}.paper-title b{font-size:26px;display:block;font-weight:700}.paper-parties{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#EFE3CE;padding:15px 14px;margin:28px 0 25px;font-size:12px;line-height:1.4}.paper-parties p{white-space:pre-line;margin:0;overflow-wrap:anywhere}.paper-label{font-size:9px;font-weight:700;letter-spacing:.12em;color:#A84929;display:block;margin-bottom:8px}.paper-table{width:100%;border-collapse:collapse;font-size:11px}.paper-table th{font-size:8px;color:#A84929;letter-spacing:.06em;font-weight:700;text-align:left;border-bottom:1px solid #2C3620;padding-bottom:10px}.paper-table td{vertical-align:top;border-bottom:1px solid #deded5;padding:12px 0}.paper-table small{font-size:9px;display:block;margin-top:3px}.paper-table .n{text-align:right;padding-left:7px}.paper-sum{display:flex;justify-content:flex-end;align-items:baseline;gap:18px;margin-top:19px;color:#A84929}.paper-sum span{font-size:10px;font-weight:700;letter-spacing:.08em}.paper-sum strong{font-size:29px;white-space:nowrap}.paper-thanks{font-size:12px;margin:70px 0 0;border-top:1px solid #2C3620;padding-top:12px}.preview-note{display:flex;gap:8px;font-size:.77rem;color:var(--muted);line-height:1.6;margin:18px 4px}.preview-note svg{margin-top:3px;flex:none;width:15px}.notice{border:1px solid var(--line);background:var(--cream);padding:14px 17px;border-radius:8px;line-height:1.5;font-size:.86rem;margin-bottom:22px}.notice p{margin:0}.notice.error{background:oklch(96% .02 27);color:var(--error);border-color:oklch(85% .045 27)}.notice.success{background:oklch(96% .018 140);color:var(--good)}.inline-error{color:var(--error);font-size:.85rem;margin:14px 0;line-height:1.5}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:min(90vw,520px);background:var(--ink);color:var(--paper);padding:14px 20px;border-radius:10px;box-shadow:0 6px 25px oklch(20% .02 90/.12);z-index:90;font-size:.88rem}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:23px}.search{max-width:360px;flex:1}.search input{background:var(--paper)}.invoice-list{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.invoice-row{width:100%;display:grid;grid-template-columns:1.2fr 1.6fr 1fr 1fr 24px;align-items:center;gap:20px;padding:21px 24px;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;font-size:.88rem;font-weight:400;min-height:88px}.invoice-row:last-child{border:0}.invoice-row strong{font-weight:650;display:block;margin-bottom:5px}.invoice-row small{display:block;color:var(--muted);line-height:1.5}.invoice-row .amount{text-align:right;font-weight:650}.row-heading{display:grid;grid-template-columns:1.2fr 1.6fr 1fr 1fr 24px;gap:20px;padding:15px 24px;background:var(--bg);font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.empty{padding:52px 25px;text-align:center;color:var(--muted)}.back{margin-left:-10px;margin-bottom:20px}.document-layout{display:grid;grid-template-columns:minmax(330px,640px) minmax(260px,1fr);gap:35px}.document-layout .paper{padding:40px}.document-layout .paper-parties{font-size:15px}.document-layout .paper-table{font-size:15px}.document-layout .paper-label{font-size:11px}.document-layout .paper-table th{font-size:10px}.document-layout .paper-table small{font-size:12px}.document-layout .paper-title{font-size:13px}.document-layout .paper-title b{font-size:34px}.document-layout .paper-thanks{margin-top:120px;font-size:14px}.action-panel{position:sticky;top:30px;align-self:start}.action-panel>button,.action-panel>a.button{width:100%;margin-bottom:10px}.action-panel h2{margin:25px 0 13px}.action-panel .small{line-height:1.6}.meta-list{display:grid;gap:14px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.meta-list div{display:flex;justify-content:space-between;gap:15px;font-size:.85rem}.meta-list dt{color:var(--muted)}.meta-list dd{margin:0;text-align:right}.hash{font-family:ui-monospace,monospace;font-size:.7rem;overflow-wrap:anywhere;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 17px;text-decoration:none;border:1px solid var(--line);border-radius:9px;background:var(--paper);font-weight:600;color:var(--ink)}details{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}summary{cursor:pointer;font-size:.87rem;min-height:35px;line-height:1.5}details>div{padding-top:18px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}.settings-block{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:27px}.catalog-list{display:grid;gap:0;margin-bottom:16px}.catalog-entry{padding:14px 0;border-bottom:1px solid var(--line);font-size:.9rem}.catalog-entry small{display:block;white-space:pre-line;color:var(--muted);margin-top:6px;line-height:1.5}.audit-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:24px}.audit-summary p{margin:5px 0 0;font-size:.8rem;color:var(--muted)}.audit-list{border-top:1px solid var(--line)}.audit-event{display:grid;grid-template-columns:42px 1fr auto;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);font-size:.86rem}.event-seq{color:var(--muted);font-size:.75rem;padding-top:2px}.event-title{font-weight:600}.event-meta{font-size:.76rem;color:var(--muted);margin-top:5px}.audit-event time{font-size:.76rem;color:var(--muted);text-align:right}.audit-event details{font-size:.75rem;padding-top:0;border:0;margin:8px 0 0}.audit-event summary{font-size:.76rem;min-height:20px}.audit-event pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:65ch;font-size:.73rem;line-height:1.5}.load-more{display:block;margin:24px auto}.error-page{padding:40px 0}.review-head{display:flex;gap:10px;align-items:center;margin-bottom:20px;color:var(--accent)}.review-head svg{width:20px}.checkbox{display:flex;align-items:start;gap:10px;font-size:.86rem;line-height:1.5;margin:22px 0}.checkbox input{width:20px;min-height:20px;margin:2px 0 0;accent-color:var(--accent)}.offline{position:sticky;top:0;background:var(--cream);text-align:center;padding:10px;font-size:.8rem;z-index:30}.mobile-preview{display:none}.actions-row{display:flex;gap:10px;flex-wrap:wrap}.spacer-top{margin-top:25px}.flex-fill{flex:1}[hidden]{display:none!important}
@media(min-width:1500px){.workspace{padding-inline:55px}.editor-layout{gap:48px;grid-template-columns:minmax(420px,560px) minmax(350px,520px)}.paper{padding:38px 32px}.paper-parties{font-size:14px}.paper-table{font-size:14px}.paper-table th{font-size:9px}.paper-table small{font-size:11px}.paper-thanks{margin-top:100px}}
@media(max-width:1190px){.shell{grid-template-columns:180px 1fr}.sidebar{width:180px;padding-inline:14px}.brand img{width:148px}.workspace{padding-inline:24px}.editor-layout{gap:22px;grid-template-columns:minmax(330px,1fr) minmax(260px,.9fr)}.editor{padding:21px}.paper{padding:22px 18px}.paper-title b{font-size:22px}.paper-parties{font-size:11px;padding:10px}.paper-table{font-size:10px}.paper-sum strong{font-size:25px}.document-layout{gap:25px;grid-template-columns:minmax(300px,1.3fr) minmax(230px,1fr)}}
@media(max-width:960px){.editor-layout{grid-template-columns:1fr;max-width:650px}.preview-column{position:static;display:none}.mobile-preview{display:block}.settings-grid{grid-template-columns:1fr}.document-layout{grid-template-columns:1fr;max-width:680px}.action-panel{position:static;grid-row:1}.document-layout .paper{grid-row:2}}
@media(max-width:650px){:root{font-size:15px}.shell{display:block}.sidebar{inset:auto 0 0;width:100%;height:auto;display:block;padding:5px 8px max(6px,env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line)}.sidebar .brand,.sidebar-footer{display:none}.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.nav button{flex-direction:column;justify-content:center;gap:5px;padding:8px 3px;min-height:56px;font-size:.66rem;border-radius:8px}.nav button svg{width:20px;height:20px}.workspace{padding:0 17px 110px}.topbar{height:71px;margin-bottom:26px}.topbar .brand-mobile{display:block;width:149px}.topbar .breadcrumb{display:none}.private-status{font-size:.74rem}.page-head{gap:12px;margin-bottom:23px;align-items:flex-start}.page-head h1{font-size:1.7rem}.page-head p{font-size:.83rem;max-width:29ch}.page-head>.pill{margin-top:5px;font-size:.69rem}.editor{padding:20px 17px;border-radius:11px}.section-heading h2{font-size:1.03rem}.editor-actions{flex-wrap:wrap}.editor-actions .primary{flex-basis:100%;order:-1;min-height:50px}.editor-actions .secondary{flex:1;font-size:.83rem}.fields{gap:13px}.line-numbers{gap:10px}.line-total{font-size:.92rem}.form-section+.form-section{margin-top:22px}.line-item{padding-top:14px}.field{font-size:.81rem}input,select,textarea{font-size:16px;padding:11px 10px}.editor-total{padding:22px 0}.toolbar{gap:10px}.toolbar .muted{font-size:.75rem}.row-heading{display:none}.invoice-row{padding:18px 17px;gap:9px;grid-template-columns:1fr 1fr 18px}.invoice-row>.row-customer{grid-column:1;grid-row:2}.invoice-row>.row-status{grid-column:2;grid-row:2;text-align:right}.invoice-row>.amount{grid-column:2;grid-row:1}.invoice-row>.icon{grid-column:3;grid-row:1/3}.invoice-row small{font-size:.73rem}.invoice-row .row-customer strong{font-weight:400;font-size:.85rem}.document-layout{gap:24px}.document-layout .paper{padding:24px 18px}.document-layout .paper-parties{font-size:12px;padding:12px 9px}.document-layout .paper-table{font-size:12px}.document-layout .paper-table th{font-size:8px}.document-layout .paper-table small{font-size:10px}.document-layout .paper-label{font-size:9px}.document-layout .paper-title{font-size:11px}.document-layout .paper-title b{font-size:27px}.document-layout .paper-thanks{margin-top:80px}.action-panel>.primary{min-height:52px}.settings-block{padding:22px 18px}.audit-summary{padding:17px;align-items:flex-start;flex-direction:column}.audit-event{grid-template-columns:30px 1fr;gap:10px}.audit-event time{grid-column:2;grid-row:2;text-align:left;margin-top:-6px}.toast{bottom:90px;min-width:260px;text-align:center;font-size:.82rem}.fields.three{grid-template-columns:1fr}.paper-header{gap:7px}.paper-title{white-space:nowrap}.back{margin-bottom:12px}.audit-event pre{max-width:100%;word-break:break-word}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.catalog-edit{float:right;font-size:.75rem;margin:-12px -8px 0 8px}.catalog-entry{display:flow-root}
.invoice-row>div{min-width:0;overflow-wrap:anywhere}.paper-table{table-layout:fixed}.paper-table th:first-child{width:49%}.paper-table td{overflow-wrap:anywhere}.catalog-entry{overflow-wrap:anywhere}

/* Full-screen, reflowing invoice reader. No PDF viewer is required. */
.reader-open{overflow:hidden}
.invoice-reader{--reader-font:18px;position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--bg);color:var(--ink);overflow:hidden}
.invoice-reader[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.invoice-reader[data-size="1"]{--reader-font:21.6px}.invoice-reader[data-size="2"]{--reader-font:25.2px}.invoice-reader[data-size="3"]{--reader-font:28.8px}
.reader-toolbar{background:var(--paper);border-bottom:1px solid var(--line);padding:max(12px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));z-index:1}
.reader-top,.reader-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:900px;margin:auto}
.reader-top{margin-bottom:12px}.reader-top>div{text-align:right}.reader-top h2{font-size:1rem;margin:0 0 2px}.reader-top span{font-size:.76rem;color:var(--muted)}
.reader-top button{padding-inline:14px}.reader-controls button{min-width:44px;min-height:44px;padding:8px 12px;font-size:14px}
.reader-modes,.reader-type{display:flex;align-items:center;gap:4px}.reader-modes{padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:10px}.reader-modes button{border-color:transparent;background:transparent}
.reader-modes button[aria-pressed="true"]{background:var(--paper);border-color:var(--line);color:var(--accent)}
.reader-type{gap:5px}.reader-type button{font-size:17px}.reader-size{font-size:12px;min-width:34px;text-align:center;font-variant-numeric:tabular-nums}
.reader-scroll{overflow:auto;overscroll-behavior:contain;padding:20px max(18px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));scrollbar-gutter:stable}
.reader-caption,.reader-sheet-hint,.reader-warning{max-width:650px;margin:0 auto 18px;font-size:14px;line-height:1.5;color:var(--muted)}
.reader-warning{color:var(--error);font-weight:650}.reader-sheet-hint{color:var(--accent)}
.reader-document{font-size:var(--reader-font);line-height:1.55;max-width:650px;margin:0 auto;background:var(--paper);padding:32px;border:1px solid var(--line);overflow-wrap:anywhere}
.reader-logo{width:210px;max-width:90%;display:block;margin-bottom:30px}
.reader-invoice-heading h2{font-size:1.45em;line-height:1.25;margin:0 0 12px}.reader-invoice-heading p{margin:0 0 25px}
.reader-parties{background:var(--cream);padding:20px;margin-bottom:12px;display:grid;gap:22px}
.reader-document h3{font-size:1em;margin:0 0 6px;line-height:1.35}.reader-parties h3{color:var(--accent);font-size:.86em}
.reader-parties p{white-space:pre-line;margin:0}.reader-line{padding:22px 0;border-bottom:1px solid var(--line)}
.reader-line>p{font-size:.88em;color:var(--muted);margin:0 0 14px}.reader-line dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}
.reader-line dt{font-size:.76em;color:var(--muted)}.reader-line dd{margin:3px 0 0;font-variant-numeric:tabular-nums}.reader-line dd strong{font-weight:650}
.reader-total{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:28px 0;color:var(--accent)}
.reader-total>span{font-weight:600}.reader-total strong{font-size:1.65em;line-height:1.2;font-variant-numeric:tabular-nums}
.reader-bank p{white-space:pre-line}.reader-thanks{margin:35px 0 0;padding-top:18px;border-top:1px solid var(--line);font-size:.9em}
.reader-sheet{font-size:var(--reader-font);width:max-content;min-width:100%;padding-bottom:10px}
.reader-sheet .paper{width:44em;margin:auto;padding:3em;aspect-ratio:210/297}
.reader-sheet .paper-header{gap:1em}.reader-sheet .paper-title{font-size:.85em;white-space:normal}.reader-sheet .paper-title b{font-size:2.5em}
.reader-sheet .paper-parties{font-size:1em;padding:1.1em;gap:1em;margin:2em 0}.reader-sheet .paper-label{font-size:.7em;margin-bottom:.7em}
.reader-sheet .paper-table{font-size:1em}.reader-sheet .paper-table th{font-size:.65em;padding-bottom:1em}.reader-sheet .paper-table td{padding:.9em 0}.reader-sheet .paper-table .n{padding-left:.5em}.reader-sheet .paper-table small{font-size:.8em;margin-top:.3em}
.reader-sheet .paper-sum{margin-top:1.5em;gap:1.5em}.reader-sheet .paper-sum span{font-size:.75em}.reader-sheet .paper-sum strong{font-size:2.1em}.reader-sheet .paper-thanks{font-size:.9em;margin-top:6em;padding-top:1em}
@media(max-width:650px){.reader-toolbar{padding-inline:12px}.reader-controls{gap:8px}.reader-controls button{padding-inline:9px}.reader-scroll{padding-inline:12px;scrollbar-gutter:auto}.reader-document{padding:23px 19px}.reader-parties{padding:17px 15px}.reader-line dl{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.invoice-reader[data-size="2"] .reader-line dl,.invoice-reader[data-size="3"] .reader-line dl{grid-template-columns:1fr 1fr}.reader-logo{width:185px}.reader-caption,.reader-sheet-hint,.reader-warning{padding-inline:7px}}
@media(max-width:350px){.reader-size{display:none}}

.draft-conflict {display:block;margin-bottom:24px;}
.draft-conflict p {margin:12px 0;}
.correction-dialog {width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;border:1px solid var(--line,#ddd);border-radius:16px;background:var(--bg,#fbf7f0);color:var(--ink,#2c3620);}
.correction-dialog::backdrop {background:rgb(20 25 15 / 55%);}
.correction-top {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.correction-dialog h2 {margin:20px 0 12px;}
.correction-dialog .field {margin-bottom:16px;}
.correction-dialog .line-item {margin:16px 0;}
.correction-dialog .meta-list dd {white-space:pre-line;overflow-wrap:anywhere;}
@media(max-width:540px){.correction-dialog{padding:20px 16px;}.correction-dialog .editor-actions{flex-direction:column;}}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: oklch(23% .012 105);
  --paper: oklch(28% .012 105);
  --ink: oklch(94% .015 85);
  --muted: oklch(78% .023 95);
  --line: oklch(47% .019 95);
  --cream: oklch(33% .025 91);
  --soft: oklch(34% .042 43);
  --accent: oklch(79% .115 46);
  --accent-dark: oklch(85% .095 46);
  --good: oklch(83% .09 140);
  --error: oklch(82% .11 27);
}
[data-theme="dark"] :is(.pill.good,.notice.success) {background:oklch(31% .045 140)}
[data-theme="dark"] :is(.pill.danger,.notice.error) {background:oklch(31% .045 27);border-color:var(--line)}
[data-theme="dark"] :is(.brand img,.brand-mobile,.auth-controls img,.reader-logo) {filter:brightness(1.85) saturate(.75)}
.paper {color-scheme:light;--paper:oklch(99% .003 85);--cream:#efe3ce;--line:#deded5}


.theme-switch {display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:6px 8px;font-size:.83rem;background:transparent;border-color:transparent;color:var(--ink)}
.theme-track {display:inline-flex;align-items:center;width:34px;height:20px;padding:2px;border:1px solid var(--muted);border-radius:20px}
.theme-track::after {content:"";width:14px;height:14px;border-radius:50%;background:var(--muted)}
.theme-switch[aria-checked="true"] .theme-track {background:var(--accent);border-color:var(--accent);justify-content:flex-end}
.theme-switch[aria-checked="true"] .theme-track::after {background:var(--bg)}



/* Acceso */
.auth-page {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 32px 20px;
  background: var(--paper);
}
.auth-form { width: 100%; max-width: 390px; }
.auth-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 32px;
}
.auth-controls img { width: clamp(128px, 37vw, 170px); height: auto; }
.auth-form .primary { width: 100%; margin-top: 12px; }
.auth-form .field > label { font-weight: 700; }
.auth-form .inline-error:empty { display: none; }
@media (max-width: 650px) {
  .auth-page { align-items: start; padding-top: clamp(28px, 8dvh, 72px); }
}
