/* DS9B: BMS lesson editor and pre-course settings. On top of tokens.css, app.css, bms.css (verbatim copies). */
@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)}
.ds9b-main{max-width:1180px}
.ds9b a:focus-visible,.ds9b button:focus-visible,.ds9b summary:focus-visible,.ds9b .admin-nav a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}
.ds-crumb{font-size:var(--t-sm);color:var(--color-muted)}
.ds-crumb a{color:var(--color-accent-text);font-weight:700;text-decoration:none}
.ds-crumb a:hover{text-decoration:underline}
.ds-cols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:var(--s-5);align-items:start}
.ds-cols > aside{position:sticky;top:var(--s-4)}
@media(max-width:1000px){.ds-cols{grid-template-columns:1fr}.ds-cols > aside{position:static}}
.ds-note{font-size:var(--t-xs);color:var(--color-muted);line-height:1.5;margin:0}
.ds-note b{color:var(--color-ink)}
.ds-pad{padding:var(--s-4)}
.ds-stack{display:flex;flex-direction:column;gap:var(--s-4)}
.ds-row{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}
.ds-sp{flex:1}
.ds-mono{font-family:ui-monospace,Consolas,monospace;font-size:var(--t-xs);background:var(--color-bg);border:1px solid var(--color-line);border-radius:4px;padding:1px 6px;color:var(--color-ink)}

/* ---- controls (no browser look) ---- */
input.ds-field,.ds-field{width:100%;box-sizing:border-box;font:inherit;font-size:var(--t-sm);color:var(--color-ink);background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius-sm);padding:.55rem .75rem;-webkit-appearance:none;appearance:none;transition:border-color .12s,box-shadow .12s}
.ds-field:hover{border-color:var(--color-muted)}
.ds-field:focus,.ds-field:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-wash)}
.ds-field::placeholder{color:var(--color-muted)}
input.ds-field.ds-field--title{font-size:var(--t-lg);font-weight:800;font-family:var(--font-head);padding:.65rem .85rem}
input.ds-field.ds-field--link{padding-left:2.5rem}
.ds-label{display:block;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--color-muted);margin-bottom:.3rem}
.ds-hint{font-size:var(--t-xs);color:var(--color-muted);margin-top:.3rem}
.ds-inputwrap{position:relative}
.ds-inputwrap .ds-ico{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:.9rem;height:.9rem;pointer-events:none}
.ds-ico{display:inline-block;width:.9rem;height:.9rem;border:2px solid var(--color-muted);border-radius:50%;box-sizing:border-box;position:relative}
.ds-ico--link{border-radius:4px;transform:rotate(-30deg)}
.ds-inputwrap .ds-ico--link{transform:translateY(-50%) rotate(-30deg)}
.ds-ico--search{border-radius:50%}
.ds-ico--search::after{content:"";position:absolute;width:2px;height:.4rem;background:var(--color-muted);right:-3px;bottom:-5px;transform:rotate(-45deg)}

/* custom select: details + list, pure CSS */
.ds-sel{position:relative;width:100%}
.ds-sel > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--s-2);font-size:var(--t-sm);font-weight:700;color:var(--color-ink);background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius-sm);padding:.55rem .75rem;min-height:2.4rem;box-sizing:border-box}
.ds-sel > summary::-webkit-details-marker{display:none}
.ds-sel > summary:hover{border-color:var(--color-muted)}
.ds-sel[open] > summary{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-wash)}
.ds-sel > summary .ds-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-sel > summary::after{content:"";width:.5rem;height:.5rem;border-right:2px solid var(--color-muted);border-bottom:2px solid var(--color-muted);transform:rotate(45deg) translateY(-2px);flex:0 0 auto;margin-left:auto}
.ds-sel[open] > summary::after{transform:rotate(-135deg) translateY(-2px)}
.ds-sel-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;list-style:none;margin:0;padding:var(--s-1);background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.ds-sel-list li{display:flex;align-items:center;gap:var(--s-2);padding:.5rem .6rem;border-radius:6px;font-size:var(--t-sm);font-weight:600;color:var(--color-ink);cursor:pointer}
.ds-sel-list li:hover{background:var(--color-accent-wash);color:var(--color-accent-text)}
.ds-sel-list li.is-sel{background:var(--color-accent-wash);color:var(--color-accent-text);font-weight:800}
.ds-sel-list li.is-off{color:var(--color-muted);cursor:default}
.ds-sel-list li.is-off:hover{background:transparent;color:var(--color-muted)}
.ds-sel-list li small{margin-left:auto;font-weight:600;color:var(--color-muted);font-size:var(--t-xs)}

