:root{--bg:#071016;--panel:#0d1b22;--line:#20343b;--text:#e8f0ed;--muted:#8ca3a1;--mint:#9ce6c6;--amber:#e6bd79}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% 0,#16302d 0,transparent 30%),var(--bg);color:var(--text);font:14px Inter,system-ui,sans-serif}header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 5vw;gap:44px}.brand{font-weight:800;letter-spacing:.18em;display:flex;align-items:center;gap:10px}.brand small{color:var(--muted);font-size:9px;letter-spacing:.12em;margin-left:4px}.orb{width:22px;height:22px;border:2px solid var(--mint);border-radius:50%;box-shadow:0 0 20px #72d9bd88}nav{display:flex;gap:25px;flex:1}nav a{color:var(--muted);font-size:12px}nav .active{color:var(--text)}.status{font-size:10px;color:var(--mint);letter-spacing:.12em}.status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:7px}main{max-width:1300px;margin:auto;padding:70px 5vw}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:64px}.eyebrow{color:var(--mint);font-size:10px;letter-spacing:.16em}.hero h1{font-size:64px;line-height:1.02;margin:14px 0 20px;letter-spacing:-.06em}.hero h1 em{font-style:normal;color:var(--mint)}.muted{color:var(--muted);max-width:520px;line-height:1.7}.hero-card{border:1px solid var(--line);background:#0c1a20;padding:24px 28px;min-width:230px;display:grid;gap:10px}.hero-card span,.hero-card small{color:var(--muted);font-size:10px;letter-spacing:.1em}.hero-card strong{font-size:20px;color:var(--mint)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:42px}.metrics div{padding:22px 24px;border-right:1px solid var(--line)}.metrics div:last-child{border:0}.metrics span,.metrics small{display:block;color:var(--muted);font-size:10px;letter-spacing:.1em}.metrics strong{display:block;font-size:28px;margin:9px 0}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.panel{background:linear-gradient(145deg,#102129,#0b171d);border:1px solid var(--line);padding:26px}.panel-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.panel h2{font-size:20px;margin:8px 0}.tag{font-size:10px;color:var(--amber);border:1px solid #745c35;padding:6px 8px}.table-row{display:grid;grid-template-columns:1.2fr .7fr .7fr .7fr;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.table-row.head{color:var(--muted);font-size:10px;letter-spacing:.1em}.ticker{font-weight:700}.ticker small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.score{color:var(--mint);font-weight:700}.confidence{color:var(--amber)}.portfolio{padding:15px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between}.portfolio small{display:block;color:var(--muted);margin-top:5px}.portfolio b{color:var(--mint)}@media(max-width:900px){header{gap:15px}nav{display:none}.hero{display:block}.hero-card{margin-top:25px}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.hero h1{font-size:46px}}

button{font:inherit}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-panel{width:min(100%,460px);padding:38px;border:1px solid #294150;border-radius:22px;background:rgba(15,27,36,.94);box-shadow:0 28px 70px #0006}.auth-brand{display:flex;gap:12px;align-items:center;margin-bottom:34px;color:var(--mint);letter-spacing:.14em}.auth-brand b{font-size:23px}.auth-brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.18em;margin-top:5px}.auth-panel h1{font-size:32px;letter-spacing:-.04em;margin:6px 0 12px}.auth-panel form,.compact-form{display:grid;gap:16px}.auth-panel label,.profile-drawer label{display:grid;gap:8px;color:#b9c5d0}.auth-panel input,.profile-drawer input,.compact-form input{border:1px solid #30495a;background:#091218;border-radius:9px;color:#f1f5f9;font:inherit;padding:13px}.auth-panel input:focus,.profile-drawer input:focus{outline:0;border-color:var(--mint);box-shadow:0 0 0 3px #45d6c522}.auth-submit,.profile-button{border:0;border-radius:9px;background:#3dcdbc;color:#06211e;font-weight:750;padding:14px;cursor:pointer}.auth-hint,.auth-error{color:#8495a7;font-size:12px;line-height:1.5}.auth-error{color:#ffabab}nav button{border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;padding:8px 0}nav button.active{color:var(--text);border-bottom:1px solid var(--mint)}.avatar{width:50px;height:50px;border-radius:50%;border:1px solid #397079;background:#12313b;color:#43d1c0;font-size:24px;font-weight:750;cursor:pointer}.profile-drawer{position:fixed;z-index:4;right:26px;top:88px;width:min(420px,calc(100vw - 40px));padding:28px;border:1px solid #43697a;border-radius:24px;background:#0e1b23;box-shadow:0 24px 70px #0009}.profile-drawer h2{font-size:30px;margin:10px 0 4px}.profile-email{color:var(--muted);font-size:18px;margin:0 0 28px}.profile-drawer form{display:grid;gap:18px;border-top:1px solid var(--line);padding-top:26px}.profile-drawer details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.profile-drawer summary{cursor:pointer;font-size:17px}.profile-drawer details label{margin-top:14px}.profile-logout,.text-button{border:1px solid #804042;border-radius:9px;background:none;color:#ffb5b5;padding:13px;width:100%;cursor:pointer;margin-top:16px}.text-button{width:auto;margin:0;border-color:#365c69;color:#9ce6c6;padding:8px 12px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 0;border-top:1px solid var(--line)}.list-row small{display:block;color:var(--muted);margin-top:5px}.notice{border-left:2px solid var(--amber);padding:14px;color:#d5c49e;background:#352a191f}.compact-form{grid-template-columns:1fr auto}@media(max-width:900px){.avatar{margin-left:auto}.status{display:none}.compact-form{grid-template-columns:1fr}}

.landing{max-width:1540px;margin:auto;min-height:100vh;padding:0 6vw}.landing-nav{padding:28px 0;height:auto;border:0}.landing-access,.landing-secondary{border:1px solid #34535d;border-radius:9px;background:transparent;color:var(--text);padding:13px 22px;cursor:pointer;text-decoration:none}.landing-hero{min-height:780px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:30px}.landing-copy{position:relative;z-index:1}.landing-copy h1{font-size:clamp(62px,7.2vw,112px);letter-spacing:-.075em;line-height:.95;margin:30px 0}.landing-copy h1 em{display:block;color:#4ad5c7;font-style:normal}.landing-copy>p:not(.eyebrow){font-size:20px;line-height:1.55;color:#b6c6d0;max-width:620px}.landing-actions{display:flex;gap:16px;margin:42px 0 28px}.landing-primary{border:0;border-radius:10px;background:#45d0c1;color:#06211e;font-size:16px;font-weight:750;padding:17px 22px;cursor:pointer;text-decoration:none}.landing-primary span{margin-left:20px;font-size:22px}.landing-secondary{display:grid;place-items:center}.landing-copy>small{color:#8196a5}.landing-orbit{height:560px;position:relative;background:radial-gradient(circle at center,#164d4c 0,rgba(15,68,67,.7) 24%,transparent 66%)}.landing-orbit i{position:absolute;inset:7%;border:1px solid #2b7775;border-radius:50%}.landing-orbit i+ i{inset:22%;border-color:#285b5c}.landing-orbit b{position:absolute;inset:0;display:grid;place-items:center;color:#4ad5c7;font-size:52px;letter-spacing:-.1em}.how{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding:54px 0 82px}.how span{color:#4ad5c7;font-weight:750;letter-spacing:.15em}.how h2{font-size:23px;margin:20px 0 10px;letter-spacing:-.03em}.how p{color:#a9bdc9;line-height:1.55;max-width:360px}.landing footer{border-top:1px solid var(--line);padding:26px 0;color:#8196a5;font-size:11px;letter-spacing:.13em}.landing footer span{float:right}@media(max-width:900px){.landing{padding:0 24px}.landing-hero{grid-template-columns:1fr;min-height:auto;padding:120px 0 50px}.landing-orbit{height:300px;order:-1}.landing-copy h1{font-size:62px}.how{grid-template-columns:1fr;gap:18px}.landing footer span{display:none}}

.password-input{display:flex;position:relative;width:100%}.password-input input{width:100%;padding-right:48px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#9eb6c0;font-size:18px;cursor:pointer;padding:8px}.password-toggle:hover{color:#4ad5c7}
.dashboard-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:0 0 42px}.dashboard-heading h1{font-size:42px;letter-spacing:-.05em;margin:10px 0}.dashboard-heading .hero-card{min-width:300px}@media(max-width:900px){.dashboard-heading{display:block}.dashboard-heading .hero-card{margin-top:22px}}
.mandate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.mandate-card details{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.mandate-card summary{cursor:pointer;color:var(--mint);font-weight:700}.mandate-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.mandate-stats span{color:var(--muted);font-size:11px}.mandate-stats b{display:block;color:var(--text);font-size:15px;margin-top:5px}.mandate-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.mandate-form label{display:grid;gap:7px;color:#b9c5d0}.mandate-form input,.compact-form select{border:1px solid #30495a;background:#091218;border-radius:9px;color:#f1f5f9;font:inherit;padding:11px}.mandate-form label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}.mandate-form .profile-button{grid-column:1/-1}@media(max-width:900px){.mandate-grid{grid-template-columns:1fr}.mandate-form{grid-template-columns:1fr}}
.portfolio-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px}.history-panel{margin-top:20px}@media(max-width:900px){.portfolio-heading{display:block}.portfolio-heading .profile-button{margin-top:16px}}
.portfolio-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:-10px 0 25px}.portfolio-tabs button{border:1px solid var(--line);border-radius:20px;background:#0b171d;color:var(--muted);padding:8px 13px;cursor:pointer}.portfolio-tabs button.active{border-color:#4ad5c7;color:#4ad5c7;background:#173332}
.decision-preview{display:grid;gap:4px;border-left:2px solid #4ad5c7;padding:9px 12px;background:#1633302e}.decision-preview span{color:#4ad5c7;font-size:11px;font-weight:800;letter-spacing:.08em}.decision-preview small{color:#a9bdc9;line-height:1.35}
.score-form{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.score-form label{display:grid;gap:5px;color:#b9c5d0}.score-form input{border:1px solid #30495a;background:#091218;border-radius:8px;color:#f1f5f9;padding:9px}.score-form small{color:var(--muted)}.score-total{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}.score-form .profile-button{grid-column:1/-1}@media(max-width:600px){.score-form{grid-template-columns:1fr}}
.aggregate{border:1px solid var(--line);background:linear-gradient(120deg,#102b2c,#0d1a22);padding:26px;margin-bottom:25px}.aggregate h2{font-size:34px;margin:8px 0}.charts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.chart{border-top:1px solid var(--line);padding-top:12px;color:var(--muted)}.chart span{font-size:12px}.chart svg{width:100%;height:130px;margin-top:6px}.chart rect{fill:#4ad5c7}.chart rect.invested{fill:#426d80}.chart text{fill:#9eb6c0;font-size:10px}.profile-portfolios{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.portfolio-toggle{display:flex!important;justify-content:space-between;align-items:center;margin-top:10px}.portfolio-toggle input{width:auto!important}@media(max-width:700px){.charts{grid-template-columns:1fr}}
.mandate-card .panel-head>div{width:100%}.mandate-card summary{margin:10px 0}.form-section{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);padding:14px 0}.form-section>b{grid-column:1/-1;color:var(--mint)}.form-section label{display:grid;gap:5px;color:#b9c5d0}.form-section input{border:1px solid #30495a;background:#091218;border-radius:8px;color:#f1f5f9;padding:9px}.form-section label:has(input[type=checkbox]){display:flex;align-items:center;gap:7px}.form-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.form-actions .profile-button{flex:1}@media(max-width:600px){.form-section{grid-template-columns:1fr}}

/* Escala única y comportamiento móvil. */
:root{--radius:14px;--space:clamp(18px,3vw,32px)}
body{font-size:15px;line-height:1.45}header{height:auto;min-height:76px;gap:clamp(16px,3vw,36px);padding:12px 5vw}nav{gap:clamp(14px,2vw,24px);overflow-x:auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav button{white-space:nowrap}.avatar{flex:0 0 auto}.panel,.aggregate,.hero-card{border-radius:var(--radius);padding:var(--space)}.panel h2{font-size:clamp(19px,2vw,24px)}main{padding:clamp(32px,6vw,70px) 5vw}h1{font-size:clamp(34px,5vw,48px);letter-spacing:-.05em;line-height:1.04;margin:8px 0 14px}.muted{font-size:15px}.metrics{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.metrics div{min-width:0}.metrics strong{font-size:clamp(21px,2.6vw,28px);overflow-wrap:anywhere}.mandate-card details{margin-top:20px;padding-top:16px}.mandate-card summary{padding:6px 0}.card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.state-button{border:1px solid #785b2d;border-radius:9px;background:#302719;color:#f0c875;padding:8px 12px;cursor:pointer;font-weight:700}.state-button:hover{border-color:#e6bd79}.mandate-card .panel-head>div:first-child{width:auto}.mandate-card .panel-head{gap:16px}.portfolio-selector{display:grid;gap:10px;margin-top:14px}.portfolio-selector select,.compact-form select{width:100%;border:1px solid #30495a;background:#091218;border-radius:9px;color:#f1f5f9;font:inherit;padding:11px}.portfolio-selector .muted{margin:0;font-size:12px}.portfolio-selector .text-button{width:100%;margin:0}.profile-portfolios small{display:block;line-height:1.45}.form-actions .text-button{margin:0}.form-actions .profile-button{min-width:190px}.table-row{gap:12px}.landing-nav{min-height:76px}.landing-copy>p:not(.eyebrow){font-size:clamp(17px,2vw,20px)}
@media(max-width:900px){header{align-items:center}nav{display:flex;order:3;width:100%;flex-basis:100%;padding-bottom:2px}.brand small{display:none}.status{margin-left:auto}.dashboard-heading h1{font-size:clamp(34px,7vw,42px)}.landing-copy h1{font-size:clamp(48px,12vw,62px)}.landing-nav{flex-wrap:nowrap}.landing-nav .brand small{display:block}.landing-hero{padding-top:72px}.landing-orbit{height:260px}.mandate-card .panel-head{align-items:flex-start}.form-actions{display:grid}.form-actions .profile-button{width:100%}}
@media(max-width:600px){header{padding:10px 18px;gap:12px}.brand{font-size:13px}.orb{width:18px;height:18px}.avatar{width:42px;height:42px;font-size:18px}main{padding:28px 18px}.metrics{grid-template-columns:1fr 1fr;margin-bottom:26px}.metrics div{padding:16px 14px;border-bottom:1px solid var(--line)}.metrics div:nth-child(2){border-right:0}.metrics div:nth-last-child(-n+2){border-bottom:0}.grid,.charts,.mandate-grid{gap:14px}.panel,.aggregate,.hero-card{padding:20px}.table-row{grid-template-columns:1.35fr .55fr .7fr;gap:8px}.table-row>*:last-child{display:none}.table-row.head>*:last-child{display:none}.panel-head{display:block}.panel-head>.text-button{margin-top:10px}.mandate-stats{grid-template-columns:1fr 1fr}.mandate-stats span:last-child{grid-column:1/-1}.card-actions{justify-content:flex-start;margin-top:12px}.form-section{gap:12px}.portfolio-heading h1{font-size:36px}.profile-drawer{right:12px;top:12px;width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;padding:22px;border-radius:18px}.profile-drawer h2{font-size:25px}.landing{padding:0 18px}.landing-copy h1{font-size:48px}.landing-actions{flex-direction:column;margin:30px 0 22px}.landing-primary,.landing-secondary{text-align:center}.how{padding:38px 0 55px}.landing footer{font-size:9px}.auth-shell{padding:16px}.auth-panel{padding:26px 22px;border-radius:18px}}
.value-history{margin-bottom:20px}.history-kpi{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:16px 0 8px}.history-kpi b{font-size:24px;color:var(--mint)}.history-kpi span{color:var(--muted);font-size:12px}.history-chart-wrap{position:relative;margin-top:8px}.history-chart{display:block;width:100%;height:auto;min-height:180px}.history-chart line{stroke:#31515a;stroke-width:1}.history-chart polyline{fill:none;stroke:#4ad5c7;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.history-chart-labels{position:absolute;inset:0;pointer-events:none}.history-chart-labels span{position:absolute;left:4px;transform:translateY(-50%);color:var(--muted);font-size:10px}.history-chart-markers{position:absolute;inset:0}.history-chart-markers span{position:absolute;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:#e6bd79;border:2px solid #102129;box-sizing:border-box}.history-chart-markers span.history-chart-marker-last{width:9px;height:9px;margin:-4.5px 0 0 -4.5px}.history-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}@media(max-width:600px){.history-kpi{display:grid;gap:5px}.history-kpi b{font-size:21px}.history-chart{min-height:130px}}
.mandate-grid,.mandate-card,.mandate-card details,.mandate-form,.form-section{min-width:0}.mandate-form{grid-template-columns:minmax(0,1fr)}.form-section{grid-template-columns:repeat(2,minmax(0,1fr))}.mandate-form input:not([type=checkbox]),.mandate-form select{width:100%;min-width:0}.form-section label{min-width:0;overflow-wrap:anywhere}.form-actions{width:100%}.form-actions .text-button{white-space:normal}@media(max-width:600px){.form-section{grid-template-columns:minmax(0,1fr)}}
.profile-drawer{max-height:calc(100dvh - 112px);overflow-y:auto;overscroll-behavior:contain}.mandate-card{display:flex;flex-direction:column;gap:14px}.mandate-card .panel-head{order:1;margin-bottom:0}.mandate-card details{order:2;margin-top:0}.mandate-card .mandate-stats{order:3}.mandate-card .decision-preview{order:4}.incorporated-assets{order:5;border-top:1px solid var(--line);padding-top:14px}.asset-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #1d3037}.asset-row:first-of-type{border-top:0}.asset-row small{display:block;color:var(--muted);margin-top:3px;font-size:11px}.asset-row>span{text-align:right;color:var(--mint);font-weight:700;white-space:nowrap}.asset-row>span small{font-weight:400}.risk-profile{color:var(--mint);font-size:10px;letter-spacing:.12em;margin:0 0 3px}.profile-definition{color:var(--muted);font-size:12px;line-height:1.45;margin:0;max-width:360px}
/* Densidad operativa: escala compacta coherente con Orion 8. */
body{font-size:13px}.eyebrow{font-size:9px}.muted{font-size:13px;line-height:1.55}main{padding-top:42px;padding-bottom:42px}h1,.dashboard-heading h1{font-size:34px}.panel,.aggregate,.hero-card{padding:22px}.panel h2{font-size:18px;margin:5px 0}.dashboard-heading{margin-bottom:26px}.metrics{margin-bottom:26px}.metrics div{padding:16px 18px}.metrics strong{font-size:22px;margin:5px 0}.metrics span,.metrics small{font-size:9px}.table-row{padding:11px 0}.list-row{padding:12px 0}.ticker small,.list-row small{font-size:11px}.profile-button,.auth-submit{padding:10px 13px;font-size:13px}.text-button{padding:7px 10px;font-size:12px}.mandate-stats{padding:12px 0}.mandate-stats b{font-size:14px}.mandate-form{margin-top:12px;gap:10px}.form-section{padding:11px 0;gap:8px}.form-section input,.mandate-form input{padding:8px;font-size:13px}.form-actions{gap:7px}.mandate-card summary{font-size:14px}.profile-drawer{padding:22px}.profile-drawer h2{font-size:25px}.profile-email{font-size:15px;margin-bottom:18px}.profile-drawer form{gap:14px;padding-top:18px}.profile-drawer details{padding:14px 0}.profile-drawer summary{font-size:14px}.profile-drawer input,.auth-panel input,.compact-form input,.portfolio-selector select{padding:10px;font-size:13px}.score-form input{padding:8px;font-size:13px}.aggregate h2{font-size:28px}.chart svg{height:115px}@media(max-width:600px){main{padding-top:26px;padding-bottom:26px}h1,.dashboard-heading h1{font-size:30px}.panel,.aggregate,.hero-card{padding:18px}.profile-drawer{top:10px;max-height:calc(100dvh - 20px)}}
.portfolio-selector-panel{display:flex;align-items:center;gap:22px;margin-bottom:20px}.portfolio-selector-panel>div:first-child{min-width:190px}.multi-selector{display:flex;flex:1;gap:8px;flex-wrap:wrap}.multi-selector label{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:18px;padding:7px 10px;color:var(--muted);cursor:pointer}.multi-selector input{accent-color:#4ad5c7}.selected-portfolios{display:grid;gap:18px}.portfolio-columns{display:grid;grid-template-columns:1.4fr .6fr;gap:22px;border-top:1px solid var(--line);padding-top:12px}.portfolio-history-small{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.portfolio-history-small .history-chart{min-height:110px;max-height:160px}.portfolio-history-small .history-kpi b{font-size:20px}@media(max-width:800px){.portfolio-selector-panel{display:grid;gap:12px}.portfolio-columns{grid-template-columns:1fr}.multi-selector{gap:6px}}@media(max-width:600px){.multi-selector label{font-size:12px;padding:6px 8px}}
.portfolio-local-metrics{margin:14px 0 16px}.portfolio-local-metrics div{padding:12px 14px}.portfolio-local-metrics strong{font-size:19px}.mandate-stats{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:600px){.mandate-stats{grid-template-columns:1fr 1fr}.mandate-stats span:last-child{grid-column:auto}}
.mandate-stats span{display:grid;grid-template-rows:34px auto;align-items:start}.mandate-stats b{margin-top:0}
.mandate-selector{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px}.mandate-selector h2{margin:4px 0 0;font-size:18px}.mandate-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.mandate-tabs button{border:1px solid var(--line);border-radius:18px;background:#0b171d;color:var(--muted);padding:8px 13px;cursor:pointer;font:inherit;font-size:12px}.mandate-tabs button.active{border-color:#4ad5c7;color:#4ad5c7;background:#173332}.mandate-grid.single-card{grid-template-columns:minmax(0,1fr);max-width:980px}.mandate-grid.single-card .mandate-card{width:100%}@media(max-width:700px){.mandate-selector{display:grid;gap:12px}.mandate-tabs{justify-content:flex-start}}
.mandate-card[hidden]{display:none!important}
.multi-selector{gap:14px}.multi-selector label{position:relative;border-color:var(--line);border-radius:28px;background:#0b171d;padding:12px 26px;color:var(--muted);font-size:14px;line-height:1;transition:border-color .15s,color .15s,background .15s}.multi-selector input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.multi-selector label:has(input:checked){border-color:#4ad5c7;background:#173332;color:#4ad5c7}.multi-selector label:hover{border-color:#4d7279;color:var(--text)}@media(max-width:600px){.multi-selector{gap:8px}.multi-selector label{padding:10px 14px;font-size:12px}}
.opportunity-settings{border:1px solid var(--line);border-radius:12px;background:#0b171d;margin:20px 0}.opportunity-settings summary{padding:13px 16px;color:var(--mint);font-weight:700;cursor:pointer}.opportunity-settings[open] summary{border-bottom:1px solid var(--line)}.opportunity-settings .panel{border:0;border-radius:0;background:transparent}.opportunity-list{margin-top:20px}.discipline-note{border-left:2px solid var(--amber);background:#352a191f;color:#c9d1d2;margin-top:16px;padding:13px 16px}.discipline-note p:last-child{margin:5px 0 0;line-height:1.5;font-size:12px}

/* Auditoría visual: escala y densidad operativa alineadas con Orion 8. */
body{font-family:Arial,Helvetica,sans-serif;font-size:14px;background:#0b1016}main:not(.landing){max-width:1500px;padding:30px 42px 52px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700}.muted{font-size:12px;line-height:1.5}h1,.dashboard-heading h1{font-size:30px;letter-spacing:-.8px;margin:0}h2,.panel h2{font-size:18px;letter-spacing:-.25px}.dashboard-heading{margin-bottom:24px}.panel,.aggregate,.hero-card{border-radius:10px;padding:21px}.panel-head{margin-bottom:14px}.metrics{margin-bottom:20px;border-radius:10px}.metrics div{padding:14px 16px}.metrics span,.metrics small{font-size:10px}.metrics strong{font-size:20px;line-height:1.25;margin:5px 0}.grid,.mandate-grid,.selected-portfolios{gap:16px}.table-row{padding:12px 0;font-size:12px}.table-row.head{font-size:10px}.list-row{padding:12px 0;font-size:12px}.ticker small,.list-row small{font-size:11px}.tag{font-size:10px;padding:5px 8px;border-radius:20px}.profile-button,.auth-submit{border-radius:8px;padding:11px 13px;font-size:13px}.text-button{border-radius:8px;padding:7px 10px;font-size:12px}.mandate-selector,.portfolio-selector-panel{margin-bottom:16px}.mandate-tabs button,.portfolio-tabs button{font-size:12px;padding:8px 12px}.multi-selector label{font-size:13px;padding:10px 20px}.mandate-card{gap:12px}.mandate-stats{gap:8px;padding:12px 0}.mandate-stats span{font-size:11px}.mandate-stats b{font-size:14px}.form-section{padding:11px 0}.form-section input,.mandate-form input,.score-form input,#currency-form input,#currency-form select{font-size:14px;padding:9px}.opportunity-settings{border-radius:10px;margin:16px 0}.opportunity-settings summary{padding:12px 14px;font-size:13px}.opportunity-list{margin-top:16px}.discipline-note{margin-top:14px;padding:11px 13px}.profile-drawer{border-radius:12px;padding:20px}.profile-drawer h2{font-size:24px}.profile-email{font-size:14px}.charts{gap:16px}.chart svg{height:110px}.history-kpi b{font-size:22px}
@media(max-width:900px){main:not(.landing){padding:24px}.panel,.aggregate,.hero-card{padding:18px}.metrics div{padding:13px 14px}.portfolio-selector-panel{align-items:start}.mandate-selector{align-items:start}}@media(max-width:600px){main:not(.landing){padding:20px 15px 36px}h1,.dashboard-heading h1{font-size:28px}.panel,.aggregate,.hero-card{padding:17px}.metrics strong{font-size:19px}.metrics div{padding:12px}.multi-selector label{font-size:12px;padding:9px 13px}.mandate-tabs button{font-size:11px;padding:7px 10px}.profile-drawer{padding:18px}.table-row{font-size:11px}.list-row{font-size:12px}}
.mandate-selector.portfolio-selector-panel{margin-bottom:16px;padding:18px 21px}.mandate-selector.portfolio-selector-panel .mandate-tabs{flex:1;justify-content:flex-end}.mandate-card .mandate-stats{order:2;margin:0}.mandate-card details{order:3}.mandate-card .decision-preview{order:4}.mandate-card .incorporated-assets{order:5}@media(max-width:800px){.mandate-selector.portfolio-selector-panel .mandate-tabs{justify-content:flex-start}}@media(max-width:600px){.mandate-selector.portfolio-selector-panel{padding:17px}.mandate-selector.portfolio-selector-panel .mandate-tabs{width:100%}}
#admin>.grid{align-items:stretch;margin-bottom:16px}#admin>.grid>.panel{min-width:0}#admin>.panel{margin-top:0}.notice:empty{display:none}#admin .compact-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}#admin .compact-form input{min-width:0}#admin #invite-result:not(:empty){margin:14px 0 0}@media(max-width:700px){#admin .compact-form{grid-template-columns:minmax(0,1fr)}#admin .compact-form .profile-button{width:100%}}
.mandate-grid.single-card{max-width:none}.mandate-selector.portfolio-selector-panel{align-items:center}.mandate-selector.portfolio-selector-panel>div:first-child{min-width:520px}.mandate-selector.portfolio-selector-panel .mandate-tabs{justify-content:flex-start}.mandate-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;margin:0 0 16px;padding:0}.mandate-summary span{padding:14px 16px;border-right:1px solid var(--line)}.mandate-summary span:last-child{border-right:0}.mandate-summary span{grid-template-rows:34px auto}@media(max-width:900px){.mandate-selector.portfolio-selector-panel>div:first-child{min-width:0}.mandate-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.mandate-summary span:nth-child(2){border-right:0}.mandate-summary span:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:600px){.mandate-selector.portfolio-selector-panel{align-items:start}.mandate-summary span{padding:12px}.mandate-summary span:last-child{border-right:0}}
#admin>.eyebrow{margin:0 0 7px}#admin>h1{margin:0}.admin-description{margin:12px 0 24px;max-width:650px}#admin>.grid{margin-top:0}
.portfolio-selector-panel>div:first-child{min-width:520px}.portfolio-selector-panel .multi-selector{justify-content:flex-start;gap:8px}.portfolio-selector-panel .multi-selector label{border-radius:18px;padding:8px 12px;font-size:12px}@media(max-width:900px){.portfolio-selector-panel>div:first-child{min-width:0}}@media(max-width:600px){.portfolio-selector-panel .multi-selector label{padding:7px 10px;font-size:11px}}
.mandate-tabs button,.portfolio-selector-panel .multi-selector label{height:35px;display:inline-flex;align-items:center;justify-content:center;line-height:1.45;box-sizing:border-box}.portfolio-selector-panel .multi-selector label{min-width:0}@media(max-width:600px){.mandate-tabs button,.portfolio-selector-panel .multi-selector label{height:33px;line-height:1.45}}
#select-all-portfolios{height:35px;border-radius:18px;padding:8px 12px;line-height:1.45;white-space:nowrap}@media(max-width:600px){#select-all-portfolios{height:33px;padding:7px 10px}}
.profile-portfolios{margin-top:18px;padding-top:0;border-top:0}.user-portfolio-details{margin:0!important}.user-portfolio-details summary{color:var(--text)!important;font-size:14px!important;font-weight:700}.user-portfolio-content{padding-top:14px}.user-portfolio-content>.muted{margin:0 0 12px}.profile-portfolio-tabs{justify-content:flex-start;margin:0 0 14px}.profile-portfolio-tabs button{height:35px;display:inline-flex;align-items:center;justify-content:center;line-height:1.45}.user-portfolio-content .text-button{width:100%;margin:0}@media(max-width:600px){.profile-portfolio-tabs button{height:33px;font-size:11px}}
.instrument-catalogue{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.instrument-catalogue summary{cursor:pointer;color:var(--mint);font-weight:700;font-size:13px}.instrument-catalogue-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:8px 14px;margin-top:12px;max-height:360px;overflow:auto;padding-right:4px}.instrument-catalogue-list div{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#0a151b}.instrument-catalogue-list b{font-size:12px}.instrument-catalogue-list span{color:var(--muted);font-size:11px;line-height:1.35}@media(max-width:600px){.instrument-catalogue-list{grid-template-columns:1fr;max-height:320px}}
.profile-portfolio-action{height:35px!important;border:1px solid #365c69!important;border-radius:18px!important;background:transparent!important;color:#9ce6c6!important;padding:8px 12px!important;cursor:pointer;font:inherit!important;font-size:12px!important}@media(max-width:600px){.profile-portfolio-action{height:33px!important;font-size:11px!important;padding:7px 10px!important}}
/* Cabecera flotante y centrada. */
#app>header:not(.landing-nav){position:sticky;top:14px;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(calc(100% - 40px),1440px);min-height:64px;margin:14px auto 0;padding:8px 16px;border:1px solid #263f49;border-radius:12px;background:rgba(13,24,31,.94);box-shadow:0 12px 32px #0004;backdrop-filter:blur(14px)}#app>header:not(.landing-nav) .brand{font-size:19px;letter-spacing:.16em}#app>header:not(.landing-nav) .brand small{display:block;font-size:9px;letter-spacing:.18em;margin:3px 0 0}#app>header:not(.landing-nav) nav{grid-column:2;display:flex;justify-content:center;flex:none;gap:24px;overflow:visible}#app>header:not(.landing-nav) nav button{font-size:13px;padding:8px 0;white-space:nowrap}#app>header:not(.landing-nav) .avatar{grid-column:3;justify-self:end;width:40px;height:40px;font-size:18px}@media(max-width:900px){#app>header:not(.landing-nav){grid-template-columns:1fr auto;width:calc(100% - 24px);top:10px;margin-top:10px}#app>header:not(.landing-nav) nav{grid-column:1/-1;grid-row:2;order:initial;width:100%;justify-content:flex-start;overflow-x:auto;gap:18px;padding:2px 0 0}#app>header:not(.landing-nav) .brand small{display:none}}@media(max-width:600px){#app>header:not(.landing-nav){padding:7px 12px;min-height:56px}#app>header:not(.landing-nav) .brand{font-size:16px}#app>header:not(.landing-nav) .avatar{width:36px;height:36px;font-size:16px}#app>header:not(.landing-nav) nav button{font-size:12px}}

/* Landing: una escala más contenida y el eclipse como marca, no como versión. */
.landing-copy h1{font-size:clamp(54px,6.35vw,98px);line-height:.97;margin:26px 0}.landing-copy>p:not(.eyebrow){font-size:18px;max-width:570px}.landing-orbit .landing-eclipse{position:absolute;inset:0;margin:auto;width:144px;height:144px;border:3px solid #80e7ce;border-radius:50%;box-shadow:0 0 30px #57d8c350;z-index:1}.landing-orbit .landing-eclipse::after{content:"";position:absolute;width:132px;height:132px;top:3px;left:48px;border-radius:50%;background:radial-gradient(circle at 28% 48%,#174847 0,#103b3c 62%,#0d2d2e 100%);box-shadow:-12px 0 26px #0e373765,0 0 34px #06111660}@media(max-width:900px){.landing-copy h1{font-size:clamp(48px,11vw,66px)}.landing-copy>p:not(.eyebrow){font-size:17px}.landing-orbit .landing-eclipse{width:104px;height:104px;border-width:2px}.landing-orbit .landing-eclipse::after{width:96px;height:96px;top:2px;left:34px}}

/* Símbolo Orion: un aro limpio, sin órbitas ni eclipse. */
.landing-orbit{background:none}.landing-orbit i{display:none}.landing-orbit .landing-eclipse{width:240px;height:240px;border:5px solid #8be8cf;box-shadow:0 0 38px #59dcc45c;transform:translateX(-42px)}.landing-orbit .landing-eclipse::after{display:none}@media(max-width:900px){.landing-orbit .landing-eclipse{width:150px;height:150px;border-width:4px;transform:translateX(-18px)}}

/* Portfolio: cada fila se alinea por su primera línea, incluido el porcentaje. */
.portfolio-columns>section{display:grid;grid-template-rows:auto;grid-auto-rows:minmax(0,1fr);min-width:0}.portfolio-columns>section>.eyebrow{margin:0 0 12px}.portfolio-columns .list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;height:100%}.portfolio-columns .list-row>span{align-self:start;text-align:right;white-space:nowrap}
.portfolio-card-title{margin:0 0 12px}

/* Cierre de auditoría: ritmo común, cifras legibles y prevención de desbordes. */
html,body{max-width:100%;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#3dcdbc;color:#06211e}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.58}.metrics strong,.mandate-stats b,.history-kpi b{font-variant-numeric:tabular-nums}.metrics div,.mandate-summary span,.portfolio-columns .list-row>div,.asset-row>div{min-width:0}.portfolio-columns .list-row small,.asset-row small{overflow-wrap:anywhere;line-height:1.5}.form-actions>*{display:inline-flex;align-items:center;justify-content:center;min-height:40px;flex:1 1 180px;margin:0}.form-actions .profile-button{min-width:0}.form-actions .text-button,.form-actions .state-button{white-space:normal;text-align:center}.form-section label,.compact-form>*{min-width:0}.form-section input:not([type=checkbox]),.compact-form input,.compact-form select{max-width:100%}.profile-drawer summary:focus-visible,.opportunity-settings summary:focus-visible,.mandate-card summary:focus-visible{outline:2px solid #5ce0ca;outline-offset:4px;border-radius:4px}.landing-access,.landing-primary,.landing-secondary{min-height:42px;display:inline-flex;align-items:center;justify-content:center}.landing-secondary{line-height:1.2}@media(max-width:720px){.form-actions>*{flex-basis:100%;width:100%}.portfolio-columns .list-row>span{padding-top:1px}.landing-orbit .landing-eclipse{transform:translateX(-10px)}}@media(max-width:480px){.metrics strong{white-space:normal}.portfolio-columns .list-row{gap:10px}.landing-copy>small{line-height:1.45}.landing-orbit .landing-eclipse{transform:none}}

/* Auditoría visual: escala, ritmo y comportamiento común en todos los módulos. */
:root{--page-width:1500px;--page-gutter:clamp(18px,3vw,42px);--panel-gap:16px;--panel-pad:21px}html{scroll-behavior:smooth}body{font-size:14px;line-height:1.45}button,a,input,select{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #5ce0ca;outline-offset:3px}main:not(.landing){width:min(100%,var(--page-width));margin:0 auto;padding:30px var(--page-gutter) 52px}.dashboard-heading,.portfolio-heading{margin-bottom:24px}.dashboard-heading .muted,.portfolio-heading .muted,.admin-description{max-width:680px;margin-top:10px}.panel,.aggregate,.hero-card{padding:var(--panel-pad)}.panel-head{gap:16px}.panel-head>div{min-width:0}.panel h2,.portfolio-selector-panel h2,.mandate-selector h2{line-height:1.2}.metrics{margin-bottom:16px}.metrics div{display:grid;align-content:start;min-height:112px}.metrics strong{white-space:nowrap}.portfolio-selector-panel,.mandate-selector.portfolio-selector-panel{gap:16px;padding:18px 21px}.portfolio-selector-panel>div:first-child,.mandate-selector.portfolio-selector-panel>div:first-child{min-width:300px}.portfolio-selector-panel .multi-selector{align-items:center}.mandate-tabs button,.portfolio-selector-panel .multi-selector label,#select-all-portfolios{min-height:35px}.selected-portfolio{overflow:hidden}.portfolio-local-metrics{margin:12px 0 16px}.portfolio-columns{gap:28px;padding-top:14px}.portfolio-history-small{margin-top:18px;padding-top:14px}.history-panel{margin-top:16px}.decision-preview,.discipline-note{border-radius:0 8px 8px 0}.form-section{align-content:start}.form-actions{align-items:center}.compact-form{align-items:end}.landing{padding-inline:clamp(24px,6vw,96px)}.landing-hero{min-height:clamp(620px,72vh,780px)}.landing-nav{padding:24px 0}.landing-access{padding:11px 19px}.landing-actions{margin:34px 0 24px}.how{gap:clamp(24px,4vw,50px);padding:48px 0 68px}.how h2{font-size:20px;margin:15px 0 8px}.how p{font-size:14px;margin:0}.landing footer{padding:22px 0}.landing-copy>small{font-size:12px}
@media(max-width:980px){main:not(.landing){padding:26px var(--page-gutter) 46px}.grid{grid-template-columns:1fr}.portfolio-selector-panel,.mandate-selector.portfolio-selector-panel{align-items:flex-start}.portfolio-selector-panel>div:first-child,.mandate-selector.portfolio-selector-panel>div:first-child{min-width:0}.portfolio-selector-panel .multi-selector{flex-basis:100%}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics div:nth-child(2n){border-right:0}.metrics div:nth-child(-n+2){border-bottom:1px solid var(--line)}.landing-hero{gap:16px}.landing-orbit{height:430px}}
@media(max-width:720px){.panel,.aggregate,.hero-card{padding:18px}.portfolio-selector-panel,.mandate-selector.portfolio-selector-panel{display:grid;grid-template-columns:1fr;padding:17px}.portfolio-selector-panel .multi-selector,.mandate-tabs{justify-content:flex-start}.portfolio-selector-panel .multi-selector{gap:8px}.portfolio-columns{grid-template-columns:1fr;gap:20px}.portfolio-columns>section{display:block}.portfolio-columns .list-row{height:auto}.portfolio-columns>section>.eyebrow{margin-bottom:8px}.portfolio-columns>section+section{border-top:1px solid var(--line);padding-top:14px}.form-section,.score-form{grid-template-columns:1fr}.compact-form,#admin .compact-form{grid-template-columns:1fr}.compact-form .profile-button{width:100%}.landing-hero{grid-template-columns:1fr;min-height:0;padding:78px 0 48px}.landing-orbit{height:260px;order:-1}.landing-copy h1{font-size:clamp(48px,12vw,64px)}.how{grid-template-columns:1fr;gap:24px;padding:38px 0 52px}}
@media(max-width:480px){main:not(.landing){padding:22px 15px 38px}h1,.dashboard-heading h1{font-size:28px}.metrics{grid-template-columns:1fr}.metrics div{min-height:0;padding:13px 14px;border-right:0!important;border-bottom:1px solid var(--line)}.metrics div:last-child{border-bottom:0}.metrics strong{font-size:20px}.portfolio-local-metrics{margin-top:10px}.portfolio-selector-panel .multi-selector,.mandate-tabs{gap:7px}.mandate-tabs button,.portfolio-selector-panel .multi-selector label,#select-all-portfolios{min-height:33px;font-size:11px}.landing{padding-inline:18px}.landing-nav{padding:18px 0}.landing-nav .brand{font-size:15px}.landing-nav .brand small{font-size:8px}.landing-copy>p:not(.eyebrow){font-size:16px}.landing-actions{margin:26px 0 20px}.landing-primary,.landing-secondary{width:100%;justify-content:center}.landing footer{font-size:9px}.profile-drawer{right:10px;width:calc(100vw - 20px)}}

/* Acciones de mandato: mismo peso visual y salto ordenado en pantallas estrechas. */
.form-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button{width:100%;min-width:0;min-height:42px;margin:0;padding:9px 12px;white-space:normal;text-align:center}.form-actions .profile-button{grid-column:auto}@media(max-width:480px){.form-actions{grid-template-columns:1fr}.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button{min-height:40px}}

/* Formularios de mandato: campos compactos, legibles y sin líneas excesivamente largas. */
.mandate-form .form-section{grid-template-columns:repeat(4,minmax(0,330px));justify-content:start;gap:13px 18px}.mandate-form .form-section label{width:100%;max-width:330px}.mandate-form .form-section label:has(input[type=checkbox]){align-self:end;min-height:41px;padding-bottom:9px}@media(max-width:1500px){.mandate-form .form-section{grid-template-columns:repeat(3,minmax(0,360px))}.mandate-form .form-section label{max-width:360px}}@media(max-width:1180px){.mandate-form .form-section{grid-template-columns:repeat(2,minmax(0,360px))}}@media(max-width:720px){.mandate-form .form-section{grid-template-columns:minmax(0,1fr)}.mandate-form .form-section label{max-width:none}}

/* Pesos de oportunidad: misma lógica compacta que los mandatos. */
.score-heading{margin-bottom:18px}.score-heading .muted{margin:5px 0 0;max-width:520px}.score-form{grid-template-columns:repeat(4,minmax(0,300px));justify-content:start;gap:13px 18px}.score-form label{width:100%;max-width:300px;gap:6px}.score-form input{height:42px;padding:8px 11px}.score-footer{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px) minmax(180px,240px);align-items:center;gap:10px;width:min(100%,1254px);padding-top:14px;border-top:1px solid var(--line)}.score-total{grid-column:auto;border:0;padding:0;font-size:14px}.score-footer .text-button,.score-footer .profile-button{width:100%;min-height:42px;margin:0;padding:9px 12px}@media(max-width:1500px){.score-form{grid-template-columns:repeat(3,minmax(0,320px))}.score-form label{max-width:320px}.score-footer{width:min(100%,996px)}}@media(max-width:980px){.score-form{grid-template-columns:repeat(2,minmax(0,320px))}.score-footer{grid-template-columns:1fr 1fr}.score-total{grid-column:1/-1}}@media(max-width:600px){.score-form{grid-template-columns:1fr}.score-form label{max-width:none}.score-footer{grid-template-columns:1fr}.score-total{grid-column:auto}}
#currency-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}#currency-form label{display:grid;gap:7px;min-width:0;color:#b9c5d0}#currency-form input,#currency-form select{width:100%;min-width:0}#currency-form .profile-button{grid-column:1/-1;width:100%}@media(max-width:600px){#currency-form{grid-template-columns:minmax(0,1fr)}}

/* Sistema único de controles: compacto, predecible y sin botones desproporcionados. */
:root{--control-height:40px;--control-font:13px;--control-radius:8px;--control-inline:14px}.profile-button,.auth-submit,.state-button,.text-button,.profile-portfolio-action,.landing-access,.landing-primary,.landing-secondary{min-height:var(--control-height);height:var(--control-height);padding:0 var(--control-inline);border-radius:var(--control-radius);font-size:var(--control-font);line-height:1.2}.profile-button,.auth-submit,.state-button,.text-button,.profile-portfolio-action{font-weight:650}.profile-button,.auth-submit{display:inline-flex;align-items:center;justify-content:center}.state-button,.text-button,.profile-portfolio-action{display:inline-flex;align-items:center;justify-content:center}.landing-access,.landing-primary,.landing-secondary{font-weight:650}.landing-primary span{margin-left:14px;font-size:18px}.landing-actions{gap:10px;margin:28px 0 22px}.score-footer{grid-template-columns:minmax(0,1fr) 210px 210px;gap:9px}.score-footer .text-button,.score-footer .profile-button{min-height:var(--control-height);height:var(--control-height);padding:0 var(--control-inline);font-size:var(--control-font)}.form-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button{min-height:var(--control-height);height:var(--control-height);padding:0 12px;font-size:var(--control-font)}#currency-form .profile-button{grid-column:1/-1;justify-self:start;width:auto;min-width:220px}.compact-form .profile-button{height:var(--control-height);min-height:var(--control-height);padding-inline:16px}.profile-drawer .profile-button,.profile-logout{height:var(--control-height);min-height:var(--control-height);font-size:var(--control-font)}.profile-logout{padding:0 var(--control-inline)}@media(max-width:980px){.form-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.score-footer{grid-template-columns:minmax(0,1fr) 190px 190px}}@media(max-width:720px){:root{--control-height:38px;--control-font:12px;--control-inline:12px}.form-actions{grid-template-columns:1fr}.score-footer{grid-template-columns:1fr 1fr}.score-total{grid-column:1/-1}#currency-form .profile-button{width:100%;min-width:0}.landing-actions{gap:9px}}@media(max-width:480px){.score-footer{grid-template-columns:1fr}.landing-primary,.landing-secondary{width:100%}}

/* Estructura estable al cambiar de pestaña. */
main:not(.landing){padding-top:28px}.page-content{display:grid;align-items:start;gap:16px}.page-content>.page-intro{margin:0}.page-intro{display:grid;gap:8px;max-width:760px}.page-intro .eyebrow{margin:0}.page-intro h1{margin:0;font-size:30px;line-height:1.12}.page-intro .muted{margin:0;max-width:720px;font-size:13px;line-height:1.55}.page-intro.dashboard-heading,.page-intro.portfolio-heading{display:block;max-width:760px;margin:0}.page-intro.dashboard-heading>div,.page-intro.portfolio-heading>div{display:grid;gap:8px}.page-intro.dashboard-heading .eyebrow,.page-intro.portfolio-heading .eyebrow{margin:0}.page-intro.dashboard-heading h1,.page-intro.portfolio-heading h1{margin:0;font-size:30px;line-height:1.12}.page-intro.dashboard-heading .muted,.page-intro.portfolio-heading .muted{margin:0;max-width:720px;font-size:13px;line-height:1.55}.page-content>.panel,.page-content>.metrics,.page-content>.aggregate,.page-content>.grid,.page-content>.mandate-grid,.page-content>.selected-portfolios,.page-content>.opportunity-settings,.page-content>.discipline-note,.page-content>#admin{margin-top:0;margin-bottom:0}#admin.page-content{gap:16px}@media(max-width:720px){main:not(.landing){padding-top:22px}.page-content{gap:14px}.page-intro,.page-intro.dashboard-heading,.page-intro.portfolio-heading{gap:7px}.page-intro h1,.page-intro.dashboard-heading h1,.page-intro.portfolio-heading h1{font-size:28px}.page-intro .muted,.page-intro.dashboard-heading .muted,.page-intro.portfolio-heading .muted{font-size:12px}}

/* Auditoría completa de botones: una medida para toda acción textual. */
:root{--action-height:36px;--action-font:12px;--action-padding:12px}button:not(.avatar):not(.password-toggle),.landing-access,.landing-primary,.landing-secondary,.multi-selector label{height:var(--action-height);min-height:var(--action-height);padding:0 var(--action-padding);font-size:var(--action-font);line-height:1.1;border-radius:8px}.profile-button,.auth-submit,.state-button,.text-button,.profile-portfolio-action,.landing-access,.landing-primary,.landing-secondary{font-size:var(--action-font)!important}.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button,.score-footer .profile-button,.score-footer .text-button,.compact-form .profile-button,.profile-drawer .profile-button,.profile-logout{height:var(--action-height);min-height:var(--action-height);padding:0 var(--action-padding);font-size:var(--action-font)}.profile-portfolio-action{height:var(--action-height)!important;min-height:var(--action-height)!important;padding:0 var(--action-padding)!important;font-size:var(--action-font)!important}.mandate-tabs button,.portfolio-tabs button,#select-all-portfolios,.profile-portfolio-tabs button{height:var(--action-height);min-height:var(--action-height);padding:0 var(--action-padding);font-size:var(--action-font)}.multi-selector label{display:inline-flex;align-items:center;justify-content:center}.password-toggle{width:32px;height:32px;min-height:32px;padding:0;font-size:16px}.avatar{width:36px!important;height:36px!important;font-size:16px!important}.landing-primary span{font-size:16px}.landing-actions{gap:9px}.form-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.score-footer{grid-template-columns:minmax(0,1fr) 190px 190px}.profile-logout{margin-top:16px}@media(max-width:720px){:root{--action-height:36px;--action-font:12px;--action-padding:11px}.form-actions{grid-template-columns:1fr 1fr}.score-footer{grid-template-columns:1fr 1fr}.profile-logout{width:100%}}@media(max-width:480px){.form-actions,.score-footer{grid-template-columns:1fr}.score-total{grid-column:auto}.landing-primary,.landing-secondary{width:100%}}

/* Campos de configuración: misma anchura, misma altura y tipografía secundaria. */
:root{--field-width:260px;--field-height:38px;--field-label:12px;--field-value:13px}input:not([type=checkbox]),select{height:var(--field-height);font-size:var(--field-value)!important;padding:0 11px!important}.auth-panel label,.profile-drawer label,.compact-form label,.form-section label,.score-form label,#currency-form label,.portfolio-selector label{font-size:var(--field-label);line-height:1.35}.mandate-form .form-section{grid-template-columns:repeat(4,var(--field-width));gap:12px 16px}.mandate-form .form-section label{width:var(--field-width);max-width:var(--field-width);gap:5px}.mandate-form .form-section label:has(input[type=checkbox]){width:var(--field-width);min-height:var(--field-height);padding-bottom:0;font-size:13px}.score-form{grid-template-columns:repeat(4,var(--field-width));gap:12px 16px}.score-form label{width:var(--field-width);max-width:var(--field-width);gap:5px}.score-form input{height:var(--field-height)}#currency-form{grid-template-columns:repeat(2,var(--field-width));gap:12px 16px}#currency-form label{width:var(--field-width);gap:5px}#currency-form input,#currency-form select{width:var(--field-width)}.compact-form input,.compact-form select{height:var(--field-height)}.profile-drawer input{height:var(--field-height)}@media(max-width:1180px){.mandate-form .form-section,.score-form{grid-template-columns:repeat(3,var(--field-width))}}@media(max-width:900px){.mandate-form .form-section,.score-form{grid-template-columns:repeat(2,minmax(0,var(--field-width)))}#currency-form{grid-template-columns:repeat(2,minmax(0,var(--field-width)))}}@media(max-width:620px){:root{--field-width:100%;--field-height:36px;--field-label:12px;--field-value:13px}.mandate-form .form-section,.score-form,#currency-form{grid-template-columns:minmax(0,1fr)}.mandate-form .form-section label,.score-form label,#currency-form label,.mandate-form .form-section label:has(input[type=checkbox]){width:100%;max-width:none}#currency-form input,#currency-form select{width:100%}}

/* Acciones compactas: ningún botón textual se estira por el ancho del panel. */
:root{--action-width:180px;--selector-width:150px}button:not(.avatar):not(.password-toggle),.landing-access,.landing-primary,.landing-secondary{width:var(--action-width)}.form-actions{grid-template-columns:repeat(4,var(--action-width));justify-content:start}.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button,.score-footer .profile-button,.score-footer .text-button,.compact-form .profile-button,.profile-drawer .profile-button,.profile-logout,#currency-form .profile-button{width:var(--action-width);min-width:var(--action-width);max-width:var(--action-width)}.score-footer{grid-template-columns:minmax(0,1fr) var(--action-width) var(--action-width)}.compact-form{justify-content:start}.mandate-tabs button,.portfolio-tabs button,#select-all-portfolios,.profile-portfolio-tabs button,.profile-portfolio-action,.multi-selector label{width:var(--selector-width);min-width:var(--selector-width);max-width:var(--selector-width)}#app>header:not(.landing-nav) nav button{width:104px;min-width:104px;max-width:104px}.landing-actions .landing-primary,.landing-actions .landing-secondary{width:var(--action-width)}@media(max-width:980px){.form-actions{grid-template-columns:repeat(2,var(--action-width))}.score-footer{grid-template-columns:minmax(0,1fr) var(--action-width) var(--action-width)}}@media(max-width:720px){:root{--action-width:100%;--selector-width:auto}.form-actions,.score-footer{grid-template-columns:1fr}.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button,.score-footer .profile-button,.score-footer .text-button,.compact-form .profile-button,.profile-drawer .profile-button,.profile-logout,#currency-form .profile-button{width:100%;min-width:0;max-width:none}.compact-form{justify-content:stretch}.mandate-tabs button,.portfolio-tabs button,#select-all-portfolios,.profile-portfolio-tabs button,.profile-portfolio-action,.multi-selector label{width:auto;min-width:0;max-width:none}#app>header:not(.landing-nav) nav button{width:auto;min-width:0;max-width:none}.landing-actions .landing-primary,.landing-actions .landing-secondary{width:100%}}

/* Campos de configuración: compactos y legibles, dimensionados para valores cortos. */
:root{--field-width:164px;--capital-field-width:182px}.mandate-form .form-section,.score-form{grid-template-columns:repeat(4,var(--field-width))}.mandate-form .form-section label,.score-form label,#currency-form label,#currency-form input,#currency-form select{width:var(--field-width);max-width:var(--field-width)}.mandate-form .form-section label:has(input[name="capital"]),.mandate-form .form-section label:has(input[name="capital"]) input{width:var(--capital-field-width);max-width:var(--capital-field-width)}@media(max-width:1180px){.mandate-form .form-section,.score-form{grid-template-columns:repeat(3,var(--field-width))}}@media(max-width:900px){.mandate-form .form-section,.score-form{grid-template-columns:repeat(2,var(--field-width))}}@media(max-width:620px){:root{--field-width:100%;--capital-field-width:100%}.mandate-form .form-section,.score-form{grid-template-columns:1fr}.mandate-form .form-section label,.score-form label,#currency-form label,#currency-form input,#currency-form select,.mandate-form .form-section label:has(input[name="capital"]),.mandate-form .form-section label:has(input[name="capital"]) input{width:100%;max-width:none}}

/* Acceso y perfil: mismo ancho compacto, sin aspecto de panel a pantalla completa. */
.auth-panel,.profile-drawer{width:min(390px,calc(100vw - 40px))}.auth-panel{padding:30px}.profile-drawer{padding:20px}@media(max-width:600px){.auth-panel,.profile-drawer{width:calc(100vw - 24px)}.auth-panel{padding:24px 20px}.profile-drawer{padding:18px}}

/* La barra de acciones conserva siempre la secuencia de izquierda a derecha. */
@media(min-width:760px){.form-actions{grid-template-columns:repeat(4,var(--action-width))}.score-footer{grid-template-columns:minmax(0,1fr) var(--action-width) var(--action-width)}}

/* Ritmo único entre encabezados, textos y superficies. */
:root{--layout-gap:18px}.page-content{gap:var(--layout-gap)}.page-intro,.page-intro.dashboard-heading>div,.page-intro.portfolio-heading>div{gap:10px}.page-intro,.page-intro.dashboard-heading,.page-intro.portfolio-heading{max-width:none}.page-intro .muted,.page-intro.dashboard-heading .muted,.page-intro.portfolio-heading .muted{max-width:none}.grid,.mandate-grid,.selected-portfolios{gap:var(--layout-gap)}.page-content>.grid{margin-top:0}.page-content>.metrics{margin-top:0}.page-content>.panel,.page-content>.aggregate,.page-content>.opportunity-settings{margin-top:0}@media(max-width:720px){:root{--layout-gap:14px}.page-intro,.page-intro.dashboard-heading>div,.page-intro.portfolio-heading>div{gap:8px}}

/* Score: total arriba y las dos acciones consecutivas. */
.score-footer{grid-template-columns:var(--action-width) var(--action-width);justify-content:start}.score-footer .score-total{grid-column:1/-1}.score-footer .profile-button{grid-column:1}.score-footer .text-button{grid-column:2}@media(max-width:420px){.score-footer{grid-template-columns:1fr}.score-footer .score-total,.score-footer .profile-button,.score-footer .text-button{grid-column:auto}}

/* Separación real entre bloques consecutivos: evita superficies y textos pegados. */
main:not(.landing)>.page-intro{margin-bottom:var(--layout-gap)}.page-intro.dashboard-heading .hero-card{margin-top:var(--layout-gap)}main:not(.landing)>.page-intro+.metrics,main:not(.landing)>.page-intro+.grid,main:not(.landing)>.page-intro+.panel,main:not(.landing)>.page-intro+.mandate-grid,main:not(.landing)>.page-intro+.opportunity-settings{margin-top:var(--layout-gap)}main:not(.landing)>.metrics+.grid,main:not(.landing)>.metrics+.panel,main:not(.landing)>.grid+.panel,main:not(.landing)>.opportunity-settings+.panel{margin-top:var(--layout-gap)}@media(max-width:720px){main:not(.landing)>.page-intro,.page-intro.dashboard-heading .hero-card,main:not(.landing)>.page-intro+.metrics,main:not(.landing)>.page-intro+.grid,main:not(.landing)>.page-intro+.panel,main:not(.landing)>.page-intro+.mandate-grid,main:not(.landing)>.page-intro+.opportunity-settings,main:not(.landing)>.metrics+.grid,main:not(.landing)>.metrics+.panel,main:not(.landing)>.grid+.panel,main:not(.landing)>.opportunity-settings+.panel{margin-top:var(--layout-gap);margin-bottom:0}.page-intro.dashboard-heading .hero-card{margin-bottom:0}}

/* Mandato: mismo contenedor desplegable que la configuración de oportunidades. */
.mandate-settings{margin:0}.mandate-settings .mandate-form{padding:18px 21px 21px;margin:0}.mandate-settings[open] summary{border-bottom:1px solid var(--line)}@media(max-width:720px){.mandate-settings .mandate-form{padding:16px 17px 18px}}

/* Selectores de cartera: un único lenguaje visual en Carteras y Portfolio. */
.mandate-tabs,.portfolio-tabs,.multi-selector{gap:8px}.mandate-tabs button,.portfolio-tabs button,.profile-portfolio-tabs button,.multi-selector label,#select-all-portfolios{height:var(--action-height);min-height:var(--action-height);width:var(--selector-width);min-width:var(--selector-width);max-width:var(--selector-width);padding:0 var(--action-padding);border-radius:8px;font-size:var(--action-font);line-height:1.1}.multi-selector label{background:#0b171d;border-color:var(--line);color:var(--muted)}.multi-selector label:has(input:checked),.mandate-tabs button.active,.portfolio-tabs button.active,.profile-portfolio-tabs button.active{background:#173332;border-color:#4ad5c7;color:#4ad5c7}#select-all-portfolios{border-color:#365c69;color:#9ce6c6}@media(max-width:720px){.mandate-tabs button,.portfolio-tabs button,.profile-portfolio-tabs button,.multi-selector label,#select-all-portfolios{width:auto;min-width:0;max-width:none}}

/* Divisas: configuración plegada arriba y tabla de referencias debajo. */
.currency-settings{margin:0}.currency-settings .panel{padding:18px 21px 21px}.currency-settings .compact-form{grid-template-columns:var(--field-width) var(--field-width) var(--action-width);gap:16px;align-items:end}.currency-settings .notice{grid-column:1/-1;margin:0}.currency-rates .muted{margin:5px 0 12px}.currency-rates .list-row{gap:18px}.currency-rates .list-row>span{font-size:11px;color:var(--muted);white-space:nowrap}@media(max-width:720px){.currency-settings .panel{padding:16px 17px 18px}.currency-settings .compact-form{grid-template-columns:1fr}.currency-settings .compact-form>*{width:100%!important;max-width:none!important}.currency-rates .list-row{align-items:flex-start;flex-direction:column;gap:4px}}

/* Prioridad explícita: Portfolio usa botones rectangulares, nunca píldoras. */
.portfolio-selector-panel .multi-selector label,.portfolio-selector-panel #select-all-portfolios{border-radius:8px!important}

/* Perfil: panel más estrecho que el acceso para no invadir el contenido. */
.profile-drawer{width:min(340px,calc(100vw - 40px))}@media(max-width:600px){.profile-drawer{width:calc(100vw - 24px)}}

/* Perfil: sin hueco fantasma cuando no hay mensaje de validación. */
.profile-drawer #profile-message{margin:0}.profile-drawer #profile-message:empty{display:none}

/* Reset de cartera: el segundo paso se identifica sin ambigüedad. */
.mandate-reset.confirm-reset{border-color:#d7a34c;color:#f0c875;background:#302719}

/* La marca de Orion funciona como enlace de retorno a la landing. */
header:not(.landing-nav) .brand{cursor:pointer}header:not(.landing-nav) .brand:focus-visible{outline:2px solid #5ce0ca;outline-offset:5px;border-radius:4px}

/* Copy principal: dos líneas equilibradas en escritorio. */
@media(min-width:901px){.landing-copy>p:not(.eyebrow){max-width:640px;text-align:justify;text-justify:inter-word}}

/* Portada de escritorio: el primer pliegue termina en la línea de “Cómo funciona”. */
@media(min-width:901px){.landing-hero{min-height:clamp(700px,79vh,860px)}}

/* Administrador: superficies apiladas, una por fila, como el resto de Orion. */
#admin>.grid{grid-template-columns:1fr;gap:var(--layout-gap);margin:0 0 var(--layout-gap)}#admin>.grid>.panel{width:100%;min-width:0}#admin>.panel{margin-top:0}
#admin>.page-intro+.grid{margin-top:var(--layout-gap)}

/* Invitaciones: correo con anchura de formulario, no de panel completo. */
#admin .compact-form{grid-template-columns:300px var(--action-width);justify-content:start;gap:16px}#admin .compact-form input{width:300px}@media(max-width:720px){#admin .compact-form{grid-template-columns:1fr}#admin .compact-form input{width:100%}}

/* Navegación de la aplicación: flotante durante todo el recorrido. */
#app>header:not(.landing-nav){position:fixed;top:14px;left:50%;transform:translateX(-50%);margin:0;z-index:100;width:min(calc(100% - 40px),1440px)}#app>header:not(.landing-nav)+main{padding-top:100px}@media(max-width:900px){#app>header:not(.landing-nav){top:10px;width:calc(100% - 24px)}#app>header:not(.landing-nav)+main{padding-top:128px}}@media(max-width:600px){#app>header:not(.landing-nav)+main{padding-top:116px}}

/* Acceso: el registro por invitación comparte el mismo panel y un selector claro. */
.auth-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 24px;border:1px solid #315361;border-radius:12px;background:#0b171d}.auth-mode-tabs button{width:auto!important;min-width:0!important;max-width:none!important;border:0;background:transparent;color:#aab9c7}.auth-mode-tabs button.active{background:#1c4b52;color:#4ad5c7}.auth-panel .auth-mode-tabs+ .eyebrow{margin-top:0}.auth-panel #invite-code{text-transform:uppercase;letter-spacing:.04em}@media(max-width:480px){.auth-mode-tabs{margin-bottom:20px}.auth-mode-tabs button{padding-inline:8px}}

/* Configuración visible para consulta, bloqueada fuera del rol administrador. */
.role-locked{margin-top:14px!important}.role-locked~*{pointer-events:none}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.admin-actions .text-button{width:auto;min-width:140px}@media(max-width:720px){.admin-actions{width:100%;justify-content:flex-start}.admin-actions .text-button{width:auto;min-width:0}}
#currency-message:empty{display:none}

/* Riesgo: cada superficie mantiene su propia separación dentro del módulo. */
#risk-workflow{display:grid;gap:var(--layout-gap);margin-top:var(--layout-gap)}
#risk-workflow>.portfolio-tabs{margin:0}
#risk-workflow>.metrics{margin:0}
#risk-workflow>.grid{margin:0}
#risk-workflow>.panel{margin:0}
.risk-v11-grid{align-items:start}
.risk-observation{padding:12px 0;border-bottom:1px solid var(--line)}
.risk-observation:last-child{border-bottom:0;padding-bottom:0}.risk-observation small,.risk-observation p{display:block;margin:5px 0 0}
.risk-cause{display:grid;grid-template-columns:minmax(100px,.9fr) repeat(3,minmax(0,1fr));gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
.risk-cause:last-child{border-bottom:0}.risk-cause span{display:flex;justify-content:space-between;gap:6px;color:var(--muted)}
.risk-position small{display:block;margin-top:3px}
@media(max-width:720px){.risk-v11-primary{grid-template-columns:1fr 1fr}.risk-v11-primary>div{min-width:0}.risk-v11-primary strong{font-size:clamp(21px,7vw,30px)}.risk-v11-grid{grid-template-columns:1fr}.risk-cause{grid-template-columns:1fr}.risk-cause span{max-width:280px}.risk-position{align-items:flex-start;gap:12px}.risk-position>span{text-align:right;white-space:nowrap}}
@media(max-width:420px){.risk-v11-primary{grid-template-columns:1fr}.risk-position{display:grid;grid-template-columns:1fr}.risk-position>span{text-align:left}.risk-position small{overflow-wrap:anywhere}}

/* Administrador: el selector de rol usa el mismo control oscuro que Orion. */
#admin .admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}
#admin .admin-role-field{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:var(--field-label);white-space:nowrap}
#admin .admin-role-field select{appearance:none;-webkit-appearance:none;width:140px;min-width:140px;height:var(--action-height);padding:0 30px 0 11px!important;border:1px solid #365c69;border-radius:8px;background-color:#091218;background-image:linear-gradient(45deg,transparent 50%,#9ce6c6 50%),linear-gradient(135deg,#9ce6c6 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;color:var(--text);font:inherit;font-size:var(--action-font)!important;line-height:1;cursor:pointer}
#admin .admin-role-field select:focus{outline:0;border-color:#4ad5c7;box-shadow:0 0 0 2px #45d6c522}
#admin .admin-actions .text-button{width:140px;min-width:140px;height:var(--action-height);margin:0;white-space:nowrap}
@media(max-width:720px){#admin .admin-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}#admin .admin-role-field select,#admin .admin-actions .text-button{width:140px;min-width:140px}}
@media(max-width:420px){#admin .admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}#admin .admin-role-field{display:grid;grid-template-columns:auto minmax(0,1fr)}#admin .admin-role-field select,#admin .admin-actions .text-button{width:100%;min-width:0}}

/* Perfil: selectores de cartera con la misma geometría que el resto de Orion. */
.profile-portfolio-tabs{
  display:grid;
  grid-template-columns:repeat(2,var(--selector-width));
  gap:8px;
  justify-content:start;
  margin:0;
}
.profile-portfolio-tabs button,
.profile-portfolio-tabs .profile-portfolio-action{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:var(--selector-width)!important;
  min-width:var(--selector-width)!important;
  max-width:var(--selector-width)!important;
  height:var(--action-height)!important;
  min-height:var(--action-height)!important;
  padding:0 var(--action-padding)!important;
  border-radius:8px!important;
  font-size:var(--action-font)!important;
  line-height:1.1!important;
}
.profile-portfolio-tabs .profile-portfolio-action{
  border-color:#365c69!important;
  background:#0b171d!important;
  color:#9ce6c6!important;
}
@media(max-width:420px){
  .profile-portfolio-tabs{grid-template-columns:1fr}
  .profile-portfolio-tabs button,
  .profile-portfolio-tabs .profile-portfolio-action{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}

/* Carteras: separación constante entre selector, mandato y métricas. */
.mandate-selector.portfolio-selector-panel{margin-bottom:var(--layout-gap)}
.mandate-settings{margin:0 0 var(--layout-gap)!important}
.mandate-settings+.mandate-summary{margin-top:0}

/* Divisas y oportunidades: contexto primero, configuración después. */
.currency-overview,.universe-overview,.opportunity-explainer{margin:0 0 var(--layout-gap)}
.currency-settings,.universe-settings{margin:0 0 var(--layout-gap)}

/* Cabecera móvil: la navegación conserva una fila propia y desplazable.
   Nunca debe comprimirse ni solaparse con el logotipo o el perfil. */
@media(max-width:900px){
  #app>header:not(.landing-nav){
    grid-template-columns:minmax(0,1fr) auto;
    row-gap:2px;
  }
  #app>header:not(.landing-nav) nav{
    grid-column:1 / -1;
    grid-row:2;
    display:flex;
    flex-wrap:nowrap;
    min-width:0;
    max-width:100%;
    gap:14px;
    padding:8px 0 3px;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  #app>header:not(.landing-nav) nav::-webkit-scrollbar{display:none}
  #app>header:not(.landing-nav) nav button{
    flex:0 0 auto;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    margin:0;
    padding:7px 1px;
    line-height:1.2;
  }
#app>header:not(.landing-nav)+main{padding-top:142px}
}

/* Trader workflow: panels retain the canonical Orion geometry on every page. */
.intraday-state,.core-decision-panel,.audit-maturity,.risk-capacity{margin-top:var(--layout-gap);padding:21px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,#102129,#0b171d)}
.intraday-state h2,.core-decision-panel h2,.audit-maturity h2,.risk-capacity h2{margin:4px 0 8px;font-size:20px}.intraday-state>p,.risk-capacity>p{margin:0;color:var(--muted);line-height:1.5}
.intraday-state-grid,.audit-maturity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:15px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#0b171d}.intraday-state-grid span,.audit-maturity-grid span{display:grid;gap:4px;padding:12px 14px;border-right:1px solid var(--line);color:var(--muted);font-size:11px}.intraday-state-grid span:last-child,.audit-maturity-grid span:last-child{border-right:0}.intraday-state-grid b,.audit-maturity-grid b{color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.intraday-state-grid span::after,.audit-maturity-grid span::after{content:attr(data-value);color:var(--text)}.intraday-state-grid span,.audit-maturity-grid span{font-weight:700;color:#eef5f3}
.opportunity-detail{grid-column:1/-1;margin-top:9px}.opportunity-detail summary{color:var(--mint);font-size:11px;font-weight:700;cursor:pointer}.opportunity-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.opportunity-detail-grid span{display:grid;gap:3px;padding:8px;border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:11px}.opportunity-detail-grid b,.opportunity-components{color:var(--muted);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.opportunity-components{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.opportunity-components span{display:flex;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:999px}.opportunity-components b{color:var(--mint)}
.core-decision-panel{margin:18px 21px 21px}.core-decision-panel .panel-head{align-items:flex-start}.core-decision-list{display:grid;margin-top:13px;border-top:1px solid var(--line)}.core-decision-list article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.core-decision-list article>div{display:grid;gap:3px;min-width:0}.core-decision-list small{color:var(--muted);font-size:11px;line-height:1.45}.decision-state{font-size:10px;font-weight:800;letter-spacing:.07em}.decision-state.positive{color:var(--mint)}.decision-state.maintained{color:#8ec8d2}.decision-state.closed,.decision-state.deferred,.decision-state.rejected{color:#e7c57c}
.selected-portfolio>.selection-trace{display:none}
.history-decision-row details{margin-top:7px}.history-decision-row details summary{color:var(--mint);font-size:11px;cursor:pointer}.history-decision-row details p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.risk-capacity{margin:var(--layout-gap) 0}.risk-capacity.available{border-left:3px solid var(--mint)}.risk-capacity.limited{border-left:3px solid #e7b85d}.risk-capacity.blocked{border-left:3px solid #ff8585}.risk-capacity h2{color:#edf5f3}
.core-decision-panel--standalone{width:100%;box-sizing:border-box;margin:var(--layout-gap) 0 0}
.mandate-settings--standalone{width:100%;box-sizing:border-box;max-height:min(560px,calc(100dvh - 180px));overflow:auto;margin:var(--layout-gap) 0 var(--layout-gap)!important}
@media(max-width:720px){.intraday-state,.audit-maturity,.risk-capacity{padding:17px}.intraday-state-grid,.audit-maturity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intraday-state-grid span:nth-child(2),.audit-maturity-grid span:nth-child(2){border-right:0}.intraday-state-grid span:nth-child(-n+2),.audit-maturity-grid span:nth-child(-n+2){border-bottom:1px solid var(--line)}.opportunity-detail-grid{grid-template-columns:1fr}.core-decision-panel{margin:17px}.core-decision-panel .panel-head{display:grid;gap:10px}.core-decision-list article{grid-template-columns:1fr;gap:8px}.core-decision-list article>div:last-child{padding-top:7px;border-top:1px solid var(--line)}.opportunity-list .table-row.opportunity-row{grid-template-columns:minmax(0,1fr) 55px 70px;align-items:start}.opportunity-list .table-row.opportunity-row .score,.opportunity-list .table-row.opportunity-row .confidence{text-align:center;padding-top:2px}.opportunity-list .table-row.head{grid-template-columns:minmax(0,1fr) 55px 70px}.opportunity-list .table-row.head span{text-align:center}.opportunity-list .table-row.head span:first-child{text-align:left}}

/* Histórico: libro de posiciones y decisiones paper. */
.history-selector-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:116px;margin-bottom:16px}
.history-portfolio-tabs,.history-filters{display:flex;gap:8px;flex-wrap:wrap}
.history-portfolio-tabs button,.history-filters button{width:var(--selector-width);min-height:35px;border:1px solid #365c69;border-radius:8px;background:#09161c;color:var(--muted);font:inherit;padding:8px 12px;cursor:pointer}
.history-portfolio-tabs button.active,.history-filters button.active{background:#173c39;border-color:#45d0c1;color:#45d0c1}
.history-filters button{width:auto;min-width:82px;font-size:12px}
.history-book-panel{margin-top:0}
.history-book-panel .panel-head{align-items:flex-start}
.history-book-panel .muted{margin-bottom:0}
.history-list{border-top:1px solid var(--line)}
.history-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}
.history-row>div{min-width:0}.history-row>span{flex:0 0 auto;color:var(--text);font-weight:700;white-space:nowrap}.history-row small{display:block;color:var(--muted);margin-top:4px;line-height:1.45}
.history-state,.history-action{display:inline-block;margin:0 0 7px;padding:3px 6px;border:1px solid #365c69;border-radius:5px;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.11em}
.history-state.open,.history-action.enter{border-color:#367a6a;color:var(--mint);background:#18352f}.history-state.closed,.history-action.exit{border-color:#6f4a50;color:#f1a6a6;background:#321f23}.history-action.reduce{border-color:#806331;color:var(--amber);background:#302719}.history-action.hold{border-color:#365c69;color:#a8c6c0}
.history-decisions{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.history-decision{display:grid;grid-template-columns:auto minmax(90px,.5fr) minmax(260px,1.6fr) auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #1b3036}
.history-decision:first-of-type{border-top:0}.history-decision .history-action{margin:0}.history-decision small,.history-decision time{color:var(--muted);font-size:11px}.history-decision time{white-space:nowrap}
@media(max-width:720px){.history-selector-panel{display:grid;min-height:0}.history-portfolio-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.history-portfolio-tabs button{width:auto}.history-book-panel .panel-head{display:grid}.history-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.history-filters button{width:100%}.history-row{gap:12px}.history-row>span{font-size:12px}.history-decision{grid-template-columns:auto 1fr;gap:8px}.history-decision small{grid-column:1/-1}.history-decision time{grid-column:1/-1}.history-decision .history-action{grid-row:1}.history-decision b{grid-column:2}}

/* La marca no se comprime cuando se añade una pestaña al menú. */
#app>header:not(.landing-nav) .brand{min-width:250px;flex-shrink:0}
#app>header:not(.landing-nav) .orb{flex:0 0 22px;width:22px;height:22px;aspect-ratio:1/1}
#app>header:not(.landing-nav) nav{gap:16px}
#app>header:not(.landing-nav) nav button{width:94px;min-width:94px;max-width:94px}
@media(max-width:900px){#app>header:not(.landing-nav) .brand{min-width:0}.brand .orb{flex:0 0 22px;aspect-ratio:1/1}}
@media(max-width:600px){#app>header:not(.landing-nav) .orb{flex-basis:18px;width:18px;height:18px}}
.currency-overview+.currency-settings,.opportunity-explainer+.opportunity-settings,.currency-settings+.currency-rates{margin-top:0}
@media(max-width:720px){.page-content>.opportunity-explainer+.opportunity-settings{margin-top:var(--layout-gap)}}
.score-explainer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.score-explainer-grid article{display:grid;gap:4px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#0b171d;min-width:0}
.score-explainer-grid b{font-size:12px;color:var(--text)}
.score-explainer-grid span{font-size:11px;line-height:1.45;color:var(--muted)}
@media(max-width:980px){.score-explainer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.score-explainer-grid{grid-template-columns:1fr}.score-explainer-grid article{padding:11px}}

/* Resumen y Divisas: misma proporción para la primera caja informativa. */
.dashboard-heading .hero-card,.currency-overview{height:132px;min-height:132px;align-content:start}
@media(max-width:720px){.dashboard-heading .hero-card,.currency-overview{height:auto;min-height:0}}

/* Administrador: ninguna caja comparte borde con la siguiente. */
#admin>.panel+.panel{margin-top:var(--layout-gap)!important}
#admin>.page-intro{margin-bottom:var(--layout-gap)!important}

/* Carteras y Portfolio: los selectores comparten la misma altura en escritorio. */
.portfolio-selector-panel{height:154px;min-height:154px;box-sizing:border-box}
@media(max-width:720px){.portfolio-selector-panel{height:auto;min-height:0}}

/* Mandato: intradía comparte la línea de los campos sin desplazarla. */
.mandate-form .form-section label:has(input[name="intraday"]){display:flex;align-items:center;align-self:end;justify-self:start;gap:10px;min-height:var(--field-height);padding-left:12px;white-space:nowrap}
.mandate-form .form-section label:has(input[name="intraday"]) input{margin:0;flex:0 0 auto}
.mandate-form .form-actions{border-top:1px solid var(--line);margin-top:var(--layout-gap);padding-top:var(--layout-gap)}
@media(max-width:620px){.mandate-form .form-section label:has(input[name="intraday"]){padding-left:0}}

/* Universo: misma configuración global, sin introducir un nuevo lenguaje visual. */
.universe-overview{margin:0 0 var(--layout-gap)}
.universe-settings{margin:0 0 var(--layout-gap)}
.universe-toggles{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.universe-section-label{margin:18px 0 0;color:#b9c5d0;font-size:var(--field-label);line-height:1.35}
.universe-toggles button{width:auto;min-width:150px;max-width:none;height:var(--action-height);padding:0 var(--action-padding);border-radius:8px;background:#0b171d;border:1px solid var(--line);color:var(--muted)}
.universe-toggles button.active{background:#173332;border-color:#4ad5c7;color:#4ad5c7}
.universe-settings hr{border:0;border-top:1px solid var(--line);margin:var(--layout-gap) 0}
.universe-actions{margin-top:var(--layout-gap)}
.universe-settings #universe-message:empty{display:none}
@media(max-width:720px){.universe-toggles button{min-width:0;width:auto}.universe-actions{grid-template-columns:1fr}}

/* Resumen: titulares de contexto separados del ranking y sin ruido visual. */
.news-feed{margin-top:var(--layout-gap)}
.news-feed>.muted{margin:5px 0 14px;max-width:760px}
.news-list{border-top:1px solid var(--line)}
.news-item{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}
.news-item>div{display:grid;gap:5px;min-width:0}
.news-meta,.news-source{font-size:11px;line-height:1.35;color:var(--muted)}
.news-item a{color:var(--text);font-size:13px;line-height:1.4;font-weight:600;text-decoration:none}
.news-item a:hover{text-decoration:underline;color:#9ce6c6}
.news-source{white-space:nowrap;text-align:right}
@media(max-width:720px){.news-item{flex-direction:column;gap:5px;padding:12px 0}.news-source{text-align:left}.news-item a{font-size:13px}}

/* Identidad de instrumento: ticker y nombre completo, con detalle operativo debajo. */
.instrument-identity{display:flex;align-items:baseline;gap:8px;min-width:0;line-height:1.35}
.ticker>b,.instrument-identity>b{color:var(--text);font-weight:700;white-space:nowrap}
.ticker .instrument-name{margin-left:8px}
.instrument-name{min-width:0;color:var(--muted);font-size:11px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ticker small{margin-top:3px}
@media(max-width:720px){.instrument-identity{gap:6px;flex-wrap:wrap}.instrument-name{white-space:normal;overflow:visible;text-overflow:clip}.ticker .instrument-name{margin-left:6px}}

/* Landing: la marca conserva siempre el círculo de Orion, también en móvil. */
.landing-nav .brand{flex:0 0 auto;min-width:0}
.landing-nav .orb{
  display:block;
  flex:0 0 22px;
  width:22px;
  min-width:22px;
  max-width:22px;
  height:22px;
  min-height:22px;
  max-height:22px;
  aspect-ratio:1 / 1;
}
@media(max-width:600px){
  .landing-nav .orb{
    flex-basis:18px;
    width:18px;
    min-width:18px;
    max-width:18px;
    height:18px;
    min-height:18px;
    max-height:18px;
  }
}

/* Diez módulos de navegación: encajan en escritorio y conservan scroll en compacto. */
@media(min-width:981px){
  #app>header:not(.landing-nav) nav{gap:clamp(9px,1.05vw,16px)}
  #app>header:not(.landing-nav) nav button{font-size:11px}
}

/* Separación única entre módulos consecutivos: ninguna caja comparte borde. */
main:not(.landing)>.panel+.panel,
main:not(.landing)>.panel+.metrics,
main:not(.landing)>.metrics+.panel,
main:not(.landing)>.metrics+.selected-portfolios,
main:not(.landing)>.portfolio-selector-panel+.metrics,
main:not(.landing)>.history-selector-panel+.history-book-panel,
.mandate-selector+.mandate-settings,
.mandate-settings+.mandate-summary,
.mandate-summary+.mandate-grid{
  margin-top:var(--layout-gap)!important;
}

/* Los paneles de contexto y su configuración nunca comparten borde. */
.currency-overview+.currency-settings,
.universe-overview+.universe-settings{
  margin-top:var(--layout-gap)!important;
}

/* Horario de mercados: escala de 24 horas sin llamadas periódicas al servidor. */
.market-hours-panel{margin-top:var(--layout-gap)}
.market-hours-panel>.muted{margin:4px 0 18px}
.market-hours-summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:11px 12px;margin-bottom:14px;border:1px solid var(--line);border-radius:8px;background:#0b171d;color:var(--muted);font-size:12px;line-height:1.45}
.market-hours-summary b{color:var(--text)}.market-hours-summary small{white-space:nowrap;font-size:11px}
.market-hours-scroll{overflow-x:auto;padding-bottom:2px;scrollbar-color:#365c69 transparent;scrollbar-width:thin}
.market-hours-canvas{min-width:900px}
.market-hours-scale,.market-hours-row{display:grid;grid-template-columns:146px minmax(0,1fr);gap:12px}
.market-hours-scale{align-items:end;margin:0 0 7px}.market-hours-scale>svg{display:block;width:100%;height:34px;overflow:visible}
.market-hours-axis-rule{stroke:var(--line);stroke-width:1}.market-hours-axis-label{fill:var(--muted);font-size:9px}.market-hours-now-label{fill:#9ce6c6;font-size:9px;letter-spacing:.03em}
.market-hours-row{align-items:center;min-height:36px}.market-hours-label{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0}.market-hours-label b{font-size:12px;white-space:nowrap}.market-hours-label>span{display:flex;align-items:center;gap:5px;width:100%;min-width:0}.market-hours-label small{font-size:9px;color:var(--muted);white-space:nowrap}.market-hours-label>span small:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.market-hours-status{flex:0 0 auto}.market-hours-status::before{content:'·';margin-right:5px;color:var(--line)}
.market-hours-track{height:24px;border:1px solid #1e373e;border-radius:4px;overflow:hidden;background:#091318}.market-hours-track svg{display:block;width:100%;height:100%}.market-hours-grid-line{stroke:rgba(72,119,126,.18);stroke-width:1}.market-hours-band{fill:#287d75;stroke:#4ad5c7;stroke-width:1}.market-hours-band:hover{fill:#349b8e}.market-hours-now{stroke:#f3c970;stroke-width:2}.market-hours-now-dot{fill:#f3c970}
@media(max-width:720px){.market-hours-panel{padding:18px}.market-hours-summary{align-items:flex-start;flex-direction:column;gap:3px}.market-hours-summary small{white-space:normal}.market-hours-canvas{min-width:820px}.market-hours-scale,.market-hours-row{grid-template-columns:126px minmax(0,1fr);gap:10px}.market-hours-label b{font-size:11px}.market-hours-label small{font-size:8px}}

/* Portfolio: bloque agregado separado del selector y de las carteras individuales. */
.aggregate-history{margin-top:var(--layout-gap)}
.aggregate-history h2{margin:3px 0 4px}
.aggregate-history>.muted{margin:0 0 16px;max-width:720px}
.aggregate-history+.selected-portfolios{margin-top:var(--layout-gap)}
.history-note{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.45}

/* Gestión de capital: bloque propio dentro del mandato, con la misma retícula. */
.mandate-settings>.capital-flow-panel{margin:0 21px 21px;padding-top:18px;border-top:1px solid var(--line)}
.capital-flow-head{display:grid;gap:4px}.capital-flow-head h2{margin:0;font-size:18px}.capital-flow-head .muted{margin:0;max-width:700px}
.capital-flow-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 12px}
.capital-flow-stats span{display:grid!important;gap:3px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:#0b171d;color:var(--muted);font-size:10px}
.capital-flow-stats b{display:block;color:var(--text);font-size:14px;font-variant-numeric:tabular-nums}.capital-flow-stats b.positive{color:#9ce6c6}.capital-flow-stats b.negative{color:#f4a0a0}
.capital-flow-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.capital-flow-actions .profile-button,.capital-flow-actions .text-button{margin:0;min-height:var(--action-height);min-width:var(--action-width);width:var(--action-width)}
.capital-flow-form{display:grid;grid-template-columns:repeat(4,var(--field-width));gap:12px 16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.capital-flow-form label{display:grid;gap:5px;width:var(--field-width);font-size:var(--field-label);color:#b9c5d0}.capital-flow-form .capital-flow-note{grid-column:span 2;width:calc(var(--field-width) * 2 + 16px)}
.capital-flow-form input,.capital-flow-form select{width:100%;max-width:100%}.capital-flow-preview{grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.45}.capital-flow-form .capital-flow-actions{grid-column:1/-1;margin-top:0}
.capital-flow-history{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.capital-flow-history>.eyebrow{margin-bottom:8px}.capital-flow-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line)}.capital-flow-row:first-of-type{border-top:0}.capital-flow-row>div{display:grid;gap:3px}.capital-flow-row>div:last-child{text-align:right}.capital-flow-row b{font-size:12px}.capital-flow-row small{font-size:10px;color:var(--muted)}
.mandate-form input[name="capital"][readonly]{opacity:.82;cursor:not-allowed}

/* Intraday is derived from Swing and intentionally cannot be edited. */
.mandate-form .calculated-allocation{color:#78909c}
.mandate-form .calculated-allocation input[readonly]{background:#111a21;color:#78909c;border-color:#243540;cursor:not-allowed;box-shadow:inset 0 0 0 1px rgba(120,144,156,.08)}
@media(max-width:900px){.capital-flow-form{grid-template-columns:repeat(2,minmax(0,var(--field-width)))}.capital-flow-form .capital-flow-note{grid-column:auto;width:var(--field-width)}}
@media(max-width:720px){.mandate-settings>.capital-flow-panel{margin:0 17px 18px}.capital-flow-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.capital-flow-form{grid-template-columns:1fr}.capital-flow-form label,.capital-flow-form .capital-flow-note{width:100%;grid-column:auto}.capital-flow-actions{display:grid}.capital-flow-actions .profile-button,.capital-flow-actions .text-button{width:100%;min-width:0}.capital-flow-row{gap:10px}.capital-flow-row b{font-size:11px}}
.opportunity-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.opportunity-columns .opportunity-list{margin-top:0;min-width:0}@media(max-width:900px){.opportunity-columns{grid-template-columns:1fr}}
.opportunity-list .table-row{grid-template-columns:minmax(0,1fr) 88px 110px;column-gap:16px}.opportunity-list .table-row>*{min-width:0}.opportunity-list .table-row>:nth-child(2),.opportunity-list .table-row>:nth-child(3){text-align:center;justify-self:stretch}@media(max-width:600px){.opportunity-list .table-row{grid-template-columns:minmax(0,1fr) 60px 78px;column-gap:8px}.opportunity-list .table-row>*:last-child,.opportunity-list .table-row.head>*:last-child{display:block}}
.grid>.panel:has(.portfolio){grid-column:1/-1}.grid>.panel:has(.portfolio) .portfolio{padding:10px 0}.grid>.panel:has(.portfolio) .portfolio small{margin-top:2px}
.audit-proposals{display:grid;gap:var(--layout-gap);margin-top:var(--layout-gap);padding:21px;background:linear-gradient(145deg,#102129,#0b171d);border:1px solid var(--line);border-radius:10px}.audit-proposals>.eyebrow,.audit-proposals>h2{margin:0}.audit-proposals>.audit-proposal{margin:0}
.page-intro.dashboard-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);align-items:stretch;gap:18px;max-width:none}.page-intro.dashboard-heading>div:first-child,.page-intro.dashboard-heading .hero-card{width:auto;min-width:0;min-height:0;margin:0;padding:21px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,#102129,#0b171d)}.page-intro.dashboard-heading>div:first-child{display:grid;align-content:center;max-width:none}.page-intro.dashboard-heading .hero-card{display:grid;align-content:center}@media(max-width:900px){.page-intro.dashboard-heading{grid-template-columns:1fr}.page-intro.dashboard-heading .hero-card{width:100%}}
/* Resumen: el título queda libre y la configuración ocupa toda la fila. */
main:not(.landing)>.summary-title{display:grid;gap:8px;margin:0}
main:not(.landing)>.summary-title .eyebrow,main:not(.landing)>.summary-title h1,main:not(.landing)>.summary-title .muted{margin:0}
main:not(.landing)>.summary-config{width:100%;box-sizing:border-box;margin:0!important;min-height:132px;display:grid;align-content:start;gap:8px}
main:not(.landing)>.summary-title+.summary-config,main:not(.landing)>.summary-config+.metrics,main:not(.landing)>.metrics+.news-feed{margin-top:var(--layout-gap)!important}
@media(max-width:720px){main:not(.landing)>.summary-config{min-height:0}}
/* Curvas históricas: más finas para mantener legibilidad con muchas revisiones. */
.history-chart polyline{stroke-width:1.5}
.history-chart-markers span{width:6px;height:6px;margin:-3px 0 0 -3px;border-width:1px}
.history-chart-markers span.history-chart-marker-last{width:8px;height:8px;margin:-4px 0 0 -4px}
.history-chart-labels span{color:#9eb6c0;font-size:10px}
.app-loading{min-height:100vh;display:grid;align-content:center;justify-items:start;gap:13px;width:min(100%,700px);margin:0 auto;padding:clamp(32px,8vw,90px) var(--page-gutter)}.app-loading .auth-brand{margin-bottom:16px}.app-loading h1,.app-loading p{margin:0}
/* Jerarquía Data: catálogo, selección y candidatos antes del Top publicado. */
.universe-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:16px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#0b171d}.universe-counts>div{min-width:0;padding:14px 16px;border-right:1px solid var(--line)}.universe-counts>div:last-child{border-right:0}.universe-counts span{display:block;color:var(--muted);font-size:9px;letter-spacing:.1em;line-height:1.35}.universe-counts b{display:block;margin-top:6px;color:var(--mint);font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums}@media(max-width:760px){.universe-counts{grid-template-columns:1fr 1fr}.universe-counts>div:nth-child(2){border-right:0}.universe-counts>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:420px){.universe-counts{grid-template-columns:1fr}.universe-counts>div{border-right:0;border-bottom:1px solid var(--line)}.universe-counts>div:last-child{border-bottom:0}}

/* Móvil: cabecera compacta, navegación horizontal y contenido nunca oculto debajo. */
@media(max-width:600px){
  #app>header:not(.landing-nav){
    top:8px;
    width:calc(100% - 24px);
    min-height:0;
    height:auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:18px;
  }
  #app>header:not(.landing-nav) nav{
    grid-column:1/-1;
    grid-row:2;
    display:flex;
    flex-wrap:nowrap;
    width:100%;
    min-width:0;
    gap:18px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    padding:0 0 2px;
    scrollbar-width:none;
  }
  #app>header:not(.landing-nav) nav::-webkit-scrollbar{display:none}
  #app>header:not(.landing-nav) nav a{flex:0 0 auto}
  #app>header:not(.landing-nav)+main{padding-top:170px}
}

/* Auditoría: el bloque de estado es un módulo propio tras la explicación. */
main:not(.landing)>.page-intro+#audit-workflow{margin-top:var(--layout-gap)}
#audit-workflow{display:grid;gap:var(--layout-gap)}
#audit-workflow>.metrics{margin:0}

/* Auditoría: contenido largo y fuentes externas nunca ensanchan la vista móvil. */
#audit-workflow,
#audit-workflow>* ,
#audit-workflow .panel,
#audit-workflow .panel-head>div,
#audit-workflow .audit-proposals,
#audit-workflow .audit-proposal,
#audit-workflow .audit-chat-answer,
#audit-workflow .audit-chat-list{min-width:0;max-width:100%}
#audit-workflow p,
#audit-workflow li,
#audit-workflow small,
#audit-workflow .tag{overflow-wrap:anywhere;word-break:normal}
.audit-privacy-consent{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-width:0;line-height:1.5}
.audit-privacy-consent input{margin:3px 0 0}
.audit-chat-verdicts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media(max-width:720px){
  #audit-workflow>.metrics{grid-template-columns:minmax(0,1fr)}
  #audit-workflow>.metrics div{min-height:0;border-right:0!important;border-bottom:1px solid var(--line)}
  #audit-workflow>.metrics div:last-child{border-bottom:0}
  #audit-workflow>.metrics strong{white-space:normal;font-size:clamp(18px,5.2vw,22px)}
  #audit-workflow .panel-head{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  #audit-workflow .panel-head .tag{justify-self:start;max-width:100%;white-space:normal}
  #audit-workflow .audit-chat-verdicts{grid-template-columns:minmax(0,1fr)}
  #audit-workflow .audit-proposals,
  #audit-workflow .audit-proposal{padding:17px}
  #audit-workflow .audit-chat-list ul{padding-left:18px}
}

/* Administración: cada cuenta conserva sus acciones dentro de la pantalla. */
@media(max-width:720px){
  #admin .list-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:14px}
  #admin .list-row>div:first-child{min-width:0}
  #admin .list-row b{overflow-wrap:anywhere}
  #admin .list-row>.muted{justify-self:start}
  #admin .admin-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%;justify-content:stretch;gap:10px}
  #admin .admin-role-field{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;gap:10px}
  #admin .admin-role-field select,
  #admin .admin-actions .text-button{width:100%;min-width:0;max-width:none}
}

/* Continuous operational control and notifications. */
.operational-nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:#e7b85d;color:#10171b;font-size:10px;font-weight:800;line-height:1}
.operational-control-panel{display:grid;gap:16px}
.operational-control-panel>.panel-head{align-items:flex-start;margin:0}
.operational-control-panel>.panel-head>small{color:var(--muted);white-space:nowrap}
.operational-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:9px}
.operational-summary span{display:grid;gap:3px;padding:13px 15px;border-right:1px solid var(--line);color:var(--muted);font-size:11px}
.operational-summary span:last-child{border-right:0}
.operational-summary b{color:#edf5f3;font-size:18px}
.operational-all-clear{margin:0;padding:12px 14px;border-left:3px solid var(--mint);background:#10241f;color:#bfe8dc}
.operational-notifications{display:grid;gap:10px;padding:15px;border:1px solid #725a2f;border-radius:9px;background:#2b24182b}
.operational-notifications h3{margin:3px 0 0}
.operational-notification{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:12px 14px;border-left:3px solid #e7b85d;background:#121b20}
.operational-notification.status-fail{border-left-color:#ff8585}
.operational-notification.severity-attention.status-fail{border-left-color:#e7b85d}
.operational-notification>span{font-weight:700;color:#e7b85d}
.operational-notification.status-fail>span{color:#ff9b9b}
.operational-notification.severity-attention.status-fail>span{color:#e7c57c}
.operational-notification p,.operational-notification small{grid-column:1/-1;margin:0}
.operational-notification p{color:#d7dfdf}
.operational-notification small{color:var(--muted)}
.operational-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.operational-stage{display:grid;align-content:start;gap:10px;min-width:0;padding:15px;border:1px solid var(--line);border-left:3px solid #69d6bb;border-radius:9px;background:#0a141a}
.operational-stage.status-pending{border-left-color:#718290}
.operational-stage.status-warning{border-left-color:#e7b85d}
.operational-stage.status-fail{border-left-color:#ff8585}
.operational-stage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.operational-stage-head .eyebrow{margin:0}
.operational-stage h3{margin:4px 0 0;font-size:17px}
.operational-stage>p{margin:0;color:#d0d9d8}
.operational-state{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#17332c;color:#9ce7d2;font-size:9px;font-weight:800;letter-spacing:.08em}
.status-pending .operational-state{background:#1c2730;color:#aebbc4}
.status-warning .operational-state{background:#352b19;color:#e7c57c}
.status-fail .operational-state{background:#391f22;color:#ffabab}
.operational-evidence{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
.operational-evidence time{text-align:right;white-space:nowrap}
.operational-stage details{font-size:11px}
.operational-stage details p{margin:7px 0 0}
.operational-history{padding-top:4px}
.operational-history>summary{color:var(--mint);font-weight:700;cursor:pointer}
.operational-history .list-row time{color:var(--muted);font-size:11px;white-space:nowrap}
.operational-reviewed{padding-top:4px}
.operational-reviewed>summary{color:var(--muted);font-weight:700;cursor:pointer}
.operational-reviewed .list-row>span{color:#e7c57c;font-size:11px;white-space:nowrap}
@media(max-width:720px){
  .operational-control-panel>.panel-head{display:grid;gap:8px}
  .operational-control-panel>.panel-head>small{white-space:normal}
  .operational-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .operational-summary span:nth-child(2){border-right:0}
  .operational-summary span:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .operational-stages{grid-template-columns:1fr}
  .operational-stage-head{display:flex}
  .operational-evidence{display:grid;gap:4px}
  .operational-evidence time{text-align:left;white-space:normal}
  .operational-notification{grid-template-columns:1fr}
  .operational-notification p,.operational-notification small{grid-column:1}
}

.selected-portfolios>.selected-portfolio{margin:0}

/* Configuración por capas: cada bloque permanece dentro del ancho de la app. */
.page-intro,.universe-overview,.universe-settings,.strategy-settings,.mandate-settings,
.layered-portfolio-card,.core-decision-panel{min-width:0;max-width:100%}
.universe-settings>.panel,.strategy-settings>.panel,.mandate-settings>.panel{width:100%;min-width:0;overflow:hidden}
.universe-settings .score-form,.strategy-settings .score-form,.mandate-settings .score-form{
  grid-template-columns:repeat(4,minmax(0,1fr));width:100%;min-width:0
}
.universe-settings .score-form label,.strategy-settings .score-form label,.mandate-settings .score-form label{min-width:0;overflow-wrap:anywhere}
.universe-settings .score-form input,.strategy-settings .score-form input,.mandate-settings .score-form input{width:100%;min-width:0;max-width:100%}
.universe-settings .form-actions,.strategy-settings .form-actions,.mandate-settings .form-actions{width:100%;max-width:100%}
.layered-portfolio-card{display:block;margin-top:var(--layout-gap)}
.layered-portfolio-card .panel-head{margin-bottom:0}
.layered-portfolio-card .incorporated-assets{margin-top:18px}
.mandate-settings+.layered-portfolio-card,.layered-portfolio-card+.core-decision-panel{margin-top:var(--layout-gap)!important}
@media(max-width:980px){
  .universe-settings .score-form,.strategy-settings .score-form,.mandate-settings .score-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .universe-settings .score-form,.strategy-settings .score-form,.mandate-settings .score-form{grid-template-columns:minmax(0,1fr)}
  .layered-portfolio-card .panel-head{display:grid;gap:10px}
  .layered-portfolio-card .tag{justify-self:start}
  .layered-portfolio-card .asset-row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
  .layered-portfolio-card .asset-row>span{text-align:left;white-space:normal}
}

/* Los flujos ya usan `gap`: los paneles insertados no deben sumarle otro margen. */
#audit-workflow>.audit-maturity,#risk-workflow>.risk-capacity{margin-top:0}

/* Los dos motores publican configuraciones independientes. */
.score-models{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%}
.score-model{min-width:0;padding:16px;border:1px solid var(--line);border-radius:9px;background:#0a141a}
.score-model-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.score-model-heading h3{margin:0;font-size:17px}
.score-model-heading span{color:var(--mint);font-size:12px;font-weight:700}
.score-model input[readonly]{cursor:default;color:#edf5f3;background:#0b171d}
@media(max-width:900px){.score-models{grid-template-columns:1fr}}

/* Universo: controles compactos, alineados y sin estilos nativos discordantes. */
.universe-settings #layer-markets{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%
}
.universe-settings #layer-products{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:720px
}
.universe-settings #layer-markets button,.universe-settings #layer-products button{
  width:100%;min-width:0;height:var(--action-height);padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.universe-settings .universe-selection-actions{display:flex;width:auto;gap:8px;margin-top:8px}
.universe-settings .universe-selection-actions button{width:auto;min-width:160px}
.universe-settings .score-form label{width:100%;max-width:none}
.universe-settings .score-form .compact-check{
  display:flex;align-items:center;align-self:end;gap:10px;min-height:var(--field-height);padding:0 12px;
  border:1px solid var(--line);border-radius:8px;background:#0b171d;color:#b9c5d0;font-size:var(--field-label);line-height:1.25
}
.universe-settings .score-form .compact-check input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;width:17px;height:17px;min-width:17px;max-width:17px;flex:0 0 17px;margin:0;
  border:1px solid #4ad5c7;border-radius:4px;background:#081116;display:grid;place-items:center
}
.universe-settings .score-form .compact-check input[type="checkbox"]:checked{background:#36cbb9}
.universe-settings .score-form .compact-check input[type="checkbox"]:checked::after{
  content:"✓";color:#061210;font-size:13px;font-weight:900;line-height:1
}
@media(max-width:980px){
  .universe-settings #layer-markets{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .universe-settings #layer-markets{grid-template-columns:repeat(2,minmax(0,1fr))}
  .universe-settings #layer-products{grid-template-columns:minmax(0,1fr)}
  .universe-settings .universe-selection-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .universe-settings .universe-selection-actions button{width:100%;min-width:0}
}
@media(max-width:440px){.universe-settings #layer-markets{grid-template-columns:minmax(0,1fr)}}

/* Sistema de botones de configuración: retícula, medida y ritmo únicos. */
:root{--button-grid-gap:10px;--button-grid-columns:6}
.universe-toggles,
.mandate-tabs,
.portfolio-tabs,
.history-portfolio-tabs,
.history-filters,
.multi-selector{
  display:grid;
  grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr));
  gap:var(--button-grid-gap);
  width:100%;
  justify-content:start;
}
.universe-toggles button,
.mandate-tabs button,
.portfolio-tabs button,
.history-portfolio-tabs button,
.history-filters button,
.profile-portfolio-tabs button,
.multi-selector label,
#select-all-portfolios{
  width:100%;min-width:0;max-width:none;height:var(--action-height);min-height:var(--action-height);
  margin:0;padding:0 var(--action-padding);border-radius:8px;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.15
}
.universe-toggles button:not(.avatar):not(.password-toggle),
.mandate-tabs button:not(.avatar):not(.password-toggle),
.portfolio-tabs button:not(.avatar):not(.password-toggle),
.history-portfolio-tabs button:not(.avatar):not(.password-toggle),
.history-filters button:not(.avatar):not(.password-toggle),
.profile-portfolio-tabs button:not(.avatar):not(.password-toggle){
  width:100%;min-width:0;max-width:none
}
.form-actions{
  display:grid;grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr));
  gap:var(--button-grid-gap);width:100%;justify-content:start
}
.form-actions .profile-button,.form-actions .text-button,.form-actions .state-button{
  width:100%;min-width:0;max-width:none;margin:0;box-sizing:border-box
}
.form-actions button:not(.avatar):not(.password-toggle){width:100%;min-width:0;max-width:none}
.universe-settings #layer-markets,.universe-settings #layer-products{
  grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr));
  gap:var(--button-grid-gap);width:100%;max-width:none
}
.universe-settings .universe-selection-actions{
  display:grid;grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr));
  gap:var(--button-grid-gap);width:100%;margin-top:var(--button-grid-gap)
}
.universe-settings .universe-selection-actions button{width:100%;min-width:0;max-width:none}
@media(max-width:1180px){:root{--button-grid-columns:4}}
@media(max-width:980px){:root{--button-grid-columns:3}}
@media(max-width:720px){:root{--button-grid-columns:2}.mandate-tabs,.portfolio-tabs,.history-portfolio-tabs,.history-filters,.multi-selector{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){:root{--button-grid-columns:1}.mandate-tabs,.portfolio-tabs,.history-portfolio-tabs,.history-filters,.multi-selector{grid-template-columns:minmax(0,1fr)}}

/* Sistema de campos configurables: misma retícula, altura y separación en todo el frontal. */
:root{--field-grid-columns:4;--field-grid-column-gap:14px;--field-grid-row-gap:13px}
.score-form,
.mandate-form .form-section,
.capital-flow-form{
  display:grid;grid-template-columns:repeat(var(--field-grid-columns),minmax(0,1fr));
  column-gap:var(--field-grid-column-gap);row-gap:var(--field-grid-row-gap);
  width:100%;min-width:0;justify-content:stretch
}
.score-form label,
.mandate-form .form-section label,
.capital-flow-form label,
#currency-form label{
  width:100%;min-width:0;max-width:none;margin:0;box-sizing:border-box
}
.score-form input:not([type=checkbox]),
.score-form select,
.mandate-form .form-section input:not([type=checkbox]),
.mandate-form .form-section select,
.capital-flow-form input:not([type=checkbox]),
.capital-flow-form select,
#currency-form input:not([type=checkbox]),
#currency-form select{
  width:100%;min-width:0;max-width:none;height:var(--field-height);box-sizing:border-box
}
.score-form .compact-check,
.mandate-form .form-section label:has(input[type=checkbox]){
  width:100%;min-width:0;max-width:none;height:var(--field-height);min-height:var(--field-height);
  margin:0;padding:0 12px;box-sizing:border-box
}
#currency-form{
  display:grid;grid-template-columns:repeat(var(--field-grid-columns),minmax(0,1fr));
  column-gap:var(--field-grid-column-gap);row-gap:var(--field-grid-row-gap);width:100%;min-width:0
}
@media(max-width:1180px){:root{--field-grid-columns:3}}
@media(max-width:820px){:root{--field-grid-columns:2}}
@media(max-width:560px){:root{--field-grid-columns:1}}

/* Los selectores de cartera ocupan el mismo ancho útil que el resto de retículas. */
.portfolio-selector-panel{display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;align-items:start}
.portfolio-selector-panel>div:first-child,.mandate-selector.portfolio-selector-panel>div:first-child{min-width:0}
.portfolio-selector-panel .multi-selector,.mandate-selector.portfolio-selector-panel .mandate-tabs{width:100%;justify-content:start}
#currency-form .profile-button{
  grid-column:1/-1;justify-self:start;
  width:calc((100% - (var(--button-grid-columns) - 1) * var(--button-grid-gap)) / var(--button-grid-columns));
  min-width:0;max-width:none
}
@media(max-width:560px){#currency-form .profile-button{width:100%}}

/* Opportunities: cada configuración pertenece visualmente a su propio libro. */
.opportunity-workspaces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.opportunity-workspace{display:grid;align-content:start;gap:16px;min-width:0}
.opportunity-workspace>.opportunity-settings,.opportunity-workspace>.opportunity-list{width:100%;min-width:0;margin:0}
.opportunity-workspace .strategy-form{width:100%;min-width:0;box-sizing:border-box}
.opportunity-workspace .score-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.opportunity-workspace .form-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.opportunity-workspaces{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.opportunity-workspace .score-form,.opportunity-workspace .form-actions{grid-template-columns:minmax(0,1fr)}}

/* Carteras: mandato compacto y alineado con el ancho útil de la vista. */
.mandate-settings .score-form{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:12px;row-gap:11px}
.mandate-settings hr{width:100%;height:0;margin:16px 0;border:0;border-top:1px solid var(--line);opacity:1}
.layered-portfolio-card,
.layered-portfolio-card + .core-decision-panel{width:100%;max-width:none;box-sizing:border-box}
.layered-portfolio-card + .core-decision-panel{margin:var(--layout-gap) 0 0}
@media(max-width:1180px){.mandate-settings .score-form{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:980px){.mandate-settings .score-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.mandate-settings .score-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.mandate-settings .score-form{grid-template-columns:minmax(0,1fr)}}

/* Portfolio: gestión ligada a la selección activa y con una ficha métrica estable. */
.position-lifecycle{width:100%;max-width:none;box-sizing:border-box;margin:0}
.position-lifecycle .panel-head{align-items:start}
.position-management-list{display:grid;width:100%}
.position-management-row{display:grid;grid-template-columns:minmax(240px,1.25fr) minmax(0,3fr);gap:22px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}
.position-management-identity{display:grid;gap:6px;min-width:0}
.position-management-identity .instrument-identity{display:flex;align-items:baseline;gap:8px;min-width:0}
.position-management-state{color:var(--mint);font-size:10px;font-weight:700;letter-spacing:.08em}
.position-management-identity small{color:var(--muted);line-height:1.4}
.position-management-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;min-width:0}
.position-management-metrics span{display:grid;gap:4px;min-width:0;padding-left:12px;border-left:1px solid var(--line)}
.position-management-metrics small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.position-management-metrics b{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:980px){.position-management-row{grid-template-columns:minmax(0,1fr);gap:12px}.position-management-metrics span:first-child{padding-left:0;border-left:0}}
@media(max-width:720px){.position-management-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.position-management-metrics span:nth-child(odd){padding-left:0;border-left:0}}
@media(max-width:440px){.position-management-metrics{grid-template-columns:minmax(0,1fr)}.position-management-metrics span{padding-left:0;border-left:0}}

/* Cabecera: tipografía original, huecos compactos y navegación lateral sin comprimir el acceso. */
.opportunity-workspace .strategy-form .score-form{container-type:inline-size}
@media(min-width:901px){
  #app>header:not(.landing-nav){
    grid-template-columns:max-content minmax(0,1fr) 50px;
    column-gap:16px;
  }
  #app>header:not(.landing-nav) .brand{min-width:max-content}
  #app>header:not(.landing-nav) nav{
    grid-column:2;
    width:100%;
    min-width:0;
    justify-content:center;
    justify-content:safe center;
  }
}
#app>header:not(.landing-nav) nav{
  gap:clamp(11px,1vw,17px);
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  scrollbar-color:#31545d transparent;
  -webkit-overflow-scrolling:touch;
}
#app>header:not(.landing-nav) nav::-webkit-scrollbar{display:block;height:3px}
#app>header:not(.landing-nav) nav::-webkit-scrollbar-track{background:transparent}
#app>header:not(.landing-nav) nav::-webkit-scrollbar-thumb{border-radius:999px;background:#31545d}
#app>header:not(.landing-nav) nav button{
  flex:0 0 auto;
  width:auto;
  min-width:max-content;
  max-width:none;
  padding:8px 2px;
  font-size:13px;
}
#app>header:not(.landing-nav) .avatar{
  grid-column:3;
  justify-self:end;
  width:40px!important;
  min-width:40px;
  height:40px!important;
  font-size:18px!important;
}
.profile-drawer{width:min(420px,calc(100vw - 40px))}
@media(max-width:900px){
  #app>header:not(.landing-nav){grid-template-columns:minmax(0,1fr) 50px}
  #app>header:not(.landing-nav) nav{grid-column:1/-1;grid-row:2;justify-content:flex-start}
}
@media(max-width:600px){
  #app>header:not(.landing-nav) nav button{font-size:13px}
  .profile-drawer{width:calc(100vw - 24px)}
}

/* Formularios: una geometría común de 164 × 38 px en todo el frontal. */
:root{--field-width:164px;--field-height:38px;--field-column-gap:16px;--field-row-gap:12px}
.score-form,
.mandate-form .form-section,
.capital-flow-form,
.universe-settings .score-form,
.mandate-settings .score-form{
  grid-template-columns:repeat(4,var(--field-width));
  column-gap:var(--field-column-gap);
  row-gap:var(--field-row-gap);
  justify-content:start;
}
.score-form label,
.mandate-form .form-section label,
.capital-flow-form label,
.universe-settings .score-form label,
.mandate-settings .score-form label{
  width:var(--field-width);
  max-width:var(--field-width);
}
.score-form input:not([type=checkbox]),
.mandate-form .form-section input:not([type=checkbox]),
.capital-flow-form input:not([type=checkbox]),
.capital-flow-form select,
.universe-settings .score-form input:not([type=checkbox]){
  width:100%;
  height:var(--field-height);
}
.universe-settings .score-form .compact-check{
  width:var(--field-width);
  max-width:var(--field-width);
  min-height:var(--field-height);
}
.opportunity-workspace .score-form{grid-template-columns:repeat(2,var(--field-width))}
@media(max-width:900px){
  .score-form,.mandate-form .form-section,.capital-flow-form,.universe-settings .score-form,.mandate-settings .score-form{grid-template-columns:repeat(3,var(--field-width))}
  .opportunity-workspace .score-form{grid-template-columns:repeat(2,var(--field-width))}
}
@media(max-width:700px){
  .score-form,.mandate-form .form-section,.capital-flow-form,.universe-settings .score-form,.mandate-settings .score-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .score-form label,.mandate-form .form-section label,.capital-flow-form label,.universe-settings .score-form label,.mandate-settings .score-form label,.universe-settings .score-form .compact-check{width:100%;max-width:none}
}
@media(max-width:440px){
  .score-form,.mandate-form .form-section,.capital-flow-form,.universe-settings .score-form,.mandate-settings .score-form,.opportunity-workspace .score-form{grid-template-columns:minmax(0,1fr)}
}

/* Imagen y visualizaciones: una sola gramática Orion para SVG, gráficos y órbitas. */
:root{
  --surface-visual:#0b171d;
  --visual-grid:#20343b;
  --visual-grid-soft:rgba(32,52,59,.62);
  --visual-primary:#9ce6c6;
  --visual-primary-fill:#287d75;
  --visual-secondary:#426d80;
  --visual-warning:#e6bd79;
}
img,svg{max-width:100%}
.landing-orbit{
  height:clamp(220px,34vw,430px);
  max-width:min(100%,520px);
  justify-self:center;
  background:none!important;
}
.landing-orbit .landing-eclipse{
  width:clamp(132px,18vw,220px)!important;
  height:clamp(132px,18vw,220px)!important;
  border-color:var(--visual-primary)!important;
  box-shadow:none!important;
}
.chart svg,
.history-chart,
.market-hours-track svg,
.market-hours-scale svg{display:block;max-width:100%}
.chart rect{fill:var(--visual-primary-fill)}
.chart rect.invested{fill:var(--visual-secondary)}
.chart text,
.market-hours-axis-label{fill:var(--muted)}
.history-chart-labels span{color:var(--muted)}
.history-chart line,
.market-hours-axis-rule{stroke:var(--visual-grid);stroke-width:1}
.history-chart polyline{stroke:var(--visual-primary);stroke-width:1.5;fill:none}
.history-chart-markers span{background:var(--visual-warning);border-color:var(--surface-visual)}
.market-hours-track{
  border-color:var(--visual-grid);
  background:var(--surface-visual);
}
.market-hours-grid-line{stroke:var(--visual-grid-soft);stroke-width:1}
.market-hours-band{fill:var(--visual-primary-fill);stroke:var(--visual-primary);stroke-width:1}
.market-hours-band:hover{fill:#349b8e}
.market-hours-now{stroke:var(--visual-warning);stroke-width:2}
.market-hours-now-dot{fill:var(--visual-warning)}
@media(max-width:720px){
  .landing-orbit{height:220px}
  .history-chart{min-height:130px}
  .portfolio-history-small .history-chart{min-height:105px}
}

/* Selectores de tic: mismo tamaño, alineación y estado visual en toda la app. */
:root{
  --tick-size:22px;
  --tick-radius:4px;
  --tick-border:#f0f3ee;
  --tick-bg:#f6f4ee;
  --tick-active:#176ec9;
  --tick-active-mark:#ffffff;
}
input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  inline-size:var(--tick-size)!important;
  block-size:var(--tick-size)!important;
  min-inline-size:var(--tick-size)!important;
  max-inline-size:var(--tick-size)!important;
  min-block-size:var(--tick-size)!important;
  max-block-size:var(--tick-size)!important;
  flex:0 0 var(--tick-size)!important;
  margin:0!important;
  padding:0!important;
  border:2px solid var(--tick-border)!important;
  border-radius:var(--tick-radius)!important;
  background:var(--tick-bg)!important;
  box-shadow:none!important;
  display:inline-grid!important;
  place-items:center!important;
  vertical-align:middle!important;
  cursor:pointer;
}
input[type="checkbox"]:checked{
  border-color:var(--tick-active)!important;
  background:var(--tick-active)!important;
}
input[type="checkbox"]:checked::after{
  content:"✓";
  color:var(--tick-active-mark);
  font-size:18px;
  line-height:1;
  font-weight:900;
  transform:translateY(-1px);
}
input[type="checkbox"]:disabled{
  cursor:not-allowed;
  opacity:.62;
}
label:has(> input[type="checkbox"]),
.audit-privacy-consent,
.compact-check,
.multi-selector label{
  display:inline-flex!important;
  align-items:center!important;
  gap:14px!important;
}
.compact-check{
  justify-content:flex-start!important;
}
.multi-selector input[type="checkbox"]{
  position:static!important;
  inline-size:var(--tick-size)!important;
  block-size:var(--tick-size)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.multi-selector label{
  min-height:var(--field-height)!important;
  justify-content:flex-start!important;
  line-height:1.2!important;
}

/* Menú de usuario: el drawer nunca debe generar scroll lateral ni cortar botones. */
.profile-drawer{
  box-sizing:border-box;
  inline-size:min(420px,calc(100vw - 40px))!important;
  max-inline-size:calc(100vw - 40px);
  overflow-x:hidden;
}
.profile-drawer *{box-sizing:border-box;max-inline-size:100%}
.profile-drawer input:not([type="checkbox"]),
.profile-drawer select{
  inline-size:100%!important;
  min-inline-size:0!important;
}
.profile-drawer .profile-button,
.profile-drawer .profile-logout{
  inline-size:100%!important;
  min-inline-size:0!important;
  max-inline-size:none!important;
}
.profile-drawer .user-portfolio-details{
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
  padding:16px 0!important;
  margin:18px 0 0!important;
}
.profile-drawer .user-portfolio-details summary{
  min-block-size:auto!important;
  padding:0!important;
  display:list-item!important;
}
.profile-drawer .user-portfolio-content{display:grid;gap:12px;padding-top:14px}
.profile-drawer .profile-portfolio-tabs{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  inline-size:100%!important;
  margin:0!important;
}
.profile-drawer .profile-portfolio-tabs button,
.profile-drawer .profile-portfolio-tabs .profile-portfolio-action{
  inline-size:100%!important;
  min-inline-size:0!important;
  max-inline-size:none!important;
  block-size:var(--action-height)!important;
  min-block-size:var(--action-height)!important;
  margin:0!important;
  padding:0 var(--action-padding)!important;
  border-radius:8px!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.profile-drawer .profile-portfolio-tabs .profile-portfolio-action{
  grid-column:1/-1;
}
@media(max-width:600px){
  .profile-drawer{
    inline-size:calc(100vw - 24px)!important;
    max-inline-size:calc(100vw - 24px);
  }
}
@media(max-width:420px){
  .profile-drawer .profile-portfolio-tabs{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:600px){
  label:has(> input[type="checkbox"]),
  .audit-privacy-consent,
  .compact-check,
  .multi-selector label{gap:10px!important}
}

/* Ritmo global de botones: misma separación lateral y vertical en toda la app. */
:root{
  --button-gap-x:16px;
  --button-gap-y:16px;
}
.universe-toggles,
.mandate-tabs,
.portfolio-tabs,
.history-portfolio-tabs,
.history-filters,
.multi-selector,
.form-actions,
.universe-settings .universe-selection-actions,
.capital-flow-actions,
#admin .admin-actions,
.landing-actions{
  column-gap:var(--button-gap-x)!important;
  row-gap:var(--button-gap-y)!important;
  gap:var(--button-gap-y) var(--button-gap-x)!important;
}
.universe-toggles button,
.mandate-tabs button,
.portfolio-tabs button,
.history-portfolio-tabs button,
.history-filters button,
.multi-selector label,
.form-actions button,
.universe-settings .universe-selection-actions button,
.capital-flow-actions button,
#admin .admin-actions button,
.profile-portfolio-tabs button,
.profile-portfolio-tabs .profile-portfolio-action{
  margin:0!important;
}
.profile-drawer .profile-portfolio-tabs{
  column-gap:var(--button-gap-x)!important;
  row-gap:var(--button-gap-y)!important;
  gap:var(--button-gap-y) var(--button-gap-x)!important;
}
@media(max-width:720px){
  :root{
    --button-gap-x:12px;
    --button-gap-y:12px;
  }
}

/* Tics globales: pequeños, encajados en campo y siempre en verde Orion. */
:root{
  --tick-size:16px;
  --tick-radius:4px;
  --tick-border:#e7eee9;
  --tick-bg:#f3f1ea;
  --tick-active:var(--visual-primary,#9ce6c6);
  --tick-active-mark:#061210;
  --tick-field-bg:#0b171d;
  --tick-field-border:var(--line);
}
input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  inline-size:var(--tick-size)!important;
  block-size:var(--tick-size)!important;
  min-inline-size:var(--tick-size)!important;
  max-inline-size:var(--tick-size)!important;
  min-block-size:var(--tick-size)!important;
  max-block-size:var(--tick-size)!important;
  flex:0 0 var(--tick-size)!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--tick-border)!important;
  border-radius:var(--tick-radius)!important;
  background:var(--tick-bg)!important;
  box-shadow:none!important;
  display:inline-grid!important;
  place-items:center!important;
  vertical-align:middle!important;
  cursor:pointer;
}
input[type="checkbox"]:checked{
  border-color:var(--tick-active)!important;
  background:var(--tick-active)!important;
}
input[type="checkbox"]:checked::after{
  content:"✓";
  color:var(--tick-active-mark);
  font-size:12px;
  line-height:1;
  font-weight:900;
  transform:translateY(-1px);
}
input[type="checkbox"]:focus-visible{
  outline:0;
  box-shadow:0 0 0 3px rgba(156,230,198,.18)!important;
}
label:has(> input[type="checkbox"]),
.audit-privacy-consent,
.compact-check,
.multi-selector label{
  min-block-size:var(--field-height,38px)!important;
  padding:0 14px!important;
  border:1px solid var(--tick-field-border)!important;
  border-radius:8px!important;
  background:var(--tick-field-bg)!important;
  color:#b9c5d0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  line-height:1.25!important;
}
.compact-check,
.mandate-form label:has(> input[type="checkbox"]),
.score-form .compact-check,
.universe-settings .score-form .compact-check,
.audit-privacy-consent,
.multi-selector label{
  width:100%!important;
  max-width:none!important;
}
.universe-settings .score-form .compact-check input[type="checkbox"],
.multi-selector input[type="checkbox"],
.audit-privacy-consent input[type="checkbox"]{
  position:static!important;
  margin:0!important;
}

/* Universo/Data: los checks necesitan respirar más que un campo numérico. */
.universe-settings .score-form .compact-check{
  grid-column:span 2!important;
  min-inline-size:calc((var(--field-width,164px) * 2) + var(--field-column-gap,16px))!important;
  inline-size:100%!important;
}
.universe-settings .score-form .compact-check span{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.universe-settings .form-actions{
  display:grid!important;
  grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr))!important;
  justify-content:start!important;
  align-items:start!important;
  gap:var(--button-gap-y,16px) var(--button-gap-x,16px)!important;
  margin-top:var(--field-row-gap,12px)!important;
  width:100%!important;
  max-width:100%!important;
}
.universe-settings .form-actions button:not(.avatar):not(.password-toggle){
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  min-block-size:var(--action-height,36px)!important;
  inline-size:100%!important;
}
@media(max-width:720px){
  .universe-settings .score-form .compact-check{
    grid-column:auto!important;
    min-inline-size:0!important;
  }
  .universe-settings .score-form .compact-check span{
    white-space:normal!important;
  }
  .universe-settings .form-actions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* Etiquetas de campos: una sola escala, compacta y estable en toda la app. */
:root{--config-label-font:10.5px}
.auth-panel label,
.profile-drawer label,
.compact-form label,
.form-section label,
.score-form label,
.capital-flow-form label,
#currency-form label,
.portfolio-selector label,
.universe-section-label{
  font-size:var(--config-label-font)!important;
  line-height:1.18!important;
}
.score-form label,
.mandate-form .form-section label,
.capital-flow-form label,
.universe-settings .score-form label,
.mandate-settings .score-form label,
#currency-form label,
.compact-form label{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  overflow-wrap:normal!important;
}
.score-form input:not([type=checkbox]),
.mandate-form .form-section input:not([type=checkbox]),
.capital-flow-form input:not([type=checkbox]),
.capital-flow-form select,
.universe-settings .score-form input:not([type=checkbox]),
#currency-form input:not([type=checkbox]),
#currency-form select,
.compact-form input,
.compact-form select{
  margin-top:5px!important;
}
.compact-check,
.mandate-form label:has(> input[type="checkbox"]),
.score-form .compact-check,
.universe-settings .score-form .compact-check,
.audit-privacy-consent,
.multi-selector label{
  font-size:var(--action-font,12px)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.universe-settings .form-actions button:not(.avatar):not(.password-toggle){
  font-size:11px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media(max-width:620px){
  .score-form label,
  .mandate-form .form-section label,
  .capital-flow-form label,
  .universe-settings .score-form label,
  .mandate-settings .score-form label,
  #currency-form label,
  .compact-form label{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
}

/* Universo/Data: selección masiva con el mismo ancho de columna que los mercados. */
.universe-settings #layer-markets,
.universe-settings #layer-products,
.universe-settings .universe-selection-actions{
  display:grid!important;
  grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr))!important;
  column-gap:var(--button-gap-x,16px)!important;
  row-gap:var(--button-gap-y,16px)!important;
  width:100%!important;
  max-width:none!important;
}
.universe-settings .universe-selection-actions{
  margin-top:var(--button-gap-y,16px)!important;
}
.universe-settings .universe-selection-actions button:not(.avatar):not(.password-toggle){
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  inline-size:100%!important;
  margin:0!important;
}
@media(max-width:440px){
  .universe-settings #layer-markets,
  .universe-settings #layer-products,
  .universe-settings .universe-selection-actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Botones de acción: mismo ancho, gap y ritmo que los botones de mercados. */
.form-actions,
.universe-actions,
.capital-flow-actions,
.admin-actions{
  display:grid!important;
  grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr))!important;
  column-gap:var(--button-gap-x,16px)!important;
  row-gap:var(--button-gap-y,16px)!important;
  width:100%!important;
  max-width:none!important;
  align-items:stretch!important;
  flex-wrap:unset!important;
}
.form-actions button:not(.avatar):not(.password-toggle),
.universe-actions button:not(.avatar):not(.password-toggle),
.capital-flow-actions button:not(.avatar):not(.password-toggle),
.admin-actions button:not(.avatar):not(.password-toggle){
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  inline-size:100%!important;
  height:var(--action-height)!important;
  margin:0!important;
  padding:0 12px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  flex:unset!important;
}
@media(max-width:980px){
  .form-actions,
  .universe-actions,
  .capital-flow-actions,
  .admin-actions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:620px){
  .form-actions,
  .universe-actions,
  .capital-flow-actions,
  .admin-actions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:440px){
  .form-actions,
  .universe-actions,
  .capital-flow-actions,
  .admin-actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Campos configurables: una sola caja de referencia en todo Orion.
   Patrón base: Universo/Data hard filters. Divisas y formularios compactos
   de configuración se pliegan a la misma métrica, sin afectar login/perfil. */
.score-form,
.mandate-form .form-section,
.capital-flow-form,
.universe-settings .score-form,
.mandate-settings .score-form,
.strategy-settings .score-form,
.opportunity-workspace .score-form,
.currency-settings #currency-form,
#admin .compact-form{
  display:grid!important;
  grid-template-columns:repeat(4,var(--field-width))!important;
  column-gap:var(--field-column-gap)!important;
  row-gap:var(--field-row-gap)!important;
  justify-content:start!important;
  align-items:end!important;
  width:100%!important;
  max-width:100%!important;
}
.score-form label,
.mandate-form .form-section label,
.capital-flow-form label,
.universe-settings .score-form label,
.mandate-settings .score-form label,
.strategy-settings .score-form label,
.opportunity-workspace .score-form label,
.currency-settings #currency-form label,
#admin .compact-form label{
  display:grid!important;
  gap:5px!important;
  width:var(--field-width)!important;
  max-width:var(--field-width)!important;
  min-width:0!important;
  margin:0!important;
  color:#b9c5d0!important;
  font-size:var(--config-label-font)!important;
  line-height:1.18!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  overflow-wrap:normal!important;
  box-sizing:border-box!important;
}
.score-form input:not([type=checkbox]),
.score-form select,
.mandate-form .form-section input:not([type=checkbox]),
.mandate-form .form-section select,
.capital-flow-form input:not([type=checkbox]),
.capital-flow-form select,
.universe-settings .score-form input:not([type=checkbox]),
.universe-settings .score-form select,
.mandate-settings .score-form input:not([type=checkbox]),
.mandate-settings .score-form select,
.strategy-settings .score-form input:not([type=checkbox]),
.strategy-settings .score-form select,
.opportunity-workspace .score-form input:not([type=checkbox]),
.opportunity-workspace .score-form select,
.currency-settings #currency-form input:not([type=checkbox]),
.currency-settings #currency-form select,
#admin .compact-form input:not([type=checkbox]),
#admin .compact-form select{
  width:var(--field-width)!important;
  max-width:var(--field-width)!important;
  min-width:0!important;
  height:var(--field-height)!important;
  margin-top:5px!important;
  padding:0 10px!important;
  border:1px solid #30495a!important;
  border-radius:8px!important;
  background:#091218!important;
  color:#f1f5f9!important;
  font-size:13px!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
.currency-settings #currency-form>button:not(.avatar):not(.password-toggle),
#admin .compact-form>button:not(.avatar):not(.password-toggle){
  width:var(--field-width)!important;
  max-width:var(--field-width)!important;
  min-width:0!important;
  height:var(--action-height)!important;
  margin:0!important;
  padding:0 12px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
.currency-settings #currency-message,
#admin #invite-result{
  grid-column:1/-1!important;
}
@media(max-width:900px){
  .score-form,
  .mandate-form .form-section,
  .capital-flow-form,
  .universe-settings .score-form,
  .mandate-settings .score-form,
  .strategy-settings .score-form,
  .opportunity-workspace .score-form,
  .currency-settings #currency-form,
  #admin .compact-form{
    grid-template-columns:repeat(3,var(--field-width))!important;
  }
}
@media(max-width:700px){
  .score-form,
  .mandate-form .form-section,
  .capital-flow-form,
  .universe-settings .score-form,
  .mandate-settings .score-form,
  .strategy-settings .score-form,
  .opportunity-workspace .score-form,
  .currency-settings #currency-form,
  #admin .compact-form{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .score-form label,
  .mandate-form .form-section label,
  .capital-flow-form label,
  .universe-settings .score-form label,
  .mandate-settings .score-form label,
  .strategy-settings .score-form label,
  .opportunity-workspace .score-form label,
  .currency-settings #currency-form label,
  #admin .compact-form label,
  .score-form input:not([type=checkbox]),
  .score-form select,
  .mandate-form .form-section input:not([type=checkbox]),
  .mandate-form .form-section select,
  .capital-flow-form input:not([type=checkbox]),
  .capital-flow-form select,
  .universe-settings .score-form input:not([type=checkbox]),
  .universe-settings .score-form select,
  .mandate-settings .score-form input:not([type=checkbox]),
  .mandate-settings .score-form select,
  .strategy-settings .score-form input:not([type=checkbox]),
  .strategy-settings .score-form select,
  .opportunity-workspace .score-form input:not([type=checkbox]),
  .opportunity-workspace .score-form select,
  .currency-settings #currency-form input:not([type=checkbox]),
  .currency-settings #currency-form select,
  #admin .compact-form input:not([type=checkbox]),
  #admin .compact-form select,
  .currency-settings #currency-form>button:not(.avatar):not(.password-toggle),
  #admin .compact-form>button:not(.avatar):not(.password-toggle){
    width:100%!important;
    max-width:none!important;
  }
}
@media(max-width:440px){
  .score-form,
  .mandate-form .form-section,
  .capital-flow-form,
  .universe-settings .score-form,
  .mandate-settings .score-form,
  .strategy-settings .score-form,
  .opportunity-workspace .score-form,
  .currency-settings #currency-form,
  #admin .compact-form{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Sistema final de controles Orion:
   1) on/off tipo botón, 2) campo editable, 3) booleano como on/off,
   4) acciones con misma caja y paleta propia. */
:root{
  --orion-control-height:38px;
  --orion-control-radius:8px;
  --orion-control-gap-x:16px;
  --orion-control-gap-y:16px;
  --orion-control-columns:6;
  --orion-control-bg:#102622;
  --orion-control-bg-off:#091218;
  --orion-control-border:#36d7c8;
  --orion-control-border-off:#30495a;
  --orion-control-text:#3ed8ca;
  --orion-action-primary:#3dcdbc;
  --orion-action-primary-text:#06211e;
  --orion-action-secondary:#091218;
  --orion-action-secondary-text:#9ce6c6;
}
.universe-toggles,
.mandate-tabs,
.portfolio-tabs,
.history-portfolio-tabs,
.profile-portfolio-tabs,
.multi-selector,
.form-actions,
.universe-actions,
.capital-flow-actions,
.admin-actions,
.universe-settings .universe-selection-actions{
  display:grid!important;
  grid-template-columns:repeat(var(--orion-control-columns),minmax(0,1fr))!important;
  column-gap:var(--orion-control-gap-x)!important;
  row-gap:var(--orion-control-gap-y)!important;
  align-items:stretch!important;
  justify-content:start!important;
  width:100%!important;
  max-width:none!important;
  margin-inline:0!important;
}
.universe-toggles button:not(.avatar):not(.password-toggle),
.mandate-tabs button:not(.avatar):not(.password-toggle),
.portfolio-tabs button:not(.avatar):not(.password-toggle),
.history-portfolio-tabs button:not(.avatar):not(.password-toggle),
.profile-portfolio-tabs button:not(.avatar):not(.password-toggle),
.multi-selector label,
.portfolio-selector-panel #select-all-portfolios,
.profile-portfolio-action{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  inline-size:100%!important;
  min-block-size:var(--orion-control-height)!important;
  height:var(--orion-control-height)!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid var(--orion-control-border-off)!important;
  border-radius:var(--orion-control-radius)!important;
  background:var(--orion-control-bg-off)!important;
  color:#9ce6c6!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  font-size:var(--action-font,12px)!important;
  font-weight:750!important;
  line-height:1!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  box-sizing:border-box!important;
  cursor:pointer;
}
.universe-toggles button.active:not(.avatar):not(.password-toggle),
.mandate-tabs button.active:not(.avatar):not(.password-toggle),
.portfolio-tabs button.active:not(.avatar):not(.password-toggle),
.history-portfolio-tabs button.active:not(.avatar):not(.password-toggle),
.profile-portfolio-tabs button.active:not(.avatar):not(.password-toggle),
.multi-selector label:has(input[type="checkbox"]:checked){
  border-color:var(--orion-control-border)!important;
  background:var(--orion-control-bg)!important;
  color:var(--orion-control-text)!important;
}
.compact-check input[type="checkbox"],
.multi-selector input[type="checkbox"],
.mandate-form label:has(> input[type="checkbox"]) input[type="checkbox"],
.audit-privacy-consent input[type="checkbox"],
.portfolio-toggle input[type="checkbox"]{
  position:absolute!important;
  inline-size:1px!important;
  block-size:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  margin:0!important;
}
.compact-check,
.mandate-form label:has(> input[type="checkbox"]),
.score-form .compact-check,
.universe-settings .score-form .compact-check,
.audit-privacy-consent,
.portfolio-toggle{
  width:var(--field-width)!important;
  max-width:var(--field-width)!important;
  min-width:0!important;
  min-block-size:var(--orion-control-height)!important;
  height:var(--orion-control-height)!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid var(--orion-control-border-off)!important;
  border-radius:var(--orion-control-radius)!important;
  background:var(--orion-control-bg-off)!important;
  color:#9ce6c6!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  font-size:var(--action-font,12px)!important;
  font-weight:750!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  box-sizing:border-box!important;
  cursor:pointer;
}
.compact-check:has(input[type="checkbox"]:checked),
.mandate-form label:has(> input[type="checkbox"]:checked),
.score-form .compact-check:has(input[type="checkbox"]:checked),
.universe-settings .score-form .compact-check:has(input[type="checkbox"]:checked),
.audit-privacy-consent:has(input[type="checkbox"]:checked),
.portfolio-toggle:has(input[type="checkbox"]:checked){
  border-color:var(--orion-control-border)!important;
  background:var(--orion-control-bg)!important;
  color:var(--orion-control-text)!important;
}
.universe-settings .score-form .compact-check{
  grid-column:auto!important;
  min-inline-size:0!important;
  inline-size:var(--field-width)!important;
}
.universe-settings .score-form .compact-check input[type="checkbox"],
.score-form .compact-check input[type="checkbox"],
.hard-filter-toggles .compact-check input[type="checkbox"],
.mandate-form label:has(> input[type="checkbox"]) input[type="checkbox"],
.multi-selector label input[type="checkbox"],
.portfolio-toggle input[type="checkbox"]{
  position:absolute!important;
  inline-size:1px!important;
  block-size:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  margin:0!important;
}
.hard-filter-toggles{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:var(--button-gap-y) var(--button-gap-x)!important;
  align-items:start!important;
  justify-content:start!important;
  width:calc((100% - var(--button-gap-x))/2)!important;
  margin:var(--field-row-gap) 0 20px!important;
}
.hard-filter-toggles .compact-check{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  justify-content:center!important;
  text-align:center!important;
}
@media(max-width:980px){
  .hard-filter-toggles{width:100%!important}
}
@media(max-width:620px){
  .hard-filter-toggles{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:440px){
  .hard-filter-toggles{grid-template-columns:minmax(0,1fr)!important}
  .hard-filter-toggles .compact-check{width:100%!important;min-width:0!important;max-width:none!important}
}
.compact-check>span,
.mandate-form label:has(> input[type="checkbox"])>span,
.score-form .compact-check>span,
.universe-settings .score-form .compact-check>span,
.portfolio-toggle>span,
.multi-selector label>span{
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  text-align:center!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Excepciones permanentes del sistema de controles. */
label.audit-privacy-consent.audit-privacy-consent.audit-privacy-consent{
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--text)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  font-size:var(--body-font,14px)!important;
  font-weight:400!important;
  line-height:1.5!important;
  white-space:normal!important;
  overflow:visible!important;
  cursor:pointer!important;
}
label.audit-privacy-consent.audit-privacy-consent.audit-privacy-consent input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  position:static!important;
  inline-size:18px!important;
  block-size:18px!important;
  min-inline-size:18px!important;
  max-inline-size:18px!important;
  min-block-size:18px!important;
  max-block-size:18px!important;
  flex:0 0 18px!important;
  opacity:1!important;
  pointer-events:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:3px!important;
  background:transparent!important;
  box-shadow:none!important;
  display:inline-block!important;
  accent-color:#1478d4!important;
}
label.audit-privacy-consent.audit-privacy-consent.audit-privacy-consent input[type="checkbox"]::after{
  content:none!important;
}
label.audit-privacy-consent.audit-privacy-consent.audit-privacy-consent>span{
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  text-align:left!important;
  white-space:normal!important;
  overflow:visible!important;
}
#admin #invite.compact-form{
  display:grid!important;
  grid-template-columns:minmax(360px,480px) var(--field-width)!important;
  gap:var(--field-column-gap,16px)!important;
  align-items:end!important;
  justify-content:start!important;
  width:100%!important;
  max-width:none!important;
}
#admin #invite.compact-form input[type="email"]{
  width:100%!important;
  min-width:360px!important;
  max-width:480px!important;
}
@media(max-width:720px){
  #admin #invite.compact-form{
    grid-template-columns:minmax(0,1fr)!important;
  }
  #admin #invite.compact-form input[type="email"]{
    min-width:0!important;
    max-width:none!important;
  }
}
.form-actions button:not(.avatar):not(.password-toggle),
.universe-actions button:not(.avatar):not(.password-toggle),
.capital-flow-actions button:not(.avatar):not(.password-toggle),
.admin-actions button:not(.avatar):not(.password-toggle),
.currency-settings #currency-form>button:not(.avatar):not(.password-toggle),
#admin .compact-form>button:not(.avatar):not(.password-toggle){
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  inline-size:100%!important;
  height:var(--orion-control-height)!important;
  margin:0!important;
  padding:0 12px!important;
  border-radius:var(--orion-control-radius)!important;
  font-size:var(--action-font,12px)!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  box-sizing:border-box!important;
  flex:unset!important;
}
.form-actions .profile-button,
.universe-actions .profile-button,
.capital-flow-actions .profile-button,
.admin-actions .profile-button,
.currency-settings #currency-form>.profile-button,
#admin .compact-form>.profile-button{
  border:1px solid var(--orion-action-primary)!important;
  background:var(--orion-action-primary)!important;
  color:var(--orion-action-primary-text)!important;
}
.currency-settings #currency-form{
  grid-template-columns:repeat(var(--button-grid-columns),minmax(0,1fr))!important;
  column-gap:var(--orion-control-gap-x)!important;
  row-gap:var(--orion-control-gap-y)!important;
}
.currency-settings #currency-form>button:not(.avatar):not(.password-toggle){
  grid-column:auto!important;
}
@media(min-width:901px){
  .opportunity-workspace .strategy-form .score-form{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    column-gap:var(--field-column-gap)!important;
    width:100%!important;
  }
  .opportunity-workspace .strategy-form .score-form label,
  .opportunity-workspace .strategy-form .score-form input:not([type=checkbox]),
  .opportunity-workspace .strategy-form .score-form select{
    width:calc((100cqw - 48px)/4)!important;
    max-width:calc((100cqw - 48px)/4)!important;
    min-width:0!important;
    inline-size:calc((100cqw - 48px)/4)!important;
    max-inline-size:calc((100cqw - 48px)/4)!important;
    min-inline-size:0!important;
  }
  .opportunity-workspace .strategy-form .score-form input[type=number]{
    appearance:textfield!important;
    -webkit-appearance:none!important;
  }
  .opportunity-workspace .strategy-form .score-form input[type=number]::-webkit-inner-spin-button,
  .opportunity-workspace .strategy-form .score-form input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance:none!important;
    margin:0!important;
  }
  .opportunity-workspace .strategy-form .form-actions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:min(100%,370px)!important;
  }
  .opportunity-workspace .strategy-form .form-actions button:not(.avatar):not(.password-toggle){
    font-size:10.5px!important;
  }
}
.form-actions .text-button,
.universe-actions .text-button,
.capital-flow-actions .text-button,
.admin-actions .text-button,
.portfolio-selector-panel #select-all-portfolios,
.profile-portfolio-action,
.currency-settings #currency-form>.text-button,
#admin .compact-form>.text-button{
  border:1px solid var(--orion-control-border-off)!important;
  background:var(--orion-action-secondary)!important;
  color:var(--orion-action-secondary-text)!important;
}
.portfolio-selector-panel{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:16px!important;
  align-items:start!important;
}
.portfolio-selector-panel .multi-selector label:has(> input[type="checkbox"]){
  justify-content:center!important;
  text-align:center!important;
}
@media(max-width:1280px){:root{--orion-control-columns:5}}
@media(max-width:1080px){:root{--orion-control-columns:4}}
@media(max-width:820px){:root{--orion-control-columns:3}}
@media(max-width:620px){:root{--orion-control-columns:2}}
@media(max-width:440px){:root{--orion-control-columns:1}}

/* Mobile containment: legacy desktop rules gave grid children intrinsic widths
   larger than the viewport. Never hide that overflow: make each Orion module
   genuinely fit its containing column. */
@media(max-width:900px){
  main:not(.landing),
  main:not(.landing)>*,
  .scheduler-module,
  .scheduler-module>*,
  .scheduler-heading,
  .scheduler-cycle-panel,
  .scheduler-markets,
  .scheduler-datasets,
  .scheduler-contract-missing,
  .opp-page-intro,
  .opp-grid,
  .fx-page-intro,
  .fx-dashboard-grid,
  .fx-panel{
    min-width:0!important;
    max-width:100%!important;
  }
  .scheduler-module{grid-template-columns:minmax(0,1fr)!important}
  .scheduler-heading,
  .scheduler-cycle-panel,
  .scheduler-markets,
  .scheduler-datasets,
  .scheduler-contract-missing{width:100%!important}
  .scheduler-cycle-head{width:100%!important}
  .scheduler-cycle-head .scheduler-detail-link{
    width:auto!important;
    max-width:100%!important;
    white-space:normal!important;
  }
  .scheduler-cycle-status-grid,
  .scheduler-cycle-details,
  .scheduler-market-grid,
  .scheduler-datasets .scheduler-table-wrap{min-width:0!important;max-width:100%!important}
  .scheduler-heading{display:block!important}
  .scheduler-heading .scheduler-source{display:inline-flex;margin-top:10px;white-space:normal}
  .scheduler-cycle-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .scheduler-cycle-details{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .scheduler-cycle-details>div:nth-child(2n){border-right:0!important}
}
