
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{
  /* Clean & Fresh Theme — Boash Gallery */
  --bg:#f4f9f7;
  --bg2:#e8f5f0;
  --panel:rgba(255,255,255,.88);
  --line:rgba(15,80,60,.11);
  --text:#0f2a22;
  --muted:#5a7a6e;
  --cyan:#0d9b6e;
  --cyan2:#0b7d5a;
  --silver:#e8f5f0;
  --accent:#14b886;
  --gold:#e8a838;
  --shadow:0 12px 40px rgba(15,80,60,.08);
  --radius:20px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 80% -10%, rgba(20,184,134,.10) 0, transparent 45%),
    radial-gradient(circle at 10% 90%, rgba(13,155,110,.07) 0, transparent 40%),
    linear-gradient(180deg, #f8fcfa 0%, var(--bg) 100%);
  color:var(--text);
  font-family:Inter,system-ui,sans-serif;
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.bg-grid{
  position:fixed;inset:0;pointer-events:none;opacity:.06;
  background-image:
    linear-gradient(rgba(13,155,110,.18) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,155,110,.18) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,#000,transparent 80%);
  z-index:-2;
}
.orb{position:fixed;border-radius:50%;filter:blur(90px);opacity:.16;pointer-events:none;z-index:-1}
.orb-a{width:420px;height:420px;background:#14b886;top:-80px;right:-160px}
.orb-b{width:320px;height:320px;background:#7dd3b0;bottom:10%;left:-140px}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:auto;padding:0 24px;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:11px;align-items:center}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(157,235,255,.4);border-radius:12px;background:linear-gradient(145deg,#dffaff,#49717e);color:#071016;font-weight:900;font-size:12px;box-shadow:0 0 25px rgba(87,218,247,.18)}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.4px;margin-top:2px;text-transform:uppercase}.status{font-size:11px;color:#b7cbd4;display:flex;align-items:center;gap:8px}.status i{width:7px;height:7px;border-radius:50%;background:#8ff5bd;box-shadow:0 0 12px #8ff5bd}
main{max-width:1240px;margin:auto;padding:0 24px}.hero{min-height:530px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px}.eyebrow{color:#87dff2;font-size:11px;letter-spacing:2.8px;font-weight:800;margin-bottom:16px}.hero h1{font-size:clamp(52px,7vw,92px);line-height:.94;letter-spacing:-5px;margin:0 0 26px;font-weight:800}.hero h1 span{background:linear-gradient(90deg,#fff,#78dff7 65%,#a6c4cf);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{max-width:650px;color:#a5b9c3;line-height:1.8;font-size:15px}.hero-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.btn{border:1px solid var(--line);border-radius:14px;padding:12px 16px;cursor:pointer;transition:.2s;color:var(--text);background:rgba(255,255,255,.03)}.btn:hover{transform:translateY(-2px);border-color:rgba(137,226,247,.4)}.btn-primary{background:linear-gradient(135deg,#dffbff,#6bdcf4);color:#061016;border-color:transparent;font-weight:800}.btn-primary span{margin-left:10px}.btn-ghost{background:rgba(255,255,255,.025)}
.hero-art{min-height:380px;display:grid;place-items:center}.glass-stack{position:relative;width:min(410px,90%);height:320px;transform:rotate(-5deg)}.mini-card{position:absolute;border:1px solid rgba(197,238,247,.18);background:linear-gradient(145deg,rgba(40,63,75,.8),rgba(8,17,24,.8));backdrop-filter:blur(16px);box-shadow:var(--shadow);border-radius:24px;padding:28px}.mini-card span{font-size:10px;color:#8ee7fa;letter-spacing:2px}.mini-card b{display:block;font-size:36px;letter-spacing:-2px;margin-top:25px}.mini-card small{display:block;color:#8ca6b2;margin-top:35px;font-size:9px;letter-spacing:2px}.mini-one{width:280px;height:190px;right:5px;top:0;transform:rotate(8deg)}.mini-two{width:245px;height:175px;left:15px;top:88px;transform:rotate(-7deg);z-index:2}.mini-three{width:255px;height:175px;right:38px;bottom:0;transform:rotate(4deg);z-index:3}
.stats{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:20px;background:rgba(11,20,27,.58);overflow:hidden;margin:10px 0 90px}.stats div{padding:20px 24px;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats strong{display:block;font-size:26px}.stats span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}
.gallery-section{padding-bottom:80px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:25px}.section-head h2{font-size:clamp(28px,4vw,44px);letter-spacing:-2px;margin:0}.muted{color:var(--muted);font-size:13px;max-width:360px;line-height:1.6}
.toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;align-items:center;margin-bottom:20px}.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:rgba(9,18,24,.72);height:48px;border-radius:15px;padding:0 13px}.search>span{font-size:24px;color:#9bb7c3}.search input{border:0;outline:0;background:transparent;color:var(--text);width:100%;min-width:0}.search input::placeholder{color:#66808d}.search kbd{font-size:9px;color:#6d8995;border:1px solid var(--line);padding:5px 7px;border-radius:6px;white-space:nowrap}.filters{display:flex;gap:5px;padding:4px;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:13px}.filter,.sort{height:40px;border:0;border-radius:9px;background:transparent;color:#91aab5;padding:0 12px;cursor:pointer}.filter.active{background:#dffaff;color:#071117;font-weight:800}.sort{border:1px solid var(--line);background:#0b151c;outline:none}
.result-info{color:#6f8b97;font-size:11px;margin:14px 0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(17,30,39,.88),rgba(7,13,18,.9));overflow:hidden;transition:.25s;box-shadow:0 12px 40px rgba(0,0,0,.12)}.card:hover{transform:translateY(-5px);border-color:rgba(120,223,246,.32);box-shadow:0 24px 65px rgba(0,0,0,.32)}.cover{height:170px;padding:18px;position:relative;overflow:hidden;background:radial-gradient(circle at 78% 20%,rgba(136,231,249,.2),transparent 33%),linear-gradient(135deg,#152934,#091218)}.cover:after{content:"";position:absolute;inset:auto -30px -70px auto;width:190px;height:190px;border:1px solid rgba(156,230,243,.18);border-radius:50%;box-shadow:0 0 0 30px rgba(156,230,243,.02),0 0 0 60px rgba(156,230,243,.02)}.cover-top{display:flex;justify-content:space-between;position:relative;z-index:1}.pill{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#a8eaf7;background:rgba(113,216,240,.09);border:1px solid rgba(113,216,240,.15);padding:6px 8px;border-radius:8px}.cover-number{font-size:10px;color:#5d7c88}.cover h3{position:absolute;left:18px;bottom:16px;margin:0;font-size:27px;letter-spacing:-1.3px;max-width:82%;line-height:1}.card-body{padding:17px}.student-row{display:flex;justify-content:space-between;gap:10px;align-items:start}.student{font-weight:700;font-size:15px}.class-badge{font-size:9px;border:1px solid var(--line);color:#8ea8b4;border-radius:7px;padding:5px 7px;white-space:nowrap}.card-desc{color:#8099a5;font-size:11px;line-height:1.6;margin:10px 0 14px;min-height:35px}.meta-row{display:flex;gap:7px;flex-wrap:wrap}.tag{font-size:9px;color:#a8bcc5;background:rgba(255,255,255,.035);border:1px solid var(--line);padding:5px 7px;border-radius:7px}.card-link{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:13px;border-top:1px solid var(--line);font-size:11px;color:#a9eafa;font-weight:700}.card-link span:last-child{font-size:16px}.more-work{color:#718b97;font-size:9px;margin-left:5px}
.empty{text-align:center;padding:70px 20px;border:1px dashed var(--line);border-radius:22px}.empty-icon{font-size:40px;color:#78dff7}.empty h3{margin:10px 0 5px}.empty p{color:var(--muted);font-size:12px}
footer{max-width:1240px;margin:auto;padding:22px 24px 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:#6f8995;font-size:10px}footer>div{display:flex;gap:9px;align-items:center}.brand-mark.small{width:25px;height:25px;border-radius:8px;font-size:8px}
@media (max-width:900px){.hero{grid-template-columns:1fr;min-height:auto;padding:75px 0 55px}.hero-art{display:none}.stats{grid-template-columns:repeat(3,1fr);margin-bottom:65px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{grid-template-columns:1fr auto}.sort{grid-column:2}.filters{grid-column:1/3;justify-content:center}}
@media (max-width:620px){.topbar{padding:0 16px}.status{display:none}main{padding:0 16px}.hero h1{font-size:56px;letter-spacing:-3.5px}.hero p{font-size:13px}.stats{grid-template-columns:repeat(2,1fr);margin-bottom:55px}.stats div{border-bottom:1px solid var(--line)}.stats div:nth-child(2){border-right:0}.section-head{display:block}.section-head .muted{margin-top:10px}.toolbar{grid-template-columns:1fr}.filters{grid-column:auto;overflow:auto;justify-content:start}.sort{grid-column:auto;width:100%}.gallery-grid{grid-template-columns:1fr}.cover{height:185px}footer{margin:0 16px;padding-left:0;padding-right:0;display:block}footer span{display:block;margin-top:10px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.68;filter:saturate(.8) contrast(1.05);transition:.5s;z-index:0}.card:hover .thumb{transform:scale(1.045);opacity:.82}.cover-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,14,.18),rgba(4,10,14,.9) 88%);z-index:1}.cover-top,.cover-title{z-index:2}.cover-title{position:absolute;left:18px;right:18px;bottom:16px;display:flex;align-items:end;justify-content:space-between;gap:10px}.cover-title h3{margin:0;font-size:25px;letter-spacing:-1.2px;line-height:1}.cover-title span{font-size:9px;color:#b9d5de;white-space:nowrap}.works-title{font-size:9px;letter-spacing:1.5px;color:#78939e;margin:16px 0 8px;display:flex;justify-content:space-between}.works-title span{color:#5e7d89}.work-list{display:grid;gap:6px}.work-choice{display:grid;grid-template-columns:27px 1fr auto 18px;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025);transition:.18s}.work-choice:hover{border-color:rgba(126,226,247,.4);background:rgba(126,226,247,.06);transform:translateX(2px)}.work-choice>span{font-size:9px;color:#607e89}.work-choice b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-choice small{font-size:8px;color:#75909b;white-space:nowrap}.work-choice em{font-style:normal;color:#8feaff}.card-link{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:13px;border-top:1px solid var(--line);font-size:11px;color:#a9eafa;font-weight:700}


/* ===== Silverhawk Tooltip (live meta) ===== */
.sh-tooltip{
  position:fixed;
  z-index:9999;
  pointer-events:none;
  max-width:300px;
  min-width:180px;
  padding:10px 13px;
  border-radius:12px;
  font-size:12px;
  font-weight:500;
  line-height:1.45;
  color:#061016;
  background:linear-gradient(145deg,#f0fdff 0%,#b8eefc 100%);
  border:1px solid rgba(120,220,245,.55);
  box-shadow:0 12px 36px rgba(0,0,0,.38), 0 0 0 1px rgba(255,255,255,.1);
  opacity:0;
  transform:translateY(5px) scale(.96);
  transition:opacity .15s ease, transform .15s ease;
  white-space:normal;
  word-break:break-word;
}
.sh-tooltip.visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
.sh-tooltip .tip-title{
  font-weight:700;
  font-size:13px;
  letter-spacing:-.2px;
  margin-bottom:3px;
  color:#041015;
}
.sh-tooltip .tip-desc{
  font-size:11px;
  color:#1a3a46;
  opacity:.9;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.sh-tooltip .tip-loading{
  margin-top:6px;
  font-size:10px;
  color:#2a6a7a;
  font-style:italic;
}
.sh-tooltip .tip-source{
  margin-top:6px;
  font-size:9px;
  letter-spacing:.8px;
  text-transform:uppercase;
  color:#1e5c6c;
  opacity:.75;
}
.sh-tooltip::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-5px;
  width:10px;height:10px;
  background:#c5f0fc;
  border-right:1px solid rgba(120,220,245,.55);
  border-bottom:1px solid rgba(120,220,245,.55);
  transform:translateX(-50%) rotate(45deg);
}
.sh-tooltip.below::after{
  bottom:auto;
  top:-5px;
  border-right:none;
  border-bottom:none;
  border-left:1px solid rgba(120,220,245,.55);
  border-top:1px solid rgba(120,220,245,.55);
}

/* Mobile/keyboard tooltip refinement */
.sh-tooltip{max-width:min(320px,calc(100vw - 20px));}
.work-choice:focus-visible{outline:2px solid rgba(143,234,255,.65);outline-offset:2px;}
@media (max-width:520px){
  .sh-tooltip{min-width:0;width:min(300px,calc(100vw - 20px));font-size:11px;}
  .sh-tooltip .tip-title{font-size:12px;}
  .sh-tooltip .tip-desc{font-size:10px;}
}


/* ===== Top nav ===== */
.topnav{display:flex;gap:6px;align-items:center;margin-left:auto;margin-right:16px;flex-wrap:wrap;overflow:visible;max-width:none}
.topnav a{font-size:12px;color:#9bb4c0;padding:8px 12px;border-radius:10px;border:1px solid transparent;transition:.18s}
.topnav a:hover{color:#e8f7fc;border-color:var(--line)}
.topnav a.active{color:#061016;background:linear-gradient(135deg,#dffbff,#6bdcf4);font-weight:700;border-color:transparent}
@media (max-width:720px){.topnav{margin-right:0}.status{display:none}.topnav a{padding:7px 9px;font-size:11px}}

/* ===== Skills page ===== */
.page-skills .skills-main{max-width:1080px;margin:0 auto;padding:0 24px 80px}
.skills-hero{padding:56px 0 28px}
.skills-hero h1{font-size:clamp(32px,5vw,52px);letter-spacing:-1.8px;line-height:1.05;margin:10px 0 14px}
.skills-lead{color:#9db5c0;font-size:15px;line-height:1.65;max-width:720px}
.skills-meta{display:flex;flex-wrap:wrap;gap:10px 18px;margin:22px 0 26px;font-size:12px;color:#8aa0ab}
.skills-meta b{color:#d7eef6;margin-right:6px}
.skills-actions{display:flex;flex-wrap:wrap;gap:10px}
.framework-card,.summary-card{border:1px solid var(--line);border-radius:20px;padding:22px 24px;background:linear-gradient(145deg,rgba(17,30,39,.88),rgba(7,13,18,.92));margin:18px 0}
.framework-card p,.summary-card p{color:#9db5c0;line-height:1.65;margin:8px 0 0;font-size:14px}
.summary-card h2{margin:8px 0 12px;font-size:24px;letter-spacing:-.8px}
.summary-card ul{margin:0;padding-left:18px;color:#b7cdd6;line-height:1.7;font-size:14px}
.skills-levels,.skills-domains{margin-top:48px}
.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.level-card{border:1px solid var(--line);border-radius:16px;padding:18px;background:rgba(255,255,255,.03)}
.level-badge{display:inline-block;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:5px 8px;border-radius:7px;font-weight:700;margin-bottom:10px}
.lv-applied .level-badge,.skill-level.lv-applied{background:rgba(143,245,189,.15);color:#8ff5bd;border:1px solid rgba(143,245,189,.25)}
.lv-practiced .level-badge,.skill-level.lv-practiced{background:rgba(125,227,255,.12);color:#7de3ff;border:1px solid rgba(125,227,255,.22)}
.lv-intro .level-badge,.skill-level.lv-intro{background:rgba(255,255,255,.06);color:#9bb4c0;border:1px solid var(--line)}
.level-card h3{margin:0 0 6px;font-size:16px}
.level-card p{margin:0;font-size:12px;color:#8aa0ab;line-height:1.5}
.domain-card{border:1px solid var(--line);border-radius:22px;padding:22px;margin:16px 0;background:linear-gradient(145deg,rgba(17,30,39,.9),rgba(7,13,18,.94));border-left:3px solid var(--domain,#7de3ff)}
.domain-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:10px}
.domain-code{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:14px;background:rgba(125,227,255,.1);color:var(--domain,#7de3ff);border:1px solid rgba(125,227,255,.2);flex-shrink:0}
.domain-head h3{margin:0;font-size:18px;letter-spacing:-.4px}
.domain-head small{color:#7f97a3;font-size:11px}
.domain-desc{color:#9db5c0;font-size:13px;line-height:1.6;margin:0 0 16px}
.skill-table{display:grid;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.skill-row{display:grid;grid-template-columns:1.2fr .55fr 1.6fr;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:12px;align-items:start}
.skill-row:last-child{border-bottom:0}
.skill-head{background:rgba(255,255,255,.04);color:#7f97a3;font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:600}
.skill-name{font-weight:600;color:#e8f4f8}
.skill-level{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:7px;font-size:10px;font-weight:700;width:fit-content}
.skill-evidence{color:#8aa0ab;line-height:1.45}
.skills-closing{margin-top:48px}
.closing-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:radial-gradient(circle at 90% 10%,rgba(125,227,255,.12),transparent 40%),linear-gradient(145deg,rgba(17,30,39,.92),rgba(7,13,18,.95))}
.closing-card h2{margin:0 0 10px;font-size:24px;letter-spacing:-.8px}
.closing-card p{color:#9db5c0;line-height:1.65;margin:0 0 18px;max-width:640px}
@media (max-width:800px){
  .level-grid{grid-template-columns:1fr}
  .skill-row{grid-template-columns:1fr;gap:4px}
  .skill-head{display:none}
  .skill-level{margin:4px 0}
}

/* Curriculum download cards */
.skills-docs{margin-top:48px}
.docs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.doc-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(17,30,39,.9),rgba(7,13,18,.94));transition:.2s}
.doc-card:hover{border-color:rgba(125,227,255,.35);transform:translateY(-3px);box-shadow:0 16px 40px rgba(0,0,0,.25)}
.doc-icon{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#7de3ff}
.doc-card b{font-size:15px;color:#eef7fb}
.doc-card small{font-size:12px;color:#8aa0ab;line-height:1.45}
.doc-card em{margin-top:8px;font-style:normal;font-size:11px;color:#a9eafa;font-weight:700}
@media (max-width:700px){.docs-grid{grid-template-columns:1fr}}

/* Refleksi bonus */
.bonus-list{display:flex;flex-direction:column;gap:8px}
.bonus-row{display:grid;grid-template-columns:70px 1fr 160px;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}
.badge-kelas{font-size:10px;letter-spacing:.5px;padding:4px 7px;border-radius:7px;border:1px solid var(--line);color:#9bb4c0}
.bonus-name{font-weight:600;font-size:14px;color:#e8f4f8}
.bonus-bar{display:flex;align-items:center;gap:8px}
.bonus-bar i{display:block;height:8px;border-radius:99px;max-width:110px}
.bonus-bar span{font-size:13px;font-weight:700;color:#dffbff;min-width:28px}
@media (max-width:640px){.bonus-row{grid-template-columns:1fr;gap:6px}.bonus-bar i{max-width:100%;flex:1}}

.bonus-row-2{grid-template-columns:70px 1.2fr 1fr 1fr}
.bonus-metric small{display:block;font-size:10px;color:#7f97a3;margin-bottom:4px;letter-spacing:.3px}
@media (max-width:800px){.bonus-row-2{grid-template-columns:1fr}}

/* Alumni form + chat */
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#9db5c0}
.field input,.field select,input[type=text],input[type=url],input[type=password],input[type=search],select,textarea{
  background:#0e1a24;
  border:1px solid #3a5566;
  border-radius:12px;
  padding:10px 12px;
  color:#f0f7fb;
  font:inherit;
  color-scheme: dark;
}
.field input::placeholder,
input::placeholder{color:#7f9aaa;opacity:1}
.field select,
select{
  background-color:#0e1a24;
  color:#f0f7fb;
}
.field select option,
select option{
  background-color:#0e1a24;
  color:#f0f7fb;
}
.field select option:checked,
.field select option:hover,
select option:checked,
select option:hover{
  background-color:#1a3344;
  color:#ffffff;
}
/* native dropdown on some browsers */
select:focus,input:focus,textarea:focus{
  outline:2px solid #5ec8ff;
  outline-offset:1px;
  border-color:#5ec8ff;
}
.chat-log{height:min(55vh,420px);overflow:auto;border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(0,0,0,.2);display:flex;flex-direction:column;gap:8px}
.chat-bubble{padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.04);font-size:13px;line-height:1.45}
.chat-bubble strong{color:#dffbff}
.chat-bubble small{color:#7f97a3;margin-left:6px;font-weight:400}
.chat-bubble.mine{outline:1px solid rgba(125,227,255,.25)}

.chat-bubble{display:flex;gap:10px;align-items:flex-start}
.chat-av{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.chat-body{min-width:0}
.typing-line{min-height:18px;font-size:12px;color:#7de3ff;font-style:italic;opacity:.9}
.thumb{object-fit:cover;width:100%;height:100%;background:#0d1824}

.nav-profile{font-size:18px;opacity:.9}
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px}
.video-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.03);display:flex;flex-direction:column}
.video-frame{position:relative;aspect-ratio:16/9;background:#000}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-meta{padding:14px 16px 16px;display:grid;gap:8px}
.video-meta h3{margin:0;font-size:1.05rem;color:#e8f4f8}
.video-meta p{margin:0;font-size:13px;color:#9db5c0}
.video-meta a{font-size:12px;color:#7de3ff}
.admin-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.admin-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.15);font-size:13px}
.admin-row button{border:1px solid var(--line);background:rgba(255,80,80,.12);color:#ffb4b4;border-radius:8px;padding:6px 10px;cursor:pointer}
@media (max-width:640px){.video-grid{grid-template-columns:1fr}}

.btn-google,.btn-google-sm{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border:0;border-radius:999px;padding:12px 18px;cursor:pointer;font-weight:700;
  background:#fff;color:#1f1f1f;box-shadow:0 1px 2px rgba(0,0,0,.2)
}
.btn-google-sm{padding:8px 12px;font-size:12px;border-radius:12px}
.g-icon{
  width:18px;height:18px;display:inline-block;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") center/contain no-repeat
}
.sh-userbar{display:flex;align-items:center;gap:8px;margin-left:8px}
.sh-profile-chip{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);max-width:220px}
.sh-profile-chip img{width:32px;height:32px;border-radius:50%;object-fit:cover}
.sh-profile-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.sh-profile-meta b{font-size:12px;color:#e8f4f8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-profile-meta small{font-size:10px;color:#8aa3b0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid rgba(125,227,255,.35)}

.react-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.react-btn{border:1px solid var(--line);background:rgba(0,0,0,.2);border-radius:999px;padding:5px 10px;font-size:12px;cursor:pointer;color:#c5d8e0}
.react-btn.love-red,.react-btn.cmt-red{color:#ff8a9a}
.react-btn.love-blue,.react-btn.cmt-blue{color:#7db8ff}
.react-btn:hover{border-color:#5ec8ff}
.sh-modal{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}
.sh-modal[hidden]{display:none!important}
.sh-modal-card{background:#0e1a24;border:1px solid var(--line);border-radius:18px;padding:18px;max-width:420px;width:100%;position:relative;display:grid;gap:10px}
.sh-modal-x{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#9db5c0;font-size:22px;cursor:pointer}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.stat-card .stat-num{font-size:1.8rem;font-weight:800;color:#e8f4f8;margin:6px 0}
.stats-online{font-size:1.05rem}
.about-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.about-avatar{width:88px;height:88px;border-radius:24px;background:linear-gradient(135deg,#1a4a5c,#0d2840);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;color:#7de3ff;border:1px solid rgba(125,227,255,.35)}

.work-row{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:8px}
.work-row .work-choice{display:flex}
.react-mini{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.rm-btn{border:1px solid var(--line);background:rgba(0,0,0,.25);border-radius:999px;padding:2px 7px;font-size:11px;cursor:pointer;line-height:1.4}
.rm-btn.love-red,.rm-btn.cmt-red{color:#ff8a9a}
.rm-btn.love-blue,.rm-btn.cmt-blue{color:#7db8ff}
.rm-btn:hover{border-color:#5ec8ff}
.cmt-panel{margin-top:4px}
.cmt-box{border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(0,0,0,.25);display:grid;gap:8px}
.cmt-hint{margin:0;font-size:11px;color:#9db5c0}
.cmt-box input,.cmt-box textarea{width:100%;background:#0e1a24;border:1px solid #3a5566;border-radius:10px;color:#e8f4f8;padding:8px;font:inherit}
#sh-float-stats{
  position:fixed;right:12px;bottom:12px;z-index:9000;
  background:rgba(10,18,28,.92);border:1px solid var(--line);border-radius:14px;
  padding:8px 10px;display:flex;align-items:center;gap:8px;cursor:grab;
  box-shadow:0 8px 28px rgba(0,0,0,.35);max-width:min(96vw,520px);font-size:11px;color:#c5d8e0
}
#sh-float-stats.collapsed{padding:6px}
.fs-body{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fs-body b{color:#e8f4f8}
.fs-hide,.fs-show{border:0;background:rgba(255,255,255,.08);color:#9db5c0;border-radius:8px;width:28px;height:28px;cursor:pointer}
.fs-more{color:#7de3ff;text-decoration:none}


/* === work row: link + icons sejajar === */
.work-list{display:flex;flex-direction:column;gap:8px}
.work-row{
  display:flex;flex-direction:column;gap:6px;
  padding:8px 10px;border:1px solid var(--line);border-radius:12px;
  background:rgba(255,255,255,.03);
}
.work-row .work-choice{
  display:flex;align-items:center;gap:8px;width:100%;
  text-decoration:none;color:inherit;border:0;background:transparent;padding:0;
}
.work-row .react-mini{
  display:flex;flex-wrap:wrap;gap:4px;align-items:center;
  padding-top:2px;
}
.rm-btn{
  border:1px solid var(--line);background:transparent;border-radius:999px;
  padding:2px 8px;font-size:11px;cursor:pointer;line-height:1.5;
  color:rgba(255,255,255,.55); /* ikon default putih/abu */
}
.rm-btn .ic{color:rgba(255,255,255,.75)}
.rm-btn .n-lr,.rm-btn.rm-cmt-r .n-cr{color:#ff6b7a} /* angka merah tetap */
.rm-btn .n-lb,.rm-btn.rm-cmt-b .n-cb{color:#6db0ff} /* angka biru tetap */
.rm-btn.rm-love-r.is-on .ic,
.rm-btn.rm-cmt-r.is-on .ic{color:#ff4d62}
.rm-btn.rm-love-b.is-on .ic,
.rm-btn.rm-cmt-b.is-on .ic{color:#4d9fff}
.rm-btn.is-on{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.06)}

#sh-float-stats{
  position:fixed !important; right:16px !important; bottom:16px !important;
  left:auto !important; top:auto !important;
  z-index:2147483000 !important;
  background:rgba(8,16,26,.95) !important;
  border:1px solid rgba(125,227,255,.25) !important;
  border-radius:16px !important;
  padding:10px 12px !important;
  display:flex !important; align-items:center; gap:8px;
  box-shadow:0 10px 40px rgba(0,0,0,.45) !important;
  max-width:min(96vw,560px); font-size:12px; color:#d5e6ee;
  pointer-events:auto !important;
}

.react-mini[hidden]{display:none!important}
.work-choice b{color:#f0f7fb;cursor:pointer}
.work-choice:hover b{text-decoration:underline;text-underline-offset:3px}
.charts-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:40px}
.chart-card .chart-labels{font-size:10px;margin:6px 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chart-bars{display:flex;align-items:flex-end;gap:3px;height:120px}
.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.chart-col i{display:block;width:100%;max-width:14px;border-radius:4px 4px 0 0;min-height:2px}
.chart-col span{font-size:9px;color:#7f97a3;margin-top:4px}
.bonus-row-3{grid-template-columns:70px 1.3fr 1fr 1fr 1fr}
@media (max-width:900px){.bonus-row-3{grid-template-columns:1fr}}
#sh-float-stats{
  left:16px!important;right:auto!important;bottom:16px!important;top:auto;
}
#sh-float-stats.is-dragging{opacity:.92;cursor:grabbing}
.fs-drag{cursor:grab;opacity:.6;user-select:none;padding:0 4px}

#sh-share-bar{
  position:fixed; right:16px; bottom:16px; z-index:2147482900;
  display:flex; align-items:center; gap:8px;
  background:rgba(8,16,26,.94); border:1px solid rgba(125,227,255,.25);
  border-radius:999px; padding:8px 12px; box-shadow:0 8px 28px rgba(0,0,0,.35);
  font-size:12px; color:#c5d8e0
}
.sh-share-label{opacity:.7;margin-right:2px}
.sh-share-btn{
  display:inline-flex;align-items:center;gap:5px;
  border-radius:999px;padding:6px 10px;text-decoration:none;font-weight:700;font-size:12px
}
.sh-share-btn.sh-wa{background:#128C7E;color:#fff}
.sh-share-btn.sh-mail{background:#EA4335;color:#fff}
.sh-share-btn:hover{filter:brightness(1.08)}
@media (max-width:520px){
  #sh-share-bar{right:10px;bottom:72px;padding:6px 10px}
  .sh-share-label{display:none}
}


/* hide legacy online badge */
.status{display:none!important}

/* admin link putih, bukan ungu */
.topnav a.nav-admin,
.topnav a.nav-profile{
  color:#e8f4f8!important;
  background:transparent!important;
  border:1px solid rgba(232,244,248,.25)!important;
  font-size:12px!important;
  opacity:1;
}
.topnav a.nav-admin:hover,
.topnav a.nav-profile:hover{
  color:#fff!important;
  border-color:rgba(255,255,255,.45)!important;
  background:rgba(255,255,255,.06)!important;
}
.topnav a.nav-admin.active{
  color:#061016!important;
  background:linear-gradient(135deg,#dffbff,#6bdcf4)!important;
  border-color:transparent!important;
}

/* topnav wrap on small screens */
@media (max-width:900px){
  .topnav{flex-wrap:nowrap;justify-content:flex-start;gap:4px;max-width:100%}
  .topnav a{padding:6px 8px;font-size:11px}
}

/* Student filter dropdown (hemat ruang vs tab panjang) */
.filter-select,
#videoStudentSelect {
  appearance: none;
  -webkit-appearance: none;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--line);
  border-radius: 10px;
  color: #e8f4f8;
  padding: 8px 12px;
  font-size: 13px;
  min-height: 38px;
  cursor: pointer;
}
.filter-select:focus,
#videoStudentSelect:focus {
  outline: none;
  border-color: rgba(107,220,244,.55);
  box-shadow: 0 0 0 3px rgba(107,220,244,.12);
}
#videoStudentFilters .field span {
  display: block;
  margin-bottom: 2px;
}

/* Privacy tree */
.privacy-tree{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:rgba(0,0,0,.2);max-height:320px;overflow:auto;font-size:13px}
.pt-node{margin:2px 0}
.pt-row{display:flex;align-items:center;gap:6px;padding:3px 0}
.pt-toggle{border:0;background:transparent;color:#9db5c0;cursor:pointer;width:22px;height:22px;line-height:1;padding:0;flex-shrink:0}
.pt-toggle.leaf{visibility:hidden}
.pt-children{margin-left:18px;border-left:1px dashed rgba(125,227,255,.15);padding-left:8px}
.pt-children.is-collapsed{display:none}
.pt-row input{accent-color:#5ec8ff}
.contact-bar{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px;align-items:center}
.contact-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:#c5d8e0;text-decoration:none}
.contact-chip:hover{border-color:#5ec8ff;color:#e8f4f8}
.contact-chip.wa{color:#8ff5bd;border-color:rgba(143,245,189,.35)}

/* Health check */
.sh-health-btn{
  position:fixed;right:14px;bottom:72px;z-index:9990;
  padding:8px 12px;border-radius:999px;font-size:12px;font-weight:600;
  border:1px solid rgba(157,235,255,.35);background:rgba(8,16,24,.92);
  color:#cfe8f0;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.sh-health-btn:hover{border-color:#6bdcf4;color:#fff}
.sh-health-modal{
  position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.sh-health-modal[hidden]{display:none!important}
.sh-health-panel{
  width:min(560px,100%);max-height:min(88vh,720px);overflow:auto;
  background:#0c141c;border:1px solid rgba(157,235,255,.25);border-radius:16px;
  padding:16px 18px;color:#e8f4f8;
}
.sh-health-panel header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.sh-health-panel h2{margin:0;font-size:1.15rem}
.sh-health-close{border:0;background:transparent;color:#9bb;font-size:22px;cursor:pointer;line-height:1}
.sh-health-lead{font-size:13px;margin:8px 0 12px}
.sh-health-summary{font-size:13px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);margin-bottom:12px}
.sh-health-summary.all-ok{border:1px solid rgba(143,245,189,.35);color:#b8f5d4}
.sh-health-summary.has-fail{border:1px solid rgba(255,120,120,.4);color:#ffc9c9}
.sh-health-row{display:grid;grid-template-columns:52px 1fr;gap:2px 10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px}
.sh-health-st{font-weight:700;grid-row:span 2}
.sh-health-row.ok .sh-health-st{color:#8ff5bd}
.sh-health-row.fail .sh-health-st{color:#ff8f8f}
.sh-health-row.pending .sh-health-st{color:#9bb}
.sh-health-lb{font-weight:600;color:#e8f4f8}
.sh-health-dt{color:#9bb4c0;grid-column:2;word-break:break-word}
.sh-health-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sh-health-log{margin-top:12px;font-size:11px;white-space:pre-wrap;background:#000;padding:10px;border-radius:8px;max-height:160px;overflow:auto}
@media (max-width:600px){.sh-health-btn{bottom:88px;right:10px;font-size:11px}}

.student-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.student-row .student{flex:1;min-width:0}
.card-eng{display:inline-flex;gap:8px;align-items:center;margin-left:auto;font-size:12px;color:#9bb4c0}
.card-eng .eng-love{color:#ff8fab}
.card-eng .eng-cmt{color:#7ec8ff}
.user-perm-panel.is-collapsed{display:none}

.video-thumb-btn{
  position:relative;display:block;width:100%;padding:0;border:0;cursor:pointer;background:#000;aspect-ratio:16/9;overflow:hidden;
}
.video-thumb{width:100%;height:100%;object-fit:cover;display:block}
.video-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;
  display:grid;place-items:center;font-size:18px;border:2px solid rgba(255,255,255,.8);
}
.video-thumb-btn:hover .video-play{background:rgba(0,180,220,.85)}

.sh-health-panel.sh-health-flash{animation:shHealthPulse .55s ease}
@keyframes shHealthPulse{0%{box-shadow:0 0 0 0 rgba(107,220,244,.5)}100%{box-shadow:0 0 0 12px rgba(107,220,244,0)}}

html.sh-tour-active{scroll-behavior:auto}
html.sh-tour-active body{cursor:none}

.preview-modal{position:fixed;inset:0;z-index:10050;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.preview-modal[hidden]{display:none!important}
.preview-panel{width:min(420px,100%);max-height:90vh;overflow:auto;background:#0c141c;border:1px solid rgba(157,235,255,.25);border-radius:16px;padding:14px}
.preview-panel h3{margin:0 0 10px;font-size:1rem}
.sh-tour-toggle{
  position:fixed;left:14px;bottom:72px;z-index:9990;
  padding:8px 12px;border-radius:999px;font-size:12px;font-weight:600;
  border:1px solid rgba(157,235,255,.35);background:rgba(8,16,24,.92);
  color:#cfe8f0;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.sh-tour-toggle:hover{border-color:#6bdcf4;color:#fff}
.sh-tour-toggle.is-on{border-color:rgba(143,245,189,.5);color:#b8f5d4}
@media (max-width:600px){
  .sh-tour-toggle{bottom:88px;left:10px;font-size:11px}
  .stats{grid-template-columns:repeat(2,1fr)!important}
}

.admin-search-wrap input.admin-list-search{
  width:100%;padding:10px 12px;border-radius:10px;
  border:1px solid var(--line);background:rgba(0,0,0,.25);color:#e8f4f8;
}
.admin-search-wrap input.admin-list-search:focus{outline:none;border-color:#5ec8ff}

.link-edit-panel.is-collapsed{display:none}

/* === UI polish desktop + mobile (ss41–ss44) === */
/* Desktop: topbar/nav seperti versi stabil (semua item, tanpa scrollbar) */
.topbar{
  height:auto;min-height:64px;flex-wrap:wrap;gap:8px 12px;padding:10px 20px;
}
.topnav{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
  margin-left:auto;
  margin-right:16px;
  max-width:none;
  overflow:visible;
  width:auto;
}
.topnav a{
  white-space:nowrap;
  flex-shrink:0;
  /* style link klasik desktop (bukan chip mobile) */
  font-size:12px;
  color:#9bb4c0;
  padding:8px 12px;
  border-radius:10px;
  border:1px solid transparent;
  background:transparent;
  text-shadow:none;
  font-weight:500;
}
.topnav a:hover{color:#e8f7fc;border-color:var(--line);background:transparent}
.topnav a.active{
  color:#061016;
  background:linear-gradient(135deg,#dffbff,#6bdcf4);
  font-weight:700;
  border-color:transparent;
}

/* Admin list rows: horizontal, hemat vertikal */
.admin-list .admin-row,
.privacy-tree .admin-row,
#linkTree .admin-row,
#userList .admin-row{
  display:flex !important;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 14px;
  padding:8px 10px;
}
.admin-row > div:first-child{
  flex:1 1 auto;
  min-width:0;
}
.admin-row > div:first-child strong,
.admin-row .admin-row-main{
  display:inline;
}
.admin-row small{
  display:inline;
  margin-left:6px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:min(42vw,280px);
  vertical-align:baseline;
}
.admin-row .admin-row-actions,
.admin-row > div:last-child{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  flex:0 0 auto;margin-left:auto;
}

/* Tree parent: jumlah di kanan satu baris */
.pt-row{
  display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
  width:100%;
}
.pt-row strong{flex:0 1 auto;min-width:0}
.pt-row .muted,
.pt-row small.muted{
  margin-left:auto;
  white-space:nowrap;
  flex-shrink:0;
  font-size:12px;
}

.link-coverage-box{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:6px 16px;
  align-items:start;
}
.link-coverage-box > div{margin:0 !important}

/* Admin forms: 2 kolom jika lebar cukup */
.admin-pane form,
#videoForm,#webForm,#alumniForm,#angForm{
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.admin-pane form .field,
#videoForm .field,#webForm .field{min-width:0}
.admin-pane form button[type=submit],
.admin-pane form .btn{grid-column:1 / -1;justify-self:start}

/* Hero actions & filters hemat tinggi */
.hero-actions{flex-wrap:wrap}
.filters{flex-wrap:wrap;max-width:100%}
.toolbar{
  grid-template-columns:minmax(0,1fr) auto auto;
}

/* Student card meta satu baris di desktop */
.student-row{
  display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
}
.student-row .student{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-row .class-badge{flex-shrink:0;white-space:nowrap}
.card-eng{flex-shrink:0;margin-left:auto}

@media (max-width:900px){
  .topbar{padding:8px 14px}
  .topnav{width:100%;order:3;padding-bottom:4px}
  .brand{order:1}
  .status,#shAuthSlot{order:2;margin-left:auto}
  .stats{grid-template-columns:repeat(3,1fr)}
  .toolbar{grid-template-columns:1fr}
  .link-coverage-box{grid-template-columns:1fr}
}

@media (max-width:620px){
  .topbar{padding:8px 12px}
  /* jangan sembunyikan navigasi — biarkan scroll horizontal */
  .status{display:none !important}
  .topnav a{padding:6px 8px;font-size:11px}
  .stats{grid-template-columns:repeat(2,1fr) !important}
  .admin-list .admin-row,
  #linkTree .admin-row{
    align-items:flex-start;
  }
  .admin-row small{
    display:block;
    margin-left:0;
    margin-top:2px;
    white-space:normal;
    max-width:100%;
  }
  .admin-row .admin-row-actions,
  .admin-row > div:last-child{
    margin-left:0;
    width:100%;
    justify-content:flex-start;
  }
  .pt-row{flex-wrap:wrap}
  .pt-row .muted{margin-left:0;width:100%}
  .student-row{flex-wrap:wrap}
  .hero h1{font-size:clamp(36px,11vw,56px);letter-spacing:-2px}
  .sh-tour-toggle,.sh-health-btn{font-size:10px;padding:6px 10px}
  .filters{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start}
}

/* Prevent fixed controls covering content */
body{padding-bottom:72px}


/* === Admin hero: profil di kanan (ss43) === */
.admin-hero-row{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:20px;flex-wrap:wrap;margin-bottom:8px;
}
.admin-hero-text{flex:1 1 280px;min-width:0}
.admin-who{
  display:flex;align-items:center;gap:12px;flex:0 1 320px;
  margin:0;padding:12px 14px;max-width:100%;
}
.admin-who-meta{min-width:0}
.admin-who-meta #adminName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Coverage hemat horizontal (ss42) */
.link-coverage-box{
  display:flex;flex-direction:column;gap:8px;
  margin:0 0 12px;padding:10px 12px;
  border:1px solid rgba(125,227,255,.2);border-radius:12px;font-size:13px;
}
.cov-years{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:6px 18px;
}
.cov-year{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cov-accounts{font-size:12px;white-space:normal}

/* Topnav desktop: tampil semua item, tanpa scrollbar, tanpa batasan lebar ketat */
.topnav{
  display:flex !important;
  flex-wrap:wrap !important;
  overflow:visible !important;
  gap:4px;
  max-width:none !important;
  width:auto !important;
  scrollbar-width:none;
  margin-left:auto;
}
.topnav a{flex:0 0 auto}

/* Share float jangan numpuk teks (ss41) */
.sh-share-bar, .share-float, #shShareBar{
  z-index:8500;
}
@media (max-width:720px){
  .sh-share-bar, #shShareBar, .share-float{
    bottom:56px !important;
    right:10px !important;
    transform:scale(.92);
  }
  .admin-hero-row{flex-direction:column}
  .admin-who{width:100%;flex:1 1 auto}
  .cov-year{white-space:normal}
}

/* pt-row count selalu di kanan satu baris (ss44) */
.pt-row{
  display:flex;align-items:center;gap:8px;
  width:100%;
}
.pt-row > strong{flex:1 1 auto;min-width:0}
.pt-row > .muted,
.pt-row > small.muted{
  margin-left:auto !important;
  flex:0 0 auto;
  white-space:nowrap;
}


/* Counts & meta: dekat judul tree (bukan ujung kanan) — desktop */
.pt-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:nowrap !important;
  width:100%;
  justify-content:flex-start !important;
}
.pt-row > strong{
  flex:0 1 auto !important;
  min-width:0;
}
.pt-row > .muted,
.pt-row > small.muted,
.pt-row .pt-count{
  margin-left:0.4em !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
  font-size:12px;
}

/* Angkatan form actions satu baris di desktop */
#angForm, #alumniForm, #webForm, #videoForm{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
  align-items:end;
}
#angForm .field:first-child{grid-column:1 / span 1}
.admin-form-actions{
  display:flex;flex-wrap:nowrap;gap:8px;align-items:center;
  grid-column:auto;
}
@media (min-width:900px){
  .admin-form-actions{flex-wrap:nowrap}
  .muted.one-line-desktop,
  #alumniList > p.muted,
  .admin-pane > p.muted.lead-msg{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .sync-help{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;align-items:start}
  .sync-actions{display:flex;flex-wrap:wrap;gap:8px}
  #userLinkSummary .link-coverage-box{max-width:100%}
  .user-row-main{display:flex;flex-wrap:nowrap;gap:8px;align-items:baseline}
  .user-row-main .user-extra{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:720px){
  .pt-row{flex-wrap:wrap !important}
  .admin-form-actions{flex-wrap:wrap}
  .muted.one-line-desktop,
  #alumniList > p.muted{white-space:normal}
  .sync-help{grid-template-columns:1fr}
}

/* Pengumuman */
.ann-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}
.ann-editor{
  min-height:140px;max-height:320px;overflow:auto;padding:12px;
  border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.25);
  color:#e8f4f8;line-height:1.5;outline:none;
  cursor:text;
  -webkit-user-select:text;user-select:text;
  pointer-events:auto;
  white-space:pre-wrap;word-break:break-word;
}
.ann-editor:focus{
  border-color:#5ec8ff;
  box-shadow:0 0 0 2px rgba(94,200,255,.2);
}
.ann-editor:empty:before{
  content:attr(data-placeholder);color:#6a8490;
  pointer-events:none;
}
.ann-editor img{max-width:100%;border-radius:8px;margin:6px 0}
.ann-editor-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.ann-fieldset{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}
.ann-fieldset legend{padding:0 6px;color:#9db5c0;font-size:12px}
.ann-fieldset .check{display:flex;gap:8px;align-items:center;margin:6px 0;font-size:13px}
.ann-student-tree.is-collapsed{display:none}
.ann-student-tree:not(.is-collapsed){display:block}

.sh-ann-splash{
  position:fixed;inset:0;z-index:12000;
  background:rgba(2,8,14,.72);display:flex;align-items:center;justify-content:center;
  padding:16px;backdrop-filter:blur(6px);
}
.sh-ann-splash[hidden]{display:none!important}
.sh-ann-card{
  width:min(520px,100%);max-height:min(80vh,640px);overflow:auto;
  background:linear-gradient(160deg,#0f1c28,#0a141c);
  border:1px solid rgba(125,227,255,.35);border-radius:18px;
  padding:18px 18px 14px;box-shadow:0 20px 60px rgba(0,0,0,.45);
  animation:shAnnIn .35s ease;
}
@keyframes shAnnIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.sh-ann-card h2{margin:0 0 10px;font-size:1.25rem;letter-spacing:-.3px}
.sh-ann-body{font-size:14px;line-height:1.55;color:#c5d8e0}
.sh-ann-body img{max-width:100%;border-radius:10px}
.sh-ann-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.sh-ann-timer{font-size:12px;color:#8aa3ae}
.sh-ann-close{border:1px solid var(--line);background:rgba(255,255,255,.08);color:#e8f4f8;border-radius:10px;padding:8px 14px;cursor:pointer}
.sh-ann-close:hover{border-color:#5ec8ff}

/* ========== ADMIN PANEL UI v2 (modern, fluid, responsive) ========== */
body.page-skills .skills-main{
  max-width:1100px;
  margin:0 auto;
  padding:0 20px 100px;
}

.admin-hero-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px 24px;
  flex-wrap:wrap;
  margin:12px 0 8px;
}
.admin-hero-text h1{
  font-size:clamp(1.75rem,3vw,2.35rem);
  letter-spacing:-1px;
  margin:4px 0 8px;
}
.admin-who{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(12,22,30,.9);
  max-width:100%;
}
.admin-who-meta{min-width:0;flex:1}
.admin-who-meta #adminName{
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:200px;
}

/* Tabs: sticky, scroll, pill */
#adminTabs.filters,
#adminTabs{
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  flex-wrap:nowrap;
  gap:6px;
  padding:8px;
  margin:12px 0 18px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  background:rgba(8,14,20,.92);
  border:1px solid var(--line);
  border-radius:14px;
  backdrop-filter:blur(12px);
}
#adminTabs .filter{
  flex:0 0 auto;
  height:36px;
  padding:0 14px;
  border-radius:10px;
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  color:#9db5c0;
  background:transparent;
  border:0;
  cursor:pointer;
}
#adminTabs .filter:hover{color:#e8f4f8;background:rgba(255,255,255,.05)}
#adminTabs .filter.active{
  color:#061016;
  background:linear-gradient(135deg,#c5f3ff,#7de3ff);
  box-shadow:0 4px 16px rgba(125,227,255,.25);
}

/* Pane cards */
.admin-pane.summary-card,
.summary-card.admin-pane{
  border-radius:18px;
  padding:18px 18px 20px;
  margin-bottom:16px;
  border:1px solid rgba(125,227,255,.12);
  background:linear-gradient(165deg,rgba(14,26,36,.95),rgba(8,14,20,.92));
}
.admin-pane h3{
  margin:0 0 6px;
  font-size:1.15rem;
  letter-spacing:-.3px;
  font-weight:700;
}
.admin-pane > p.muted,
.admin-pane .pane-lead{
  margin:0 0 14px;
  font-size:13px;
  line-height:1.5;
  color:#8aa3ae;
}

/* Forms: clean grid */
.admin-pane form,
.ann-form,
#videoForm,#webForm,#alumniForm,#angForm,#annForm{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px 14px;
  align-items:end;
  margin-top:8px;
}
.admin-pane .field,
.ann-form .field{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.admin-pane .field > span,
.ann-form .field > span{
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#7a96a4;
}
.admin-pane .field input,
.admin-pane .field select,
.admin-pane .field textarea,
.ann-form .field input,
.ann-form .field select,
.ann-editor{
  width:100%;
  min-height:42px;
  border-radius:11px;
  border:1px solid rgba(125,227,255,.18);
  background:rgba(0,0,0,.28);
  color:#e8f4f8;
  padding:10px 12px;
  font:inherit;
  font-size:14px;
  transition:border-color .15s, box-shadow .15s;
}
.admin-pane .field input:focus,
.admin-pane .field select:focus,
.ann-editor:focus{
  outline:none;
  border-color:#5ec8ff;
  box-shadow:0 0 0 3px rgba(94,200,255,.15);
}

/* Action row under forms */
.admin-form-actions,
.admin-pane form > div:has(button),
#videoForm > div:has(button),
#webForm > div:has(button){
  display:flex !important;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  grid-column:1 / -1;
  margin-top:4px;
}
.admin-pane .btn,
.admin-form-actions .btn{
  height:40px;
  padding:0 16px;
  border-radius:11px;
  font-weight:600;
  font-size:13px;
  cursor:pointer;
  border:1px solid transparent;
}
.admin-pane .btn-primary{
  background:linear-gradient(135deg,#9eebff,#5ec8ff);
  color:#061016;
  border:0;
}
.admin-pane .btn-ghost{
  background:rgba(255,255,255,.06);
  color:#c5d8e0;
  border:1px solid var(--line);
}
.admin-pane .btn-ghost:hover{border-color:#5ec8ff;color:#fff}

/* Search */
.admin-search-wrap{
  grid-column:1 / -1;
  margin:16px 0 10px !important;
}
.admin-search-wrap input.admin-list-search{
  width:100%;
  height:44px;
  border-radius:12px;
  border:1px solid rgba(125,227,255,.2);
  background:rgba(0,0,0,.3);
  color:#e8f4f8;
  padding:0 14px;
  font-size:14px;
}

/* Lists & rows */
.admin-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:8px;
}
.admin-row{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px !important;
  border-radius:12px;
  border:1px solid rgba(125,227,255,.1);
  background:rgba(255,255,255,.03);
  transition:background .15s, border-color .15s;
}
.admin-row:hover{
  background:rgba(125,227,255,.05);
  border-color:rgba(125,227,255,.22);
}
.admin-row > div:first-child{flex:1;min-width:0}
.admin-row strong{font-size:13.5px;font-weight:650}
.admin-row small{display:block;margin-top:2px;color:#7a96a4;font-size:12px;line-height:1.35}
.admin-row > div:last-child,
.admin-row .admin-row-actions{
  display:flex;
  flex-wrap:nowrap;
  gap:6px;
  flex-shrink:0;
  margin-left:0 !important;
}

/* Edit / delete button contrast */
.admin-row button,
.admin-list button[data-edit-vid],
.admin-list button[data-edit-web],
.admin-list button[data-edit-al],
.admin-list button[data-edit-ang],
.admin-list button[data-edit-ann],
.admin-list button[data-edit-link]{
  border:1px solid rgba(125,227,255,.25) !important;
  background:rgba(94,200,255,.1) !important;
  color:#9ee7ff !important;
  border-radius:8px !important;
  padding:6px 12px !important;
  font-size:12px !important;
  font-weight:600;
  cursor:pointer;
}
.admin-list button[data-del-vid],
.admin-list button[data-del-web],
.admin-list button[data-del-al],
.admin-list button[data-del-ang],
.admin-list button[data-del-ann],
.admin-list button[data-unlink],
.admin-row button[data-del-vid],
.admin-row button[data-del-web],
.admin-row button[data-del-al],
.admin-row button[data-del-ang],
.admin-row button[data-del-ann],
.admin-row button[data-unlink]{
  border:1px solid rgba(255,120,120,.3) !important;
  background:rgba(255,80,80,.12) !important;
  color:#ffb0b0 !important;
}

/* Tree */
.pt-node{margin:2px 0}
.pt-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  padding:6px 4px !important;
  border-radius:8px;
  justify-content:flex-start !important;
}
.pt-row:hover{background:rgba(255,255,255,.03)}
.pt-toggle{
  width:28px;height:28px;
  border-radius:8px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.05);
  color:#9db5c0;
  cursor:pointer;
  flex-shrink:0;
  font-size:12px;
}
.pt-row > strong{font-size:13px;font-weight:650}
.pt-row > .muted,
.pt-row > small.muted,
.pt-count{
  margin-left:0.35em !important;
  color:#7a96a4 !important;
  font-size:12px !important;
  white-space:nowrap;
}
.pt-children{padding-left:12px;border-left:1px solid rgba(125,227,255,.1);margin-left:12px}
.pt-children.is-collapsed{display:none}

/* Coverage box */
.link-coverage-box{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(125,227,255,.15);
  background:rgba(0,0,0,.2);
  margin-bottom:14px;
}
.cov-years{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:6px 16px;
}
.cov-year{font-size:13px;line-height:1.4}
.cov-accounts{font-size:12px;color:#8aa3ae}

/* Sync / announce */
.sync-help{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px 16px;
  margin-bottom:10px;
}
.sync-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.ann-fieldset{
  grid-column:1/-1;
  border:1px solid rgba(125,227,255,.15);
  border-radius:14px;
  padding:12px 14px;
}
.ann-editor{min-height:160px}

/* Status text */
#vidStatus,#webStatus,#alumniStatus,#angStatus,#annStatus,#syncMsg{
  font-size:13px;
  margin-top:8px;
  color:#8ff5bd;
}

/* Gate login */
#gate.summary-card{
  max-width:420px;
  margin:24px auto;
  text-align:center;
  padding:28px 24px;
}

/* Desktop: wider use of space */
@media (min-width:960px){
  body.page-skills .skills-main{max-width:1120px}
  .cov-years{grid-template-columns:1fr 1fr}
  .admin-row{flex-wrap:nowrap}
  .admin-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* Tablet */
@media (max-width:900px){
  body.page-skills .skills-main{padding:0 14px 90px}
  .admin-hero-row{flex-direction:column}
  .admin-who{width:100%}
  #adminTabs{top:0}
}

/* Mobile */
@media (max-width:620px){
  body.page-skills .skills-main{padding:0 12px 100px}
  .admin-pane.summary-card{padding:14px}
  .admin-pane form,
  #videoForm,#webForm,#alumniForm,#angForm,#annForm{
    grid-template-columns:1fr !important;
  }
  .admin-row{
    flex-wrap:wrap !important;
    align-items:flex-start !important;
  }
  .admin-row > div:last-child{
    width:100%;
    justify-content:flex-start;
    margin-top:6px;
  }
  .admin-row small{white-space:normal}
  .pt-children{padding-left:8px;margin-left:8px}
  #adminTabs .filter{padding:0 11px;font-size:12px;height:34px}
  .cov-year{white-space:normal}
}

.sh-ann-float-btn{
  position:fixed;left:14px;bottom:72px;z-index:11000;
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;border-radius:999px;
  border:1px solid rgba(125,227,255,.35);
  background:rgba(10,20,30,.92);color:#e8f4f8;
  box-shadow:0 8px 28px rgba(0,0,0,.35);
  cursor:pointer;font-size:13px;font-weight:600;
  max-width:min(90vw,280px);
}
.sh-ann-float-btn:hover{border-color:#5ec8ff;background:rgba(20,40,55,.95)}
.sh-ann-float-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ann-stu-check{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer}
.ann-stu-check input{accent-color:#5ec8ff}
.link-edit-panel.is-collapsed{display:none!important}
.link-edit-panel:not(.is-collapsed){display:block}
@media (max-width:620px){
  .sh-ann-float-btn{left:10px;bottom:64px;padding:8px 12px;font-size:12px}
}

/* Users tab compact + Atur panel */
.user-perm-panel.is-collapsed{display:none!important}
.user-perm-panel:not(.is-collapsed){
  display:block;
  padding:10px 12px;
  margin:4px 0 10px 12px;
  border-left:2px solid rgba(125,227,255,.25);
  border-radius:0 10px 10px 0;
  background:rgba(0,0,0,.2);
}
.user-row-compact{
  padding:8px 10px !important;
  min-height:0 !important;
  align-items:center !important;
}
.user-row-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.user-row-av{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}
.user-row-av-ph{display:grid;place-items:center;background:rgba(255,255,255,.06);font-size:14px}
.user-row-text{min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.25}
.user-row-text strong{font-size:13px}
.user-row-meta{font-size:11px;color:#7a96a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(60vw,420px)}
.user-admin-tag{font-size:11px;color:#7de3ff;font-style:normal;font-weight:600}
.btn-atur{
  flex-shrink:0;
  border:1px solid rgba(125,227,255,.3)!important;
  background:rgba(94,200,255,.12)!important;
  color:#9ee7ff!important;
  border-radius:8px!important;
  padding:6px 12px!important;
  font-size:12px!important;
  font-weight:600;
  cursor:pointer;
}
.user-perm-grid{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0}
.user-perm-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#b7cdd6}
.user-node{margin:0}
.user-node .admin-row{margin:0}

.admin-link-preview, .admin-link-open {
  color: #9ee7ff;
  text-decoration: none;
  cursor: pointer;
}
.admin-link-preview:hover, .admin-link-open:hover {
  text-decoration: underline;
  color: #c5f3ff;
}
.link-row { display: flex !important; flex-direction: column !important; align-items: stretch !important; }
.link-row-top { width: 100%; }
.link-edit-panel { align-self: flex-start; width: min(100%, 520px); }
.link-edit-panel.is-collapsed { display: none !important; }
@media (max-width: 620px) {
  .one-line-desktop { white-space: normal !important; }
}

/* Absensi */
.att-list{display:grid;gap:12px}
.att-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.att-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(125,227,255,.15);color:#9ee7ff;white-space:nowrap}
.att-card[data-status="missed"] .att-badge{background:rgba(255,120,120,.15);color:#ffb0b0}
.att-card[data-status="done"] .att-badge{background:rgba(143,245,189,.15);color:#8ff5bd}
.att-fx{position:fixed;inset:0;z-index:13000;pointer-events:none}
.att-toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%);
  z-index:13001;padding:12px 18px;border-radius:999px;
  background:rgba(10,20,30,.94);border:1px solid rgba(125,227,255,.4);
  color:#e8f4f8;font-weight:600;box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.att-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}

/* Weekday checkboxes — label di tengah bawah */
.weekday-checks{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  margin-top:8px;
}
.wd-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  min-width:44px;
  font-size:12px;
  color:#9db5c0;
  cursor:pointer;
  user-select:none;
}
.wd-item input{
  width:18px;
  height:18px;
  accent-color:#5ec8ff;
  margin:0;
  cursor:pointer;
}
.wd-item span{text-align:center;line-height:1.1}

/* Tri-state student tree */
.sh-cb-tree .sh-cb-row{
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 0;
}
.sh-cb-tree .sh-cb-label{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  flex:1;
  min-width:0;
}
.sh-cb-tree input[type=checkbox]{
  width:16px;
  height:16px;
  accent-color:#3b9eff;
  cursor:pointer;
  flex-shrink:0;
}
.sh-cb-tree label.leaf{
  display:flex;
  align-items:center;
  gap:8px;
  padding:3px 0 3px 28px;
  font-size:13px;
  cursor:pointer;
}

/* Absensi / Pengumuman student tree — layout sama (lebar penuh, kiri) */
.att-student-fieldset{
  grid-column:1 / -1;
  width:100%;
  box-sizing:border-box;
}
.att-student-fieldset .check{
  display:flex;
  gap:8px;
  align-items:center;
  margin:6px 0;
  font-size:13px;
  justify-content:flex-start;
  text-align:left;
}
.att-student-tree,
.ann-student-tree{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  text-align:left;
  margin-top:8px;
}
.att-student-tree.is-collapsed,
.ann-student-tree.is-collapsed{
  display:none !important;
}
/* Tree list items full width, left aligned */
.sh-cb-tree{
  width:100%;
}
.sh-cb-tree .pt-node{
  width:100%;
}
.sh-cb-tree .pt-row{
  justify-content:flex-start;
  width:100%;
}
.sh-cb-tree .sh-cb-label{
  flex:1;
  min-width:0;
}
.sh-cb-tree .sh-cb-label strong{
  font-weight:600;
}
.sh-cb-tree label.leaf{
  width:100%;
  box-sizing:border-box;
}

/* ===== About page ===== */
.about-main{max-width:980px}
.about-hero-card{
  display:grid;
  grid-template-columns: minmax(160px,240px) 1fr;
  gap:28px;
  align-items:center;
  padding:28px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(125,227,255,.06),rgba(0,0,0,.25));
  margin-bottom:20px;
}
.about-photo-wrap{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(125,227,255,.25);
  box-shadow:0 12px 40px rgba(0,0,0,.35);
  aspect-ratio:1;
  background:#0a1520;
}
.about-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.about-hero-copy h1{margin:6px 0 8px;font-size:clamp(1.6rem,3vw,2.1rem)}
.about-role{color:#9db5c0;font-size:14px;margin:0 0 10px}
.about-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.about-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.about-block h2{font-size:1.15rem;margin:6px 0 10px}
.about-list{
  margin:0;
  padding-left:1.15rem;
  color:#9db5c0;
  font-size:13px;
  line-height:1.7;
}
.about-list a{color:#7de3ff}
.about-modal{
  position:fixed;inset:0;z-index:2000;
  display:flex;align-items:center;justify-content:center;
  padding:16px;
}
.about-modal[hidden]{display:none!important}
.about-modal-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(4px);
}
.about-modal-panel{
  position:relative;z-index:1;
  width:min(560px,100%);
  max-height:min(85vh,720px);
  overflow:auto;
  padding:20px 22px;
}
.about-modal-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:4px;
}
.about-modal-head h2{margin:0;font-size:1.2rem}
.about-ver-item{
  border-top:1px solid rgba(125,227,255,.12);
  padding:12px 0;
}
.about-ver-item h3{margin:0 0 6px;font-size:14px;color:#e8f4f8}
.about-ver-item ul{margin:0;padding-left:1.15rem;color:#9db5c0;font-size:13px;line-height:1.6}
.about-modal-foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media (max-width:720px){
  .about-hero-card{grid-template-columns:1fr;text-align:center}
  .about-photo-wrap{max-width:220px;margin:0 auto}
  .about-actions{justify-content:center}
  .about-grid{grid-template-columns:1fr}
}

/* Unified checkbox size (admin forms + tree) */
.check input[type=checkbox],
.ann-fieldset .check input[type=checkbox],
.att-student-fieldset .check input[type=checkbox],
.sh-cb-tree input[type=checkbox],
.weekday-checks input[type=checkbox]{
  width:16px;
  height:16px;
  min-width:16px;
  min-height:16px;
  accent-color:#3b9eff;
  cursor:pointer;
  flex-shrink:0;
  margin:0;
}
.check,
.ann-fieldset .check,
.att-student-fieldset .check{
  font-size:13px;
  line-height:1.35;
  gap:8px;
  align-items:center;
}
.sh-cb-tree .sh-cb-label,
.sh-cb-tree label.leaf{
  font-size:13px;
}

/* Support page */
.support-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.support-pay-list li{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.support-num{font-family:ui-monospace,monospace;color:#e8f4f8}
.btn-copy{padding:4px 10px!important;font-size:12px!important}
.support-qris-wrap{
  display:flex;justify-content:center;
  padding:12px;
  background:#fff;
  border-radius:14px;
  margin-top:8px;
}
.support-qris-img{width:min(280px,100%);height:auto;display:block}
@media (max-width:720px){
  .support-grid{grid-template-columns:1fr}
}

/* Gallery: kasih uang jajan */
.btn-jajan{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:8px;padding:6px 12px;font-size:12px;
  border-radius:999px;border:1px solid rgba(125,227,255,.35);
  background:rgba(125,227,255,.08);color:#dffbff;cursor:pointer;
}
.btn-jajan:hover{border-color:#5ec8ff;background:rgba(125,227,255,.14)}
.qris-modal{
  position:fixed;inset:0;z-index:13000;
  display:flex;align-items:center;justify-content:center;
  padding:16px;background:rgba(0,0,0,.7);
}
.qris-modal[hidden]{display:none!important}
.qris-modal-panel{
  background:linear-gradient(160deg,#0f1c28,#0a141c);
  border:1px solid rgba(125,227,255,.3);border-radius:16px;
  padding:16px;max-width:360px;width:100%;text-align:center;
}
.qris-modal-panel .qris-img-wrap{
  display:flex;align-items:center;justify-content:center;
  margin:12px 0;padding:12px;background:#fff;border-radius:12px;
  min-height:120px;
}
.qris-modal-panel img,
.qris-modal-panel #qrisModalImg{
  /* proporsional asli — jangan dipaksa kotak agar QRIS tetap bisa di-scan */
  width:auto!important;height:auto!important;
  max-width:min(320px,86vw);max-height:min(420px,70vh);
  object-fit:contain;display:block;margin:0 auto;background:#fff;
}

/* Popup profil siswa (klik nama di gallery) */
.student-name-btn{
  appearance:none;border:0;background:transparent;padding:0;margin:0;
  font:inherit;font-weight:700;font-size:15px;color:inherit;cursor:pointer;
  text-align:left;text-decoration:underline;text-decoration-color:rgba(125,227,255,.35);
  text-underline-offset:3px;
}
.student-name-btn:hover{color:#b8f0ff;text-decoration-color:#5ec8ff}
.student-profile-modal{
  position:fixed;inset:0;z-index:13000;
  display:flex;align-items:center;justify-content:center;
  padding:16px;background:rgba(0,0,0,.72);
}
.student-profile-modal[hidden]{display:none!important}
.student-profile-panel{
  position:relative;max-width:420px;width:100%;max-height:min(90vh,640px);
  overflow:auto;padding:20px 18px 16px;
  background:linear-gradient(160deg,#0f1c28,#0a141c);
  border:1px solid rgba(125,227,255,.3);border-radius:16px;
}
.student-profile-panel .sp-close{
  position:absolute;top:10px;right:10px;min-width:36px;padding:6px 10px;
}
.sp-head{display:flex;gap:14px;align-items:center;padding-right:36px}
.sp-photo-wrap{
  width:112px;height:112px;border-radius:50%;overflow:hidden;flex-shrink:0;
  border:3px solid rgba(125,227,255,.4);background:rgba(8,17,24,.9);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.sp-photo-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.sp-photo-fallback{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:42px;background:linear-gradient(145deg,#1a2e3a,#0c1820);
}
.sp-contact{margin-top:14px}
.sp-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;
}
.sp-stat{
  text-align:center;padding:10px 6px;border-radius:12px;
  border:1px solid rgba(125,227,255,.2);background:rgba(0,0,0,.25);
}
.sp-stat b{display:block;font-size:20px;color:#e8f7fc;letter-spacing:-0.5px}
.sp-stat span{font-size:10px;color:#8aa0ab;text-transform:uppercase;letter-spacing:0.6px}
.sp-qris{margin-top:14px;text-align:center}

/* Support Us — Dana/GoPay + QRIS sejajar */
.support-row{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:20px 28px;
  padding:18px 20px;
}
.support-pay{flex:1 1 220px;min-width:0}
.support-h2{margin:6px 0 12px;font-size:1.15rem}
.support-pay-list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:10px;
  justify-content:center;
}
.support-pay-list li{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;
  font-size:13px;color:#c5d8e0;
}
.support-pay-list strong{min-width:52px;color:#e8f4f8}
.support-num{font-family:ui-monospace,monospace;color:#e8f4f8;letter-spacing:.02em}
.support-note{font-size:12px;margin:12px 0 0}
.support-qris{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.support-qris-inner{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:6px;
}
.support-qris-frame{
  background:#fff;
  border-radius:10px;
  padding:6px;
  line-height:0;
  border:1px solid rgba(125,227,255,.2);
}
.support-qris-frame{
  cursor:zoom-in;
  border:0;
  background:#fff;
  border-radius:10px;
  padding:8px;
  line-height:0;
  border:1px solid rgba(125,227,255,.2);
}
.support-qris-img{
  width:160px;
  height:160px;
  object-fit:contain;
  display:block;
  image-rendering:auto;
}
.support-qris-actions{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
}
.support-qris-large{
  width:min(320px,72vw);
  height:auto;
  aspect-ratio:1;
  object-fit:contain;
  background:#fff;
  border-radius:12px;
  padding:10px;
  box-sizing:border-box;
}
.support-qris-lightbox{max-width:380px}
.btn-qris-dl{padding:6px 12px!important;font-size:12px!important;white-space:nowrap}
@media (max-width:560px){
  .support-qris-inner{flex-direction:column;align-items:flex-start}
  .support-qris-img{width:140px;height:140px}
}

/* ===== Custom scrollbar (tema) ===== */
html{
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb, #3a7a9a) var(--scroll-track, #0a1218);
}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--scroll-track,#0a1218)}
*::-webkit-scrollbar-thumb{
  background:var(--scroll-thumb,#3a7a9a);
  border-radius:999px;
  border:2px solid var(--scroll-track,#0a1218);
}
*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover,#5ec8ff)}

/* ===== Theme tokens ===== */
:root, [data-theme="youth"]{
  --bg:#070d12;--bg2:#0b151d;--panel:rgba(15,27,36,.72);
  --line:rgba(177,205,218,.13);--text:#eef7fb;--muted:#8fa7b4;
  --accent:#5ec8ff;--accent2:#7dffb3;
  --scroll-track:#0a1218;--scroll-thumb:#2d6f8c;--scroll-thumb-hover:#5ec8ff;
  --theme-label:"Muda";
}
[data-theme="adult"]{
  --bg:#0f1419;--bg2:#161d26;--panel:rgba(22,30,40,.88);
  --line:rgba(180,190,200,.16);--text:#f0f2f5;--muted:#9aa3ad;
  --accent:#6ea8fe;--accent2:#8fd3b0;
  --scroll-track:#121820;--scroll-thumb:#4a6a8a;--scroll-thumb-hover:#6ea8fe;
  --theme-label:"Dewasa";
}
[data-theme="senior"]{
  --bg:#1a1814;--bg2:#242018;--panel:rgba(40,36,28,.92);
  --line:rgba(220,200,160,.2);--text:#fff8e8;--muted:#c4b89a;
  --accent:#f0c14b;--accent2:#e8a87c;
  --scroll-track:#1f1c16;--scroll-thumb:#8a7340;--scroll-thumb-hover:#f0c14b;
  --theme-label:"Lansia";
  font-size:17px;
}
[data-theme="senior"] body{font-size:1.05em;line-height:1.55}
[data-theme="senior"] .topnav a{padding:8px 10px}
[data-theme="senior"] .btn, [data-theme="senior"] button{font-size:15px}

/* Theme toggle button */
.theme-toggle{
  display:inline-flex;align-items:center;gap:6px;
  margin-left:8px;padding:6px 12px;border-radius:999px;
  border:1px solid var(--line);background:rgba(255,255,255,.05);
  color:var(--text);font-size:12px;cursor:pointer;white-space:nowrap;
}
.theme-toggle:hover{border-color:var(--accent);color:#fff}
.theme-toggle .theme-dot{
  width:10px;height:10px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 8px var(--accent);
}



/* Absensi admin session row — judul | jam | tombol ; detail di BAWAH */
/* Absensi memakai kelas yang sama dengan pengumuman (.ann-sess-*) */
.admin-row.att-sess-row{display:block!important;padding:12px 14px!important}
.att-sess-creator{display:block;font-size:11px;margin-top:2px;color:var(--muted,#8fa7b4)}
.att-stat-summary{font-size:12px;margin:0 0 10px;line-height:1.45}
.att-stat-block{margin:8px 0}
.att-stat-class{margin:6px 0 6px 4px}
.att-name-list{list-style:none;margin-left:0!important;padding-left:0!important}
.att-name-item{margin:4px 0}
.att-name-btn{
  background:none;border:none;color:var(--accent,#5ec8ff);cursor:pointer;
  padding:2px 0;font-size:13px;text-align:left;text-decoration:underline;
}
.att-note-pop{
  margin:6px 0 8px 8px;padding:10px 12px;border-radius:10px;
  border:1px solid var(--line);background:rgba(0,0,0,.35);font-size:12px;line-height:1.45;
}
.att-info-panel ul{margin:8px 0 0 18px}
/* Pengumuman list */
.ann-sess-row{display:block!important;padding:12px 14px!important}
.ann-sess-top{display:flex;flex-wrap:nowrap;align-items:center;gap:12px;width:100%}
.ann-sess-title{flex:1 1 auto;min-width:120px}
.ann-sess-actions{flex:0 0 auto;display:flex;flex-wrap:nowrap;gap:6px}
.ann-sess-detail{width:100%;margin-top:10px;padding:12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.22);font-size:13px}
.ann-sess-detail[hidden]{display:none!important}
@media (max-width:720px){
  .att-sess-top,.ann-sess-top{flex-wrap:wrap}
  .att-sess-actions,.ann-sess-actions{flex-wrap:wrap;justify-content:flex-start}
}

/* Absensi list: judul | jam check-in/out | tombol — satu baris */
.att-sess-top.ann-sess-top{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:12px 16px;
  width:100%;
}
.att-sess-times{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  font-size:12px;
  line-height:1.35;
  color:#9db5c0;
  white-space:nowrap;
  min-width:9.5rem;
}
.att-time-line{display:flex;gap:6px;align-items:baseline}
.att-time-lab{
  display:inline-block;
  min-width:4.6rem;
  font-size:10px;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:#7a96a4;
}
.att-sess-top .ann-sess-title{flex:1 1 auto;min-width:0}
.att-sess-top .ann-sess-actions{flex:0 0 auto;margin-left:0}
@media (max-width:720px){
  .att-sess-top.ann-sess-top{flex-wrap:wrap;align-items:flex-start}
  .att-sess-times{order:3;width:100%;min-width:0;margin-top:4px}
  .att-sess-actions{order:2;width:100%}
}

/* Admin one-line helpers (desktop) */
.admin-one-line{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.user-cleanup-row{
  display:flex;
  flex-wrap:nowrap;
  gap:16px 24px;
  align-items:center;
  font-size:12px;
}
.user-cleanup-row .check{margin:0;white-space:nowrap}
#btnStuTplSheet.btn,
a#btnStuTplSheet{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
  padding:8px 14px;
  vertical-align:middle;
}
@media (max-width:720px){
  .admin-one-line{white-space:normal}
  .user-cleanup-row{flex-direction:column;align-items:flex-start;gap:8px}
  .user-cleanup-row .check{white-space:normal}
}

.about-link-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:10px;
}
.about-link-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(125,227,255,.15);
  background:rgba(0,0,0,.2);
  text-decoration:none;
  color:inherit;
  transition:border-color .15s,background .15s;
}
.about-link-card:hover{
  border-color:rgba(125,227,255,.4);
  background:rgba(125,227,255,.06);
}
.about-link-card b{font-size:13px;color:#e8f4f8}
.about-link-card span{font-size:11px;color:#8fa7b4;line-height:1.3}

/* Support payment logos */
.support-pay-item{
  display:flex;
  align-items:center;
  gap:12px;
  list-style:none;
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(125,227,255,.12);
  background:rgba(0,0,0,.18);
}
.support-pay-list{list-style:none;margin:0;padding:0}
.support-pay-item .support-num{display:block;font-size:14px;letter-spacing:.02em;margin-top:2px}
.pay-logo{flex-shrink:0;display:flex;line-height:0}
.pay-logo svg{display:block;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.25)}

/* Announce form */
.ann-body-field span,
.ann-body-field > span{text-align:left!important;justify-self:start}
.ann-form .ann-active-align{
  display:flex;
  align-items:center;
  align-self:end;
  height:42px;
  margin:0;
  gap:8px;
}
.ann-form label.field span{text-align:left;display:block}

/* Pengumuman: label & tools rata kiri (bukan tengah) */
.ann-form .ann-body-field{
  grid-column:1 / -1 !important;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  text-align:left !important;
  justify-items:start;
}
.ann-form .ann-body-field > span{
  display:block;
  width:100%;
  text-align:left !important;
  margin:0 0 6px;
  font-size:11px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#8fa7b4;
}
.ann-form .ann-editor-tools{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-start !important;
  text-align:left !important;
  width:100%;
  margin-top:8px;
}
.ann-form .ann-editor{width:100%;box-sizing:border-box}

/* Hero stack: dynamic thumbnails — kartu 3D ketebalan ~5px, depan & belakang */
.mini-card.mini-thumb{
  padding:0;
  overflow:visible;
  background:transparent;
  background-color:transparent;
  transform-style:preserve-3d;
}
.mini-card.mini-thumb .mini-card-3d{
  position:absolute;
  inset:0;
  transform-style:preserve-3d;
  border-radius:inherit;
}
.mini-card.mini-thumb .mini-face{
  position:absolute;
  inset:0;
  border-radius:inherit;
  overflow:hidden;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  background-color:rgba(8,17,24,.92);
  box-shadow:inset 0 0 0 1px rgba(197,238,247,.12);
}
/* tebal kartu ~16px — terlihat jelas saat rotateY */
.mini-card.mini-thumb .mini-face-front{
  transform:translateZ(8px);
}
.mini-card.mini-thumb .mini-face-back{
  transform:rotateY(180deg) translateZ(8px);
}
.mini-card.mini-thumb .mini-edge{
  position:absolute;
  top:0;
  bottom:0;
  width:16px;
  background:linear-gradient(180deg,#3d5a6a 0%,#1a2c38 40%,#0c1620 100%);
  box-shadow:inset 0 0 0 1px rgba(140,220,240,.2);
  transform-style:preserve-3d;
  pointer-events:none;
}
.mini-card.mini-thumb .mini-edge-left{
  left:0;
  transform-origin:left center;
  transform:rotateY(-90deg) translateZ(0px);
}
.mini-card.mini-thumb .mini-edge-right{
  right:0;
  left:auto;
  transform-origin:right center;
  transform:rotateY(90deg) translateZ(0px);
}
.mini-card.mini-thumb .mini-thumb-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transition:opacity .4s ease,transform .5s ease;
}
.mini-card.mini-thumb .mini-thumb-scrim{
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,rgba(8,17,24,.15),rgba(8,17,24,.72) 55%,rgba(8,17,24,.88));
  pointer-events:none;
}
.mini-card.mini-thumb .mini-thumb-meta{
  position:absolute;
  left:16px;
  right:16px;
  bottom:14px;
  z-index:2;
  text-align:left;
}
.mini-card.mini-thumb .mini-thumb-meta span{
  font-size:9px;
  color:#8ee7fa;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.mini-card.mini-thumb .mini-thumb-meta b{
  display:block;
  font-size:13px;
  letter-spacing:-0.2px;
  margin-top:4px;
  line-height:1.25;
  max-height:2.6em;
  overflow:hidden;
  color:#fff;
  font-weight:700;
}
.mini-card.mini-thumb .mini-thumb-meta small{
  display:block;
  color:#a8bcc5;
  margin-top:4px;
  font-size:9px;
  letter-spacing:1px;
}

/* Hero stack fly 3D */
.glass-stack{
  perspective:700px;
  transform-style:preserve-3d;
}
.glass-stack .mini-card{
  transform-style:preserve-3d;
  will-change:transform;
}
.glass-stack.is-flying .mini-card{
  box-shadow:0 24px 48px rgba(0,0,0,.45);
  transition:none !important;
}
/* Label kartu video (1) kanan atas saat diam */
.mini-card.mini-one.mini-thumb .mini-thumb-meta{
  left:auto;
  right:14px;
  top:12px;
  bottom:auto;
  text-align:right;
}
.mini-card.mini-one.mini-thumb .mini-thumb-meta b{
  font-size:12px;
  max-height:2.5em;
}
@media (prefers-reduced-motion: reduce){
  .glass-stack .mini-card{transition:none!important}
}

.glass-stack.is-leaf .mini-card{
  box-shadow:0 18px 40px rgba(0,0,0,.35);
}


/* === MOBILE TOPNAV SLIDER (hanya ≤900px) === */
/* Desktop: biarkan rule di atas (wrap, tanpa scrollbar) */
@media (max-width:900px){
  .topbar{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center;
    justify-content:flex-start !important;
    gap:8px 10px;
    padding:10px 12px;
    height:auto !important;
    min-height:56px;
    overflow:visible !important;
  }
  .brand{order:1;flex:0 0 auto;max-width:55%}
  .status,#shAuthSlot,.theme-toggle{order:2;margin-left:auto}
  .topbar .topnav,
  nav.topnav,
  .topnav.topnav-scroll,
  .topnav{
    order:3 !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:6px !important;
    flex:1 1 100% !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding:8px 4px 10px !important;
    overflow-x:scroll !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    touch-action:pan-x !important;
    overscroll-behavior-x:contain;
    scroll-snap-type:none;
    scrollbar-width:thin;
    cursor:grab;
    user-select:none;
    -webkit-user-select:none;
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }
  .topnav:active{cursor:grabbing}
  .topnav::-webkit-scrollbar{height:3px}
  .topnav::-webkit-scrollbar-thumb{background:rgba(125,227,255,.35);border-radius:4px}
  .topnav a{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    color:#d5ebf3 !important;
    text-shadow:0 1px 2px rgba(0,0,0,.5);
    background:rgba(255,255,255,.06);
    border:1px solid rgba(125,227,255,.22) !important;
    border-radius:999px;
    padding:8px 13px;
    font-size:12px;
    font-weight:600;
    pointer-events:auto;
    position:relative;
    z-index:1;
  }
  .topnav a:hover,
  .topnav a:focus-visible{
    color:#fff !important;
    background:rgba(125,227,255,.16);
    border-color:rgba(125,227,255,.45) !important;
  }
  .topnav a.active{
    color:#061016 !important;
    background:linear-gradient(135deg,#dffbff,#6bdcf4) !important;
    border-color:transparent !important;
    text-shadow:none;
    font-weight:700;
  }
  .topnav a.nav-admin,
  .topnav a.nav-profile{
    color:#e7fbff !important;
  }
}

@media (max-width:620px){
  .topnav a{
    padding:9px 14px;
    font-size:12.5px;
    color:#e2f3f8 !important;
  }
  .topnav a.active{color:#061016 !important}
}


/* === DESKTOP TOPNAV LOCK === */
/* Pastikan desktop tidak “kedip” ke style mobile / scrollbar */
@media (min-width: 901px) {
  .topbar{
    display:flex !important;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    height:auto !important;
    min-height:64px;
    overflow:visible !important;
  }
  .topbar .topnav,
  nav.topnav,
  .topnav{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    justify-content:flex-end !important;
    align-items:center !important;
    order:unset !important;
    flex:1 1 auto !important;
    width:auto !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:8px !important;
    padding:0 !important;
    overflow:visible !important;
    overflow-x:visible !important;
    touch-action:auto !important;
    cursor:default !important;
    user-select:auto !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    scrollbar-width:none !important;
  }
  .topnav::-webkit-scrollbar{display:none !important;height:0 !important}
  .topnav a{
    flex:0 0 auto;
    white-space:nowrap;
    font-size:12px !important;
    color:#9bb4c0 !important;
    padding:8px 12px !important;
    border-radius:10px !important;
    border:1px solid transparent !important;
    background:transparent !important;
    text-shadow:none !important;
    font-weight:500 !important;
  }
  .topnav a:hover{
    color:#e8f7fc !important;
    border-color:var(--line) !important;
    background:transparent !important;
  }
  .topnav a.active{
    color:#061016 !important;
    background:linear-gradient(135deg,#dffbff,#6bdcf4) !important;
    font-weight:700 !important;
    border-color:transparent !important;
  }
  .topnav a.nav-admin,
  .topnav a.nav-profile{
    color:#9bb4c0 !important;
  }
  /* Slot login/avatar di luar nav — cegah reflow menu */
  .sh-userbar{
    order:unset;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    min-width:72px;
    min-height:36px;
    margin-left:4px;
  }
  .theme-toggle{
    flex:0 0 auto;
    margin-left:4px;
  }
}


/* ========== Boash Gallery Light Theme Overrides ========== */
.topbar{
  height:72px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:100;
}
.brand-mark{
  background:linear-gradient(145deg,#14b886,#0b7d5a) !important;
  color:#fff !important;
  border:1px solid rgba(13,155,110,.3) !important;
  box-shadow:0 4px 16px rgba(13,155,110,.22) !important;
}
.brand b{color:var(--text)}
.brand small{color:var(--muted)}
.topnav a{color:var(--muted)}
.topnav a:hover,.topnav a.active{color:var(--cyan);background:rgba(13,155,110,.08)}

.eyebrow{color:var(--cyan) !important}
.hero h1{color:var(--text) !important}
.hero h1 span{
  background:linear-gradient(90deg,#0d9b6e,#14b886,#0b7d5a) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
}
.hero p{color:var(--muted) !important}

.btn-primary{
  background:linear-gradient(135deg,#14b886,#0d9b6e) !important;
  color:#fff !important;
  box-shadow:0 6px 20px rgba(13,155,110,.25) !important;
}
.btn-ghost{
  background:rgba(255,255,255,.75) !important;
  border:1px solid var(--line) !important;
  color:var(--text) !important;
}
.btn-ghost:hover{border-color:rgba(13,155,110,.4) !important;background:#fff !important}

/* Cards */
.card,.panel,.glass-card,.mini-card,.work-choice,.doc-card,.bonus-row{
  background:var(--panel) !important;
  border-color:var(--line) !important;
  color:var(--text) !important;
}
.card:hover,.doc-card:hover{border-color:rgba(13,155,110,.3) !important}

/* Text adjustments */
.muted,.status,.works-title,.cover-title span{color:var(--muted) !important}
h2,h3,b{color:var(--text)}

/* Forms */
input,select,textarea,.field input,.field select{
  background:#fff !important;
  border:1px solid #c5ddd2 !important;
  color:var(--text) !important;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--cyan) !important;
  box-shadow:0 0 0 3px rgba(13,155,110,.12) !important;
}

/* Footer */
footer{color:var(--muted);border-top:1px solid var(--line)}

/* Tooltip light version */
.sh-tooltip{
  color:#0f2a22 !important;
  background:linear-gradient(145deg,#f0fdf8 0%,#c6f0df 100%) !important;
  border:1px solid rgba(13,155,110,.35) !important;
  box-shadow:0 12px 32px rgba(15,80,60,.15) !important;
}

/* Status indicator */
.status i{background:#14b886 !important;box-shadow:0 0 10px #14b886 !important}
