/* ==========================================================================
   BSA UNTOLD — admin / author dashboard
   Same design tokens as the public site, so Appearance changes carry over.
   ========================================================================== */
body.admin,body.auth-body{display:block;font-size:.97rem;line-height:1.55;background:var(--background-2)}
.admin__shell{display:grid;grid-template-columns:15.5rem minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;background:var(--background);border-inline-end:1px solid var(--border);padding:1.1rem .9rem 2rem}
.sidebar__brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;padding:.2rem .4rem 1rem}
.sidebar__brand img{height:28px;width:auto}
.sidebar__brand span{font-weight:800;font-size:.66rem;letter-spacing:.3em;padding-inline-start:.7rem;border-inline-start:1px solid var(--border-strong)}
.sidebar__new{margin:0 0 .6rem}
.sidebar__group{margin:1.3rem .5rem .4rem;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.sidebar ul a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:var(--radius);text-decoration:none;font-weight:600;font-size:.9rem;color:var(--text-primary)}
.sidebar ul a:hover{background:var(--background-2)}
.sidebar ul a.is-active{background:var(--text-primary);color:var(--background)}
.badge-count{min-width:1.35rem;padding:0 .4rem;height:1.35rem;display:inline-grid;place-items:center;background:var(--accent);color:var(--on-accent);border-radius:99px;font-size:.72rem;font-weight:800}
.admin__main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;padding:.7rem clamp(1rem,2.5vw,2rem);background:var(--background);border-bottom:1px solid var(--border);min-height:3.9rem}
.topbar__title{font-size:1.25rem;font-weight:800;letter-spacing:-.01em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar__right{display:flex;align-items:center;gap:.9rem;font-size:.85rem;flex-wrap:wrap;justify-content:flex-end}
.topbar__user small{display:block;color:var(--text-secondary);font-size:.7rem;line-height:1.1}
.topbar .theme-menu{position:relative}
.theme-menu__list{position:absolute;inset-inline-end:0;top:calc(100% + .4rem);min-width:9.5rem;background:var(--surface);border:1px solid var(--border-strong);padding:.3rem;z-index:70;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.theme-menu__list button{display:flex;align-items:center;gap:.7rem;width:100%;padding:.55rem .7rem;background:none;border:0;text-align:start;cursor:pointer;font-weight:600}
.theme-menu__list button:hover,.theme-menu__list button[aria-pressed="true"]{background:var(--background-2)}
.sidebar-toggle{display:none}
.content{padding:clamp(1rem,2.5vw,2rem);max-width:90rem;width:100%}
.lead{max-width:50rem;margin-bottom:1.25rem;font-size:1rem}
.link-plain{color:var(--link);text-decoration:underline;text-underline-offset:.2em}
.empty{padding:3rem 1rem;text-align:center;color:var(--text-secondary);background:var(--surface);border:1px dashed var(--border-strong)}
.empty p{margin-bottom:1rem}

/* ---- panels / grids -------------------------------------------------------- */
.card-panel,.side-card{background:var(--surface);border:1px solid var(--border);padding:1.25rem 1.35rem;margin-bottom:1.25rem}
.card-panel h2,.side-card h2{font-size:1.05rem;font-weight:800;margin-bottom:.9rem}
.card-panel h3{font-size:.95rem;font-weight:800;margin:1.1rem 0 .5rem}
.card-panel--alert{border-inline-start:5px solid var(--accent)}
.card-panel--danger{border-color:#c4260f}
.card-panel--private{border-inline-start:5px solid var(--accent-secondary)}
.grid-2{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr))}
.grid-2--wide-left{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.grid-2--media{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.grid-3{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
@media (max-width:900px){.grid-2--wide-left,.grid-2--media{grid-template-columns:1fr}}
.form-narrow{max-width:46rem}.form-wide{max-width:62rem}
.form-actions{display:flex;gap:.7rem;margin-top:1rem}
.form-actions--sticky{position:sticky;bottom:0;padding:.9rem 0;background:linear-gradient(transparent,var(--background-2) 35%);z-index:5}
.inline-form{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.inline-form .input{max-width:30rem;flex:1}
.stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));margin-bottom:1.25rem}
.stat{display:flex;flex-direction:column;padding:1.05rem 1.15rem;background:var(--surface);border:1px solid var(--border);text-decoration:none}
a.stat:hover{border-color:var(--text-primary)}
.stat__n{font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat__l{margin-top:.4rem;font-size:.8rem;color:var(--text-secondary);font-weight:600}
.spark{width:100%;height:4.6rem}.spark--big{height:8rem}
.bar{height:6px;background:var(--border);margin:.3rem 0 .9rem}.bar span{display:block;height:100%;background:var(--accent)}
.plainlist li{padding:.45rem 0;border-bottom:1px solid var(--border)}
.plainlist--numbered{list-style:decimal;padding-inline-start:1.4rem}.plainlist--numbered li{border:0;padding:.2rem 0}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1.2rem;margin-bottom:1rem}
.kv dt{color:var(--text-secondary);font-size:.85rem;font-weight:600}.kv dd{min-width:0;word-break:break-word}
.quote-box{padding:1rem 1.2rem;background:var(--background-2);border-inline-start:4px solid var(--border-strong);max-height:26rem;overflow:auto;line-height:1.7}
code{font-family:var(--font-mono);font-size:.88em;background:var(--background-2);padding:.1rem .3rem}
hr{border:0;border-top:1px solid var(--border);margin:1.2rem 0}

/* ---- tables / lists ------------------------------------------------------------ */
.toolbar{display:flex;flex-wrap:wrap;gap:.8rem 1.5rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.filterbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.filterbar .input{width:auto;min-width:10rem;padding:.5rem .7rem}
.subnav{display:flex;flex-wrap:wrap;gap:.2rem}
.subnav a{display:inline-block;padding:.4rem .8rem;text-decoration:none;font-weight:700;font-size:.85rem;border:1.5px solid transparent}
.subnav a:hover{border-color:var(--border-strong)}
.subnav a.is-active{background:var(--text-primary);color:var(--background)}
.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);font-size:.9rem}
.table th{text-align:start;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);padding:.7rem .85rem;border-bottom:1px solid var(--border-strong);background:var(--background)}
.table td{padding:.7rem .85rem;border-bottom:1px solid var(--border);vertical-align:top}
.table tr:hover td{background:color-mix(in srgb,var(--background-2) 55%,transparent)}
.table .actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}
.table .actions form{margin:0}
.row-title{font-weight:700;text-decoration:none}.row-title:hover{text-decoration:underline}
.row-summary td{background:var(--background);font-size:.82rem}
.changes{margin-top:.35rem;padding-inline-start:1rem;list-style:disc;color:var(--text-secondary);font-size:.82rem}
.table-wrap{overflow-x:auto}
@media (max-width:900px){.table{display:block;overflow-x:auto;white-space:nowrap}}
.admin-pagination{display:flex;align-items:center;gap:1rem;justify-content:center;margin:1.2rem 0}
.status{display:inline-block;padding:.15rem .55rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;border:1.5px solid var(--border-strong);white-space:nowrap}
.status--published,.status--audio-ok,.status--audio-original,.status--audio-uploaded,.status--audio-ai_generated,.status--sub-accepted,.status--sub-converted{border-color:#1a7f4b;background:color-mix(in srgb,#1a7f4b 14%,transparent)}
.status--submitted,.status--sub-new,.status--audio-processing,.status--processing,.status--scheduled{border-color:#2f6bff;background:color-mix(in srgb,#2f6bff 14%,transparent)}
.status--needs_changes,.status--audio-failed,.status--failed,.status--sub-rejected{border-color:#c4260f;background:color-mix(in srgb,#c4260f 12%,transparent)}
.status--approved,.status--sub-reviewing,.status--sub-contacted{border-color:#d9a21b;background:color-mix(in srgb,#d9a21b 16%,transparent)}
.status--archived{opacity:.7}
.badge{font-size:.62rem;padding:.12rem .4rem;margin-inline-start:.4rem;vertical-align:middle}
.badge--hero{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.badge--private{border-color:var(--accent-secondary);color:var(--text-primary);background:color-mix(in srgb,var(--accent-secondary) 18%,transparent)}
.badge--warn{border-color:#c4260f;color:#c4260f}
:root[data-theme="dark"] .badge--warn{color:#ff8a76;border-color:#ff8a76}
.warn{color:#b3560a;font-weight:700}
:root[data-theme="dark"] .warn{color:#ffb26b}
.problems{padding:.8rem 1rem;margin:1rem 0;border:1.5px solid var(--border-strong);border-inline-start:5px solid var(--accent-secondary);background:var(--background-2);font-size:.88rem}
.problems--block{border-inline-start-color:#c4260f}
.problems ul{margin:.4rem 0 0;padding-inline-start:1.1rem;list-style:disc}

/* ---- sortable lists --------------------------------------------------------------------- */
.col-handle{width:5.2rem;white-space:nowrap}
.handle{cursor:grab;color:var(--text-secondary);font-weight:800;letter-spacing:-.15em;padding:.2rem .35rem;user-select:none}
.movers{display:inline-flex;flex-direction:column;margin-inline-start:.2rem;vertical-align:middle}
.icon-btn--tiny{width:1.2rem;height:.9rem;font-size:.5rem;line-height:1;padding:0}
tr.is-dragging{opacity:.4}
tr.drop-before td{box-shadow:inset 0 3px 0 var(--accent)}
.switch{position:relative;width:2.6rem;height:1.45rem;border:1.5px solid var(--border-strong);background:var(--background-2);border-radius:99px;cursor:pointer;padding:0}
.switch span{position:absolute;top:.15rem;inset-inline-start:.15rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--text-secondary);transition:transform .2s,background .2s}
.switch.is-on{background:color-mix(in srgb,#1a7f4b 25%,transparent);border-color:#1a7f4b}
.switch.is-on span{transform:translateX(1.15rem);background:#1a7f4b}
[dir="rtl"] .switch.is-on span{transform:translateX(-1.15rem)}
.swatch{display:inline-block;width:1.2rem;height:1.2rem;border:1px solid var(--border-strong);vertical-align:middle}
.logo-thumb{display:inline-grid;place-items:center;width:7rem;height:3rem;background:#fff;border:1px solid var(--border);padding:.3rem}
.logo-thumb img{max-width:100%;max-height:100%;object-fit:contain}

/* ---- media library -------------------------------------------------------------------------- */
.dropzone{padding:1.2rem;border:2px dashed var(--border-strong);background:var(--surface);margin-bottom:1.25rem;display:grid;gap:.6rem}
.dropzone.is-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.dropzone input[type=file]{background:var(--background-2)}
.link-like{color:var(--link);text-decoration:underline;cursor:pointer}
.media-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr))}
.media-card{background:var(--surface);border:1px solid var(--border)}
.media-card__thumb{display:grid;place-items:center;aspect-ratio:4/3;background:var(--background-2);overflow:hidden}
.media-card__thumb img{width:100%;height:100%;object-fit:cover}
.media-card__icon{font-size:2.4rem;opacity:.5}
.media-card__meta{padding:.7rem .8rem;font-size:.8rem}
.media-card__name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focal{position:relative;cursor:crosshair;display:inline-block;max-width:100%}
.focal img{max-width:100%;max-height:30rem}
.focal__dot{position:absolute;width:1.6rem;height:1.6rem;margin:-.8rem 0 0 -.8rem;border-radius:50%;border:3px solid #fff;background:var(--accent);box-shadow:0 0 0 2px #000;pointer-events:none}
.imgfield{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.imgfield__preview{max-height:5rem;width:auto;background:#fff;border:1px solid var(--border);padding:.3rem}
.logo-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin-bottom:1rem}
.logo-card{border:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.logo-card h3{margin:0;font-size:.88rem}
.logo-card__preview{display:grid;place-items:center;height:6rem;background:#fff;border:1px solid var(--border);padding:.6rem}
.logo-card__preview.is-dark{background:#0a0a0a}
.logo-card__preview img{max-height:100%;max-width:100%;object-fit:contain}

/* ---- story editor -------------------------------------------------------------------------------- */
.editor-bar{position:sticky;top:3.9rem;z-index:25;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;justify-content:space-between;padding:.6rem .9rem;margin-bottom:1rem;background:var(--background);border:1px solid var(--border-strong)}
.editor-bar__left,.editor-bar__right{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.editor-bar__id{font-size:.82rem;color:var(--text-secondary)}
.save-state{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700}
.save-state__dot{width:.6rem;height:.6rem;border-radius:50%;background:#1a7f4b}
.save-state.is-dirty .save-state__dot{background:#d9a21b}
.save-state.is-saving .save-state__dot{background:#2f6bff;animation:pulse 1s infinite}
.save-state.is-error .save-state__dot{background:#c4260f}
.save-state__time{font-weight:500;color:var(--text-secondary)}
@keyframes pulse{50%{opacity:.3}}
.editor-grid{display:grid;gap:1.25rem;align-items:start}
@media (min-width:1100px){.editor-grid{grid-template-columns:minmax(0,1fr) 23rem}}
.tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:1rem}
.tab{padding:.6rem 1.1rem;font-weight:800;background:var(--surface);border:1.5px solid var(--border-strong);cursor:pointer}
.tab[aria-selected="true"]{background:var(--text-primary);color:var(--background);border-color:var(--text-primary)}
.tab__dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;border:1.5px solid currentColor;margin-inline-start:.4rem}
.tab__dot.is-filled{background:#1a7f4b;border-color:#1a7f4b}
.tabs__hint{flex-basis:100%;font-size:.82rem;color:var(--text-secondary);margin-top:.3rem}
.panel{background:var(--surface);border:1px solid var(--border);padding:1.25rem}
.input--title{font-size:1.6rem;font-weight:800;padding:.9rem 1rem}
.rte{border:1.5px solid var(--border-strong);background:var(--surface)}
.rte:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.rte__toolbar{position:sticky;top:7.3rem;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.4rem;background:var(--background-2);border-bottom:1px solid var(--border-strong)}
.rte__toolbar button,.rte__block{min-width:2.2rem;height:2.2rem;padding:0 .55rem;border:1px solid transparent;background:transparent;font-weight:700;font-size:.82rem;cursor:pointer;border-radius:var(--radius)}
.rte__toolbar button:hover{background:var(--surface);border-color:var(--border-strong)}
.rte__toolbar button.is-on{background:var(--text-primary);color:var(--background)}
.rte .rte__block,.field .rte__block{width:auto;min-width:8.5rem;border:1px solid var(--border-strong);background:var(--surface);padding:0 .4rem;height:2.2rem;font-size:.82rem}
.rte__sep{width:1px;height:1.4rem;background:var(--border-strong);margin-inline:.2rem}
.rte__area{min-height:26rem;max-height:none;padding:1.4rem 1.5rem 2rem;outline:none;max-width:none;overflow-wrap:break-word}
.rte__area:empty::before,.rte__area.is-empty::before{content:attr(data-placeholder);color:var(--text-secondary);pointer-events:none}
.rte__area .embed{pointer-events:none;min-height:8rem;display:grid;place-items:center;background:#111;color:#fff}
.rte__area .embed::after{content:"▶ YouTube video — " attr(data-yt);font-weight:700}
.rte__area figure{outline:2px dashed transparent;padding:.3rem}
.rte__area figure:hover{outline-color:var(--border-strong)}
.rte__area figcaption{min-height:1.2em}
.rte__area figcaption:empty::before{content:"Add a caption…";opacity:.55}
.rte__area img{max-width:100%}
.side-card .field{margin-bottom:.9rem}
.side-card details{margin:.4rem 0 .8rem}.side-card summary{cursor:pointer;font-weight:700;margin-bottom:.5rem}
.btnstack{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}
.comment{padding:.6rem 0;border-top:1px solid var(--border);font-size:.88rem}
.comments summary{cursor:pointer;font-weight:700;margin-top:1rem}
.chips-input{display:flex;flex-wrap:wrap;gap:.35rem;padding:.4rem;border:1.5px solid var(--border-strong);background:var(--surface);position:relative;min-height:2.7rem}
.chips-input:focus-within{border-color:var(--accent)}
.chips-input__chip{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .3rem .2rem .6rem;background:var(--text-primary);color:var(--background);font-size:.82rem;font-weight:700}
.chips-input__chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0 .3rem}
.chips-input__chip em{font-style:normal;opacity:.7;font-size:.7rem}
.chips-input input{flex:1;min-width:8rem;border:0!important;outline:none;box-shadow:none!important;background:transparent!important;padding:.35rem .4rem!important}
.chips-input__menu{position:absolute;inset-inline:0;top:100%;z-index:40;max-height:15rem;overflow:auto;background:var(--surface);border:1.5px solid var(--text-primary);margin-top:2px}
.chips-input__menu button{display:block;width:100%;text-align:start;padding:.5rem .7rem;background:transparent;border:0;cursor:pointer;font-size:.88rem}
.chips-input__menu button:hover,.chips-input__menu button.is-active{background:var(--background-2)}
.chips-input__menu .new{font-weight:800;color:var(--link)}
.mediapick__preview{display:grid;place-items:center;min-height:7rem;background:var(--background-2);border:1px dashed var(--border-strong);color:var(--text-secondary);overflow:hidden}
.mediapick__preview img{max-height:12rem;width:100%;object-fit:cover}
.mediapick__btns{display:flex;gap:.5rem;margin-top:.5rem}
.mini-audio{height:2.2rem;max-width:15rem}
.ai-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--border)}
.ai-progress{width:9rem}.ai-msg{font-size:.85rem;font-weight:600}
.subform{padding:1rem;border:1px solid var(--border);background:var(--background)}
.subform h3{margin-top:0}

/* media picker modal */
.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:1rem;background:rgba(0,0,0,.6)}
.modal__box{width:min(64rem,100%);max-height:92vh;display:flex;flex-direction:column;background:var(--background);border:2px solid var(--text-primary)}
.modal__head{display:flex;gap:.7rem;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--border-strong)}
.modal__head h2{flex:1;font-size:1.05rem}
.modal__body{padding:1rem;overflow:auto;flex:1}
.modal__grid{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}
.modal__item{padding:0;border:2px solid transparent;background:var(--background-2);cursor:pointer;aspect-ratio:1;overflow:hidden;position:relative}
.modal__item img{width:100%;height:100%;object-fit:cover}
.modal__item.is-selected{border-color:var(--accent)}
.modal__item.is-selected::after{content:"✓";position:absolute;top:.3rem;inset-inline-end:.3rem;width:1.5rem;height:1.5rem;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:800}
.modal__foot{display:flex;justify-content:space-between;gap:.7rem;padding:.8rem 1rem;border-top:1px solid var(--border-strong)}

/* colours screen */
.colors-layout{display:grid;gap:1.5rem}
@media (min-width:1100px){.colors-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.colors-table__head,.colors-row{display:grid;grid-template-columns:minmax(9rem,1.2fr) 1fr 1fr;gap:.8rem;align-items:center}
.colors-table__head{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);padding-bottom:.4rem;border-bottom:1px solid var(--border-strong)}
.colors-row{padding:.55rem 0;border-bottom:1px solid var(--border)}
.colors-row .field{margin:0}.colors-row .field>label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.colors-row__label{display:flex;flex-direction:column;font-weight:700;font-size:.9rem}
.colorpick{display:flex;gap:.4rem}
.colorpick input[type=color]{width:2.8rem;height:2.6rem;padding:2px;border:1.5px solid var(--border-strong);background:var(--surface);cursor:pointer}
.input--hex{font-family:var(--font-mono);text-transform:uppercase}
.preview-card{--background:#fff;--surface:#fff;--text-primary:#0a0a0a;--text-secondary:#575650;--border:#dedcd5;--accent:#d9420f;--button:#0a0a0a;--button-text:#fff;--link:#b8350a;
  padding:1.1rem 1.2rem;margin-bottom:1rem;background:var(--background);color:var(--text-primary);border:1px solid var(--border);font-family:var(--font-latin)}
.preview-card__mode{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.8rem}
.preview-card__eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.14em;color:var(--accent)}
.preview-card__title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:.3rem 0 .4rem;color:var(--text-primary)}
.preview-card__text{font-size:.92rem;color:var(--text-secondary)}.preview-card__text a{color:var(--link)}
.preview-card__row{display:flex;gap:.6rem;align-items:center;margin-top:.9rem}
.preview-card__btn{padding:.55rem 1rem;background:var(--button);color:var(--button-text);font-weight:700;font-size:.85rem}
.preview-card__chip{padding:.2rem .6rem;border:1px solid var(--accent);font-size:.75rem;font-weight:700;color:var(--text-primary)}
.preview-card__bar{display:flex;height:4px;margin-top:1rem;background:var(--border)}.preview-card__bar span:first-child{width:45%;background:var(--accent)}
.contrast-report{font-size:.85rem}
.contrast-report p{padding:.35rem .6rem;margin-bottom:.3rem;border-inline-start:4px solid #1a7f4b;background:var(--background-2)}
.contrast-report p.bad{border-color:#c4260f;font-weight:700}

/* checks */
.checks{display:flex;flex-direction:column}
.check-row{display:grid;grid-template-columns:1.6rem minmax(10rem,1fr) minmax(0,2fr);gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.88rem;align-items:baseline}
.check-row__icon{font-weight:900;text-align:center}
.check-row--ok .check-row__icon{color:#1a7f4b}.check-row--warn .check-row__icon{color:#b3560a}.check-row--fail .check-row__icon{color:#c4260f}
.check-row__label{font-weight:700}.check-row__detail{color:var(--text-secondary)}
@media (max-width:700px){.check-row{grid-template-columns:1.6rem 1fr}.check-row__detail{grid-column:2}}
.check-group{margin-bottom:.6rem}.check-group summary{cursor:pointer;font-weight:800;padding:.4rem 0}

/* ---- auth screens ------------------------------------------------------------------------------------ */
.auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;padding:2rem 1rem;width:100%}
.auth__brand{display:flex;align-items:center;gap:.9rem;text-decoration:none}
.auth__brand img{height:42px;width:auto}
.auth__brand span{font-weight:800;letter-spacing:.34em;font-size:.78rem;padding-inline-start:.9rem;border-inline-start:1px solid var(--border-strong)}
.auth__card{width:min(26rem,100%);background:var(--surface);border:1.5px solid var(--text-primary);padding:1.8rem;border-top:6px solid var(--accent)}
.auth--wide .auth__card{width:min(44rem,100%)}
.auth__title{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.4rem}
.auth__lead{color:var(--text-secondary);margin-bottom:1.3rem}
.auth__link{margin-top:1.1rem;font-size:.9rem;text-align:center}.auth__link a{color:var(--link)}
.auth__foot{font-size:.8rem;color:var(--text-secondary)}
.auth__card h2{font-size:1.1rem;font-weight:800;margin:1.6rem 0 .6rem}
.steps--plain li{display:block;padding:.6rem 0;border-top:1px solid var(--border)}.steps--plain li::before{content:none}

@media (max-width:980px){
  .admin__shell{grid-template-columns:1fr}
  .sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:16.5rem;z-index:80;transform:translateX(-105%);transition:transform .3s var(--ease)}
  [dir="rtl"] .sidebar{transform:translateX(105%)}
  .sidebar.is-open{transform:none}
  .sidebar-toggle{display:inline-grid}
  .topbar__right .link-plain,.topbar__user{display:none}
  .editor-bar{top:3.9rem}
}
