/* DS10: S10 BMS access and invites. On top of tokens.css, app.css, bms.css. Tokens only. */
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/onest-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/onest-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

body{font-family:var(--font-body);color:var(--color-body);margin:0;background:var(--color-bg)}
.ds10-main{max-width:1100px}
.ds10-main a:focus-visible,.ds10-main button:focus-visible,.ds10-main summary:focus-visible,
.admin-nav a:focus-visible,.admin-sidebar-foot a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}
.ds10-crumb{font-size:var(--t-xs);color:var(--color-muted);margin-bottom:var(--s-2)}
.ds10-crumb a{color:var(--color-accent-text);font-weight:700;text-decoration:none}
.ds10-who{font-size:var(--t-sm);color:var(--color-muted);display:block;margin-bottom:var(--s-2)}
.ds10-who b{color:var(--color-ink)}

/* styled radio and checkbox: the native input is hidden, the span draws it (C6) */
.ds10-pick{position:relative;display:inline-flex;align-items:center;cursor:pointer;margin:0}
.ds10-pick input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;inset:0}
.ds10-box{width:20px;height:20px;border:2px solid var(--color-muted);border-radius:6px;background:var(--color-card);display:inline-block;position:relative;transition:.12s;flex:0 0 auto}
.ds10-box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--color-on-accent);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:.12s}
.ds10-pick input:checked + .ds10-box{background:var(--color-accent);border-color:var(--color-accent)}
.ds10-pick input:checked + .ds10-box::after{transform:rotate(45deg) scale(1)}
.ds10-pick input:focus-visible + .ds10-box{box-shadow:0 0 0 3px var(--color-accent-wash),0 0 0 5px var(--color-accent)}
.ds10-pick:hover .ds10-box{border-color:var(--color-accent-text)}
.ds10-dot{width:20px;height:20px;border:2px solid var(--color-muted);border-radius:50%;background:var(--color-card);display:inline-block;position:relative;flex:0 0 auto}
.ds10-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--color-accent);transform:scale(0);transition:.12s}
.ds10-pick input:checked + .ds10-dot{border-color:var(--color-accent)}
.ds10-pick input:checked + .ds10-dot::after{transform:scale(1)}
.ds10-pick input:focus-visible + .ds10-dot{box-shadow:0 0 0 3px var(--color-accent-wash),0 0 0 5px var(--color-accent)}

/* course picker (radio cards instead of a browser select) */
.ds10-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s-3);margin-bottom:var(--s-5)}
.ds10-course{display:flex;gap:var(--s-3);align-items:flex-start;background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius);padding:var(--s-4);cursor:pointer;position:relative;transition:.12s}
.ds10-course:hover{border-color:var(--color-accent-text)}
.ds10-course:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-wash);box-shadow:var(--shadow)}
.ds10-course:has(input:focus-visible){outline:3px solid var(--color-accent);outline-offset:2px}
.ds10-course input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ds10-course b{display:block;color:var(--color-ink);font-size:var(--t-base)}
.ds10-course span.m{display:block;font-size:var(--t-sm);color:var(--color-muted);margin-top:2px}
.ds10-course .ds10-dot{margin-top:2px}
.ds10-course:has(input:checked) .ds10-dot{border-color:var(--color-accent)}
.ds10-course:has(input:checked) .ds10-dot::after{transform:scale(1)}

