.app{max-width:1120px;margin:0 auto;padding:32px 24px 64px}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px;padding-top:4px}.brand-bar{background:var(--brand-navy);color:#fff;padding:8px 24px;margin:-32px -24px 24px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.02em}.brand-bar .brand-mark{color:var(--brand-red)}.app-header h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}.app-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:13px}.upload-panel{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.upload-controls{display:flex;gap:8px;align-items:center}.date-toggle-button{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;white-space:nowrap}.date-toggle-button:hover{border-color:var(--accent);color:var(--accent)}.date-picker-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.date-picker-row input[type=date]{border:1px solid var(--border-strong);border-radius:var(--radius);padding:4px 8px;font-size:12px;background:var(--surface);color:var(--text)}.upload-button{background:var(--cta);color:#fff;padding:9px 16px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.upload-button:hover{background:var(--cta-hover)}.upload-message{margin:0;font-size:12px;color:var(--text-muted);max-width:320px;text-align:right}.upload-message-error{color:var(--risk-lost)}.summary-strip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px}.summary-top{display:flex;flex-wrap:wrap;align-items:center;gap:24px}.summary-empty{color:var(--text-muted)}.summary-headline{display:flex;flex-direction:column;gap:2px;min-width:160px}.summary-date{font-weight:600;font-size:14px}.summary-count{color:var(--text-muted);font-size:12px}.summary-totals{display:flex;gap:24px}.summary-totals>div{display:flex;flex-direction:column;gap:2px}.summary-total-label{font-size:11px;color:var(--text-muted)}.summary-total-value{font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}.summary-categories{display:flex;gap:12px;margin-left:auto;flex-wrap:wrap}.summary-category-pill{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.pie-chart-wrap{display:flex;align-items:center;gap:12px}.pie-chart-svg{flex-shrink:0}.pie-chart-total{font-size:22px;font-weight:700;fill:var(--text)}.pie-chart-total-label{font-size:10px;fill:var(--text-muted)}.pie-chart-legend{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.pie-chart-legend li{display:flex;align-items:center;gap:6px}.pie-chart-swatch{width:9px;height:9px;border-radius:2px;display:inline-block;flex-shrink:0}.definitions-toggle{background:none;border:none;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;padding:10px 0 0}.definitions-toggle:hover{text-decoration:underline}.definitions-list{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.definitions-row{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:baseline}.definitions-row dt{margin:0}.definitions-row dd{margin:0;font-size:12px;color:var(--text-muted)}.filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:12px}.date-selector{display:flex;align-items:center;gap:8px;font-size:13px}.date-selector label{color:var(--text-muted)}.date-selector select{border:1px solid var(--border-strong);border-radius:var(--radius);padding:5px 8px;font-size:13px;background:var(--surface);color:var(--text)}.amount-filter{display:flex;align-items:center;gap:8px;font-size:13px}.amount-filter label{color:var(--text);font-weight:700}.amount-filter input[type=number]{width:110px;border:1px solid var(--border-strong);border-radius:var(--radius);padding:5px 8px;font-size:13px;background:var(--surface);color:var(--text)}.amount-filter-sep{color:var(--text-muted)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 4px;margin-right:20px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer}.tab:hover{color:var(--text)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px}.loan-table{width:100%;border-collapse:collapse;font-size:13px}.loan-table th{text-align:left;font-weight:600;color:var(--text-muted);font-size:11px;padding:10px 12px;border-bottom:1px solid var(--border)}.loan-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.loan-table th.num,.loan-table td.num{text-align:right}.sort-header{background:none;border:none;font:inherit;font-weight:600;color:var(--text-muted);font-size:11px;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:4px}.sort-header:hover{color:var(--accent)}.sort-arrow{font-size:9px;width:8px;display:inline-block}.sheet-tag{color:var(--text-muted);font-size:12px}.loan-table tbody tr{cursor:pointer}.loan-table tbody tr:hover{background:var(--bg)}.loan-table tbody tr:last-child td{border-bottom:none}.empty-state{color:var(--text-muted);padding:24px 16px;margin:0;font-size:13px}.loan-group{border-bottom:1px solid var(--border)}.loan-group:last-child{border-bottom:none}.loan-group-header{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:12px 16px;font-size:13px;font-weight:700;cursor:pointer;color:var(--text)}.loan-group-count{color:var(--text-muted);font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.badge-performing{color:var(--risk-performing);background:var(--risk-performing-bg)}.badge-watchlist{color:var(--risk-watchlist);background:var(--risk-watchlist-bg)}.badge-substandard{color:var(--risk-substandard);background:var(--risk-substandard-bg)}.badge-doubtful{color:var(--risk-doubtful);background:var(--risk-doubtful-bg)}.badge-lost{color:var(--risk-lost);background:var(--risk-lost-bg)}.trend-section{padding:16px}.trend-heading{margin:0 0 10px;font-size:14px}.trend-heading-worsening{color:var(--risk-lost)}.trend-heading-improving{color:var(--risk-performing)}.trend-note{color:var(--text-muted);font-size:12px;margin:0 0 10px}.disappeared-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.link-button{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:4px 10px;font-size:12px;cursor:pointer;color:var(--text)}.link-button:hover{border-color:var(--accent);color:var(--accent)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a2266;display:flex;justify-content:flex-end;z-index:20}.drawer{overflow-x:auto;background:var(--surface);width:min(480px,100%);height:100%;overflow-y:auto;padding:20px}.drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.drawer-header h2{margin:0;font-size:16px}.drawer-close{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--text-muted);padding:4px 8px}.drawer-close:hover{color:var(--text)}@media (max-width: 640px){.app-header{flex-direction:column}.upload-panel{align-items:flex-start}.summary-strip{flex-direction:column;align-items:flex-start}.summary-categories{margin-left:0}}:root{--bg: #eef1f4;--surface: #ffffff;--text: #1a1a2e;--text-muted: #5b6472;--border: #dde1e7;--border-strong: #c3c9d2;--brand-navy: #26215a;--brand-navy-dark: #1a1740;--brand-red: #ec4a23;--brand-red-dark: #c93d1b;--accent: var(--brand-navy);--accent-hover: var(--brand-navy-dark);--cta: var(--brand-red);--cta-hover: var(--brand-red-dark);--risk-performing: #2f8f5b;--risk-watchlist: #b3891f;--risk-substandard: #d97a2b;--risk-doubtful: #c24a2e;--risk-lost: #9e2a2a;--risk-performing-bg: #e4f3ea;--risk-watchlist-bg: #f8efdb;--risk-substandard-bg: #fbe8da;--risk-doubtful-bg: #f7e0da;--risk-lost-bg: #f5dcdc;--radius: 6px;--font-ui: -apple-system, "Segoe UI", "Inter", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit}table{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
