/* Build 219 · Admin tabs, Manual Entries sub-tabs and per-block saves. */
.adm-tabs,.mb-subtabs{display:flex;gap:6px;overflow-x:auto;padding:4px;margin:0 0 14px;background:#e4eaf0;border-radius:12px;scrollbar-width:thin}
.adm-tabs button,.mb-subtabs button{flex:0 0 auto;border:0;background:transparent;color:var(--steel);font-size:13px;font-weight:700;padding:9px 14px;border-radius:9px;white-space:nowrap}
.adm-tabs button.on,.mb-subtabs button.on{background:var(--card);box-shadow:0 1px 4px rgba(13,20,28,.14);color:var(--ink)}
.adm-tabs button.danger-tab{color:#9c2f29}
.adm-tabs button.danger-tab.on{background:#fff7f6;color:var(--danger);box-shadow:inset 0 0 0 1.5px #efb2ae}
.adm-panel[hidden],.mb-panel[hidden]{display:none!important}
.adm-lede{font-size:12px;color:var(--mut);margin:-4px 0 12px;padding-left:2px}
.mb-linkcard{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.mb-linkcard b{display:block;color:var(--steel);font-size:14px}
.mb-linkcard span{display:block;color:var(--mut);font-size:12px;margin-top:2px}
.mb-linkcard .btn{width:auto;flex:0 0 auto;padding:9px 14px;font-size:13px}
.adm-danger{border-color:#efb2ae;background:#fffbfa}
.adm-danger h3 .dot{background:var(--danger)}
.adm-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eef2f6;font-size:13px}
.adm-row:last-child{border-bottom:0}
.adm-row small{display:block;color:var(--mut)}
.adm-row .btn{width:auto;flex:0 0 auto;padding:7px 12px;font-size:12px}
.adm-row .btn.del{background:var(--danger);color:#fff}
.adm-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:8px}
.adm-controls .fld{margin:0;min-width:150px}
.adm-controls .btn{width:auto;padding:10px 14px;font-size:13px}
/* Destructive controls live only in Admin · Restore and delete. */
#admPanel-history [onclick^="deleteSnapshot"],
#admPanel-history [onclick^="rederiveManagementGalvReport"],
#mgmtGalvBody [onclick^="deleteManagementGalvReport"]{display:none!important}
.adm-evfold{margin-top:10px;border:1px dashed #cbd8e3;border-radius:9px;padding:8px 12px;background:#f8fafc}
.adm-evfold summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--steel)}
/* Per-block save footer */
.mb-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:10px;background:#f4f7fa;border:1px solid #e0e7ee}
.mb-foot .btn{width:auto;flex:0 0 auto;padding:9px 16px;font-size:13px}
.mb-state{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.mb-chip{align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:3px 9px;border-radius:20px}
.mb-chip.saved{background:#e6f6ee;color:var(--safe)}
.mb-chip.legacy{background:#eef2f6;color:#4d6074}
.mb-chip.empty{background:#fff;color:var(--mut);border:1px solid #d7e0e9}
.mb-chip.dirty{background:#fff1dc;color:#9a5b05}
.mb-by{font-size:11.5px;color:var(--mut)}
.mb-stored{font-size:11.5px;color:#4d6074;margin-top:6px;line-height:1.55}
.mb-stored b{color:var(--steel);font-weight:700}
.mb-foot.is-dirty{background:#fffaf1;border-color:#efcf9d}
.mb-status a,.mb-status button.backfill-link{margin-left:4px}
.mb-banner{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#eef6ff;border:1px solid #b8d7f5;color:#204f78;font-size:13px;font-weight:600;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.mb-banner .btn{width:auto;padding:7px 12px;font-size:12px}
.mb-moved{margin-top:10px;font-size:12px;color:var(--mut)}
@media(max-width:560px){.mb-foot{flex-direction:column;align-items:stretch}.mb-foot .btn{width:100%}.adm-row{flex-direction:column;align-items:stretch}}
.mb-rcpt{border-top:1px solid #e5ebf0;padding:9px 0}
.mb-rcpt.is-dirty{background:#fffaf1;margin:0 -8px;padding:9px 8px;border-radius:8px}
.mb-rcpt-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mb-rcpt-h b{font-size:13px;color:var(--steel)}
.mb-rcpt .mb-by{font-size:11px;color:var(--mut);margin-top:2px}
.mb-rcpt .mb-stored{margin-top:4px}
.mb-stored i{color:var(--mut)}
.mb-banner[hidden]{display:none!important}
/* Keep these reorganised pages inside the phone viewport. Tables retain
   their own horizontal scrollers; the document itself must not grow. */
#p-admin,#p-manualgalv{min-width:0;overflow-wrap:anywhere}
#adminContent,.adm-panel,.mb-panel,#manualGalvBody,#mgmtGalvBody,
#mbHistoricalHome,#p-manualgalv .manual-workspace,
#p-manualgalv .manual-workspace>*,#p-admin .card,#p-manualgalv .card{
  min-width:0;max-width:100%;
}
#p-admin .fld,#p-manualgalv .fld,
#p-admin .row>*,#p-manualgalv .row>*,
#p-manualgalv .manual-fields>*,#p-manualgalv .manual-line-grid>*{
  min-width:0;max-width:100%;
}
#p-admin input,#p-admin select,#p-admin textarea,
#p-manualgalv input,#p-manualgalv select,#p-manualgalv textarea{
  min-width:0;max-width:100%;box-sizing:border-box;
}
#p-admin .scrollx,#p-manualgalv .scrollx{
  min-width:0;max-width:100%;overflow-x:auto;
}
#p-admin .adm-row>div,#p-manualgalv .mgmt-record>div{min-width:0}
#p-manualgalv .mb-banner>span{min-width:0;flex:1 1 200px}
@media(max-width:560px){
  #p-admin .row,#p-manualgalv .row{grid-template-columns:minmax(0,1fr)}
  #p-manualgalv .mgmt-record{flex-direction:column;align-items:stretch}
  #p-manualgalv .mgmt-record>div:last-child{flex-wrap:wrap}
  #p-admin .adm-controls .fld{flex:1 1 150px;min-width:0}
  #p-manualgalv .manual-fields{grid-template-columns:minmax(0,1fr)}
  #p-manualgalv .manual-line-grid{grid-template-columns:minmax(0,1fr)}
}