/* custom checkbox and radio */
.ds-opt{display:flex;align-items:flex-start;gap:var(--s-3);font-size:var(--t-sm);font-weight:600;color:var(--color-ink);cursor:pointer;line-height:1.35}
.ds-opt small{display:block;font-weight:400;color:var(--color-muted);font-size:var(--t-xs);margin-top:.1rem}
.ds-opt input{-webkit-appearance:none;appearance:none;flex:0 0 auto;width:1.15rem;height:1.15rem;margin:.05rem 0 0;border:1.5px solid var(--color-muted);background:var(--color-card);position:relative;cursor:pointer;transition:.12s;padding:0}
.ds-opt input[type=checkbox]{border-radius:5px}
.ds-opt input[type=radio]{border-radius:50%}
.ds-opt input:hover{border-color:var(--color-ink)}
.ds-opt input:checked{background:var(--color-ink);border-color:var(--color-ink)}
.ds-opt input[type=checkbox]:checked::after{content:"";position:absolute;left:.3rem;top:.08rem;width:.3rem;height:.58rem;border:solid var(--color-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ds-opt input[type=radio]:checked::after{content:"";position:absolute;inset:.22rem;border-radius:50%;background:var(--color-on-accent)}
.ds-opt input:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}

/* file picker: label button, input hidden but focusable */
.ds-file{position:relative;cursor:pointer}
.ds-file input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.ds-file:focus-within{outline:3px solid var(--color-accent);outline-offset:2px}

.btn-ink{background:var(--color-ink);color:var(--color-on-accent)}
.btn-ink:hover{background:var(--color-body);text-decoration:none}
.btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.ds-linkbtn{background:none;border:0;padding:0;font:inherit;font-size:var(--t-xs);font-weight:700;color:var(--color-accent-text);cursor:pointer;text-decoration:none}
.ds-linkbtn:hover{text-decoration:underline}
.ds-linkbtn--danger{color:var(--color-danger)}

/* tags and pills */
.ds-tag{display:inline-block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:6px;background:var(--color-bg);color:var(--color-muted);border:1px solid var(--color-line);white-space:nowrap}
.ds-tag--proposed{background:var(--color-accent-wash);color:var(--color-accent-text);border-color:var(--color-accent-text)}
.ds-tag--trap{background:var(--color-danger-wash);color:var(--color-danger-ink);border-color:var(--color-danger)}
.ds-tag--example{background:var(--color-info-wash);color:var(--color-info-ink);border-color:var(--color-info)}
.pill.amber{background:var(--color-warning-wash);color:var(--color-warning-ink)}

/* ---- lesson editor: blocks ---- */
.ds-titlebox{padding:var(--s-4);display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);align-items:end}
@media(max-width:700px){.ds-titlebox{grid-template-columns:1fr}}
.ds-blocks{list-style:none;margin:0;padding:0}
.ds-block{border-top:1px solid var(--color-line);display:flex;align-items:center;gap:var(--s-3);padding:.3rem var(--s-4);min-height:44px;background:var(--color-card)}
.ds-block:first-child{border-top:0}
.ds-block:hover{background:var(--color-accent-wash)}
.ds-block.is-selected{background:var(--color-accent-wash);box-shadow:inset 3px 0 0 var(--color-accent-text)}
.ds-block-btype{flex:0 0 3.6rem;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:3px 0;border-radius:6px;background:var(--color-bg);color:var(--color-ink);border:1px solid var(--color-line)}
.ds-block-btype.t-heading{background:var(--color-ink);color:var(--color-on-accent);border-color:var(--color-ink)}
.ds-block-btype.t-image{background:var(--color-info-wash);color:var(--color-info-ink);border-color:transparent}
.ds-block-btype.t-youtube{background:var(--color-danger-wash);color:var(--color-danger-ink);border-color:transparent}
.ds-block-btype.t-pdf{background:var(--color-warning-wash);color:var(--color-warning-ink);border-color:transparent}
.ds-block-btype.t-callout{background:var(--color-success-wash);color:var(--color-success-ink);border-color:transparent}
.ds-block-body{flex:1;min-width:0;font-size:var(--t-sm);color:var(--color-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-block-body.is-h{font-weight:800;color:var(--color-ink);font-family:var(--font-head)}
.ds-block-body.is-h2{font-size:var(--t-base)}
.ds-block-body .ds-sub{color:var(--color-muted);font-size:var(--t-xs)}
.ds-block-img{display:flex;align-items:center;gap:var(--s-3)}
.ds-block-img img{width:56px;height:36px;object-fit:cover;border-radius:4px;border:1px solid var(--color-line);flex:0 0 auto}
.ds-block-img span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-yt{display:flex;align-items:center;gap:var(--s-3)}
.ds-yt i{flex:0 0 56px;height:36px;border-radius:4px;background:var(--color-ink);position:relative}
.ds-yt i::after{content:"";position:absolute;left:23px;top:11px;border-left:12px solid var(--color-on-accent);border-top:7px solid transparent;border-bottom:7px solid transparent}
.ds-block .btn{flex:0 0 auto}
.ds-editpanel{border-top:1px solid var(--color-line);background:var(--color-card);padding:var(--s-4);display:grid;grid-template-columns:200px 1fr;gap:var(--s-4)}
.ds-editpanel img{width:100%;height:auto;border-radius:var(--radius-sm);border:1px solid var(--color-line);display:block}
@media(max-width:700px){.ds-editpanel{grid-template-columns:1fr}}
.ds-addrow{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-4);border-top:1px dashed var(--color-line);background:var(--color-bg)}
.ds-addmenu{border-top:1px solid var(--color-accent-text);border-bottom:1px solid var(--color-accent-text);background:var(--color-accent-wash);padding:var(--s-3) var(--s-4)}
.ds-addmenu > summary{list-style:none;cursor:pointer;font-size:var(--t-sm);font-weight:800;color:var(--color-accent-text);display:flex;align-items:center;gap:var(--s-2)}
.ds-addmenu > summary::-webkit-details-marker{display:none}
.ds-addmenu > summary::before{content:"+";display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);font-weight:800}
.ds-addgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);margin-top:var(--s-3)}
@media(max-width:700px){.ds-addgrid{grid-template-columns:repeat(2,1fr)}}
.ds-addgrid a{display:flex;flex-direction:column;gap:2px;padding:var(--s-2) var(--s-3);background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius-sm);text-decoration:none;color:var(--color-ink);font-size:var(--t-sm);font-weight:800}
.ds-addgrid a small{font-weight:400;color:var(--color-muted);font-size:var(--t-xs)}
.ds-addgrid a:hover{border-color:var(--color-accent-text);color:var(--color-accent-text)}
.ds-addgrid a.is-picture{border-color:var(--color-accent-text);background:var(--color-card)}

