.btn{display:inline-flex;align-items:center;gap:var(--space-xs);font:500 var(--text-sm) var(--font-body);padding:.55rem 1rem;border-radius:var(--radius-md);border:1.5px solid var(--color-ink);background:var(--color-ink);color:var(--color-paper);cursor:pointer;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.btn.is-hover,.btn:hover{background:var(--color-forest);border-color:var(--color-forest)}.btn.is-active,.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn[data-state=loading]{opacity:.7;pointer-events:none}.btn[data-state=error]{background:var(--color-danger);border-color:var(--color-danger)}.btn[data-state=success]{background:var(--color-ok);border-color:var(--color-ok)}.btn--ghost{background:transparent;color:var(--color-ink);border-color:oklch(80% .015 100)}.btn--ghost:hover{background:var(--color-paper-3);border-color:var(--color-ink-soft);color:var(--color-ink)}.btn--danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.btn--danger:hover{background:var(--color-danger);color:var(--color-paper)}.btn--brass{background:var(--color-accent-ink);border-color:var(--color-accent-ink)}.btn--brass:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-ink)}.field{display:grid;grid-gap:var(--space-2xs);gap:var(--space-2xs)}.field>label{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-soft)}.field>.pw>input,.field>input,.field>select,.field>textarea{font:400 var(--text-base) var(--font-body);color:var(--color-ink);background:var(--color-paper);border:var(--rule-hairline);border-radius:var(--radius-md);padding:.55rem .75rem;min-width:0}.field>.pw>input:hover,.field>input:hover,.field>select:hover{border-color:var(--color-ink-faint)}.field>.pw>input:disabled,.field>input:disabled{background:var(--color-paper-3);color:var(--color-ink-faint)}.field.is-error>.pw>input,.field.is-error>input,.field.is-error>select{border-color:var(--color-danger)}.field>.pw{position:relative;display:block}.field>.pw>input{width:100%;padding-right:2.6rem}.pw-toggle{position:absolute;top:50%;right:.35rem;transform:translateY(-50%);display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink-faint);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.pw-toggle:hover{color:var(--color-ink);background:var(--color-paper-3)}.field .field-error{color:var(--color-danger);font-size:var(--text-xs)}.field .field-hint{color:var(--color-ink-faint);font-size:var(--text-xs)}.field input.money-input{font-family:var(--font-mono);text-align:right}.tbl{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.tbl th{text-align:left;font:600 var(--text-xs) var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-soft);padding:var(--space-xs) var(--space-sm);border-bottom:var(--rule-strong);white-space:nowrap}.tbl td.num,.tbl th.num{text-align:right}.tbl td{padding:var(--space-sm);border-bottom:var(--rule-hairline);vertical-align:top}.tbl tbody tr{transition:background var(--dur-fast) var(--ease-out)}.tbl tbody tr:hover{background:var(--color-paper-3)}.tbl tbody tr.is-clickable{cursor:pointer}.tbl-wrap{overflow-x:auto}.badge{display:inline-block;font:600 var(--text-xs) var(--font-body);letter-spacing:.04em;padding:.14rem .55rem;border-radius:999px;white-space:nowrap}.badge--ok{background:var(--color-ok-soft);color:var(--color-ok)}.badge--warn{background:var(--color-warn-soft);color:oklch(45% .1 70)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge--info{background:var(--color-info-soft);color:oklch(45% .06 240)}.badge--muted{background:var(--color-paper-3);color:var(--color-ink-soft)}.page{padding:var(--space-xl);max-width:1180px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.page-head h1{font-size:var(--text-2xl)}.page-head .meta{margin-top:var(--space-2xs)}.toolbar{display:flex;gap:var(--space-sm);align-items:end;flex-wrap:wrap;margin-bottom:var(--space-md)}.toolbar .field{min-width:10rem}.spacer{flex:1 1}.empty{border:1.5px dashed oklch(84% .015 100);border-radius:var(--radius-lg);padding:var(--space-2xl);text-align:center;color:var(--color-ink-faint);font-size:var(--text-sm)}.note-error{background:var(--color-danger-soft);color:var(--color-danger)}.note-error,.note-ok{border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);margin:var(--space-sm) 0}.note-ok{background:var(--color-ok-soft);color:var(--color-ok)}.dl{display:grid;grid-template-columns:minmax(9rem,max-content) 1fr;grid-gap:var(--space-xs) var(--space-lg);gap:var(--space-xs) var(--space-lg);font-size:var(--text-sm)}.dl dt{color:var(--color-ink-faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding-top:.15rem}.dl dd{margin:0;min-width:0;overflow-wrap:anywhere}.modal-scrim{position:fixed;inset:0;background:oklch(20% .02 160/.45);display:grid;place-items:center;z-index:50;animation:scrim-in var(--dur-fast) var(--ease-out)}.modal{background:var(--color-paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:var(--rule-hairline);width:min(34rem,calc(100vw - 2rem));max-height:85vh;overflow-y:auto;padding:var(--space-lg);animation:modal-in var(--dur-med) var(--ease-out)}.modal h2{font-size:var(--text-xl);margin-bottom:var(--space-md)}.modal .modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg)}@keyframes scrim-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}}.pager{display:flex;gap:var(--space-xs);align-items:center;margin-top:var(--space-md);font-size:var(--text-sm)}.pager button{font:500 var(--text-sm) var(--font-body);background:none;border:var(--rule-hairline);border-radius:var(--radius-sm);padding:.2rem .6rem;cursor:pointer;color:var(--color-ink)}.pager button[aria-current=page]{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.pager button:disabled{opacity:.4;cursor:default}.shell{display:grid;grid-template-columns:15rem 1fr;min-height:100vh}.side{border-right:var(--rule-hairline);padding:var(--space-lg) var(--space-md);display:flex;flex-direction:column;gap:var(--space-2xs);background:var(--color-paper-2)}.side .wordmark{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:.01em;margin-bottom:var(--space-lg);color:var(--color-forest)}.side .wordmark em{font-style:normal;color:var(--color-accent-ink)}.side a{text-decoration:none;color:var(--color-ink-soft);font-size:var(--text-sm);padding:.42rem var(--space-sm);border-radius:var(--radius-md)}.side a:hover{background:var(--color-paper-3);color:var(--color-ink)}.side a.is-active{background:var(--color-forest);color:var(--color-paper)}.side .side-group{margin-top:var(--space-md)}.side .side-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-faint);padding:0 var(--space-sm) var(--space-2xs)}.side .side-foot{margin-top:auto;padding-top:var(--space-lg)}@media (max-width:768px){.shell{grid-template-columns:1fr}.side{flex-direction:row;overflow-x:auto;align-items:center;border-right:none;border-bottom:var(--rule-hairline)}.side .side-group,.side .side-label{margin:0}.side .side-foot{margin:0;padding:0}.page{padding:var(--space-md)}.dl{grid-template-columns:1fr}}@media print{.btn,.pager,.side,.side-foot,.toolbar{display:none!important}.shell{display:block!important}.page{padding:0!important}.card,.tbl-wrap{box-shadow:none!important;border:none!important}body{background:#fff!important}}