/* S23: BMS forms and tests builder. On top of tokens.css, app.css, bms.css. Tokens only. */
body{font-family:var(--font-body);color:var(--color-body);margin:0;background:var(--color-bg)}
.s23-main{max-width:1180px}
.s23-main a:focus-visible,.s23-main button:focus-visible,.s23-main input:focus-visible,.s23-main select:focus-visible,.s23-main textarea: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)}
.s23-crumb{font-size:var(--t-xs);color:var(--color-muted);margin-bottom:var(--s-2)}
.s23-crumb a{color:var(--color-accent-text);font-weight:700;text-decoration:none}
.s23-hide{display:none!important}
.s23-head-actions{margin-left:auto;display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center}
.s23-tabs{display:flex;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap}
.s23-tab{border:1.5px solid var(--color-line);background:var(--color-card);color:var(--color-ink);border-radius:999px;padding:.3rem var(--s-3);font:600 var(--t-sm) var(--font-body);cursor:pointer}
.s23-tab.is-on{background:var(--color-ink);border-color:var(--color-ink);color:#fff}
.s23-tab em{font-style:normal;opacity:.7;margin-left:.3rem}
/* list */
.s23-row{display:grid;grid-template-columns:minmax(0,2.2fr) .7fr minmax(0,1.6fr) .7fr .8fr 18rem;gap:var(--s-3);align-items:center;padding:var(--s-3) var(--s-4);border-top:1px solid var(--color-line)}
.s23-row.is-head{border-top:0;background:var(--color-bg);font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted)}
.s23-row .nm{font-weight:800;color:var(--color-ink)}
.s23-row .nm a{color:inherit;text-decoration:none}
.s23-row .nm a:hover{text-decoration:underline}
.s23-row .sm{display:block;font-size:var(--t-xs);color:var(--color-muted);font-weight:400}
.s23-row .k{display:none}
.s23-acts{display:flex;gap:var(--s-2);justify-content:flex-end;flex-wrap:wrap}
.s23-st{display:inline-block;font-size:var(--t-xs);font-weight:800;padding:2px 10px;border-radius:999px;border:1px solid var(--color-line)}
.s23-st.live{background:#e6f4ea;color:#2e7d32;border-color:#b7dfbe}
.s23-st.draft{background:#fff3e0;color:#8a4a00;border-color:#ffcc80}
.s23-empty{padding:var(--s-5);color:var(--color-muted);text-align:center}
/* panels and forms */
.s23-panel{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s-4);margin-bottom:var(--s-4)}
.s23-panel h3{margin:0 0 var(--s-3);font-size:var(--t-sm);font-weight:800;color:var(--color-ink)}
.s23-f{display:block;margin-bottom:var(--s-3)}
.s23-f>span{display:block;font-size:var(--t-sm);font-weight:700;color:var(--color-ink);margin-bottom:4px}
.s23-f small{display:block;font-size:var(--t-xs);color:var(--color-muted);margin-top:3px}
.s23-in,.s23-ta,.s23-sel{width:100%;box-sizing:border-box;font:400 1rem var(--font-body);color:var(--color-ink);background:var(--color-card);border:1.5px solid var(--color-line);border-radius:var(--radius-sm);padding:.55rem .7rem;appearance:none;-webkit-appearance:none}
.s23-sel{background-image:linear-gradient(45deg,transparent 50%,var(--color-ink) 50%),linear-gradient(135deg,var(--color-ink) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2rem}
.s23-ta{min-height:5rem;resize:vertical}
.s23-in:focus,.s23-ta:focus,.s23-sel:focus{border-color:var(--color-accent)}
.s23-in.is-bad,.s23-ta.is-bad{border-color:var(--color-danger)}
.s23-err{color:var(--color-danger);font-size:var(--t-sm);font-weight:600;margin:0 0 var(--s-3)}
.s23-twocol{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.s23-new{display:grid;grid-template-columns:2fr 1fr auto auto;gap:var(--s-3);align-items:end}
.s23-new .s23-f{margin:0}
/* editor */
.s23-ed{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:var(--s-4);align-items:start}
.s23-qlist{list-style:none;margin:0;padding:0}
.s23-qi{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:var(--s-2);align-items:start;padding:var(--s-3);border-top:1px solid var(--color-line);cursor:pointer;background:var(--color-card);width:100%;text-align:left;border-left:4px solid transparent;border-right:0;border-bottom:0;font:inherit;color:inherit}
.s23-qi:first-child{border-top:0}
.s23-qi:hover{background:var(--color-bg)}
.s23-qi.is-on{border-left-color:var(--color-accent);background:var(--color-accent-wash)}
.s23-qi .n{font-weight:800;color:var(--color-muted)}
.s23-qi .t{font-size:var(--t-sm);font-weight:600;color:var(--color-ink);display:block;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.s23-qi .m{font-size:var(--t-xs);color:var(--color-muted);display:block;margin-top:2px}
.s23-qfoot{padding:var(--s-3);border-top:1px solid var(--color-line);background:var(--color-bg)}
.s23-opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s-2);align-items:center;margin-bottom:var(--s-2)}
.s23-ok{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:700;color:var(--color-muted);cursor:pointer}
.s23-ok input{position:absolute;opacity:0;width:1px;height:1px}
.s23-ok i{width:22px;height:22px;border-radius:50%;border:2px solid var(--color-line);background:var(--color-card);display:inline-block;position:relative;flex:none}
.s23-ok input:checked+i{border-color:var(--color-success);background:var(--color-success)}
.s23-ok input:checked+i::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.s23-ok input:focus-visible+i{outline:3px solid var(--color-accent);outline-offset:2px}
.s23-ok input:checked~b{color:var(--color-success)}
.s23-ib{border:1.5px solid var(--color-line);background:var(--color-card);color:var(--color-ink);border-radius:var(--radius-sm);width:2.2rem;height:2.2rem;cursor:pointer;font:700 1rem var(--font-body);line-height:1}
.s23-ib:hover{border-color:var(--color-accent)}
.s23-ib:disabled{opacity:.4;cursor:default}
.s23-toolbar{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center;margin-bottom:var(--s-3)}
.s23-status{font-size:var(--t-sm);font-weight:700;color:var(--color-muted)}
.s23-status.ok{color:var(--color-success)}
.s23-status.dirty{color:#8a4a00}
.s23-sum{display:flex;gap:var(--s-4);flex-wrap:wrap;font-size:var(--t-sm);color:var(--color-muted)}
.s23-sum b{color:var(--color-ink)}
.s23-modal{position:fixed;inset:0;background:rgba(21,53,81,.55);display:flex;align-items:center;justify-content:center;padding:var(--s-4);z-index:50}
.s23-modal[hidden]{display:none}
.s23-dlg{background:var(--color-card);border-radius:var(--radius);padding:var(--s-5);max-width:480px;width:100%;box-shadow:var(--shadow)}
.s23-dlg h3{margin:0 0 var(--s-2);color:var(--color-ink)}
.s23-dlg p{margin:0 0 var(--s-4)}
.s23-toast{position:fixed;left:50%;bottom:var(--s-5);transform:translateX(-50%);background:var(--color-ink);color:#fff;padding:.6rem 1rem;border-radius:var(--radius-sm);font-size:var(--t-sm);font-weight:600;z-index:60;max-width:90vw}
@media (max-width:900px){
 .s23-ed{grid-template-columns:1fr}
 .s23-row.is-head{display:none}
 .s23-row{grid-template-columns:1fr;gap:var(--s-1)}
 .s23-row .k{display:inline;font-weight:700;color:var(--color-muted);margin-right:.4rem;font-size:var(--t-xs)}
 .s23-acts{justify-content:flex-start;margin-top:var(--s-2)}
 .s23-new{grid-template-columns:1fr}
 .s23-twocol{grid-template-columns:1fr}
 .s23-head-actions{margin-left:0}
}
