html{font-size:16pt}
*{box-sizing:border-box}
:root{
  --bg:#edf2f8;--panel:#fff;--text:#172033;--muted:#607187;--line:#c5d2df;
  --brand:#1f4f8f;--brand2:#2d6fb8;--ok:#2d7b57;--warn:#a56a1a;--danger:#a83c3c;
  --shadow:0 12px 28px rgba(23,42,70,.10);
}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Sarabun",sans-serif;color:var(--text);background:var(--bg)}
button,input{font:inherit}
.admin-container{width:calc(100% - 48px);max-width:none;margin:0 auto}
.admin-topbar{background:linear-gradient(105deg,#163f70,#2464a4);color:#fff;box-shadow:0 5px 18px rgba(14,42,72,.2)}
.admin-topbar-row{min-height:126px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.admin-topbar h1{margin:4px 0 2px;font-size:1.18rem}
.admin-topbar p{margin:0;color:#d7e5f4;font-size:.74rem}
.admin-eyebrow{text-transform:none;font-size:.67rem;font-weight:700;letter-spacing:.02em;color:#67809a}
.admin-topbar .admin-eyebrow{color:#d6e5f5}
.admin-user{display:flex;align-items:center;gap:14px}
.admin-user>div{text-align:right}
.admin-user strong,.admin-user span{display:block}
.admin-user span{margin-top:2px;color:#d7e5f4;font-size:.68rem}
.admin-ghost-btn{border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:8px 12px;cursor:pointer}
.admin-main{padding:22px 0 42px}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#65768a;font-size:.69rem;margin-bottom:16px}
.admin-toolbar a{color:#1f5f9f;text-decoration:none;font-weight:700}
.admin-flash{padding:13px 16px;border-radius:12px;margin-bottom:16px;font-size:.74rem;font-weight:600;border:1px solid}
.admin-flash-success{background:#e9f7ef;border-color:#9dceb1;color:#285d40}
.admin-flash-error{background:#fff0f0;border-color:#dfaaaa;color:#7b3030}
.admin-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.admin-status-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.admin-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#52657a;font-size:.72rem;font-weight:700}
.admin-dot{width:11px;height:11px;border-radius:50%;background:#9aa8b7;box-shadow:0 0 0 4px rgba(154,168,183,.13)}
.admin-dot.is-ok{background:#3c9a6d;box-shadow:0 0 0 4px rgba(60,154,109,.14)}
.admin-dot.is-warn{background:#d59235;box-shadow:0 0 0 4px rgba(213,146,53,.15)}
.admin-status-card>strong{display:block;margin-top:12px;font-size:1.18rem;color:#183e69}
.admin-status-card>p{margin:4px 0 12px;color:var(--muted);font-size:.69rem}
.admin-status-card dl{margin:0;border-top:1px solid #e3eaf1;padding-top:9px;display:grid;gap:5px}
.admin-status-card dl div{display:flex;justify-content:space-between;gap:10px;font-size:.64rem}
.admin-status-card dt{color:#718095}.admin-status-card dd{margin:0;color:#34495f;font-weight:600;text-align:right}
.admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}
.admin-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:var(--shadow)}
.admin-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.admin-panel h2{margin:3px 0 0;color:#203f62;font-size:1rem}
.admin-panel>p{margin:0 0 16px;color:#5f7186;font-size:.72rem;line-height:1.55}
.admin-state-pill{border-radius:999px;padding:6px 10px;font-size:.62rem;font-weight:700;border:1px solid}
.admin-state-pill.is-ready{background:#edf8f2;border-color:#a9d5ba;color:#2d6a49}
.admin-state-pill.is-busy{background:#fff4e4;border-color:#dfc088;color:#7b561a}
.admin-primary-btn{border:1px solid #174c80;background:linear-gradient(135deg,#1d548d,#2c72b6);color:#fff;border-radius:11px;padding:10px 15px;font-weight:700;cursor:pointer}
.admin-primary-btn:hover{filter:brightness(1.05)}
.admin-primary-btn:disabled{opacity:.45;cursor:not-allowed}
.admin-next-run{margin-top:14px;padding:10px 12px;border-radius:10px;background:#f5f8fb;color:#5b6c80;font-size:.62rem;overflow:auto}
.palette-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.palette-grid label{display:grid;gap:6px;padding:10px;border:1px solid #cfdae5;border-radius:11px;background:#f9fbfd;text-align:center}
.palette-grid label>span{font-size:.61rem;color:#53667c;font-weight:700}
.palette-grid input[type=color]{width:100%;height:48px;border:0;padding:0;background:transparent;cursor:pointer}
.palette-grid code{font-size:.58rem;color:#516378}
.admin-runs-panel{margin-top:20px}
.admin-table-wrap{overflow:auto}
.admin-table-wrap table{width:100%;border-collapse:collapse;font-size:.66rem}
.admin-table-wrap th,.admin-table-wrap td{padding:11px 10px;border-bottom:1px solid #dce5ee;text-align:left;white-space:nowrap}
.admin-table-wrap th{background:#f1f5f9;color:#45596f;position:sticky;top:0}
.admin-table-status{font-weight:700}.admin-table-status.is-ok{color:#2d7b57}.admin-table-status.is-warn{color:#a56a1a}
.admin-footer{border-top:1px solid #d0dbe7;color:#6d7c8f;padding:18px 0 26px;font-size:.62rem}

/* login */
.admin-login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#e7f0fa,#edf2f8 48%)}
.admin-login-shell{width:min(100%,560px)}
.admin-login-card{background:#fff;border:1px solid #c6d3e0;border-radius:20px;padding:30px;box-shadow:0 20px 55px rgba(20,48,78,.14)}
.admin-login-brand{text-align:center;margin-bottom:20px}
.admin-login-brand h1{margin:5px 0;font-size:1.25rem;color:#1b4777}
.admin-login-brand p{margin:0;color:#66788d;font-size:.7rem}
.admin-login-form{display:grid;gap:14px}
.admin-login-form label{display:grid;gap:6px;color:#40556d;font-size:.69rem;font-weight:700}
.admin-login-form input{width:100%;border:1px solid #b9c8d8;border-radius:10px;padding:10px 12px;background:#fff;color:#172033}
.admin-login-form input:focus{outline:3px solid rgba(45,111,184,.16);border-color:#2d6fb8}
.admin-login-form button{margin-top:3px;border:1px solid #174c80;border-radius:11px;padding:11px;background:linear-gradient(135deg,#1d548d,#2c72b6);color:#fff;font-weight:700;cursor:pointer}
.admin-back-link{display:block;margin-top:18px;text-align:center;color:#55718d;text-decoration:none;font-size:.67rem}

@media(max-width:1200px){
  .admin-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-two-col{grid-template-columns:1fr}
}
@media(max-width:720px){
  .admin-container{width:calc(100% - 24px)}
  .admin-topbar-row{align-items:flex-start;flex-direction:column;padding:20px 0}
  .admin-user{width:100%;justify-content:space-between}
  .admin-user>div{text-align:left}
  .admin-status-grid{grid-template-columns:1fr}
  .palette-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* Clickable Admin title — Application 0.24 */
.admin-title-link,
.admin-title-link:visited{
  color:#ffffff;
  text-decoration:none;
  text-shadow:0 1px 2px rgba(0,0,0,.20);
}
.admin-title-link:hover{
  color:#eaf4ff;
  text-decoration:underline;
  text-underline-offset:4px;
}
.admin-title-link:active{
  color:#d7ebff;
}
.admin-title-link:focus-visible{
  color:#ffffff;
  background:rgba(255,255,255,.10);
  text-decoration:underline;
  text-underline-offset:4px;
  outline:2px solid rgba(255,255,255,.92);
  outline-offset:4px;
  border-radius:4px;
}


/* Authenticated Admin title cache/contrast corrective — Application 0.26 */
.admin-topbar .admin-title-link,
.admin-topbar .admin-title-link:link,
.admin-topbar .admin-title-link:visited{
  color:#ffffff !important;
  text-decoration:none;
}
.admin-topbar .admin-title-link:hover{
  color:#eaf4ff !important;
  text-decoration:underline;
  text-underline-offset:4px;
}
.admin-topbar .admin-title-link:active{
  color:#d7ebff !important;
}
.admin-topbar .admin-title-link:focus-visible{
  color:#ffffff !important;
  background:rgba(255,255,255,.10);
  text-decoration:underline;
  text-underline-offset:4px;
  outline:2px solid rgba(255,255,255,.92);
  outline-offset:4px;
  border-radius:4px;
}


/* Admin History + SQL Reference — Admin 0.38 */
.admin-sql-reference-panel{margin-top:20px}
.admin-sql-groups{display:grid;gap:18px}
.admin-sql-group{
  border:1px solid #d2dde8;
  border-radius:14px;
  background:#f8fafc;
  overflow:hidden;
}
.admin-sql-group-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid #dbe4ed;
  background:#f1f5f9;
}
.admin-sql-group-head strong{
  display:block;
  color:#203f62;
  font-size:.77rem;
}
.admin-sql-group-head span{
  display:block;
  margin-top:3px;
  color:#6a7b8e;
  font-size:.61rem;
}
.admin-sql-details{border-bottom:1px solid #dbe4ed}
.admin-sql-details:last-child{border-bottom:0}
.admin-sql-details summary{
  cursor:pointer;
  padding:12px 16px;
  color:#34516f;
  font-size:.68rem;
  font-weight:700;
  background:#fff;
  user-select:none;
}
.admin-sql-details summary:hover{background:#f7fafe}
.admin-sql-details[open] summary{
  color:#1f5f9f;
  background:#edf4fb;
  border-bottom:1px solid #dbe4ed;
}
.admin-sql-details pre{
  margin:0;
  padding:16px;
  max-height:520px;
  overflow:auto;
  background:#172230;
  color:#e7edf4;
  border:0;
  font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  font-size:.58rem;
  line-height:1.55;
  tab-size:2;
  white-space:pre;
}
.admin-sql-details code{font:inherit;color:inherit}
@media(max-width:720px){
  .admin-sql-details pre{padding:13px;font-size:.55rem}
}