/* ---- media library (Add picture) ---- */
.ds-tabs{display:flex;gap:var(--s-1);padding:0 var(--s-4);border-bottom:1px solid var(--color-line);background:var(--color-card)}
.ds-tab{padding:.7rem var(--s-3);font-size:var(--t-sm);font-weight:800;color:var(--color-muted);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1px}
.ds-tab.is-active{color:var(--color-accent-text);border-bottom-color:var(--color-accent)}
.ds-media{display:grid;grid-template-columns:minmax(0,1fr) 300px}
@media(max-width:900px){.ds-media{grid-template-columns:1fr}}
.ds-media-main{padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-4);min-width:0}
.ds-drop{border:2px dashed var(--color-muted);border-radius:var(--radius);background:var(--color-bg);padding:var(--s-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s-2)}
.ds-drop strong{font-family:var(--font-head);color:var(--color-ink);font-size:var(--t-lg)}
.ds-drop p{margin:0;font-size:var(--t-sm);color:var(--color-muted)}
.ds-upl{display:flex;align-items:center;gap:var(--s-3);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:var(--s-2) var(--s-3);background:var(--color-card);font-size:var(--t-sm)}
.ds-upl .ds-thumb-sk{width:44px;height:30px;border-radius:4px;background:var(--color-line)}
.ds-upl .bms-capbar{flex:1}
.ds-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3);list-style:none;margin:0;padding:0}
@media(max-width:1200px){.ds-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.ds-grid{grid-template-columns:repeat(3,1fr)}}
.ds-thumb{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;border:2px solid var(--color-line);background:var(--color-bg);cursor:pointer;text-decoration:none}
.ds-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ds-thumb:hover{border-color:var(--color-muted)}
.ds-thumb.is-sel{border-color:var(--color-accent-text);box-shadow:0 0 0 3px var(--color-accent-wash)}
.ds-thumb.is-sel::after{content:"";position:absolute;right:6px;top:6px;width:1.3rem;height:1.3rem;border-radius:5px;background:var(--color-ink);border:2px solid var(--color-card)}
.ds-thumb.is-sel::before{content:"";position:absolute;right:13px;top:8px;width:.3rem;height:.6rem;border:solid var(--color-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg);z-index:2}
.ds-thumb .ds-used{position:absolute;left:0;right:0;bottom:0;background:var(--color-ink);color:var(--color-on-accent);font-size:.68rem;font-weight:700;padding:2px 6px;opacity:.92}
.ds-detail{border-left:1px solid var(--color-line);background:var(--color-bg);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);min-width:0}
@media(max-width:900px){.ds-detail{border-left:0;border-top:1px solid var(--color-line)}}
.ds-detail img{width:100%;height:auto;border-radius:var(--radius-sm);border:1px solid var(--color-line);display:block;background:var(--color-card)}
.ds-sizes{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:var(--s-3)}
.ds-sizes h4{margin:0 0 var(--s-2);font-size:var(--t-sm);color:var(--color-ink)}
.ds-sizes table{width:100%;border-collapse:collapse;font-size:var(--t-xs)}
.ds-sizes td,.ds-sizes th{padding:.2rem 0;text-align:left;border-bottom:1px solid var(--color-line)}
.ds-sizes th{color:var(--color-muted);font-weight:700}
.ds-sizes td:last-child,.ds-sizes th:last-child{text-align:right}
.ds-sizes tr:last-child td{border-bottom:0}
.ds-sizeline{font-size:var(--t-sm);color:var(--color-accent-text);font-weight:700;background:var(--color-accent-wash);border-radius:var(--radius-sm);padding:var(--s-2) var(--s-3);line-height:1.4}

