@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&display=swap');

:root{
  --bg:#071410;
  --panel:#0d211a;
  --panel2:#102820;
  --line:#214235;
  --text:#f3f0df;
  --muted:#8fa79e;
  --green:#9bc86b;
  --gold:#e4c56d;
  --danger:#ef8f86;
  --shadow:0 20px 60px rgba(0,0,0,.22);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:var(--font-ui,"Noto Sans Thai","Leelawadee UI","Segoe UI",Tahoma,sans-serif);background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
button,input{font:inherit}

.admin-login-body{
  min-height:100vh;
  background:
    radial-gradient(circle at 20% 15%,rgba(155,200,107,.10),transparent 32%),
    radial-gradient(circle at 85% 85%,rgba(228,197,109,.07),transparent 30%),
    #06120e;
}
.admin-login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.admin-login-card{
  width:min(430px,100%);
  padding:36px;
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(15,40,31,.98),rgba(8,25,19,.98));
  box-shadow:var(--shadow)
}
.admin-login-brand{display:flex;align-items:end;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid var(--line)}
.admin-login-brand>span{font-size:22px;letter-spacing:.16em;font-weight:700}
.admin-login-brand b{color:var(--green)}
.admin-login-brand small{font-size:10px;letter-spacing:.24em;color:var(--gold)}
.admin-login-heading{padding:28px 0 22px}
.admin-login-heading p{margin:0 0 5px;color:var(--green);font-size:12px;font-weight:700}
.admin-login-heading h1{margin:0 0 9px;font-size:28px}
.admin-login-heading span{color:var(--muted);font-size:13px;line-height:1.7}
.admin-alert{margin-bottom:18px;padding:11px 13px;border:1px solid rgba(239,143,134,.35);border-radius:10px;background:rgba(239,143,134,.08);color:#ffc1bb;font-size:13px}
.admin-login-form{display:grid;gap:16px}
.admin-login-form label{display:grid;gap:7px;color:#cddbd5;font-size:13px}
.admin-login-form input{
  width:100%;height:48px;padding:0 14px;
  border:1px solid #284b3d;border-radius:11px;
  outline:none;background:#071a14;color:#fff
}
.admin-login-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(155,200,107,.10)}
.admin-login-form button{
  height:49px;border:0;border-radius:11px;cursor:pointer;
  background:var(--gold);color:#162015;font-weight:700
}
.admin-login-form button:hover{filter:brightness(1.05)}
.admin-back-site{display:block;margin-top:22px;text-align:center;color:var(--muted);font-size:12px}

.admin-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.admin-sidebar{
  position:sticky;top:0;height:100vh;padding:24px 17px 18px;
  border-right:1px solid var(--line);background:#081a14;
  display:flex;flex-direction:column;z-index:30
}
.admin-brand{display:block;padding:8px 11px 24px;border-bottom:1px solid var(--line)}
.admin-brand-main{display:block;font-size:17px;letter-spacing:.13em;font-weight:700}
.admin-brand-main b{color:var(--green)}
.admin-brand small{display:block;margin-top:5px;color:var(--gold);font-size:9px;letter-spacing:.28em}
.admin-nav{display:grid;gap:6px;padding-top:20px}
.admin-nav a,.admin-nav-soon{
  min-height:43px;padding:0 11px;border-radius:10px;
  display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:6px;
  color:#b8cbc3;font-size:13px
}
.admin-nav a:hover{background:#102a21}
.admin-nav a.is-active{background:#173a2d;color:#fff}
.admin-nav a.is-active .admin-nav-icon{color:var(--green)}
.admin-nav-soon{opacity:.5;cursor:default}
.admin-nav-soon em{font-style:normal;font-size:9px;color:var(--gold)}
.admin-nav-group{padding:18px 11px 6px;color:#667d74;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.admin-sidebar-bottom{margin-top:auto;padding:16px 10px 4px;border-top:1px solid var(--line)}
.admin-sidebar-bottom a{font-size:12px;color:var(--muted)}

.admin-main{min-width:0}
.admin-topbar{
  height:76px;padding:0 28px;
  border-bottom:1px solid var(--line);background:rgba(7,20,16,.94);
  display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20;
  backdrop-filter:blur(12px)
}
.admin-menu-toggle{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:#0d241c;color:#fff}
.admin-topbar-title{font-size:16px;font-weight:700}
.admin-topbar-sub{margin-top:2px;color:var(--muted);font-size:10px}
.admin-user{margin-left:auto;display:flex;align-items:center;gap:10px}
.admin-user-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#1a3c30;color:var(--green);font-weight:700}
.admin-user-copy{display:grid}
.admin-user-copy strong{font-size:12px}
.admin-user-copy span{font-size:10px;color:var(--muted)}
.admin-logout-form{margin-left:8px}
.admin-logout-form button{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:#c9d6d1;cursor:pointer;font-size:11px}
.admin-logout-form button:hover{border-color:#5b7a6d}

.admin-content{padding:30px;max-width:1440px;margin:0 auto}
.admin-welcome{
  padding:30px;border:1px solid var(--line);border-radius:20px;
  background:linear-gradient(125deg,#0e2a20,#0a1c16 72%);
  display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:24px;align-items:center
}
.admin-kicker{display:inline-block;margin-bottom:10px;color:var(--green);font-size:10px;letter-spacing:.12em;font-weight:700}
.admin-welcome h1{margin:0;font-size:clamp(24px,3vw,39px);line-height:1.2}
.admin-welcome p{max-width:720px;margin:14px 0 0;color:#a6bbb2;font-size:13px;line-height:1.8}
.admin-welcome-badge{padding:18px;border:1px solid #24473a;border-radius:14px;background:rgba(3,14,10,.35)}
.admin-welcome-badge small,.admin-welcome-badge span{display:block;color:var(--muted);font-size:10px}
.admin-welcome-badge strong{display:block;margin:5px 0;color:var(--gold);font-size:20px}

.admin-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.admin-stat-card{min-height:105px;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--panel);display:flex;align-items:center;gap:14px}
.admin-stat-icon{width:43px;height:43px;border-radius:12px;background:#17392d;color:var(--green);display:grid;place-items:center;font-size:19px}
.admin-stat-card div{display:grid}
.admin-stat-card strong{font-size:24px;color:#fff}
.admin-stat-card span:last-child{font-size:11px;color:var(--muted)}

.admin-grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-top:18px}
.admin-panel{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.admin-panel-head span{font-size:10px;color:var(--green);font-weight:700}
.admin-panel-head h2{margin:3px 0 18px;font-size:18px}
.admin-step-list{display:grid;gap:9px}
.admin-step{
  padding:12px;border:1px solid #1d3b30;border-radius:11px;
  display:grid;grid-template-columns:31px minmax(0,1fr) auto;align-items:center;gap:10px
}
.admin-step>b{width:28px;height:28px;border-radius:8px;background:#122e24;color:#8ba49a;display:grid;place-items:center;font-size:11px}
.admin-step div{display:grid}
.admin-step strong{font-size:12px}
.admin-step span{margin-top:2px;color:var(--muted);font-size:10px}
.admin-step em{font-style:normal;font-size:9px;color:var(--muted)}
.admin-step.is-done{border-color:#345b45}
.admin-step.is-done>b{background:#294e38;color:var(--green)}
.admin-step.is-done em{color:var(--green)}
.admin-step.is-next{border-color:#5e5633;background:rgba(228,197,109,.035)}
.admin-step.is-next>b,.admin-step.is-next em{color:var(--gold)}

.admin-system-list{display:grid;border-top:1px solid var(--line)}
.admin-system-list div{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}
.admin-system-list span{color:var(--muted);font-size:11px}
.admin-system-list strong{font-size:11px}
.admin-primary-link{display:flex;justify-content:center;margin-top:17px;padding:11px;border-radius:10px;background:var(--gold);color:#182116;font-size:11px;font-weight:700}

@media(max-width:1050px){
  .admin-stats-grid{grid-template-columns:repeat(2,1fr)}
  .admin-grid-2{grid-template-columns:1fr}
}
@media(max-width:820px){
  .admin-shell{display:block}
  .admin-sidebar{position:fixed;left:-270px;width:248px;transition:left .2s ease;box-shadow:20px 0 50px rgba(0,0,0,.35)}
  .admin-menu-open .admin-sidebar{left:0}
  .admin-menu-toggle{display:block}
  .admin-topbar{padding:0 16px}
  .admin-content{padding:18px}
  .admin-welcome{grid-template-columns:1fr}
  .admin-user-copy{display:none}
}
@media(max-width:560px){
  .admin-login-card{padding:26px 21px}
  .admin-stats-grid{grid-template-columns:1fr 1fr;gap:9px}
  .admin-stat-card{min-height:92px;padding:13px;gap:10px}
  .admin-stat-icon{width:37px;height:37px}
  .admin-stat-card strong{font-size:20px}
  .admin-content{padding:13px}
  .admin-welcome{padding:21px}
  .admin-logout-form button{padding:7px 8px}
}


/* ===== Phase 41: E-Training Admin ===== */
.admin-flash{
  margin:0 0 16px;padding:12px 15px;border:1px solid #355e48;border-radius:11px;
  background:#102c21;color:#c9e8d5;font-size:12px
}
.admin-flash.is-error{border-color:#71443f;background:#2a1715;color:#ffc4bd}
.admin-page-head{
  margin-bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:20px
}
.admin-page-head h1{margin:2px 0 5px;font-size:28px}
.admin-page-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}
.admin-page-head-compact{align-items:start}
.admin-back-link{display:inline-block;margin-bottom:8px;color:var(--muted);font-size:11px}
.admin-action-primary{
  flex:none;padding:11px 15px;border-radius:10px;background:var(--gold);
  color:#172017;font-size:12px;font-weight:700
}
.admin-mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.admin-mini-stats article{
  padding:14px 17px;border:1px solid var(--line);border-radius:13px;background:var(--panel)
}
.admin-mini-stats strong{display:block;font-size:22px}
.admin-mini-stats span{display:block;color:var(--muted);font-size:10px}
.admin-panel-head-row{display:flex;align-items:start;justify-content:space-between;gap:15px}
.admin-panel-head-row small{color:var(--muted);font-size:10px}
.admin-quiz-settings{margin-bottom:18px}
.admin-settings-form{
  display:grid;grid-template-columns:170px 150px 180px 160px auto;gap:12px;align-items:end
}
.admin-settings-form>label{display:grid;gap:6px}
.admin-settings-form>label>span{font-size:10px;color:var(--muted)}
.admin-settings-form input[type=number],.admin-filterbar input,.admin-filterbar select,
.admin-field input,.admin-field select,.admin-field textarea{
  width:100%;border:1px solid #29493d;border-radius:9px;background:#071b14;color:#fff;outline:none
}
.admin-settings-form input[type=number]{height:39px;padding:0 10px}
.admin-check-row{
  min-height:39px!important;padding:0 8px;display:flex!important;grid-template-columns:auto 1fr!important;
  align-items:center;gap:8px!important;border:1px solid #244337;border-radius:9px;background:#0a2018
}
.admin-check-row span{color:#c5d5cf!important}
.admin-settings-form button,.admin-filterbar button,.admin-editor-actions button{
  height:39px;padding:0 14px;border:0;border-radius:9px;background:var(--gold);color:#172017;font-weight:700;cursor:pointer
}
.admin-filterbar{
  display:grid;grid-template-columns:minmax(220px,1fr) 190px 120px 140px auto auto;
  gap:9px;margin-bottom:16px
}
.admin-filterbar input,.admin-filterbar select{height:39px;padding:0 10px;font-size:11px}
.admin-filterbar>a{height:39px;padding:0 8px;display:grid;place-items:center;color:var(--muted);font-size:11px}
.admin-table-wrap{overflow:auto}
.admin-table{width:100%;border-collapse:collapse;min-width:920px}
.admin-table th{
  padding:10px 9px;border-bottom:1px solid #365448;text-align:left;color:#7e9a90;
  font-size:9px;font-weight:600;letter-spacing:.05em
}
.admin-table td{padding:12px 9px;border-bottom:1px solid #19372c;vertical-align:middle;font-size:11px;color:#b8cbc4}
.admin-table tbody tr:hover{background:rgba(155,200,107,.025)}
.admin-id{color:#667f75!important}
.admin-question-cell{max-width:620px}
.admin-question-cell>strong{display:block;color:#eef4f1;font-size:12px;line-height:1.55;font-weight:600}
.admin-question-cell>div{display:flex;gap:9px;margin-top:5px;color:#718b80;font-size:9px}
.admin-question-cell .is-warning{font-style:normal;color:#e6ba69}
.admin-status,.admin-difficulty{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;white-space:nowrap}
.admin-status.is-on{background:#173a2d;color:#a9d184}
.admin-status.is-off{background:#242d29;color:#84958e}
.admin-difficulty.is-easy{background:#152f26;color:#9ec6a0}
.admin-difficulty.is-medium{background:#302b19;color:#e1c56e}
.admin-difficulty.is-hard{background:#39201f;color:#e99d94}
.admin-row-actions{display:flex;align-items:center;gap:5px}
.admin-row-actions a,.admin-row-actions button{
  padding:6px 7px;border:1px solid #29483c;border-radius:7px;background:transparent;color:#c9d8d2;
  font-size:9px;cursor:pointer;white-space:nowrap
}
.admin-row-actions form{margin:0}
.admin-row-actions .is-danger{color:#e99a92;border-color:#583b37}
.admin-empty{padding:24px;text-align:center;color:var(--muted);font-size:11px}

.admin-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;align-items:start}
.admin-editor-grid>.admin-panel:last-child{grid-column:1/-1}
.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.admin-field{display:grid;gap:6px}
.admin-field>span{font-size:10px;color:var(--muted)}
.admin-field-full{grid-column:1/-1}
.admin-field input,.admin-field select{height:42px;padding:0 11px}
.admin-field textarea{padding:10px 11px;resize:vertical;line-height:1.6}
.admin-choice-editor{display:grid;gap:9px}
.admin-choice-row{
  display:grid;grid-template-columns:18px 28px minmax(0,1fr) 55px;gap:8px;align-items:center;
  padding:8px;border:1px solid #214236;border-radius:10px;background:#091d16
}
.admin-choice-row>b{
  width:27px;height:27px;border-radius:7px;background:#193a2e;color:var(--green);
  display:grid;place-items:center;font-size:10px
}
.admin-choice-row input[type=text]{
  width:100%;height:38px;padding:0 10px;border:1px solid #2a493d;border-radius:8px;background:#061710;color:#fff
}
.admin-choice-row>span{font-size:8px;color:#6f897e}
.admin-choice-row:has(input[type=radio]:checked){border-color:#56724d;background:#10291f}
.admin-choice-row:has(input[type=radio]:checked)>span{color:var(--green)}
.admin-editor-actions{display:flex;align-items:end;justify-content:space-between;gap:20px}
.admin-editor-actions>.admin-field{width:220px}
.admin-editor-actions>div{display:flex;align-items:center;gap:10px}
.admin-editor-actions>div>a{padding:10px;color:var(--muted);font-size:11px}

@media(max-width:1150px){
  .admin-settings-form{grid-template-columns:1fr 1fr}
  .admin-settings-form button{grid-column:1/-1}
  .admin-editor-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .admin-page-head{align-items:start;flex-direction:column}
  .admin-mini-stats{grid-template-columns:1fr 1fr}
  .admin-filterbar{grid-template-columns:1fr 1fr}
  .admin-filterbar input{grid-column:1/-1}
}
@media(max-width:560px){
  .admin-settings-form,.admin-filterbar,.admin-form-grid{grid-template-columns:1fr}
  .admin-filterbar input,.admin-field-full{grid-column:auto}
  .admin-mini-stats{gap:8px}
  .admin-mini-stats article{padding:12px}
  .admin-page-head h1{font-size:23px}
  .admin-editor-actions{align-items:stretch;flex-direction:column}
  .admin-editor-actions>.admin-field{width:100%}
  .admin-editor-actions>div{justify-content:flex-end}
}


/* ===== Phase 43: E-Learning Admin ===== */
.admin-action-secondary,.admin-small-add{
  padding:9px 12px;border:1px solid #355346;border-radius:9px;color:#d5e1dc;font-size:10px
}
.admin-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.admin-course-card{
  min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--panel);
  display:grid;grid-template-columns:145px minmax(0,1fr);overflow:hidden
}
.admin-course-cover{min-height:210px;background:#0a1c16;display:grid;place-items:center;overflow:hidden}
.admin-course-cover img{width:100%;height:100%;object-fit:cover}
.admin-course-cover>span{text-align:center;color:#607a6f;font-size:16px;letter-spacing:.14em;font-weight:700}
.admin-course-body{padding:17px;min-width:0}
.admin-course-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.admin-course-top small{color:var(--muted);font-size:9px}
.admin-course-body h2{margin:12px 0 1px;font-size:16px;line-height:1.45}
.admin-course-en{margin:0!important;color:var(--green)!important;font-size:9px!important}
.admin-course-body>p{margin:10px 0;color:var(--muted);font-size:10px;line-height:1.65}
.admin-course-counts{display:flex;gap:16px;margin-top:12px;color:#8da49b;font-size:9px}
.admin-course-counts b{color:#fff;font-size:13px}
.admin-course-actions{display:flex;gap:8px;margin-top:15px}
.admin-course-actions a{padding:8px 10px;border-radius:8px;background:var(--gold);color:#152016;font-size:9px;font-weight:700}
.admin-course-actions a.is-secondary{background:#16352a;color:#cedbd6}
.admin-content-list{display:grid;gap:8px}
.admin-content-row{
  min-height:58px;padding:8px 9px;border:1px solid #1f3c31;border-radius:10px;
  display:grid;grid-template-columns:33px minmax(0,1fr) auto;gap:9px;align-items:center
}
.admin-content-order{width:30px;height:30px;border-radius:8px;background:#102c22;color:#779186;display:grid;place-items:center;font-size:9px}
.admin-content-row>div:nth-child(2){display:grid}
.admin-content-row strong{font-size:11px;line-height:1.45}
.admin-content-row span{margin-top:2px;color:var(--muted);font-size:9px}
.admin-content-row>a{padding:6px 8px;border:1px solid #315044;border-radius:7px;font-size:9px}
.admin-media-box{padding:15px;border:1px dashed #385849;border-radius:12px;background:#081b14}
.admin-media-box>strong{display:block;margin-bottom:12px;font-size:11px;color:var(--green)}
.admin-field small{display:block;margin-top:3px;color:#728c82;font-size:8px;word-break:break-all}
.admin-field input[type=file]{padding:9px;height:auto}
@media(max-width:1100px){
 .admin-course-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
 .admin-course-card{grid-template-columns:92px minmax(0,1fr)}
 .admin-course-cover{min-height:190px}
 .admin-course-actions{flex-direction:column}
}


/* ===== Phase 44: IoT Lab Admin ===== */
.admin-iot-farm-status{margin-bottom:18px}
.admin-iot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.admin-iot-card{padding:15px;border:1px solid #214136;border-radius:13px;background:#0a1f18}
.admin-iot-card-top{display:flex;align-items:start;justify-content:space-between;gap:12px}
.admin-iot-kind{color:var(--green);font-size:8px;letter-spacing:.12em;font-weight:700}
.admin-iot-card h3{margin:3px 0 2px;font-size:13px}
.admin-iot-card p{margin:0;color:var(--muted);font-size:9px}
.admin-iot-meta{display:grid;grid-template-columns:45px 1fr;gap:5px 8px;margin:12px 0;padding:10px;border-radius:9px;background:#071912}
.admin-iot-meta span{color:#6f897e;font-size:8px}
.admin-iot-meta strong{font-size:9px;word-break:break-all}
.admin-iot-actions{display:flex;flex-wrap:wrap;gap:6px}
.admin-iot-actions form{margin:0}
.admin-iot-actions button,.admin-iot-actions a,.admin-rule-row button,.admin-rule-row>a{
  padding:7px 8px;border:1px solid #315246;border-radius:8px;background:#132f25;color:#dbe5e1;font-size:9px;cursor:pointer
}
.admin-iot-actions button.is-primary{background:var(--gold);color:#172017;border-color:var(--gold)}
.admin-iot-actions button.is-neutral{background:#172820}
.admin-iot-actions button:disabled{opacity:.4;cursor:not-allowed}
.admin-iot-rules{margin-top:18px}
.admin-rule-row{
  min-height:60px;padding:9px;border:1px solid #1f3c31;border-radius:10px;
  display:grid;grid-template-columns:34px minmax(0,1fr) 82px auto auto;gap:9px;align-items:center
}
.admin-rule-priority{width:30px;height:30px;border-radius:8px;background:#132e25;color:var(--gold);display:grid;place-items:center;font-size:9px}
.admin-rule-row>div:nth-child(2){display:grid}
.admin-rule-row strong{font-size:11px}
.admin-rule-row span:not(.admin-status){font-size:8px;color:var(--muted)}
.admin-rule-row form{margin:0}

@media(max-width:1180px){
  .admin-iot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .admin-iot-grid{grid-template-columns:1fr}
  .admin-rule-row{grid-template-columns:34px minmax(0,1fr) auto}
  .admin-rule-row form,.admin-rule-row>a{grid-column:auto}
}


/* ===== Phase 46: AJAX toggle without page refresh ===== */
.admin-js-toggle-button{transition:opacity .15s ease,transform .15s ease,background .15s ease}
.admin-js-toggle-button:disabled{opacity:.55;cursor:wait}
.admin-ajax-toast{
  position:fixed;right:22px;bottom:22px;z-index:9999;
  padding:11px 14px;border:1px solid #385f4a;border-radius:10px;
  background:#102b21;color:#dff0e7;font-size:11px;
  box-shadow:0 14px 40px rgba(0,0,0,.28);
  opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .18s ease,transform .18s ease
}
.admin-ajax-toast.is-show{opacity:1;transform:translateY(0)}
.admin-ajax-toast.is-error{border-color:#74423c;background:#2b1715;color:#ffd0ca}
@media(max-width:560px){
  .admin-ajax-toast{left:14px;right:14px;bottom:14px;text-align:center}
}


/* ===== Phase 48: Slide switch controls ===== */
.admin-slide-switch{
  appearance:none;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  color:var(--muted);
  min-height:28px;
}
.admin-slide-track{
  position:relative;
  width:46px;
  height:24px;
  border-radius:999px;
  background:#25322d;
  border:1px solid #3a4c45;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;
  flex:none;
}
.admin-slide-thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#aab7b2;
  box-shadow:0 2px 6px rgba(0,0,0,.35);
  transition:transform .18s ease,background .18s ease;
}
.admin-slide-label{
  min-width:24px;
  font-size:9px;
  font-weight:700;
  color:#84978f;
}
.admin-slide-switch.is-on .admin-slide-track{
  background:#31563b;
  border-color:#6a9253;
  box-shadow:inset 0 0 0 1px rgba(155,200,107,.08);
}
.admin-slide-switch.is-on .admin-slide-thumb{
  transform:translateX(22px);
  background:var(--green);
}
.admin-slide-switch.is-on .admin-slide-label{
  color:var(--green);
}
.admin-slide-switch.is-off .admin-slide-track{
  background:#2b302e;
}
.admin-slide-switch:hover .admin-slide-track{
  border-color:#6b8178;
}
.admin-slide-switch:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:4px;
  border-radius:8px;
}
.admin-slide-switch.is-saving{
  opacity:.6;
  cursor:wait;
}
.admin-slide-switch.is-saving .admin-slide-thumb{
  box-shadow:0 0 0 3px rgba(255,255,255,.05),0 2px 6px rgba(0,0,0,.3);
}


/* ===== Phase 49: Users Admin ===== */
.admin-page-actions{display:flex;gap:8px;align-items:center}
.admin-user-filter{grid-template-columns:minmax(240px,1fr) 170px 150px auto auto}
.admin-user-list-cell{display:flex;align-items:center;gap:10px;min-width:250px}
.admin-user-list-avatar{
  width:36px;height:36px;border-radius:50%;background:#17392d;color:var(--green);
  display:grid;place-items:center;font-weight:700;flex:none
}
.admin-user-list-cell>div:last-child{display:grid}
.admin-user-list-cell strong{font-size:11px}
.admin-user-list-cell span{font-size:9px;color:var(--green)}
.admin-user-list-cell small{font-size:8px;color:var(--muted)}
.admin-password-form{max-width:650px;display:grid;gap:14px}
.admin-log-agent{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:820px){
  .admin-page-actions{width:100%;justify-content:flex-start}
  .admin-user-filter{grid-template-columns:1fr 1fr}
  .admin-user-filter input{grid-column:1/-1}
}
@media(max-width:560px){
  .admin-page-actions{flex-direction:column;align-items:stretch}
  .admin-page-actions a{text-align:center}
  .admin-user-filter{grid-template-columns:1fr}
  .admin-user-filter input{grid-column:auto}
}


/* ===== Phase 53: TOR 5.9 Lightweight Audit Log ===== */
.admin-report-range{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#091c15}
.admin-report-range a{padding:7px 10px;border-radius:7px;color:var(--muted);font-size:9px}
.admin-report-range a.is-active{background:#244637;color:var(--green)}
.admin-report-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.admin-report-stats article{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.admin-report-stats span,.admin-report-stats small{display:block;color:var(--muted);font-size:8px}
.admin-report-stats strong{display:block;margin:3px 0;font-size:22px}
.admin-report-stats article.is-alert{border-color:#69423d;background:#211613}
.admin-report-stats article.is-alert strong{color:#f0a099}
.admin-report-grid{grid-template-columns:1fr 1fr}
.admin-audit-summary{display:grid}
.admin-audit-summary>div{
  min-height:38px;border-bottom:1px solid #1b372c;
  display:grid;grid-template-columns:25px minmax(0,1fr) 55px;gap:8px;align-items:center
}
.admin-audit-summary b{
  width:21px;height:21px;border-radius:6px;background:#153126;color:#91aa9f;
  display:grid;place-items:center;font-size:8px
}
.admin-audit-summary code{font-size:9px;color:#c9d7d2}
.admin-audit-summary strong{text-align:right;font-size:11px;color:var(--green)}
.admin-audit-policy{display:grid;gap:8px}
.admin-audit-policy>div{
  min-height:35px;padding:7px 9px;border:1px solid #1f3a30;border-radius:9px;
  display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:center
}
.admin-audit-policy b{color:var(--green);font-size:10px}
.admin-audit-policy span{font-size:9px;color:#a9bbb4}
.admin-report-section{margin-top:18px}
.admin-audit-desc{display:block;margin-top:2px;color:var(--muted);font-size:8px}
@media(max-width:900px){
  .admin-report-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .admin-report-stats{grid-template-columns:1fr 1fr}
}


/* ===== Phase 54: Action Summary Empty State ===== */
.admin-audit-summary.is-empty{
  min-height:250px;
  display:grid;
  place-items:center;
}
.admin-audit-empty-state{
  max-width:520px;
  padding:30px 24px;
  text-align:center;
}
.admin-audit-empty-icon{
  width:48px;
  height:48px;
  margin:0 auto 12px;
  border:1px solid #315447;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--green);
  font-size:22px;
  background:#0b2119;
}
.admin-audit-empty-state>strong{
  display:block;
  font-size:14px;
  color:#edf3ef;
}
.admin-audit-empty-state>p{
  margin:8px auto 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.75;
}
.admin-audit-empty-state>small{
  display:inline-block;
  margin-top:12px;
  padding:5px 9px;
  border:1px solid #29483c;
  border-radius:999px;
  color:#809a90;
  font-size:8px;
}
.admin-audit-summary-row{
  min-height:38px;
  border-bottom:1px solid #1b372c;
  display:grid;
  grid-template-columns:25px minmax(0,1fr) 55px;
  gap:8px;
  align-items:center;
}


/* ===== Phase 55: FIX empty-state CSS collision =====
   Previous selector .admin-audit-summary>div also styled the empty-state box
   as a 3-column summary row, causing Thai text to stack vertically.
*/
.admin-audit-summary.is-empty{
  min-height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.admin-audit-summary.is-empty > .admin-audit-empty-state{
  width:min(520px, 92%);
  min-height:0;
  padding:28px 24px;
  margin:0;
  border:0;
  display:block;
  text-align:center;
  background:transparent;
}

.admin-audit-summary.is-empty > .admin-audit-empty-state .admin-audit-empty-icon{
  width:50px;
  height:50px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
}

.admin-audit-summary.is-empty > .admin-audit-empty-state > strong{
  display:block;
  width:100%;
  margin:0;
  color:#edf3ef;
  font-size:15px;
  line-height:1.5;
  white-space:normal;
}

.admin-audit-summary.is-empty > .admin-audit-empty-state > p{
  display:block;
  width:100%;
  max-width:480px;
  margin:9px auto 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.85;
  white-space:normal;
}

.admin-audit-summary.is-empty > .admin-audit-empty-state > small{
  display:inline-block;
  width:auto;
  margin:14px auto 0;
  padding:5px 10px;
  border:1px solid #29483c;
  border-radius:999px;
  color:#809a90;
  font-size:9px;
  line-height:1.4;
  white-space:nowrap;
}


/* ===== Phase 58: Lesson video upload progress ===== */
.admin-upload-progress{
  padding:14px 15px;
  border:1px solid #315246;
  border-radius:11px;
  background:#091d16;
}
.admin-upload-progress[hidden]{display:none!important}
.admin-upload-progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.admin-upload-progress-head strong{
  font-size:11px;
  color:#dce9e3;
}
.admin-upload-progress-head span{
  font-size:10px;
  color:var(--green);
  font-weight:700;
}
.admin-upload-progress-track{
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:#152920;
  border:1px solid #27483b;
}
.admin-upload-progress-track i{
  display:block;
  height:100%;
  width:0;
  border-radius:999px;
  background:var(--green);
  transition:width .12s linear;
}
.admin-upload-progress small{
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:9px;
}


/* ===== Phase 59: Video binding + admin preview ===== */
.admin-video-help{
  display:block;
  margin:-5px 0 12px;
  color:#91aa9f;
  font-size:9px;
  line-height:1.6;
}
.admin-file-ok{color:var(--green)!important}
.admin-file-missing{color:#e59a91!important}
.admin-video-preview{
  display:block;
  width:100%;
  max-width:520px;
  margin-top:9px;
  border:1px solid #315044;
  border-radius:10px;
  background:#000;
}


/* ===== Phase 60: Media Upload Integrity ===== */
.admin-media-remove{margin-top:8px}
.admin-media-open{
  display:inline-block;
  margin-top:7px;
  padding:6px 9px;
  border:1px solid #315044;
  border-radius:8px;
  color:#d5e1dc;
  font-size:9px;
}
.admin-cover-preview{
  display:block;
  width:110px;
  max-height:145px;
  object-fit:cover;
  margin-top:8px;
  border:1px solid #315044;
  border-radius:8px;
}
.admin-media-sub{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:8px;
}
.admin-media-check-list{display:grid;gap:8px}
.admin-media-check-list>div{
  padding:9px 10px;
  border:1px solid #203e33;
  border-radius:9px;
  display:grid;
  gap:4px;
}
.admin-media-check-list strong{font-size:9px}
.admin-media-check-list code,.admin-media-check-list span{
  color:var(--muted);
  font-size:8px;
  word-break:break-all;
}


/* ===== Phase 67: E-Book cover compact hover preview ===== */
.admin-cover-preview{
  display:none !important;
}

.admin-cover-hover{
  position:relative;
  margin-top:8px;
  width:min(100%, 320px);
}

.admin-cover-hover__trigger{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-width:0;
  padding:8px 10px;
  border:1px solid rgba(118,167,141,.22);
  border-radius:10px;
  background:rgba(4,26,19,.36);
  color:inherit;
  text-decoration:none;
  cursor:zoom-in;
}

.admin-cover-hover__thumb{
  width:42px;
  height:56px;
  flex:0 0 42px;
  display:block;
  object-fit:cover;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.12);
  background:#071c15;
}

.admin-cover-hover__trigger>span{
  min-width:0;
  display:grid;
  gap:2px;
  text-align:left;
}

.admin-cover-hover__trigger strong{
  font-size:12px;
  line-height:1.35;
  color:#eef8f2;
}

.admin-cover-hover__trigger small{
  margin:0 !important;
  font-size:10px;
  line-height:1.4;
  color:#78a58f;
  white-space:normal;
}

.admin-cover-hover__popover{
  position:fixed;
  z-index:9999;
  left:var(--cover-pop-left, 16px);
  top:var(--cover-pop-top, 16px);
  width:var(--cover-pop-width, 300px);
  max-width:calc(100vw - 32px);
  padding:8px;
  border:1px solid rgba(159,205,181,.28);
  border-radius:14px;
  background:#071912;
  box-shadow:0 18px 60px rgba(0,0,0,.38);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(4px) scale(.985);
  transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.admin-cover-hover__popover img{
  display:block;
  width:100%;
  max-height:min(68vh, 420px);
  object-fit:contain;
  border-radius:9px;
  background:#0a1c16;
}

.admin-cover-hover.is-previewing .admin-cover-hover__popover{
  opacity:1;
  visibility:visible;
  transform:none;
}

@media (hover:none), (pointer:coarse){
  .admin-cover-hover__trigger{
    cursor:pointer;
  }
  .admin-cover-hover__trigger small{
    display:none;
  }
  .admin-cover-hover__popover{
    display:none !important;
  }
}

/* Phase 42: simplified 3D object admin */
.admin-object-visual-form{align-items:start}
.admin-object-active{padding:10px 12px!important}
.admin-object-active>span{display:grid;gap:2px}
.admin-object-active strong{font-size:11px;color:#e7f0ec}
.admin-object-active small{font-size:9px;color:#789287}
.admin-advanced-settings{
  overflow:hidden;border:1px solid #244337;border-radius:11px;background:#081d16
}
.admin-advanced-settings>summary{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:46px;padding:10px 13px;cursor:pointer;list-style:none;color:#c9dad3
}
.admin-advanced-settings>summary::-webkit-details-marker{display:none}
.admin-advanced-settings>summary:after{content:'＋';font-size:15px;color:#8eaa9f}
.admin-advanced-settings[open]>summary:after{content:'−'}
.admin-advanced-settings>summary>span{font-size:11px;font-weight:700}
.admin-advanced-settings>summary>small{margin-left:auto;color:#6f8a80;font-size:9px}
.admin-advanced-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border-top:1px solid #1c3a2f
}
.admin-advanced-checks{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (max-width:760px){
  .admin-advanced-settings>summary{align-items:flex-start;flex-wrap:wrap}
  .admin-advanced-settings>summary>small{width:100%;margin-left:0}
  .admin-advanced-grid,.admin-advanced-checks{grid-template-columns:1fr}
}

/* Phase 47: compact 3D object manager */
.admin-object-manager .admin-panel-head h2{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.admin-object-count{font-size:10px;font-weight:600;color:var(--muted)}
.admin-object-groups{display:grid;gap:12px}
.admin-object-group{border:1px solid #214136;border-radius:13px;background:#0a1f18;overflow:hidden}
.admin-object-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid #17372d;background:#0b241b}
.admin-object-group-head>span{font-size:9px;color:var(--muted);white-space:nowrap}
.admin-object-zone-title{display:flex;align-items:center;gap:8px;min-width:0}
.admin-object-zone-title strong{font-size:12px}
.admin-object-zone-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#12382b;color:var(--green);font-size:13px;font-weight:800;flex:0 0 auto}
.admin-object-list{display:grid}
.admin-object-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 13px;border-top:1px solid #143127}
.admin-object-row:first-child{border-top:0}
.admin-object-row:hover{background:#0d281e}
.admin-object-main{display:flex;align-items:baseline;gap:8px;min-width:0}
.admin-object-main strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-object-main span{font-size:9px;color:var(--muted);white-space:nowrap}
.admin-object-edit{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border:1px solid #2a5445;border-radius:8px;color:#c7f7dd;text-decoration:none;font-size:10px;font-weight:700;background:#0c2a20}
.admin-object-edit:hover{border-color:var(--green);color:#fff}
@media (max-width:700px){
  .admin-object-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .admin-object-edit{grid-column:1/-1;width:100%}
  .admin-object-main{display:grid;gap:2px}
}
