*,:after,:before{box-sizing:border-box}html{font-family:var(--font-sans);font-size:16px;color:var(--color-text);background:var(--color-surface-sunken);-webkit-font-smoothing:antialiased}body{margin:0;min-height:100vh}a{color:var(--color-brand-600)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.skip-link{position:absolute;left:var(--space-2);top:-100px;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);z-index:10}.skip-link:focus{top:var(--space-2)}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.shell__nav{background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.shell__brand{font-weight:700;font-size:var(--font-size-lg);color:var(--color-brand-600);margin-bottom:var(--space-4)}.shell__link{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-decoration:none;color:var(--color-text)}.shell__link:hover{background:var(--color-surface-raised)}.shell__link[aria-current=page]{background:var(--color-brand-50);color:var(--color-brand-900);font-weight:600}.shell__footer{margin-top:auto;font-size:var(--font-size-xs);color:var(--color-text-muted);word-break:break-all}.shell__main{padding:var(--space-8);max-width:1200px;width:100%}@media (max-width:800px){.shell{grid-template-columns:1fr}.shell__nav{border-right:0;border-bottom:1px solid var(--color-border)}.shell__main{padding:var(--space-4)}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.page-header h1{margin:0;font-size:var(--font-size-2xl)}.page-header p{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card+.card,.card+.table-wrap,.table-wrap+.card{margin-top:var(--space-5)}.card__title{margin:0 0 var(--space-3);font-size:var(--font-size-md);color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.card--tone-success{border-color:var(--color-success)}.card--tone-danger{border-color:var(--color-danger)}.card--tone-warning{border-color:var(--color-warning)}.grid{display:grid;grid-gap:var(--space-5);gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.alert{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);border:1px solid;margin-bottom:var(--space-5)}.alert--info{background:var(--color-info-bg);border-color:var(--color-info);color:var(--color-text)}.alert--warning{background:var(--color-warning-bg);border-color:var(--color-warning)}.alert--danger{background:var(--color-danger-bg);border-color:var(--color-danger)}.alert--success{background:var(--color-success-bg);border-color:var(--color-success)}.alert__meta{display:block;margin-top:var(--space-1);color:var(--color-text-muted);font-family:var(--font-mono)}.alert__meta,.badge{font-size:var(--font-size-xs)}.badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-pill);font-weight:600;line-height:1.6;white-space:nowrap}.badge--neutral{background:var(--color-surface-sunken);color:var(--color-text-muted)}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.money{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:var(--font-mono);white-space:nowrap}.money--negative{color:var(--color-danger)}.money--positive{color:var(--color-success)}.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat__label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.stat__value{font-size:var(--font-size-xl);font-weight:600}.table-wrap{overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table td,.table th{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:top}.table th{color:var(--color-text-muted);font-weight:600;background:var(--color-surface-raised)}.table tbody tr:last-child td{border-bottom:0}.table td.is-numeric,.table th.is-numeric{text-align:right}.mono{font-family:var(--font-mono);font-size:var(--font-size-xs);word-break:break-all}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm)}.field__label{font-weight:600}.field__help,.field__label{color:var(--color-text-muted)}.field__error,.field__help{font-size:var(--font-size-xs)}.field__error{color:var(--color-danger)}.input,.select{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);min-width:10rem}.filters{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-bottom:var(--space-5)}.button{font:inherit;font-weight:600;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-2)}.button--primary{background:var(--color-brand-500);color:var(--color-on-brand)}.button--primary:hover{background:var(--color-brand-600)}.button--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button--secondary:hover{background:var(--color-surface-raised)}.button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed}.pagination{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-4)}.empty{padding:var(--space-10);text-align:center;color:var(--color-text-muted)}.dl{display:grid;grid-template-columns:max-content 1fr;grid-gap:var(--space-2) var(--space-5);gap:var(--space-2) var(--space-5);margin:0;font-size:var(--font-size-sm)}.dl dt{color:var(--color-text-muted)}.dl dd{margin:0}