/* ---- list of KBs ---- */
.ds-kb{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;gap:var(--s-4);align-items:center;padding:var(--s-4);border-top:1px solid var(--color-line)}
.ds-kb:first-child{border-top:0}
.ds-kb h4{margin:0;font-family:var(--font-head);font-size:var(--t-base);color:var(--color-ink)}
.ds-kb.is-off{background:var(--color-bg)}
.ds-kb.is-off h4{color:var(--color-muted)}
.ds-kb-meta{font-size:var(--t-sm);color:var(--color-muted);display:flex;flex-direction:column;gap:2px}
.ds-kb-meta b{color:var(--color-ink)}
.ds-kb-act{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){.ds-kb{grid-template-columns:1fr}.ds-kb-act{justify-content:flex-start}}
.ds-courses{overflow:visible}
.ds-course{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:var(--s-4);padding:var(--s-4);border-top:1px solid var(--color-line);align-items:start}
.ds-course:first-of-type{border-top:0}
.ds-course h4{margin:0;font-family:var(--font-head);font-size:var(--t-base);color:var(--color-ink)}
.ds-course .ds-when{font-size:var(--t-sm);color:var(--color-muted)}
@media(max-width:900px){.ds-course{grid-template-columns:1fr}}
.ds-course.is-open-row{background:var(--color-accent-wash);padding-bottom:calc(var(--s-4) + 9rem)}
.ds-window{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);border-top:1px solid var(--color-line);background:var(--color-bg);font-size:var(--t-sm);color:var(--color-body)}

