/* svnsn type scale: 16px UI, 18px reading text, 14px supporting text.
   Relative sizes preserve user font preferences. No tiny mobile type scale. */
html{font-size:100%;scroll-padding-top:6rem}
.skip-link{top:0;transform:translateY(-120%)}
.skip-link:focus{transform:translateY(0)}
body{font-size:1rem;line-height:1.6}
h1,h2,h3{overflow-wrap:anywhere}
.page-intro h1{font-size:3.5rem}
:root{--muted:#a6afbd}
.sidebar{width:16.75rem;padding:2rem 1.25rem;overflow-y:auto}
.workspace{margin-left:16.75rem;min-width:0}
.wordmark{font-size:2.5rem}
.sidebar-caption,.sidebar-bottom,.nav-label,.nav-tag{font-size:.875rem;line-height:1.5;color:var(--muted)}
.sidebar-caption{margin:1rem 0 1.5rem}
.sidebar-bottom{padding-top:1.5rem}
.nav-label{letter-spacing:.08em;margin:1.25rem .75rem .35rem}
.nav-link{font-size:1rem;line-height:1.5;min-height:2.75rem;gap:.6rem}
.nav-tag{font-size:.875rem;padding:0 .2rem}
.sidebar nav{gap:.25rem}
.topbar{min-height:5rem;gap:1rem;padding:1rem 2.5rem}
.breadcrumb{font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}
.breadcrumb span{margin:0 .5rem}
.account,.account-name{font-size:1rem}
.account{flex-wrap:wrap;justify-content:flex-end;gap:.75rem}
.account-avatar{width:2rem;height:2rem;font-size:.875rem}
.quiet-button,.button,.button.small{font-size:1rem;line-height:1.4;min-height:2.75rem}
.button.small{padding:.6rem .9rem}
.quiet-button{display:inline-flex;align-items:center;padding:.4rem .25rem}
.button{white-space:normal;text-align:center}
.subtle,.muted,.eyebrow,.access-label,.tag,.visual-caption,.visual-number{font-size:.875rem;line-height:1.5}
.eyebrow{letter-spacing:.1em;color:var(--muted)}
.module-heading{margin-bottom:2rem;flex-wrap:wrap}
.module-heading h1{font-size:2.25rem;line-height:1.2;letter-spacing:-.04em}
.module-heading .subtle{font-size:1rem;max-width:44rem}
.page-intro>p:last-child,.module-copy>p,.home-note p{font-size:1.125rem;line-height:1.65;max-width:42rem}
.module-copy>p{max-width:32rem;margin-bottom:1.5rem}
.module-copy{padding:2rem}
.module-meta{flex-wrap:wrap}
.module-action{font-size:1rem;line-height:1.5;min-height:2.75rem;align-items:center}
.home-note h2{font-size:1.375rem;line-height:1.3}
.home-note{gap:1.25rem;align-items:flex-start}
.home-note>.subtle{white-space:nowrap}
.tag{padding:.2rem .6rem}
footer,footer span{font-size:.875rem;line-height:1.5;color:var(--muted)}
footer{flex-wrap:wrap;gap:.75rem}
.auth{max-width:36rem;padding:2rem}
.auth p,.auth label,.auth input,.auth select{font-size:1rem;line-height:1.6}
.helptext,.auth ul{font-size:.875rem;line-height:1.6}
input,select{font-size:1rem;line-height:1.5;min-height:2.75rem}
label{font-size:1rem;line-height:1.5}
.notice{font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.card-body p,.card-body .eyebrow,.card-body .subtle,.filters,.pagination{font-size:1rem;line-height:1.6}
.filters,.pagination{flex-wrap:wrap;gap:.75rem 1.5rem}
.filters a,.pagination a{display:inline-flex;align-items:center;min-height:2.75rem}
.reading{max-width:46rem}
.reading .prose,.reading>p:not(.eyebrow){font-size:1.125rem;line-height:1.7}
.reading .intro{font-size:1.25rem}
.reading .eyebrow{font-size:.875rem}
.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}

/* CS2 data presentation */
.cs2-module{font-size:1rem;line-height:1.5;--mid:#abb5c3;--dim:#9eabbc;container-type:inline-size;container-name:cs2}
.data-state{font-size:.875rem;line-height:1.5;display:block}
.data-state:before{display:inline-block;width:.4rem;height:.4rem;margin-right:.5rem;vertical-align:middle}
.module-section-label{flex-wrap:wrap;align-items:baseline;margin:1.75rem 0 1rem}
.module-section-label h2{font-size:1.5rem;line-height:1.3}
.module-section-label>span,.module-section-label label{font-size:.875rem;line-height:1.5}
.module-section-label select{font-size:1rem;min-height:2.75rem}
.cs2-module .hdr-stats{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;margin:1.25rem 0 2rem}
.cs2-module .stat-pill{padding:1rem;gap:.5rem;min-height:6rem}
.cs2-module .sp-lbl{font-size:.875rem;line-height:1.35;letter-spacing:0;margin:0}
.cs2-module .sp-val{font-size:1.875rem;line-height:1.15}
.cs2-module .er-wrap{gap:1.25rem;align-items:start}
.cs2-module .er-player.p2-card{padding:1.125rem;gap:.75rem;min-width:0}
.cs2-module .p2-head{margin:0 0 .25rem;gap:.75rem;align-items:baseline}
.cs2-module .p2-name{font-size:1.5rem;line-height:1.3;font-weight:600}
.cs2-module .p2-val{font-size:1.125rem;line-height:1.3;margin:0}
.cs2-module .player-metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:.5rem}
.cs2-module .er-bar-row{display:block;padding:.4rem .6rem;min-height:0;border-radius:.375rem;min-width:0}
.cs2-module .er-bar-label{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.875rem;line-height:1.3;letter-spacing:0;margin:0 0 .15rem;font-weight:450}
.cs2-module .metric-total{font-size:.875rem;font-weight:400;color:var(--mid)}
.cs2-module .metric-reading{display:flex;align-items:baseline;gap:.4rem;white-space:nowrap;min-width:0}
.cs2-module .er-bar-val{font-size:1.25rem;line-height:1.25;font-family:inherit;font-weight:550;min-width:0;white-space:nowrap}
.cs2-module .er-bar-delta{font-size:.875rem;line-height:1.25;min-height:0;text-align:left;white-space:nowrap}
.cs2-module .p2-form{margin-top:.5rem;gap:.5rem;flex-wrap:wrap}
.cs2-module .f-lbl,.cs2-module .f-n{font-size:.875rem;line-height:1.5}
.cs2-module .f-wr{font-size:1rem}
.cs2-module .p2-limit{gap:.5rem;margin:.5rem 0;flex-wrap:wrap}
.cs2-module .p2-limit label,.cs2-module .p2-since{font-size:.875rem;line-height:1.5}
.cs2-module .p2-limit select{font-size:1rem;min-height:2.75rem}
.cs2-module .p2-chart-wrap{width:100%;overflow-x:auto}
.cs2-module .p2-chart-wrap svg{min-width:40rem}
.cs2-module .p2-chip{font-size:.875rem;line-height:1.4;white-space:normal;padding:.4rem .65rem;gap:.35rem}
.cs2-module .p2-chip u{font-size:.875rem;letter-spacing:.02em}
.cs2-module .p2-chips{flex-wrap:wrap}
.cs2-module .p2-no-data{font-size:1rem}
.cs2-module .session-hdr{gap:.6rem;padding:.8rem 1rem;min-height:3.25rem}
.cs2-module .sh-num{font-size:1.125rem;line-height:1.4;white-space:normal}
.cs2-module .sh-record{gap:.3rem;flex-wrap:wrap}
.cs2-module .sh-date,.cs2-module .sh-badge,.cs2-module .sh-wr,.cs2-module .sh-streak{font-size:.875rem;line-height:1.45}
.cs2-module .day-sum{gap:.6rem;padding:1rem}
.cs2-module .ds-row{font-size:1rem;gap:.6rem 1rem}
.cs2-module .ds-name{font-size:1rem;min-width:6.5rem}
.cs2-module .ds-cell{min-width:0;gap:.35rem}
.cs2-module .ds-cell i{font-size:.875rem;letter-spacing:.02em}
.cs2-module .ds-cell b{font-size:1rem}
.cs2-module .mg-cols{grid-template-columns:4rem 10rem minmax(0,1fr) minmax(0,1fr) 1.5rem;gap:.75rem}
.cs2-module .mg-h{padding:.75rem;min-height:6rem}
.cs2-module .mg-cols.col-hd{height:auto;min-height:2.5rem;padding-top:.5rem;padding-bottom:.5rem}
.cs2-module .col-hd .c{font-size:.875rem;letter-spacing:.04em}
.cs2-module .col-hd .c{min-width:0;overflow-wrap:anywhere}
.cs2-module .sc{font-size:1.5rem;line-height:1.2}
.cs2-module .sc-dt{font-size:.875rem;line-height:1.5;letter-spacing:0}
.cs2-module .pp-nm{font-size:1rem;line-height:1.4;max-width:100%;font-weight:550;white-space:normal;overflow-wrap:anywhere}
.cs2-module .pp-row{font-size:.875rem;flex-wrap:wrap;gap:.25rem .35rem;line-height:1.5}
.cs2-module .pp-lbl,.cs2-module .pp-sep,.cs2-module .pp-empty{font-size:.875rem;letter-spacing:0}
.cs2-module .pp-val{font-size:1rem!important}
.cs2-module .thd .tn{font-size:1rem;letter-spacing:.03em}
.cs2-module .ot{font-size:.875rem;letter-spacing:.02em}
.cs2-module .sb{min-width:64rem}
.cs2-module .sb .sbr{min-width:64rem!important}
.cs2-module .sbr.sbhd,.cs2-module .sbhd .c{font-size:.875rem;line-height:1.5}
.cs2-module .sbr.sbb,.cs2-module .spn,.cs2-module .sbn{font-size:1rem;line-height:1.5}
.cs2-module .sbr{padding-top:.65rem;padding-bottom:.65rem}
.cs2-module .mg-d-inner{overflow-x:auto}
.cs2-module .foe-title{font-size:1.125rem;line-height:1.4}
.cs2-module .foe-sub{font-size:.875rem;line-height:1.5}
.cs2-module .foe-hdr{flex-wrap:wrap;min-height:3.25rem}
.cs2-module .foe-table{font-size:1rem;line-height:1.5;min-width:28rem}
.cs2-module .foe-table th{font-size:.875rem;letter-spacing:.02em}
.cs2-module .foe-table td{padding:.65rem .5rem}
.cs2-module .foe-table .foe-name{max-width:none;white-space:normal}
.cs2-module .map-img-wrap:after{font-size:.875rem;line-height:1.25}
.p2-tip,#p2-tip{font-size:1rem;line-height:1.5;max-width:calc(100vw - 1rem)}
.pt-head,.pt-head b,.pt-grid b{font-size:1rem}
.pt-date,.pt-grid i,.pt-hint{font-size:.875rem;line-height:1.5}
.cs2-module .mn,.cs2-module .dt,.cs2-module .hv,.cs2-module .cv{font-size:.875rem!important}
.cs2-module .mg,.cs2-module .session{scroll-margin-top:6rem}

/* Django administration keeps its own layout, using the same readable scale. */
.svnsn-admin{font-size:1rem;line-height:1.6}
.svnsn-admin *{box-sizing:border-box}
.svnsn-admin #container,.svnsn-admin .main,.svnsn-admin .content,.svnsn-admin #content{min-width:0;max-width:100%}
.svnsn-admin #branding{min-width:0;max-width:100%}
.svnsn-admin #user-tools{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.svnsn-admin #header nav{min-width:0;max-width:100%}
.svnsn-admin #header nav,.svnsn-admin #user-tools{font-size:.875rem!important;line-height:1.5}
.svnsn-admin #content h1{font-size:1.75rem;line-height:1.3}
.svnsn-admin #content h2,.svnsn-admin .module caption{font-size:1.125rem;line-height:1.4}
.svnsn-admin #content p,.svnsn-admin #content td,.svnsn-admin #content th,.svnsn-admin #content label,.svnsn-admin #content li{font-size:1rem;line-height:1.5}
.svnsn-admin input,.svnsn-admin select,.svnsn-admin textarea,.svnsn-admin button{font-size:1rem;line-height:1.5}
.svnsn-admin .help,.svnsn-admin .helptext,.svnsn-admin #content .help,.svnsn-admin .object-tools a,.svnsn-admin .breadcrumbs{font-size:.875rem;line-height:1.5}
.svnsn-admin #nav-sidebar th,.svnsn-admin #nav-sidebar td,.svnsn-admin #nav-sidebar caption{font-size:.875rem;line-height:1.5}
.svnsn-admin #header nav a{padding:.3rem 0;min-height:1.5rem}
.svnsn-admin #header nav{flex-wrap:wrap}
.svnsn-admin #logout-form button{font-size:.875rem!important;line-height:1.5}
.svnsn-admin #content a.button{font-size:1rem;line-height:1.5}
.svnsn-admin .datetimeshortcuts,.svnsn-admin .datetimeshortcuts a{font-size:.875rem!important;line-height:1.5}
.svnsn-admin .calendarbox,.svnsn-admin .clockbox,.svnsn-admin .calendarbox a,.svnsn-admin .clockbox a{font-size:.875rem;line-height:1.5}
.svnsn-admin #header{max-height:40vh;overflow:auto}

@media(max-width:90rem){.cs2-module .er-wrap{grid-template-columns:1fr}.module-copy{padding:1.5rem}}
@media(max-width:70rem){
  .sidebar{width:15rem;padding:1.5rem 1rem}.workspace{margin-left:15rem}
  .nav-link{font-size:1rem;gap:.5rem;padding:.65rem .6rem}.nav-tag{display:none}
  .topbar{padding:1rem 1.5rem}.account-name{display:none}
}
@media(max-width:60rem){
  .cs2-module .mg-cols{grid-template-columns:3.5rem minmax(0,1fr) 1.5rem!important;gap:.6rem!important;padding:.75rem!important}
  .cs2-module .mg-h>.pp-hide-mobile{display:none!important}
  .cs2-module .mg-h>.pp-show-mobile{display:flex!important;grid-column:1/-1;grid-row:2;min-width:0}
  .cs2-module .mg-h>.arr{grid-column:3;grid-row:1}
  .cs2-module .pp-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;width:100%}
  .cs2-module .mg-cols.col-hd{display:none}
}
@media(max-width:48rem){
  .sidebar{width:4rem;padding:1.5rem .375rem;overflow-y:auto}.workspace{margin-left:4rem}
  .sidebar .wordmark{font-size:1.125rem}.sidebar-caption,.nav-label,.nav-tag,.sidebar-bottom{display:none}
  .sidebar nav{margin-top:1.5rem;gap:.75rem}.nav-link{font-size:0;padding:.75rem;min-height:2.75rem;gap:0}
  .nav-link svg{width:1.375rem;height:1.375rem}
  .topbar{padding:.75rem 1rem;min-height:4.5rem;flex-wrap:wrap;align-items:center;gap:.5rem}
  .breadcrumb{font-size:.875rem}.account{justify-content:flex-start;gap:.5rem}.account-avatar{display:none}
  .button.small,.quiet-button{font-size:.875rem}.button.small{padding:.5rem .65rem}
  main{padding:1.5rem 1rem}.module-heading h1{font-size:1.875rem}
  .module-heading .subtle{font-size:1rem}.page-intro h1{font-size:2.25rem;letter-spacing:-.04em}
  .page-intro>p:last-child,.module-copy>p,.home-note p{font-size:1.125rem}
  .module-feature{grid-template-columns:1fr}.module-copy{padding:1.25rem}.module-copy h3{font-size:1.875rem}
  .module-meta{align-items:flex-start;gap:.5rem}.access-label,.tag{font-size:.875rem}
  .module-visual{min-height:14rem}.visual-caption{left:1rem;bottom:1rem;letter-spacing:.05em}
  .home-note h2{font-size:1.25rem}.home-note p{font-size:1rem}
  .auth{padding:1.25rem 1rem}.auth h1{font-size:1.875rem}
  footer{margin-left:1rem;margin-right:1rem}footer span{font-size:.875rem}
  .cs2-module .hdr-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .cs2-module .stat-pill{padding:.8rem;min-height:5.75rem}
  .cs2-module .sp-lbl{font-size:.875rem}.cs2-module .sp-val{font-size:1.75rem}
  .cs2-module .er-player.p2-card{padding:.875rem}.cs2-module .player-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cs2-module .er-bar-row{padding:.5rem}.cs2-module .er-bar-val{font-size:1.25rem}
  .cs2-module .session-hdr{padding:.75rem}.cs2-module .sh-num{font-size:1rem}
  .cs2-module .sh-record{margin-left:0}.cs2-module .ds-name{width:100%}
  .cs2-module .pp-pair{grid-template-columns:1fr;gap:.75rem}
  .module-section-label>span{display:block}.module-section-label label{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}
  .module-section-label select{margin:0;max-width:100%}
  .cs2-module .p2-limit{justify-content:flex-start}.cs2-module .p2-since{width:100%}
  .skip-link{left:4rem}
  .svnsn-admin #header{padding:1rem;align-items:flex-start}
  .svnsn-admin #branding,.svnsn-admin #user-tools,.svnsn-admin #header nav{flex-basis:100%;width:100%;margin:0;white-space:normal}
  .svnsn-admin #content{padding:1rem;width:100%}
  .svnsn-admin #content-main,.svnsn-admin .form-row,.svnsn-admin .flex-container{min-width:0;max-width:100%}
  .svnsn-admin .selector,.svnsn-admin .selector-available,.svnsn-admin .selector-chosen{width:100%;max-width:100%;float:none}
  .svnsn-admin .selector-filter{max-width:100%}
  .svnsn-admin .selector-filter input{max-width:calc(100% - 2rem)}
}
@media(max-width:32rem){.cs2-module .player-metrics{grid-template-columns:1fr}.cs2-module .er-bar-row{padding:.5rem .65rem}.cs2-module .metric-reading{gap:.75rem}.home-note{flex-wrap:wrap}.account{width:100%}}
@container cs2 (max-width:48rem){
  .cs2-module .er-wrap{grid-template-columns:1fr}
  .cs2-module .mg-cols{grid-template-columns:3.5rem minmax(0,1fr) 1.5rem!important;gap:.6rem!important;padding:.75rem!important}
  .cs2-module .mg-h>.pp-hide-mobile{display:none!important}
  .cs2-module .mg-h>.pp-show-mobile{display:flex!important;grid-column:1/-1;grid-row:2;min-width:0}
  .cs2-module .mg-h>.arr{grid-column:3;grid-row:1}
  .cs2-module .mg-cols.col-hd{display:none}
  .cs2-module .pp-pair{display:grid;grid-template-columns:1fr;gap:.75rem;width:100%}
}
@container cs2 (max-width:64rem){.cs2-module .hdr-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container cs2 (max-width:32rem){.cs2-module .hdr-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cs2-module .sp-lbl{overflow-wrap:anywhere}
