/* System-style presentation over the existing responsive application layout. */
:root {
  --ink:#1c1c1e; --muted:#6c6c70; --line:#e5e5ea; --bg:#f2f2f7;
  --teal:#007aff; --teal-light:#eaf3ff; --navy:#1c1c1e; --red:#ff3b30;
  --gain:#d72c23; --loss:#248a3d;
  --radius:18px; --shadow:none;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}

body { font-size:15px; }
.chart-ranges.segmented { display:flex; width:100%; gap:4px; padding:0; background:transparent; border:0; border-radius:0; }
.chart-ranges.segmented button { flex:1; min-width:44px; min-height:44px; padding:10px 8px; border:0; border-radius:24px; color:#8e8e93; background:transparent; box-shadow:none; font-size:14px; white-space:nowrap; }
.chart-ranges.segmented button.active { color:#007aff; background:#eaf2ff; box-shadow:none; font-weight:600; }
.chart-toolbar:has(.chart-ranges) { flex-direction:column; align-items:stretch; gap:16px; }
.legend-stroke.history { border-color:#ef9a25; }
.forecast-context { margin:14px 0 16px; padding:0; color:#6c6c70; font-size:12px; line-height:1.75; }
.forecast-context p { margin:5px 0; }
.forecast-context strong { color:#3a3a3c; font-weight:550; }
.zero-candidate-list { margin:10px 0; padding-left:18px; line-height:1.8; }
.zero-candidate-list li { margin:5px 0; }
.zero-candidate-list strong { font-weight:550; }
.chart-legend .legend-stroke:not(.dashed) { border-color:#ef9a25; }
@media(max-width:420px){.chart-ranges.segmented { gap:1px; }.chart-ranges.segmented button { font-size:12px; padding:10px 4px; }.chart-helper { line-height:1.8; }}
#startup-status[hidden] { display:none!important; }
h1 { font-size:32px; letter-spacing:-.7px; font-weight:700; }
h2 { font-size:19px; }
.number { letter-spacing:-.4px; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,svg:focus-visible { outline-color:#007aff; }
.sidebar { background:#e6edf5; border-color:#cdd8e6; }
.sidebar .brand { color:#213b59; }
.sidebar .brand-sub,.sidebar .nav-caption { color:#63758d; }
.sidebar .nav-link { color:#52647b; }
.sidebar .nav-link:hover { background:#dce6f2; color:#2b4b70; }
.sidebar .nav-link.active { background:#d1dff1; color:#075bb8; }
.sidebar .sidebar-note,.sidebar .sidebar-foot { color:#687b93; }
.brand { font-size:28px; padding-left:14px; }
.brand-sub { font-size:12px; letter-spacing:0; color:var(--muted); margin-top:5px; }
.nav-caption { font-size:12px; color:var(--muted); }
.nav-link { font-size:15px; color:#636366; gap:13px; }
.nav-link.active { background:#e5ecf8; color:#007aff; }
.nav-link.active:after { display:none; }
.sidebar-note,.sidebar-foot { font-size:11px; color:#8e8e93; }
.demo-control { font-size:12px; color:var(--muted); }
.local-dot { background:#34c759; box-shadow:none; }
.topbar { height:68px; background:#f2f2f7e8; border-bottom:0; }
.breadcrumb { color:#636366; font-size:13px; }
.private-label { color:#8e8e93; font-size:12px; }
.avatar { background:#e5e5ea; color:#636366; }
.icon-button,.text-link { color:#007aff; }
.text-link { font-size:13px; }
main { max-width:1400px; padding-top:24px; }
.page-heading { margin-bottom:24px; }
.page-heading p { font-size:14px; color:var(--muted); }
.date-pill { background:transparent; border:0; color:var(--muted); font-size:12px; }
.card,.metric-card { border:0; box-shadow:none; }
.card-head h2 { font-size:18px; }
.card-head p { font-size:12px; }
.card-head .text-link { font-size:12px; }
.pill { font-size:10px; border-radius:6px; background:#f2f2f7; color:#6c6c70; }
.pill.green { background:#eaf3ff; color:#0066cc; }
.pill.amber { background:#fff3dd; color:#946200; }
.hero-card { background:white; color:var(--ink); border:0; padding:26px; min-height:0; }
.hero-card:after { display:none; }
.hero-label { color:#3a3a3c; font-size:16px; font-weight:600; justify-content:space-between; }
.hero-label .pill { color:#636366; background:#f2f2f7; font-weight:400; }
.hero-number { color:#007aff; font-size:58px; font-weight:650; margin:12px 0 8px; }
.hero-number .currency { color:#007aff; font-size:30px; }
.hero-description { color:#6c6c70; font-size:14px; max-width:100%; line-height:1.7; }
.strategy-window { display:flex; gap:12px; justify-content:space-between; flex-wrap:wrap; margin-top:18px; font-size:12px; color:#6c6c70; }
.strategy-window strong { color:#3a3a3c; font-weight:500; }
.hero-bottom { color:#6c6c70; border-color:var(--line); margin-top:14px; padding-top:12px; font-size:12px; gap:12px; }
.hero-bottom strong { color:var(--ink); font-size:14px; }
.hero-bottom a { color:#007aff; }
.hero-bottom>span:nth-child(2) { display:none; }
.stat-label { color:#6c6c70; font-size:12px; }
.stat-sub { color:#8e8e93; font-size:11px; line-height:1.7; }
.stat-value { font-size:27px; font-weight:600; }
.positive { color:var(--gain); }
.negative { color:var(--loss); }
.confirmed-status { color:#007aff; }
.budget-amount { color:#3a3a3c; }
.forecast-direction-label.positive { fill:var(--gain); }
.forecast-direction-label.negative { fill:var(--loss); }
.asset-strip { height:5px; }
.legend-line,.asset-breakdown-caption,.allocation-note,.allocation-caption { font-size:11px; color:#8e8e93; }
.fund-name { font-size:14px; font-weight:550; color:#1c1c1e; }
.fund-code { font-size:11px; color:#8e8e93; }
.fund-icon { background:#f2f2f7; font-size:13px; }
.fund-row:hover { background:#f8f8fa; }
.fund-row-daily { min-height:116px; }
.daily-list-heading { font-size:11px; color:#8e8e93; }
.daily-values { font-size:13px; gap:8px; }
.daily-date,.daily-method { font-size:10px; color:#8e8e93; }
.fund-amount { font-size:15px; }
.fund-amount small { font-size:10px; }
.daily-disclosure { font-size:11px; color:#8e8e93; }
.verified-label { color:#248a3d; background:#edf8ef; padding:2px 5px; border-radius:4px; font-size:10px; }
.estimate-label { font-size:9px; }
.reason-panel,.notice.neutral { background:#f7f7fa; border-color:#ededf2; color:#6c6c70; font-size:12px; }
.reason-panel summary { color:#3a3a3c; }
.notice { font-size:12px; }
.allocation-top,.allocation-top strong { font-size:13px; }
.allocation-top small { font-size:11px; }
.bar-track { background:#f2f2f7; }
.action-button { background:#f2f2f7; border:0; font-size:12px; color:#3a3a3c; }
.action-button svg { color:#007aff; }
.primary { background:#007aff; border:0; font-size:14px; }
.primary:hover { background:#0064d5; }
.secondary { border-color:#e5e5ea; color:#007aff; font-size:14px; background:white; }
.budget-row,.source-item strong { font-size:12px; }
.budget-row strong { color:#3a3a3c; }
.source-item p { font-size:11px; color:#8e8e93; }
.source-item .pill { font-size:9px; }
.page-footer { font-size:10px; color:#8e8e93; }
.empty { font-size:13px; color:#8e8e93; }
.empty strong { font-size:14px; color:#636366; }
.empty-symbol { display:none; }
.transaction-title { font-size:14px; }
.transaction-meta,.cashflow p { font-size:11px; }
.transaction-actions button { font-size:12px; color:#007aff; }
.settings-list h3 { font-size:15px; }
.settings-list p { font-size:12px; color:#8e8e93; }
.rule-item { font-size:12px; color:#6c6c70; background:#f2f2f7; }
.rule-item strong { color:#1c1c1e; }
.holdings-table { font-size:13px; }
.holdings-table th { font-size:11px; color:#8e8e93; }
.detail-heading h1 { font-size:26px; }
.back-button { color:#007aff; border:0; background:transparent; font-size:30px; }
.detail-metrics strong { font-variant-numeric:tabular-nums; }
.chart-toolbar { flex-wrap:wrap; }
.chart-card { margin-top:20px; }
.segmented { background:#ededf2; padding:3px; border-radius:9px; }
.segmented button { font-size:12px; color:#636366; }
.segmented button.active { color:#1c1c1e; box-shadow:0 1px 4px #0002; }
.chart-legend { font-size:12px; color:#6c6c70; flex-wrap:wrap; gap:12px; }
.legend-stroke.dashed { border-color:#007aff; border-width:3px; }
.chart-helper { font-size:11px; color:#8e8e93; }
.forecast-top h3 { font-size:16px; }
.forecast-top p,.forecast-range-note,.forecast-range-footnote { font-size:12px; color:#6c6c70; }
.forecast-range-date { font-size:10px; }
.forecast-ranges-table td:first-child strong { font-size:12px; color:#007aff; }
.forecast-date { font-size:11px; background:#edf4ff; color:#0066cc; }
.validation-grid div { font-size:11px; background:#f7f7fa; color:#6c6c70; }
.validation-grid strong { color:#3a3a3c; font-size:17px; }
.method-details { font-size:12px; color:#6c6c70; }
.method-details summary { color:#007aff; }
.chart-tooltip { border-color:#e5e5ea; box-shadow:0 5px 24px #0002; font-size:12px; width:260px; }
.chart-tooltip strong { color:#1c1c1e; font-size:13px; }
.chart-tooltip dd { color:#3a3a3c; }
.modal { border:0; border-radius:20px; }
.modal-header .eyebrow { display:none; }
.modal-header h2 { font-size:23px; }
.field { font-size:13px; color:#636366; }
.field input,.field select,.field textarea,.reconcile-fund .field input { font-size:16px; min-height:48px; border-color:#d1d1d6; border-radius:10px; }
.form-note { font-size:13px; color:#6c6c70; }
.reconcile-fund h3 { font-size:15px; }
.reconcile-fund .field { font-size:12px; }
.reconcile-check { font-size:12px; }
.strategy-model { border-top:1px solid var(--line); margin-top:20px; padding-top:8px; font-size:13px; color:#636366; }
.strategy-model summary { min-height:44px; display:flex; align-items:center; cursor:pointer; color:#007aff; }
.strategy-model p { margin:12px 0; line-height:1.8; }
.model-inputs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:12px 0; }
.model-inputs span { display:block; font-size:11px; }
.model-inputs strong { display:block; color:#1c1c1e; font-size:16px; margin-top:4px; font-variant-numeric:tabular-nums; }
.report-comparison { background:white; border-radius:14px; padding:18px 22px; margin:0 0 22px; font-size:13px; color:#6c6c70; }
.report-comparison>div { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.report-comparison strong { color:#3a3a3c; font-weight:500; }
.report-comparison dl { display:grid; grid-template-columns:auto 1fr auto 1fr auto 1fr; gap:6px 12px; margin:10px 0; }
.report-comparison dd { margin:0; color:#1c1c1e; font-variant-numeric:tabular-nums; }
.report-comparison p { line-height:1.8; font-size:12px; }
@media(max-width:1180px) and (min-width:701px) {
  .fund-row-daily .fund-name { font-size:13px; }
  .daily-values { font-size:12px; }
  .hero-number { font-size:52px; }
}
@media(max-width:700px) {
  body { font-size:15px; }
  main { padding:12px 16px 24px; }
  .topbar { height:58px; padding:0 16px; }
  .mobile-brand { font-size:20px; letter-spacing:-.5px; }
  .mobile-demo { font-size:12px; color:#007aff; }
  .page-heading h1 { font-size:32px; }
  .page-heading p { font-size:13px; }
  .date-pill { font-size:11px; padding:8px 0; }
  .card { padding:21px 18px; border-radius:18px; }
  .hero-number { font-size:56px; margin:12px 0; }
  .hero-description { font-size:13px; }
  .hero-bottom { font-size:12px; margin-top:12px; }
  .hero-bottom strong { font-size:13px; }
  .strategy-window { font-size:11px; gap:8px; }
  .card-head h2 { font-size:17px; }
  .card-head p { font-size:11px; }
  .overview-daily .stat-label { font-size:11px; }
  .overview-daily .stat-value { font-size:24px; }
  .overview-daily .stat-sub { font-size:10px; }
  .fund-row-daily { min-height:135px; padding:17px 0; }
  .fund-row-daily .fund-name { font-size:14px; }
  .fund-row-daily .fund-code { font-size:10px; }
  .fund-row-daily .daily-values { font-size:14px; }
  .fund-row-daily .daily-value-label { font-size:10px; color:#8e8e93; }
  .fund-row-daily .daily-date,.fund-row-daily .daily-method { font-size:10px; }
  .fund-row-daily>.pill { font-size:9px; }
  .bottom-nav { background:#f9f9f9ed; border-color:#d1d1d6; }
  .bottom-nav .nav-link { font-size:10px; color:#8e8e93; }
  .bottom-nav .nav-link.active { color:#007aff; }
  .settings-list .secondary { font-size:13px; }
  .settings-list p { font-size:12px; }
  .form-grid,.reconcile-fund .form-grid { grid-template-columns:1fr; }
  .field,.reconcile-fund .field { font-size:13px; }
  .field input,.field select,.reconcile-fund .field input { font-size:16px; }
  .modal { padding:21px; }
  .form-actions { position:sticky; bottom:-21px; background:white; padding:14px 0; }
  .detail-heading h1 { font-size:21px; }
  .detail-metrics strong { font-size:25px; }
  .detail-metrics .stat-sub { font-size:11px; }
  .chart-card { padding:21px 12px; }
  .chart-card .card-head { padding:0 6px; }
  .chart-toolbar { gap:15px; }
  .chart-legend { font-size:11px; padding:0 4px; gap:10px; }
  .segmented button { font-size:12px; padding:5px 8px; }
  .chart-tooltip { width:245px; max-height:250px; font-size:11px; }
  .chart-tooltip strong { font-size:12px; }
  .chart-tooltip dl { grid-template-columns:75px 1fr; }
  .chart-helper { font-size:10px; line-height:1.8; }
  .forecast-top h3 { font-size:15px; }
  .forecast-top p,.forecast-range-note,.forecast-range-footnote { font-size:11px; }
  .forecast-ranges-table { min-width:280px; }
  .forecast-ranges-table td { font-size:11px; padding-left:5px; padding-right:5px; }
  .validation-grid div { font-size:10px; }
  .model-inputs { grid-template-columns:1fr 1fr; }
  .report-comparison { padding:16px; }
  .report-comparison>div { flex-wrap:wrap; }
  .report-comparison dl { grid-template-columns:1fr 1fr; }
}

/* 2026-10-28: quiet portfolio hierarchy and one-entry action sheets. */
:root { --bg:#f5f5f7; --radius:16px; --muted:#73737a; }
body { color:#202124; }
.topbar { background:transparent; height:64px; }
.topbar-right { gap:14px; }
.profile-menu { display:grid; width:44px; height:44px; min-width:44px; border:0; background:#e9e9ee; font-size:15px; font-weight:600; }
.demo-control { display:none; }
.sidebar-foot { margin-top:auto; }
main { max-width:1360px; padding:22px 32px 32px; }
.page-heading { margin-bottom:22px; }
.page-heading h1 { font-size:30px; letter-spacing:-.5px; }
.page-heading p { font-size:12px; color:#87878d; margin-top:4px; }
.card { padding:24px; border-radius:16px; }
.card-head { margin-bottom:16px; min-height:36px; }
.card-head h2 { font-size:17px; letter-spacing:0; font-weight:600; }
.more-button { border:0; background:transparent; color:#7c7c83; min-width:44px; min-height:44px; border-radius:50%; font-size:26px; line-height:1; display:inline-grid; place-items:center; padding:0; flex:none; }
.more-button:hover { background:#f0f0f4; color:#007aff; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.today-overview { margin-bottom:24px; padding:26px 28px 16px; }
.today-overview-header { display:flex; justify-content:space-between; align-items:center; gap:12px; color:#616168; font-size:13px; }
.quote-time { font-size:11px; color:#909097; font-variant-numeric:tabular-nums; }
.today-total { display:flex; gap:16px; align-items:baseline; margin-top:10px; }
.today-total>strong { font-size:42px; font-weight:650; line-height:1.4; letter-spacing:-1px; }
.today-total>span { font-size:21px; font-weight:550; }
.today-caption { color:#929299; font-size:11px; margin-top:4px; line-height:1.7; }
.portfolio-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:22px 0 12px; }
.portfolio-strip>div>span { display:block; color:#8b8b93; font-size:11px; }
.portfolio-strip strong { display:block; font-size:20px; font-weight:550; margin-top:5px; }
.estimate-explanation { border-top:1px solid #f0f0f3; margin-top:8px; color:#7e7e85; font-size:12px; }
.estimate-explanation>summary { min-height:36px; display:flex; align-items:center; cursor:pointer; font-size:11px; color:#9999a0; gap:6px; width:fit-content; }
.estimate-explanation>summary:after { content:'⌄'; }
.estimate-explanation[open]>summary:after { content:'⌃'; }
.estimate-explanation p { line-height:1.9; padding-bottom:10px; }
.estimate-source { display:flex; justify-content:space-between; gap:12px; font-size:11px; margin:10px 0; }
.estimate-source strong { font-weight:500; color:#5f5f67; }
.estimate-source a { color:#007aff; }
.estimate-source { flex-wrap:wrap; }
.estimate-source .previous-official { width:100%; color:#9999a0; margin-top:-6px; }
.dashboard-grid { grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr); gap:24px; }
.main-column,.side-column { gap:24px; }
.hero-card { padding:24px; min-height:0; }
.hero-label { font-size:15px; color:#65656b; display:flex; justify-content:space-between; }
.hero-number { font-size:44px; line-height:1.3; margin:0 0 12px; color:#202124; }
.hero-number .currency { font-size:26px; color:#202124; }
.strategy-window { margin:10px 0 0; font-size:11px; color:#929299; gap:8px; }
.strategy-window strong { color:#7c7c83; }
.strategy-note { border-top:1px solid #f0f0f3; margin-top:16px; font-size:12px; color:#77777e; }
.strategy-note>summary,.secondary-details>summary { cursor:pointer; min-height:44px; display:flex; align-items:center; justify-content:space-between; list-style:none; }
.strategy-note>summary:after,.secondary-details>summary:after { content:'⌄'; color:#aaaab0; }
.strategy-note[open]>summary:after,.secondary-details[open]>summary:after { content:'⌃'; }
.strategy-note .hero-description { font-size:12px; }
.strategy-model { font-size:12px; }
.fund-row-daily,.daily-list-heading { grid-template-columns:minmax(0,1fr) 140px 72px 8px; gap:12px; }
.fund-row-daily { min-height:96px; padding:16px 0; }
.fund-row-daily .fund-name { font-size:14px; }
.fund-row-daily .fund-icon { width:32px; height:34px; border-radius:10px; }
.daily-list-heading { color:#a0a0a6; font-size:10px; }
.daily-values { font-size:14px; gap:10px; }
.daily-values strong { font-weight:550; }
.daily-date { color:#96969d; font-size:10px; margin-top:5px; }
.daily-unavailable { display:block; color:#9c9ca3; font-size:10px; white-space:normal; max-width:190px; }
.fund-amount { font-size:14px; color:#46464d; }
.fund-amount small { color:#9b9ba3; font-size:10px; }
.fund-row .chevron { font-size:18px; color:#c4c4c9; }
.notice,.notice.neutral { background:transparent; border:0; border-radius:0; padding:12px 0 0; color:#8b8b93; font-size:11px; line-height:1.9; }
.allocation-top small { color:#a0a0a6; font-size:10px; font-weight:400; }
.allocation-row { margin:17px 0; }
.bar-track { height:4px; }
.allocation-note,.allocation-caption { font-size:10px; }
.secondary-details { font-size:12px; color:#76767d; }
.secondary-details>summary { color:#7b7b83; }
.secondary-details p { margin:8px 0; line-height:1.9; }
.data-fold { padding:0 4px; }
.cash-summary strong { font-size:24px; font-weight:550; }
.cash-summary .muted { font-size:11px; }
.empty { padding:18px 8px; }
.empty strong { color:#9b9ba2; font-size:13px; font-weight:400; }
.empty p { font-size:11px; color:#a0a0a6; margin-top:6px; }
.portfolio-table { width:100%; min-width:0; }
.portfolio-table th { color:#9999a0; font-size:11px; font-weight:400; padding:8px 8px 16px; }
.portfolio-table td { padding:20px 8px; font-size:14px; border-color:#f0f0f3; }
.portfolio-table td:first-child,.portfolio-table th:first-child { padding-left:0; }
.portfolio-table td:last-child,.portfolio-table th:last-child { padding-right:0; }
.portfolio-table .fund-title { min-width:0; gap:12px; }
.portfolio-table .fund-icon { width:34px; height:36px; }
.portfolio-table .fund-name { font-size:15px; }
.portfolio-table .fund-code { font-size:10px; margin-top:5px; }
.holding-value small { display:block; color:#a0a0a6; font-size:10px; margin-top:5px; letter-spacing:0; }
.holding-actions { width:44px; }
.holding-daily-performance { min-width:150px; }
.holding-daily-performance .daily-values { flex-wrap:wrap; }
.holdings-secondary { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding:8px 10px; }
.mobile-cell-label { display:none; }
.modal:has(.action-sheet) { width:420px; max-width:calc(100vw - 32px); padding:20px 22px 12px; }
.modal:has(.action-sheet) .modal-header { margin-bottom:8px; }
.modal:has(.action-sheet) h2 { font-size:21px; }
.action-sheet>button { display:flex; justify-content:space-between; align-items:center; text-align:left; width:100%; min-height:66px; background:white; border:0; border-bottom:1px solid #f0f0f3; padding:12px 2px; font-size:15px; color:#292930; }
.action-sheet>button:last-child { border-bottom:0; }
.action-sheet>button:hover { background:#f7f7fa; }
.action-sheet small { display:block; font-size:11px; color:#93939b; margin-top:4px; font-weight:400; }
.action-sheet .chevron { color:#c5c5ca; font-size:20px; }
.action-sheet-note { font-size:12px; color:#9999a0; padding:0 0 10px; }
.push-settings .form-note { margin:12px 0; }
.push-summary { display:flex; justify-content:space-between; gap:12px; padding:18px 0; border-bottom:1px solid var(--line); font-size:13px; }
.push-summary span { font-size:11px; color:var(--muted); }
.push-settings .button-row { flex-wrap:wrap; margin:18px 0; }
.push-settings h3 { font-size:15px; margin-top:24px; }
.push-log-item { padding:16px 0; border-bottom:1px solid var(--line); }
.push-log-item strong { display:block; font-size:13px; }
.push-log-item>span,.push-log-item p { font-size:11px; color:var(--muted); line-height:1.8; margin-top:5px; }
.cloud-login { width:min(440px,100%); margin:8vh auto 0; padding:20px; }
.cloud-login h1 { margin:14px 0 4px; }
.cloud-login .form-note { margin:10px 0 24px; font-size:12px; }
.cloud-login .field { margin-bottom:18px; }
.cloud-login form+p { margin:20px 0 0; color:#9999a0; }
.verified-label { color:#77777e; background:transparent; }
.detail-heading .button-row { margin:0; }
@media(max-width:1100px) {
  .dashboard-grid { grid-template-columns:1fr; }
  .side-column { display:grid; grid-template-columns:1fr 1fr; align-items:start; }
  .side-column>.card:first-child { grid-row:auto; }
}
@media(max-width:700px) {
  main { padding:10px 16px 24px; }
  .topbar { height:56px; padding:0 16px; }
  .topbar .mobile-brand { font-size:18px; }
  .profile-menu { display:grid; width:40px; height:40px; min-width:44px; min-height:44px; background:#eaeaef; font-size:14px; }
  .page-heading { margin-bottom:16px; align-items:center; }
  .page-heading h1 { font-size:29px; }
  .page-heading p { font-size:11px; }
  .date-pill { display:none; }
  .card { padding:20px 16px; border-radius:16px; }
  .card-head { margin-bottom:6px; }
  .today-overview { margin-bottom:18px; padding:20px 20px 10px; }
  .today-overview-header { font-size:12px; }
  .quote-time { font-size:10px; }
  .today-total { gap:10px; margin-top:9px; }
  .today-total>strong { font-size:35px; }
  .today-total>span { font-size:17px; }
  .today-caption { font-size:10px; margin-top:4px; }
  .portfolio-strip { gap:10px; padding:18px 0 8px; }
  .portfolio-strip>div>span { font-size:10px; }
  .portfolio-strip strong { font-size:16px; letter-spacing:-.4px; }
  .estimate-explanation>summary { font-size:10px; min-height:34px; }
  .estimate-source { display:block; }
  .estimate-source>span { display:block; margin-top:4px; }
  .dashboard-grid,.main-column,.side-column { display:flex; flex-direction:column; gap:18px; }
  .side-column>.card { width:100%; }
  .fund-row-daily { grid-template-columns:minmax(0,1fr) 92px 58px 8px; grid-template-rows:auto; gap:8px; min-height:98px; padding:16px 0; }
  .fund-row-daily>.fund-title { grid-column:1; grid-row:1; }
  .fund-row-daily>.fund-performance { grid-column:2; grid-row:1; text-align:right; }
  .fund-row-daily>.fund-amount { grid-column:3; grid-row:1; align-self:center; }
  .fund-row-daily>.chevron { grid-column:4; grid-row:1; }
  .fund-row-daily .fund-title { gap:8px; }
  .fund-row-daily .fund-icon { display:none; }
  .fund-row-daily .fund-name { font-size:13px; }
  .fund-row-daily .fund-code { font-size:9px; }
  .fund-row-daily .daily-values { flex-direction:column; align-items:flex-end; justify-content:flex-end; gap:1px; font-size:14px; }
  .fund-row-daily .daily-amount { margin:0; font-size:11px; }
  .fund-row-daily .daily-date { font-size:9px; margin-top:4px; }
  .fund-amount { font-size:13px; }
  .daily-unavailable { font-size:9px; }
  .hero-card { padding:20px; }
  .hero-number { font-size:40px; margin:0 0 12px; }
  .hero-number .currency { font-size:24px; }
  .holdings-secondary { grid-template-columns:1fr; gap:4px; padding:8px; }
  .portfolio-table,.portfolio-table tbody { display:block; }
  .portfolio-table thead { display:none; }
  .portfolio-table tr { display:grid; grid-template-columns:minmax(0,1fr) 110px 32px; grid-template-rows:auto auto; gap:5px 6px; padding:18px 0; border-bottom:1px solid #f0f0f3; }
  .portfolio-table tr:last-child { border-bottom:0; }
  .portfolio-table td { display:block; padding:0; border:0; min-width:0; }
  .portfolio-table .holding-name { grid-column:1; grid-row:1; align-self:center; }
  .portfolio-table .holding-value { grid-column:1; grid-row:2; padding-left:0; font-size:11px; color:#7f7f87; }
  .holding-value small { display:none; }
  .portfolio-table .holding-pnl { grid-column:2; grid-row:2; font-size:11px; text-align:right; }
  .portfolio-table .holding-daily-performance { grid-column:2; grid-row:1; min-width:0; text-align:right; }
  .holding-daily-performance .daily-values { display:flex; flex-direction:column; gap:0; align-items:flex-end; }
  .holding-daily-performance .daily-return { font-size:17px; }
  .holding-daily-performance .daily-amount { font-size:11px; }
  .holding-daily-performance .daily-date { font-size:9px; margin-top:3px; }
  .portfolio-table .holding-actions { grid-column:3; grid-row:1/3; width:32px; align-self:center; }
  .holding-actions .more-button { min-width:44px; margin-left:-6px; }
  .portfolio-table .fund-name { font-size:14px; }
  .portfolio-table .fund-code { font-size:10px; }
  .portfolio-table .fund-title { gap:0; }
  .portfolio-table .fund-icon { display:none; }
  .mobile-cell-label { display:inline; color:#a0a0a6; font-size:10px; }
  .portfolio-table .holding-pnl .mobile-cell-label { color:#a0a0a6; }
  .table-scroll:has(.portfolio-table) { overflow:visible; }
  .modal:has(.action-sheet) { margin:auto auto max(14px,env(safe-area-inset-bottom)); width:calc(100vw - 20px); max-width:440px; padding:18px 22px 12px; border-radius:22px; max-height:calc(100dvh - 32px); }
  .action-sheet>button { min-height:64px; }
  .data-fold { width:100%; }
  .dashboard-grid>.main-column,.dashboard-grid>.side-column { display:contents; }
  .dashboard-grid .hero-card { order:-1; }
  .portfolio-table .holding-value { text-align:left; }
}
/* Personal P&L calendar: shared iOS colours, quiet cells, seven real weekdays. */
.skip-link:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0;top:0}
.pnl-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,1fr);gap:24px;align-items:start}
.pnl-card,.pnl-detail{min-width:0}
.pnl-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 0 24px}
.pnl-summary strong{display:block;font-size:36px;line-height:1.4;font-weight:650}
.pnl-summary small{display:block;color:#8e8e93;font-size:12px;margin-top:3px}
.pnl-counts{display:grid;gap:8px;color:#8e8e93;font-size:12px;white-space:nowrap}
.pnl-counts b{font-size:15px;font-weight:550}
.pnl-toolbar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f0f0f3;padding:12px 0}
.pnl-toolbar .icon-button{font-size:27px;min-width:44px;min-height:44px}
.pnl-toolbar button:disabled{cursor:default}
.pnl-month{position:relative;font-size:18px;font-weight:600;padding:10px}
.pnl-month input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.pnl-month:focus-within{outline:2px solid #007aff;border-radius:10px}
.pnl-weekdays,.pnl-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.pnl-weekdays{text-align:center;color:#8e8e93;font-size:12px;padding-bottom:12px}
.pnl-grid{gap:3px}
.pnl-day{position:relative;border:0;border-radius:9px;min-width:0;min-height:83px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:10px 1px;background:#f7f8fa;color:#8e8e93}
.pnl-day.recorded.positive{background:#fff0f0;color:var(--gain)}
.pnl-day.recorded.negative{background:#eaf6ee;color:var(--loss)}
.pnl-day.partial{background:#f1f4f9}
.pnl-day.future{background:transparent;color:#b4b4ba}
.pnl-day.selected{box-shadow:inset 0 0 0 2px #007aff}
.pnl-day[aria-current=date] .pnl-day-number{color:#007aff;font-weight:650}
.pnl-day-number{font-size:14px;color:#8e8e93}
.pnl-day-amount{font-size:12px;font-variant-numeric:tabular-nums;font-weight:550;white-space:nowrap;letter-spacing:-.35px}
.pnl-day.empty .pnl-day-amount,.pnl-day.partial .pnl-day-amount{font-size:10px;font-weight:400;color:#a0a0a6}
.pnl-padding{visibility:hidden}
.pnl-caption{font-size:11px;color:#a0a0a6;margin-top:15px}
.pnl-detail .card-head{gap:12px;align-items:center}
.pnl-detail .card-head h2{font-size:16px}
.pnl-detail .card-head h2 span{font-weight:400;color:#8e8e93;font-size:12px}
.pnl-detail .card-head>strong{font-size:24px;white-space:nowrap}
.pnl-detail-list{list-style:none;margin:0;padding:0}
.pnl-detail-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid #f2f2f7}
.pnl-detail-list li:last-child{border:0}
.pnl-detail-list strong{display:block;font-size:14px;font-weight:550}
.pnl-detail-list small{display:block;font-size:11px;color:#8e8e93;line-height:1.6;margin-top:4px}
.pnl-detail-list .number{font-size:17px;white-space:nowrap}
.pnl-partial{font-size:12px;color:#8e8e93;margin:0 0 10px}
@media(max-width:1050px){.pnl-layout{grid-template-columns:minmax(0,1fr)}.pnl-detail{max-width:none}}
@media(max-width:700px){.bottom-nav .nav-link{flex:1;min-width:0}.pnl-layout{gap:16px}.pnl-card,.pnl-detail{padding:20px 14px}.pnl-summary{padding:0 4px 20px}.pnl-summary strong{font-size:32px}.pnl-summary small{font-size:10px}.pnl-counts{font-size:10px;gap:5px}.pnl-month{font-size:16px}.pnl-day{min-height:70px;border-radius:7px;padding:8px 0}.pnl-day-number{font-size:12px}.pnl-day-amount{font-size:10px;letter-spacing:-.6px}.pnl-day.empty .pnl-day-amount,.pnl-day.partial .pnl-day-amount{font-size:9px}.pnl-grid{gap:2px}.pnl-caption{font-size:10px}.pnl-detail .card-head>strong{font-size:22px}}
