:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#102a43;background:#efe6d7}*{box-sizing:border-box}html{min-width:320px}body{margin:0}button,input,textarea{font-family:inherit}code{font-family:IBM Plex Mono,SFMono-Regular,monospace}#root{min-height:100vh}.app-shell{min-height:100vh;padding:32px 32px 180px;background:radial-gradient(circle at top left,rgba(245,183,94,.2),transparent 24rem),radial-gradient(circle at top right,rgba(102,166,255,.2),transparent 26rem),linear-gradient(180deg,#f7f2ea,#efe6d7);color:#1f2933}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at top left,rgba(245,183,94,.2),transparent 24rem),radial-gradient(circle at top right,rgba(102,166,255,.2),transparent 26rem),linear-gradient(180deg,#f7f2ea,#efe6d7)}.auth-card{width:min(560px,100%);border:1px solid rgba(31,41,51,.08);border-radius:28px;padding:32px;background:#fffaf2e6;box-shadow:0 20px 60px #4a321914}.hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:24px;align-items:end;margin:0 auto 28px;max-width:1680px}.eyebrow,.panel-kicker{margin:0 0 10px;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:#b0592b}.hero h1,.panel h2{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:600;letter-spacing:-.03em}.hero h1{font-size:clamp(2.7rem,5vw,4.7rem);max-width:12ch}.hero-copy{max-width:68ch;font-size:1rem;color:#4b5b68}.hero-status,.panel{border:1px solid rgba(31,41,51,.08);border-radius:28px;padding:24px;background:#fffaf2c7;box-shadow:0 20px 60px #4a321914;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero-status{position:fixed;right:32px;bottom:32px;z-index:20;width:min(360px,calc(100vw - 32px))}.hero-status p{margin:8px 0 0;color:#52606d}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:8px 14px;background:#1f7a5a;color:#f8fffc;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.dashboard{max-width:1680px;margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.panel-form,.panel-jobs{grid-column:span 6;display:flex;flex-direction:column;max-height:calc(100vh - 140px)}.panel{grid-column:span 6;max-height:calc(100vh - 140px)}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px}.schedule-tabs{display:flex;gap:10px;margin-bottom:18px;padding:6px;border-radius:20px;background:#102a430f}.schedule-tab{flex:1;background:transparent;color:#52606d;border-radius:14px;padding:12px 16px;text-transform:none}.schedule-tab.active{background:linear-gradient(135deg,#b0592b,#dd8d3c);color:#fff8f0;box-shadow:0 12px 30px #b0592b38}.schedule-tab-panel{display:flex;flex-direction:column;min-height:0;flex:1}.schedule-tab-copy{margin-bottom:18px}.schedule-tab-copy h3{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:600;letter-spacing:-.02em}.schedule-tab-copy .panel-kicker{margin-bottom:6px}.schedule-tab-panel-placeholder{justify-content:center;border:1px dashed rgba(82,96,109,.28);border-radius:22px;padding:24px;background:#ffffff61}.swap-portfolio-editor,.swap-results{display:grid;gap:16px}.swap-portfolio-list,.swap-result-list{display:grid;gap:14px}.swap-card,.swap-result-card{border:1px solid rgba(82,96,109,.14);border-radius:20px;padding:16px;background:#ffffff9e}.swap-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.swap-card-header{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px}.swap-result-card{display:grid;gap:6px}.scheduler-form{display:grid;gap:16px;flex:1;min-height:0;overflow-y:auto;padding-right:6px}.scheduler-form label{display:grid;gap:8px;font-size:.92rem;color:#52606d}.field-span{grid-column:1 / -1}input,select,textarea,button,pre{font:inherit}input,select,textarea{width:100%;border:1px solid rgba(82,96,109,.2);border-radius:16px;background:#ffffffd1;padding:12px 14px;color:#102a43;box-sizing:border-box}textarea{resize:vertical}button{border:0;border-radius:999px;padding:12px 18px;background:linear-gradient(135deg,#b0592b,#dd8d3c);color:#fff8f0;font-weight:700}button:disabled{opacity:.7;cursor:not-allowed}.secondary-button{background:#102a4314;color:#102a43}.form-actions,.job-toolbar{display:flex;gap:12px}.form-actions-sticky{position:sticky;bottom:0;z-index:5;justify-content:space-between;align-items:end;flex-wrap:wrap;padding:16px 0 0;margin-top:8px;background:#faf4eb}.form-actions-group{display:flex;gap:12px;flex-wrap:wrap}.form-actions-run-at{display:flex;align-items:center;gap:12px;min-width:min(280px,100%);margin-left:auto;font-size:.92rem;color:#52606d}.form-actions-run-at input{flex:1}.scenario-picker-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px;color:#7b8794}.scenario-picker-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:12px}.scenario-creator{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:10px}.scenario-creator-hint{margin:0 0 14px;font-size:.88rem;color:#7b8794}.scenario-picker-toggle{padding:8px 14px}.scenario-grid,.scenario-list,.job-list,.event-list{display:grid;gap:12px}.scenario-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-height:320px;overflow-y:auto;padding-right:6px;align-content:start}.scenario-list{max-height:360px;overflow-y:auto;padding-right:6px;align-content:start}.job-list{flex:1;min-height:0;overflow-y:auto;padding-right:6px;align-content:start}.scenario-card,.scenario-row,.event-card,.job-card{border:1px solid rgba(82,96,109,.14);border-radius:18px;padding:14px;background:#ffffff9e}.scenario-picker{border:1px solid rgba(82,96,109,.12);border-radius:20px;padding:16px;background:#ffffff52}.spread-picker{display:grid;gap:8px;font-size:.92rem;color:#52606d;align-content:start}.schedule-meta-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.isin-detail-editor,.market-curve-editor{display:grid;gap:12px}.isin-detail-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;color:#7b8794;font-size:.92rem}.isin-detail-list{display:grid;gap:12px}.isin-detail-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.isin-detail-actions label{display:grid;gap:8px;min-width:min(260px,100%)}.market-curve-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.market-curve-grid label{display:grid;gap:8px}.isin-detail-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.5fr) minmax(180px,1fr);gap:12px;align-items:end;border:1px solid rgba(82,96,109,.14);border-radius:18px;padding:14px;background:#ffffff9e}.isin-detail-card label{display:grid;gap:8px}.isin-detail-isin{overflow-wrap:anywhere;color:#102a43}.spread-option-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.spread-option{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;border:1px solid rgba(82,96,109,.14);border-radius:14px;padding:10px 12px;background:#ffffff9e;align-items:center}.spread-option input{width:auto;margin:0}.spread-option span{min-width:0}.spread-option code{color:#7b8794}.spread-value-input{width:100%;grid-column:1 / -1;text-align:left;padding:8px 10px}.scenario-card{display:grid;gap:8px;align-content:start}.scenario-card-header{display:flex;align-items:start;justify-content:space-between;gap:10px}.scenario-card-toggle{display:flex;align-items:start;gap:10px;min-width:0}.scenario-card-toggle strong{overflow-wrap:anywhere}.scenario-card input{width:auto;margin:0}.scenario-delete-button{padding:8px 12px;white-space:nowrap}.scenario-card span,.scenario-row span,.event-card span,.job-card span,.detail-block,.job-meta{color:#52606d}.job-card,.event-card{display:grid;grid-template-columns:auto minmax(0,1.2fr) minmax(0,.8fr);align-items:start;gap:10px 14px}.job-card{padding:12px}.job-card strong,.event-card strong{display:block}.job-card strong{font-size:.88rem;font-weight:600;line-height:1.25;overflow-wrap:anywhere}.job-status{display:flex;align-items:center;gap:10px;width:128px}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#7b879429;color:#102a43}.status-badge.completed{background:#1f7a5a24;color:#1f7a5a}.status-badge.running{background:#dd8d3c29;color:#b0592b}.status-badge.failed{background:#c81e1e1f;color:#c81e1e}.status-badge.scheduled{background:#3f83f824;color:#1d4ed8}.job-result-summary{grid-column:2 / -1;font-size:.84rem;color:#7b8794}.token-display{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.job-card.selected{border-color:#b0592b80;background:#fff4e8eb}.status-dot{width:12px;height:12px;border-radius:999px;background:#7b8794}.status-dot.completed{background:#1f7a5a}.status-dot.running{background:#dd8d3c}.status-dot.failed{background:#c81e1e}.status-dot.scheduled{background:#3f83f8}.detail-block{display:grid;gap:16px}.detail-actions{display:flex;gap:12px}.result-viewer{border:1px solid rgba(82,96,109,.14);border-radius:18px;background:#ffffff73;overflow:hidden}.result-viewer summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;color:#102a43;list-style:none}.result-viewer summary::-webkit-details-marker{display:none}.result-viewer[open] summary{border-bottom:1px solid rgba(82,96,109,.14)}.result-json{max-height:360px;border-radius:0}.job-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.job-meta div{padding:12px 14px;border-radius:16px;background:#fff9}.job-meta dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.job-meta dd{margin:6px 0 0;color:#102a43}pre{margin:0;overflow:auto;padding:16px;border-radius:18px;background:#102a43;color:#f0f4f8}.empty-state,.error-text{margin:0}.error-text{color:#c81e1e}@media(max-width:1080px){.hero,.dashboard{grid-template-columns:1fr}.panel,.panel-form,.panel-jobs{grid-column:span 1}.hero-status{width:min(320px,calc(100vw - 32px))}}@media(max-width:720px){.app-shell{padding:18px}.hero-status{right:18px;bottom:18px;left:18px;width:auto}.scheduler-form,.job-meta,.scenario-creator,.isin-detail-card,.swap-card,.market-curve-grid,.schedule-meta-row{grid-template-columns:1fr}.job-card,.event-card,.form-actions,.job-toolbar,.panel-heading{grid-template-columns:1fr;display:grid}.spread-option-list{grid-template-columns:1fr}.job-result-summary{grid-column:1 / -1}.result-viewer summary{display:grid}}
