:root{--bg:#0d0f12;--bg-alt:#111418;--surface:#161a20;--surface-raised:#1c2028;--border:#252b35;--border-bright:#2e3744;--text:#d4dae6;--text-dim:#5e6a7a;--text-muted:#3a4250;--accent-tamar:#3fb97e;--accent-fija:#e06c4a;--accent-fwd:#6b9ff7;--accent-warn:#c9a83a;--accent-pos:#3fb97e;--accent-neg:#e06c4a;--font-mono:"IBM Plex Mono", "Courier New", monospace;--font-ui:"IBM Plex Sans", system-ui, sans-serif;--radius:3px;--sidebar-w:220px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5}.app{height:100vh;display:flex;overflow:hidden}.main-content{background:var(--bg);flex:1;padding:0;overflow-y:auto}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-alt);border-right:1px solid var(--border);flex-direction:column;padding:0;display:flex}.sidebar-logo{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px 16px 16px;display:flex}.logo-mark{background:var(--accent-tamar);color:#000;width:32px;height:32px;font-family:var(--font-mono);border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.logo-title{font-family:var(--font-mono);color:var(--text);letter-spacing:.02em;font-size:13px;font-weight:600}.logo-sub{color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase;margin-top:1px;font-size:10px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex}.nav-item{color:var(--text-dim);font-family:var(--font-ui);cursor:pointer;border-radius:var(--radius);text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;padding:8px 10px;font-size:12px;transition:background .1s,color .1s;display:flex}.nav-item:hover{background:var(--surface);color:var(--text)}.nav-item.active{background:var(--surface-raised);color:var(--text)}.nav-item.active svg{stroke:var(--accent-tamar)}.sidebar-footer{border-top:1px solid var(--border);padding:12px 16px 16px}.sidebar-footer-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:9px}.sidebar-footer-value{font-family:var(--font-mono);color:var(--accent-warn);font-size:11px}.sidebar-footer-hint{color:var(--text-muted);margin-top:2px;font-size:10px}.dashboard{max-width:1600px;padding:24px 28px 48px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-title{font-family:var(--font-mono);color:var(--text);letter-spacing:-.01em;font-size:18px;font-weight:600}.page-sub{color:var(--text-dim);font-size:11px;font-family:var(--font-mono);margin-top:3px}.scenario-selector{flex-direction:column;gap:4px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:10px}.select{background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);border-radius:var(--radius);cursor:pointer;min-width:220px;padding:6px 10px;font-size:12px}.select:focus{outline:1px solid var(--accent-tamar)}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:16px 16px 8px}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-size:11px}.card-badge{font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:2px;padding:2px 8px;font-size:10px}.section-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin:20px 0 10px;padding-bottom:6px;display:flex}.section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:10px}.section-header.matured .section-title{color:var(--text-muted)}.loading-badge{font-family:var(--font-mono);color:var(--accent-warn);font-size:10px;animation:1.2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow-x:auto}.bond-table{border-collapse:collapse;width:100%;font-size:12px}.bond-table thead th{background:var(--surface);text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:10px}.bond-row{border-bottom:1px solid var(--border);transition:background 80ms}.bond-row:last-child{border-bottom:none}.bond-row:hover{background:var(--surface)}.bond-table td{vertical-align:middle;white-space:nowrap;padding:9px 10px}.bond-table.faded{opacity:.7}.ticker-cell{align-items:center;gap:6px;display:flex}.ticker{font-family:var(--font-mono);color:var(--text);font-size:13px;font-weight:600}.type-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-radius:2px;padding:2px 5px;font-size:9px}.type-badge.dual{color:var(--accent-fwd);background:#6b9ff726;border:1px solid #6b9ff74d}.type-badge.tamar_puro{color:var(--accent-tamar);background:#3fb97e26;border:1px solid #3fb97e4d}.type-badge.matured{color:var(--text-dim);border:1px solid var(--border);background:#5e6a7a26}.type-badge.large{padding:3px 7px;font-size:10px}.dom-badge{font-family:var(--font-mono);letter-spacing:.05em;border-radius:2px;padding:2px 7px;font-size:10px;font-weight:600}.dom-badge.TAMAR{color:var(--accent-tamar);background:#3fb97e26;border:1px solid #3fb97e59}.dom-badge.FIJA{color:var(--accent-fija);background:#e06c4a26;border:1px solid #e06c4a59}.mono{font-family:var(--font-mono);font-size:12px}.bold{font-weight:600}.dim{color:var(--text-dim)}.extrap-note{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;flex-direction:column;gap:4px;margin-top:12px;padding:10px 14px;display:flex}.extrap-note-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.extrap-note-row{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.warn{color:var(--accent-warn)}.pos{color:var(--accent-pos)}.neg{color:var(--accent-neg)}.breakeven{color:var(--accent-fwd)}.price-editable{font-family:var(--font-mono);cursor:pointer;border:1px dashed #0000;border-radius:2px;padding:2px 4px;font-size:12px;transition:border-color .1s}.price-editable:hover{border-color:var(--border-bright)}.price-input{font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--accent-tamar);color:var(--text);border-radius:2px;outline:none;width:90px;padding:2px 6px;font-size:12px}.detail-btn{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius);cursor:pointer;padding:3px 10px;font-size:10px;transition:border-color .1s,color .1s}.detail-btn:hover{border-color:var(--accent-tamar);color:var(--accent-tamar)}.detail-header{margin-bottom:20px}.detail-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:12px;display:flex}.back-btn{font-family:var(--font-mono);color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:11px;transition:color .1s}.back-btn:hover{color:var(--accent-tamar)}.price-editor{flex-direction:column;gap:4px;display:flex}.price-editor-row{align-items:center;gap:6px;display:flex}.price-input-lg{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);outline:none;width:130px;padding:6px 10px;font-size:14px}.price-input-lg:focus{border-color:var(--accent-tamar)}.btn-apply{font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);cursor:pointer;padding:6px 12px;font-size:11px;transition:border-color .1s}.btn-apply:hover{border-color:var(--accent-tamar)}.meta-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:20px;display:grid}.meta-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.meta-card.tamar{border-left:2px solid var(--accent-tamar)}.meta-card.fija{border-left:2px solid var(--accent-fija)}.meta-card.warn{border-left:2px solid var(--accent-warn)}.meta-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin-bottom:4px;font-size:10px}.meta-value{font-family:var(--font-mono);color:var(--text);font-size:14px;font-weight:500}.results-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:20px;display:grid}.result-card{border:1px solid var(--border-bright);border-radius:var(--radius);background:#1e2530;padding:12px 14px;position:relative;overflow:hidden}.result-card:before{content:"";width:100%;height:2px;position:absolute;top:0;left:0}.result-card.tamar:before{background:var(--accent-tamar)}.result-card.fija:before{background:var(--accent-fija)}.result-card.final:before{background:var(--accent-fwd)}.result-card.neutral:before{background:var(--text-dim)}.result-card.pos:before{background:var(--accent-pos)}.result-card.neg:before{background:var(--accent-neg)}.result-card.TAMAR:before{background:var(--accent-tamar)}.result-card.FIJA:before{background:var(--accent-fija)}.result-card.large{grid-column:span 1}.result-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin-bottom:6px;font-size:10px}.result-value-row{align-items:baseline;gap:6px;display:flex}.result-value{font-family:var(--font-mono);color:var(--text);font-size:16px;font-weight:600}.result-value-tag{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;background:var(--surface-raised);border-radius:2px;padding:1px 5px;font-size:10px;font-weight:600}.result-sub{color:#8a96a8;font-size:12px;font-family:var(--font-mono);margin-top:4px}.dualleg-header{justify-content:space-between;align-items:center;margin-bottom:10px;padding:0 4px;display:flex}.dualleg-winner{font-family:var(--font-mono);color:var(--text);font-size:12px}.audit-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:20px;padding:16px}.audit-wrapper{margin-top:8px}.audit-note{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-alt);border-radius:2px;margin-bottom:12px;padding:8px 12px;font-size:10px;line-height:1.6}.audit-table{border-collapse:collapse;width:100%;font-size:12px}.audit-table tr{border-bottom:1px solid var(--border)}.audit-table tr:last-child{border-bottom:none}.audit-label{color:var(--text-dim);width:320px;padding:6px 12px 6px 0;font-size:11px}.audit-value{font-family:var(--font-mono);color:var(--text);white-space:nowrap;padding:6px 16px 6px 0;font-size:12px}.audit-note-cell{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);padding:6px 0}.scenario-list{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.scenario-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;transition:border-color .1s}.scenario-card.active-scenario{border-color:var(--accent-tamar)}.scenario-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.scenario-name{font-family:var(--font-mono);color:var(--text);font-size:13px;font-weight:500}.active-badge{font-family:var(--font-mono);color:var(--accent-tamar);letter-spacing:.05em;background:#3fb97e26;border:1px solid #3fb97e4d;border-radius:2px;margin-left:10px;padding:2px 7px;font-size:9px}.scenario-actions{gap:6px;display:flex}.scenario-preview{flex-wrap:wrap;align-items:center;gap:12px;font-size:11px;display:flex}.rate-chips{flex-wrap:wrap;gap:4px;display:flex}.rate-chip{font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:2px;padding:2px 6px;font-size:10px}.editor-panel{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);margin-top:8px;padding:20px}.editor-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.editor-title{font-family:var(--font-mono);font-size:14px;font-weight:600}.editor-actions{gap:8px;display:flex}.editor-fields{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.input-text{font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);outline:none;min-width:280px;padding:7px 10px;font-size:13px}.input-text.short{min-width:120px}.input-text:focus{border-color:var(--accent-tamar)}.editor-hint{color:var(--text-dim);background:var(--bg-alt);font-size:11px;font-family:var(--font-mono);border-radius:2px;margin-bottom:16px;padding:8px 12px;line-height:1.6}.monthly-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;display:grid}.month-cell{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;transition:border-color .1s}.month-cell.modified{border-color:var(--accent-tamar)}.month-label{font-family:var(--font-mono);text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;font-size:10px;display:block}.month-input-row{align-items:center;gap:4px;display:flex}.month-input{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);color:var(--text);-moz-appearance:textfield;border-radius:2px;outline:none;width:70px;padding:4px 6px;font-size:13px}.month-input:focus{border-color:var(--accent-tamar)}.month-input::-webkit-outer-spin-button{-webkit-appearance:none}.month-input::-webkit-inner-spin-button{-webkit-appearance:none}.month-unit{font-family:var(--font-mono);color:var(--text-dim);font-size:12px}.lecap-select{font-family:var(--font-mono);background:var(--surface-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;outline:none;padding:2px 6px;font-size:11px}.lecap-select:hover{border-color:var(--border-bright)}.lecap-select:focus{border-color:var(--accent-tamar)}.lecap-selector-row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.lecap-selector-label{font-family:var(--font-mono);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.btn-primary{font-family:var(--font-mono);background:var(--accent-tamar);color:#000;border-radius:var(--radius);cursor:pointer;border:none;padding:8px 16px;font-size:12px;font-weight:600;transition:opacity .1s}.btn-primary:hover{opacity:.85}.btn-secondary{font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius);cursor:pointer;padding:6px 12px;font-size:11px;transition:border-color .1s,color .1s}.btn-secondary:hover{border-color:var(--border-bright);color:var(--text)}.loading-screen,.error-screen{height:100vh;font-family:var(--font-mono);color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent-tamar);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-inline{font-family:var(--font-mono);color:var(--accent-warn);padding:16px 0;font-size:11px;animation:1.2s infinite pulse}.error-hint{color:var(--text-muted);font-size:11px}.chart-empty{height:80px;color:var(--text-muted);font-family:var(--font-mono);justify-content:center;align-items:center;font-size:11px;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:#3fb97e40}
