/* Report Builder admin: page-specific styles on top of /theme.css and /shared/admin-base.css */
body{background:radial-gradient(900px 480px at 100% -10%,var(--glow),transparent 60%),var(--bg)}
.skip{position:absolute;left:-999px;top:8px;background:var(--panel);padding:8px 12px;border-radius:8px;z-index:200}
.skip:focus{left:8px}
.ws-pick select{width:100%;min-height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);padding:6px 10px;margin-bottom:10px}
.who{word-break:break-all}
.adm-main:focus{outline:none}
.section{margin:0 0 16px}
.section h2{font-size:18px;margin:0 0 8px;letter-spacing:-.01em}
.mt{margin-top:12px}.mb{margin-bottom:14px}
.row.tight{gap:6px}
.stack{display:grid;gap:10px}
.sub-card{border:1px solid var(--line);border-radius:var(--r-md);padding:12px;background:var(--surface);display:grid;gap:8px}
.sub-card>summary{cursor:pointer;font-weight:600;display:flex;gap:8px;align-items:center;list-style:none}
.sub-card>summary::-webkit-details-marker{display:none}
.sub-card>summary::before{content:"▸";color:var(--muted);transition:transform .15s}
.sub-card[open]>summary::before{transform:rotate(90deg)}
.sub-card h4{margin:0}
.title-input{font-size:18px!important;font-weight:650;max-width:420px;background:transparent!important;border-color:transparent!important}
.title-input:hover,.title-input:focus{border-color:var(--line)!important;background:var(--surface)!important}
.code-block{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;overflow:auto;font-size:12.5px;font-family:ui-monospace,Consolas,monospace;white-space:pre}
.err-text{color:var(--err-fg)}
.swatch{display:inline-block;width:18px;height:18px;border-radius:5px;border:1px solid var(--line)}
.band-row input[type=text],.band-row input[type=number]{flex:1}
.band-legend{font-size:12px;gap:10px}
.miss-list{max-height:260px;overflow:auto;font-size:14px}
fieldset.plain{border:0;padding:0;margin:0;min-width:0}
fieldset.plain:disabled{opacity:.8}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;width:max-content;max-width:100%;flex-wrap:wrap}
.seg button{background:transparent;border:0;padding:7px 14px;font-weight:600;font-size:13.5px;color:var(--muted)}
.seg button[aria-selected=true]{background:var(--surface-2);color:var(--text)}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{padding:6px 12px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.seg input:checked+label{background:var(--surface-2);color:var(--text)}
.seg input:focus-visible+label{outline:2px solid var(--cyan);outline-offset:-2px}

/* new template dialog */
.starter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.starter-grid input{position:absolute;opacity:0;width:1px;height:1px}
.starter{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;font-size:13.5px}
.starter span{color:var(--muted)}
.starter small{color:var(--muted);font-size:12px}
.starter-grid input:checked+.starter{border-color:var(--violet);box-shadow:0 0 0 3px var(--glow);background:var(--surface-2)}
.starter-grid input:focus-visible+.starter{outline:2px solid var(--cyan);outline-offset:2px}

/* ------------------------------------------------------------------ editor */
body.is-editor .adm{grid-template-columns:64px 1fr}
body.is-editor .adm-side .brand span:last-child,body.is-editor .ws-pick,body.is-editor .adm-side-foot{display:none}
body.is-editor .adm-nav a{font-size:0}
body.is-editor .adm-nav a .ico{font-size:16px}
body.is-editor .adm-nav a{justify-content:center;padding:10px 0}
body.is-editor .adm-side{padding:16px 8px;align-items:center}
body.is-editor .adm-main{padding:14px 16px 16px}
.editor{display:flex;flex-direction:column;height:calc(100vh - 30px);min-height:560px}
.ed-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:12px}
.save-state{font-size:12.5px;color:var(--muted)}
.save-state.err{color:var(--err-fg)}
.panes{flex:1;display:grid;grid-template-columns:minmax(250px,300px) minmax(330px,420px) 1fr;gap:12px;min-height:0}
.pane{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);position:relative}
.pane-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pane-head h2{font-size:15px;margin:0;display:flex;align-items:center;gap:6px}
.pane-body{flex:1;overflow:auto;padding:12px;min-height:0}
.pane-form .pane-body h3{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:18px 0 8px}
.common{border-top:1px solid var(--line);margin-top:14px;padding-top:2px}
.adv{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.adv summary{cursor:pointer;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:8px}
.adv textarea{margin-bottom:8px}

.blist{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.bitem{display:grid;grid-template-columns:14px 1fr auto;grid-template-areas:"grip main badges" "grip tools tools";gap:2px 6px;align-items:center;padding:6px 8px;border-radius:12px;border:1px solid transparent}
.bitem:hover{background:var(--surface)}
.bitem.sel{background:var(--surface-2);border-color:color-mix(in srgb,var(--violet) 45%,var(--line))}
.bitem.dragging{opacity:.4}
.bitem.drop-before{box-shadow:0 -2px 0 var(--cyan)}
.bitem.drop-after{box-shadow:0 2px 0 var(--cyan)}
.grip{grid-area:grip;color:var(--muted);cursor:grab;font-size:12px;letter-spacing:-2px;user-select:none}
.bmain{grid-area:main;display:flex;gap:8px;align-items:center;background:none;border:0;text-align:left;padding:2px 0;min-width:0;color:var(--text)}
.bicon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--surface-2);font-size:13px;flex:none}
.bitem.sel .bicon{background:var(--grad);color:#fff}
.btext{display:grid;min-width:0}
.btype{font-size:11.5px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.06em}
.bsum{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bbadges{grid-area:badges;display:flex;gap:4px}
.btools{grid-area:tools;display:flex;gap:4px;justify-content:flex-end;opacity:0;transition:opacity .12s}
.bitem:hover .btools,.bitem.sel .btools,.bitem:focus-within .btools{opacity:1}
.btools .iconbtn{min-width:26px;height:26px;font-size:13px}
.iconbtn.danger:hover{background:var(--err-bg);color:var(--err-fg)}
.add-menu{position:absolute;top:50px;right:10px;left:10px;z-index:20;max-height:70vh;overflow:auto;padding:8px;border-radius:var(--r-md);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:2px}
.add-menu[hidden]{display:none}
.add-group{grid-column:1/-1;margin:8px 4px 2px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.add-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;background:none;border:0;text-align:left;font-size:13.5px;color:var(--text)}
.add-item:hover,.add-item:focus-visible{background:var(--surface-2)}

.preview-bar{gap:12px}
.preview-bar select{min-height:32px;padding:4px 8px;border-radius:9px;border:1px solid var(--line);background:var(--surface);max-width:180px}
.preview-stats{margin:0;padding:6px 12px;border-bottom:1px solid var(--line)}
.frame-wrap{flex:1;min-height:0;padding:0;border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden;background:var(--bg)}
.preview-frame{width:100%;height:100%;border:0;display:block;background:var(--bg)}

/* rich text */
.rte{border:1px solid var(--line);border-radius:10px;background:var(--surface);position:relative}
.rte:focus-within{border-color:color-mix(in srgb,var(--violet) 60%,var(--line));box-shadow:0 0 0 3px var(--glow)}
.rte-bar{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border-bottom:1px solid var(--line)}
.rte-btn{background:none;border:0;border-radius:7px;padding:3px 8px;font-size:12.5px;color:var(--muted);font-weight:600}
.rte-btn:hover,.rte-btn[aria-expanded=true]{background:var(--surface-2);color:var(--text)}
.rte-box{min-height:70px;padding:8px 11px;font-size:14px;line-height:1.5;outline:none;overflow-wrap:anywhere}
.rte-box p{margin:.3em 0}.rte-box ul,.rte-box ol{margin:.3em 0;padding-left:1.4em}
.rte-box:empty::before{content:"Type here…";color:var(--muted)}
.chip-menu{position:absolute;right:4px;top:36px;z-index:30;width:min(320px,90%);max-height:260px;overflow:auto;padding:6px;border-radius:12px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;gap:2px}
.chip-menu[hidden]{display:none}
.chip{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;background:none;border:0;border-radius:8px;padding:5px 8px;font-size:13px;color:var(--text)}
.chip:hover,.chip:focus-visible{background:var(--surface-2)}
.chip code{font-size:11.5px;color:var(--cyan)}
.chip-select{min-height:30px!important;font-size:12.5px!important;color:var(--muted)!important;width:auto!important;max-width:100%}
.rule-box{padding:10px;border:1px dashed var(--line);border-radius:10px}
.ins-text{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.col-row input[type=text]{flex:1}
.col-row select{flex:1}
.matrix th[scope=row]{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;text-transform:none;letter-spacing:0}
.matrix td{padding:4px}
.cellbtn{width:100%;min-height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.cellbtn.ok{background:var(--ok-bg);color:var(--ok-fg);border-color:transparent}
.cellbtn.missing{background:var(--err-bg);color:var(--err-fg);border-color:transparent}
.cellbtn.active{outline:2px solid var(--violet);outline-offset:1px}
.cell-editor{margin-top:10px}

@media (max-width:1180px){
  .panes{grid-template-columns:minmax(230px,280px) 1fr}
  .pane-preview{grid-column:1/-1;min-height:70vh}
  .editor{height:auto}
  .pane{max-height:none}
  .pane-blocks .pane-body,.pane-form .pane-body{max-height:70vh}
}
@media (max-width:860px){
  body.is-editor .adm{grid-template-columns:1fr}
  body.is-editor .adm-nav a{font-size:14px}
  body.is-editor .adm-side .brand span:last-child,body.is-editor .ws-pick,body.is-editor .adm-side-foot{display:revert}
  .panes{grid-template-columns:1fr}
}