.ds-dup{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);align-items:stretch}
@media(max-width:900px){.ds-dup{grid-template-columns:1fr}}
.ds-dup .bms-widget{margin-bottom:0;display:flex;flex-direction:column}
.ds-dup-trap{border-color:var(--color-danger)}
.ds-dup-prop{border-color:var(--color-accent-text)}
.ds-diagram{display:grid;gap:var(--s-2);padding:var(--s-3);background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-sm);font-size:var(--t-xs)}
.ds-dg-row{display:grid;grid-template-columns:1fr 1.6rem 1fr;align-items:center;gap:var(--s-2)}
.ds-box{border:1.5px solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--s-2);background:var(--color-card);text-align:center;font-weight:700;color:var(--color-ink);line-height:1.25}
.ds-box.is-shared{border-color:var(--color-danger);background:var(--color-danger-wash);color:var(--color-danger-ink)}
.ds-box.is-own{border-color:var(--color-success);background:var(--color-success-wash);color:var(--color-success-ink)}
.ds-arrow{height:2px;background:var(--color-ink);position:relative}
.ds-arrow::after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid var(--color-ink);border-top:5px solid transparent;border-bottom:5px solid transparent}
.ds-arrow.is-red,.ds-arrow.is-red::after{background:var(--color-danger);border-left-color:var(--color-danger)}
.ds-arrow.is-red::after{background:transparent}
.ds-arrow.is-green{background:var(--color-success)}
.ds-arrow.is-green::after{border-left-color:var(--color-success)}
.ds-trapnote{background:var(--color-danger-wash);border-left:4px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);font-size:var(--t-sm);color:var(--color-danger-ink);line-height:1.5}
.ds-trapnote b{color:var(--color-danger-ink)}
.ds-propnote{background:var(--color-success-wash);border-left:4px solid var(--color-success);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);font-size:var(--t-sm);color:var(--color-success-ink);line-height:1.5}
.ds-choose{display:flex;gap:var(--s-4);align-items:flex-start;padding:var(--s-3) var(--s-4);border:1.5px dashed var(--color-accent-text);border-radius:var(--radius);background:var(--color-card);font-size:var(--t-sm)}
.ds-choose b{color:var(--color-ink)}
.ds-cols2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
@media(max-width:900px){.ds-cols2{grid-template-columns:1fr}}
.ds-diagram{max-width:34rem}

/* FIX1: one pre-course settings page */
.ds-kb--one{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:start}
.ds-course--one{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)}
.ds-winv{font-size:var(--t-sm);color:var(--color-body);padding-top:var(--s-2)}
.ds-empty{display:flex;flex-direction:column;gap:var(--s-2);align-items:flex-start;padding:var(--s-4);font-size:var(--t-sm);color:var(--color-muted)}
.ds-empty b{color:var(--color-ink);font-family:var(--font-head);font-size:var(--t-base)}
.ds-copy{border-top:1px solid var(--color-line);background:var(--color-bg);padding-top:var(--s-4)}
.ds-copy-h{margin:0;font-family:var(--font-head);font-size:var(--t-base);color:var(--color-ink)}
.ds-cols2--two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.ds-kb--one,.ds-course--one,.ds-cols2--two{grid-template-columns:1fr}}

