:root{--ink:#17231f;--forest:#234a40;--moss:#486f67;--paper:#f7f6f1;--sand:#e8e4d9;--muted:#6d746d;--line:#dcded5;--terra:#9f684e}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;background:var(--paper)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:'Libre Baskerville',serif;font-size:18px}.brand-mark{background:var(--forest);color:#fff;width:28px;height:28px;display:grid;place-items:center;font-size:15px}.site-header{height:78px;display:flex;align-items:center;padding:0 5.4vw;border-bottom:1px solid var(--line)}.header-note{font:12px 'DM Mono',monospace;color:var(--muted);margin:auto}.text-link,.back-link{color:var(--forest);font-size:14px;text-decoration:none}.text-link span{font-size:17px}.landing{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(115deg,var(--paper) 0 66%,#e3e7dd 66%)}.hero{padding:14vh 5.4vw 9vh;max-width:850px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font:10px 'DM Mono',monospace;color:#68766e;margin:0 0 18px}.hero h1,.login-panel h1,.portal-header h1{font:400 clamp(48px,6.2vw,84px)/1.08 'Libre Baskerville',serif;margin:0;letter-spacing:-.055em}.hero-copy{font-size:18px;line-height:1.65;max-width:580px;color:#4f5c55;margin:30px 0}.button{background:var(--forest);color:#fff;text-decoration:none;border:0;padding:14px 19px;display:inline-flex;gap:35px;justify-content:space-between;align-items:center;font:500 13px 'DM Sans',sans-serif;cursor:pointer}.button:hover{background:#183c33}.capabilities{margin:0 5.4vw;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #bcc8be}.capabilities article{padding:24px 38px 18px 0}.capabilities article+article{border-left:1px solid #bcc8be;padding-left:28px}.capabilities span{font:10px 'DM Mono';color:var(--moss)}.capabilities h2{font:400 18px 'Libre Baskerville';margin:18px 0 10px}.capabilities p{font-size:13px;line-height:1.55;color:var(--muted);max-width:260px;margin:0}footer{display:flex;justify-content:space-between;margin-top:auto;padding:24px 5.4vw;font:10px 'DM Mono';color:var(--muted)}.auth-page{min-height:100vh;background:#e9ece4}.auth-brand{position:absolute;top:27px;left:5.4vw}.login-wrap{min-height:100vh;display:grid;place-items:center}.login-panel{width:min(440px,90vw);background:var(--paper);padding:54px}.login-panel h1{font-size:40px}.muted{color:var(--muted);font-size:14px;margin:15px 0 30px}.login-panel form{display:grid;gap:9px}.login-panel label{font-size:12px;font-weight:600;margin-top:8px}.login-panel input{height:43px;border:1px solid #cbd0c8;background:#fff;padding:8px;font:14px 'DM Sans'}.full{margin-top:18px;width:100%}.back-link{display:block;margin-top:28px;font-size:12px}.form-error{font-size:12px;color:#8b3b32;background:#f4dddd;padding:10px}.app-shell{min-height:100vh;background:#f5f5f0;display:flex}.sidebar{width:230px;position:fixed;inset:0 auto 0 0;padding:30px 20px;background:#eff1eb;border-right:1px solid var(--line);display:flex;flex-direction:column}.sidebar-label{font:10px 'DM Mono';text-transform:uppercase;color:#7c847d;margin:57px 12px 12px}nav{display:grid;gap:4px}nav a{padding:11px 12px;text-decoration:none;color:#607067;font-size:13px;display:flex;gap:11px;align-items:center}nav a.active{background:#dce5da;color:var(--forest);font-weight:600}nav a.disabled{color:#9aa39b}nav small{margin-left:auto;font:9px 'DM Mono';text-transform:uppercase}.sidebar-bottom{margin-top:auto}.firm{display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);padding:18px 4px}.firm b{display:block;font-size:11px}.firm small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#d6ded3;color:var(--forest);font:9px 'DM Mono'}.logout{background:none;border:0;padding:8px 4px;color:#68766e;font:12px 'DM Sans';cursor:pointer}.workspace{margin-left:230px;width:calc(100% - 230px);padding:34px 48px}.portal-header{display:flex;justify-content:space-between;align-items:end}.portal-header h1{font-size:31px;letter-spacing:-.035em}.header-actions{display:flex;align-items:center;gap:16px}.as-of{font:11px 'DM Mono';color:var(--muted)}.outline-button{background:none;border:1px solid #bfc7bd;padding:9px 13px;font:12px 'DM Sans';color:var(--forest)}.section-tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-top:36px}.tab{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:0 0 12px;color:#758077;font:12px 'DM Sans';cursor:pointer}.tab.active{color:var(--forest);border-color:var(--forest);font-weight:600}.dashboard-section{display:none;padding-top:24px}.dashboard-section.active{display:block}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.metric-card,.panel{background:#fff;border:1px solid #e2e3dd}.metric-card{padding:18px}.metric-card p{font-size:11px;color:var(--muted);margin:0}.metric-card h2{margin:11px 0 7px;font:400 25px 'Libre Baskerville'}.metric-card span{font-size:11px}.positive{color:#27735a}.neutral{color:#68766e}.grid{display:grid;gap:13px;margin-top:13px}.two-one{grid-template-columns:2fr 1fr}.panel{padding:21px}.panel-heading{display:flex;justify-content:space-between;align-items:start}.panel-heading h2{font:400 18px 'Libre Baskerville';margin:0}.panel-heading .eyebrow{margin-bottom:8px}.legend{display:flex;gap:13px;font-size:10px;color:var(--muted)}.legend i{display:inline-block;width:13px;border-top:2px solid;margin-right:4px}.line-a{border-color:var(--forest)!important}.line-b{border-color:#b9a170!important;border-top-style:dashed!important}.chart-value{display:flex;align-items:baseline;gap:9px;margin:24px 0 5px}.chart-value b{font:400 25px 'Libre Baskerville'}.chart-value span{font-size:11px;color:var(--muted)}.line-chart{width:100%;height:165px}.gridline{stroke:#e7e9e3;stroke-width:1}.benchmark{fill:none;stroke:#b9a170;stroke-width:2;stroke-dasharray:4 4}.portfolio-line{fill:none;stroke:var(--forest);stroke-width:2.5}.months{display:flex;justify-content:space-between;color:#89928a;font:9px 'DM Mono'}.panel-link{border:0;background:none;color:var(--forest);font:11px 'DM Sans';cursor:pointer}.allocation-ring{height:139px;width:139px;margin:22px auto 18px;border-radius:50%;background:conic-gradient(#486f67 0 43.2%,#9f684e 43.2% 65.7%,#b9a170 65.7% 84.3%,#75889c 84.3% 95.2%,#d8d4ca 95.2%);display:grid;place-items:center}.allocation-ring div{width:92px;height:92px;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center}.allocation-ring b{font:400 20px 'Libre Baskerville'}.allocation-ring span{font-size:9px;color:var(--muted)}.allocation-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.allocation-list li{display:flex;align-items:center;font-size:10px}.allocation-list i{width:7px;height:7px;border-radius:50%;margin-right:7px}.allocation-list b{margin-left:auto;font:10px 'DM Mono'}.holdings{margin-top:13px}.holdings table{width:100%;border-collapse:collapse;margin-top:16px;font-size:11px}.holdings th{text-align:left;color:#8a938b;font:9px 'DM Mono';text-transform:uppercase;padding:0 0 10px}.holdings td{border-top:1px solid #edf0ea;padding:11px 0;color:#566158}.holdings td:first-child{color:var(--ink)}.empty-state{background:#fff;border:1px solid var(--line);padding:60px;min-height:440px}.empty-state h2{font:400 32px/1.3 'Libre Baskerville';max-width:600px;margin:0}.empty-state p:last-child{color:var(--muted);font-size:14px;max-width:520px;line-height:1.6}@media(max-width:900px){.sidebar{width:68px;padding:25px 10px}.sidebar .brand span:last-child,.sidebar-label,nav a:not(.active){font-size:0}.sidebar .brand{justify-content:center}.sidebar-bottom{display:none}.workspace{margin-left:68px;width:calc(100% - 68px);padding:28px}.metrics{grid-template-columns:repeat(2,1fr)}.two-one{grid-template-columns:1fr}}@media(max-width:600px){.site-header{padding:0 22px}.header-note{display:none}.hero{padding:12vh 22px}.capabilities{margin:0 22px;grid-template-columns:1fr}.capabilities article+article{border-left:0;border-top:1px solid #bcc8be;padding-left:0}.workspace{padding:22px 15px}.portal-header{align-items:start}.header-actions{display:none}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric-card{padding:13px}.metric-card h2{font-size:19px}.panel{padding:15px}.legend{display:none}.holdings{overflow:auto}.holdings table{min-width:560px}.section-tabs{gap:16px}.empty-state{padding:35px 22px}.login-panel{padding:34px 27px}}

/* Keep the primary portfolio view within a typical desktop viewport. */
@media (min-width:901px) {
  .workspace{padding:22px 36px 18px}
  .section-tabs{margin-top:22px}
  .tab{padding-bottom:10px}
  .dashboard-section{padding-top:14px}
  .metrics{gap:10px}
  .metric-card{padding:12px 15px}
  .metric-card h2{font-size:22px;margin:7px 0 5px}
  .grid{gap:10px;margin-top:10px}
  .panel{padding:14px 18px}
  .chart-value{margin:12px 0 2px}
  .line-chart{height:112px}
  .allocation-ring{height:106px;width:106px;margin:10px auto}
  .allocation-ring div{height:70px;width:70px}
  .allocation-ring b{font-size:17px}
  .allocation-list{gap:5px}
  .holdings{margin-top:10px}
  .holdings table{margin-top:10px}
  .holdings th{padding-bottom:7px}
  .holdings td{padding:7px 0}
}

@media (max-width:900px) {
  .sidebar nav a{font-size:0;justify-content:center}
  .sidebar nav a span{font-size:13px}
  .sidebar nav small{display:none}
}

/* Reporting and analytics workspaces */
.negative{color:#a14b42}
.data-workspace{height:100vh;overflow:hidden;display:flex;flex-direction:column}
.data-workspace .portal-header{flex:0 0 auto}
.source-badge{border:1px solid #d7d8d1;background:#fff;padding:7px 9px;color:#68766e;font:9px 'DM Mono';text-transform:uppercase;letter-spacing:.08em}
.workspace-controls{display:flex;align-items:end;gap:12px;margin-top:14px;padding:10px 12px;background:#eef0ea;border:1px solid #dfe2da;flex:0 0 auto}
.workspace-controls label{display:grid;gap:4px}
.workspace-controls label>span{font:8px 'DM Mono';letter-spacing:.08em;text-transform:uppercase;color:#7c847d}
.workspace-controls select,.workspace-controls input{height:31px;border:1px solid #cbd0c8;background:#fff;color:var(--ink);padding:5px 9px;font:11px 'DM Sans';min-width:220px}
.workspace-controls input{min-width:138px}
.control-context{display:flex;gap:14px;margin-left:auto;align-items:center;height:31px;font:9px 'DM Mono';color:#727b73}
.control-context span{white-space:nowrap}
.context-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}
.benchmark-dot{background:#b9a170}.risk-free-dot{background:#8d9eaa}
.view-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);padding-top:12px;flex:0 0 auto}
.view-tabs a{color:#788178;text-decoration:none;font-size:11px;padding:0 0 9px;border-bottom:2px solid transparent;margin-bottom:-1px}
.view-tabs a.active{color:var(--forest);border-color:var(--forest);font-weight:600}
.data-page{padding-top:10px;flex:1;min-height:0}
.data-page .metrics{gap:9px}
.metrics.five{grid-template-columns:repeat(5,1fr)}
.data-page .metric-card{padding:10px 13px}
.data-page .metric-card h2{font-size:20px;margin:6px 0 4px}
.data-page .metric-card span{font-size:9px}
.reporting-page{display:grid;grid-template-rows:auto minmax(245px,1.35fr) minmax(155px,.85fr);gap:9px}
.reporting-primary{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(390px,1fr);gap:9px;min-height:0}
.chart-panel,.hierarchy-panel,.data-table-panel{min-height:0;overflow:hidden;display:flex;flex-direction:column}
.chart-panel{padding:13px 16px}
.chart-panel img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;margin-top:3px}
.panel-note{font:8px 'DM Mono';color:#7b857d;text-transform:uppercase}
.hierarchy-panel{padding:13px 15px}
.hierarchy-scroll,.table-scroll{overflow:auto;min-height:0;margin-top:8px;scrollbar-color:#cbd0c8 transparent;scrollbar-width:thin}
.hierarchy-table,.data-table{border-collapse:collapse;width:100%;font-size:9px}
.hierarchy-table th,.data-table th{position:sticky;top:0;z-index:1;background:#fff;text-align:right;color:#89928a;font:8px 'DM Mono';text-transform:uppercase;padding:6px;border-bottom:1px solid #e5e7e1;white-space:nowrap}
.hierarchy-table th:first-child,.data-table th:first-child{text-align:left}
.hierarchy-table td,.data-table td,.data-table tbody th{padding:5px 6px;border-bottom:1px solid #edf0ea;text-align:right;white-space:nowrap}
.hierarchy-table td:first-child,.data-table tbody th{text-align:left;color:var(--ink);font-weight:500}
.hierarchy-table small{display:block;color:#9aa29b;font-size:7px;margin-top:1px}
.hierarchy-level-0 td{background:#f7f8f4;font-weight:600}
.hierarchy-level-1 .hierarchy-name{display:inline-block;padding-left:14px}
.hierarchy-level-2 .hierarchy-name{display:inline-block;padding-left:30px}
.data-table-panel{padding:12px 16px}
.data-table tbody th{font-size:9px;background:#fff;position:sticky;left:0;z-index:1}
.analytics-page{display:grid;grid-template-rows:auto minmax(210px,1.1fr) minmax(160px,.9fr);gap:9px}
.analytics-charts,.analytics-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-height:0}
.analytics-tables.single{grid-template-columns:1fr}

@media(max-width:1100px){
  .metrics.five{grid-template-columns:repeat(3,1fr)}
  .reporting-primary{grid-template-columns:minmax(0,1.3fr) minmax(340px,1fr)}
}

@media(max-width:900px){
  .data-workspace{height:auto;min-height:100vh;overflow:visible}
  .workspace-controls{align-items:stretch;flex-wrap:wrap}
  .workspace-controls select,.workspace-controls input{min-width:180px}
  .control-context{width:100%;margin-left:0}
  .data-page,.reporting-page,.analytics-page{display:block}
  .reporting-primary,.analytics-charts,.analytics-tables,.analytics-tables.single{display:grid;grid-template-columns:1fr}
  .data-page>*{margin-bottom:10px}
  .chart-panel{min-height:280px}
  .hierarchy-panel,.data-table-panel{max-height:390px;min-height:260px}
}

@media(max-width:600px){
  .metrics.five,.data-page .metrics{grid-template-columns:1fr 1fr}
  .workspace-controls label{width:100%}
  .workspace-controls select,.workspace-controls input{width:100%}
  .view-tabs{gap:14px;overflow:auto}
  .view-tabs a{white-space:nowrap}
  .source-badge{display:none}
}

/* Expanded portfolio reporting and analytics */
.sidebar,
.workspace{
  transition:width .2s ease,margin-left .2s ease;
}
.sidebar-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:30px;
}
.sidebar-toggle{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid #d2d7cf;
  background:#f8f9f5;
  color:var(--forest);
  cursor:pointer;
  font:18px/1 'DM Sans',sans-serif;
}
.sidebar-toggle:hover{
  background:#e2e8df;
}
.nav-glyph{
  flex:0 0 18px;
  text-align:center;
}
.sidebar-collapsed .sidebar{
  width:72px;
  padding-left:12px;
  padding-right:12px;
}
.sidebar-collapsed .workspace{
  margin-left:72px;
  width:calc(100% - 72px);
}
.sidebar-collapsed .sidebar-topline{
  display:grid;
  justify-items:center;
  gap:16px;
}
.sidebar-collapsed .brand-name,
.sidebar-collapsed .sidebar-label,
.sidebar-collapsed .nav-label,
.sidebar-collapsed .sidebar nav small,
.sidebar-collapsed .firm-copy,
.sidebar-collapsed .logout-label{
  display:none;
}
.sidebar-collapsed .sidebar nav a{
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
.sidebar-collapsed .sidebar nav{
  margin-top:48px;
}
.sidebar-collapsed .firm{
  justify-content:center;
}
.sidebar-collapsed .logout{
  width:100%;
}
.data-workspace{
  height:100vh;
  overflow-x:hidden;
  overflow-y:auto;
}
.data-page{
  flex:0 0 auto;
  min-height:auto;
  padding-bottom:34px;
}
.reporting-page,
.analytics-page,
.asset-group-page{
  display:grid;
  gap:12px;
}
.reporting-page{
  grid-template-rows:none;
}
.analytics-page{
  grid-template-rows:none;
}
.reporting-primary{
  min-height:360px;
}
.chart-switcher{
  min-height:350px;
}
.chart-switcher-heading{
  gap:18px;
  min-height:48px;
}
.chart-heading-copy{
  min-width:180px;
}
.chart-toggle{
  display:flex;
  align-items:center;
  gap:3px;
  padding:3px;
  border:1px solid #dfe2da;
  background:#f4f5f1;
}
.chart-toggle button{
  border:0;
  background:transparent;
  padding:6px 9px;
  color:#788178;
  font:9px 'DM Sans',sans-serif;
  cursor:pointer;
  white-space:nowrap;
}
.chart-toggle button.active{
  background:#fff;
  color:var(--forest);
  box-shadow:0 1px 2px rgba(23,35,31,.08);
  font-weight:600;
}
.chart-stage{
  flex:1;
  min-height:0;
  display:grid;
}
.chart-slide{
  min-height:0;
  height:100%;
}
.chart-slide img{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
  margin-top:3px;
}
.section-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:28px;
  padding-top:8px;
}
.section-heading .eyebrow{
  margin-bottom:7px;
}
.section-heading h2,
.asset-group-intro h2,
.report-download-card h2{
  margin:0;
  font:400 20px 'Libre Baskerville',serif;
}
.section-heading>p{
  max-width:520px;
  margin:0 0 1px;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}
.summary-table-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:9px;
  min-height:280px;
}
.summary-table-grid .data-table-panel{
  min-height:280px;
}
.asset-return-heading{
  padding-top:12px;
}
.asset-return-panel{
  padding:0;
  overflow-x:auto;
}
.asset-return-columns,
.asset-group-disclosure summary,
.holding-return-row{
  display:grid;
  grid-template-columns:minmax(260px,1.8fr) repeat(7,minmax(68px,.55fr));
  align-items:center;
  min-width:880px;
}
.asset-return-columns{
  padding:10px 15px 8px;
  border-bottom:1px solid #dfe2da;
  background:#f6f7f3;
  color:#89928a;
  font:8px 'DM Mono',monospace;
  text-transform:uppercase;
}
.asset-return-columns span:not(:first-child),
.asset-group-disclosure summary>span:not(:first-child),
.holding-return-row>span:not(:first-child){
  text-align:right;
}
.asset-group-disclosure{
  border-bottom:1px solid #e7e9e3;
}
.asset-group-disclosure:last-child{
  border-bottom:0;
}
.asset-group-disclosure summary{
  list-style:none;
  padding:12px 15px;
  cursor:pointer;
  color:#566158;
  font-size:10px;
}
.asset-group-disclosure summary::-webkit-details-marker{
  display:none;
}
.asset-group-disclosure summary:hover{
  background:#fafbf8;
}
.asset-summary-name{
  display:grid;
  grid-template-columns:14px 1fr;
  align-items:center;
  text-align:left!important;
}
.asset-summary-name i{
  grid-row:1 / 3;
  font-style:normal;
  font-size:17px;
  color:#77827a;
  transition:transform .16s ease;
}
.asset-group-disclosure[open] .asset-summary-name i{
  transform:rotate(90deg);
}
.asset-summary-name b{
  color:var(--ink);
  font-size:10px;
}
.asset-summary-name small{
  grid-column:2;
  margin-top:2px;
  overflow:hidden;
  color:#8b948c;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.holding-return-rows{
  background:#f9faf7;
  border-top:1px solid #edf0ea;
}
.holding-return-row{
  padding:9px 15px 9px 31px;
  color:#68746c;
  font-size:9px;
  border-bottom:1px solid #edf0ea;
}
.holding-return-row:last-child{
  border-bottom:0;
}
.holding-return-row .asset-summary-name{
  grid-template-columns:1fr;
}
.holding-return-row .asset-summary-name small{
  grid-column:1;
}
.recent-periods{
  min-height:250px;
}
.benchmark-name{
  max-width:170px;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#7b857d;
}
.hierarchy-level-1 .hierarchy-name{display:inline-block;padding-left:14px}
.hierarchy-level-2 .hierarchy-name{display:inline-block;padding-left:29px}
.hierarchy-level-3 .hierarchy-name{display:inline-block;padding-left:44px}
.asset-group-intro{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:17px 19px;
  border:1px solid #dfe2da;
  background:#eef0ea;
}
.asset-group-intro .eyebrow{
  margin-bottom:6px;
}
.asset-group-intro p:last-child{
  margin:7px 0 0;
  color:var(--muted);
  font-size:11px;
}
.benchmark-callout{
  max-width:360px;
  display:grid;
  gap:5px;
  padding:11px 13px;
  background:#fff;
  border:1px solid #dfe2da;
}
.benchmark-callout span{
  color:#89928a;
  font:8px 'DM Mono',monospace;
  text-transform:uppercase;
}
.benchmark-callout b{
  color:var(--forest);
  font-size:11px;
}
.asset-group-page .chart-switcher,
.analytics-page .chart-switcher{
  min-height:390px;
}
.analytics-view-tabs{
  overflow-x:auto;
  scrollbar-width:thin;
}
.analytics-view-tabs a{
  white-space:nowrap;
}
.analytics-tables{
  min-height:280px;
}
.analytics-tables .data-table-panel{
  min-height:280px;
}
.report-download-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:20px 22px;
  background:var(--forest);
  color:#fff;
}
.report-download-card .eyebrow{
  color:#bcd0c7;
  margin-bottom:7px;
}
.report-download-card h2{
  font-size:23px;
}
.report-download-card p:last-child{
  max-width:720px;
  margin:8px 0 0;
  color:#d8e1dc;
  font-size:11px;
  line-height:1.55;
}
.report-download-card .button{
  flex:0 0 auto;
  background:#f5f3ec;
  color:var(--forest);
}
.portfolio-ownership-panel{
  min-height:560px;
  padding:0;
  overflow:hidden;
}
.ownership-heading{
  align-items:end;
  gap:30px;
  padding:18px 20px 14px;
  border-bottom:1px solid #dfe2da;
}
.ownership-heading>p{
  max-width:470px;
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
  text-align:right;
}
.ownership-scroll{
  max-height:610px;
  overflow:auto;
  scrollbar-color:#cbd0c8 transparent;
  scrollbar-width:thin;
}
.ownership-table{
  width:100%;
  min-width:940px;
  border-collapse:collapse;
  font-size:11px;
  line-height:1.15;
}
.ownership-table thead th{
  position:sticky;
  top:0;
  z-index:3;
  padding:10px 9px;
  border-bottom:1px solid #dfe2da;
  background:#f6f7f3;
  color:#89928a;
  font-size:9px;
  font-weight:600;
  text-align:right;
  text-transform:uppercase;
  white-space:nowrap;
}
.ownership-table thead th:first-child{
  left:0;
  z-index:4;
  width:250px;
  min-width:250px;
  text-align:left;
}
.ownership-table tbody th,
.ownership-table tbody td{
  padding:9px;
  border-bottom:1px solid #eceee8;
  text-align:right;
  white-space:nowrap;
}
.ownership-table tbody th{
  position:sticky;
  left:0;
  z-index:2;
  width:250px;
  min-width:250px;
  background:#fff;
  text-align:left;
}
.ownership-name{
  display:flex;
  align-items:center;
  gap:8px;
}
.ownership-name button,
.ownership-name i{
  width:21px;
  height:21px;
  flex:0 0 21px;
}
.ownership-name button{
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #d5dad2;
  background:#fff;
  color:var(--forest);
  cursor:pointer;
  font:14px/1 'DM Sans',sans-serif;
}
.ownership-name button:hover{
  background:#e8eee6;
}
.ownership-name span{
  display:grid;
  gap:2px;
  min-width:0;
}
.ownership-name b{
  overflow:hidden;
  color:var(--ink);
  font-size:11px;
  text-overflow:ellipsis;
}
.ownership-name small{
  overflow:hidden;
  color:#8b948c;
  font-size:8px;
  font-weight:400;
  text-overflow:ellipsis;
}
.ownership-level-0 th,
.ownership-level-0 td{
  background:#e7eee5!important;
  font-weight:600;
}
.ownership-level-0 .ownership-name b{
  font-size:12px;
  font-weight:600;
}
.ownership-level-1 th,
.ownership-level-1 td{
  background:#f5f7f2!important;
  font-weight:600;
}
.ownership-level-1 .ownership-name{padding-left:18px}
.ownership-level-2 .ownership-name{padding-left:46px}
.ownership-level-3 .ownership-name{padding-left:74px}
.frequency-chart-heading{
  padding-top:14px;
}
.reporting-page>.chart-switcher{
  min-height:430px;
}

@media(max-width:1180px){
  .reporting-primary,
  .summary-table-grid{
    grid-template-columns:1fr;
  }
  .reporting-primary{
    min-height:720px;
  }
  .chart-switcher,
  .summary-table-grid .data-table-panel{
    min-height:340px;
  }
  .ownership-heading{
    align-items:flex-start;
    flex-direction:column;
  }
  .ownership-heading>p{
    max-width:none;
    text-align:left;
  }
}

@media(max-width:900px){
  .sidebar-toggle{display:none}
  .sidebar .nav-label,
  .sidebar nav small{
    display:none;
  }
  .sidebar nav a{
    justify-content:center;
    padding-left:0;
    padding-right:0;
  }
  .data-workspace{height:auto;overflow:visible}
  .reporting-primary{min-height:auto}
  .chart-switcher,
  .asset-group-page .chart-switcher,
  .analytics-page .chart-switcher{min-height:330px}
  .section-heading,
  .asset-group-intro,
  .report-download-card{align-items:flex-start;flex-direction:column}
  .section-heading>p{max-width:none}
}

@media(max-width:600px){
  .chart-switcher-heading{
    align-items:stretch;
    flex-direction:column;
  }
  .chart-toggle{
    max-width:100%;
    overflow-x:auto;
  }
  .asset-group-intro,
  .report-download-card{
    padding:16px;
  }
  .benchmark-callout{
    max-width:none;
    width:100%;
  }
  .report-download-card .button{
    width:100%;
  }
  .portfolio-ownership-panel{
    min-height:500px;
  }
  .ownership-heading{
    padding:15px;
  }
  .ownership-scroll{
    max-height:680px;
    overflow-x:hidden;
  }
  .ownership-table{
    min-width:0;
  }
  .ownership-table thead{
    display:none;
  }
  .ownership-table tbody{
    display:grid;
  }
  .ownership-table tbody tr{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    padding:9px 10px 11px;
    border-bottom:1px solid #dfe2da;
  }
  .ownership-table tbody th{
    position:static;
    grid-column:1 / -1;
    min-width:0;
    padding:4px 0 9px;
    border-bottom:0;
    background:transparent!important;
  }
  .ownership-table tbody td{
    display:grid;
    gap:3px;
    min-width:0;
    padding:6px 4px;
    border-bottom:0;
    background:transparent!important;
    font-size:9px;
    text-align:left;
  }
  .ownership-table tbody td::before{
    content:attr(data-label);
    color:#89928a;
    font:7px 'DM Mono',monospace;
    text-transform:uppercase;
  }
  .ownership-level-1 .ownership-name{padding-left:10px}
  .ownership-level-2 .ownership-name{padding-left:20px}
  .ownership-level-3 .ownership-name{padding-left:30px}
}

/* System typography and presentation-page layouts. */
:root{
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;
}
html,
body,
button,
input,
select,
textarea,
table,
th,
td,
*{
  font-family:var(--font-ui)!important;
}
body{
  font-variant-numeric:tabular-nums;
}
.asset-group-page,
.client-facing-page,
.analytics-page{
  display:grid;
  grid-template-rows:none;
  gap:12px;
  overflow:auto;
  padding-bottom:18px;
  scrollbar-width:thin;
}
.summary-slide{
  min-height:455px;
  padding:16px;
  border:1px solid #dfe2da;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.summary-slide-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.summary-slide-header h2{
  margin:0;
  color:var(--ink);
  font-size:22px;
  font-weight:600;
  letter-spacing:-.025em;
}
.summary-slide-header p:last-child{
  margin:6px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}
.summary-slide-header.compact{
  padding-bottom:9px;
  border-bottom:1px solid #e6e8e2;
}
.summary-slide-header.compact>p{
  max-width:430px;
  margin:0;
  text-align:right;
}
.summary-stat-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid #e4e6e0;
  background:#f7f8f4;
}
.summary-stat-strip>div{
  min-width:0;
  padding:9px 12px;
}
.summary-stat-strip>div+div{
  border-left:1px solid #e0e3dc;
}
.summary-stat-strip span,
.summary-stat-strip small,
.publication-status span{
  display:block;
  color:#818a82;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.summary-stat-strip b{
  display:block;
  margin:4px 0 2px;
  font-size:16px;
}
.summary-stat-strip small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-transform:none;
  letter-spacing:0;
}
.summary-slide-grid{
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:10px;
}
.summary-slide-grid>.chart-switcher,
.summary-slide-grid>.data-table-panel{
  min-height:330px;
  margin:0;
}
.summary-slide-detail{
  flex:1;
  min-height:0;
}
.summary-slide-detail>.data-table-panel{
  height:100%;
  min-height:340px;
}
.publication-status{
  min-width:260px;
  padding:11px 13px;
  border:1px solid #dfe2da;
  background:#f6f7f3;
}
.publication-status b{
  display:block;
  margin-top:5px;
  font-size:12px;
  color:var(--forest);
}
.client-publication-grid{
  flex:1;
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:10px;
}
.publication-placeholder,
.publication-notes{
  border:1px solid #e1e3dd;
  padding:24px;
}
.publication-placeholder{
  display:flex;
  align-items:center;
  gap:24px;
  background:linear-gradient(135deg,#f3f5f0,#fff);
}
.publication-placeholder>span{
  color:#cbd2ca;
  font-size:58px;
  font-weight:600;
}
.publication-placeholder h3,
.publication-notes h3{
  margin:0 0 8px;
  font-size:17px;
}
.publication-placeholder p,
.publication-notes p:last-child{
  max-width:470px;
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
}
.publication-notes{
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#eef1eb;
}
.comparison-editor{
  padding:12px 14px;
  border:1px solid #dfe2da;
  background:#eef0ea;
}
.comparison-editor-heading{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) minmax(230px,1fr);
  align-items:end;
  gap:12px;
}
.comparison-editor h2{
  margin:0;
  font-size:18px;
}
.comparison-editor label{
  display:grid;
  gap:4px;
}
.comparison-editor label>span{
  color:#7c847d;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.comparison-editor input[type="text"],
.comparison-editor input:not([type]),
.comparison-editor select{
  height:31px;
  min-width:0;
  border:1px solid #cbd0c8;
  background:#fff;
  padding:5px 8px;
  color:var(--ink);
  font-size:11px;
}
.comparison-members{
  display:flex;
  flex-wrap:wrap;
  gap:6px 15px;
  margin-top:11px;
}
.comparison-members label{
  display:flex;
  grid-template-columns:none;
  align-items:center;
  gap:6px;
  min-width:180px;
}
.comparison-members label>span{
  color:#566158;
  font-size:9px;
  text-transform:none;
  letter-spacing:0;
}
.comparison-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:11px;
}
.text-button{
  padding:8px 10px;
  border:0;
  background:none;
  color:var(--forest);
  cursor:pointer;
  font-size:11px;
}
.text-button.destructive{
  margin-left:auto;
  color:#9a473e;
}

@media(max-width:1050px){
  .summary-slide-grid,
  .client-publication-grid{
    grid-template-columns:1fr;
  }
  .summary-slide-grid>.chart-switcher,
  .summary-slide-grid>.data-table-panel{
    min-height:300px;
  }
  .comparison-editor-heading{
    grid-template-columns:1fr 1fr;
  }
  .comparison-editor-heading>div:first-child{
    grid-column:1 / -1;
  }
}

@media(max-width:700px){
  .summary-slide{
    min-height:0;
    padding:12px;
  }
  .summary-slide-header{
    align-items:flex-start;
    flex-direction:column;
  }
  .summary-slide-header.compact>p{
    max-width:none;
    text-align:left;
  }
  .summary-stat-strip{
    grid-template-columns:1fr 1fr;
  }
  .summary-stat-strip>div:nth-child(3){
    border-left:0;
    border-top:1px solid #e0e3dc;
  }
  .summary-stat-strip>div:nth-child(4){
    border-top:1px solid #e0e3dc;
  }
  .comparison-editor-heading{
    grid-template-columns:1fr;
  }
  .comparison-editor-heading>div:first-child{
    grid-column:auto;
  }
  .publication-status{
    min-width:0;
    width:100%;
  }
}

/* User settings and reusable data-source controls. */
.workspace-controls{
  flex-wrap:wrap;
}
.control-context a{
  color:var(--forest);
  font-size:9px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.source-mapping-note{
  color:#8a664a;
}
.settings-tabs span{
  color:#949c95;
  font-size:11px;
  padding:0 0 9px;
  border-bottom:2px solid transparent;
  white-space:nowrap;
}
.settings-tabs span.active{
  color:var(--forest);
  border-color:var(--forest);
  font-weight:600;
}
.settings-page{
  display:grid;
  gap:12px;
  overflow:auto;
  padding-bottom:18px;
  scrollbar-width:thin;
}
.settings-section{
  border:1px solid #dfe2da;
  background:#fff;
  padding:18px;
}
.settings-section-header{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:15px;
}
.settings-section-header h2{
  margin:0;
  font-size:21px;
  letter-spacing:-.02em;
}
.settings-section-header p:last-child{
  max-width:650px;
  margin:6px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}
.default-source-form{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  align-items:end;
  gap:10px;
  padding-top:14px;
  border-top:1px solid #e7e9e3;
}
.default-source-form label,
.managed-source-selector label,
.source-editor label{
  display:grid;
  gap:5px;
}
.default-source-form label>span,
.managed-source-selector label>span,
.source-editor label>span,
.source-readout span{
  color:#7c847d;
  font-size:8px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.default-source-form select,
.managed-source-selector select,
.source-editor input{
  width:100%;
  height:34px;
  border:1px solid #cbd0c8;
  background:#fff;
  color:var(--ink);
  padding:6px 9px;
  font-size:11px;
}
.default-source-form small,
.source-editor label small{
  color:#8b948c;
  font-size:8px;
  line-height:1.4;
}
.compact-button{
  min-height:34px;
  padding:9px 13px;
  font-size:11px;
  white-space:nowrap;
}
.managed-source-selector{
  min-width:280px;
}
.settings-error{
  margin:0 0 12px;
  padding:9px 11px;
  border:1px solid #e3c8c4;
  background:#f7e8e5;
  color:#8b3b32;
  font-size:11px;
}
.source-manager-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:12px;
}
.source-editor,
.source-inventory{
  min-width:0;
  padding:15px;
  border:1px solid #e2e4de;
  background:#f8f9f6;
}
.source-editor{
  display:grid;
  gap:12px;
}
.source-readout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  border:1px solid #e0e3dc;
  background:#e0e3dc;
}
.source-readout>div{
  min-width:0;
  padding:10px;
  background:#fff;
}
.source-readout b{
  display:block;
  overflow:hidden;
  margin-top:4px;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.source-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.source-actions .destructive{
  margin-left:auto;
}
.source-inventory{
  display:flex;
  flex-direction:column;
  gap:7px;
  background:#eef1eb;
}
.source-inventory>.eyebrow{
  margin-bottom:2px;
}
.source-inventory>a{
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 12px;
  padding:10px;
  border:1px solid #dfe2da;
  background:#fff;
  color:var(--ink);
  text-decoration:none;
}
.source-inventory>a.active{
  border-color:#779087;
  box-shadow:inset 3px 0 var(--forest);
}
.source-inventory>a span:first-child{
  min-width:0;
}
.source-inventory>a b,
.source-inventory>a small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.source-inventory>a b{
  font-size:11px;
}
.source-inventory>a small{
  margin-top:3px;
  color:var(--muted);
  font-size:8px;
}
.source-inventory>a em{
  align-self:start;
  font-size:8px;
  font-style:normal;
  white-space:nowrap;
}
.source-tags{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:3px;
}
.source-tags i{
  padding:3px 6px;
  border-radius:999px;
  background:#e8eee6;
  color:#587066;
  font-size:8px;
  font-style:normal;
}
.source-empty{
  padding:24px 15px;
  border:1px dashed #cbd2ca;
  text-align:center;
}
.source-empty b{
  font-size:12px;
}
.source-empty p{
  margin:6px auto 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}
.settings-footnote{
  margin:0;
  padding:0 3px;
  color:#818a82;
  font-size:9px;
  line-height:1.5;
}

/* The Great Library public page: one quiet, fixed viewport. */
.landing{
  height:100vh;
  height:100svh;
  min-height:0;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  background:
    radial-gradient(circle at 73% 46%,rgba(72,111,103,.13),transparent 25%),
    linear-gradient(112deg,#f7f6f1 0 68%,#e4e8df 68%);
}
.landing .site-header{
  min-height:76px;
  height:auto;
  padding:18px clamp(22px,5.4vw,82px);
  border-bottom:0;
  justify-content:space-between;
}
.library-brand{
  gap:12px;
}
.library-brand .brand-mark{
  background:transparent;
  border:1px solid rgba(35,74,64,.55);
  color:var(--forest);
}
.library-brand-copy{
  display:grid;
  gap:2px;
}
.library-brand-copy strong{
  font:400 16px/1.1 'Libre Baskerville',serif;
}
.library-brand-copy small,
.brand-byline{
  color:#778079;
  font:8px/1.2 'DM Sans',Arial,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.brand-byline{
  display:block;
  margin-top:3px;
  white-space:nowrap;
}
.landing-login{
  display:flex;
  align-items:center;
  gap:9px;
  letter-spacing:.02em;
}
.landing-main{
  min-height:0;
  display:grid;
  place-items:center start;
  padding:0 clamp(22px,9vw,138px);
}
.landing-statement{
  position:relative;
  padding-left:clamp(0px,3vw,44px);
}
.landing-statement::before{
  content:"";
  position:absolute;
  top:3px;
  bottom:3px;
  left:0;
  width:1px;
  background:linear-gradient(transparent,rgba(35,74,64,.55),transparent);
}
.landing-statement .eyebrow{
  margin-bottom:clamp(13px,2.4vh,23px);
}
.landing-statement h1{
  margin:0;
  color:#1d302a;
  font:400 clamp(46px,7vw,104px)/.96 'Libre Baskerville',serif;
  letter-spacing:-.06em;
}
.landing-line{
  margin:clamp(19px,3vh,32px) 0 0;
  color:#68746c;
  font-size:clamp(12px,1.15vw,16px);
  letter-spacing:.02em;
}
.landing footer{
  margin:0;
  padding:18px clamp(22px,5.4vw,82px) 22px;
}

@media(max-width:600px){
  .landing{
    background:
      radial-gradient(circle at 82% 38%,rgba(72,111,103,.14),transparent 32%),
      linear-gradient(154deg,#f7f6f1 0 72%,#e4e8df 72%);
  }
  .landing .site-header{
    min-height:64px;
  }
  .library-brand-copy strong{
    font-size:14px;
  }
  .landing-main{
    padding-bottom:3vh;
  }
  .landing-statement{
    padding-left:0;
  }
  .landing-statement::before{
    display:none;
  }
  .landing-statement h1{
    font-size:clamp(42px,14vw,70px);
  }
  .landing footer span:last-child{
    display:none;
  }
}

@media(max-width:900px){
  .sidebar .brand-byline{
    display:none;
  }
}

@media(max-height:560px){
  .landing .site-header{
    min-height:56px;
    padding-top:12px;
    padding-bottom:12px;
  }
  .landing-statement h1{
    font-size:clamp(38px,10vh,64px);
  }
  .landing footer{
    padding-top:10px;
    padding-bottom:12px;
  }
}

@media(max-width:1100px){
  .default-source-form{
    grid-template-columns:1fr 1fr;
  }
  .source-manager-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:700px){
  .settings-section{
    padding:13px;
  }
  .settings-section-header{
    align-items:stretch;
    flex-direction:column;
  }
  .managed-source-selector{
    min-width:0;
    width:100%;
  }
  .default-source-form{
    grid-template-columns:1fr;
  }
  .source-readout{
    grid-template-columns:1fr;
  }
  .source-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .source-actions button,
  .source-actions .destructive{
    width:100%;
    margin-left:0;
  }
}
