/* Option 2: one portal shell. 18px body/16px supporting text at the default
   browser setting are product choices, not WCAG minimum font-size rules. */
html { font-size:100%; }
.portal-unified.portal-booting>main,.portal-unified.portal-booting #portal-summary,.portal-unified.portal-booting .tool-switch { display:none!important; }
.portal-unified .portal-loading { grid-column:2;padding:2rem;font-size:1.125rem;color:#18263c; }
.portal-unified .portal-loading h2 { font-size:1.5rem; }
.portal-unified .portal-loading[hidden] { display:none; }
@media(max-width:900px) { .portal-unified .portal-loading { grid-column:1; } }
body.mosal-portal.portal-unified {
    --brand-ink:#192637;
    --brand-navy:#192637;
    --brand-muted:#526176;
    --brand-muted-soft:#596a80;
    --brand-bg:#f5f7fb;
    --brand-surface:#fff;
    --brand-border:#dbe2eb;
    --brand-action:#245995;
    --brand-action-hover:#194678;
    --brand-green:#3edc91;
    --brand-green-dark:#007e50;
    --brand-green-soft:#e4f5eb;
    margin:0;
    height:auto;
    min-height:100dvh;
    overflow:visible;
    grid-template-columns:16rem minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);
    background:var(--brand-bg);
    color:var(--brand-ink);
    font-family:var(--fuente);
    font-size:1.125rem;
    line-height:1.5;
    -webkit-font-smoothing:auto;
    font-synthesis:none;
}
.portal-unified #portal-sidebar {
    position:sticky;
    top:0;
    width:16rem;
    height:100dvh;
    max-height:100dvh;
    background:#06150d!important;
    color:#e4eee8;
    scrollbar-width:thin;
}
.portal-unified #portal-sidebar .portal-navigation { padding:1.5rem .75rem 1rem; }
.portal-unified #portal-sidebar h1 { font-family:inherit;font-size:1.5rem;line-height:1.25;letter-spacing:0;font-weight:700;margin-bottom:1.5rem; }
.portal-unified #portal-sidebar h1 span { color:#16d889; }
.portal-unified #portal-sidebar .workspace-label { color:#93aa9d;font-size:1rem;letter-spacing:.035em;font-weight:600;margin:.75rem .75rem; }
.portal-unified #portal-sidebar .tool-switch-option {
    grid-template-columns:1.5rem minmax(0,1fr);
    min-height:3rem;
    padding:.75rem;
    gap:.75rem;
    color:#d9e4dd;
    border-left:2px solid transparent;
    line-height:1.5;
    text-decoration:none;
}
.portal-unified #portal-sidebar .tool-switch-option:hover { background:#112a1e;color:white; }
.portal-unified #portal-sidebar .tool-switch-option.active { background:#173b2a;border-left-color:#16d889;color:#8befbd; }
.portal-unified #portal-sidebar .tool-switch-option__code { color:#16d889;width:1.5rem;height:auto;min-height:1.5rem;font-size:1.125rem; }
.portal-unified #portal-sidebar .tool-switch-option__copy strong { font-size:1rem;font-weight:600;line-height:1.5;overflow-wrap:anywhere; }
.portal-unified #portal-sidebar .tool-switch-option__code svg { width:1.375rem;height:1.375rem;stroke-width:1.8; }
.portal-unified #whatsapp-link-access { color:#d9e4dd;padding:.75rem; }
.portal-unified #whatsapp-link-access strong { font-size:1rem;line-height:1.5; }
.portal-unified .whatsapp-link-access__icon { color:#16d889; }
.portal-unified .portal-sidebar-footer { padding:1.25rem 1.5rem;color:#a7b8ae;font-size:1rem; }
.portal-unified .portal-sidebar-footer small { font-size:1rem; }
.portal-unified #portal-summary { padding:1rem 1.5rem; }
.portal-unified #portal-summary :is(h3,p,strong,.text-xs) { color:#d6e0ee;font-size:1rem;letter-spacing:0;white-space:normal;overflow-wrap:anywhere; }
.portal-unified #portal-summary h3 { font-weight:600; }
.portal-unified .portal-topbar { min-height:5rem;height:auto;padding:1rem 1.5rem;gap:1rem;flex-wrap:wrap; }
.portal-unified .portal-breadcrumb { font-size:1rem;gap:.75rem;letter-spacing:0;min-width:0;overflow-wrap:anywhere; }
.portal-unified .portal-breadcrumb strong { font-weight:600; }
.portal-unified .portal-breadcrumb span { color:#526176; }
.portal-unified .portal-account { gap:1rem;min-width:0; }
.portal-unified .portal-identity strong { max-width:16rem;font-size:1rem;font-weight:600;white-space:normal;overflow:visible;overflow-wrap:anywhere; }
.portal-unified .portal-identity small { font-size:1rem;color:var(--brand-muted); }
.portal-unified #portal-commercial-avatar { width:2.75rem;height:2.75rem;font-size:1.25rem;background:#245995;color:white; }
.portal-unified .portal-topbar-logout { font-size:1rem;padding:.625rem .875rem;white-space:normal;line-height:1.5; }
.portal-unified .portal-topbar-logout:hover { border-color:#245995;background:#edf4ff; }
.portal-unified > main { width:100%;min-width:0;overflow:visible;padding:1.5rem; }
.portal-unified .workspace-heading { gap:1.25rem;margin-bottom:1.5rem;flex-wrap:wrap; }
.portal-unified .workspace-label { font-size:1rem;letter-spacing:.035em;line-height:1.5; }
.portal-unified .workspace-heading :is(h1,h2) { font-size:2rem;font-weight:700;letter-spacing:-.025em;line-height:1.25;margin:.5rem 0;overflow-wrap:anywhere; }
.portal-unified .workspace-heading :is(h1,h2)::after { content:none; }
.portal-unified #workspace-description { font-size:1.125rem;line-height:1.5; }
.portal-unified :is(button,input,select,textarea) { font-family:inherit; }
.portal-unified :is(button,.button,.portal-primary,.portal-secondary,input:not([type=checkbox]):not([type=radio]),select,textarea) { min-height:44px; }
.portal-unified :is(button,.button,.portal-primary,.portal-secondary) { min-width:44px;line-height:1.5;white-space:normal; }
.portal-unified :is(.portal-primary,.portal-secondary,.action-button,.solar-btn) { font-size:1rem;font-weight:600; }
.portal-unified :is(.portal-primary,.action-button--primary) { background:#245995;border-color:#245995;color:white; }
.portal-unified :is(.portal-primary,.action-button--primary):hover { background:#194678; }
.portal-unified :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #0e5ca8;outline-offset:3px; }
.portal-unified #portal-sidebar :is(a,button):focus-visible { outline-color:#8fd2ff; }
.portal-unified :is(input,select,textarea) { color:#192637;background:white;font-size:1.125rem;line-height:1.5;max-width:100%; }
/* Keep the meter track visible inside its 44px interaction area. */
.portal-unified input.range-slider { appearance:none;height:44px;padding:0;border:0;background:transparent; }
.portal-unified .range-slider::-webkit-slider-runnable-track { height:6px;border-radius:999px;background:#7c8da5; }
.portal-unified .range-slider::-moz-range-track { height:6px;border-radius:999px;background:#7c8da5; }
.portal-unified .range-slider::-webkit-slider-thumb { margin-top:-7px; }
.portal-unified :is(input,textarea)::placeholder { color:#5c697c;opacity:1; }
.portal-unified :is(.portal-filters,.portal-card) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea) { border-color:#7c8da5;height:auto; }
.portal-unified :is(.text-xs,.text-sm,.portal-count,.portal-empty,.quote-table-head,.quote-row,.quote-identity small,.quote-payment,.quote-code,.quote-status,.quote-readonly,.quote-contract summary,.quote-contract select,.quote-contract button,.solar-eyebrow) { font-size:1rem;line-height:1.5; }
.portal-unified .portal-card label.uppercase { font-size:1rem;font-weight:600;letter-spacing:0; }
.portal-unified :is(.portal-panel-heading h3,.step-content>h2,.stock-toolbar h3) { font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.4; }
.portal-unified .portal-empty strong { font-size:1.375rem;font-weight:600; }
.portal-unified .portal-filters { grid-template-columns:minmax(0,1fr) minmax(10rem,1fr) minmax(10rem,1fr) auto;gap:.75rem; }
.portal-unified .portal-filters :is(input,select) { font-size:1rem;min-height:3rem; }
.portal-unified #team_scope_wrapper { font-size:1rem; }
.portal-unified .quote-table-head,.portal-unified .quote-row { grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 44px;gap:1rem; }
.portal-unified .quote-identity strong { font-size:1.125rem; }
.portal-unified .quote-status { white-space:normal;overflow-wrap:anywhere; }
.portal-unified .quote-total { overflow-wrap:anywhere; }
.portal-unified #portal-workflow ul:not(.hidden) { flex-wrap:wrap; }
.portal-unified #portal-workflow li { flex:0 1 auto; }
.portal-unified #portal-workflow p { font-size:1rem;font-weight:600; }
.portal-unified #portal-workflow .step-indicator { width:2rem;height:2rem;min-width:2rem;font-size:1rem; }
.portal-unified :is(#clientes-root,#seguimiento-root,#formacion-root) { background:transparent;border:0;box-shadow:none;max-width:none;min-width:0; }
/* These workspaces bring their own cards; the native module frame must not add
   a second white surface or consume the width needed by the readable layout. */
.portal-unified:is([data-portal-tool=clientes],[data-portal-tool=seguimiento],[data-portal-tool=formacion])>main>.portal-card { width:100%;max-width:none;min-height:0;background:transparent;border:0;border-radius:0;padding:0;overflow:visible; }
.portal-unified:is([data-portal-tool=clientes],[data-portal-tool=seguimiento],[data-portal-tool=formacion])>main>.portal-card>div:first-child { padding:0; }
.portal-unified :is(#clientes-frame,#seguimiento-frame,#formacion-frame) { display:block;width:100%;max-width:100%;border:0;background:#f5f7fb; }
.portal-unified :is(#clientes-frame,#seguimiento-frame)[hidden] { display:none; }
.portal-unified[data-portal-tool=clientes]>main>.workspace-heading,
.portal-unified[data-portal-tool=seguimiento]>main>.workspace-heading,
.portal-unified[data-portal-tool=formacion]>main>.workspace-heading { display:none; }
.portal-unified .portal-module-status { display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem;font-size:1rem;color:#526176; }
.portal-unified .portal-module-status:empty { display:none; }
.portal-unified :is(.stock-action,.stock-status) { font-size:1rem!important;line-height:1.5; }
.portal-unified .stock-action { min-height:44px;min-width:44px; }
/* «Bandeja clara» (15/10): sin barra de píldoras encima de Seguimiento; la navegación es solo la barra lateral. */
@media(max-width:1200px) {
    .portal-unified .portal-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .portal-unified .portal-search { grid-column:1/-1; }
    .portal-unified .quote-table-head { display:none; }
    .portal-unified .quote-row { grid-template-columns:minmax(0,1fr) auto 44px; }
    .portal-unified .quote-identity { grid-column:1/3; }
    .portal-unified .quote-open { grid-column:3;grid-row:1; }
    .portal-unified .quote-location,.portal-unified .quote-status { grid-column:1;min-width:0; }
    .portal-unified .quote-total { grid-column:2/4; }
    .portal-unified .quote-contract { grid-column:1/-1; }
}
@media(max-width:900px) {
    body.mosal-portal.portal-unified { grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr); }
    .portal-unified #portal-sidebar { position:fixed;top:0;left:0;bottom:0;width:min(19rem,calc(100vw - 2rem));height:100dvh;max-height:100dvh; }
    .portal-unified .portal-topbar { grid-column:1;padding:.75rem 1rem;gap:.75rem; }
    .portal-unified .portal-menu { display:grid;place-items:center;flex:none;min-width:44px;min-height:44px;font-size:1.5rem;color:#192637; }
    .portal-unified .portal-account { gap:.5rem;flex-wrap:wrap; }
    .portal-unified #portal-security { padding:.5rem; }
    .portal-unified .portal-identity>div { display:none; }
    .portal-unified>main { grid-column:1;padding:1rem; }
    .portal-unified .portal-card button,.portal-unified .portal-topbar button,.portal-unified .portal-primary { font-size:1rem!important; }
    .portal-unified .portal-filters :is(input,select) { font-size:1rem!important; }
    .portal-unified .portal-scrim:not([hidden]) { background:#101e32a6; }
}
@media(max-width:480px) {
    .portal-unified .portal-topbar { padding:.625rem .75rem;gap:.5rem; }
    .portal-unified .portal-breadcrumb { gap:.5rem;margin-right:0;flex:1; }
    .portal-unified .portal-breadcrumb :is(span,strong) { display:none; }
    .portal-unified .portal-account { margin-left:0; }
    .portal-unified #portal-commercial-avatar { display:none; }
    .portal-unified .portal-topbar-logout { max-width:7.5rem;padding:.5rem; }
    .portal-unified>main { padding:.75rem; }
    .portal-unified .workspace-heading :is(h1,h2) { font-size:1.75rem; }
    .portal-unified .portal-filters { grid-template-columns:minmax(0,1fr); }
    .portal-unified .portal-filters>* { grid-column:1; }
    .portal-unified .quote-location,.portal-unified .quote-status,.portal-unified .quote-contract { margin-left:0;padding-left:0; }
    .portal-unified .quote-total { font-size:1rem; }
    .portal-unified .portal-panel-heading { flex-wrap:wrap; }
}

.portal-unified .portal-breadcrumb { white-space:nowrap;overflow-wrap:normal; }
