.app{max-width:960px;margin:1.75rem auto;padding:0 1.5rem}.app.wide{max-width:none;margin:1.25rem 1.75rem}.app header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.6rem;margin-bottom:1rem}.app h1{font-size:1.3rem;font-weight:650}.app h2{font-size:1.05rem;margin:1.5rem 0 .5rem}.app header nav{display:flex;flex-wrap:wrap;gap:.15rem .2rem;font-size:.83rem;align-items:baseline}.app header nav a,.app header nav strong{padding:.1rem .45rem;border-radius:99px}.app header nav a:hover{background:var(--accent-soft);text-decoration:none}.app header nav strong{background:var(--accent-soft);color:var(--accent-soft-ink);font-weight:600}.subtabs{display:flex;flex-wrap:wrap;gap:.15rem .2rem;font-size:.83rem;align-items:baseline;margin:.35rem 0 .25rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-soft)}.subtabs a,.subtabs strong{padding:.1rem .45rem;border-radius:99px}.subtabs a:hover{background:var(--accent-soft);text-decoration:none}.subtabs strong{background:var(--accent-soft);color:var(--accent-soft-ink);font-weight:600}.app code{background:var(--border-soft);padding:.1em .4em;border-radius:4px}.center{text-align:center;margin-top:4rem;color:var(--muted)}.note{font-size:.83rem;color:var(--muted);margin-bottom:.5rem}p.warn,p.error{font-size:.85rem;padding:.45rem .7rem;border-radius:var(--radius-sm);margin:.5rem 0}p.warn{color:var(--warn-ink);background:var(--warn-soft);border:1px solid #f0e2c0}p.error{color:var(--danger);background:var(--danger-soft);border:1px solid #f4cdc9}span.error{color:var(--danger);font-size:.9em}.empty{color:var(--muted);font-size:.9rem;text-align:center;padding:1.5rem 0}.panel.loading{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem;padding:1rem 0}.kv-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:.3rem 0 .5rem}.kv-table td{padding:.3rem .5rem .3rem 0;border-bottom:1px solid var(--border-soft);vertical-align:top}.kv-table td:first-child{color:var(--muted);white-space:nowrap;width:1%;padding-right:1.2rem}.login{display:flex;justify-content:center;margin-top:14vh}.login form{display:flex;flex-direction:column;gap:.85rem;width:300px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #1018280f;padding:1.75rem 1.5rem}.login h1{font-size:1.25rem;margin-bottom:.25rem}.login label{display:flex;flex-direction:column;gap:.3rem;font-size:.83rem;color:var(--muted)}.login button[type=submit]{margin-top:.4rem;padding:.5rem;display:inline-flex;justify-content:center;align-items:center;gap:.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.7rem;margin:1rem 0}.card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.8rem 1rem;color:var(--ink);transition:border-color .15s,box-shadow .15s}.card:hover{text-decoration:none;border-color:#c6d4f7;box-shadow:0 3px 10px #2563eb14}.card code{background:none;padding:0;font-size:.95rem;color:var(--accent-soft-ink)}.card .card-sub{display:block;font-size:.78rem;color:var(--muted);margin-top:.15rem}.home-scroll{overflow-x:auto}.home-table th.num,.home-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.home-table tbody th{background:none;font-size:.84rem}.home-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.home-table th.sortable:hover{color:var(--ink)}.home-table td.pos{color:var(--ok)}.home-table td.neg{color:var(--danger)}.home-table .chg-rel{display:block;font-size:.76rem;color:var(--muted)}.home-table td.private,.data-table td.private,.totals-strip .total-value.private{filter:blur(6px);-webkit-user-select:none;user-select:none;transition:filter .12s ease}.app header .header-right{display:inline-flex;align-items:center;gap:.6rem}.tab-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.tab-head .actions{display:inline-flex;align-items:center;gap:.6rem}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:.28rem;line-height:0;color:var(--muted)}.icon-btn:hover:not(:disabled){color:var(--ink)}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:#c6d4f7;background:var(--accent-soft)}.view-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.25rem;padding:.3rem .6rem;background:var(--surface);border-bottom:1px solid var(--border)}.mover-table{min-width:0;overflow-x:auto}.summary-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.summary-date{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.summary-date input[type=date]{font-size:.85rem}.toolbar{display:flex;align-items:center;gap:.45rem;margin:.6rem 0;font-size:.85rem;color:var(--muted)}.toolbar .spacer{flex:1}.toolbar button{padding:.25rem .6rem}.toolbar .hide-zero{display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap;cursor:pointer}.totals-strip{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.4rem;margin:0 0 .7rem;padding:.55rem .85rem;background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius)}.totals-strip .totals-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-soft-ink)}.totals-strip .total-item{display:inline-flex;align-items:baseline;gap:.4rem}.totals-strip .total-name{font-size:.78rem;color:var(--muted)}.totals-strip .total-value{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.totals-strip .total-value.neg{color:var(--danger)}.table-scroll{position:relative;overflow:auto;max-height:76vh;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.progress{height:2px;margin-bottom:-2px;position:relative;z-index:3;overflow:hidden;border-radius:2px;visibility:hidden}.progress.active{visibility:visible}.progress:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform-origin:left;animation:indeterminate 1.1s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-100%) scaleX(.4)}50%{transform:translate(30%) scaleX(.5)}to{transform:translate(105%) scaleX(.6)}}.data-table table{border-collapse:separate;border-spacing:0;font-size:.84rem;white-space:nowrap;width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);padding:.32rem .6rem;text-align:left;max-width:28rem;overflow:hidden;text-overflow:ellipsis}.data-table th:last-child,.data-table td:last-child{border-right:none}.data-table thead th{position:sticky;top:0;z-index:2;height:2.2rem;background:#f9fafb;border-bottom:1px solid var(--border);font-size:.78rem;font-weight:600;color:var(--muted)}.data-table thead .filter-row th{top:2.2rem;height:2.3rem;background:var(--surface)}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{color:var(--ink)}.col-filter{display:flex;align-items:center;gap:.2rem;width:100%;max-width:8.5rem;padding:.15rem .3rem;font-size:.72rem;font-weight:500;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer}.col-filter:hover{border-style:solid;color:var(--ink)}.col-filter.on{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-ink);font-weight:600}.col-filter-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.col-filter-caret{opacity:.6}.col-filter-pop{z-index:30;display:flex;flex-direction:column;gap:.35rem;padding:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #10182824;font-weight:400;color:var(--ink)}.col-filter-pop select,.col-filter-pop input[type=text],.col-filter-pop input[type=number],.col-filter-pop input[type=date],.col-filter-pop input[type=datetime-local]{width:100%;font-size:.8rem;padding:.25rem .35rem}.col-filter-values{display:flex;flex-direction:column;gap:.15rem;max-height:11rem;overflow-y:auto;padding:.25rem;border:1px solid var(--border-soft);border-radius:var(--radius-sm);font-size:.8rem}.col-filter-values label{display:flex;align-items:center;gap:.3rem;cursor:pointer}.col-filter-actions{display:flex;justify-content:space-between;gap:.35rem}.col-filter-actions button{flex:1;font-size:.78rem;padding:.22rem .4rem}.data-table tbody tr:hover td{background:#f8fafc}.data-table tbody.dim{opacity:.45;transition:opacity .2s}.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.data-table td.editable{cursor:pointer}.data-table tbody tr:hover td.editable{background:#fffaeb}.data-table td.live-cell,.data-table tbody tr:hover td.live-cell{background:var(--accent-soft);color:var(--accent-soft-ink)}.data-table tbody.pinned-body td,.data-table tbody.pinned-body tr:hover td{background:var(--accent-soft);color:var(--accent-soft-ink);font-weight:600;border-bottom:2px solid var(--accent);cursor:default}.data-table td.frozen,.data-table th.frozen{position:sticky;z-index:1}.data-table tbody td.frozen{background:var(--surface)}.data-table tbody tr:hover td.frozen{background:#f8fafc}.data-table tbody tr:hover td.frozen.editable{background:#fffaeb}.data-table td.frozen.live-cell,.data-table tbody tr:hover td.frozen.live-cell,.data-table tbody.pinned-body td.frozen,.data-table tbody.pinned-body tr:hover td.frozen{background:var(--accent-soft)}.data-table thead th.frozen{z-index:4;background:#f9fafb}.data-table thead .filter-row th.frozen{background:var(--surface)}.data-table td.frozen-last,.data-table th.frozen-last{border-right:1px solid var(--border);box-shadow:2px 0 5px -2px #0f172a2e}.live-badge{font-size:.68em;font-weight:600;letter-spacing:.02em;background:#dbe7fe;color:var(--accent-soft-ink);border-radius:99px;padding:.05em .5em;margin-left:.4em;vertical-align:middle}.cfg-badge{font-size:.68em;font-weight:600;letter-spacing:.02em;background:var(--warn-soft);color:var(--warn-ink);border-radius:99px;padding:.05em .5em;margin-left:.4em;vertical-align:middle;cursor:help}.data-table td input:not([type=checkbox]){width:100%;font-size:inherit;padding:.05rem .25rem;border-color:var(--accent);box-shadow:none;border-radius:4px}.skeleton-row td .skeleton{width:65%}.skeleton-row:nth-child(2n) td .skeleton{width:45%}.skeleton-row:nth-child(3n) td .skeleton{width:80%}.add-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1.1rem;margin:.6rem 0}.add-form-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.65rem}.add-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--muted)}.add-form label.app-col{border-left:2px solid var(--warn-ink);padding-left:.5rem}.add-form .field-help{font-size:.72rem;font-weight:400;color:var(--muted);line-height:1.3}.add-form button[type=submit]{margin-top:.7rem}.reconcile-table{border-collapse:separate;border-spacing:0;width:100%;margin-bottom:1.5rem;font-size:.86rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.reconcile-table th,.reconcile-table td{border-bottom:1px solid var(--border-soft);padding:.4rem .7rem;text-align:left}.reconcile-table tbody tr:last-child td{border-bottom:none}.reconcile-table th{background:#f9fafb;border-bottom:1px solid var(--border);font-size:.78rem;font-weight:600;color:var(--muted)}.reconcile-table tbody tr:hover td{background:#f8fafc}.reconcile-table tbody tr.clickable{cursor:pointer}.sync-runs .toolbar{flex-wrap:wrap}.sync-runs .toolbar .checkbox{display:inline-flex;align-items:center;gap:.3rem}.sync-runs tbody.dim{opacity:.45;transition:opacity .2s}.diff-detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.25rem 1.1rem 1.1rem;margin-bottom:1.5rem}.diff-detail h3{margin-top:.85rem}.diff-detail h4{margin:.8rem 0 .3rem;font-size:.9rem}.diff-detail table{border-collapse:collapse;font-size:.83rem}.diff-detail td,.diff-detail th{border:1px solid var(--border-soft);padding:.25rem .5rem}.tab-bar{display:flex;gap:.35rem;margin-bottom:.9rem}.tab-bar button{padding:.28rem .9rem;border-radius:99px}.tab-bar button.active{background:var(--accent-soft);color:var(--accent-soft-ink);border-color:#c6d4f7;font-weight:600}.live-toggle{display:inline-flex;align-items:center;gap:.3rem;color:var(--ink);-webkit-user-select:none;user-select:none}.log-view{background:#0d1526;color:#d6deec;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;line-height:1.5;padding:.6rem .8rem;height:68vh;overflow:auto}.log-line{display:flex;gap:.65rem;align-items:baseline}.log-line.log-req .log-msg{color:#8b98b1}.log-time{flex:none;color:#67748f;font-variant-numeric:tabular-nums}.log-sev{flex:none;width:2em;font-weight:600}.log-sev.sev-default{color:#67748f}.log-sev.sev-info{color:#6ea8fe}.log-sev.sev-warn{color:#e8b93c}.log-sev.sev-error{color:#f4726a}.log-msg{white-space:pre-wrap;overflow-wrap:anywhere}.log-empty{color:#67748f;padding:.5rem 0}.log-pre{background:#0d1526;color:#d6deec;border-radius:var(--radius-sm);font-size:.76rem;line-height:1.5;padding:.6rem .8rem;margin:.35rem 0;max-height:45vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.log-pre.log-pre-error{color:#f4726a}.reconcile-table td.err-cell{max-width:24rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reconcile-table tr.log-row td{background:#f8fafc;cursor:default}.diff-detail .row-scroll{overflow-x:auto;max-width:100%}.diff-detail .row-scroll table{white-space:nowrap}.diff-detail td.changed{background:var(--warn-soft)}.diff-detail td.changed s{color:var(--muted);margin-right:.45em}.bank-connections{margin-bottom:1.25rem}.bank-connections .reconcile-table{margin-bottom:.35rem}.warn-text{color:var(--warn-ink)}.connection-card,.add-bank{margin:.6rem 0;padding:.7rem .85rem}.connection-head,.add-bank-head{display:flex;align-items:center;gap:.6rem}.connection-title{display:flex;flex-direction:column;line-height:1.25}.connection-head .spacer,.add-bank-head .spacer{flex:1}.status{font-size:.78rem;color:var(--muted);text-transform:capitalize}.status-linked{color:var(--ok-ink, #2e7d32)}.status-error{color:var(--err-ink, #c62828)}.institution-list{list-style:none;margin:.5rem 0 0;padding:0;max-height:18rem;overflow-y:auto}.institution-list li{margin:0}.institution{display:flex;align-items:center;gap:.55rem;width:100%;padding:.45rem .5rem;background:none;border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer}.institution:hover{background:var(--hover, rgba(0, 0, 0, .04))}.institution img{border-radius:4px}.mapped-accounts{list-style:none;margin:.4rem 0 0;padding:0;font-size:.85rem}.account-mapper{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border)}.account-mapper .field{margin:.35rem 0}.btn-link{display:inline-flex;align-items:center;font-size:.875rem;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .8rem;box-shadow:var(--shadow)}.btn-link:hover{text-decoration:none;background:#fafbfc;border-color:#cdd3da}button.secondary{background:var(--surface)}.field{display:flex;flex-direction:column;gap:.3rem;font-size:.83rem;color:var(--muted);margin-bottom:.85rem}.field .hint{font-size:.76rem;color:var(--muted)}.field-row{display:flex;gap:.8rem;flex-wrap:wrap}.field-row .field{flex:1 1 8rem}.field-check{display:flex;align-items:center;gap:.45rem;font-size:.83rem;color:var(--muted);margin-bottom:.85rem}.field-check input{width:auto}.row-actions{white-space:nowrap;text-align:right}.row-actions .icon-btn{margin-left:.2rem}tr.row-muted{opacity:.5}.module-list{display:flex;flex-direction:column;gap:.6rem;margin:.8rem 0}.module-row{display:flex;align-items:center;gap:1rem;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.7rem .9rem}.module-row.selectable{cursor:pointer}.module-row.on{border-color:#c6d4f7;background:var(--accent-soft)}.module-row.core{opacity:.92}.module-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.module-name{font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.module-desc{font-size:.83rem;color:var(--ink)}.module-auto{font-size:.78rem;color:var(--muted)}.module-actions{flex-shrink:0}.gmail-connection{display:flex;align-items:center;gap:1rem;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.7rem .9rem;margin:.8rem 0}.gmail-connection.on{border-color:#c6d4f7;background:var(--accent-soft)}.gmail-connection .ok{color:var(--ok);font-size:.83rem;margin:.4rem 0 0}.lock,.auto-badge,.held{font-size:.7rem;font-weight:600;padding:.05rem .4rem;border-radius:99px;white-space:nowrap}.lock{background:var(--border-soft);color:var(--muted)}.auto-badge{background:var(--accent-soft);color:var(--accent-soft-ink)}.held{background:var(--ok-soft);color:var(--ok)}.cred-block{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--border)}.cred-block-head{display:flex;align-items:center;justify-content:space-between}.cred-block-head h3{font-size:.92rem}.skip-toggle{font-size:.8rem;color:var(--muted);display:inline-flex;gap:.35rem;align-items:center}.cred-fields{display:flex;flex-direction:column;gap:.7rem;margin-top:.5rem}.cred-field{display:flex;flex-direction:column;gap:.25rem}.cred-label{font-size:.82rem;font-weight:600}.cred-label .req{color:var(--danger)}.cred-label .opt{color:var(--muted);font-weight:400}.cred-help{font-size:.76rem;color:var(--muted)}.onboard{display:flex;justify-content:center;padding:4vh 1rem}.onboard-card{width:100%;max-width:640px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #1018280f;padding:1.75rem}.onboard-head h1{font-size:1.35rem;margin-bottom:.75rem}.onboard-card h2{font-size:1.1rem;margin:0 0 .5rem}.onboard-card section{margin-bottom:.5rem}.wizard-steps{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;font-size:.76rem;color:var(--muted);margin-bottom:1rem}.wizard-steps li{padding:.1rem .55rem;border-radius:99px;background:var(--border-soft)}.wizard-steps li.active{background:var(--accent);color:#fff}.wizard-steps li.done{background:var(--ok-soft);color:var(--ok)}.wizard-nav{display:flex;align-items:center;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.wizard-nav .spacer{flex:1}.review{list-style:none;font-size:.9rem;display:flex;flex-direction:column;gap:.3rem}.dead-end h2{color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182859;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{width:100%;max-width:440px;background:var(--surface);border-radius:var(--radius);box-shadow:0 12px 40px #10182833;padding:1.4rem}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.modal-head h2{font-size:1.1rem}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;margin-top:.9rem}.dup-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.dup-list li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.5rem .7rem;border:1px solid var(--border, #e4e7ec);border-radius:var(--radius)}.dup-desc{font-size:.88rem;color:var(--muted, #667085)}.dup-actions{display:flex;gap:.4rem}.modal.wide{max-width:720px;max-height:90vh;overflow-y:auto}.rule-engine{margin:1rem 0}.rule-engine>summary{cursor:pointer;font-size:1.05rem;padding:.3rem 0}.rules-table .rule-conditions{font-size:.82rem;max-width:34rem}.rules-table .rule-conditions em{color:var(--muted, #667085)}tr.rule-hit td,tr.rule-hit th{background:#ffd66640}.rule-clause{border:1px solid rgb(16 24 40 / .12);border-radius:var(--radius);padding:.6rem .8rem;margin:.6rem 0}.rule-clause legend{font-size:.85rem;padding:0 .3rem}.rule-condition{align-items:center;margin-bottom:.4rem}.rule-condition select,.rule-condition input{flex:1 1 8rem}.rule-condition .icon-btn{flex:0 0 auto}.invite-result{font-size:.9rem;display:flex;flex-direction:column;gap:.5rem}.settings-card .module-main{flex:1}.mtg-import{margin:.6rem 0}.mtg-import-head{display:flex;align-items:center;gap:.6rem;font-size:.85rem}.mtg-import-file{color:var(--muted)}.mtg-import-report{margin-top:.6rem;padding:.7rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.9rem}.mtg-import-unresolved{margin:.4rem 0 .2rem 1.2rem;font-size:.85rem;max-height:12rem;overflow-y:auto}.mtg-import .muted{color:var(--muted)}.mtg-import-actions{display:flex;gap:.6rem;margin-top:.7rem}.actions-col{white-space:nowrap;font-size:.82rem}.leading-col{white-space:nowrap}.numista-cell{display:inline-flex;align-items:center;gap:.4rem}.numista-modal{max-width:760px;max-height:85vh;overflow-y:auto}.numista-usage-line{margin:-.4rem 0 .6rem}.numista-search{display:flex;gap:.5rem;align-items:center;margin-bottom:.6rem}.numista-search input{flex:1}.numista-results{list-style:none;display:flex;flex-direction:column;gap:.3rem;margin:.4rem 0;max-height:26rem;overflow-y:auto}.numista-results button{width:100%;text-align:left;padding:.4rem .6rem;white-space:normal;overflow-wrap:anywhere}.numista-result-title{display:block;line-height:1.3}.numista-result-meta{display:block;font-size:.78rem;margin-top:.15rem}.numista-results .muted,.numista-cell .muted{color:var(--muted)}.photo-toggle{padding:.1rem .35rem;line-height:1}.reclassify-row{display:inline-flex;align-items:center;gap:.3rem}.reclassify-row button{padding:.1rem .35rem;line-height:1}.reclassify-row .muted{color:var(--muted)}.delete-row{margin-left:.4rem}.delete-row button{padding:.1rem .35rem;line-height:1}.numista-result-row{display:flex;gap:.5rem;align-items:center}.numista-result-row>button{flex:1;min-width:0}.coin-thumbs{display:inline-flex;gap:.4rem;align-items:center;flex:0 0 auto}.coin-thumbs img{display:block;height:3rem;width:auto;border-radius:4px;background:var(--surface)}.coin-thumb-missing{color:var(--muted);font-size:.8rem;opacity:.6}.numista-modal .coin-thumbs{margin:.25rem 0 .35rem}.numista-modal .coin-thumbs img{height:6rem}.numista-modal .numista-results .coin-thumbs{margin:0}.numista-modal .numista-results .coin-thumbs img{height:3.4rem}.tab-jobs{margin:0 0 .9rem;padding:.65rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.tab-jobs-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .7rem;margin-bottom:.55rem}.tab-jobs-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-soft-ink)}.tab-jobs-head .note{margin:0;font-size:.78rem}.job-dry{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--muted)}.tab-jobs-list{display:flex;flex-wrap:wrap;gap:.55rem .9rem}.job-item{display:flex;flex-direction:column;gap:.2rem;min-width:0}.job-item button{display:inline-flex;align-items:center;gap:.35rem}.job-meta{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted);line-height:1.35}.job-sched{color:var(--muted)}.job-note{color:var(--muted);font-style:italic}.job-ok{color:var(--ok)}.job-meta .error{font-size:.72rem}.steam-accounts{margin:0 0 .9rem;padding:.65rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.steam-account{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .8rem;padding:.4rem 0;border-top:1px solid var(--border)}.steam-avatar{width:28px;height:28px;border-radius:4px}.steam-account-main{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1;font-size:.82rem}.steam-account-name{font-weight:600}.steam-account-main .muted,.steam-account-main .job-ok,.steam-account-main .error{font-size:.74rem}.steam-account-actions,.steam-remove-confirm{display:inline-flex;align-items:center;gap:.4rem}.steam-add{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.steam-add input[type=text]{min-width:18rem}.steam-add .job-ok,.steam-add .error{font-size:.78rem}.skinport-connection{margin-top:1rem}.skinport-connect{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.skinport-connect input{min-width:14rem}.skinport-connect .job-ok,.skinport-connect .error{font-size:.78rem}.jobs-table td{vertical-align:top}.jobs-table .job-desc{color:var(--muted);font-size:.78rem;margin-top:.2rem;max-width:34rem}.job-tags{display:inline-flex;gap:.3rem;margin-left:.4rem}.job-tag{font-size:.66rem;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:.02em .5em;vertical-align:middle}.job-stats{white-space:nowrap}.job-status{font-size:.68rem;font-weight:600;border-radius:99px;padding:.05em .5em}.job-status.sev-error{background:#fde2e1;color:var(--neg, #b91c1c)}.job-status.sev-info{background:#dcfce7;color:var(--ok)}.job-status.sev-default{background:var(--surface);color:var(--muted)}.job-actions{white-space:nowrap}.job-actions>*{margin-right:.5rem}.job-run{display:inline-flex;align-items:center;gap:.4rem;margin-right:.5rem}.secondary-link{font-size:.82rem}.sched-editor{display:flex;flex-direction:column;gap:.6rem;padding:.4rem .2rem}.sched-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.sched-fields label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--muted)}.sched-fields input[type=number]{width:5rem}.sched-preview{font-size:.85rem}.sched-actions{display:flex;align-items:center;gap:.6rem}.sched-editor .note{margin:0}.mtg-card-cell{display:inline-flex;align-items:center;gap:.4rem}.mtg-card-cell .card-thumb img{display:block;height:21rem;width:auto;border-radius:5px;background:var(--surface)}.range-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:.75rem 0 .25rem}.range-bar button{padding:.15rem .6rem;border-radius:99px}.range-bar button.active{background:var(--accent-soft);color:var(--accent-soft-ink);border-color:var(--accent-soft);font-weight:600}.range-bar input[type=date]{font-size:.8rem;margin-left:.3rem}.range-bar .range-sep{color:var(--muted);font-size:.8rem}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:1rem;margin-top:.9rem}.chart-grid.chart-grid--2-1{grid-template-columns:2fr 1fr}@media (max-width: 820px){.chart-grid.chart-grid--2-1{grid-template-columns:1fr}}.section-head{font-size:1.05rem;margin:1.6rem 0 .2rem;padding-top:1rem;border-top:1px solid var(--border)}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.85rem 1rem .5rem;min-width:0}.chart-card.span2,.chart-card.chart-card--expanded{grid-column:1 / -1}.chart-card.bare{border:none;box-shadow:none;padding:.5rem 0 0}.chart-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.chart-expand-btn{flex:none}.chart-card h3{font-size:.95rem;font-weight:600;margin-bottom:.35rem}.chart-note{color:var(--muted);font-size:.78rem;margin-bottom:.4rem}.sankey-taxes{font-size:.9rem;color:var(--ink);background:var(--danger-soft);border-radius:var(--radius-sm);padding:.3rem .6rem;margin-bottom:.5rem}.sankey-taxes span{color:var(--muted)}.chart-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.82rem;margin-bottom:.4rem}.chart-controls--viz{gap:.2rem .7rem;margin-bottom:.2rem;font-size:.75rem;color:var(--muted)}.chart-controls--viz label{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;white-space:nowrap}.chart-controls--viz select{font-size:.75rem;padding:.05rem .2rem}.chart-controls--viz .viz-spacer{flex:1}.chart-controls--viz button{font-size:.7rem;padding:.1rem .5rem;color:var(--muted)}.col-picker-wrap summary{cursor:pointer;font-size:.85rem;color:var(--accent);margin-bottom:.35rem}.col-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.1rem .75rem;max-height:15rem;overflow:auto;padding:.5rem .6rem;border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.col-picker label{display:flex;align-items:center;gap:.35rem;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pred-inputs{display:flex;flex-wrap:wrap;gap:.75rem;margin:.9rem 0}.pred-inputs fieldset{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.35rem .85rem .65rem;display:flex;flex-wrap:wrap;align-items:flex-end;gap:.4rem .9rem}.pred-inputs legend{font-size:.75rem;color:var(--muted);padding:0 .25rem}.pred-inputs label{display:inline-flex;flex-direction:column;gap:.15rem;font-size:.75rem;color:var(--muted)}.pred-inputs input{width:5.5rem}.chart-embed{margin:.5rem 0 .75rem}.chart-embed summary{cursor:pointer;font-size:.85rem;color:var(--accent)}.chart-embed .chart-card{margin-top:.5rem}.dup-panel{margin:.5rem 0 .75rem}.dup-panel>summary{cursor:pointer;font-size:.85rem;color:var(--accent)}.dup-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.5rem 0}.dup-controls label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--muted)}.dup-controls input[type=number]{width:5rem}.dup-summary{font-size:.88rem;margin:.4rem 0}.dup-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.5rem 0 .9rem;font-size:.85rem}.dup-selected{color:var(--muted);margin-left:auto}.dup-panel button.danger{color:var(--danger);border-color:#f4cdc9;background:var(--danger-soft)}.dup-panel button.danger:disabled{color:var(--muted);border-color:var(--border);background:var(--surface)}.dup-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.5rem .7rem;margin-bottom:.6rem;overflow-x:auto}.dup-group-head{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;margin-bottom:.35rem}.dup-group-head .muted{color:var(--muted)}.dup-badge{font-size:.72rem;padding:.05rem .4rem;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn-ink)}.dup-badge--sure{background:var(--ok-soft);color:var(--ok)}.dup-rows{border-collapse:collapse;font-size:.82rem;width:100%}.dup-rows th,.dup-rows td{text-align:left;padding:.2rem .5rem;white-space:nowrap;border-bottom:1px solid var(--border-soft)}.dup-rows th{color:var(--muted);font-weight:500}.dup-rows tr.dup-doomed td{color:var(--danger);text-decoration:line-through}:root{--bg: #f6f7f9;--surface: #ffffff;--ink: #1c2026;--muted: #69727d;--border: #e4e7ec;--border-soft: #eef0f3;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: #eff4ff;--accent-soft-ink: #3450a8;--danger: #b42318;--danger-soft: #fef3f2;--ok: #067647;--ok-soft: #e7f5ee;--warn-ink: #92600a;--warn-soft: #fdf6e7;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgb(16 24 40 / .05);color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{letter-spacing:-.01em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}button{font:inherit;font-size:.875rem;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .8rem;cursor:pointer;box-shadow:var(--shadow);transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#fafbfc;border-color:#cdd3da}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button.link{background:none;border:none;box-shadow:none;padding:0;font-size:inherit;color:var(--accent);border-radius:0}button.link:hover:not(:disabled){background:none;text-decoration:underline}input:not([type=checkbox]),select{font:inherit;font-size:.875rem;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .6rem;transition:border-color .15s}input::placeholder{color:#a4abb5}input:not([type=checkbox]):hover,select:hover{border-color:#cdd3da}input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem;vertical-align:-.15em}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position-x:-200%}}.spinner{display:inline-block;width:.85rem;height:.85rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.1em}.skeleton{display:inline-block;height:.85em;width:70%;border-radius:4px;background:linear-gradient(90deg,#e9ebef 8%,#f4f5f7,#e9ebef 48%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
