/* FinanceGPT DP11 dual-surface experience architecture */
:root{
  --fg-dp11-blue:#0b8cff;
  --fg-dp11-blue-strong:#0074e8;
  --fg-dp11-ink:#0d1723;
  --fg-dp11-panel:#121d29;
  --fg-dp11-panel-2:#172432;
  --fg-dp11-line:#2a3a4c;
  --fg-dp11-text:#edf4fb;
  --fg-dp11-muted:#9aabba;
  --fg-dp11-public-bg:#f7f9fc;
  --fg-dp11-public-line:#dce4ee;
}

/* Public pages stay public even when the viewer is signed in. */
.fg-public-surface{background:var(--fg-dp11-public-bg);color:#162334;min-height:100vh}
.fg-public-surface .fg-public-main{min-width:0}
.fg-public-surface .fg-page,.fg-public-surface .fg-admin-page{max-width:none;margin:0}
.fg-public-surface .fg-panel,.fg-public-surface .fg-dev-card{background:#fff;border:1px solid var(--fg-dp11-public-line);box-shadow:0 8px 30px rgba(27,45,72,.05)}
.fg-public-surface .fg-page-title,.fg-public-surface h1,.fg-public-surface h2,.fg-public-surface h3{color:#0d1723}
.fg-public-surface .text-muted,.fg-public-surface .fg-page-description,.fg-public-surface .fg-table-subtext{color:#66788a!important}
.fg-public-surface .fg-platform-tabs{background:#fff;border:1px solid var(--fg-dp11-public-line);border-radius:12px;padding:6px;display:flex;gap:3px;overflow-x:auto;scrollbar-width:thin}
.fg-public-surface .fg-platform-tabs a{white-space:nowrap;border-radius:8px;padding:.58rem .75rem;color:#53677b;text-decoration:none}
.fg-public-surface .fg-platform-tabs a.active,.fg-public-surface .fg-platform-tabs a:hover{background:#eaf4ff;color:#006fd8}
.fg-public-surface .fg-table,.fg-public-surface .fg-dev-endpoint-table{color:#24364a}
.fg-public-surface code,.fg-public-surface pre{font-size:.88rem}
.fg-public-surface .fg-dev-hero{padding-top:4.5rem;padding-bottom:2rem;background:linear-gradient(180deg,#fff 0%,#f7f9fc 100%)}
.fg-public-surface .fg-dev-shell{display:grid;grid-template-columns:minmax(190px,230px) minmax(0,1fr);gap:28px;align-items:start}
.fg-public-surface .fg-dev-nav{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto;background:#fff;border:1px solid var(--fg-dp11-public-line);border-radius:14px;padding:14px}
.fg-public-surface .fg-dev-nav a{display:block;padding:7px 9px;border-radius:7px;color:#52677c;text-decoration:none}
.fg-public-surface .fg-dev-nav a:hover{background:#eef6ff;color:#006fd8}
.fg-public-surface .fg-dev-stack{min-width:0}

/* Explicit authenticated portal surface. */
.fg-portal-surface{background:#0b141e;color:var(--fg-dp11-text)}
.fg-portal-surface .fg-portal-main{min-width:0}
.fg-portal-surface .fg-page,.fg-portal-surface .container-fluid.py-4{width:min(100%,1540px);max-width:1540px;margin:0 auto;padding:28px 30px!important}
.fg-portal-surface .fg-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}
.fg-portal-surface .fg-page-title{font-size:clamp(1.55rem,2vw,2.25rem);letter-spacing:-.025em;color:#f4f8fc}
.fg-portal-surface .fg-page-description{max-width:860px;color:#aebcca;line-height:1.6}
.fg-portal-surface .fg-page-eyebrow{color:#4da7ff;font-weight:700;letter-spacing:.11em;text-transform:uppercase;font-size:.72rem}
.fg-portal-surface .fg-panel,
.fg-portal-surface .card,
.fg-portal-surface .fg-kpi,
.fg-portal-surface .fg-boundary-card,
.fg-portal-surface .fg-checkbox-option,
.fg-portal-surface .fg-empty-state,
.fg-portal-surface .fg-callout,
.fg-portal-surface .fg-governance-callout{
  background:var(--fg-dp11-panel)!important;
  border:1px solid var(--fg-dp11-line)!important;
  color:var(--fg-dp11-text)!important;
  box-shadow:none!important;
}
.fg-portal-surface .card-header,
.fg-portal-surface .card-header.bg-white,
.fg-portal-surface .card-footer,
.fg-portal-surface .card-footer.bg-white,
.fg-portal-surface .fg-panel-header{background:#101b27!important;border-color:var(--fg-dp11-line)!important;color:var(--fg-dp11-text)!important}
.fg-portal-surface .text-dark,.fg-portal-surface .font-weight-bold,.fg-portal-surface strong,.fg-portal-surface label,.fg-portal-surface h1,.fg-portal-surface h2,.fg-portal-surface h3,.fg-portal-surface h4,.fg-portal-surface h5,.fg-portal-surface h6{color:var(--fg-dp11-text)!important}
.fg-portal-surface .text-muted,.fg-portal-surface .small.text-muted,.fg-portal-surface .fg-table-subtext,.fg-portal-surface .fg-kpi-label,.fg-portal-surface .fg-kpi-note{color:var(--fg-dp11-muted)!important}
.fg-portal-surface .form-control,
.fg-portal-surface .custom-select{background:#0d1722!important;border-color:#34485d!important;color:#eaf2f9!important;min-height:42px}
.fg-portal-surface .form-control:focus{border-color:#178fff!important;box-shadow:0 0 0 .17rem rgba(23,143,255,.16)!important}
.fg-portal-surface .form-control::placeholder{color:#71869a}
.fg-portal-surface .table{color:#d9e5ef;background:transparent}
.fg-portal-surface .table th{color:#8ea1b3;border-color:var(--fg-dp11-line);font-size:.72rem;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap}
.fg-portal-surface .table td{border-color:#243446;vertical-align:middle;padding:.9rem .75rem}
.fg-portal-surface code{color:#8fc8ff;background:rgba(20,137,255,.08);padding:.08rem .25rem;border-radius:4px}
.fg-portal-surface .btn-primary{background:var(--fg-dp11-blue);border-color:var(--fg-dp11-blue)}
.fg-portal-surface .btn-outline-primary{color:#59b0ff;border-color:#258adf}
.fg-portal-surface .btn-outline-primary:hover{background:#0b78d5;color:#fff}
.fg-portal-surface .alert-info{background:#063d48;border-color:#0a6474;color:#d5f6fa}
.fg-portal-surface .alert-warning{background:#3d3213;border-color:#69561b;color:#fff3c5}
.fg-portal-surface .alert-danger{background:#461c26;border-color:#7f3242;color:#ffdbe3}
.fg-portal-surface .fg-platform-tabs,.fg-portal-surface .fg-domain-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:thin;background:#0e1924;border:1px solid var(--fg-dp11-line);border-radius:10px;padding:5px;margin-bottom:16px}
.fg-portal-surface .fg-platform-tabs a,.fg-portal-surface .fg-domain-tabs a{color:#91a4b6;padding:.55rem .75rem;border-radius:7px;white-space:nowrap;text-decoration:none}
.fg-portal-surface .fg-platform-tabs a.active,.fg-portal-surface .fg-domain-tabs a.active,.fg-portal-surface .fg-platform-tabs a:hover,.fg-portal-surface .fg-domain-tabs a:hover{background:#112c43;color:#61b5ff}
.fg-portal-surface .fg-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.fg-portal-surface .fg-kpi{border-radius:10px;padding:17px;min-height:110px}
.fg-portal-surface .fg-kpi-value{font-size:1.75rem;color:#fff;font-weight:700;margin:.35rem 0}
.fg-portal-surface .fg-panel{border-radius:10px;overflow:hidden}
.fg-portal-surface .fg-panel-header{padding:14px 16px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.fg-portal-surface .fg-panel-body{padding:16px}

/* QLM Studio: give the composer enough working room, collapse cleanly on smaller screens. */
.fg-portal-surface .fg-qlm-studio .fg-qlm-layout{display:grid!important;grid-template-columns:minmax(220px,.72fr) minmax(520px,1.85fr) minmax(280px,.9fr)!important;gap:16px;align-items:start}
.fg-portal-surface .fg-qlm-studio .fg-stack{min-width:0}
.fg-portal-surface .fg-qlm-studio .fg-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:420px;overflow:auto;padding-right:4px}
.fg-portal-surface .fg-qlm-studio .fg-checkbox-option{border-radius:8px;padding:10px;display:flex;gap:9px;align-items:flex-start}
.fg-portal-surface .fg-qlm-studio .fg-checkbox-option small{display:block;color:#8fa2b4;margin-top:3px;word-break:break-word}
.fg-portal-surface .fg-qlm-studio .fg-governance-callout{border-color:#14558a!important;background:#0d2437!important;border-radius:10px;margin:16px 0;padding:14px 16px}
.fg-portal-surface .fg-qlm-studio .fg-boundary-card{border-radius:8px;margin-bottom:9px;padding:12px}

/* Quant Models: improve legibility and browsing without losing the governed table. */
.fg-portal-surface .fg-quant-models .fg-table-wrap{overflow:auto;max-height:none}
.fg-portal-surface .fg-quant-models #quant-model-table{min-width:920px;font-size:.86rem}
.fg-portal-surface .fg-quant-models #quant-model-table thead th{position:sticky;top:0;background:#101b27;z-index:2}
.fg-portal-surface .fg-quant-models #quant-model-table tbody tr:not(.fg-quant-model-runner-row):hover{background:#142231}
.fg-portal-surface .fg-quant-models .fg-table-primary-link{font-size:.93rem;color:#f0f6fb}
.fg-portal-surface .fg-quant-models .fg-table-subtext{max-width:500px;line-height:1.45}
.fg-portal-surface .fg-quant-models .fg-model-runner{padding:8px 2px}

/* LQM Builder: remove light Bootstrap card fragments and create a navigable engineering workspace. */
.fg-portal-surface .fg-lqm-builder .card{border-radius:10px;overflow:hidden;margin-bottom:16px!important}
.fg-portal-surface .fg-lqm-builder .card-body{padding:16px}
.fg-portal-surface .fg-lqm-builder .table{min-width:720px;font-size:.84rem}
.fg-portal-surface .fg-lqm-builder .table-responsive{border-top:1px solid #243446}
.fg-portal-surface .fg-lqm-builder .fg-builder-section-nav{position:sticky;top:8px;z-index:12;display:flex;gap:5px;overflow-x:auto;background:rgba(11,20,30,.96);border:1px solid var(--fg-dp11-line);padding:6px;border-radius:10px;margin:0 0 18px;backdrop-filter:blur(10px)}
.fg-portal-surface .fg-lqm-builder .fg-builder-section-nav a{white-space:nowrap;text-decoration:none;color:#95a8ba;padding:.5rem .7rem;border-radius:6px;font-size:.8rem}
.fg-portal-surface .fg-lqm-builder .fg-builder-section-nav a:hover{background:#11314a;color:#65b8ff}
.fg-portal-surface .fg-lqm-builder .badge-light{background:#182635;color:#bac9d6;border-color:#35495d!important}

/* Developer console and mirrored documentation stay visually coherent inside the app. */
.fg-portal-surface .fg-developer-portal-page{width:min(100%,1540px);max-width:1540px;margin:0 auto;padding:28px 30px}
.fg-portal-surface .fg-developer-portal-page .fg-dev-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px}
.fg-portal-surface .fg-developer-portal-page .fg-dev-nav{position:sticky;top:12px;align-self:start;max-height:calc(100vh - 30px);overflow:auto;background:#101b27;border:1px solid var(--fg-dp11-line);border-radius:10px;padding:12px}
.fg-portal-surface .fg-developer-portal-page .fg-dev-nav a{display:block;padding:7px 8px;border-radius:6px;color:#93a6b8;text-decoration:none}
.fg-portal-surface .fg-developer-portal-page .fg-dev-nav a:hover{background:#142b40;color:#62b5ff}

/* Developer Programme */
.fg-programme-track-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fg-programme-track{border:1px solid currentColor;border-color:rgba(120,150,180,.25);border-radius:12px;padding:18px;height:100%}
.fg-programme-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.fg-programme-step{border-radius:10px;padding:16px;border:1px solid rgba(120,150,180,.24)}

@media(max-width:1260px){
  .fg-portal-surface .fg-qlm-studio .fg-qlm-layout{grid-template-columns:minmax(220px,.7fr) minmax(0,1.8fr)!important}
  .fg-portal-surface .fg-qlm-studio .fg-qlm-layout>aside:last-child{grid-column:1/-1}
  .fg-programme-track-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:991.98px){
  .fg-public-surface .fg-dev-shell,.fg-portal-surface .fg-developer-portal-page .fg-dev-shell{grid-template-columns:1fr}
  .fg-public-surface .fg-dev-nav,.fg-portal-surface .fg-developer-portal-page .fg-dev-nav{position:static;max-height:none;display:flex;gap:4px;overflow:auto}
  .fg-public-surface .fg-dev-nav .fg-dev-nav-head,.fg-portal-surface .fg-developer-portal-page .fg-dev-nav .fg-dev-nav-head{display:none}
  .fg-public-surface .fg-dev-nav a,.fg-portal-surface .fg-developer-portal-page .fg-dev-nav a{white-space:nowrap}
  .fg-portal-surface .fg-page,.fg-portal-surface .container-fluid.py-4,.fg-portal-surface .fg-developer-portal-page{padding:22px 18px!important}
  .fg-portal-surface .fg-page-header{flex-direction:column}
  .fg-portal-surface .fg-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fg-portal-surface .fg-qlm-studio .fg-qlm-layout{grid-template-columns:1fr!important}
  .fg-portal-surface .fg-qlm-studio .fg-qlm-layout>aside:last-child{grid-column:auto}
  .fg-programme-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:575.98px){
  .fg-portal-surface .fg-page,.fg-portal-surface .container-fluid.py-4,.fg-portal-surface .fg-developer-portal-page{padding:18px 12px!important}
  .fg-portal-surface .fg-kpi-grid,.fg-programme-track-grid,.fg-programme-step-grid{grid-template-columns:1fr}
  .fg-portal-surface .fg-qlm-studio .fg-checkbox-grid{grid-template-columns:1fr}
  .fg-portal-surface .fg-toolbar{display:flex;flex-wrap:wrap;gap:8px}
  .fg-public-surface .fg-dev-hero{padding-top:2.5rem}
}