/* access window card */
.ds10-window{display:grid;grid-template-columns:1.1fr 1.9fr;gap:0}
.ds10-win-kb{padding:var(--s-4) var(--s-5);border-right:1px solid var(--color-line)}
.ds10-win-kb h4,.ds10-win-time h4{margin:0 0 var(--s-2);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-weight:800}
.ds10-win-kb .t{font-weight:800;color:var(--color-ink);font-size:var(--t-lg)}
.ds10-win-kb p{margin:var(--s-1) 0 var(--s-3);font-size:var(--t-sm);color:var(--color-muted)}
.ds10-win-time{padding:var(--s-4) var(--s-5)}
.ds10-line{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--s-3);position:relative;margin-top:var(--s-4)}
.ds10-line::before{content:"";position:absolute;left:8px;right:8px;top:8px;height:4px;border-radius:2px;background:var(--color-line)}
.ds10-line::after{content:"";position:absolute;left:8px;width:calc(66% - 8px);top:8px;height:4px;border-radius:2px;background:var(--color-accent)}
.ds10-stop{position:relative;padding-top:2.2rem}
.ds10-stop::before{content:"";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--color-card);border:4px solid var(--color-accent)}
.ds10-stop.is-end::before{border-color:var(--color-ink)}
.ds10-stop.is-mid::before{background:var(--color-accent)}
.ds10-stop b{display:block;color:var(--color-ink);font-size:var(--t-sm)}
.ds10-stop span{display:block;font-size:var(--t-sm);color:var(--color-muted);margin-top:2px}
.ds10-rule{margin:var(--s-4) 0 0;padding:var(--s-3) var(--s-4);background:var(--color-bg);border-radius:var(--radius-sm);font-size:var(--t-sm)}
.ds10-rule b{color:var(--color-ink)}

/* counts + filter */
.ds10-counts{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3);margin-bottom:var(--s-4)}
.ds10-count{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);border-top:4px solid var(--color-line)}
.ds10-count .n{display:block;font-family:var(--font-head);font-weight:800;font-size:var(--t-2xl);color:var(--color-ink);line-height:1}
.ds10-count .l{display:block;font-size:var(--t-xs);font-weight:700;color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--s-1)}
.ds10-count.s-ni{border-top-color:var(--color-muted)}
.ds10-count.s-in{border-top-color:var(--color-warning)}
.ds10-count.s-si{border-top-color:var(--color-info)}
.ds10-count.s-pw{border-top-color:var(--color-success)}
.ds10-count.s-all{border-top-color:var(--color-accent)}
.ds10-filterbar{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--s-4)}
.ds10-chips{display:flex;gap:.4rem;flex-wrap:wrap;flex:1}
.ds10-chip{position:relative;display:inline-flex;align-items:center;gap:.4rem;background:var(--color-card);border:1.5px solid var(--color-line);border-radius:999px;padding:4px 14px;font-size:var(--t-xs);font-weight:700;color:var(--color-muted);cursor:pointer;white-space:nowrap}
.ds10-chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ds10-chip:hover{border-color:var(--color-accent-text)}
.ds10-chip:has(input:checked){background:var(--color-accent-wash);border-color:var(--color-accent-text);color:var(--color-accent-text)}
.ds10-chip:has(input:focus-visible){outline:3px solid var(--color-accent);outline-offset:2px}
.ds10-chip em{font-style:normal;font-weight:800;color:var(--color-ink)}
.ds10-sel{position:relative;display:inline-block}
.ds10-sel summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius-sm);padding:.35rem var(--s-3);font-size:var(--t-sm);font-weight:600;color:var(--color-ink)}
.ds10-sel summary::-webkit-details-marker{display:none}
.ds10-sel summary::after{content:"";width:8px;height:8px;border:solid var(--color-muted);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px)}
.ds10-sel ul{position:absolute;right:0;z-index:5;list-style:none;margin:4px 0 0;padding:var(--s-1);min-width:180px;background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.ds10-sel li{padding:.4rem var(--s-3);font-size:var(--t-sm);border-radius:6px;color:var(--color-body)}
.ds10-sel li.is-on{background:var(--color-accent-wash);color:var(--color-accent-text);font-weight:700}

/* list */
.ds10-form{counter-reset:sel}
.ds10-head,.ds10-row{display:grid;grid-template-columns:44px minmax(220px,2.2fr) 130px 1.1fr 1.3fr 130px;gap:var(--s-3);align-items:center;padding:var(--s-3) var(--s-4)}
.ds10-head{background:var(--color-bg);border-bottom:1px solid var(--color-line);font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted)}
.ds10-row{border-top:1px solid var(--color-line)}
.ds10-head + .ds10-row{border-top:none}
.ds10-row:hover{background:var(--color-accent-wash)}
.ds10-row:has(input:checked){background:var(--color-accent-wash)}
.ds10-row:has(input:checked){counter-increment:sel}
.ds10-who-cell{display:flex;gap:var(--s-3);align-items:center;min-width:0}
.ds10-who-cell .nm{font-weight:700;color:var(--color-ink);font-size:var(--t-sm)}
.ds10-who-cell .em{font-size:var(--t-xs);color:var(--color-muted);overflow-wrap:anywhere}
.ds10-cell{font-size:var(--t-sm);color:var(--color-body)}
.ds10-cell small{display:block;font-size:var(--t-xs);color:var(--color-muted)}
.ds10-cell .k{display:none}
.ds10-act{text-align:right}
.ds10-act .btn{white-space:nowrap}
.ds10-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--t-xs);font-weight:800;padding:3px 10px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}
.ds10-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ds10-pill.s-ni{background:var(--color-bg);color:var(--color-muted);border:1px solid var(--color-line)}
.ds10-pill.s-in{background:var(--color-warning-wash);color:var(--color-warning-ink)}
.ds10-pill.s-si{background:var(--color-info-wash);color:var(--color-info-ink)}
.ds10-pill.s-pw{background:var(--color-success-wash);color:var(--color-success-ink)}
.ds10-bar{height:5px;border-radius:3px;background:var(--color-line);margin-top:4px;overflow:hidden;max-width:110px}
.ds10-bar i{display:block;height:100%;background:var(--color-accent)}

