:root{font-family:Aptos,Segoe UI Variable Text,Trebuchet MS,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#f3ede4;background:linear-gradient(180deg,#1f1f22,#19191c 38%,#141417);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-height:100%;background:#141417}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(180deg,#1f1f22,#19191c 38%,#141417);background-size:100% 100%,100% 100%,100% 100%}#root{width:100%}a{color:inherit}button,input,textarea,select{font:inherit}:root{--surface-base: #141417;--surface-elevated: #1b1c21;--surface-panel: rgba(24, 25, 31, .9);--surface-panel-strong: rgba(30, 31, 38, .96);--surface-soft: rgba(255, 255, 255, .03);--line-subtle: rgba(255, 255, 255, .06);--line-strong: rgba(255, 255, 255, .1);--text-primary: #f3ede4;--text-secondary: #b7afa2;--text-muted: #8d867d;--accent-positive: #72ef9c;--accent-negative: #ff9b88;--accent-cool: #d7d0c6;--shadow-soft: 0 24px 60px rgba(0, 0, 0, .28);--radius-panel: 24px;--radius-soft: 18px}.app{max-width:1480px;margin:0 auto;padding:28px 28px 56px;min-height:100vh;display:flex;flex-direction:column;gap:24px}.header,.upload-zone,.summary-panel,.summary-band,.ledger-hero,.signal-card,.session-group,.errors,.no-data,.stats-bar{background:linear-gradient(180deg,#1f2026f5,#15161bf0);border:1px solid var(--line-subtle);box-shadow:var(--shadow-soft)}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;border-radius:var(--radius-panel)}.header-content h1{margin:0;font-family:Cambria,Times New Roman,serif;font-size:clamp(2.5rem,4vw,3.8rem);line-height:.95;letter-spacing:-.04em;color:var(--text-primary)}.header-content{display:grid;gap:10px}.brand-mark{display:block;width:min(480px,100%);height:auto;object-fit:contain}.header-content .subtitle{display:inline-block;color:var(--text-secondary);font-size:.98rem}.header-links{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.header .github-link,.header .export-button,.ghost-button,.file-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line-strong);background:#ffffff08;color:var(--text-primary);text-decoration:none;transition:background .2s ease,border-color .2s ease,transform .2s ease}.header .github-link,.header .export-button,.ghost-button{padding:.72rem 1.05rem;font-size:.88rem}.header .github-link:hover,.header .export-button:hover:not(:disabled),.ghost-button:hover{background:#ffffff0f;border-color:#ffffff29;transform:translateY(-1px)}.header .export-button:disabled{opacity:.4;cursor:not-allowed}.header .version{color:var(--text-muted);font-size:.82rem}.file-uploader{display:grid;gap:14px}.upload-zone{border-radius:var(--radius-panel);padding:56px 28px;text-align:center;transition:border-color .2s ease,background .2s ease}.upload-zone.drag-over{border-color:#72ef9c3d;background:linear-gradient(180deg,#202623fa,#131816f5)}.upload-zone.loading{padding-block:42px}.upload-icon{font-size:3rem;margin-bottom:12px}.upload-primary{margin:0;color:var(--text-primary);font-size:1.2rem}.upload-secondary{margin:8px 0 0;color:var(--text-secondary)}.file-button{position:relative;overflow:hidden;margin-top:22px;padding:.86rem 1.4rem;font-size:.95rem;cursor:pointer}.file-button:hover{background:#ffffff0f}.file-button.is-disabled,.ghost-button.is-disabled{opacity:.62;cursor:not-allowed}.file-input-overlay{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-button.is-disabled .file-input-overlay,.ghost-button.is-disabled .file-input-overlay{pointer-events:none}.progress-container{display:grid;gap:16px;justify-items:center}.progress-bar{width:min(440px,100%);height:8px;background:#ffffff0f;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#5ccf85,#9df1b7);border-radius:inherit;transition:width .2s ease}.progress-message{margin:0;color:var(--text-secondary)}.stats-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;padding:16px 20px;border-radius:var(--radius-soft)}.stats-bar .stat{color:var(--text-secondary);font-size:.92rem}.stats-bar .stat strong{color:var(--accent-positive)}.summary-dashboard{display:grid;gap:22px}.ledger-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--radius-panel)}.ledger-strip-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;white-space:nowrap}.ledger-strip-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.ledger-strip-stat{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:#ffffff0a;border:1px solid var(--line-subtle);color:var(--text-secondary);font-size:.8rem}.section-eyebrow,.label,.tournament-table th,.search-shell span,.metric-caption{color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}.summary-panel h3,.summary-band h3,.signal-card h3,.session-title strong,.no-data p:first-child{margin:0;color:var(--text-primary)}.summary-copy,.panel-copy,.summary-footnote,.no-data-hint,.signal-card p,.session-title span,.cell-stack span{color:var(--text-secondary);line-height:1.6}.summary-copy,.panel-copy{max-width:54ch;font-size:.92rem}.hero-ops,.control-actions,.session-note-bar,.pill-row,.band-meta,.signal-grid,.header-links{display:flex;flex-wrap:wrap;gap:10px}.control-actions{align-items:center}.file-import-ghost{position:relative;overflow:hidden;cursor:pointer}.file-import-ghost span{pointer-events:none}.file-import-ghost .file-input-overlay{cursor:pointer}.file-import-ghost.is-disabled .file-input-overlay{cursor:not-allowed}.ops-pill,.pill,.band-meta-item{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#ffffff0a;border:1px solid var(--line-subtle);color:var(--text-secondary);font-size:.8rem}.signal-card{display:grid;gap:10px;padding:16px 18px;border-radius:var(--radius-panel);align-content:start}.signal-value{font-family:Consolas,SFMono-Regular,monospace;font-size:clamp(1.8rem,2.3vw,2.45rem);line-height:1}.signal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.signal-cell{padding:10px 12px;border-radius:14px;background:#ffffff08;border:1px solid var(--line-subtle);display:grid;gap:4px}.signal-cell strong{color:var(--text-primary)}.summary-band{padding:22px;border-radius:var(--radius-panel)}.sticky-band{position:relative}.band-header,.panel-head,.controls-panel{display:grid;gap:16px}.band-header{grid-template-columns:1.3fr auto;align-items:start;margin-bottom:16px}.deck-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.deck-cell{padding:16px;border-radius:18px;background:#ffffff08;border:1px solid var(--line-subtle);display:grid;gap:8px}.deck-value{color:var(--text-primary);font-family:Consolas,SFMono-Regular,monospace;font-size:clamp(1.35rem,2vw,2rem)}.summary-panel{padding:22px;border-radius:var(--radius-panel)}.controls-panel{grid-template-columns:1.2fr minmax(240px,320px) auto;align-items:end}.search-shell{display:grid;gap:8px}.search-shell input{width:100%;border-radius:16px;border:1px solid var(--line-strong);background:#ffffff08;color:var(--text-primary);padding:.9rem 1rem;font:inherit}.search-shell input:focus{outline:1px solid rgba(255,255,255,.18);border-color:#ffffff2e}.session-groups{display:grid;gap:14px}.session-group{overflow:hidden;border-radius:var(--radius-panel)}.session-group.is-open{border-color:#ffffff1c}.session-toggle{width:100%;padding:0;border:0;background:transparent;text-align:left}.session-head{display:grid;grid-template-columns:2fr repeat(5,minmax(88px,1fr));gap:14px;align-items:center;padding:22px}.session-title{display:grid;gap:4px}.session-title strong{font-size:1.25rem}.session-filter-note{color:var(--accent-cool);font-size:.84rem}.session-metric-block{display:grid;gap:6px}.session-metric-block strong{color:var(--text-primary);font-family:Consolas,SFMono-Regular,monospace;font-size:1.02rem}.session-body{display:grid;gap:14px;padding:0 18px 18px}.ledger-table-wrapper{background:#07080c42}.table-wrapper{overflow-x:auto;border-radius:18px;border:1px solid var(--line-subtle)}.tournament-table{width:100%;min-width:980px;border-collapse:collapse}.tournament-table th,.tournament-table td{padding:14px 16px;border-bottom:1px solid var(--line-subtle);text-align:left;vertical-align:top}.tournament-table th{background:#ffffff08}.tournament-table td{color:var(--text-primary);font-size:.94rem}.tournament-table tbody tr:hover{background:#ffffff06}.cell-stack{display:grid;gap:4px}.cell-stack strong{color:var(--text-primary)}.positive{color:var(--accent-positive)!important}.negative{color:var(--accent-negative)!important}.neutral{color:var(--text-primary)!important}.errors{padding:18px 20px;border-radius:var(--radius-soft)}.errors h3{margin:0 0 8px;color:var(--accent-negative)}.errors ul{margin:0;padding-left:18px}.errors li{color:#f2c0b6}.no-data{padding:56px 24px;border-radius:var(--radius-panel);text-align:center}.empty-table{padding:20px;border-radius:var(--radius-soft);background:#ffffff08;border:1px solid var(--line-subtle);color:var(--text-secondary)}.summary-footnote{margin:0;font-size:.86rem}@media(max-width:1280px){.app{padding-inline:18px}.controls-panel,.band-header{grid-template-columns:1fr}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.session-head{grid-template-columns:1.6fr repeat(3,minmax(88px,1fr))}.hide-medium{display:none}}@media(max-width:820px){.app{padding:16px 14px 40px}.header,.summary-panel,.summary-band,.upload-zone{padding:18px}.ledger-strip{padding:12px 14px}.header{flex-direction:column}.brand-mark{width:min(360px,100%)}.signal-grid,.deck-grid{grid-template-columns:1fr}.session-head{grid-template-columns:1fr 1fr}.hide-mobile{display:none}.session-body{padding:0 12px 12px}}@media(max-width:640px){.upload-zone{padding-block:40px}.ledger-strip{align-items:flex-start;flex-direction:column}.ledger-strip-stats{justify-content:flex-start}.session-head{grid-template-columns:1fr}.stats-bar,.hero-ops,.control-actions,.session-note-bar{gap:8px}}
