/* SOWLR Dashboard – frontend styles. Generated from prototype/b-enhanced/styles.css (Design B) and scoped under .sowlr.
   purple = Men, orange = Women. Brand colours come from --sowlr-men / --sowlr-women set by the shortcode. */
.sowlr { position:relative; z-index:0; isolation:isolate; box-sizing:border-box; margin:0; color:#1F2124; font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif; font-size:15px; line-height:1.5; -webkit-text-size-adjust:100%; }
.sowlr *, .sowlr *::before, .sowlr *::after { box-sizing:border-box; }
.sowlr button { font:inherit; }
.sowlr h2, .sowlr h3, .sowlr p { margin-top:0; }
.sowlr [hidden] { display:none !important; }

.sowlr {
  --purple:var(--sowlr-men,#762EA0); --deep:#521079; --purple-soft:#F3ECF8; --purple-tint:#E9DDF2; --purple-light:#C7A6DC;
  --orange:var(--sowlr-women,#E06875); --orange-soft:#FDEBED; --orange-light:#F3B7BE;
  --navy:#151E4A; --text:#1F2124; --text-2:#596375; --muted:#69727D;
  --surface:#fff; --page:#FCFCFC; --plane:#F5F6F8; --hairline:#E5E7EB; --axis:#C8CCD4;
  --up:#0B6B0B; --down:#B42318;
  --r:12px; --shadow:0 1px 2px rgba(21,30,74,.05), 0 10px 28px -14px rgba(21,30,74,.25);
  --font:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:20px; --max:1280px; --ease:cubic-bezier(.2,.7,.2,1);
}
.sowlr .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.sowlr .wrap { max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }


.sowlr-hero { background:linear-gradient(120deg,var(--deep),var(--purple) 60%,#8E44B8); color:#fff; padding:30px 0 26px; position:relative; overflow:hidden; }
.sowlr-hero::after { content:""; position:absolute; right:-80px; top:-120px; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle, rgba(224,104,117,.35), transparent 65%); pointer-events:none; }
.sowlr .hero-in { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; position:relative; }
.sowlr .eyebrow { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; opacity:.85; }
.sowlr-h1 { margin:6px 0 4px; font-size:clamp(24px,3vw,34px); line-height:1.15; letter-spacing:-.01em; }
.sowlr-hero p { margin:0; opacity:.9; max-width:60ch; font-size:14.5px; }
.sowlr .page-switch { position:relative; display:inline-grid; grid-template-columns:1fr 1fr; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:4px; backdrop-filter:blur(6px); }
.sowlr .page-switch .ind { position:absolute; top:4px; bottom:4px; left:4px; width:calc(50% - 4px); border-radius:999px; background:#fff; transition:transform .35s var(--ease); }
.sowlr .page-switch .ind.right { transform:translateX(100%); }
.sowlr .pbtn { position:relative; z-index:1; border:0; background:none; color:#fff; font-weight:700; padding:10px 22px; border-radius:999px; cursor:pointer; transition:color .25s; min-width:130px; }
.sowlr .pbtn[aria-pressed="true"] { color:var(--purple); }


.sowlr .sections { position:sticky; top:var(--sowlr-sticky,0px); z-index:20; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--hairline); }
.sowlr .tabs { position:relative; display:flex; flex-wrap:wrap; gap:4px; }
.sowlr .tabs::-webkit-scrollbar { display:none; }
.sowlr .tab { flex:0 0 auto; border:0; background:none; padding:15px 14px 13px; font-weight:700; font-size:14px; color:var(--text-2); cursor:pointer; position:relative; transition:color .2s; white-space:nowrap; }
.sowlr .tab:hover { color:var(--navy); } .sowlr .tab[aria-selected="true"] { color:var(--purple); }
.sowlr .tab::after { content:""; position:absolute; left:14px; right:14px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:var(--purple); transform:scaleX(0); transition:transform .3s var(--ease); }
.sowlr .tab[aria-selected="true"]::after { transform:scaleX(1); }
.sowlr .subviews { background:var(--page); }

.sowlr .carousel { position:relative; }
.sowlr .chips { display:flex; flex-wrap:nowrap; align-items:stretch; gap:8px; padding:12px 0 10px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:none; -ms-overflow-style:none; cursor:grab; user-select:none; -webkit-user-select:none; }
.sowlr .chips::-webkit-scrollbar { display:none; }
.sowlr .chips.dragging { scroll-snap-type:none; scroll-behavior:auto; }
.sowlr .chips.grabbing, .sowlr .chips.grabbing .chip { cursor:grabbing; }
.sowlr .chips.grabbing .chip { transform:none; box-shadow:none; }
.sowlr .chips .chip { display:inline-flex; align-items:center; scroll-snap-align:start; }
.sowlr .carousel::before, .sowlr .carousel::after { content:""; position:absolute; top:0; bottom:0; width:88px; pointer-events:none; z-index:2; opacity:1; transition:opacity .25s; }
.sowlr .carousel::before { left:0; background:linear-gradient(90deg, var(--page) 38%, rgba(252,252,252,0)); }
.sowlr .carousel::after { right:0; background:linear-gradient(270deg, var(--page) 38%, rgba(252,252,252,0)); }
.sowlr .carousel.at-start::before, .sowlr .carousel.at-end::after, .sowlr .carousel.no-overflow::before, .sowlr .carousel.no-overflow::after { opacity:0; }
.sowlr .car-btn { position:absolute; top:50%; z-index:3; width:34px; height:34px; margin-top:-17px; border-radius:50%; border:1px solid var(--hairline); background:var(--surface); color:var(--purple); display:grid; place-items:center; cursor:pointer; box-shadow:0 2px 8px -2px rgba(21,30,74,.25); transition:opacity .25s, transform .15s var(--ease), background .2s; }
.sowlr .car-btn.prev { left:2px; } .sowlr .car-btn.next { right:2px; }
.sowlr .car-btn:hover { background:var(--purple-soft); transform:scale(1.06); }
.sowlr .car-btn:focus-visible { outline:2px solid var(--purple); outline-offset:2px; }
.sowlr .carousel.at-start .car-btn.prev, .sowlr .carousel.at-end .car-btn.next, .sowlr .carousel.no-overflow .car-btn { opacity:0; pointer-events:none; }
.sowlr .carousel.wrap .chips { flex-wrap:wrap; overflow:visible; cursor:default; user-select:auto; -webkit-user-select:auto; scroll-snap-type:none; }
.sowlr .carousel.wrap::before, .sowlr .carousel.wrap::after, .sowlr .carousel.wrap .car-btn { display:none; }
.sowlr .chip { flex:0 0 auto; border:1px solid var(--hairline); background:var(--surface); color:var(--text-2); font-weight:600; font-size:13px; padding:9px 14px; border-radius:999px; cursor:pointer; max-width:340px; text-align:left; line-height:1.25; transition:transform .15s var(--ease), background .2s, color .2s, border-color .2s, box-shadow .2s; }
.sowlr .chip:hover { transform:translateY(-1px); border-color:var(--purple-light); box-shadow:0 4px 10px -6px rgba(118,46,160,.4); }
.sowlr .chip:active { transform:scale(.97); }
.sowlr .chip[aria-selected="true"] { background:var(--purple); border-color:var(--purple); color:#fff; }
.sowlr .chip .new { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:999px; background:var(--orange); color:#fff; font-size:10px; font-weight:800; letter-spacing:.04em; vertical-align:middle; }
.sowlr .chip[aria-selected="true"] .new { background:#fff; color:var(--orange); }
.sowlr .m-nav { display:none; }


.sowlr .controls-bar { position:sticky; top:calc(var(--sowlr-sticky,0px) + var(--sowlr-tabs-h,50px)); z-index:19; background:rgba(252,252,252,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--hairline); }
.sowlr .controls-bar .wrap { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding-top:10px; padding-bottom:10px; }
.sowlr .fld { display:flex; align-items:center; gap:8px; }
.sowlr .fld label { font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.sowlr .seg { position:relative; display:inline-flex; background:var(--plane); border:1px solid var(--hairline); border-radius:999px; padding:3px; }
.sowlr .seg button { border:0; background:none; padding:7px 14px; border-radius:999px; font-weight:600; font-size:13px; color:var(--text-2); cursor:pointer; transition:background .25s var(--ease), color .2s, transform .12s; white-space:nowrap; }
.sowlr .seg button:active { transform:scale(.96); }
.sowlr .seg button[aria-pressed="true"] { background:var(--surface); color:var(--purple); box-shadow:0 1px 3px rgba(21,30,74,.18); }
.sowlr select.sel { min-height:38px; padding:7px 34px 7px 12px; border:1px solid var(--hairline); border-radius:999px; background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23596375' stroke-width='1.6'/></svg>") no-repeat right 12px center; appearance:none; -webkit-appearance:none; font:inherit; font-weight:600; color:var(--text); max-width:260px; transition:border-color .2s, box-shadow .2s; }
.sowlr select.sel:focus { outline:none; border-color:var(--purple); box-shadow:0 0 0 3px var(--purple-tint); }
.sowlr input.sel { min-height:38px; padding:7px 14px 7px 36px; border:1px solid var(--hairline); border-radius:999px; font:inherit; font-weight:600; color:var(--text); width:220px; background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23596375' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='M20 20l-3.5-3.5'/></svg>") no-repeat 12px center; appearance:none; -webkit-appearance:none; transition:border-color .2s, box-shadow .2s; }
.sowlr input.sel::placeholder { color:var(--muted); font-weight:500; } .sowlr input.sel:focus { outline:none; border-color:var(--purple); box-shadow:0 0 0 3px var(--purple-tint); }
.sowlr input.sel::-webkit-search-cancel-button { -webkit-appearance:none; height:14px; width:14px; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23596375' stroke-width='2.5' stroke-linecap='round'><path d='M6 6l12 12M18 6L6 18'/></svg>") no-repeat center / contain; cursor:pointer; }
.sowlr .spacer { flex:1 1 auto; }
.sowlr .sample-note { padding:6px 10px; border-radius:999px; background:#FFF7E6; color:#7A4B00; font-size:12px; font-weight:600; border:1px solid #F5DEA8; }
.sowlr .dl { font-size:13px; color:var(--purple); font-weight:700; text-decoration:none; padding:6px 10px; border-radius:999px; transition:background .2s; } .sowlr .dl:hover { background:var(--purple-soft); }


.sowlr .fld.compare { gap:10px; flex-wrap:wrap; }
.sowlr .cmp-btn { display:inline-flex; align-items:center; gap:4px; border:1px solid var(--purple-light); background:var(--surface); color:var(--purple); font-weight:700; font-size:13px; padding:8px 14px; border-radius:999px; cursor:pointer; transition:background .2s, transform .12s; }
.sowlr .cmp-btn:hover { background:var(--purple-soft); } .sowlr .cmp-btn:active { transform:scale(.97); } .sowlr .cmp-btn[aria-expanded="true"] { background:var(--purple); color:#fff; border-color:var(--purple); }
.sowlr .cmp-tag { display:inline-flex; align-items:center; gap:4px; background:var(--purple); color:#fff; font-size:13px; padding:8px 14px; border-radius:999px; } .sowlr .cmp-tag b { font-weight:800; }
.sowlr .lnk { border:0; background:none; color:var(--purple); font-weight:700; font-size:13px; cursor:pointer; padding:6px 8px; border-radius:999px; } .sowlr .lnk:hover { background:var(--purple-soft); } .sowlr .lnk.exit { color:var(--down); } .sowlr .lnk.exit:hover { background:#FBEAE8; }
.sowlr .cmp-panel { flex-basis:100%; background:var(--surface); border:1px solid var(--purple-light); border-radius:12px; padding:14px 16px; box-shadow:var(--shadow); animation:sowlr-fadeUp .25s var(--ease) both; }
.sowlr .cmp-head-row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:10px; font-size:14px; color:var(--navy); } .sowlr .cmp-count { font-size:12px; color:var(--muted); font-weight:600; }
.sowlr .cmp-years { display:grid; grid-template-columns:repeat(auto-fill, minmax(104px, 1fr)); gap:8px; max-height:220px; overflow:auto; padding:2px; }
.sowlr .cmp-years label { display:flex; align-items:center; gap:8px; min-width:0; overflow:hidden; white-space:nowrap; border:1px solid var(--hairline); border-radius:10px; padding:9px 12px; font-weight:600; font-size:14px; cursor:pointer; transition:background .2s, border-color .2s; }
.sowlr .cmp-years label:hover { border-color:var(--purple-light); } .sowlr .cmp-years label.on { background:var(--purple-soft); border-color:var(--purple); color:var(--purple); }
.sowlr .cmp-years input { accent-color:var(--purple); width:16px; height:16px; } .sowlr .cmp-years small { color:var(--muted); font-weight:500; }
.sowlr .cmp-actions { display:flex; gap:10px; align-items:center; margin-top:12px; }
.sowlr .cmp-apply { border:0; background:var(--purple); color:#fff; font-weight:700; font-size:14px; padding:10px 16px; border-radius:999px; cursor:pointer; transition:background .2s, transform .12s; } .sowlr .cmp-apply:disabled { background:var(--purple-light); cursor:not-allowed; } .sowlr .cmp-apply:active:not(:disabled) { transform:scale(.97); }
.sowlr select.sel:disabled { opacity:.55; }
.sowlr .donut-grid { display:grid; gap:8px; grid-template-columns:repeat(2, minmax(0,1fr)); } .sowlr .donut-grid.n3 { grid-template-columns:repeat(3, minmax(0,1fr)); } .sowlr .donut-grid.n4 { grid-template-columns:repeat(4, minmax(0,1fr)); }
.sowlr .method { margin:-4px 0 14px; font-size:12.5px; color:var(--text-2); background:var(--surface); border:1px dashed var(--purple-light); border-radius:8px; padding:8px 12px; }
.sowlr .source { margin:14px 0 0; font-size:12px; color:var(--muted); line-height:1.5; } .sowlr .source b { color:var(--text-2); }
.sowlr .mover[tabindex] { cursor:help; }
.sowlr .row.multi { min-height:auto; align-items:center; } .sowlr .track .fill.yr { position:absolute; left:0; border-radius:999px; }


.sowlr .card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.sowlr .legend-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; } .sowlr .legend-row .legend { margin:0; }
.sowlr .seg.unit { flex:0 0 auto; padding:2px; } .sowlr .seg.unit button { min-width:38px; padding:6px 10px; font-size:14px; font-weight:800; line-height:1; }


.sowlr .bar-title { flex-basis:100%; margin:0 0 -2px; font-size:20px; font-weight:800; color:var(--navy); letter-spacing:-.01em; line-height:1.25; }
.sowlr .pending { display:block; margin-top:6px; font-size:11.5px; color:#7A4B00; background:#FFF7E6; border:1px solid #F5DEA8; border-radius:6px; padding:4px 8px; line-height:1.35; }
.sowlr .prior { display:inline-block; margin-left:8px; padding:2px 8px; border-radius:999px; font-size:12px; font-weight:700; background:var(--plane); color:var(--text-2); vertical-align:middle; }
.sowlr .info-btn { display:inline-grid; place-items:center; width:18px; height:18px; border-radius:50%; border:1px solid var(--purple-light); background:var(--surface); color:var(--purple); font-size:11px; font-weight:800; font-family:Georgia, serif; font-style:italic; cursor:pointer; vertical-align:middle; margin-left:4px; }
.sowlr .info-btn[aria-expanded="true"] { background:var(--purple); color:#fff; }
.sowlr .info-text { margin:6px 0 0; font-size:12.5px; color:var(--text-2); background:var(--surface); border:1px dashed var(--purple-light); border-radius:8px; padding:8px 12px; }
.sowlr .source-wrap { margin-top:14px; } .sowlr .source-wrap .source { margin:0; }
.sowlr .kf-head { display:flex; align-items:center; gap:8px; margin:0 0 10px; } .sowlr .kf-head .ctitle { margin:0; }
.sowlr .seg.sort { flex:0 0 auto; }


.sowlr .sowlr-main { padding-top:32px; animation:sowlr-fadeUp .4s var(--ease) both; }
@keyframes sowlr-fadeUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.sowlr .view-title { margin:0 0 16px; font-size:22px; font-weight:800; color:var(--navy); letter-spacing:-.01em; line-height:1.25; }
.sowlr .kpis { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.sowlr .kpi { background:var(--surface); border:1px solid var(--hairline); border-radius:var(--r); box-shadow:var(--shadow); padding:16px 18px; display:flex; align-items:center; gap:14px; transition:transform .2s var(--ease), box-shadow .2s; }
.sowlr .kpi:hover { transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(21,30,74,.3); }
.sowlr .kpi .ico { width:46px; height:46px; border-radius:12px; display:grid; place-items:center; flex:0 0 auto; }
.sowlr .kpi .ico.w { background:var(--orange-soft); color:var(--orange); } .sowlr .kpi .ico.p { background:var(--purple-soft); color:var(--purple); } .sowlr .kpi .ico.n { background:var(--plane); color:var(--navy); }
.sowlr .kpi .v { font-size:30px; font-weight:800; color:var(--navy); line-height:1.05; letter-spacing:-.02em; }
.sowlr .kpi .l { font-size:13px; color:var(--text-2); margin-top:2px; }
.sowlr .kpi .mini { width:46px; height:46px; }
.sowlr .delta { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:999px; font-size:12px; font-weight:700; background:var(--plane); color:var(--text-2); margin-left:8px; vertical-align:middle; }
.sowlr .delta.up { background:#E8F5E8; color:var(--up); } .sowlr .delta.down { background:#FBEAE8; color:var(--down); }

.sowlr .grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:16px; }
.sowlr .grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sowlr .card { background:var(--surface); border:1px solid var(--hairline); border-radius:var(--r); box-shadow:var(--shadow); padding:18px 20px; min-width:0; transition:box-shadow .25s; }
.sowlr .card:hover { box-shadow:0 16px 34px -18px rgba(21,30,74,.35); }
.sowlr .card.full { grid-column:1 / -1; }
.sowlr .card.with-side { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
.sowlr .ctitle { margin:0; font-size:15.5px; font-weight:700; color:var(--navy); line-height:1.3; }
.sowlr .csub { margin:2px 0 8px; font-size:12.5px; color:var(--muted); }
.sowlr .legend { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12px; color:var(--text-2); margin:4px 0 8px; }
.sowlr .legend i { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:-1px; }
.sowlr .side { display:flex; flex-direction:column; gap:6px; padding-top:4px; }
.sowlr .sbtn { border:1px solid transparent; background:none; padding:8px 12px; border-radius:999px; font-size:13px; font-weight:600; color:var(--text-2); cursor:pointer; text-align:left; white-space:nowrap; transition:background .2s, color .2s, transform .12s; }
.sowlr .sbtn:hover { background:var(--purple-soft); } .sowlr .sbtn:active { transform:scale(.97); }
.sowlr .sbtn[aria-pressed="true"] { background:var(--purple); color:#fff; }
.sowlr .chart-box { width:100%; min-width:0; } .sowlr .chart-box svg { display:block; max-width:100%; height:auto; }
.sowlr .chart .grid { stroke:var(--hairline); } .sowlr .chart .axis, .sowlr .chart .xlab { font-family:var(--font); font-size:12px; fill:var(--muted); } .sowlr .chart .xlab { fill:var(--text-2); font-weight:600; }
.sowlr .chart .val { font-family:var(--font); font-size:12px; font-weight:700; fill:var(--navy); }
.sowlr .chart .bar { rx:5; transform-box:fill-box; transform-origin:bottom center; animation:sowlr-grow .7s var(--ease) both; transition:filter .15s; }
.sowlr .chart .bar:hover, .sowlr .chart .bar:focus { filter:brightness(1.12); outline:none; }
@keyframes sowlr-grow { from { transform:scaleY(0); } to { transform:scaleY(1); } }
.sowlr .chart .val { animation:sowlr-fadeIn .5s .45s both; } @keyframes sowlr-fadeIn { from { opacity:0; } to { opacity:1; } }
.sowlr .donut .ring { fill:none; stroke-width:22; transition:stroke-dasharray 1s var(--ease); }
.sowlr .donut .ring:hover { stroke-width:26; }
.sowlr .donut .track { fill:none; stroke:var(--plane); stroke-width:22; }
.sowlr .donut .center { font-family:var(--font); font-weight:800; fill:var(--navy); font-size:26px; } .sowlr .donut .center .u { font-size:13px; font-weight:600; fill:var(--text-2); }
.sowlr .donut .cl { font-family:var(--font); font-size:12px; fill:var(--text-2); }
.sowlr .donut-year { text-align:center; font-weight:700; color:var(--text-2); font-size:13px; }
.sowlr .chart .ln { fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.sowlr .chart .area { opacity:.14; }
.sowlr .chart .pt { stroke:#fff; stroke-width:2; transition:r .15s; } .sowlr .chart .pt:hover { r:7; }
.sowlr .footnote { margin:12px 0 0; padding:10px 14px; border-left:3px solid var(--purple-tint); background:var(--surface); color:var(--text-2); font-size:13px; border-radius:0 8px 8px 0; }


.sowlr .cmp-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin:0 0 16px; }
.sowlr .cmp-head h2 { margin:0; font-size:20px; font-weight:800; color:var(--navy); }
.sowlr .cmp-tools { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.sowlr .cmp-tools input[type="search"] { min-height:38px; padding:7px 14px; border:1px solid var(--hairline); border-radius:999px; font:inherit; width:200px; transition:border-color .2s, box-shadow .2s; }
.sowlr .cmp-tools input[type="search"]:focus { outline:none; border-color:var(--purple); box-shadow:0 0 0 3px var(--purple-tint); }
.sowlr .movers { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin:10px 0 14px; }
.sowlr .mover { background:var(--surface); border:1px solid var(--hairline); border-radius:var(--r); padding:12px 14px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:2px; }
.sowlr .mover .k { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); } .sowlr .mover .v { font-size:19px; font-weight:800; color:var(--navy); } .sowlr .mover .s { font-size:12.5px; color:var(--text-2); }
.sowlr .rank { display:grid; gap:4px; }
.sowlr .row { display:grid; grid-template-columns:28px 120px 1fr 84px; align-items:center; gap:10px; min-height:30px; padding:3px 6px; border-radius:8px; animation:sowlr-slideIn .45s var(--ease) both; transition:background .15s; }
.sowlr .row:hover, .sowlr .row:focus-within { background:var(--plane); }
@keyframes sowlr-slideIn { from { opacity:0; transform:translateX(-10px); } to { opacity:1; transform:none; } }
.sowlr .row .n { font-size:12px; color:var(--muted); text-align:right; font-variant-numeric:tabular-nums; }
.sowlr .row .name { font-size:13px; font-weight:700; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sowlr .track { position:relative; height:14px; background:var(--plane); border-radius:999px; overflow:hidden; }
.sowlr .fill { position:absolute; left:0; top:0; height:100%; background:linear-gradient(90deg,var(--purple),#9A5BC2); border-radius:999px; transform-origin:left; animation:sowlr-growX .8s var(--ease) both; }
.sowlr .fill.prev { background:var(--purple-light); height:6px; top:4px; }
@keyframes sowlr-growX { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.sowlr .row .v { font-size:13px; font-weight:700; color:var(--navy); text-align:right; font-variant-numeric:tabular-nums; display:flex; flex-direction:column; align-items:flex-end; gap:1px; }
.sowlr .row .v small { font-size:11px; font-weight:600; }
.sowlr .row .v small.up { color:var(--up); } .sowlr .row .v small.down { color:var(--down); } .sowlr .row .v small.flat { color:var(--muted); }
.sowlr .ticks { position:relative; height:16px; margin:6px 0 0; }
.sowlr .ticks span { position:absolute; top:0; transform:translateX(-50%); font-size:11px; color:var(--muted); }
.sowlr .ticks span:first-child { transform:none; } .sowlr .ticks span:last-child { transform:translateX(-100%); }


.sowlr .tip { position:fixed; z-index:50; pointer-events:none; background:var(--navy); color:#fff; padding:8px 10px; border-radius:8px; font-size:12px; line-height:1.4; box-shadow:0 8px 24px -8px rgba(0,0,0,.45); max-width:260px; opacity:0; transform:translateY(4px); transition:opacity .12s, transform .12s; }
.sowlr .tip.show { opacity:1; transform:none; }
.sowlr .tip b { font-size:13px; } .sowlr .tip .row { display:flex; gap:12px; justify-content:space-between; min-height:0; padding:0; animation:none; } .sowlr .tip .row:hover { background:none; }
.sowlr .tip i { display:inline-block; width:10px; height:10px; border-radius:50%; vertical-align:middle; margin-right:6px; }
.sowlr .empty { padding:28px; text-align:center; color:var(--muted); border:1px dashed var(--axis); border-radius:var(--r); } .sowlr.sowlr-md .grid, .sowlr.sowlr-md .grid.three { grid-template-columns:1fr; } .sowlr.sowlr-md .card.with-side { grid-template-columns:1fr; } .sowlr.sowlr-md .side { flex-direction:row; flex-wrap:wrap; } .sowlr.sowlr-md .sbtn { border-color:var(--hairline); } 
  .sowlr.sowlr-sm { --gutter:14px; }
  .sowlr.sowlr-sm .sowlr-hero { padding:22px 0 18px; } .sowlr.sowlr-sm .hero-in { align-items:stretch; } .sowlr.sowlr-sm .page-switch { width:100%; } .sowlr.sowlr-sm .pbtn { min-width:0; }
  .sowlr.sowlr-sm .sections, .sowlr.sowlr-sm .subviews { display:none; }
  .sowlr.sowlr-sm .m-nav { display:block; background:var(--surface); border-bottom:1px solid var(--hairline); } .sowlr.sowlr-sm .m-nav .wrap { display:grid; gap:8px; padding:10px var(--gutter); }
  .sowlr.sowlr-sm .m-nav label { font-size:11px; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
  .sowlr.sowlr-sm .m-nav select { width:100%; min-height:42px; padding:8px 34px 8px 12px; border:1px solid var(--hairline); border-radius:10px; background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23596375' stroke-width='1.6'/></svg>") no-repeat right 12px center; appearance:none; -webkit-appearance:none; font:inherit; font-weight:600; }
  .sowlr.sowlr-sm { overflow-x:clip; } .sowlr.sowlr-sm .controls-bar .wrap, .sowlr.sowlr-sm .hero-in, .sowlr.sowlr-sm .kpis, .sowlr.sowlr-sm .grid, .sowlr.sowlr-sm .card { max-width:100%; min-width:0; }
  .sowlr.sowlr-sm .controls-bar { position:static; } .sowlr.sowlr-sm .sowlr-main { padding-top:24px; } .sowlr.sowlr-sm .bar-title { font-size:18px; } .sowlr.sowlr-sm .legend-row:has(.seg.sort) { flex-wrap:wrap; } .sowlr.sowlr-sm .seg.sort { width:100%; display:flex; } .sowlr.sowlr-sm .seg.sort button { flex:1 1 0; min-width:0; padding:9px 4px; font-size:12.5px; white-space:nowrap; } .sowlr.sowlr-sm .controls-bar .wrap { gap:8px; } .sowlr.sowlr-sm .fld { width:100%; min-width:0; } .sowlr.sowlr-sm .fld label { flex:0 0 auto; }
  .sowlr.sowlr-sm .seg:not(.unit) { width:100%; min-width:0; display:flex; } .sowlr.sowlr-sm .seg:not(.unit) button { flex:1 1 0; min-width:0; text-align:center; padding:9px 4px; font-size:12.5px; line-height:1.2; white-space:normal; }
  .sowlr.sowlr-sm .card-head { flex-wrap:wrap; } .sowlr.sowlr-sm .seg.unit { flex:0 0 auto; margin-left:auto; } .sowlr.sowlr-sm .legend-row { flex-wrap:nowrap; }
  .sowlr.sowlr-sm select.sel { width:100%; max-width:none; min-width:0; flex:1 1 auto; color:var(--text); }
  .sowlr.sowlr-sm .m-nav select { color:var(--text); } .sowlr.sowlr-sm .sample-note { white-space:normal; max-width:100%; }
  .sowlr.sowlr-sm .kpis { grid-template-columns:1fr; gap:10px; } .sowlr.sowlr-sm .kpi { padding:14px; } .sowlr.sowlr-sm .kpi .v { font-size:26px; }
  .sowlr.sowlr-sm .row { grid-template-columns:22px 1fr auto; grid-template-areas:"n name v" "track track track"; gap:4px 8px; padding:8px 4px; }
  .sowlr.sowlr-sm .row .n { grid-area:n; } .sowlr.sowlr-sm .row .name { grid-area:name; font-size:13px; white-space:normal; } .sowlr.sowlr-sm .row .v { grid-area:v; flex-direction:row; align-items:baseline; gap:6px; } .sowlr.sowlr-sm .row .v small { white-space:nowrap; font-size:11.5px; }
  .sowlr.sowlr-sm .row .track, .sowlr.sowlr-sm .row .ticks { grid-area:track; } .sowlr.sowlr-sm .ticks { height:14px; margin:2px 0 0; } .sowlr.sowlr-sm .ticks span { font-size:10px; }
  .sowlr.sowlr-sm .donut-grid, .sowlr.sowlr-sm .donut-grid.n3, .sowlr.sowlr-sm .donut-grid.n4 { grid-template-columns:1fr 1fr; } .sowlr.sowlr-sm .fld.compare { width:100%; } .sowlr.sowlr-sm .cmp-btn { width:100%; justify-content:center; padding:11px; } .sowlr.sowlr-sm .cmp-tag { flex:1 1 100%; justify-content:center; flex-wrap:wrap; text-align:center; } .sowlr.sowlr-sm .cmp-years { grid-template-columns:1fr 1fr; }
  .sowlr.sowlr-sm .cmp-tools input[type="search"] { width:100%; } .sowlr.sowlr-sm .cmp-head { flex-direction:column; align-items:stretch; } .sowlr.sowlr-sm .cmp-tools { width:100%; } .sowlr.sowlr-sm .cmp-tools .seg { width:100%; display:flex; } .sowlr.sowlr-sm .cmp-tools .seg button { flex:1 1 0; min-width:0; white-space:nowrap; padding:9px 2px; font-size:12.5px; text-align:center; }
  .sowlr.sowlr-sm .fld input.sel { width:100%; flex:1 1 auto; }

@media (prefers-reduced-motion: reduce) { .sowlr *, .sowlr *::before, .sowlr *::after { animation:none !important; transition:none !important; } }
@media print { .sowlr .card { box-shadow:none; break-inside:avoid; } }

/* plugin-only bits */
.sowlr-hero.compact { padding:14px 0; } .sowlr-hero.compact .hero-in { justify-content:flex-end; }
.sowlr .sowlr-hero .sowlr-h1 { margin:6px 0 4px; padding:0; font-family:inherit; font-size:clamp(24px,3vw,34px); line-height:1.15; letter-spacing:-.01em; color:#fff !important; font-weight:800; text-transform:none; }
.sowlr .sowlr-hero p { margin:0; color:#fff !important; font-size:14.5px; }
.sowlr .sowlr-hero .eyebrow { color:#fff; }
.sowlr-live { position:fixed; left:50%; bottom:18px; transform:translateX(-50%) translateY(20px); z-index:60; background:#151E4A; color:#fff; font-size:13px; font-weight:600; padding:9px 14px; border-radius:999px; box-shadow:0 8px 24px -8px rgba(0,0,0,.45); opacity:0; transition:opacity .25s, transform .25s; pointer-events:none; }
.sowlr-live.show { opacity:1; transform:translateX(-50%) translateY(0); }
.sowlr-live i { display:inline-block; width:8px; height:8px; border-radius:50%; background:#3DD68C; margin-right:8px; vertical-align:1px; }
.sowlr .sowlr-empty { padding:40px 20px; text-align:center; color:#69727D; }
.sowlr .tip { text-align:left; }
.sowlr .seg button:disabled { opacity:.4; cursor:not-allowed; }
.sowlr .sowlr-nodata { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:200px; margin-top:8px; padding:20px; text-align:center; border:1px dashed var(--axis); border-radius:10px; background:var(--plane); color:var(--text-2); font-size:13px; }
.sowlr .sowlr-nodata b { color:var(--navy); font-size:14.5px; } .sowlr .sowlr-nodata.compact { min-height:150px; padding:12px; font-size:12px; }
.sowlr .prior.na { background:#FFF7E6; color:#7A4B00; border:1px solid #F5DEA8; }
.sowlr .chart .nodata { font-family:var(--font); font-size:13px; font-weight:700; fill:var(--text-2); } .sowlr .chart .nodata.sub { font-size:11.5px; font-weight:500; fill:var(--muted); }
.sowlr .na-note { margin-top:10px; color:#7A4B00; }
.sowlr .sowlr-key { margin:-4px 0 16px; padding:10px 14px; border-left:3px solid var(--purple); background:var(--purple-soft); color:var(--text); font-size:13px; line-height:1.5; border-radius:0 8px 8px 0; }
.sowlr .row.nodata .name, .sowlr .row.nodata .v { color:var(--muted); font-weight:600; } .sowlr .track.empty { background:repeating-linear-gradient(135deg, var(--plane) 0 6px, #ECEEF2 6px 12px); }
/* freeze panes: a theme with overflow-x:hidden on html AND body makes body a scroll container and kills position:sticky;
   clip hides the same overflow without creating one (class added by sowlr.js, :has() covers the moment before it runs) */
body.sowlr-page, body:has(.sowlr[data-sowlr-config]) { overflow-x:clip !important; overflow-y:visible !important; }
@media print { .sowlr .page-switch, .sowlr .sections, .sowlr .subviews, .sowlr .m-nav, .sowlr .controls-bar, .sowlr-live { display:none !important; } }
