/* Dashboard rebuilt from the approved navy, blue and orange direction. */
.fi-page-content:has(>.bo2-dashboard){grid-template-columns:minmax(0,1fr)!important;justify-items:stretch!important}
.bo2-dashboard{width:100%;max-width:1500px;min-width:0;margin-inline:auto;color:var(--bo-ink);font-family:var(--bo-font)}
.bo2-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:.3rem 0 1.3rem}
.bo2-overline{display:inline-flex;align-items:center;gap:.55rem;color:var(--bo-blue);font-size:.76rem;font-weight:800}.bo2-overline i{width:3px;height:3px;border-radius:50%;background:var(--bo-orange)}
.bo2-header h1{margin:.3rem 0 .1rem;font-size:clamp(2rem,3vw,2.85rem);line-height:1.2;color:var(--bo-ink);font-weight:900}.bo2-header p{margin:0;color:var(--bo-muted);font-size:.88rem}.bo2-live-mark{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .7rem;border:1px solid var(--bo-line);border-radius:99px;background:var(--bo-surface);color:var(--bo-muted);font-size:.72rem;font-weight:700;white-space:nowrap}.bo2-live-mark i{width:.45rem;height:.45rem;border-radius:50%;background:var(--bo-green)}
.bo2-filter{display:grid;grid-template-columns:minmax(235px,.67fr) minmax(0,1.33fr);align-items:center;gap:1.4rem;margin-bottom:1.25rem;padding:.9rem 1.1rem;background:var(--bo-surface);border:1px solid var(--bo-line);border-radius:var(--bo-radius-md);box-shadow:var(--bo-shadow)}.bo2-filter-copy{display:flex;align-items:center;gap:.8rem}.bo2-filter-copy strong,.bo2-filter-copy small{display:block}.bo2-filter-copy strong{font-size:.86rem;font-weight:850}.bo2-filter-copy small{color:var(--bo-muted);font-size:.73rem;line-height:1.5}.bo2-filter-symbol{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex:none;border-radius:.65rem;background:#e8f1fb;color:var(--bo-blue);font-size:1.35rem;line-height:1}.bo2-filter-form{min-width:0}.bo2-filter-form .fi-sc{background:transparent!important;border:0!important;box-shadow:none!important}.bo2-filter-form .fi-fo-field-wrp-label{font-size:.75rem}
.bo2-content{display:grid;gap:1.65rem}.bo2-progress{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,32%);overflow:hidden;min-height:232px;border:1px solid #cbdcef;border-radius:1rem;background:linear-gradient(115deg,#fff,#edf5fe);box-shadow:0 12px 30px #123e7210}.bo2-progress-info{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:1.35rem 1.7rem 1.15rem}.bo2-progress-top{display:flex;justify-content:space-between;align-items:center;gap:.6rem;color:var(--bo-blue);font-size:.75rem;font-weight:850}.bo2-progress-scope{color:var(--bo-muted);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bo2-progress-number{display:flex;align-items:center;gap:1.4rem;margin:.85rem 0}.bo2-progress-number>strong{color:var(--bo-navy);font-size:clamp(3.2rem,5vw,5.15rem);line-height:1;font-weight:900;letter-spacing:-.055em}.bo2-progress-number>strong small{font-size:.48em;letter-spacing:0}.bo2-progress-number h2{margin:0;color:var(--bo-ink);font-size:1.2rem;font-weight:850}.bo2-progress-number p{max-width:21rem;margin:.2rem 0 0;color:var(--bo-muted);font-size:.76rem;line-height:1.6}.bo2-progress-track{height:.55rem;overflow:hidden;border-radius:99px;background:#d9e6f5}.bo2-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--bo-blue),#4e90df)}.bo2-progress-foot{display:flex;justify-content:space-between;gap:.5rem;margin-top:.55rem;color:var(--bo-muted);font-size:.72rem;font-weight:700}.bo2-progress-empty{margin:.65rem 0 0;color:var(--bo-muted);font-size:.72rem}.bo2-progress-art{display:flex;align-items:end;justify-content:end;padding:1.25rem;color:#fff;background:linear-gradient(0deg,#071d3bbb,#071d3b08 65%),url('../ui-brand-ops/camp-landscape.png') center/cover}.bo2-progress-art span{font-size:.85rem;font-weight:850;text-shadow:0 2px 8px #0018}
.bo2-section{display:grid;gap:.85rem}.bo2-section-heading{display:flex;align-items:end;justify-content:space-between;gap:.7rem}.bo2-section-index{color:var(--bo-orange);font-size:.72rem;font-weight:900}.bo2-section-heading h2{margin:.06rem 0;color:var(--bo-ink);font-size:1.32rem;font-weight:900}.bo2-section-heading p{margin:0 0 .2rem;color:var(--bo-muted);font-size:.75rem}
.bo2-today-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.bo2-today-card{display:flex;flex-direction:column;min-height:150px;padding:1rem 1.15rem;background:var(--bo-surface);border:1px solid var(--bo-line);border-radius:var(--bo-radius-md);box-shadow:var(--bo-shadow)}.bo2-card-top{display:flex;justify-content:space-between;align-items:center}.bo2-card-icon,.bo2-total-icon{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:.6rem;background:#eaf2fd;color:var(--bo-blue)}.bo2-card-icon svg,.bo2-total-icon svg{width:1.1rem;height:1.1rem}.bo2-card-marker{height:3px;width:22px;border-radius:10px;background:var(--bo-blue)}.bo2-today-card strong{display:block;margin:.55rem 0 .1rem;color:var(--bo-navy);font-size:2.2rem;line-height:1;font-weight:900}.bo2-card-label{color:var(--bo-muted);font-size:.78rem;font-weight:750}.bo2-alert-card{border-color:#f3d7c4;background:linear-gradient(130deg,#fff,#fff7f0)}.bo2-alert-card .bo2-card-icon{background:#ffebdc;color:var(--bo-orange)}.bo2-alert-card .bo2-card-marker{background:var(--bo-orange)}.bo2-alert-card strong{color:#d56219}
.bo2-total-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
html.dark .bo2-filter-symbol,html.dark .bo2-card-icon,html.dark .bo2-total-icon{background:#1b4168}html.dark .bo2-progress{background:linear-gradient(115deg,#102944,#142f4d);border-color:var(--bo-line)}html.dark .bo2-progress-number>strong,html.dark .bo2-today-card strong{color:#e7f0fa}html.dark .bo2-progress-track{background:#2b4b6c}html.dark .bo2-alert-card{background:linear-gradient(130deg,#3b2a24,#302a2a);border-color:#6b4736}html.dark .bo2-alert-card strong{color:#ffaf76}
@media(max-width:1000px){.bo2-filter{grid-template-columns:1fr}.bo2-progress{grid-template-columns:minmax(0,1fr) 30%}.bo2-progress-info{padding:1.2rem}}
@media(max-width:700px){.bo2-dashboard{padding-top:.75rem}.bo2-header{align-items:start;flex-direction:column}.bo2-filter{gap:.75rem}.bo2-progress{grid-template-columns:1fr}.bo2-progress-art{grid-row:1;min-height:150px}.bo2-progress-info{padding:1.1rem}.bo2-progress-number>strong{font-size:3.7rem}.bo2-today-grid,.bo2-total-grid{grid-template-columns:1fr}.bo2-today-card{min-height:115px}}
@media(max-width:420px){.bo2-today-grid,.bo2-total-grid{gap:.5rem}.bo2-today-card{padding:.8rem;min-height:112px}.bo2-today-card strong{font-size:1.85rem}}

/* A single page heading and a compact scope control replace the duplicate title. */
.bo2-header{margin:0 0 .95rem;align-items:flex-start}
.bo2-overline{color:var(--bo-muted);font-size:.78rem}
.bo2-header h1{margin:.18rem 0 .15rem}
.bo2-filter{grid-template-columns:minmax(185px,245px) minmax(0,1fr);gap:1rem;align-items:center;margin-bottom:1.2rem;padding:.8rem 1rem}
.bo2-filter-copy{gap:.7rem}
.bo2-filter-copy h2{margin:0;color:var(--bo-ink);font-size:.91rem;font-weight:850;line-height:1.45}
.bo2-filter-copy p{margin:.15rem 0 0;color:var(--bo-muted);font-size:.72rem;line-height:1.5}
.bo2-filter-symbol{width:2.25rem;height:2.25rem;font-size:inherit}
.bo2-filter-symbol .fi-icon{width:1.2rem;height:1.2rem}
@media(max-width:900px){.bo2-filter{grid-template-columns:1fr;gap:.7rem}}

/* Keep the summary and date on one compact row at desktop widths. */
.bo2-header{align-items:center;gap:1.5rem;margin:0 0 .75rem}
.bo2-header-copy{min-width:0}
.bo2-header h1{margin:0 0 .15rem;font-size:clamp(1.85rem,2.4vw,2.35rem);line-height:1.16}
.bo2-header p{line-height:1.45}
.bo2-header .bo2-overline{flex:none;white-space:nowrap;font-weight:700}
@media(max-width:700px){.bo2-header{align-items:flex-start;gap:.35rem}.bo2-header .bo2-overline{white-space:normal}}

/* Six summary cards lead into an operations chart and the existing gallery. */
.bo2-content{gap:.65rem}
.bo2-section-heading{align-items:center}
.bo2-section-heading h2{font-size:1rem;line-height:1.4}
.bo2-total-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:.65rem}
.bo2-total-grid .bo2-today-card{min-height:132px;height:100%}
.bo2-analytics{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,1fr);gap:1rem;align-items:stretch;margin-bottom:.6rem}
.bo2-chart{display:flex;flex-direction:column;min-width:0;min-height:410px;padding:1.15rem 1.25rem 1.05rem;border:1px solid var(--bo-line);border-radius:var(--bo-radius-md);background:var(--bo-surface);box-shadow:var(--bo-shadow)}
.bo2-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.bo2-chart-head h2{margin:0;color:var(--bo-ink);font-size:1.1rem;font-weight:900}
.bo2-chart-head p{margin:.3rem 0 0;color:var(--bo-muted);font-size:.75rem;line-height:1.45}
.bo2-chart-total{display:flex;flex-direction:column;align-items:flex-end;flex:none;color:var(--bo-muted);font-size:.7rem;line-height:1.3}
.bo2-chart-total strong{color:var(--bo-orange);font-size:1.55rem;font-weight:900;line-height:1}
.bo2-chart-bars{display:flex;align-items:stretch;justify-content:space-around;gap:.6rem;min-height:0;flex:1;margin:1.2rem 0 0;padding:0;list-style:none}
.bo2-chart-item{display:flex;flex:1;min-width:0;flex-direction:column;align-items:stretch;text-align:center}
.bo2-chart-column{position:relative;min-height:220px;flex:1;border-bottom:1px solid var(--bo-line);background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),var(--bo-line) calc(25% - 1px),var(--bo-line) 25%)}
.bo2-chart-bar{position:absolute;bottom:0;left:50%;display:block;width:min(70%,74px);height:var(--bar-height);min-height:2px;transform:translateX(-50%);border-radius:.55rem .55rem 0 0;background:linear-gradient(180deg,#ff9d4d,var(--bo-orange))}
.bo2-chart-item:not(.bo2-chart-item-completed) .bo2-chart-bar{background:linear-gradient(180deg,#a7c6e9,#4f83c3)}
.bo2-chart-item-postponed .bo2-chart-bar,.bo2-chart-item-cancelled .bo2-chart-bar{background:linear-gradient(180deg,#cbd6e4,#8da3bb)}
.bo2-chart-value{position:absolute;bottom:calc(var(--bar-height) + .35rem);left:0;right:0;color:var(--bo-ink);font-size:.82rem;font-weight:900;font-variant-numeric:tabular-nums}
.bo2-chart-label{display:block;min-height:2.4rem;padding:.6rem .12rem 0;color:var(--bo-muted);font-size:.75rem;font-weight:800;line-height:1.25}
.bo2-chart-empty{display:grid;place-items:center;flex:1;margin:1rem 0 0;border:1px dashed var(--bo-line);border-radius:.7rem;color:var(--bo-muted);font-size:.85rem;text-align:center}
.bo2-analytics .bo2-progress{display:flex;flex-direction:column;min-width:0;min-height:410px}
.bo2-analytics .bo2-gallery{height:225px;min-height:225px;flex:none}
.bo2-analytics .bo2-progress-info{flex:1;padding:1.05rem 1.25rem}
.bo2-analytics .bo2-progress-number{margin:.5rem 0;gap:.8rem}
.bo2-analytics .bo2-progress-number>strong{font-size:3.05rem}
.bo2-analytics .bo2-progress-number h2{font-size:1rem}
.bo2-analytics .bo2-progress-number p{font-size:.7rem}
html.dark .bo2-chart{background:var(--bo-surface)}
@media(max-width:1150px){.bo2-analytics{grid-template-columns:1fr}.bo2-analytics .bo2-progress{min-height:0}.bo2-analytics .bo2-gallery{height:260px;min-height:260px}}
@media(max-width:900px){.bo2-total-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.bo2-total-grid{grid-template-columns:1fr}.bo2-chart{min-height:360px;padding:1rem}.bo2-chart-bars{gap:.25rem}.bo2-chart-column{min-height:180px}.bo2-chart-label{font-size:.67rem}}

/* Completed surgery timeline: warm stacked columns, with the selected sector
   range reflected in both the summary and the bar segments. */
.bo2-chart{min-height:410px}
.bo2-chart-head{align-items:center}
.bo2-chart-controls{display:inline-flex;align-items:center;gap:.2rem;flex-wrap:wrap;justify-content:end}
.bo2-chart-controls button,.bo2-chart-year select{border:1px solid var(--bo-line);border-radius:.55rem;background:var(--bo-surface);color:var(--bo-muted);padding:.38rem .65rem;font:inherit;font-size:.73rem;font-weight:800;cursor:pointer}
.bo2-chart-controls button.is-active{border-color:var(--bo-orange);background:var(--bo-orange);color:#fff}
.bo2-chart-controls button:focus-visible,.bo2-chart-year select:focus-visible{outline:2px solid var(--bo-blue);outline-offset:2px}
.bo2-chart-year select{min-width:4.4rem;color:var(--bo-ink)}
.bo2-chart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:1.1rem;border:1px solid var(--bo-line);border-radius:.7rem;overflow:hidden;background:var(--bo-surface)}
.bo2-chart-summary>div{display:flex;flex-direction:column;justify-content:center;gap:.15rem;min-width:0;padding:.72rem 1rem}
.bo2-chart-summary>div+div{border-inline-start:1px solid var(--bo-line)}
.bo2-chart-summary .bo2-chart-primary{background:var(--bo-surface);box-shadow:inset 0 3px 0 var(--bo-orange)}
.bo2-chart-summary strong{color:var(--bo-ink);font-size:1.28rem;line-height:1.1;font-weight:900;font-variant-numeric:tabular-nums}
.bo2-chart-summary .bo2-chart-primary strong{font-size:1.72rem}
.bo2-chart-summary span{color:var(--bo-muted);font-size:.69rem;font-weight:700}
.bo2-cataract-types{margin-top:.65rem}
.bo2-cataract-types-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
.bo2-cataract-type{display:flex;flex-direction:column;justify-content:center;gap:.12rem;min-width:0;min-height:54px;padding:.4rem .55rem;border:1px solid var(--bo-line);border-radius:.5rem;background:var(--bo-surface);font:inherit;text-align:start;cursor:pointer;transition:border-color .18s ease,background .18s ease}
.bo2-cataract-type strong{color:var(--bo-ink);font-size:1.05rem;line-height:1.1;font-weight:900;font-variant-numeric:tabular-nums}
.bo2-cataract-type span{overflow:hidden;color:var(--bo-muted);font-size:.68rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.bo2-cataract-type.is-unspecified strong{color:var(--bo-muted)}
.bo2-cataract-type.is-unspecified:nth-child(n+5){grid-column:1/-1;min-height:38px;flex-direction:row;align-items:center;justify-content:center;gap:.45rem}
.bo2-cataract-type:hover{border-color:var(--bo-orange)}
.bo2-cataract-type:focus-visible{outline:2px solid var(--bo-blue);outline-offset:2px}
.bo2-cataract-type.is-active{border-color:var(--bo-orange);background:#fff4eb;box-shadow:inset 0 2px 0 var(--bo-orange)}
html.dark .bo2-cataract-type.is-active{background:#3a2b23}
@media(max-width:600px){.bo2-cataract-types-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bo2-chart-filter-note{margin:.6rem 0 0;color:var(--bo-orange);font-size:.72rem;font-weight:850}
.bo2-chart-plot{display:flex;flex:1;min-height:0;gap:.2rem;margin-top:.8rem}
.bo2-chart-axis{display:flex;flex:0 0 2.6rem;flex-direction:column;justify-content:space-between;align-self:stretch;padding-bottom:1.9rem;color:var(--bo-muted);font-size:.62rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:end}
.bo2-chart-axis span{line-height:1}
.bo2-chart-plot .bo2-chart-bars{margin:0}
.bo2-chart-bars{gap:.32rem;margin-top:.8rem;overflow-x:auto;overflow-y:hidden}
.bo2-chart-bars.is-compact{width:min(100%,580px);margin-inline:auto}
.bo2-chart-bars.is-compact .bo2-chart-stack{width:min(62%,72px)}
.bo2-chart-bars.is-monthly .bo2-chart-item{flex:1 0 50px}
.bo2-chart-column{min-height:185px;background:repeating-linear-gradient(to top,transparent 0,transparent calc(var(--grid-step) - 1px),var(--bo-line) calc(var(--grid-step) - 1px),var(--bo-line) var(--grid-step))}
.bo2-chart-stack{position:absolute;bottom:0;left:50%;width:min(70%,52px);transform:translateX(-50%);border-radius:.44rem .44rem 0 0}
.bo2-chart-stack{display:flex;flex-direction:column-reverse;height:var(--bar-height);overflow:hidden}
.bo2-chart-stack>span{display:block;min-height:0;flex:none}
.bo2-chart-stack>span:last-child{border-radius:.44rem .44rem 0 0}
.bo2-chart-value{bottom:calc(var(--bar-height) + .25rem);font-size:.71rem}
.bo2-chart-label{min-height:1.9rem;padding-top:.45rem;font-size:.69rem}
.bo2-chart-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;margin-top:.35rem;color:var(--bo-muted);font-size:.68rem;font-weight:750}
.bo2-chart-legend span{display:inline-flex;align-items:center;gap:.32rem}
.bo2-chart-legend i{width:.52rem;height:.52rem;border-radius:50%;flex:none}
html.dark .bo2-chart-summary .bo2-chart-primary{background:var(--bo-surface)}
@media(max-width:600px){.bo2-chart-head{align-items:start;flex-direction:column}.bo2-chart-summary>div{padding:.55rem .5rem}.bo2-chart-summary strong{font-size:1.1rem}.bo2-chart-summary .bo2-chart-primary strong{font-size:1.4rem}.bo2-chart-bars.is-monthly .bo2-chart-item{flex-basis:56px}.bo2-chart-column{min-height:170px}}

/* The gallery and scope form lead the page; the surgery chart uses the full row. */
.bo2-top-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);align-items:stretch;gap:1rem;margin-bottom:1.15rem}
.bo2-top-intro{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;min-width:0}
.bo2-top-grid .bo2-header{align-items:flex-start;flex-direction:column;gap:.45rem;margin:0}
.bo2-top-grid .bo2-filter{grid-template-columns:1fr;gap:.65rem;margin:0;padding:1rem 1.1rem}
.bo2-top-gallery{height:280px;min-height:280px;overflow:hidden;border:1px solid var(--bo-line);border-radius:var(--bo-radius-md);box-shadow:var(--bo-shadow)}
.bo2-top-gallery .bo2-gallery-frame{min-height:0}
.bo2-content{gap:.85rem}
.bo2-chart{min-height:520px}
.bo2-chart-column{min-height:255px}
.bo2-chart-bars.is-compact{width:min(100%,720px)}
@media(max-width:1050px){.bo2-top-grid{grid-template-columns:1fr}.bo2-top-gallery{width:min(100%,700px);height:300px;min-height:300px;justify-self:center}}
@media(max-width:600px){.bo2-top-grid{gap:.8rem}.bo2-top-grid .bo2-filter{padding:.85rem}.bo2-top-gallery{height:250px;min-height:250px}.bo2-chart{min-height:420px}.bo2-chart-column{min-height:215px}}

/* Quieter visual rhythm: compact lead, one clear chart, then uniform KPI cards. */
.bo2-top-grid{grid-template-columns:minmax(0,1fr) minmax(340px,min(40%,500px));gap:.85rem;margin-bottom:.85rem}
.bo2-top-intro{gap:.75rem}
.bo2-top-grid .bo2-header{gap:.3rem}
.bo2-top-grid .bo2-header h1{font-size:clamp(1.65rem,2.1vw,2.1rem)}
.bo2-top-grid .bo2-header p{font-size:.78rem}
.bo2-top-grid .bo2-filter{gap:.4rem;padding:.68rem .9rem;box-shadow:none}
.bo2-top-grid .bo2-filter-copy p{display:none}
.bo2-top-gallery{height:230px;min-height:230px;box-shadow:none}
.bo2-content{gap:.7rem}
.bo2-chart{min-height:410px;padding:1rem 1.15rem .85rem;box-shadow:none}
.bo2-chart-head h2{font-size:1.04rem}
.bo2-chart-head p{font-size:.71rem}
.bo2-chart-summary{margin-top:.65rem;border:0;border-bottom:1px solid var(--bo-line);border-radius:0;overflow:visible}
.bo2-chart-summary>div{padding:.3rem .85rem .55rem}
.bo2-chart-summary>div+div{border-inline-start:0}
.bo2-chart-summary .bo2-chart-primary{box-shadow:none}
.bo2-chart-summary strong{font-size:1.12rem}
.bo2-chart-summary .bo2-chart-primary strong{font-size:1.55rem}
.bo2-cataract-types{margin-top:.45rem}
.bo2-cataract-types-list{display:flex;flex-wrap:wrap;gap:.35rem}
.bo2-cataract-type,.bo2-cataract-type.is-unspecified:nth-child(n+5){display:inline-flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;flex:none;grid-column:auto;min-height:30px;padding:.28rem .6rem;border-radius:999px;box-shadow:none}
.bo2-cataract-type span{font-size:.68rem}
.bo2-cataract-type strong{font-size:.76rem}
.bo2-cataract-type.is-active{box-shadow:none}
.bo2-chart-plot{margin-top:.45rem}
.bo2-chart-column{min-height:185px}
.bo2-chart-stack{width:min(60%,48px)}
.bo2-chart-legend{margin-top:.2rem}
.bo2-total-grid,.bo2-today-grid{gap:.65rem}
.bo2-today-card,.bo2-total-grid .bo2-today-card{min-height:116px;height:100%;padding:.8rem 1rem;box-shadow:none}
.bo2-today-card strong{margin:.35rem 0 .1rem;font-size:1.88rem}
.bo2-card-top{align-items:flex-start;gap:.75rem;min-height:1.875rem}
.bo2-card-top .bo2-card-label{min-width:0;font-size:.875rem;line-height:1.4}
.bo2-today-card strong{margin:auto 0 0;padding-top:.4rem}
.bo2-card-icon{width:1.875rem;height:1.875rem;flex:none;border-radius:0;background:transparent;color:#37679a}
.bo2-card-icon svg{width:1.5rem;height:1.5rem;stroke-width:1.5}
.bo2-card-marker{display:none}
.bo2-alert-card{background:var(--bo-surface);border-color:var(--bo-line)}
.bo2-alert-card .bo2-card-icon{background:transparent;color:var(--bo-orange)}
html.dark .bo2-card-icon{background:transparent;color:#a8c6e8}
html.dark .bo2-alert-card .bo2-card-icon{background:transparent;color:#ffaf76}
html.dark .bo2-alert-card{background:var(--bo-surface);border-color:var(--bo-line)}
@media(min-width:901px){.bo2-total-card-7{order:1}.bo2-total-card-8{order:2}.bo2-total-card-5{order:3}}
@media(max-width:1150px){.bo2-top-grid{grid-template-columns:1fr}.bo2-top-gallery{width:min(100%,700px);height:250px;min-height:250px;justify-self:center}.bo2-top-intro{gap:.8rem}}
@media(max-width:700px){.bo2-top-grid .bo2-header{gap:.25rem}.bo2-top-gallery{height:clamp(230px,50vw,300px);min-height:clamp(230px,50vw,300px)}.bo2-chart{min-height:390px}.bo2-chart-column{min-height:180px}.bo2-total-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bo2-today-card,.bo2-total-grid .bo2-today-card{min-height:108px}}
@media(max-width:420px){.bo2-total-grid{grid-template-columns:1fr}.bo2-cataract-type{gap:.3rem}.bo2-chart-summary>div{padding:.25rem .35rem .5rem}}

/* One continuous plot grid keeps sparse months quiet and aligned to the axis. */
.bo2-chart-plot{position:relative}
.bo2-chart-plot::before{content:"";position:absolute;top:0;bottom:1.9rem;inset-inline-start:2.8rem;inset-inline-end:0;border-bottom:1px solid var(--bo-line);background:repeating-linear-gradient(to top,transparent 0,transparent calc(var(--grid-step) - 1px),color-mix(in srgb,var(--bo-line) 60%,transparent) calc(var(--grid-step) - 1px),color-mix(in srgb,var(--bo-line) 60%,transparent) var(--grid-step));pointer-events:none}
.bo2-chart-plot .bo2-chart-bars{position:relative;z-index:1}
.bo2-chart-plot .bo2-chart-column{border-bottom:0;background:none}

/* Large counts and long timelines keep readable axes and labels. */
.bo2-chart-axis{flex-basis:3.6rem}
.bo2-chart-plot::before{inset-inline-start:3.8rem}
.bo2-chart-bars.is-long .bo2-chart-item{flex:1 0 64px}
@media(max-width:600px){.bo2-chart-axis{flex-basis:3rem}.bo2-chart-plot::before{inset-inline-start:3.2rem}}

/* A period selection drives one compact summary: total plus the three cataract techniques. */
.bo2-chart-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:.7rem}
.bo2-chart-summary>div,.bo2-chart-summary>button{display:flex;flex-direction:column;justify-content:center;gap:.12rem;min-width:0;padding:.5rem .8rem}
.bo2-chart-summary>button{border:0;border-inline-start:1px solid var(--bo-line);background:transparent;text-align:start;font:inherit;cursor:pointer;transition:background .16s ease,color .16s ease}
.bo2-chart-summary>button:hover{background:color-mix(in srgb,var(--bo-orange) 5%,transparent)}
.bo2-chart-summary>button.is-active{background:color-mix(in srgb,var(--bo-orange) 9%,transparent);box-shadow:inset 0 2px 0 var(--bo-orange)}
.bo2-chart-summary>button.is-active strong{color:var(--bo-orange)}
.bo2-chart-summary>button:focus-visible,.bo2-chart-period:focus-visible{outline:2px solid var(--bo-blue);outline-offset:-2px}
.bo2-chart-period{display:flex;flex:1;flex-direction:column;align-items:stretch;min-width:0;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:center;cursor:pointer}
.bo2-chart-period .bo2-chart-column{display:block;width:100%}
.bo2-chart-period:not(.is-static):hover .bo2-chart-label,.bo2-chart-period.is-selected .bo2-chart-label{color:var(--bo-orange)}
.bo2-chart-period.is-selected .bo2-chart-column{background:color-mix(in srgb,var(--bo-orange) 7%,transparent)}
.bo2-chart-period.is-static{cursor:default}
@media(max-width:600px){.bo2-chart-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bo2-chart-summary>button:nth-child(3){border-inline-start:0}.bo2-chart-summary>div,.bo2-chart-summary>button{padding:.45rem .55rem}}

/* Quiet panel outlines and softly rounded columns, matching the reference dashboard. */
.bo2-dashboard{--bo-panel-outline:#e9edf2;--bo-panel-radius:.65rem}
html.dark .bo2-dashboard{--bo-panel-outline:#294560}
.bo2-chart,.bo2-today-card,.bo2-top-grid .bo2-filter,.bo2-top-gallery{border-color:var(--bo-panel-outline);border-radius:var(--bo-panel-radius);box-shadow:0 1px 3px #142d4a08}
.bo2-chart-summary{border-bottom-color:var(--bo-panel-outline)}
.bo2-chart-summary>button{border-inline-start-color:var(--bo-panel-outline)}
.bo2-chart-stack,.bo2-chart-stack>span:last-child{border-radius:.5rem .5rem .35rem .35rem}
.bo2-chart-stack{width:min(52%,38px)}
.bo2-chart-bars.is-compact .bo2-chart-stack{width:min(48%,44px)}
.bo2-chart-stack{width:min(42%,30px);border-radius:999px}
.bo2-chart-bars.is-compact .bo2-chart-stack{width:min(42%,32px)}
.bo2-chart-stack>span:last-child{border-radius:999px 999px 0 0}

/* Personal greeting leads the page; the page title and date remain quiet. */
.bo2-top-grid .bo2-header{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem}
.bo2-header-copy{min-width:0}
.bo2-top-grid .bo2-header .bo2-greeting{margin:0 0 .25rem;color:var(--bo-ink);font-size:clamp(1.55rem,2.1vw,2.1rem);font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.bo2-top-grid .bo2-header h1{margin:0;color:var(--bo-muted);font-size:.88rem;font-weight:750;line-height:1.4}
.bo2-top-grid .bo2-header .bo2-overline{padding-top:.28rem;font-size:.85rem;font-weight:650;line-height:1.5}
@media(max-width:700px){.bo2-top-grid .bo2-header{flex-direction:column;gap:.4rem}.bo2-top-grid .bo2-header .bo2-overline{padding-top:0}}

/* The scope icon is a quiet cue, not another colored tile. */
.bo2-filter-symbol{width:1.5rem;height:1.5rem;border-radius:0;background:transparent;color:var(--bo-blue);font-size:inherit}
.bo2-filter-symbol .fi-icon{width:1.25rem;height:1.25rem}
html.dark .bo2-filter-symbol{background:transparent;color:#a6cdf7}

/* The timeline keeps one quiet gender key beneath the columns. */
.bo2-chart-head h2{font-size:1.16rem;font-weight:850}
.bo2-chart-head p{font-size:.76rem;font-weight:500}
.bo2-chart-summary span{font-size:.73rem}
.bo2-chart-value{font-size:.77rem}
.bo2-chart-legend{font-size:.76rem;gap:.4rem 1.15rem}
.bo2-chart-legend i{width:.62rem;height:.62rem}
.bo2-chart-stack{width:min(45%,36px)}
.bo2-chart-bars.is-compact .bo2-chart-stack{width:min(45%,38px)}
.bo2-chart-period.is-static:focus-visible{outline:2px solid var(--bo-blue);outline-offset:-2px}
.bo2-chart-scroll-hint{display:none;margin:.25rem 0 0;color:var(--bo-muted);font-size:.68rem}
.bo2-chart-item.is-future .bo2-chart-label{opacity:.6}
.bo2-chart-item.is-current .bo2-chart-label{color:var(--bo-ink)}
.bo2-chart-label small{display:block;margin-top:.12rem;color:var(--bo-muted);font-size:.59rem;font-weight:600}
.bo2-chart-item.is-current .bo2-chart-label small{color:var(--bo-orange)}
@media(max-width:700px){.bo2-chart-scroll-hint{display:block}.bo2-chart-stack{width:min(48%,31px)}.bo2-chart-bars.is-compact .bo2-chart-stack{width:min(48%,33px)}}

/* Keep time, gender, and sector comparisons in separate, readable layers. */
.bo2-chart-gender-stack{background:var(--bo-gender-empty);border-radius:999px 999px 0 0}
.bo2-chart-gender-slice{display:block;width:100%;min-height:0;flex:none}
.bo2-chart-gender-slice.is-male{background:#f97316}
.bo2-chart-gender-slice.is-female{background:#f6c99f}
.bo2-chart-gender-slice.is-child{background:#159aaa}
.bo2-chart-gender-slice.is-unknown{background:repeating-linear-gradient(45deg,#e3a76f 0 3px,#fff1e4 3px 6px)}
.bo2-chart-extra-types{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:.45rem 0 0}
.bo2-chart-extra-types button{display:inline-flex;align-items:center;gap:.4rem;padding:.26rem .55rem;border:1px solid var(--bo-panel-outline);border-radius:999px;background:transparent;color:var(--bo-muted);font:inherit;font-size:.69rem;font-weight:650;cursor:pointer}
.bo2-chart-extra-types button strong{color:var(--bo-ink);font-weight:800;font-variant-numeric:tabular-nums}
.bo2-chart-extra-types button:hover,.bo2-chart-extra-types button.is-active{border-color:var(--bo-orange);color:var(--bo-orange);background:color-mix(in srgb,var(--bo-orange) 7%,var(--bo-surface))}
.bo2-chart-extra-types button:focus-visible{outline:2px solid var(--bo-blue);outline-offset:2px}
.bo2-chart-gender-legend{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem 1rem;margin:.35rem 0 0;color:var(--bo-muted);font-size:.72rem;font-weight:650}
.bo2-chart-gender-legend span{display:inline-flex;align-items:center;gap:.35rem}
.bo2-chart-gender-legend strong{color:var(--bo-ink);font-weight:800;font-variant-numeric:tabular-nums}
.bo2-chart-gender-legend i{display:block;width:.7rem;height:.7rem;flex:none;border-radius:2px}
.bo2-chart-gender-legend i.is-male{background:#f97316}
.bo2-chart-gender-legend i.is-female{background:#f6c99f}
.bo2-chart-gender-legend i.is-child{background:#159aaa}
.bo2-chart-gender-legend i.is-unknown{background:repeating-linear-gradient(45deg,#e3a76f 0 2px,#fff1e4 2px 4px)}
.bo2-dashboard{--bo-sector-track:#eaf1f8;--bo-sector-fill:#4f83b6;--bo-gender-empty:#eef2f6}
html.dark .bo2-dashboard{--bo-sector-track:#294762;--bo-sector-fill:#83b9ed;--bo-gender-empty:#203d59}
.bo2-sector-breakdown{width:min(100%,1020px);margin:1.2rem auto 0;padding:1.15rem 1.3rem .25rem;border:1px solid var(--bo-panel-outline);border-radius:1rem;background:color-mix(in srgb,var(--bo-surface) 97%,var(--bo-sector-track));box-shadow:0 1px 3px #142d4a08}
.bo2-sector-breakdown-head{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;margin-bottom:.25rem;padding-bottom:.85rem;border-bottom:1px solid var(--bo-panel-outline)}
.bo2-sector-breakdown-head h3{margin:0;color:var(--bo-ink);font-size:1.02rem;font-weight:850;line-height:1.4}
.bo2-sector-breakdown-head>span{color:var(--bo-muted);font-size:.76rem;font-weight:600;font-variant-numeric:tabular-nums}
.bo2-sector-breakdown-list{display:grid}
.bo2-sector-breakdown-row{min-width:0;padding:.95rem .1rem 1rem;border-bottom:1px solid var(--bo-panel-outline)}
.bo2-sector-breakdown-row:last-child{border-bottom:0}
.bo2-sector-breakdown-top{display:flex;align-items:baseline;justify-content:space-between;gap:.65rem}
.bo2-sector-breakdown-name{min-width:0;color:var(--bo-ink);font-size:.85rem;font-weight:750;line-height:1.45;overflow-wrap:anywhere}
.bo2-sector-breakdown-count{flex:none;color:var(--bo-ink);font-size:1.1rem;font-weight:850;font-variant-numeric:tabular-nums;line-height:1.2}
.bo2-sector-breakdown-track{height:.42rem;min-width:0;overflow:hidden;margin:.65rem 0 .55rem;border-radius:999px;background:var(--bo-sector-track)}
.bo2-sector-breakdown-track span{display:block;height:100%;min-width:2px;border-radius:inherit;background:var(--bo-sector-fill)}
.bo2-sector-breakdown-genders{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem 1.15rem;margin:0;color:var(--bo-muted);font-size:.76rem;font-weight:600;font-variant-numeric:tabular-nums}
.bo2-sector-breakdown-genders>div{display:inline-flex;align-items:baseline;gap:.28rem;white-space:nowrap}
.bo2-sector-breakdown-genders dt,.bo2-sector-breakdown-genders dd{margin:0}
.bo2-sector-breakdown-genders dd{color:var(--bo-ink);font-weight:750}
@media(max-width:600px){.bo2-sector-breakdown{padding:.9rem .9rem .15rem}.bo2-sector-breakdown-head h3{font-size:.94rem}.bo2-sector-breakdown-row{padding:.82rem 0 .9rem}.bo2-sector-breakdown-name{font-size:.81rem}.bo2-sector-breakdown-count{font-size:1rem}.bo2-sector-breakdown-genders{gap:.25rem .8rem;font-size:.73rem}}

/* The nine dashboard metrics share one icon, value, label rhythm. */
.bo2-total-grid .bo2-metric-card,.bo2-today-grid .bo2-metric-card{min-height:176px;height:100%;align-items:flex-start;justify-content:flex-end;padding:1.1rem 1.25rem;border-radius:1.05rem;box-shadow:none}
.bo2-metric-card .bo2-card-icon{display:flex;align-items:flex-start;justify-content:flex-start;width:2.4rem;height:2.4rem;flex:none;margin:0 0 auto;border-radius:0;background:transparent;color:#149fbe}
.bo2-metric-card .bo2-card-icon svg{width:2.35rem;height:2.35rem;stroke-width:1.6}
.bo2-metric-card>strong{margin:0 0 .4rem;padding:0;color:var(--bo-ink);font-size:2.75rem;font-weight:850;line-height:1.05;letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap}
.bo2-metric-card .bo2-card-label{display:block;min-height:2.5em;color:var(--bo-muted);font-size:.9rem;font-weight:650;line-height:1.35;overflow-wrap:anywhere;text-align:start}
.bo2-total-card-3>strong{color:#149fbe}
.bo2-metric-card.bo2-alert-card .bo2-card-icon,.bo2-metric-card.bo2-alert-card>strong{color:#d56219}
html.dark .bo2-metric-card .bo2-card-icon{background:transparent;color:#75d4ec}
html.dark .bo2-metric-card>strong{color:var(--bo-ink)}
html.dark .bo2-total-card-3>strong{color:#75d4ec}
html.dark .bo2-metric-card.bo2-alert-card .bo2-card-icon,html.dark .bo2-metric-card.bo2-alert-card>strong{color:#ffaf76}
@media(max-width:600px){.bo2-total-grid,.bo2-today-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bo2-total-grid .bo2-metric-card,.bo2-today-grid .bo2-metric-card{min-height:150px;padding:.9rem}.bo2-metric-card .bo2-card-icon,.bo2-metric-card .bo2-card-icon svg{width:1.9rem;height:1.9rem}.bo2-metric-card>strong{margin-bottom:.3rem;font-size:clamp(1.85rem,8vw,2.2rem)}.bo2-metric-card .bo2-card-label{font-size:.81rem;line-height:1.35}}
@media(max-width:360px){.bo2-total-grid,.bo2-today-grid{grid-template-columns:1fr}.bo2-total-grid .bo2-metric-card,.bo2-today-grid .bo2-metric-card{min-height:145px}}

/* Slim columns keep the time series calm while each period retains its full click target. */
.bo2-chart-plot{width:min(100%,1020px);margin-inline:auto}
.bo2-chart-bars.is-monthly .bo2-chart-item{flex-basis:56px}
.bo2-chart-stack,.bo2-chart-bars.is-compact .bo2-chart-stack{width:24px;max-width:45%;border-radius:6px 6px 0 0;box-shadow:none}
.bo2-chart-bars.is-monthly .bo2-chart-stack{width:22px}
.bo2-chart-gender-stack,.bo2-chart-stack>span:last-child{border-radius:6px 6px 0 0}
.bo2-chart-item.has-value .bo2-chart-stack{min-height:2px}
@media(max-width:700px){.bo2-chart-stack,.bo2-chart-bars.is-compact .bo2-chart-stack{width:22px;max-width:45%}.bo2-chart-bars.is-monthly .bo2-chart-stack{width:20px}}

/* A compact scope count sits above the six service cards. */
.bo2-camp-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .5rem;justify-self:start;max-width:100%;color:var(--bo-ink);line-height:1.2}
.bo2-camp-count span{font-size:.83rem;font-weight:750}
.bo2-camp-count strong{font-size:1.42rem;font-weight:850;font-variant-numeric:tabular-nums}
.bo2-camp-count small{color:var(--bo-muted);font-size:.75rem;font-weight:600}
@media(max-width:420px){.bo2-camp-count strong{font-size:1.35rem}}

/* Reveal each chart layer when it first enters the viewport. Later filter changes
   transition from the values already on screen instead of replaying the entrance. */
.bo2-chart-stack{transition:height .28s cubic-bezier(.22,1,.36,1)}
.bo2-chart-value{transition:bottom .28s cubic-bezier(.22,1,.36,1)}
.bo2-chart-period .bo2-chart-column{transition:background-color .15s ease}
.bo2-sector-breakdown-track>span{transition:width .3s cubic-bezier(.22,1,.36,1)}
.bo2-chart-summary.is-motion-pending strong{opacity:0;transform:translateY(6px)}
.bo2-chart-summary.is-motion-entering strong{animation:bo2-number-reveal .28s both}
.bo2-chart-summary.is-motion-entering>button strong{animation-delay:.055s}
.bo2-chart-plot.is-motion-pending .bo2-chart-stack{transform:translateX(-50%) scaleY(0);transform-origin:50% 100%}
.bo2-chart-plot.is-motion-pending .bo2-chart-value{opacity:0}
.bo2-chart-plot.is-motion-entering .bo2-chart-stack{transform-origin:50% 100%;animation:bo2-column-rise .42s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--motion-index) * 12ms)}
.bo2-chart-plot.is-motion-entering .bo2-chart-value{animation:bo2-number-reveal .18s both;animation-delay:calc(.19s + var(--motion-index) * 12ms)}
.bo2-sector-breakdown.is-motion-pending .bo2-sector-breakdown-track>span{transform:scaleX(0);transform-origin:100% 50%}
.bo2-sector-breakdown.is-motion-entering .bo2-sector-breakdown-track>span{transform-origin:100% 50%;animation:bo2-track-fill .32s cubic-bezier(.22,1,.36,1) both}
html[dir="ltr"] .bo2-sector-breakdown.is-motion-pending .bo2-sector-breakdown-track>span,
html[dir="ltr"] .bo2-sector-breakdown.is-motion-entering .bo2-sector-breakdown-track>span{transform-origin:0 50%}
@keyframes bo2-number-reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes bo2-column-rise{from{transform:translateX(-50%) scaleY(0)}to{transform:translateX(-50%) scaleY(1)}}
@keyframes bo2-track-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){
    .bo2-chart-stack,.bo2-chart-value,.bo2-chart-period .bo2-chart-column,.bo2-sector-breakdown-track>span{transition:none!important}
    .bo2-chart-summary.is-motion-pending strong,.bo2-chart-plot.is-motion-pending .bo2-chart-value{opacity:1;transform:none}
    .bo2-chart-plot.is-motion-pending .bo2-chart-stack{transform:translateX(-50%) scaleY(1)}
    .bo2-sector-breakdown.is-motion-pending .bo2-sector-breakdown-track>span{transform:scaleX(1)}
    .bo2-chart-summary.is-motion-entering strong,.bo2-chart-plot.is-motion-entering .bo2-chart-stack,.bo2-chart-plot.is-motion-entering .bo2-chart-value,.bo2-sector-breakdown.is-motion-entering .bo2-sector-breakdown-track>span{animation:none!important}
}
