:root{--bg:#f8f9fa;--surface:#fff;--surface-2:#f1f3f5;--border:#dee2e6;--text:#212529;--text-muted:#6c757d;--primary:#0d6efd;--primary-hover:#0b5ed7;--error:#dc3545;--warning:#fd7e14;--ok:#198754;--batch-bg:#e8f4fd;--batch-border:#90c9f0;--entry-bg:#f0fdf4;--entry-border:#86efac;--radius:6px;--shadow:0 1px 3px #0000001a}html.dark{--bg:#1a1b1e;--surface:#25262b;--surface-2:#2c2e33;--border:#373a40;--text:#c1c2c5;--text-muted:#909296;--primary:#4dabf7;--primary-hover:#74c0fc;--error:#ff6b6b;--warning:#ffa94d;--ok:#69db7c;--batch-bg:#1a2b3c;--batch-border:#2c5282;--entry-bg:#1a2e1d;--entry-border:#276749}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:14px}.main-nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1.5rem;display:flex;position:sticky;top:0}.nav-brand{color:var(--primary);white-space:nowrap;font-size:1rem;font-weight:700}.nav-links{flex-wrap:wrap;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-links a{border-radius:var(--radius);color:var(--text-muted);padding:.35rem .75rem;font-size:.85rem;text-decoration:none;transition:background .15s,color .15s;display:block}.nav-links a:hover{background:var(--surface-2);color:var(--text)}.nav-links a.active{background:var(--primary);color:#fff}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;margin-left:auto;padding:.3rem .6rem;font-size:1rem}.page{max-width:1100px;margin:0 auto;padding:1.5rem}.parser-hero{margin-bottom:1.5rem}.parser-hero h1{margin:0 0 .25rem;font-size:1.5rem}.tagline{color:var(--text-muted);margin:0;font-style:italic}.disclaimer{color:var(--text-muted);margin:.25rem 0 0;font-size:.8rem}.input-area{margin-bottom:1.5rem}.input-area label{margin-bottom:.4rem;font-weight:600;display:block}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:.75rem;transition:border-color .2s,background .2s}.drop-zone.drag-over{border-color:var(--primary);background:#0d6efd0f}.drop-zone textarea{width:100%;color:var(--text);resize:vertical;background:0 0;border:none;outline:none;padding:.75rem;font-family:ui-monospace,monospace;font-size:.82rem;display:block}.primary-btn,.secondary-btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:.45rem 1.1rem;font-size:.9rem;font-weight:600;transition:background .15s}.primary-btn{background:var(--primary);color:#fff;margin-right:.5rem}.primary-btn:hover{background:var(--primary-hover)}.secondary-btn{background:var(--surface-2);color:var(--text);border-color:var(--border)}.secondary-btn:hover{background:var(--border)}.input-actions{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}#anonymize-btn{margin-left:auto}#clear-btn{color:var(--error);border-color:var(--error);background:0 0}#clear-btn:hover{background:var(--error);color:#fff;border-color:var(--error)}.examples-label{color:var(--text-muted);font-size:.85rem}.example-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.example-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:999px;padding:.35rem .8rem;font-size:.82rem;font-weight:600;transition:background .15s,border-color .15s}.example-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.validation-panel{margin-bottom:1.5rem}.validation-ok{border:1px solid var(--ok);border-radius:var(--radius);color:var(--ok);background:#1987541a;padding:.6rem 1rem;font-weight:600}.validation-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.badge{border-radius:99px;padding:.2rem .65rem;font-size:.8rem;font-weight:700}.badge-error{background:var(--error);color:#fff}.badge-warning{background:var(--warning);color:#fff}.toggle-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;color:var(--text);margin-left:auto;padding:.2rem .75rem;font-size:.82rem}.validation-details{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;padding:.75rem 1rem}.issue-group h4{margin:.5rem 0 .3rem;font-size:.9rem}.issue-group-error h4{color:var(--error)}.issue-group-warning h4{color:var(--warning)}.issue-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.6rem;padding:.3rem 0;display:flex}.issue-row:last-child{border-bottom:none}.issue-msg{flex:1;min-width:0;font-size:.85rem;line-height:1.5}.issue-actions{flex-shrink:0;gap:.35rem;display:flex}.issue-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;white-space:nowrap;padding:.15rem .55rem;font-size:.78rem}.issue-btn:hover{background:var(--border)}.issue-btn:disabled{opacity:.5;cursor:default}.locate-btn{color:var(--primary);border-color:var(--primary)}.locate-btn:hover{background:#0d6efd14}.fix-btn{color:var(--ok);border-color:var(--ok)}.fix-btn:hover{background:#19875414}.fix-btn code{font-size:.75rem}.source-ref{cursor:help;opacity:.6;font-size:.85em}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.75rem;overflow:hidden}.summary-flow{flex-wrap:wrap;align-items:stretch;display:flex}.summary-tile{flex-direction:column;gap:.2rem;min-width:110px;padding:.85rem 1.25rem;display:flex}.tile-credit{border-left:3px solid var(--ok);background:#1987540d}.tile-debit{border-left:3px solid var(--error);background:#dc35450d}.tile-returns{border-left:3px solid var(--warning);background:#fd7e140d}.tile-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:600}.tile-amount{font-variant-numeric:tabular-nums;color:var(--text);font-size:1.15rem;font-weight:700}.tile-credit .tile-amount{color:var(--ok)}.tile-debit .tile-amount{color:var(--error)}.tile-count{color:var(--text-muted);font-size:.78rem}.tile-count-big{color:var(--text);font-size:1.35rem;font-weight:700}.summary-divider{background:var(--border);align-self:stretch;width:1px;margin:.5rem 0}.summary-meta{border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8rem;display:flex}.meta-chip{background:var(--primary);color:#fff;border-radius:99px;padding:.1rem .5rem;font-size:.75rem;font-weight:600}.meta-sep{opacity:.4}.meta-value{color:var(--text-muted)}.file-tree{flex-direction:column;gap:.75rem;display:flex}.record-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.record-header{background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.record-title{font-size:.85rem;font-weight:700}.record-line{color:var(--text-muted);font-size:.75rem}.fields-grid{background:var(--border);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1px;display:grid}.field-card{background:var(--surface);cursor:pointer;padding:.5rem .65rem;transition:background .1s;position:relative}.field-card:hover{background:var(--surface-2);cursor:pointer}.field-card.copied{background:#1987541f;transition:background .1s}.field-label{color:var(--text-muted);align-items:center;gap:.3rem;margin-bottom:.2rem;font-size:.72rem;display:flex}.field-label-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.field-help{border:1px solid var(--border);background:var(--surface-2);width:14px;height:14px;color:var(--text-muted);cursor:help;opacity:0;border-radius:50%;flex-shrink:0;padding:0;font-size:.62rem;font-weight:700;line-height:1;transition:opacity .12s,background .12s,color .12s,border-color .12s}.field-card:hover .field-help{opacity:1}.field-help:hover,.field-help:focus-visible{opacity:1;background:var(--primary);color:#fff;border-color:var(--primary);outline:none}.field-value-row{font-size:.85rem}.field-value{word-break:break-all;font-family:ui-monospace,monospace}.field-value.interpreted{color:var(--primary);font-family:inherit;font-weight:600}.field-raw{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.72rem;display:block}#field-popover-global{z-index:1000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;font-size:.82rem;line-height:1.5;display:none;position:fixed;box-shadow:0 4px 16px #0003}.pop-name{margin-bottom:.2rem;font-weight:700}.pop-desc{color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.pop-meta{grid-template-columns:auto 1fr;gap:.15rem .75rem;margin:0;display:grid}.pop-meta dt{color:var(--text-muted);white-space:nowrap;font-size:.78rem}.pop-meta dd{margin:0}.pop-enum-desc{color:var(--text-muted);font-size:.78rem}.pop-copy-hint{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;margin-top:.5rem;padding-top:.4rem;font-size:.75rem}.copy-flash{color:var(--ok);font-size:.85rem;font-weight:600}.tree-controls{z-index:50;background:var(--bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;margin:-.5rem 0 -.25rem;padding:.5rem 0;display:flex;position:sticky;top:3.5rem;box-shadow:0 6px 6px -6px #0000002e}.tree-search{flex:280px;align-items:center;gap:.35rem;min-width:0;display:flex}.tree-search-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;color:var(--text);flex:auto;padding:.35rem .65rem;font-size:.85rem}.tree-search-input:focus{border-color:var(--primary);outline:none}.tree-search-count{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.tree-search-count.no-match{color:var(--error)}.tree-search-nav{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;padding:.2rem .45rem;font-size:.85rem;line-height:1}.tree-search-nav:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.tree-control-group{gap:.5rem;display:flex}.field-card.search-match{box-shadow:inset 0 0 0 1px var(--warning);background:#fd7e1424}.field-card.search-current{box-shadow:inset 0 0 0 2px var(--warning);background:#fd7e1447}.tree-control-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;padding:.3rem .7rem;font-size:.8rem;font-weight:600;transition:background .15s,border-color .15s}.tree-control-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.collapsible{text-align:left;border:1px solid var(--batch-border);border-radius:var(--radius);background:var(--batch-bg);cursor:pointer;width:100%;color:var(--text);align-items:center;gap:.5rem;margin-bottom:.3rem;padding:.5rem .85rem;font-size:.9rem;font-weight:700;transition:background .15s;display:flex}.entry-toggle{border-color:var(--entry-border);background:var(--entry-bg);padding:.35rem .75rem;font-size:.85rem;font-weight:600}.collapsible:before{content:"▾";flex-shrink:0;font-size:.8em;transition:transform .2s}.collapsible:not(.active):before{transform:rotate(-90deg)}.toggle-label{align-items:center;gap:.5rem;display:flex}.toggle-line{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.72rem;font-weight:500}.collapsible-content{padding-left:.75rem}.collapsible-content.collapsed{display:none}.entry-badge{vertical-align:middle;border-radius:99px;margin-left:.35rem;padding:.1rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.entry-badge-return{background:var(--error);color:#fff}.entry-badge-noc{background:var(--warning);color:#fff}.entry-callout{border-radius:var(--radius);margin-bottom:.5rem;padding:.5rem .85rem;font-size:.85rem}.entry-callout-return{color:var(--error);border-left:3px solid var(--error);background:#dc354514}.entry-callout-noc{color:var(--warning);border-left:3px solid var(--warning);background:#fd7e1414}.reference-page h2{margin:0 0 1rem}.ref-header{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.ref-header h2{margin:0}.ref-search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:240px;padding:.35rem .75rem;font-size:.85rem}.ref-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}.ref-table th,.ref-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem .75rem;font-size:.85rem}.ref-table th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.ref-table tr:last-child td{border-bottom:none}.ref-table tr:hover td{background:var(--surface-2)}.code-cell code{background:var(--surface-2);white-space:nowrap;border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,monospace;font-size:.82rem}.desc-cell{color:var(--text-muted)}.timing-cell{white-space:nowrap;color:var(--text);font-size:.82rem}.disclaimer-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);margin:2rem 0 0;padding:1rem;font-size:.75rem}.error-msg{color:var(--error)}.nav-sep{background:var(--border);align-self:stretch;width:1px;margin:.3rem .25rem}.tool-header{margin-bottom:1.5rem}.tool-header h1{margin:0 0 .25rem;font-size:1.6rem}.tool-header .tagline{color:var(--text-muted);margin:0;font-size:.9rem;font-style:italic}.tz-controls{flex-direction:column;gap:.6rem;margin-bottom:1.25rem;display:flex}.tz-input-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.tz-label{color:var(--text-muted);min-width:80px;font-size:.82rem;font-weight:600}.tz-datetime-input,.tz-epoch-input,.tz-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:.35rem .65rem;font-size:.85rem}.tz-datetime-input{min-width:200px}.tz-epoch-input{min-width:220px;font-family:ui-monospace,monospace}.tz-select{cursor:pointer}.tz-datetime-input:focus,.tz-epoch-input:focus,.tz-select:focus{border-color:var(--primary);outline:none}.tz-table{margin-bottom:.75rem}.tz-source-row td{background:#0d6efd0f}.dark .tz-source-row td{background:#4dabf712}.tz-zone-cell{line-height:1.3}.tz-zone-label{font-weight:600;display:block}.tz-zone-id{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.75rem}.tz-time-cell{font-family:ui-monospace,monospace;font-size:.95rem;font-weight:700}.tz-offset-cell{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.82rem}.tz-abbr-cell{font-size:.82rem}.tz-date-cell{white-space:nowrap}.tz-day-badge{vertical-align:middle;border-radius:99px;padding:.1rem .4rem;font-size:.72rem;font-weight:700;display:inline-block}.tz-day-next{color:var(--primary);background:#0d6efd26}.tz-day-prev{color:var(--warning);background:#fd7e1426}.tz-dst-badge{color:var(--ok);background:#19875426;border-radius:99px;margin-left:.25rem;padding:.1rem .35rem;font-size:.72rem;font-weight:700;display:inline-block}.tz-remove-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:.85rem;line-height:1;transition:background .12s,color .12s,border-color .12s;display:flex}.tz-remove-btn:hover{background:var(--error);color:#fff;border-color:var(--error)}.tz-add-row{align-items:center;gap:.6rem;margin-top:.5rem;display:flex}.ach-status-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:.75rem 1rem}.ach-now{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.ach-now-time{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:1.1rem;font-weight:700}.ach-now-sep{color:var(--text-muted)}.ach-now-date{color:var(--text-muted);font-size:.9rem}.cutoff-biz-badge{border-radius:99px;padding:.15rem .6rem;font-size:.78rem;font-weight:700;display:inline-block}.biz-yes{color:var(--ok);background:#19875426}.biz-no{color:var(--warning);background:#fd7e1426}.ach-next-biz{color:var(--text-muted);margin-top:.35rem;font-size:.85rem}.cutoff-table{margin-bottom:1.25rem}.cutoff-th-time{white-space:nowrap;text-align:right!important}.cutoff-row-passed td{color:var(--text-muted)}.cutoff-row-inactive td{color:var(--text-muted);opacity:.6}.cutoff-badge{border-radius:99px;margin-right:.4rem;padding:.15rem .55rem;font-size:.78rem;font-weight:700;display:inline-block}.cutoff-open{color:var(--ok);background:#19875426}.cutoff-passed{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.cutoff-noach{color:var(--warning);background:#fd7e141f;border:1px solid #fd7e144d}.cutoff-countdown{color:var(--ok);font-family:ui-monospace,monospace;font-size:.88rem;font-weight:700}.cutoff-ago{color:var(--text-muted);font-size:.8rem}.cutoff-note{color:var(--text-muted);font-size:.78rem;font-style:italic}.ref-table td.cutoff-time-cell{white-space:nowrap;font-family:ui-monospace,monospace;font-size:.88rem;text-align:right!important}.cutoff-status-cell{white-space:nowrap}.cutoff-settle-cell{white-space:nowrap;text-align:right!important}.cutoff-settle-time{color:var(--text);font-family:ui-monospace,monospace;font-size:.85rem;font-weight:700;display:block}.cutoff-settle-date{color:var(--text-muted);font-size:.78rem;display:block}.cutoff-settle-today{color:var(--ok);font-weight:700}.cutoff-funds-cell{color:var(--text-muted);white-space:nowrap;font-size:.82rem}.cutoff-badge.cutoff-overnight{color:var(--primary);background:#0d6efd1f;border:1px solid #0d6efd40}.cutoff-source{color:var(--text-muted);margin-top:.75rem;font-size:.78rem;line-height:1.5}.cutoff-source a{color:var(--primary)}.ach-holidays{margin-top:.5rem;font-size:.85rem}.ach-holidays summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:.35rem 0;font-size:.82rem}.ach-holidays-grid{flex-wrap:wrap;gap:.4rem;padding:.75rem 0 .25rem;display:flex}.holiday-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.78rem;display:inline-flex}.holiday-date{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.75rem}
