:root{--bg: #ffffff;--bg-sunken: #f5f6f8;--bg-raised: #ffffff;--border: #d3d7de;--border-strong: #9aa1ad;--text: #16191d;--text-muted: #5b6270;--accent: #14497a;--accent-hover: #0e3559;--accent-bg: #e8effa;--danger: #9a2515;--danger-bg: #fdecea;--warn: #7a4c05;--warn-bg: #fdf3e2;--ok: #1d5c37;--ok-bg: #e7f4ec;--radius: 6px;--focus: #14497a;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text);background:var(--bg-sunken)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:3px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--bg);color:var(--accent);padding:.75rem 1rem;z-index:100}.skip-link:focus{left:0}h1,h2,h3{line-height:1.25;margin:0 0 .5rem;font-weight:600}h1{font-size:1.5rem}h2{font-size:1.175rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--accent)}a:hover{color:var(--accent-hover)}.app-header{background:var(--bg);border-bottom:1px solid var(--border);padding:.875rem 1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.app-header .brand{font-weight:600;font-size:1rem;color:var(--text);text-decoration:none}.app-header .spacer{flex:1}.app-header .who{color:var(--text-muted);font-size:.875rem}main{padding:1.5rem;max-width:1600px;margin:0 auto}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem}.row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.stack{display:flex;flex-direction:column;gap:.75rem}.between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}label{display:block;font-weight:500;margin-bottom:.25rem;font-size:.9rem}.hint{color:var(--text-muted);font-size:.825rem;font-weight:400;margin-top:.25rem}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.5rem .625rem;width:100%;min-height:2.5rem}input[type=file]{padding:.375rem}textarea{min-height:5rem;resize:vertical}.field{min-width:180px;flex:1}.field-sm{min-width:120px;flex:0 1 160px}button{font:inherit;font-weight:500;cursor:pointer;border-radius:var(--radius);border:1px solid transparent;padding:.5rem 1rem;min-height:2.5rem;background:var(--accent);color:#fff}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--bg);color:var(--accent);border-color:var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--accent-bg)}button.subtle{background:none;color:var(--accent);border-color:transparent;padding:.25rem .5rem;min-height:2rem;text-decoration:underline}button.danger{background:var(--danger)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table{border-collapse:collapse;width:100%;font-size:.875rem}caption{text-align:left;padding:.75rem;color:var(--text-muted);font-size:.875rem}th,td{text-align:left;padding:.5rem .625rem;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--bg-sunken);font-weight:600;position:sticky;top:0;z-index:1;border-bottom:2px solid var(--border-strong)}tbody tr:hover{background:var(--bg-sunken)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono);white-space:nowrap}tr.flagged td{background:var(--warn-bg)}tr.flagged:hover td{background:#fbeacd}tr.excluded td{color:var(--text-muted);font-style:italic}.badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap;border:1px solid transparent}.badge-ok{background:var(--ok-bg);color:var(--ok);border-color:#b6ddc5}.badge-warn{background:var(--warn-bg);color:var(--warn);border-color:#e8cf9f}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:#f0bdb6}.badge-neutral{background:var(--bg-sunken);color:var(--text-muted);border-color:var(--border)}.notice{padding:.75rem 1rem;border-radius:var(--radius);border:1px solid;margin-bottom:1rem}.notice-error{background:var(--danger-bg);border-color:#f0bdb6;color:var(--danger)}.notice-info{background:var(--accent-bg);border-color:#b9cdea;color:var(--accent)}.notice-warn{background:var(--warn-bg);border-color:#e8cf9f;color:var(--warn)}.notice-ok{background:var(--ok-bg);border-color:#b6ddc5;color:var(--ok)}.stats{display:flex;gap:1.5rem;flex-wrap:wrap}.stat{min-width:140px}.stat dt{color:var(--text-muted);font-size:.8rem;margin-bottom:.125rem}.stat dd{margin:0;font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem;flex-wrap:wrap}.tabs button{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--text-muted);padding:.625rem .875rem}.tabs button:hover{background:var(--bg-sunken);color:var(--text)}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.muted{color:var(--text-muted)}.small{font-size:.825rem}.mono{font-family:var(--mono)}.nowrap{white-space:nowrap}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}dialog{border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;max-width:640px;width:92vw;color:var(--text)}dialog::backdrop{background:#00000073}ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:.375rem 0;border-bottom:1px solid var(--border)}ul.plain li:last-child{border-bottom:none}.lines-table{table-layout:fixed;min-width:1496px}.lines-table .col-ref{width:56px}.lines-table .col-element{width:150px}.lines-table .col-description{width:320px}.lines-table .col-amount{width:130px}.lines-table .col-date,.lines-table .col-period{width:150px}.lines-table .col-source{width:200px}.lines-table .col-status{width:150px}.lines-table .col-actions{width:190px;white-space:nowrap}.lines-table td{overflow-wrap:break-word}.lines-table .col-source .filename{overflow-wrap:anywhere}.lines-table .col-actions button{padding:.25rem .375rem}.cell-input{border:1px solid transparent;background:transparent;padding:.25rem;min-height:2rem}.cell-input:hover{border-color:var(--border);background:var(--bg)}.cell-input:focus{border-color:var(--border-strong);background:var(--bg)}.lines-table .col-amount .cell-input{font-family:var(--mono);font-variant-numeric:tabular-nums}.cell-textarea{resize:none;overflow:hidden;line-height:1.4;min-height:2rem}.demo-banner{background:var(--warn-bg);border-bottom:2px solid var(--warn);color:var(--warn);padding:.625rem 1.5rem;font-size:.875rem;text-align:center}
