/* TEC fixed presentation profile - source-derived portable adapter, not independently rendered.
   Preserve native role differences. Load asset-bindings.css first.
   No authentication, routing, data, exporter or behavior implementation. */
.strategy-template {
  --st-blue:#175d96; --st-blue-hover:#124b7d; --st-navy:#102235;
  --st-canvas:#edf1f4; --st-paper:#fff; --st-ink:#162b3b; --st-muted:#536b7b;
  --st-border:#dbe4ea; --st-input:#f7f9fb; --st-input-border:#cfdae2;
  --st-selected:#edf4fb; --st-ring:rgb(23 93 150 / 17%);
  --st-glow:rgb(23 93 150 / 13%); --st-halo:rgb(23 93 150 / 7%);
  --st-card-shadow:0 2px 5px #162b3b08; --st-pulse-duration:1.55s;
  min-height:100dvh; background:var(--st-canvas); color:var(--st-ink);
  font-family:Inter, Bahij; font-synthesis:none; color-scheme:light;
  text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;
}
.strategy-template *, .strategy-template *::before, .strategy-template *::after { box-sizing:border-box; }
.strategy-template [hidden] { display:none !important; }
.strategy-template :is(button,input,textarea,select,summary) { font-family:inherit; }
.strategy-template button { cursor:pointer; }
.strategy-template :is(button,a,input,textarea,select,summary):focus-visible { outline:2px solid var(--st-blue); outline-offset:3px; }
.strategy-template :is(button,input,textarea,select):disabled { cursor:not-allowed; }
.strategy-template ::selection { background:#cedce9; color:#192f46; }
.strategy-template .st-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Native rail roles and responsive variants. */
.strategy-template .st-shell { display:flex; min-height:100vh; }
.strategy-template .st-rail { width:256px; flex:none; position:sticky; top:0; height:100dvh; min-height:0; display:flex; flex-direction:column; padding:22px 14px 24px; background:var(--st-navy); border-right:1px solid #294055; z-index:20; }
.strategy-template .st-brand { display:block; margin:0 9px 22px; padding:0 0 23px; border-bottom:1px solid #294055; }
.strategy-template .st-wordmark { display:block; width:100%; max-width:190px; height:auto; filter:brightness(0) invert(1); }
.strategy-template .st-brand-compact { display:none; filter:brightness(0) invert(1); }
.strategy-template .st-brand-copy { margin-top:13px; }
.strategy-template .st-brand-copy strong { display:block; color:#fff; font:700 13px/1.25 Inter; letter-spacing:-.15px; white-space:normal; }
.strategy-template .st-brand-copy small { display:block; margin-top:5px; color:#a8bdcd; font:600 10px/1.3 Inter; letter-spacing:.11em; }
.strategy-template .st-nav-group { display:flex; justify-content:space-between; color:#8da7b8; font-size:10px; font-weight:700; letter-spacing:1.4px; padding:0 12px; margin-bottom:10px; }
.strategy-template .st-nav-group span { color:#769dc4; }
.strategy-template .st-nav { display:flex; flex-direction:column; gap:3px; min-width:0; min-height:0; overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#496576 transparent; }
.strategy-template .st-nav button { width:100%; border:0; background:transparent; color:#c4d2dc; display:flex; align-items:center; gap:13px; padding:7px 12px; text-align:left; border-radius:7px; font-size:13px; font-weight:600; position:relative; transition:background .18s,color .18s; }
.strategy-template .st-nav button svg { color:#a8bdcd; flex:none; width:18px; height:18px; }
.strategy-template .st-nav button:is(:hover,[aria-current="page"]) { color:#fff; background:#183b53; }
.strategy-template .st-nav button[aria-current="page"] svg { color:#93b4d4; }
.strategy-template .st-nav-indicator { position:absolute; right:0; top:7px; bottom:7px; width:3px; background:#608ebb; border-radius:3px; }
.strategy-template .st-rail-spacer { flex:1; }
.strategy-template .st-rail-status { display:flex; align-items:center; gap:12px; padding:15px 13px; border:1px solid #294055; background:#152d40; border-radius:7px; }
.strategy-template .st-rail-status strong,.strategy-template .st-rail-status span { display:block; }
.strategy-template .st-rail-status strong { font-size:11px; color:#fff; }
.strategy-template .st-rail-status div span { font-size:10px; color:#a8bdcd; margin-top:4px; }
.strategy-template .st-status-orbit { width:20px; height:20px; border:1px solid #729cc5; border-radius:50%; position:relative; flex:none; }
.strategy-template .st-status-orbit::after { content:""; position:absolute; inset:5px; border-radius:50%; background:#729cc5; }
.strategy-template .st-rail-footer { padding:17px 7px 0; margin:0; color:#a8bdcd; font-size:10px; letter-spacing:1.7px; line-height:2; }
.strategy-template .st-rail-footer strong { color:#fff; font-size:12px; letter-spacing:.8px; }
/* Account bar is a preceding sibling of st-shell, not merged into topbar. */
.strategy-template .st-account-bar { position:relative; z-index:30; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 22px; background:#fff; border-bottom:1px solid #dbe4ed; min-height:54px; color:#102235; }
.strategy-template .st-account-identity { display:flex; align-items:center; gap:8px; min-width:0; font-size:11px; font-weight:700; }
.strategy-template .st-account-identity>span:not([data-st-slot="account-icon"]) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:220px; }
.strategy-template .st-account-identity>svg { color:var(--st-blue); flex:none; }
.strategy-template .st-account-identity small { font-size:9px; background:#edf4fb; color:var(--st-blue); border-radius:4px; padding:4px 6px; white-space:nowrap; }
.strategy-template .st-account-actions { display:flex; flex-wrap:wrap; gap:4px; }
.strategy-template .st-account-actions button { display:flex; align-items:center; gap:6px; border:0; border-radius:6px; padding:8px 9px; color:#456079; background:transparent; font:750 10px/1.3 Inter; min-height:34px; }
.strategy-template .st-account-actions button:is([aria-pressed="true"],:hover) { background:#edf4fb; color:var(--st-blue); }
.strategy-template .st-account-actions button:disabled { opacity:.5; }
/* Content gutter, full-bleed topbar and native header. */
.strategy-template .st-content { min-width:0; flex:1; max-width:1800px; margin:0 auto; padding:0 32px 24px; position:relative; background:var(--st-canvas); }
.strategy-template .st-topbar { height:76px; margin:0 -32px; padding:0 32px; background:#fff; border-bottom:1px solid #d8e0e6; display:flex; justify-content:space-between; align-items:center; color:#5a7183; font-size:10px; font-weight:700; letter-spacing:1.25px; }
.strategy-template .st-slash { color:#9fb1be; padding:0 8px; }
.strategy-template .st-topbar-action { border:0; color:#486575; display:inline-flex; align-items:center; gap:8px; background:none; font-size:12px; font-weight:650; letter-spacing:.3px; }
.strategy-template .st-topbar-action:hover { color:var(--st-blue); }
.strategy-template .st-mobile-chooser { display:none; }
.strategy-template .st-page-header { padding:28px 0 23px; display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.strategy-template .st-header-copy { max-width:680px; }
.strategy-template .st-eyebrow,.strategy-template .st-section-index { color:var(--st-blue); letter-spacing:1.25px; font-size:10px; font-weight:800; }
.strategy-template .st-eyebrow { display:inline-flex; align-items:center; gap:11px; }
.strategy-template .st-eyebrow i { height:1px; width:22px; background:var(--st-blue); }
.strategy-template .st-page-header h1 { font:750 clamp(22px,2.3vw,28px)/1.22 Inter; letter-spacing:-.8px; margin:10px 0 8px; color:var(--st-ink); }
.strategy-template .st-page-header p { color:#5f7180; font-size:13px; line-height:1.6; margin:0; }
.strategy-template .st-header-actions { display:flex; align-items:center; gap:14px; flex:none; }
.strategy-template .st-header-status { font-size:10px; color:#5a7183; border:1px solid #cfdde5; background:#f7f9fb; padding:10px 12px; border-radius:6px; letter-spacing:1.15px; font-weight:800; }
.strategy-template .st-stack { display:flex; flex-direction:column; gap:20px; animation:st-rise .22s ease-out; }
.strategy-template .st-footer { border-top:1px solid #d8e1e6; margin-top:32px; padding:19px 0 4px; display:flex; justify-content:space-between; gap:10px; color:var(--st-muted); font-size:10px; font-weight:700; letter-spacing:.7px; }
/* Panels and KPI intrinsic rows - retain subgrid and one-column fallback. */
.strategy-template .st-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:stretch; }
.strategy-template .st-kpi { min-height:125px; padding:16px; border:1px solid var(--st-border); border-radius:10px; background:#fff; box-shadow:var(--st-card-shadow); display:grid; grid-template-rows:auto auto 1fr; align-content:start; gap:10px; min-width:0; }
.strategy-template .st-kpi--accent { border-left:4px solid var(--st-blue); padding-left:13px; }
.strategy-template .st-kpi-title { display:flex; justify-content:space-between; gap:6px; align-items:flex-start; min-width:0; min-block-size:2.8em; line-height:1.4; color:var(--st-muted); font-size:10px; font-weight:800; letter-spacing:.7px; }
.strategy-template .st-kpi-title>span:not([data-st-slot="kpi-icon"]) { overflow-wrap:anywhere; }
.strategy-template .st-kpi-title>svg { flex:none; margin-top:2px; width:15px; height:15px; color:var(--st-blue); }
.strategy-template .st-kpi>strong { display:block; margin:0; min-width:0; font:780 clamp(18px,1.7vw,24px)/1.17 Inter; letter-spacing:-.65px; color:#173249; overflow-wrap:anywhere; white-space:normal; font-variant-numeric:tabular-nums; }
.strategy-template .st-kpi-context { display:flex; justify-content:space-between; align-self:stretch; align-items:flex-start; min-width:0; gap:8px; color:var(--st-muted); font-size:11px; line-height:1.35; }
.strategy-template .st-kpi-context>span { min-width:0; overflow-wrap:anywhere; }
.strategy-template .st-source { font:600 10px/1.3 Inter; color:var(--st-muted); background:#eff3f7; border:1px solid #dae1e9; padding:4px 6px; border-radius:4px; display:inline-block; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; vertical-align:middle; }
.strategy-template .st-kpi-context .st-source { max-width:100%; overflow-wrap:anywhere; }
.strategy-template .st-panel { min-width:0; background:#fff; border:1px solid var(--st-border); border-radius:10px; padding:19px; box-shadow:var(--st-card-shadow); }
.strategy-template .st-panel-header { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:19px; }
.strategy-template .st-panel-header h2 { color:#20394c; font:700 16px/1.3 Inter; letter-spacing:-.25px; margin:7px 0 3px; }
.strategy-template .st-panel-header p { margin:3px 0 0; color:var(--st-muted); font-size:11px; line-height:1.5; }
.strategy-template .st-panel-aside { font-size:10px; color:var(--st-muted); white-space:nowrap; margin-top:19px; font-weight:700; }
.strategy-template .st-two-panel { display:grid; grid-template-columns:minmax(0,1.72fr) minmax(340px,1fr); gap:18px; }
@supports (grid-template-rows:subgrid) { .strategy-template .st-kpi-grid { grid-auto-rows:auto; } .strategy-template .st-kpi-grid>.st-kpi { grid-template-rows:subgrid; grid-row:span 3; } }
/* Controls retain distinct shell-action, regular field and login geometries. */
.strategy-template .st-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; background:var(--st-blue); border:1px solid var(--st-blue); color:#fff; border-radius:6px; padding:10px 14px; font:750 11px/normal Inter; letter-spacing:normal; white-space:nowrap; transition:transform .18s,background .18s; }
.strategy-template .st-button:hover:not(:disabled) { background:var(--st-blue-hover); border-color:var(--st-blue-hover); transform:translateY(-1px); }
.strategy-template .st-button:disabled { opacity:.52; transform:none; }
.strategy-template .st-button--secondary { border-color:#cbd9e1; color:#26485c; background:#fff; padding:8px 10px; min-height:34px; }
.strategy-template .st-button--secondary:hover:not(:disabled) { background:#f2f6fa; color:var(--st-blue); transform:none; }
.strategy-template .st-field { display:grid; gap:5px; color:#536c7b; font-size:10px; font-weight:750; letter-spacing:.045em; }
.strategy-template .st-field :is(input,textarea,select) { width:100%; min-width:0; height:34px; border:1px solid #cbd9e1; border-radius:6px; background:#fff; color:var(--st-ink); font:550 12px Inter; padding:7px 9px; }
.strategy-template .st-field :is(input,select):focus { border-color:var(--st-blue); }
.strategy-template .st-field [aria-invalid="true"] { border-color:#b54758; background:#fff7f7; }
.strategy-template .st-filter-bar { min-height:76px; display:flex; align-items:center; gap:26px; padding:16px 18px; background:#fff; border:1px solid var(--st-border); border-radius:10px; margin-bottom:22px; position:relative; z-index:10; box-shadow:var(--st-card-shadow); }
.strategy-template .st-select-field { display:flex; flex-direction:column; gap:7px; min-width:112px; }
.strategy-template .st-select-label { color:#526c7e; font-size:10px; font-weight:800; letter-spacing:1.45px; }
.strategy-template .st-select { appearance:none; color:var(--st-ink); background:#f7f9fb; border:1px solid var(--st-input-border); border-radius:6px; min-width:75px; padding:6px 9px; font:700 12px Inter; cursor:pointer; transition:border-color 180ms ease,box-shadow 220ms ease,background-color 180ms ease; }
.strategy-template .st-select option { background:#fff; color:var(--st-ink); }
.strategy-template .st-select:hover:enabled { border-color:var(--st-blue); box-shadow:0 0 0 2px var(--st-halo),0 4px 14px var(--st-glow); }
.strategy-template .st-select:is(:focus,:active):enabled { animation:none; border-color:var(--st-blue); box-shadow:0 0 0 3px var(--st-ring),0 5px 18px var(--st-glow); }
.strategy-template .st-select-trigger { display:flex; align-items:center; gap:9px; width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--st-input-border); border-radius:7px; background:#f7f9fb; color:var(--st-ink); font:650 13px/1.35 Inter; text-align:start; letter-spacing:0; transition:border-color 180ms,box-shadow 220ms; }
.strategy-template .st-select-trigger>span:not([data-st-slot="chooser-icon"]) { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strategy-template .st-select-trigger>svg { flex:none; color:var(--st-blue); }
.strategy-template .st-select-trigger:is(:focus-visible,[aria-expanded="true"]) { border-color:var(--st-blue); outline:2px solid var(--st-blue); outline-offset:2px; box-shadow:0 0 0 3px var(--st-ring); }
.strategy-template .st-select-trigger:disabled { opacity:.55; }
.strategy-template .st-select-panel { flex:0 1 292px; width:292px; min-width:0; max-width:100%; display:flex; flex-direction:column; gap:8px; padding:12px; border:1px solid #c4d9eb; border-radius:9px; background:#edf4fb; color:var(--st-blue); box-shadow:0 3px 10px #175d960b; }
.strategy-template .st-select-panel .st-select { width:100%; max-width:none; min-height:48px; padding:12px 50px 12px 13px; border:1.5px solid var(--st-blue); background:#fff; color:var(--st-navy); font-size:14px; font-weight:750; line-height:1.4; }
.strategy-template .st-select-panel:focus-within { box-shadow:0 0 0 3px var(--st-ring); }
.strategy-template .st-select-panel .st-select:is(:hover,:focus,:active) { box-shadow:none; }
.strategy-template .st-select-sheet { position:fixed; inset:auto 10px max(10px,env(safe-area-inset-bottom)) 10px; width:calc(100% - 20px); max-width:480px; max-height:calc(88dvh - 20px); margin:0 auto; padding:0; border:1px solid #d7e3ed; border-radius:18px; color:var(--st-ink); background:#fff; box-shadow:0 15px 55px #10223530; overflow:hidden; animation:st-list-enter 180ms ease-out; }
.strategy-template .st-select-sheet::backdrop { background:rgb(16 34 53 / 34%); }
.strategy-template .st-select-sheet-inner { display:flex; flex-direction:column; max-height:calc(88dvh - 22px); }
.strategy-template .st-select-sheet header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:17px 14px 12px 18px; border-bottom:1px solid #e3ebf1; }
.strategy-template .st-select-sheet h2 { margin:4px 0 0; font:750 15px/1.35 Inter; letter-spacing:-.2px; overflow-wrap:anywhere; }
.strategy-template .st-select-sheet header>button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #e3ebf1; border-radius:10px; background:#fff; color:var(--st-muted); }
.strategy-template .st-select-options { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b5cddd transparent; padding:8px; }
.strategy-template .st-select-options>button { display:flex; align-items:center; gap:11px; width:100%; min-height:44px; padding:8px 12px; margin:2px 0; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--st-ink); font:600 13px/1.4 Inter; text-align:start; letter-spacing:0; }
.strategy-template .st-select-options>button[aria-selected="true"] { color:var(--st-blue); background:var(--st-selected); border-color:#d8e7f3; }
.strategy-template .st-select-sheet footer { display:flex; justify-content:space-between; padding:11px 18px; border-top:1px solid #e3ebf1; color:var(--st-muted); font:500 10px/1.4 Inter; }
/* Help portal must be mounted within a strategy-template overlay root. */
.strategy-template .st-help-trigger { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; margin-left:6px; padding:0; width:15px; height:15px; border:0; border-radius:50%; background:#dae2eb; color:#365268; font:800 10px/1 Inter; letter-spacing:0; cursor:help; }
.strategy-template .st-help-trigger:is(:hover,:focus-visible) { background:var(--st-blue); color:#fff; }
.strategy-template .st-help-bubble { position:fixed; z-index:9999; display:block; max-height:calc(100vh - 24px); overflow:auto; padding:11px 13px; border:1px solid #315265; border-radius:6px; background:var(--st-navy); box-shadow:0 12px 28px #10223545; color:#fff; font:500 12px/1.5 Inter; letter-spacing:0; text-align:left; pointer-events:auto; }
.strategy-template .st-dialog-backdrop { position:fixed; inset:0; background:#10223577; z-index:100; display:flex; align-items:center; justify-content:center; padding:20px; }
.strategy-template .st-dialog { max-width:430px; width:100%; max-height:calc(100dvh - 40px); overflow:auto; border:1px solid var(--st-border); background:#fff; border-radius:15px; padding:26px; box-shadow:var(--st-card-shadow); }
.strategy-template .st-dialog h2 { font-size:22px; font-weight:800; letter-spacing:-.03em; margin:12px 0; overflow-wrap:anywhere; }
.strategy-template .st-dialog-actions { display:flex; justify-content:flex-end; gap:9px; flex-wrap:wrap; }
/* Tables and chart frames are presentation slots, never data or plot generation. */
.strategy-template .st-table-scroll { width:100%; overflow:auto; }
.strategy-template .st-table-scroll--tall { max-height:520px; }
.strategy-template .st-table { width:100%; border-collapse:collapse; min-width:800px; font-size:11px; color:var(--st-ink); }
.strategy-template .st-table th { text-align:left; color:#506979; font-size:10px; letter-spacing:.6px; font-weight:800; padding:12px 11px; background:#f3f6f9; border-bottom:1px solid #dbe5eb; white-space:nowrap; position:sticky; top:0; z-index:1; }
.strategy-template .st-table td { padding:13px 11px; border-bottom:1px solid #e6edf1; color:#304b5d; white-space:nowrap; }
.strategy-template .st-table tbody tr:hover { background:#f1f5f8; }
.strategy-template .st-table tbody tr:last-child td { border-bottom:0; }
.strategy-template .st-number { text-align:right; font-variant-numeric:tabular-nums; }
.strategy-template .st-table-note { color:var(--st-muted); font-size:11px; line-height:1.5; margin:12px 0 1px; }
.strategy-template .st-chart-frame { height:285px; width:100%; min-width:0; }
.strategy-template .st-chart-frame--operating { height:300px; }
.strategy-template .st-chart-frame--allocation { height:242px; }
.strategy-template .st-chart-frame--trend { height:365px; }
.strategy-template .st-chart-frame--compact { height:230px; }
.strategy-template .st-chart-legend { display:flex; flex-wrap:wrap; gap:8px 18px; margin:10px 4px 0; color:#526b7b; font-size:11px; }
.strategy-template .st-chart-legend span { display:inline-flex; align-items:center; gap:7px; }
.strategy-template .st-chart-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.strategy-template .st-chart-tooltip { min-width:min(220px,calc(100vw - 48px)); max-width:min(305px,calc(100vw - 48px)); padding:13px 14px; border:1px solid #d5e1ea; border-top:3px solid var(--st-blue); border-radius:10px; background:#fff; color:var(--st-ink); box-shadow:0 8px 24px #1022351a,0 2px 6px #1022350a; font:500 11px/1.45 Inter; white-space:normal; }
.strategy-template .st-chart-tooltip>strong { display:block; padding-bottom:9px; margin-bottom:10px; border-bottom:1px solid #e5ecf2; font-size:13px; font-weight:750; overflow-wrap:anywhere; }
.strategy-template .st-tooltip-row { display:grid; grid-template-columns:9px minmax(0,1fr) auto; column-gap:7px; row-gap:3px; align-items:start; margin:10px 0; }
.strategy-template .st-tooltip-row i { width:7px; height:7px; border-radius:50%; margin-top:4px; background:var(--st-blue); }
.strategy-template .st-tooltip-row span { color:#486475; overflow-wrap:anywhere; min-width:0; }
.strategy-template .st-tooltip-row b { color:#173249; font-size:11px; font-weight:750; font-variant-numeric:tabular-nums; white-space:nowrap; }
.strategy-template .st-tooltip-row small { grid-column:2/-1; color:var(--st-muted); font-size:9px; line-height:1.45; overflow-wrap:anywhere; }
/* Native notice/loading geometries retain separate meanings. */
.strategy-template .st-notice { display:flex; align-items:center; gap:11px; margin-bottom:20px; border-radius:12px; padding:12px 16px; font-size:12px; line-height:1.5; }
.strategy-template .st-notice--error { border:1px solid #edcdd3; background:#fbeded; color:#a13d4b; }
.strategy-template .st-notice--working { background:#ebf3fa; border:1px solid #b6c7d7; color:#143d66; }
.strategy-template .st-notice--ready { background:#e6eef5; color:#175d96; border:1px solid #c4d9eb; padding:12px 15px; margin:12px 0; border-radius:8px; }
.strategy-template .st-notice--warning { gap:9px; width:100%; padding:11px 14px; border:1px solid #eddfbf; border-left:3px solid #bc843a; border-radius:5px; background:#fdf8ed; color:#5b4e36; text-align:left; font-size:11px; line-height:1.5; }
.strategy-template .st-status-pill { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:6px 8px; font-size:10px; font-weight:750; line-height:1.2; background:#eef3f6; color:#4b6473; }
.strategy-template .st-status-pill[data-st-state="ready"] { background:#e5edf4; color:#175d96; }
.strategy-template .st-status-pill[data-st-state="working"] { background:#fdf3df; color:#8b5e14; }
.strategy-template .st-status-pill[data-st-state="error"] { background:#fbeded; color:#a13d4b; }
.strategy-template .st-loading { display:flex; align-items:center; justify-content:center; min-height:calc(100dvh - 75px); padding:40px 20px; background:#f4f7fa; color:var(--st-ink); }
.strategy-template .st-loading--full { min-height:100dvh; }
.strategy-template .st-loading-card { width:100%; max-width:458px; min-width:0; padding:28px 30px 20px; border:1px solid var(--st-border); border-radius:14px; background:#fff; box-shadow:0 8px 30px rgb(16 34 53 / 4%); }
.strategy-template .st-loading-brand { display:flex; align-items:center; gap:12px; padding-bottom:22px; border-bottom:1px solid #e8edf2; }
.strategy-template .st-loading-brand img { flex:none; width:42px; height:42px; object-fit:contain; }
.strategy-template .st-loading-brand strong { display:block; font-size:12px; font-weight:750; line-height:1.4; letter-spacing:-.15px; }
.strategy-template .st-loading-brand span { display:block; margin-top:4px; font-size:8px; font-weight:600; letter-spacing:.06em; line-height:1.5; color:#647b8d; }
.strategy-template .st-loading-copy { padding-top:26px; }
.strategy-template .st-loading-kicker { color:var(--st-blue); font-size:9px; font-weight:800; letter-spacing:.1em; }
.strategy-template .st-loading-copy h1 { margin:11px 0 10px; font-size:24px; font-weight:750; line-height:1.25; letter-spacing:-.7px; overflow-wrap:anywhere; }
.strategy-template .st-loading-copy>p { margin:0; color:#60758a; font-size:12px; line-height:1.7; max-width:350px; }
.strategy-template .st-loading-status { display:flex; align-items:center; gap:10px; margin:26px 0 14px; color:#294b67; font-size:11px; font-weight:600; line-height:1.6; }
.strategy-template .st-loading-spinner { width:14px; height:14px; flex:none; border:2px solid #dce9f4; border-top-color:var(--st-blue); border-right-color:var(--st-blue); border-radius:50%; animation:st-loader-turn 1.6s linear infinite; }
.strategy-template .st-loading-rail { height:3px; overflow:hidden; border-radius:6px; background:#edf3f8; }
.strategy-template .st-loading-rail span { display:block; height:100%; width:36%; background:var(--st-blue); border-radius:inherit; animation:st-loader-sweep 2.4s ease-in-out infinite; }
.strategy-template .st-loading-card footer { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:25px; padding-top:15px; border-top:1px solid #e8edf2; color:#6d8090; font-size:9px; line-height:1.5; }
.strategy-template .st-loading-card footer>span:last-child { margin-inline-start:auto; font-size:8px; font-weight:700; letter-spacing:.07em; }
/* Login retains distinct native access roles. Never normalize to page header. */
.strategy-template .st-login { display:flex; min-height:100dvh; align-items:stretch; background:#f4f7fa; color:#102235; }
.strategy-template .st-login-brand { background:var(--st-navy); color:#fff; flex:0 0 43%; padding:48px clamp(28px,4.7vw,76px); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.strategy-template .st-login-brand::after { content:""; position:absolute; width:320px; height:320px; border:1px solid #7fadd62e; border-radius:50%; right:-150px; bottom:-100px; pointer-events:none; }
.strategy-template .st-login-brand img { width:min(100%,220px); height:auto; object-fit:contain; margin-bottom:52px; filter:brightness(0) invert(1); }
.strategy-template .st-login-brand>span { font-size:10px; font-weight:800; letter-spacing:.14em; color:#a6c9e7; }
.strategy-template .st-login-brand h1 { font-size:clamp(40px,3.5vw,48px); line-height:1.12; font-weight:800; letter-spacing:-.04em; margin:22px 0; }
.strategy-template .st-login-brand p { font-size:14px; line-height:1.75; color:#b9cbdc; max-width:390px; }
.strategy-template .st-login-brand small { display:flex; gap:9px; align-items:center; font-size:9px; font-weight:800; letter-spacing:.08em; margin-top:48px; color:#c4d9ea; line-height:1.5; }
.strategy-template .st-login-stage { flex:1; display:flex; justify-content:center; align-items:center; padding:40px clamp(24px,4.5vw,72px); min-width:0; }
.strategy-template .st-login-card { border:1px solid var(--st-border); background:#fff; border-radius:18px; padding:40px; box-shadow:0 8px 30px #1022350a; min-width:0; width:100%; max-width:500px; }
.strategy-template .st-login-mark { width:44px; height:44px; object-fit:contain; margin-bottom:24px; }
.strategy-template .st-login-kicker { display:flex; align-items:center; gap:7px; font-size:9px; font-weight:800; letter-spacing:.09em; color:var(--st-blue); }
.strategy-template .st-login-card :is(h1,h2) { color:var(--st-ink); font-size:27px; font-weight:800; line-height:1.25; letter-spacing:-.035em; margin:12px 0; }
.strategy-template .st-login-card>p { font-size:13px; color:#60758a; line-height:1.65; margin:8px 0 20px; }
.strategy-template .st-login-fields { display:flex; flex-direction:column; gap:18px; }
.strategy-template .st-login-field { display:flex; flex-direction:column; gap:8px; font-size:10px; font-weight:800; letter-spacing:.05em; line-height:1.5; color:var(--st-muted); }
.strategy-template .st-login-field input { border:1px solid var(--st-input-border); border-radius:8px; padding:12px 13px; color:#102235; font:500 16px/1.5 Inter, Bahij; background:#fff; min-width:0; width:100%; min-height:52px; letter-spacing:normal; }
.strategy-template .st-login-field input:focus-visible { outline:2px solid var(--st-blue); outline-offset:3px; border-color:var(--st-blue); }
.strategy-template .st-login-submit { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 15px; border-radius:8px; font:800 12px/1.45 Inter, Bahij; min-height:48px; width:100%; border:1px solid var(--st-blue); color:#fff; background:var(--st-blue); }
.strategy-template .st-login-submit:hover:not(:disabled) { background:var(--st-blue-hover); }
.strategy-template .st-login-submit:disabled { opacity:.5; }
.strategy-template .st-login-card .st-login-help { border-top:1px solid #e7edf2; padding-top:20px; margin:24px 0 16px; font-size:13px; }
.strategy-template .st-login-boundary { font-size:10px; color:#748598; line-height:1.6; }
/* Source-only report interpretation of mm/pt coordinates.
   No exporter, page-size, pagination, font-embedding or print claim. */
.strategy-template .st-report-frame { background:#fff; color:#102235; padding:14mm; font-family:Inter; }
.strategy-template .st-report-header { position:relative; margin-top:-8mm; min-height:12mm; border-bottom:.15mm solid #dbe2ea; }
.strategy-template .st-report-mark { position:absolute; right:0; top:0; width:9mm; height:9mm; object-fit:contain; }
.strategy-template .st-report-organization { margin:0; padding-top:3mm; font:700 7.5pt/1.35 Inter; }
.strategy-template .st-report-meta { margin:0; padding-top:1mm; font:400 6.7pt/1.35 Inter; color:#4e6575; }
.strategy-template .st-report-reference { font:400 6pt/1.35 Inter; color:#4e6575; }
.strategy-template .st-report-reference-heading { font:700 6.5pt/1.35 Inter; }
/* Native Arabic content-run behavior, not a mirrored/full RTL shell. */
.strategy-template :is([data-arabic="true"],[lang="ar"],.st-arabic) { font-family:Bahij, Inter !important; text-align:right !important; unicode-bidi:isolate; letter-spacing:normal !important; line-height:1.55; font-weight:600; }
.strategy-template :is(span,strong,b)[data-arabic="true"] { display:block; }
.strategy-template :is(h1,h2,h3,h4,strong,b,th):is([data-arabic="true"],[lang="ar"]) { font-weight:800; }
.strategy-template .st-login-card [data-arabic="true"]:is(h1,h2) { font-weight:800; line-height:1.4; letter-spacing:normal; }
.strategy-template .st-login-brand h1[data-arabic="true"] { font-size:40px; line-height:1.4; }
.strategy-template .st-report-arabic { font-family:Bahij !important; font-size:7.5pt; text-align:right; unicode-bidi:isolate; }
/* st-ltr is an explicit host marking hook. Mark Arabic runs with
   lang=ar, dir=auto, data-arabic=true; full shell mirroring is not provided. */
.strategy-template .st-ltr { direction:ltr; unicode-bidi:isolate; }
@keyframes st-rise { from { opacity:.6; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes st-dropdown-pulse { 0%,100% { box-shadow:0 0 0 0 var(--st-ring),0 4px 14px var(--st-glow); } 50% { box-shadow:0 0 0 4px var(--st-halo),0 5px 18px var(--st-glow); } }
@keyframes st-list-enter { from { opacity:.5; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes st-loader-turn { to { transform:rotate(360deg); } }
@keyframes st-loader-sweep { 0% { transform:translateX(-105%); } 100% { transform:translateX(385%); } }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) { .strategy-template .st-select:enabled:hover:not(:focus) { animation:st-dropdown-pulse var(--st-pulse-duration) ease-in-out 2; } .strategy-template .st-select-panel .st-select:hover { animation:none; } }
@supports selector(select:open) { .strategy-template .st-select:enabled:open { animation:none; border-color:var(--st-blue); box-shadow:0 0 0 3px var(--st-ring),0 5px 18px var(--st-glow); } }
@media (max-width:1350px) {
  .strategy-template .st-rail { width:218px; padding-left:14px; padding-right:14px; }
  .strategy-template .st-content { padding:0 25px 22px; }
  .strategy-template .st-topbar { margin:0 -25px; padding:0 25px; }
  .strategy-template .st-kpi>strong { font-size:21px; }
  .strategy-template .st-two-panel { grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr); }
}
@media (max-width:1080px) {
  .strategy-template .st-rail { width:78px; padding:24px 12px; }
  .strategy-template .st-brand { display:flex; margin:4px auto 48px; padding:0; border:0; }
  .strategy-template :is(.st-wordmark,.st-brand-copy,.st-nav-group,.st-rail-footer), .strategy-template .st-nav-label,.strategy-template .st-rail-status div { display:none; }
  .strategy-template .st-brand-compact { display:block; width:38px; height:38px; object-fit:contain; }
  .strategy-template .st-nav button { justify-content:center; padding:7px 12px; }
  .strategy-template .st-rail-status { justify-content:center; padding:13px 5px; }
  .strategy-template .st-content { padding:0 22px 22px; }
  .strategy-template .st-topbar { margin:0 -22px; padding:0 22px; }
  .strategy-template .st-two-panel { grid-template-columns:1fr; }
  .strategy-template .st-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .strategy-template .st-kpi>strong { font-size:23px; }
  .strategy-template .st-chart-frame--allocation { height:270px; }
  .strategy-template .st-header-status { display:none; }
}
@media (max-width:1050px) { .strategy-template .st-account-identity>span:not([data-st-slot="account-icon"]) { max-width:140px; } }
@media (max-width:900px) {
  .strategy-template .st-login { display:block; }
  .strategy-template .st-login-brand { padding:26px 24px 28px; min-height:0; }
  .strategy-template .st-login-brand img { width:160px; margin-bottom:24px; }
  .strategy-template .st-login-brand h1 { font-size:32px; margin:15px 0 12px; }
  .strategy-template .st-login-brand h1[data-arabic="true"] { font-size:32px; }
  .strategy-template .st-login-brand p { display:block; margin:0; max-width:520px; font-size:13px; line-height:1.6; }
  .strategy-template .st-login-brand small { margin-top:20px; font-size:9px; }
  .strategy-template .st-login-stage { padding:26px 20px 36px; }
  .strategy-template .st-login-card { padding:24px; }
}
@media (max-width:700px) {
  .strategy-template .st-shell { display:block; }
  .strategy-template .st-rail { position:relative; width:100%; height:auto; flex-direction:row; align-items:center; padding:12px 15px; border-right:0; border-bottom:1px solid #294055; gap:10px; }
  .strategy-template .st-rail .st-brand { display:flex; align-items:center; gap:10px; margin:0; padding:0; }
  .strategy-template .st-brand-compact { width:30px; height:30px; }
  .strategy-template .st-rail .st-brand-copy { display:block; margin:0; }
  .strategy-template .st-brand-copy strong { font-size:12px; line-height:1.2; }
  .strategy-template .st-brand-copy small { margin-top:2px; font-size:8px; letter-spacing:.08em; }
  .strategy-template :is(.st-nav,.st-rail-spacer,.st-rail-status) { display:none; }
  .strategy-template .st-content { padding:0 16px 18px; }
  .strategy-template .st-topbar { height:52px; margin:0 -16px; padding:0 16px; gap:12px; }
  .strategy-template .st-topbar-crumb { display:flex; align-items:center; min-width:0; overflow:hidden; white-space:nowrap; }
  .strategy-template .st-topbar-series,.strategy-template .st-topbar-series-slash { display:none; }
  .strategy-template .st-topbar-current { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .strategy-template .st-topbar-action { flex:none; gap:6px; font-size:11px; white-space:nowrap; }
  .strategy-template .st-mobile-chooser { display:flex; flex-direction:column; gap:5px; margin:13px 0 0; color:#466476; font-size:9px; font-weight:800; letter-spacing:.9px; }
  .strategy-template .st-mobile-chooser .st-select-trigger { background:#fff; border-color:#c4d9eb; min-height:48px; box-shadow:0 2px 5px #162b3b06; }
  .strategy-template .st-page-header { padding:18px 0 18px; flex-direction:column; align-items:flex-start; }
  .strategy-template .st-page-header h1 { font-size:24px; }
  .strategy-template .st-header-actions { width:100%; justify-content:flex-end; }
  .strategy-template .st-filter-bar { flex-wrap:wrap; gap:13px 16px; }
  .strategy-template .st-kpi { min-height:124px; padding:13px; gap:8px; }
  .strategy-template .st-kpi--accent { padding-left:10px; }
  .strategy-template .st-kpi>strong { font-size:21px; }
  .strategy-template .st-kpi-context { flex-wrap:wrap; }
  .strategy-template .st-panel { padding:17px; }
  .strategy-template .st-panel-header,.strategy-template .st-footer { flex-wrap:wrap; }
  .strategy-template .st-chart-frame,.strategy-template .st-chart-frame--operating { height:275px; }
  .strategy-template :is(.st-chart-frame--allocation,.st-chart-frame--trend,.st-chart-frame--compact) { height:275px; }
  .strategy-template .st-select-panel { flex:none; width:100%; }
  .strategy-template .st-select-panel .st-select { font-size:16px; }
  .strategy-template .st-account-bar { align-items:flex-start; flex-direction:column; padding:10px 14px; gap:8px; }
  .strategy-template .st-account-actions { width:100%; justify-content:space-between; }
  .strategy-template .st-account-actions button { font-size:9px; padding:8px 6px; gap:4px; min-height:44px; }
  .strategy-template .st-account-identity { flex-wrap:wrap; width:100%; }
  .strategy-template .st-account-identity small { max-width:100%; white-space:normal; line-height:1.5; }
  .strategy-template .st-dialog-backdrop { padding:16px; }
  .strategy-template .st-dialog { padding:20px; }
  .strategy-template .st-login-brand { padding:24px 22px; }
  .strategy-template .st-login-stage { padding:22px 16px 32px; }
  .strategy-template .st-login-card :is(h1,h2) { font-size:25px; }
  .strategy-template .st-loading { min-height:calc(100dvh - 95px); padding:28px 16px; }
  .strategy-template .st-loading--full { min-height:100dvh; }
  .strategy-template .st-loading-card { padding:24px 22px 18px; }
  .strategy-template .st-loading-copy h1 { font-size:22px; }
}
@media (max-width:430px) {
  .strategy-template .st-page-header h1 { font-size:23px; }
  .strategy-template .st-kpi>strong { font-size:18px; }
  .strategy-template .st-kpi-title { font-size:9px; }
  .strategy-template .st-kpi-context { font-size:10px; }
  .strategy-template .st-source { font-size:9px; }
  .strategy-template .st-filter-bar { padding:12px; }
  .strategy-template .st-select-field { min-width:80px; }
  .strategy-template .st-chart-tooltip { min-width:0; width:min(248px,100%); max-width:100%; margin-inline:auto; }
  .strategy-template .st-tooltip-row { grid-template-columns:9px minmax(0,1fr); }
  .strategy-template .st-tooltip-row b { grid-column:2; grid-row:2; white-space:normal; overflow-wrap:anywhere; }
  .strategy-template .st-tooltip-row small { grid-row:3; }
}
@media (max-width:360px) { .strategy-template .st-loading-card { padding-inline:18px; } .strategy-template .st-loading-copy h1 { font-size:21px; } .strategy-template .st-loading-brand { gap:9px; } .strategy-template .st-loading-brand span { font-size:7px; } }
@media (min-width:701px) and (max-height:700px) {
  .strategy-template .st-rail { padding-top:16px; padding-bottom:16px; }
  .strategy-template .st-brand { margin-bottom:12px; padding-bottom:12px; }
  .strategy-template .st-wordmark { max-width:155px; }
  .strategy-template .st-brand-copy { margin-top:8px; }
  .strategy-template .st-nav-group { margin-bottom:6px; }
  .strategy-template .st-nav { gap:1px; }
  .strategy-template .st-nav button { padding:6px 10px; gap:10px; }
  .strategy-template .st-rail-status { padding:10px 11px; }
  .strategy-template .st-rail-footer { display:none; }
}
@media (min-width:701px) and (max-height:520px) {
  .strategy-template .st-rail { padding-top:10px; padding-bottom:10px; }
  .strategy-template .st-brand { display:flex; justify-content:center; margin:0 0 8px; padding-bottom:8px; }
  .strategy-template .st-wordmark,.strategy-template .st-brand-copy { display:none; }
  .strategy-template .st-brand-compact { display:block; width:34px; height:34px; object-fit:contain; }
  .strategy-template .st-nav-group { margin-bottom:4px; }
  .strategy-template .st-nav { gap:0; }
  .strategy-template .st-nav button { padding:5px 10px; }
  .strategy-template .st-rail-status { padding:8px 10px; }
}
@media (max-height:550px) { .strategy-template .st-loading { min-height:calc(100dvh - 75px); padding-block:22px; } .strategy-template .st-loading--full { min-height:100dvh; } }
@media (pointer:coarse) {
  .strategy-template :is(.st-button,.st-topbar-action,.st-select,.st-dialog-actions button) { min-height:44px; }
  .strategy-template .st-help-trigger { min-width:44px; min-height:44px; flex:none; transform:none !important; margin:0; }
  .strategy-template .st-account-actions button { min-width:44px; min-height:44px; }
}
@media (pointer:coarse) and (min-width:701px) {
  .strategy-template .st-nav button { min-height:44px; }
  .strategy-template .st-help-trigger { width:40px; height:40px; border-radius:7px; background:radial-gradient(circle 8px at center,#dae2eb 98%,transparent 100%); }
  .strategy-template .st-help-trigger:is(:hover,:focus-visible) { background:radial-gradient(circle 8px at center,#175d96 98%,transparent 100%); }
}
@media (pointer:coarse) and (max-width:700px) { .strategy-template .st-field :is(input,select,textarea) { min-height:44px; } }
/* Last native non-subgrid fallback wins over every width rule. */
@supports not (grid-template-rows:subgrid) { .strategy-template .st-kpi-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .strategy-template *, .strategy-template *::before, .strategy-template *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } .strategy-template .st-loading-rail span { transform:none; } }
/* BEGIN TEC PORTABLE ADAPTER CORRECTIONS */
/* Portable selector/injection defects only, not a redesign of the native reference.
   Keep direct SVG support. Each inert icon span accepts one immediate child SVG.
   Account/chooser dimensions remain supplied by the host's existing SVG attributes. */
.strategy-template .st-table th.st-number { text-align:right; }
.strategy-template .st-account-identity>span[data-st-slot="account-icon"],
.strategy-template .st-select-trigger>span[data-st-slot="chooser-icon"] { display:inline-flex; flex:none; color:var(--st-blue); }
.strategy-template .st-account-identity>span[data-st-slot="account-icon"]>svg,
.strategy-template .st-select-trigger>span[data-st-slot="chooser-icon"]>svg { flex:none; color:var(--st-blue); }
.strategy-template .st-nav button>span[data-st-slot="navigation-icon"] { display:inline-flex; flex:none; width:18px; height:18px; color:#a8bdcd; }
.strategy-template .st-nav button[aria-current="page"]>span[data-st-slot="navigation-icon"] { color:#93b4d4; }
.strategy-template .st-kpi-title>span[data-st-slot="kpi-icon"] { display:inline-flex; flex:none; margin-top:2px; width:15px; height:15px; color:var(--st-blue); }
.strategy-template .st-kpi-title>span[data-st-slot="kpi-icon"]>svg { flex:none; width:15px; height:15px; color:var(--st-blue); }
/* END TEC PORTABLE ADAPTER CORRECTIONS */
