:root{color-scheme:light;--bg: #f6f1e9;--bg-accent: #f2e6d4;--panel: #ffffff;--panel-border: #e3d7c6;--ink: #1f1b16;--muted: #6a5f54;--accent: #17616d;--accent-strong: #0d3b44;--warning: #e6a23c;--error: #c0392b;--info: #2f86a6;--shadow: 0 18px 40px rgba(31, 27, 22, .08);--radius: 18px}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,IBM Plex Sans,Work Sans,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#f8efe3,#f6f1e9 45%,#f1e7d8);min-height:100vh}a{text-decoration:none;color:inherit}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#1a5a66,#124149 70%,#0d343a);color:#fef9f2;padding:28px 22px;display:flex;flex-direction:column;gap:24px}.brand-title{font-size:1.4rem;font-weight:700;letter-spacing:.02em}.brand-subtitle{font-size:.9rem;color:#fef9f2b3;margin-top:4px}.nav{display:flex;flex-direction:column;gap:10px}.nav a{padding:10px 14px;border-radius:12px;color:#fef9f2cc;font-weight:500}.nav a.active{background:#fef9f226;color:#fff}.btn{border:none;background:var(--accent);color:#fff;padding:10px 16px;border-radius:12px;font-weight:600;cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{border:1px solid var(--panel-border);background:#fefaf5;color:var(--ink);padding:8px 12px;border-radius:10px;cursor:pointer}.refresh-btn{margin-top:auto}.sidebar-meta{font-size:.85rem;color:#fef9f2bf;display:flex;flex-direction:column;gap:6px}.main{padding:32px 36px 60px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}h1{margin:0 0 6px;font-size:2rem}h2,h3{margin:0 0 12px}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-size:.85rem;color:var(--muted)}.stack{display:flex;flex-direction:column;gap:18px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.metric-card{padding:16px;border-radius:14px;border:1px solid #efe4d6;background:#fffaf3}.metric-label{font-size:.85rem;color:var(--muted)}.metric-value{font-size:1.4rem;font-weight:700;margin-top:4px}.metric-delta{margin-top:4px;font-size:.85rem;color:var(--accent-strong)}.metric-value-inline{margin-left:6px;font-weight:600}.alert-list,.warning-list{display:flex;flex-direction:column;gap:10px}.alert{display:flex;gap:12px;align-items:flex-start;padding:10px 14px;border-radius:12px;background:#fdf4e4;border:1px solid #f1d6ad;border-left-width:4px;border-left-style:solid}.alert-level{text-transform:uppercase;font-weight:700;font-size:.75rem}.alert-warning{border-color:#f3c892;border-left-color:#e6a23c}.alert-error{border-color:#f0b4aa;background:#fdecea;border-left-color:#c0392b}.alert-info{border-color:#bfdde9;background:#eef7fb;border-left-color:#2f86a6}.warning-item{padding:10px 12px;border-radius:10px;background:#fff5e1;border:1px solid #f3d7a6}.tranche-list{display:flex;flex-direction:column;gap:16px}.tranche-card{border:1px solid #efe4d6;border-radius:16px;background:#fffdf8;overflow:hidden}.tranche-header{display:flex;justify-content:space-between;gap:16px;align-items:center;width:100%;border:none;text-align:left;padding:16px 18px;background:linear-gradient(135deg,#fff,#fdf6ec);cursor:pointer}.tranche-title{font-size:1.1rem;font-weight:700}.tranche-summary{display:flex;flex-direction:column;gap:6px}.tranche-summary-line{color:var(--muted);font-size:.95rem}.tranche-dte{font-weight:600}.limit-badge{margin-left:10px;padding:4px 8px;border-radius:8px;background:#122f33;color:#d3f6ff;font-size:.8rem;font-weight:600}.tranche-toggle{font-size:1.2rem;color:var(--muted)}.tranche-body{padding:18px;display:flex;flex-direction:column;gap:18px}.tranche-top{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);gap:24px;align-items:start}.tranche-stats{display:grid;gap:10px}.stat-row{display:grid;grid-template-columns:140px 1fr;gap:12px;font-size:.95rem}.stat-row span{color:var(--muted)}.tranche-divider{height:1px;background:#efe4d6}.tranche-bottom{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.detail-stack{display:grid;gap:8px;font-size:.95rem}.detail-stack span{color:var(--muted);display:block}.payoff-chart{background:#101417;color:#e6eef2;border-radius:14px;padding:12px;border:1px solid #2d3439;width:70%;margin-left:auto}.payoff-chart svg{width:100%;height:auto;display:block}.payoff-title{font-size:.85rem;margin-bottom:8px;color:#c7d3d8}.payoff-line{fill:none;stroke:#8bc34a;stroke-width:3}.payoff-axis{stroke:#3a4247;stroke-width:1;stroke-dasharray:4 3}.payoff-guideline{stroke:#6b7176;stroke-width:1;stroke-dasharray:4 3}.payoff-guideline.gain{stroke:#4caf50}.payoff-guideline.loss{stroke:#e57373}.payoff-spot{stroke:#4fc3f7;stroke-width:1;stroke-dasharray:6 4}.payoff-label{fill:#c7d3d8;font-size:10px}.payoff-footer{display:flex;justify-content:space-between;font-size:.7rem;color:#91a0a7}.alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.tranche-card.dte-red{border-color:#f0b4aa}.tranche-card.dte-red .tranche-header{border-left:6px solid #c0392b;background:linear-gradient(135deg,#fff3f2,#fff8f6)}.tranche-card.dte-orange{border-color:#f3c892}.tranche-card.dte-orange .tranche-header{border-left:6px solid #e67e22;background:linear-gradient(135deg,#fff6ee,#fffaf6)}.tranche-card.dte-yellow{border-color:#f1e2a0}.tranche-card.dte-yellow .tranche-header{border-left:6px solid #f1c40f;background:linear-gradient(135deg,#fffbe9,#fffdf7)}.tranche-card.dte-green{border-color:#bfe6cf}.tranche-card.dte-green .tranche-header{border-left:6px solid #27ae60;background:linear-gradient(135deg,#f2fbf5,#f8fdf9)}.tranche-card.dte-red .tranche-dte{color:#c0392b}.tranche-card.dte-orange .tranche-dte{color:#e67e22}.tranche-card.dte-yellow .tranche-dte{color:#b77900}.tranche-card.dte-green .tranche-dte{color:#1b7b42}.detail-title{font-weight:600;margin-bottom:8px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:.9rem}.detail-grid span{color:var(--muted);display:block}.order-list{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:.9rem}.order-list li{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:center;background:#fdf6ec;padding:8px 10px;border-radius:10px}.order-action{font-weight:600;color:var(--accent-strong)}.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.risk-notes{margin-top:12px;color:var(--muted)}.status{padding:8px 12px;border-radius:8px;font-size:.9rem}.status-info{background:#eef7fb;border:1px solid #bfdde9}.status-error{background:#fdecea;border:1px solid #f0b4aa}.status-warning{background:#fff5e1;border:1px solid #f3d7a6}.muted{color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}table th,table td{padding:10px 12px;border-bottom:1px solid #efe4d6;text-align:left}.transactions-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:var(--muted);margin-bottom:12px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.field-grid label{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.field-grid input,.field-grid select{padding:8px 10px;border-radius:10px;border:1px solid #d9cbb9;font-size:.9rem}.checkbox-field{flex-direction:row;align-items:center;gap:10px}.bucket-grid{margin-top:16px;display:grid;gap:10px}.bucket-row{display:grid;grid-template-columns:60px 1fr 1fr;gap:10px;align-items:center}.tranche-matrix{margin-top:14px;display:grid;gap:8px}.matrix-row{display:grid;grid-template-columns:60px repeat(4,minmax(80px,1fr));gap:8px;align-items:center}.schedule-grid{display:grid;gap:10px;margin:12px 0 16px}.schedule-header{font-size:.8rem;color:var(--muted)}.schedule-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) 120px;gap:10px;align-items:center}.upload-row{margin-top:12px;display:flex;align-items:center;gap:12px}.upload-label{display:inline-flex;flex-direction:column;gap:6px}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.nav{flex-direction:row}.refresh-btn{margin-top:0}.main{padding:24px}.tranche-top,.tranche-bottom{grid-template-columns:1fr}.payoff-chart{width:100%;margin-left:0}}