/* 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)}

/* ---- r4 BMSLESSON: one title, lesson parts, publish check, media files ---- */
.ds-titlebox--one{grid-template-columns:1fr}
.ds-addparts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);border-top:1px solid var(--color-line);padding-top:var(--s-3);margin-top:var(--s-1)}
.ds-addparts-h{grid-column:1/-1;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--color-muted)}
.ds-addparts a,.ds-later{display:flex;flex-direction:column;gap:2px;padding:var(--s-2) var(--s-3);background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius-sm);text-decoration:none;color:var(--color-ink);font-size:var(--t-sm);font-weight:800}
.ds-addparts small{font-weight:400;color:var(--color-muted);font-size:var(--t-xs)}
.ds-addparts a:hover{border-color:var(--color-accent-text);color:var(--color-accent-text)}
.ds-later{border-style:dashed;color:var(--color-muted);cursor:not-allowed;background:transparent}
@media(max-width:700px){.ds-addparts{grid-template-columns:repeat(2,1fr)}}
.ds-block-btype.t-part{background:var(--color-accent-wash);color:var(--color-accent-text);border-color:transparent;flex-basis:5.4rem;white-space:normal;line-height:1.15}
.ds-partlist{list-style:none;margin:0;padding:var(--s-2) var(--s-4)}
.ds-partlist li{display:flex;align-items:center;gap:var(--s-3);padding:.4rem 0;border-top:1px solid var(--color-line);font-size:var(--t-sm)}
.ds-partlist li:first-child{border-top:0}
.ds-partname{flex:1;font-weight:700}
.ds-err{margin:0 0 var(--s-4);padding:var(--s-4);background:var(--color-danger-wash);border:2px solid var(--color-danger);border-radius:var(--radius-sm);color:var(--color-danger-ink);font-size:var(--t-sm)}
.ds-err b{display:block;font-size:var(--t-base,1rem);margin-bottom:var(--s-2)}
.ds-err ul{margin:0 0 var(--s-2);padding-left:1.2rem}
.ds-err li{margin:.25rem 0}
.ds-err a{color:var(--color-danger-ink);font-weight:800}
.ds-err p{margin:0}
.ds-block.is-bad{background:var(--color-danger-wash);box-shadow:inset 4px 0 0 var(--color-danger)}
.ds-empty{color:var(--color-danger-ink);font-weight:800}
.ds-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.ds-fileacts{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--color-line);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}
.ds-fileacts .ds-label,.ds-fileacts .ds-hint{flex-basis:100%;margin:0}
.ds-pdfs{list-style:none;margin:var(--s-3) 0 0;padding:0}
.ds-pdfs li{display:flex;align-items:center;gap:var(--s-3);padding:.6rem 0;border-top:1px solid var(--color-line);flex-wrap:wrap}
.ds-pdfico{flex:0 0 auto;font-size:.7rem;font-weight:800;padding:.3rem .5rem;border-radius:6px;background:var(--color-bg);border:1px solid var(--color-line)}
.ds-pdfname{flex:1;min-width:10rem;font-weight:700;font-size:var(--t-sm)}
.ds-pdfname small{display:block;font-weight:400;color:var(--color-muted);font-size:var(--t-xs)}
.ds-confirm{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);background:var(--color-danger-wash);border:1.5px solid var(--color-danger);border-radius:var(--radius-sm);font-size:var(--t-sm);color:var(--color-danger-ink);flex-basis:100%}
.ds-confirm p{margin:0 0 var(--s-2)}

/* FIXFINAL: phone clip. Grid children may shrink; block rows wrap; previews stay inside the column. */
.ds-cols > *,.ds-titlebox > *,.ds-editpanel > *{min-width:0}
.ds-cols img,.ds-media img,.ds-editpanel img{max-width:100%;height:auto}
@media(max-width:700px){
  .ds9b-main{overflow-x:hidden}
  .ds-block{flex-wrap:wrap;row-gap:.3rem;padding:.4rem var(--s-3)}
  .ds-block-body{flex:1 1 calc(100% - 6rem);white-space:normal;overflow-wrap:anywhere}
  .ds-block .btn{margin-left:auto}
  .ds-block-img{flex-wrap:wrap}
}