/* CSS-only filter: the radio in the chip row picks the state */
.ds10-wrap:has(#f-ni:checked) .ds10-row:not([data-s="ni"]),
.ds10-wrap:has(#f-in:checked) .ds10-row:not([data-s="in"]),
.ds10-wrap:has(#f-si:checked) .ds10-row:not([data-s="si"]),
.ds10-wrap:has(#f-pw:checked) .ds10-row:not([data-s="pw"]){display:none}

/* bottom action bar */
.ds10-bar-act{position:sticky;bottom:var(--s-4);margin-top:var(--s-4);display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;background:var(--color-ink);color:var(--color-on-accent);border-radius:var(--radius);padding:var(--s-3) var(--s-4);box-shadow:var(--shadow)}
.ds10-bar-act .sel{font-weight:700;font-size:var(--t-sm);flex:1;min-width:140px}
.ds10-bar-act .sel::before{content:counter(sel)" selected"}
.ds10-bar-act .btn-ghost{color:var(--color-on-accent);border-color:var(--color-muted)}
.ds10-bar-act .btn-ghost:hover{border-color:var(--color-on-accent)}
.ds10-note{font-size:var(--t-xs);color:var(--color-muted);margin-top:var(--s-3)}

/* invite page */
.ds10-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--s-5);align-items:start}
.ds10-sum{padding:var(--s-4)}
.ds10-sum .big{font-family:var(--font-head);font-weight:800;font-size:var(--t-3xl);color:var(--color-ink);line-height:1}
.ds10-sum .big small{font-size:var(--t-sm);font-weight:700;color:var(--color-muted);margin-left:var(--s-2)}
.ds10-meta{display:grid;grid-template-columns:auto 1fr;gap:var(--s-2) var(--s-4);margin:var(--s-4) 0;font-size:var(--t-sm)}
.ds10-meta dt{color:var(--color-muted);font-weight:700}
.ds10-meta dd{margin:0;color:var(--color-ink)}
.ds10-rcpt{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-top:1px solid var(--color-line)}
.ds10-rcpt .x{margin-left:auto;font-size:var(--t-xs);font-weight:700;color:var(--color-accent-text);text-decoration:none}
.ds10-mailmeta{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--color-line);font-size:var(--t-sm);display:grid;grid-template-columns:auto 1fr;gap:var(--s-1) var(--s-4)}
.ds10-mailmeta dt{color:var(--color-muted);font-weight:700}
.ds10-mailmeta dd{margin:0;color:var(--color-ink)}
.ds10-mailstage{padding:var(--s-5) var(--s-4);background:var(--color-bg)}
.ds10-mailstage .bms-eml-body p{margin:0 0 var(--s-3)}
.ds10-mailstage .bms-eml-body .small{font-size:var(--t-xs);color:var(--color-muted)}
.ds10-send{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center;margin-top:var(--s-4)}
.ds10-sent{display:none}
.ds10-sent:target{display:block}
.ds10-sent:target ~ .ds10-confirm{display:none}
.ds10-donecard{border-left:4px solid var(--color-success);padding:var(--s-4) var(--s-5)}
.ds10-donecard h2{margin:0 0 var(--s-2);font-size:var(--t-lg);color:var(--color-ink)}

@media(max-width:900px){
  .ds10-window,.ds10-grid{grid-template-columns:1fr}
  .ds10-win-kb{border-right:none;border-bottom:1px solid var(--color-line)}
  .ds10-counts{grid-template-columns:repeat(3,1fr)}
  .ds10-head{display:none}
  .ds10-row{grid-template-columns:44px 1fr;row-gap:var(--s-2)}
  .ds10-row > .ds10-cell,.ds10-row > .ds10-act{grid-column:2}
  .ds10-cell .k{display:inline;color:var(--color-muted);font-weight:700;font-size:var(--t-xs);margin-right:var(--s-2);text-transform:uppercase;letter-spacing:.05em}
  .ds10-act{text-align:left}
  .ds10-line{grid-template-columns:1fr;gap:var(--s-4)}
  .ds10-line::before,.ds10-line::after{display:none}
  .ds10-stop{padding-top:0;padding-left:2.4rem;min-height:24px}
}
@media(max-width:520px){
  .ds10-counts{grid-template-columns:repeat(2,1fr)}
  .ds10-line{grid-template-columns:1fr;gap:var(--s-4)}
  .ds10-line::before,.ds10-line::after{display:none}
  .ds10-stop{padding-top:0;padding-left:var(--s-6)}
  .ds10-bar-act{bottom:0;border-radius:var(--radius-sm)}
}

.bms-av.is-muted{background:var(--color-bg);color:var(--color-muted);border:1px solid var(--color-line)}
.ds10-mailstage .bms-eml-body h1{margin:0 0 var(--s-3)}

/* BMS links: toast, progress, keyboard handles (lane BMSLINKS) */
[hidden]{display:none !important}
.bms-toast{position:fixed;right:var(--s-5);bottom:var(--s-5);z-index:60;max-width:min(28rem,calc(100vw - 2rem));display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;background:var(--color-ink);color:var(--color-on-accent);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);font-size:var(--t-sm);font-weight:700;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.bms-toast.is-on{opacity:1;transform:none;pointer-events:auto}
.bms-toast a{color:var(--color-on-accent);text-decoration:underline}
@media(prefers-reduced-motion:reduce){.bms-toast{transition:none}}
.bms-pub-prog{display:inline-flex;align-items:center;gap:var(--s-2);min-width:12rem;margin-left:var(--s-3);vertical-align:middle;font-size:var(--t-sm);font-weight:700;color:var(--color-body)}
.bms-pub-prog .bms-capbar-track{flex:1;height:6px;background:var(--color-line);border-radius:3px;overflow:hidden}
.bms-pub-prog .bms-capbar-fill{height:100%;background:var(--color-success);border-radius:3px}
a[aria-disabled="true"]{opacity:.6;pointer-events:none}
.bms-fb-handle[tabindex]{touch-action:none;cursor:grab}
.bms-fb-handle[tabindex]:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
.is-dragging{box-shadow:var(--shadow);background:var(--color-card)}
.ds-editpanel--text{grid-template-columns:1fr}
.ds10-flash{margin-bottom:var(--s-4)}
