:root{
  --navy:#071226;--navy-2:#0b1d3a;--ink:#102039;--text:#13213a;--muted:#6c7890;--panel:#ffffff;--soft:#f6f9ff;--line:#dbe7f7;
  --blue:#1d7fff;--cyan:#22d3ee;--violet:#7c3aed;--purple:#a855f7;--gold:#ffb020;--orange:#ff6b00;--green:#22c55e;--red:#ef4444;
  --shadow:0 18px 48px rgba(9,18,40,.10);--glow:0 0 0 1px rgba(34,211,238,.35),0 20px 60px rgba(29,127,255,.22)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:#eef4fb}a{color:var(--blue);text-decoration:none}img,iframe,video{max-width:100%}small,.muted{color:var(--muted)}
.btn{border:0;border-radius:14px;padding:11px 16px;font-weight:800;display:inline-flex;justify-content:center;align-items:center;gap:8px;cursor:pointer;line-height:1.1;transition:.18s transform,.18s box-shadow,.18s background,.18s border-color}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--blue),#3559ff);color:#fff;box-shadow:0 14px 30px rgba(29,127,255,.24)}.btn-purple{background:linear-gradient(135deg,#6d28d9,#a855f7);color:#fff;box-shadow:0 14px 30px rgba(124,58,237,.25)}.btn-gold{background:linear-gradient(135deg,#ffd166,#ff9f1c);color:#1b2340;box-shadow:0 16px 34px rgba(255,159,28,.32)}.btn-outline{background:rgba(255,255,255,.72);color:var(--blue);border:1px solid #b9d9ff}.btn-light{background:#fff;color:var(--blue)}.btn-ghost-dark{background:rgba(2,8,23,.36);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(10px)}.btn-login{background:rgba(2,8,23,.18);border:1px solid rgba(34,211,238,.5);color:#e0faff}.btn-mini{border:1px solid #cfe1fb;background:#fff;color:#1d5dcc;border-radius:12px;padding:9px 13px;font-size:13px}.btn.full{width:100%}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--blue);font-weight:900;font-size:12px;margin:0 0 9px}.chip-dark{display:inline-flex;color:#dbf7ff;border:1px solid rgba(255,255,255,.32);background:rgba(2,8,23,.35);padding:7px 12px;border-radius:999px}.alert{max-width:1180px;margin:14px auto 0;padding:12px 16px;border-radius:16px;border:1px solid var(--line);background:#fff;box-shadow:0 8px 24px rgba(10,23,55,.06)}.alert-success{border-color:#bbf7d0;background:#f0fdf4}.alert-danger{border-color:#fecaca;background:#fef2f2}.alert-warning{border-color:#fed7aa;background:#fff7ed}.alert.fade{opacity:.5}
/* Public portal */
.public-body{background:#fff;color:var(--text)}.brand-mark{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,#0ea5e9,#6d28d9 70%,#ff9f1c);color:#fff;font-weight:950;display:grid;place-items:center;box-shadow:0 0 0 1px rgba(255,255,255,.25),0 12px 28px rgba(29,127,255,.25)}.brand-mark.small{width:38px;height:38px;border-radius:13px}.public-nav{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 5vw;position:sticky;top:0;z-index:50;background:rgba(5,13,30,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(34,211,238,.22);box-shadow:0 12px 38px rgba(2,8,23,.18)}.public-brand,.brand{display:flex;align-items:center;gap:12px}.public-brand{color:#fff}.public-brand strong,.brand strong{display:block;line-height:1.05}.public-brand small,.brand small{display:block;color:#9fb3d4;font-size:12px}.public-nav nav{display:flex;align-items:center;gap:18px}.public-nav nav a{color:#e8f2ff;font-weight:700;font-size:14px}.public-nav nav a:hover{color:#7dd3fc}.hero-pro{position:relative;min-height:650px;padding:90px 5vw 70px;display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);gap:24px;align-items:center;background:#08142b;overflow:hidden}.hero-pro:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,10,27,.97) 0%,rgba(6,17,39,.86) 41%,rgba(6,17,39,.42) 66%,rgba(6,17,39,.05) 100%),url('../img/generasi-digital-hero.webp') center/cover no-repeat}.hero-pro:after{content:"";position:absolute;inset:auto -10% -28% -10%;height:54%;background:radial-gradient(circle at 12% 20%,rgba(34,211,238,.32),transparent 35%),radial-gradient(circle at 78% 8%,rgba(255,107,0,.28),transparent 30%),linear-gradient(90deg,transparent,rgba(34,211,238,.16),transparent);filter:blur(2px);pointer-events:none}.hero-copy{position:relative;z-index:2;max-width:720px}.hero-copy h1{font-size:clamp(38px,5vw,72px);line-height:.98;margin:0 0 20px;color:#fff;letter-spacing:-.045em}.hero-copy h1::first-line{color:#fff}.hero-copy p{font-size:18px;line-height:1.75;color:#d7e6ff;max-width:650px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:30px 0 22px}.hero-visual{position:relative;z-index:2;min-height:420px}.notice-line{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.notice-line.dark{background:rgba(2,8,23,.36);border-color:rgba(125,211,252,.35);color:#dff9ff;backdrop-filter:blur(12px)}.notice-line.dark span{color:#9adfff}.notice-line.dark strong{color:#fff}.public-stats-wrap{position:relative;z-index:5;margin-top:-48px;padding:0 5vw}.public-stats{max-width:1180px;margin:auto;background:rgba(255,255,255,.92);border:1px solid rgba(185,217,255,.75);box-shadow:0 28px 70px rgba(10,35,83,.18);border-radius:26px;display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;backdrop-filter:blur(16px)}.public-stats div{display:flex;align-items:center;gap:18px;padding:26px 30px;border-right:1px solid #e5eefb}.public-stats div:last-child{border-right:0}.public-stats strong{font-size:34px;color:#08142b;line-height:1}.public-stats small{font-weight:700;line-height:1.35}.stat-icon{width:58px;height:58px;border-radius:22px;display:grid;place-items:center;font-size:26px}.stat-icon.purple{background:#efe7ff}.stat-icon.blue{background:#e0f2fe}.stat-icon.orange{background:#fff1dc}.stat-icon.green{background:#dcfce7}.public-section{padding:74px 5vw}.public-section.compact-top{padding-top:62px}.public-section.alt{background:linear-gradient(180deg,#f5f9ff,#eef5ff)}.section-title,.section-head{max-width:1180px;margin:0 auto 28px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.section-head h2,.section-title h2{font-size:clamp(30px,3vw,44px);letter-spacing:-.04em;margin:0;color:#102039}.category-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.category-card,.public-card,.doc-card,.announcement-grid article,.whatsapp-grid article,.card{background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:25px}.category-card{position:relative;overflow:hidden;min-height:330px;transition:.18s transform,.18s box-shadow}.category-card:hover{transform:translateY(-4px);box-shadow:0 28px 70px rgba(10,35,83,.16)}.category-card:before{content:"";position:absolute;right:-60px;top:-50px;width:190px;height:190px;border-radius:50%;opacity:.18}.cat-esport{border-color:#c4b5fd}.cat-esport:before{background:#7c3aed}.cat-typing{border-color:#bae6fd}.cat-typing:before{background:#0ea5e9}.cat-scratch{border-color:#fed7aa}.cat-scratch:before{background:#ff6b00}.category-top{display:flex;align-items:center;gap:14px;position:relative}.category-icon{font-size:42px;width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#f2f7ff}.category-card h3{font-size:20px;margin:0;line-height:1.25}.category-card p{color:#506077;line-height:1.6}.quota-line{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:13px}.quota-line strong{color:#102039}.progress{height:9px;background:#e4ebf6;border-radius:999px;overflow:hidden;margin:10px 0 13px}.progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--violet))}.cat-scratch .progress span{background:linear-gradient(90deg,#ff8a00,#ffbd37)}.cat-typing .progress span{background:linear-gradient(90deg,#06b6d4,#2563eb)}.rules{padding-left:18px;color:#506077;line-height:1.85;font-size:14px}.rules.big{font-size:17px}.timeline-section{overflow:hidden}.timeline-pro{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;position:relative}.timeline-pro div{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:8px;min-height:168px;box-shadow:0 12px 32px rgba(15,23,42,.06)}.timeline-dot{width:44px;height:44px;border-radius:16px;background:#eef5ff;display:grid;place-items:center}.timeline time{font-weight:900;color:var(--blue);display:grid;gap:2px}.timeline time small{font-weight:800;color:#5d6b83}.timeline strong{color:#102039}.timeline div>span:last-child{color:#64748b;line-height:1.4}.doc-grid,.announcement-grid,.whatsapp-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.doc-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;color:var(--text);padding:19px 20px}.doc-card .doc-icon{width:46px;height:46px;border-radius:16px;background:#eaf3ff;display:grid;place-items:center;font-size:24px}.doc-card strong,.doc-card small{display:block}.doc-card small{margin-top:3px;color:var(--muted)}.doc-card em{font-style:normal;font-size:26px;color:var(--blue)}.video-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:24px;align-items:start}.video-player-card,.video-item{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.video-player-card{padding:18px}.video-frame{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#061226}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-player-card h3{margin:16px 0 8px}.video-playlist{display:grid;gap:12px}.video-item{display:grid;grid-template-columns:132px 1fr;gap:14px;padding:10px;color:var(--text);align-items:center}.video-item img{width:132px;height:74px;object-fit:cover;border-radius:14px;background:#e5e7eb}.video-item strong,.video-item small{display:block}.video-item small{margin-top:5px;color:var(--muted)}.playlist-thumb{width:132px;height:74px;border-radius:14px;background:linear-gradient(135deg,#0ea5e9,#7c3aed);color:#fff;display:grid;place-items:center;font-weight:900}.announcements-section{background:linear-gradient(180deg,#fff,#f8fbff)}.announcement-grid{grid-template-columns:repeat(3,1fr)}.announcement-grid article{position:relative;min-height:178px}.announcement-grid article small:first-child{display:inline-flex;background:#eaf3ff;color:#1d5dcc;padding:6px 10px;border-radius:999px;font-weight:900}.announcement-grid article strong{display:block;margin:14px 0 8px}.announcement-grid article p{color:#506077;line-height:1.6}.announcement-grid article span{position:absolute;right:20px;top:18px;font-size:26px;color:#1d7fff}.public-footer{background:#061226;color:#c7d7f3;position:relative;overflow:hidden}.public-footer:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 120%,rgba(34,211,238,.18),transparent 28%),radial-gradient(circle at 88% -10%,rgba(255,107,0,.16),transparent 25%)}.footer-inner{position:relative;max-width:1180px;margin:auto;padding:28px 5vw;display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-brand{display:flex;align-items:center;gap:12px;color:#fff}.footer-brand small{display:block;color:#98aed0}.copyright{font-size:13px}.detail-hero{padding:78px 5vw;background:linear-gradient(135deg,#061226,#112856 50%,#22115a);color:#fff}.detail-hero a{color:#9de8ff}.detail-hero h1{font-size:46px;letter-spacing:-.04em}.detail-hero p{color:#d8e8ff;line-height:1.7}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}.detail-grid div,.mini-stats div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:18px}.detail-grid span{color:#9db4d7}.detail-grid strong{font-size:30px;display:block;color:#fff}.form-public,.login-wrap{min-height:calc(100vh - 78px);padding:70px 5vw;display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:start;background:linear-gradient(180deg,#eef6ff,#fff)}.login-wrap{grid-template-columns:480px;justify-content:center}.login-card{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:30px}.public-card{box-shadow:var(--shadow)}
/* App dashboard */
.app-body{background:#071226;color:#e8f2ff}.app-shell{display:flex;min-height:100vh;background:radial-gradient(circle at 90% 0%,rgba(124,58,237,.18),transparent 28%),radial-gradient(circle at 60% 100%,rgba(34,211,238,.12),transparent 24%),#071226}.sidebar{width:280px;background:linear-gradient(180deg,#071225,#0b1730);color:#c6d5ef;padding:22px 18px;position:fixed;height:100vh;overflow:auto;border-right:1px solid rgba(125,211,252,.16);box-shadow:22px 0 55px rgba(2,8,23,.25)}.sidebar .brand{color:#fff;margin-bottom:24px;padding:6px 4px}.side-nav p{color:#7790b8;font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:900;margin:24px 0 8px}.side-nav a{display:flex;gap:12px;align-items:center;color:#c6d5ef;padding:12px 13px;border-radius:14px;position:relative}.side-nav a.active,.side-nav a:hover{background:linear-gradient(90deg,rgba(29,127,255,.22),rgba(34,211,238,.08));color:#fff;box-shadow:inset 0 0 0 1px rgba(34,211,238,.35),0 0 24px rgba(29,127,255,.18)}.side-icon{width:22px;display:inline-grid;place-items:center}.side-label{flex:1}.side-badge{font-style:normal;background:linear-gradient(135deg,#ff355e,#ff7a18);color:#fff;border-radius:999px;min-width:24px;height:24px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:950;box-shadow:0 8px 20px rgba(255,82,37,.35)}.main{margin-left:280px;width:calc(100% - 280px)}.topbar{height:78px;background:rgba(5,13,30,.72);border-bottom:1px solid rgba(125,211,252,.15);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5;backdrop-filter:blur(16px)}.topbar-left{display:flex;align-items:center;gap:14px}.topbar h1{margin:0;font-size:22px;color:#fff}.topbar small{color:#9fb3d4}.hamburger{display:none;background:transparent;border:0;color:#dff6ff;font-size:26px}.user-chip{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border:1px solid rgba(125,211,252,.18);border-radius:16px;padding:8px 12px;color:#fff}.user-chip>span{width:38px;height:38px;background:linear-gradient(135deg,var(--blue),var(--violet));color:#fff;border-radius:12px;display:grid;place-items:center;font-weight:950}.content{padding:28px;max-width:1440px;margin:auto}.welcome{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(18,69,170,.95),rgba(105,47,218,.92));color:#fff;border-radius:28px;padding:34px 36px;display:flex;justify-content:space-between;gap:18px;align-items:center;box-shadow:var(--glow);border:1px solid rgba(125,211,252,.35)}.dashboard-hero{min-height:285px;background-image:linear-gradient(90deg,rgba(7,18,38,.95) 0%,rgba(17,55,132,.88) 42%,rgba(50,24,117,.55) 70%,rgba(50,24,117,.1)),url('../img/generasi-digital-hero.webp');background-size:cover;background-position:center}.dashboard-hero h2{font-size:42px;letter-spacing:-.04em;margin:4px 0 12px}.dashboard-hero p{color:#dbeafe;font-size:17px;line-height:1.65;max-width:680px}.welcome .eyebrow{color:#e0f7ff}.welcome-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.dashboard-hero-art{display:none}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.stat-card{position:relative;min-height:124px;display:block;background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(125,211,252,.22);box-shadow:0 18px 42px rgba(2,8,23,.24);border-radius:20px;padding:20px;color:#e8f2ff;transition:.18s transform,.18s box-shadow,.18s border-color;overflow:hidden}.stat-card:hover{transform:translateY(-3px);border-color:rgba(34,211,238,.65);box-shadow:0 24px 58px rgba(29,127,255,.22)}.stat-card:before{content:"";position:absolute;left:18px;top:18px;width:54px;height:54px;border-radius:18px;opacity:.17}.stat-school:before{background:#22d3ee}.stat-teacher:before{background:#a855f7}.stat-registration:before{background:#1d7fff}.stat-replace:before{background:#ff9f1c}.stat-card span{display:block;color:#c7d7f3;margin-left:74px}.stat-card strong{font-size:34px;display:block;color:#fff;margin-left:74px}.stat-card small{display:block;margin-top:7px;margin-left:74px;color:#7dd3fc;font-weight:800}.stat-card em{position:absolute;right:18px;top:42px;width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.24);display:grid;place-items:center;font-style:normal;color:#e0f2fe}.stat-replace small{color:#ffcc78}.app-body .card{background:rgba(255,255,255,.06);border:1px solid rgba(125,211,252,.2);border-radius:24px;box-shadow:0 18px 42px rgba(2,8,23,.22);padding:24px;margin-bottom:22px;color:#e8f2ff}.app-body .data-panel{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));border-color:rgba(34,211,238,.28)}.app-body .data-panel h3{color:#fff;margin:0 0 18px}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.app-body .page-intro{margin-bottom:20px}.app-body .page-intro h2{font-size:32px;margin:0;color:#fff}.app-body .page-intro p:not(.eyebrow){color:#b6c8e7}.app-body .page-intro .eyebrow{color:#7dd3fc}.grid-2{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px}.narrow{max-width:680px}.form-stack{display:grid;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.span-2{grid-column:span 2}label{display:grid;gap:7px;font-weight:800}input,select,textarea{width:100%;border:1px solid rgba(148,163,184,.32);border-radius:13px;padding:11px 13px;font:inherit;background:#fff;color:#102039}textarea{min-height:96px}.app-body input,.app-body select,.app-body textarea{background:rgba(255,255,255,.94);border-color:rgba(203,213,225,.34)}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.password-wrap{display:flex}.password-wrap input{border-radius:13px 0 0 13px}.password-wrap button{border:1px solid #cbd5e1;background:#f8fafc;border-radius:0 13px 13px 0;padding:0 12px}.table-responsive{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 12px;border-bottom:1px solid rgba(148,163,184,.18);text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:#9fb3d4;letter-spacing:.06em}td{color:#e8f2ff}.public-body td{color:var(--text)}.badge{display:inline-flex;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:900}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#cffafe;color:#155e75}.badge-neutral{background:#eaf1fb;color:#475569}.filters,.status-strip{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.app-body .status-strip span{background:rgba(255,255,255,.08);border:1px solid rgba(125,211,252,.18);padding:10px 14px;border-radius:14px}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions .danger,.danger{color:#ff8a8a}.demo-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;padding:12px;margin-top:14px;color:#102039}.demo-box.warning{background:#fff7ed;border-color:#fb923c;color:#7c2d12}.empty{background:#fff;border:1px solid var(--line);border-radius:22px;padding:36px;text-align:center}.mt-1{margin-top:12px}.toolbar{display:flex;gap:.75rem;align-items:center;justify-content:flex-end;margin-bottom:1rem;flex-wrap:wrap}.avatar-img,.avatar-fallback{width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;object-fit:cover;border:1px solid rgba(255,255,255,.16);box-shadow:0 4px 14px rgba(2,8,23,.18)}.avatar-fallback{background:#eef2ff;color:#3730a3;font-weight:900}.app-body .photo-preview,.app-body .profile-photo{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px dashed rgba(148,163,184,.35);border-radius:16px;background:rgba(255,255,255,.06)}.app-body .profile-photo{justify-content:center}.app-body .profile-photo .avatar-img,.app-body .profile-photo .avatar-fallback{width:86px;height:86px;font-size:1.75rem}.form-stack small.muted{display:block;margin-top:.2rem;font-size:.78rem}.table-responsive td:first-child{white-space:nowrap}.video-admin-cell{display:flex;align-items:center;gap:10px}.video-admin-cell img{width:96px;height:54px;object-fit:cover;border-radius:10px}.video-admin-cell strong,.video-admin-cell small{display:block}.video-admin-cell small{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
@media(max-width:1120px){.hero-pro{grid-template-columns:1fr}.hero-visual{display:none}.public-stats{grid-template-columns:repeat(2,1fr)}.public-stats div:nth-child(2){border-right:0}.category-grid,.doc-grid,.announcement-grid,.whatsapp-grid,.video-layout{grid-template-columns:1fr}.timeline-pro{grid-template-columns:repeat(2,1fr)}.stat-grid,.grid-2{grid-template-columns:1fr 1fr}.public-nav{height:auto;min-height:70px;padding:12px 18px;align-items:flex-start;gap:10px;flex-wrap:wrap}.public-brand{min-width:220px}.public-nav nav{width:100%;display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.public-nav nav a:not(.btn){display:inline-flex;white-space:nowrap;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 12px}.public-nav nav .btn{white-space:nowrap;padding:8px 12px;border-radius:999px}.footer-inner{display:grid;text-align:center;justify-items:center}.sidebar{transform:translateX(-100%);transition:.2s;z-index:40}.sidebar-open .sidebar{transform:translateX(0)}.main{margin-left:0;width:100%}.hamburger{display:block}.topbar{gap:12px}.user-chip{display:none}.welcome{display:block}.content{padding:18px}}
@media(max-width:720px){body{font-size:15px}.hero-pro{padding:62px 20px 78px;min-height:auto}.hero-copy h1{font-size:36px}.hero-copy p{font-size:16px}.public-stats-wrap{margin-top:-44px;padding:0 18px}.public-stats{grid-template-columns:1fr 1fr;border-radius:22px}.public-stats div{padding:18px 16px;gap:12px}.public-stats strong{font-size:26px}.stat-icon{width:46px;height:46px;border-radius:16px;font-size:22px}.public-section{padding:54px 20px}.section-head{display:block}.category-card,.card,.public-card,.announcement-grid article{border-radius:20px;padding:18px}.timeline-pro{grid-template-columns:1fr}.doc-grid{grid-template-columns:1fr}.detail-grid,.form-row,.form-grid,.stat-grid,.grid-2{grid-template-columns:1fr}.span-2{grid-column:auto}.video-item{grid-template-columns:96px 1fr}.video-item img,.playlist-thumb{width:96px;height:54px}.form-public,.login-wrap{grid-template-columns:1fr;padding:44px 20px}.login-wrap{justify-content:stretch}.detail-hero h1{font-size:32px}.dashboard-hero{min-height:auto;padding:24px}.dashboard-hero h2{font-size:32px}.content{padding:14px}.topbar{height:auto;min-height:68px;padding:10px 16px}.topbar h1{font-size:18px}.table-responsive{margin:0 -8px;padding:0 8px}.table-responsive table{min-width:720px}.sidebar{width:84vw;max-width:320px}.public-footer{padding:0}.footer-inner{padding:26px 18px}.brand-mark{width:40px;height:40px}.public-brand small{display:none}.public-nav nav{mask-image:linear-gradient(90deg,#000 85%,transparent)}}

/* v2.9 - alert/notification readability fix */
.alert{
  position:relative!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  max-width:1180px!important;
  margin:16px auto 0!important;
  padding:15px 18px 15px 54px!important;
  border-radius:18px!important;
  font-weight:800!important;
  line-height:1.45!important;
  letter-spacing:.01em!important;
  opacity:1!important;
  transition:none!important;
}
.alert::before{
  position:absolute;
  left:17px;
  top:50%;
  transform:translateY(-50%);
  width:26px;
  height:26px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:15px;
  font-weight:950;
  box-shadow:0 8px 18px rgba(2,8,23,.12);
}
.alert-success{background:linear-gradient(135deg,#ecfdf5,#dcfce7)!important;border-color:#86efac!important;color:#064e3b!important;box-shadow:0 12px 30px rgba(22,163,74,.16)!important}
.alert-success::before{content:'✓';background:#16a34a;color:#fff}
.alert-danger{background:linear-gradient(135deg,#fff1f2,#fee2e2)!important;border-color:#fca5a5!important;color:#7f1d1d!important;box-shadow:0 12px 30px rgba(239,68,68,.15)!important}
.alert-danger::before{content:'!';background:#ef4444;color:#fff}
.alert-warning{background:linear-gradient(135deg,#fff7ed,#ffedd5)!important;border-color:#fdba74!important;color:#7c2d12!important;box-shadow:0 12px 30px rgba(249,115,22,.15)!important}
.alert-warning::before{content:'!';background:#f97316;color:#fff}
.alert-info{background:linear-gradient(135deg,#eff6ff,#dbeafe)!important;border-color:#93c5fd!important;color:#1e3a8a!important;box-shadow:0 12px 30px rgba(37,99,235,.15)!important}
.alert-info::before{content:'i';background:#2563eb;color:#fff}
.alert.fade{opacity:1!important}
.app-body .alert{
  max-width:none!important;
  margin:0 0 20px!important;
  border-width:1px!important;
  backdrop-filter:blur(14px);
}
.app-body .alert-success{background:linear-gradient(135deg,rgba(22,163,74,.28),rgba(20,184,166,.12))!important;border-color:rgba(74,222,128,.75)!important;color:#dcfce7!important;box-shadow:0 0 0 1px rgba(34,197,94,.08),0 18px 42px rgba(22,163,74,.18)!important}
.app-body .alert-danger{background:linear-gradient(135deg,rgba(239,68,68,.28),rgba(127,29,29,.14))!important;border-color:rgba(248,113,113,.75)!important;color:#fee2e2!important;box-shadow:0 0 0 1px rgba(239,68,68,.08),0 18px 42px rgba(239,68,68,.18)!important}
.app-body .alert-warning{background:linear-gradient(135deg,rgba(249,115,22,.30),rgba(251,191,36,.12))!important;border-color:rgba(251,146,60,.85)!important;color:#ffedd5!important;box-shadow:0 0 0 1px rgba(249,115,22,.08),0 18px 42px rgba(249,115,22,.18)!important}
.app-body .alert-info{background:linear-gradient(135deg,rgba(37,99,235,.28),rgba(14,165,233,.12))!important;border-color:rgba(96,165,250,.85)!important;color:#dbeafe!important;box-shadow:0 0 0 1px rgba(37,99,235,.08),0 18px 42px rgba(37,99,235,.18)!important}
@media(max-width:720px){.alert{margin:12px 18px 0!important;padding:13px 14px 13px 48px!important;border-radius:16px!important}.app-body .alert{margin:0 0 14px!important}.alert::before{left:14px;width:24px;height:24px}}

/* v3.0 - Responsive polish + smaller typography
   Fokus: teks lebih ringkas, layar HP lebih nyaman, tabel/form/card tidak keluar layar. */
:root{
  --font-xs:11px;
  --font-sm:12px;
  --font-md:14px;
  --font-lg:16px;
  --tap:42px;
}
html{font-size:14px;-webkit-text-size-adjust:100%;}
body{font-size:14px;line-height:1.55;overflow-x:hidden;}
p{line-height:1.6;}
small,.muted{font-size:12px;line-height:1.45;}
.btn{font-size:13px;padding:10px 14px;border-radius:12px;min-height:var(--tap)}
.btn-mini{font-size:12px;padding:8px 11px;min-height:36px}.badge{font-size:11px;padding:5px 9px}.eyebrow{font-size:10px;letter-spacing:.12em}.chip-dark{font-size:12px;padding:6px 10px}.notice-line{font-size:13px;padding:10px 13px;border-radius:15px}.brand-mark{width:40px;height:40px;border-radius:14px;font-size:13px}.brand-mark.small{width:34px;height:34px;border-radius:12px}
/* Public page type scale */
.public-nav{height:68px;padding:0 clamp(16px,4vw,58px)}.public-brand strong,.brand strong{font-size:15px}.public-brand small,.brand small{font-size:11px}.public-nav nav{gap:14px}.public-nav nav a{font-size:12px}.hero-pro{min-height:560px;padding:70px clamp(18px,5vw,64px) 64px}.hero-copy h1{font-size:clamp(32px,4.2vw,58px);line-height:1.03;margin-bottom:16px}.hero-copy p{font-size:15px;line-height:1.65;max-width:560px}.hero-actions{gap:11px;margin:24px 0 18px}.public-stats strong{font-size:28px}.public-stats small{font-size:12px}.stat-icon{width:50px;height:50px;border-radius:18px;font-size:22px}.public-stats div{padding:22px 24px;gap:14px}.public-section{padding:60px clamp(18px,5vw,64px)}.public-section.compact-top{padding-top:54px}.section-head h2,.section-title h2{font-size:clamp(24px,2.4vw,34px)}.section-head,.section-title{margin-bottom:22px}.category-grid{gap:18px}.category-card,.public-card,.doc-card,.announcement-grid article,.whatsapp-grid article,.card{padding:20px;border-radius:22px}.category-card{min-height:292px}.category-icon{font-size:34px;width:50px;height:50px;border-radius:16px}.category-card h3{font-size:17px}.category-card p,.announcement-grid article p,.video-player-card p{font-size:13px;line-height:1.55}.quota-line,.rules{font-size:12px}.rules{line-height:1.7}.timeline-pro{gap:14px}.timeline-pro div{padding:16px;min-height:148px;border-radius:18px}.timeline-dot{width:38px;height:38px;border-radius:14px}.timeline time,.timeline strong{font-size:13px}.timeline div>span:last-child{font-size:12px}.doc-grid,.announcement-grid,.whatsapp-grid{gap:14px}.doc-card{padding:15px 16px}.doc-card .doc-icon{width:40px;height:40px;border-radius:14px;font-size:20px}.doc-card strong,.announcement-grid article strong{font-size:13px}.video-layout{gap:18px}.video-player-card{padding:14px;border-radius:20px}.video-player-card h3{font-size:15px;margin:12px 0 6px}.video-item{grid-template-columns:112px 1fr;padding:8px;border-radius:18px}.video-item img{width:112px;height:63px;border-radius:12px}.video-item strong{font-size:12px;line-height:1.35}.footer-inner{font-size:12px}
/* Dashboard type scale */
.sidebar{width:260px}.main{margin-left:260px}.topbar{height:68px}.topbar h1{font-size:20px}.topbar small,.user-chip small{font-size:11px}.user-chip{padding:8px 12px;border-radius:16px}.side-nav p{font-size:10px;letter-spacing:.1em}.side-nav a{font-size:13px;min-height:40px;padding:10px 14px}.side-icon{width:22px}.side-badge{min-width:22px;height:22px;font-size:11px}.content{padding:26px}.dashboard-hero{min-height:240px;padding:30px;border-radius:24px}.dashboard-hero h2{font-size:34px}.dashboard-hero p{font-size:14px}.stat-grid{gap:16px}.stat-card{min-height:118px;padding:18px}.stat-card h3{font-size:13px}.stat-card strong{font-size:32px}.stat-card small{font-size:12px}.stat-card .stat-ico{width:48px;height:48px;font-size:24px}.app-body .card{padding:20px;border-radius:20px;margin-bottom:18px}.app-body .page-intro h2{font-size:26px}.app-body .page-intro p:not(.eyebrow){font-size:13px}.panel-head h3,.app-body .data-panel h3{font-size:18px}label{font-size:13px;gap:6px}input,select,textarea{font-size:14px;padding:10px 12px;border-radius:12px;min-height:40px}textarea{min-height:88px}.form-row,.form-grid,.grid-2{gap:12px}.form-stack{gap:12px}th,td{padding:10px 10px;font-size:13px}th{font-size:10.5px;letter-spacing:.04em}.actions{gap:7px}.actions .btn,.table-responsive .btn{min-height:34px;padding:7px 10px;font-size:12px;border-radius:10px}.avatar-img,.avatar-fallback{width:36px;height:36px}.app-body .profile-photo .avatar-img,.app-body .profile-photo .avatar-fallback{width:76px;height:76px}.demo-box,.empty{font-size:13px}.toolbar{gap:8px}.video-admin-cell img{width:82px;height:46px}.video-admin-cell small{max-width:230px}
/* Prevent oversized media and long text from breaking mobile */
img,video,iframe{height:auto}.card,.public-card,.category-card,.doc-card,.video-player-card,.video-item,.stat-card,.announcement-grid article{max-width:100%}.table-responsive{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px}.table-responsive table{min-width:680px}.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-thumb{background:rgba(148,163,184,.45);border-radius:999px}td,th{overflow-wrap:anywhere}.actions{max-width:100%}.actions form{display:inline-flex;max-width:100%}
/* Sidebar mobile overlay */
@media(max-width:1120px){
  body.sidebar-open::after{content:"";position:fixed;inset:0;background:rgba(2,8,23,.58);backdrop-filter:blur(2px);z-index:35}.sidebar{z-index:50}.main{margin-left:0}.content{padding:18px}.dashboard-hero{background-position:center right}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.public-nav{align-items:center}.public-brand strong{font-size:14px}.public-nav nav a{font-size:12px}
}
@media(max-width:820px){
  html{font-size:13.5px}body{font-size:13.5px}.public-nav{min-height:64px;padding:10px 14px}.public-brand{min-width:auto;max-width:100%}.public-brand .brand-mark{flex:0 0 auto}.public-nav nav{gap:7px}.public-nav nav a:not(.btn),.public-nav nav .btn{font-size:11.5px;padding:7px 10px}.hero-pro{padding:48px 16px 70px}.hero-copy h1{font-size:31px;letter-spacing:-.035em}.hero-copy p{font-size:13.5px}.hero-actions{display:grid;grid-template-columns:1fr;max-width:320px}.notice-line.dark{display:grid;align-items:start;gap:5px;max-width:330px}.public-stats-wrap{padding:0 14px}.public-stats{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:20px}.public-stats div{padding:15px 13px}.public-stats strong{font-size:23px}.stat-icon{width:42px;height:42px;border-radius:14px;font-size:19px}.public-section{padding:44px 16px}.section-head{align-items:flex-start}.section-head h2,.section-title h2{font-size:25px}.category-grid,.doc-grid,.announcement-grid,.whatsapp-grid,.video-layout,.timeline-pro{grid-template-columns:1fr}.category-card{min-height:0}.video-layout{gap:14px}.video-item{grid-template-columns:92px 1fr}.video-item img,.playlist-thumb{width:92px;height:52px}.form-public,.login-wrap{padding:36px 16px}.login-card,.form-public .card{border-radius:22px}.detail-hero{padding:40px 16px}.detail-hero h1{font-size:28px}.detail-grid{grid-template-columns:1fr}.topbar{position:sticky;top:0;z-index:30;min-height:62px;padding:9px 12px}.topbar h1{font-size:17px}.topbar-left{gap:10px}.hamburger{width:38px;height:38px;border-radius:12px}.content{padding:12px}.dashboard-hero{padding:20px;min-height:auto;background-position:center right}.dashboard-hero h2{font-size:27px}.dashboard-hero p{font-size:13px;max-width:100%}.dash-actions{display:grid;grid-template-columns:1fr;max-width:260px}.stat-grid{grid-template-columns:1fr;gap:12px}.stat-card{min-height:98px;padding:15px}.stat-card strong{font-size:28px}.app-body .card{padding:15px;border-radius:17px}.app-body .page-intro h2{font-size:22px}.panel-head{display:grid;gap:10px}.form-row,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.filters,.toolbar{justify-content:flex-start}.filters label,.toolbar label{width:100%}.actions .btn{flex:1 1 auto}.table-responsive{margin:0 -4px;padding:0 4px}.table-responsive table{min-width:640px}th,td{padding:9px 8px;font-size:12.5px}.sidebar{width:86vw;max-width:310px}.side-nav{padding-bottom:32px}.side-nav a{font-size:12.5px;min-height:38px}.app-body input,.app-body select,.app-body textarea{font-size:16px;min-height:42px}.btn{font-size:12.5px;min-height:40px}.alert{font-size:12.5px!important}.app-body .alert{font-size:12.5px!important}
}
@media(max-width:480px){
  .public-nav{gap:8px}.public-brand strong{font-size:12.5px}.brand-mark{width:36px;height:36px;border-radius:12px}.public-nav nav{padding-bottom:2px}.hero-copy h1{font-size:28px}.hero-copy p{font-size:13px}.public-stats{grid-template-columns:1fr 1fr}.public-stats div{gap:10px}.public-stats div:nth-child(odd){border-right:1px solid #e5eefb}.public-stats div:nth-child(even){border-right:0}.public-stats small{font-size:11px}.stat-icon{width:38px;height:38px}.category-card h3{font-size:16px}.category-top{gap:10px}.category-icon{width:44px;height:44px;font-size:30px}.timeline-pro div,.doc-card,.announcement-grid article{padding:14px}.doc-card{grid-template-columns:auto 1fr auto}.video-item{grid-template-columns:1fr}.video-item img,.playlist-thumb{width:100%;height:auto;aspect-ratio:16/9}.footer-inner{font-size:11px}.topbar small{display:none}.content{padding:10px}.dashboard-hero h2{font-size:24px}.dashboard-hero p{font-size:12.5px}.app-body .page-intro h2{font-size:20px}.app-body .card{padding:13px}.stat-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.stat-card strong{font-size:25px}.table-responsive table{min-width:600px}.actions{display:grid;grid-template-columns:1fr}.actions form,.actions .btn{width:100%}.user-chip{display:none!important}.sidebar{width:90vw}.side-nav p{margin-top:14px}.side-nav a{padding:9px 12px}.alert{margin:10px 12px 0!important}.app-body .alert{margin:0 0 12px!important}
}
@media(max-width:380px){.hero-copy h1{font-size:25px}.section-head h2,.section-title h2{font-size:22px}.public-stats strong{font-size:21px}.public-stats div{padding:12px 10px}.btn{width:100%}.notice-line{width:100%}.table-responsive table{min-width:560px}}

/* v3.1 - Logo portal */
.brand-logo-box{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,rgba(14,165,233,.18),rgba(109,40,217,.18) 70%,rgba(255,159,28,.16));border:1px solid rgba(125,211,252,.28);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 12px 28px rgba(29,127,255,.22);overflow:hidden}.brand-logo-box.small{width:38px;height:38px;border-radius:13px}.brand-logo-img{width:100%;height:100%;object-fit:contain;display:block;padding:3px}.public-brand .brand-logo-box,.brand .brand-logo-box,.footer-brand .brand-logo-box{background:rgba(2,8,23,.28)}.sidebar .brand-logo-box{width:48px;height:48px;border-radius:16px}.logo-setting-preview{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid rgba(125,211,252,.22);background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(124,58,237,.12));border-radius:18px;margin:14px 0 18px}.logo-preview-frame{width:82px;height:82px;border-radius:24px;display:grid;place-items:center;background:rgba(2,8,23,.35);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 36px rgba(2,8,23,.15);overflow:hidden;flex:0 0 auto}.logo-preview-frame img{width:100%;height:100%;object-fit:contain;padding:8px}.logo-setting-preview strong,.logo-setting-preview small{display:block}.logo-setting-preview small{color:var(--muted);margin-top:4px}.app-body .logo-setting-preview small{color:#a9b9d6}.compact-form{margin-top:10px}.compact-form .btn{width:max-content}.app-body .brand-logo-box{background:rgba(15,23,42,.55);border-color:rgba(34,211,238,.24)}
@media(max-width:640px){.brand-logo-box{width:38px;height:38px;border-radius:13px}.sidebar .brand-logo-box{width:42px;height:42px}.logo-setting-preview{align-items:flex-start}.logo-preview-frame{width:68px;height:68px;border-radius:20px}.compact-form .btn{width:100%}}


/* v3.2 - Badge & status contrast polish */
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:26px;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  font-weight:950;
  letter-spacing:.01em;
  white-space:nowrap;
  border:1px solid transparent;
  box-shadow:0 8px 20px rgba(2,8,23,.10);
}
.badge-success{
  background:linear-gradient(135deg,#16a34a,#4ade80)!important;
  color:#052e16!important;
  border-color:rgba(187,247,208,.85)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.28);
}
.badge-warning{
  background:linear-gradient(135deg,#f59e0b,#fde047)!important;
  color:#422006!important;
  border-color:rgba(254,240,138,.9)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.24);
}
.badge-danger{
  background:linear-gradient(135deg,#dc2626,#fb7185)!important;
  color:#fff!important;
  border-color:rgba(254,202,202,.65)!important;
  text-shadow:0 1px 1px rgba(69,10,10,.45);
}
.badge-info{
  background:linear-gradient(135deg,#0891b2,#67e8f9)!important;
  color:#083344!important;
  border-color:rgba(165,243,252,.8)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.22);
}
.badge-neutral{
  background:linear-gradient(135deg,#475569,#cbd5e1)!important;
  color:#071226!important;
  border-color:rgba(226,232,240,.75)!important;
}
.notice-line .badge,
.notice-line.dark .badge{
  margin-left:2px;
  box-shadow:0 0 0 1px rgba(255,255,255,.16),0 10px 26px rgba(0,0,0,.22);
}
.notice-line.dark .badge-success{color:#052e16!important;background:linear-gradient(135deg,#22c55e,#86efac)!important}
.notice-line.dark .badge-danger{color:#fff!important;background:linear-gradient(135deg,#dc2626,#f43f5e)!important}
.notice-line.dark .badge-warning{color:#422006!important;background:linear-gradient(135deg,#f59e0b,#fde047)!important}
.notice-line.dark .badge-info{color:#083344!important;background:linear-gradient(135deg,#06b6d4,#67e8f9)!important}
.app-body .badge{
  box-shadow:0 0 0 1px rgba(255,255,255,.10),0 10px 24px rgba(2,8,23,.22);
}
.app-body .badge-success{background:linear-gradient(135deg,#22c55e,#86efac)!important;color:#052e16!important}
.app-body .badge-warning{background:linear-gradient(135deg,#f97316,#fde047)!important;color:#431407!important}
.app-body .badge-danger{background:linear-gradient(135deg,#ef4444,#f43f5e)!important;color:#fff!important}
.app-body .badge-info{background:linear-gradient(135deg,#06b6d4,#67e8f9)!important;color:#083344!important}
.app-body .badge-neutral{background:linear-gradient(135deg,#94a3b8,#e2e8f0)!important;color:#0f172a!important}
.status-strip .badge{vertical-align:middle}
.alert{color:#0f172a;font-weight:700}.alert-success{color:#14532d}.alert-danger{color:#7f1d1d}.alert-warning{color:#78350f}.alert-info{color:#164e63}
@media (max-width:576px){.badge{font-size:11px;min-height:24px;padding:5px 9px}.notice-line{align-items:flex-start}.notice-line .badge{margin-top:2px}}

/* v3.3 CRUD action polish */
.inline-form{display:inline-flex;margin:0}.link-danger{border:0;background:transparent;color:#ff8a8a;font:inherit;font-weight:800;cursor:pointer;padding:0;text-decoration:none}.link-danger:hover{color:#fecaca;text-decoration:underline}.app-body .link-danger{color:#ffb4b4}.public-body .link-danger{color:#dc2626}.actions .inline-form{align-items:center}.actions a,.actions button{white-space:nowrap}.btn-sm{min-height:32px;padding:6px 10px;font-size:12px;border-radius:10px}
@media(max-width:480px){.actions .inline-form,.actions .inline-form button{width:100%;justify-content:center}.btn-sm{width:100%;}}

/* v3.5 - Rekap & Analitik */
.toolbar-actions{display:flex;justify-content:flex-end;gap:.55rem;margin:-.35rem 0 1rem;flex-wrap:wrap}
.analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.analytics-panels{margin-top:1rem}
.quota-card{position:relative;overflow:hidden}
.quota-card:before{content:"";position:absolute;inset:auto -20% -45% -20%;height:110px;background:radial-gradient(circle,rgba(34,211,238,.18),transparent 60%);pointer-events:none}
.quota-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.7rem}
.quota-head h3{margin:.12rem 0 0;font-size:1rem;line-height:1.25}
.quota-head small{font-size:.68rem;letter-spacing:.08em;color:var(--muted,#94a3b8);font-weight:700}
.quota-number{display:flex;align-items:baseline;gap:.35rem;margin:.4rem 0 .55rem}
.quota-number strong{font-size:2rem;line-height:1;color:#fff}
.quota-number span{font-size:.82rem;color:var(--muted,#94a3b8)}
.mini-progress{height:9px;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.mini-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22d3ee,#6366f1,#f59e0b);box-shadow:0 0 18px rgba(34,211,238,.28)}
.quota-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted,#94a3b8);font-size:.78rem;margin-top:.45rem}
.pie-wrap{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.pie-chart{width:150px;height:150px;border-radius:50%;position:relative;box-shadow:inset 0 0 0 16px rgba(15,23,42,.55),0 14px 34px rgba(0,0,0,.25)}
.pie-chart:after{content:"";position:absolute;inset:34px;border-radius:50%;background:rgba(15,23,42,.96);border:1px solid rgba(255,255,255,.08)}
.pie-legend{display:grid;gap:.45rem;font-size:.82rem;color:var(--muted,#cbd5e1)}
.pie-legend span{display:flex;align-items:center;gap:.45rem}
.pie-legend i{width:10px;height:10px;border-radius:99px;display:inline-block;box-shadow:0 0 9px currentColor}
@media (max-width: 980px){.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pie-chart{width:130px;height:130px}.pie-chart:after{inset:30px}}
@media (max-width: 620px){.analytics-grid{grid-template-columns:1fr}.toolbar-actions{justify-content:stretch}.toolbar-actions .btn{width:100%;justify-content:center}.quota-number strong{font-size:1.65rem}.pie-wrap{align-items:flex-start}.pie-chart{width:120px;height:120px}.pie-chart:after{inset:28px}}

/* v3.7 - Rekap analitik per kategori */
.analytics-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0 1rem}
.analytics-summary-card{display:block;color:inherit;text-decoration:none;transition:.18s transform,.18s border-color,.18s box-shadow}
.analytics-summary-card:hover{transform:translateY(-2px);border-color:rgba(56,189,248,.55);box-shadow:0 18px 46px rgba(14,165,233,.16)}
.analytics-note-card{margin:1rem 0 1.25rem}
.analytics-mini-stats,.category-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:.7rem 0 1rem}
.category-mini-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.analytics-mini-stats div,.category-mini-stats div{background:rgba(15,23,42,.36);border:1px solid rgba(125,211,252,.16);border-radius:16px;padding:.85rem}
.analytics-mini-stats span,.category-mini-stats span{display:block;color:var(--muted,#94a3b8);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.analytics-mini-stats strong,.category-mini-stats strong{display:block;font-size:1.65rem;color:#fff;line-height:1.15;margin:.16rem 0}
.category-mini-stats small{color:var(--muted,#94a3b8);font-weight:700}
.category-analytics-list{display:grid;gap:1.25rem;margin-top:1.25rem}
.category-analytics-section{scroll-margin-top:88px;border-color:rgba(56,189,248,.22)}
.category-analytics-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.category-analytics-head small{display:block;color:#67e8f9;font-size:.72rem;font-weight:900;letter-spacing:.1em;margin-bottom:.3rem}
.category-analytics-head h2{margin:0 0 .35rem;font-size:1.35rem;line-height:1.2;color:#fff}
.category-analytics-top{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,.58fr);gap:1rem;margin-bottom:1rem}
.quota-donut-card{display:flex;align-items:center;gap:1rem;background:rgba(15,23,42,.34);border:1px solid rgba(125,211,252,.14);border-radius:18px;padding:1rem}
.quota-donut{width:148px;height:148px;border-radius:50%;position:relative;display:grid;place-items:center;box-shadow:inset 0 0 0 15px rgba(15,23,42,.62),0 14px 34px rgba(0,0,0,.25)}
.quota-donut:after{content:"";position:absolute;inset:34px;border-radius:50%;background:rgba(15,23,42,.96);border:1px solid rgba(255,255,255,.08)}
.quota-donut span{position:relative;z-index:1;color:#fff;font-weight:900;font-size:1.05rem}
.analytics-table-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}
.analytics-table-card{padding:1rem;border-radius:20px;background:rgba(15,23,42,.24)}
.analytics-table-card h3{font-size:1rem;margin:.15rem 0 .8rem;color:#fff}
.category-analytics-section table th,.category-analytics-section table td{font-size:.82rem}
@media (max-width: 1100px){.analytics-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-analytics-top{grid-template-columns:1fr}.category-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 780px){.analytics-summary-grid,.analytics-table-grid{grid-template-columns:1fr}.category-analytics-head{display:grid}.quota-donut-card{align-items:flex-start}.quota-donut{width:124px;height:124px}.quota-donut:after{inset:29px}.analytics-mini-stats{grid-template-columns:1fr}.category-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 520px){.quota-donut-card{display:grid;justify-items:start}.category-mini-stats{grid-template-columns:1fr}.category-analytics-head h2{font-size:1.1rem}.analytics-table-card{padding:.8rem}.category-analytics-section table th,.category-analytics-section table td{font-size:.76rem}.quota-donut{width:116px;height:116px}.quota-donut:after{inset:27px}}

/* v3.9 - Collapsible Sidebar */
.app-body{--sidebar-wide:260px;--sidebar-compact:78px}.sidebar{transition:width .22s ease,transform .22s ease,box-shadow .22s ease}.main{transition:margin-left .22s ease,width .22s ease}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 16px 12px}.sidebar-head .brand{min-width:0}.sidebar-close{display:none;width:38px;height:38px;border:1px solid rgba(125,211,252,.24);border-radius:13px;background:rgba(15,23,42,.62);color:#e0faff;font-size:24px;line-height:1;cursor:pointer}.hamburger{display:grid;place-items:center}.side-nav a{position:relative}.side-nav a::after{content:attr(title);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(-4px);background:#0f172a;color:#fff;border:1px solid rgba(125,211,252,.24);box-shadow:0 12px 28px rgba(2,8,23,.22);border-radius:10px;padding:7px 10px;white-space:nowrap;font-size:12px;font-weight:800;opacity:0;pointer-events:none;transition:.16s;z-index:70}.side-nav a::before{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:#0f172a;opacity:0;transition:.16s;z-index:71}
@media(min-width:1121px){body.sidebar-collapsed .sidebar{width:var(--sidebar-compact);overflow:visible}body.sidebar-collapsed .main{margin-left:var(--sidebar-compact)}body.sidebar-collapsed .sidebar-head{justify-content:center;padding-left:10px;padding-right:10px}body.sidebar-collapsed .sidebar .brand{justify-content:center;gap:0}body.sidebar-collapsed .sidebar .brand>div,body.sidebar-collapsed .side-label,body.sidebar-collapsed .side-nav p{display:none}body.sidebar-collapsed .side-nav{padding-left:10px;padding-right:10px}body.sidebar-collapsed .side-nav a{justify-content:center;padding:12px 8px;border-radius:16px}body.sidebar-collapsed .side-icon{width:auto;font-size:19px}body.sidebar-collapsed .side-badge{position:absolute;right:5px;top:5px;min-width:18px;height:18px;padding:0 5px;font-size:10px}body.sidebar-collapsed .sidebar .brand-logo-box{width:44px;height:44px}body.sidebar-collapsed .side-nav a:hover::after,body.sidebar-collapsed .side-nav a:focus-visible::after,body.sidebar-collapsed .side-nav a:hover::before,body.sidebar-collapsed .side-nav a:focus-visible::before{opacity:1;transform:translateY(-50%) translateX(0)}body.sidebar-collapsed .hamburger{background:linear-gradient(135deg,rgba(29,127,255,.18),rgba(124,58,237,.18));border-color:rgba(125,211,252,.42)}}
@media(max-width:1120px){.sidebar-head{padding:14px 14px 8px}.sidebar-close{display:grid;place-items:center}.sidebar{width:86vw;max-width:320px}.main{margin-left:0!important}.side-nav a::after,.side-nav a::before{display:none}body.sidebar-collapsed .sidebar{transform:translateX(-100%)}}
@media(max-width:480px){.sidebar-head{padding:12px 12px 6px}.sidebar-close{width:36px;height:36px}.sidebar{width:90vw}.hamburger{flex:0 0 auto}}

/* v3.10 - Dashboard stat card icon polish */
.stat-card{display:block;isolation:isolate}.stat-card:before{display:none!important}.stat-card .stat-ico{position:absolute;left:18px;top:18px;width:58px;height:58px;border-radius:20px;display:grid;place-items:center;font-size:28px;font-style:normal;line-height:1;z-index:1;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 34px rgba(2,8,23,.24),0 0 28px rgba(34,211,238,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.stat-school .stat-ico{background:linear-gradient(135deg,rgba(34,211,238,.26),rgba(29,127,255,.16));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 34px rgba(2,8,23,.24),0 0 26px rgba(34,211,238,.26)}.stat-teacher .stat-ico{background:linear-gradient(135deg,rgba(168,85,247,.30),rgba(88,28,135,.18));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 34px rgba(2,8,23,.24),0 0 26px rgba(168,85,247,.26)}.stat-registration .stat-ico{background:linear-gradient(135deg,rgba(29,127,255,.30),rgba(59,130,246,.14));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 34px rgba(2,8,23,.24),0 0 26px rgba(29,127,255,.26)}.stat-replace .stat-ico{background:linear-gradient(135deg,rgba(255,159,28,.30),rgba(255,122,24,.16));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 34px rgba(2,8,23,.24),0 0 28px rgba(255,159,28,.28)}.stat-card:hover .stat-ico{transform:scale(1.04);filter:saturate(1.15)}.stat-card span,.stat-card strong,.stat-card small{position:relative;z-index:2}.stat-card span{margin-left:82px}.stat-card strong{margin-left:82px}.stat-card small{margin-left:82px}.stat-card em{z-index:2}@media (max-width:640px){.stat-card{display:grid!important;grid-template-columns:54px 1fr 34px;grid-template-areas:"ico label arrow" "ico number arrow" "ico hint arrow";column-gap:12px;align-items:center}.stat-card .stat-ico{position:static;grid-area:ico;width:50px;height:50px;border-radius:17px;font-size:24px}.stat-card span{grid-area:label;margin-left:0!important}.stat-card strong{grid-area:number;margin-left:0!important}.stat-card small{grid-area:hint;margin-left:0!important}.stat-card em{grid-area:arrow;position:static;width:30px;height:30px}.stat-card:hover .stat-ico{transform:none}}

/* v3.11: aksi tabel, hapus massal, dan form wilayah */
.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.inline-form{display:inline;margin-left:10px}.link-danger{background:none;border:0;color:#ff8a8a;cursor:pointer;font:inherit;font-weight:700;padding:0}.link-danger:hover{text-decoration:underline}.bulk-actions{display:flex;justify-content:flex-end;margin-top:12px}.btn-danger{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border:0}.action-cell{white-space:nowrap}table input[type="checkbox"]{width:16px;height:16px;accent-color:#28b8ff}select optgroup{background:#ffffff;color:#111827}select option{background:#ffffff;color:#111827}
@media (max-width:720px){.panel-title-row{display:block}.bulk-actions .btn{width:100%}.action-cell{white-space:normal}.inline-form{display:block;margin:6px 0 0}}

/* v3.14 - professional public timeline */
.timeline-modern{
  counter-reset:timeline;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
  position:relative;
}
.timeline-modern:before{
  content:"";
  position:absolute;
  left:4%;right:4%;top:54px;height:2px;
  background:linear-gradient(90deg,rgba(29,127,255,.18),rgba(124,58,237,.42),rgba(255,159,28,.28));
  z-index:0;
}
.timeline-modern .timeline-card{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  min-height:210px;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,.94);
  border:1px solid #d7e6fb;
  box-shadow:0 16px 38px rgba(15,23,42,.07);
  overflow:hidden;
}
.timeline-modern .timeline-card:before{
  content:"";
  position:absolute;
  inset:auto -30px -48px auto;
  width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle,rgba(29,127,255,.16),transparent 66%);
  pointer-events:none;
}
.timeline-modern .timeline-card.running{
  border-color:rgba(34,197,94,.45);
  box-shadow:0 18px 48px rgba(34,197,94,.12);
}
.timeline-modern .timeline-card.upcoming{
  border-color:rgba(29,127,255,.28);
}
.timeline-modern .timeline-card.done{
  opacity:.78;
}
.timeline-number{
  width:44px;height:44px;border-radius:16px;
  display:grid;place-items:center;
  font-size:14px;font-weight:950;color:#fff;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  box-shadow:0 12px 28px rgba(29,127,255,.24);
}
.timeline-card.running .timeline-number{background:linear-gradient(135deg,#16a34a,#4ade80);color:#052e16}
.timeline-card.done .timeline-number{background:linear-gradient(135deg,#64748b,#94a3b8)}
.timeline-body{display:grid;gap:10px;min-width:0}.timeline-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.timeline-icon{width:34px;height:34px;border-radius:13px;background:#eef5ff;display:grid;place-items:center}.timeline-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950;white-space:nowrap}.timeline-badge.running{background:#dcfce7;color:#166534}.timeline-badge.upcoming{background:#dbeafe;color:#1e40af}.timeline-badge.done{background:#e2e8f0;color:#475569}.timeline-body h3{margin:0;color:#102039;font-size:16px;line-height:1.28}.timeline-date{display:grid;gap:3px}.timeline-date strong{color:var(--blue);font-size:13px}.timeline-date small{color:#475569;font-weight:800}.timeline-body p{margin:0;color:#506077;line-height:1.45;font-size:13px}.timeline-note{display:block;color:#64748b;line-height:1.35;font-size:12px}
@media(max-width:1120px){.timeline-modern{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-modern:before{display:none}}
@media(max-width:720px){.timeline-modern{grid-template-columns:1fr;gap:14px}.timeline-modern .timeline-card{min-height:0;grid-template-columns:auto 1fr;padding:15px}.timeline-number{width:38px;height:38px;border-radius:14px}.timeline-body h3{font-size:15px}.timeline-date strong,.timeline-body p{font-size:12.5px}}


/* v3.15 - timeline polish and schedule order column */
.timeline-modern{
  align-items:stretch;
}
.timeline-modern .timeline-body,
.timeline-modern .timeline-meta,
.timeline-modern .timeline-date{
  padding:0!important;
  min-height:0!important;
  border-radius:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.timeline-modern .timeline-number{
  padding:0!important;
  min-height:44px!important;
  border:0!important;
}
.timeline-modern .timeline-card{
  display:grid!important;
  grid-template-columns:56px minmax(0,1fr);
  align-items:start;
  min-height:220px;
}
.timeline-modern .timeline-card .timeline-meta{
  margin-bottom:2px;
}
.timeline-modern .timeline-date{
  padding:10px 12px!important;
  border-radius:16px!important;
  border:1px solid #dbeafe!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
}
.timeline-modern .timeline-note{
  margin-top:2px;
}
.timeline-modern .timeline-card.running .timeline-date{
  border-color:rgba(34,197,94,.32)!important;
  background:linear-gradient(180deg,#f0fdf4,#ffffff)!important;
}
@media(max-width:720px){
  .timeline-modern .timeline-card{grid-template-columns:46px minmax(0,1fr);min-height:0;}
  .timeline-modern .timeline-number{min-height:38px!important;}
}

/* v3.16 - responsive step timeline inspired by professional expansion timeline */
.timeline-section .section-head{margin-bottom:26px}
.timeline.timeline-modern{
  max-width:1180px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(205px,1fr))!important;
  gap:28px 22px!important;
  align-items:stretch!important;
  position:relative!important;
  overflow:visible!important;
}
.timeline.timeline-modern:before{
  content:""!important;
  position:absolute!important;
  left:36px!important;
  right:36px!important;
  top:84px!important;
  height:3px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,#2563eb,#7c3aed,#10b981,#f59e0b)!important;
  opacity:.28!important;
  z-index:0!important;
}
.timeline.timeline-modern .timeline-card{
  position:relative!important;
  z-index:1!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto 1fr!important;
  gap:14px!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:visible!important;
}
.timeline.timeline-modern .timeline-card:before{display:none!important}
.timeline.timeline-modern .timeline-number{
  position:relative!important;
  z-index:2!important;
  width:auto!important;
  min-height:0!important;
  height:auto!important;
  justify-self:center!important;
  padding:12px 24px!important;
  border-radius:18px!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  background:linear-gradient(135deg,#2563eb,#7c3aed)!important;
  box-shadow:0 14px 28px rgba(37,99,235,.22)!important;
  border:1px solid rgba(255,255,255,.55)!important;
}
.timeline.timeline-modern .timeline-number::before{content:"STEP ";font-weight:900}
.timeline.timeline-modern .timeline-card.running .timeline-number{background:linear-gradient(135deg,#16a34a,#22c55e)!important;color:#052e16!important;box-shadow:0 14px 28px rgba(34,197,94,.22)!important}
.timeline.timeline-modern .timeline-card.done .timeline-number{background:linear-gradient(135deg,#64748b,#94a3b8)!important;color:#fff!important;box-shadow:0 12px 24px rgba(100,116,139,.18)!important}
.timeline.timeline-modern .timeline-body{
  position:relative!important;
  display:grid!important;
  gap:10px!important;
  min-width:0!important;
  padding:22px 18px 18px!important;
  min-height:250px!important;
  border-radius:24px!important;
  border:1px solid #d7e6fb!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  box-shadow:0 18px 44px rgba(15,23,42,.08)!important;
  text-align:left!important;
}
.timeline.timeline-modern .timeline-body:before{
  content:"";
  position:absolute;
  left:50%;
  top:-20px;
  width:2px;
  height:20px;
  transform:translateX(-50%);
  background:#c8d7ef;
}
.timeline.timeline-modern .timeline-meta{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.timeline.timeline-modern .timeline-icon{
  width:44px!important;
  height:44px!important;
  border-radius:999px!important;
  background:#eef5ff!important;
  display:grid!important;
  place-items:center!important;
  box-shadow:inset 0 0 0 1px #dbeafe!important;
}
.timeline.timeline-modern .timeline-badge{font-size:10.5px!important;padding:6px 9px!important;box-shadow:none!important;text-shadow:none!important}
.timeline.timeline-modern .timeline-body h3{margin:0!important;font-size:16px!important;line-height:1.28!important;color:#071b3a!important;letter-spacing:-.02em!important}
.timeline.timeline-modern .timeline-date{
  display:grid!important;
  gap:5px!important;
  padding:12px 13px!important;
  border-radius:18px!important;
  border:1px solid #dbeafe!important;
  background:#fff!important;
  box-shadow:none!important;
}
.timeline.timeline-modern .timeline-date strong{font-size:12.5px!important;color:#1d7fff!important;line-height:1.35!important}
.timeline.timeline-modern .timeline-date small{font-size:12px!important;color:#0f2444!important;font-weight:900!important;line-height:1.35!important}
.timeline.timeline-modern .timeline-body p{margin:0!important;color:#53657f!important;font-size:12.5px!important;line-height:1.45!important}
.timeline.timeline-modern .timeline-note{margin-top:auto!important;color:#5e6f8c!important;font-size:12px!important;line-height:1.45!important}
.timeline.timeline-modern .timeline-card.running .timeline-body{border-color:rgba(34,197,94,.42)!important;background:linear-gradient(180deg,#f0fdf4,#ffffff)!important;box-shadow:0 18px 44px rgba(34,197,94,.12)!important}
.timeline.timeline-modern .timeline-card.done .timeline-body{opacity:.84!important;background:linear-gradient(180deg,#f8fafc,#ffffff)!important}
@media(max-width:900px){
  .timeline.timeline-modern{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px 18px!important}
  .timeline.timeline-modern:before{display:none!important}
}
@media(max-width:640px){
  .timeline.timeline-modern{grid-template-columns:1fr!important;gap:16px!important;padding-left:10px!important}
  .timeline.timeline-modern:before{display:block!important;left:29px!important;right:auto!important;top:0!important;bottom:0!important;width:3px!important;height:auto!important;background:linear-gradient(180deg,#2563eb,#7c3aed,#10b981,#f59e0b)!important;opacity:.22!important}
  .timeline.timeline-modern .timeline-card{grid-template-columns:58px minmax(0,1fr)!important;grid-template-rows:auto!important;gap:0!important;align-items:start!important}
  .timeline.timeline-modern .timeline-number{grid-column:1!important;grid-row:1!important;width:46px!important;height:46px!important;border-radius:999px!important;padding:0!important;align-self:start!important;justify-self:start!important;font-size:11px!important;display:grid!important;place-items:center!important;margin-top:4px!important}
  .timeline.timeline-modern .timeline-number::before{content:""!important}
  .timeline.timeline-modern .timeline-body{grid-column:2!important;grid-row:1!important;min-height:0!important;padding:16px!important;border-radius:20px!important}
  .timeline.timeline-modern .timeline-body:before{left:-13px!important;top:26px!important;width:13px!important;height:2px!important;transform:none!important;background:#c8d7ef!important}
  .timeline.timeline-modern .timeline-body h3{font-size:15px!important}
  .timeline.timeline-modern .timeline-date strong,.timeline.timeline-modern .timeline-date small,.timeline.timeline-modern .timeline-body p{font-size:12px!important}
}

/* v3.18 - cleaner alternating public timeline: number centered on line, icon/card connected */
.timeline.timeline-alternating{
  --line:#c9d8ee;
  max-width:1180px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  gap:26px 18px!important;
  align-items:center!important;
  position:relative!important;
  padding:32px 0 38px!important;
  overflow:visible!important;
}
.timeline.timeline-alternating:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:6%!important;
  right:6%!important;
  top:50%!important;
  height:4px!important;
  transform:translateY(-50%)!important;
  background:linear-gradient(90deg,#2563eb,#7c3aed,#10b981,#f59e0b)!important;
  opacity:.28!important;
  border-radius:999px!important;
}
.timeline.timeline-alternating .timeline-card{
  position:relative!important;
  display:grid!important;
  grid-template-rows:112px 44px 46px 44px 112px!important;
  grid-template-columns:1fr!important;
  min-height:358px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  gap:0!important;
  align-items:center!important;
  isolation:isolate!important;
}
.timeline.timeline-alternating .timeline-card:before,
.timeline.timeline-alternating .timeline-body,
.timeline.timeline-alternating .timeline-meta,
.timeline.timeline-alternating .timeline-date,
.timeline.timeline-alternating .timeline-note{all:unset}
.timeline.timeline-alternating .timeline-card:after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:52px!important;
  bottom:52px!important;
  width:2px!important;
  transform:translateX(-50%)!important;
  background:repeating-linear-gradient(180deg,#b7c7de 0 4px,transparent 4px 9px)!important;
  z-index:0!important;
  opacity:.95!important;
}
.timeline.timeline-alternating .timeline-copy{
  width:min(100%,212px)!important;
  justify-self:center!important;
  text-align:center!important;
  display:grid!important;
  gap:7px!important;
  align-content:center!important;
  padding:14px 12px!important;
  min-height:88px!important;
  border:1px solid rgba(189,210,239,.95)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 12px 28px rgba(15,23,42,.08)!important;
  position:relative!important;
  z-index:2!important;
}
.timeline.timeline-alternating .timeline-card.top .timeline-copy{grid-row:1!important;align-self:end!important}
.timeline.timeline-alternating .timeline-card.bottom .timeline-copy{grid-row:5!important;align-self:start!important}
.timeline.timeline-alternating .timeline-copy h3{
  margin:0!important;
  color:#061833!important;
  font-size:14px!important;
  line-height:1.2!important;
  letter-spacing:-.02em!important;
}
.timeline.timeline-alternating .timeline-copy strong{
  color:#1d7fff!important;
  font-size:12px!important;
  line-height:1.3!important;
  font-weight:950!important;
}
.timeline.timeline-alternating .timeline-copy p{display:none!important}
.timeline.timeline-alternating .timeline-icon{
  place-self:center!important;
  width:74px!important;
  height:74px!important;
  border-radius:999px!important;
  border:9px solid #3b82f6!important;
  background:#fff!important;
  display:grid!important;
  place-items:center!important;
  color:#071b3a!important;
  font-size:27px!important;
  box-shadow:0 16px 34px rgba(37,99,235,.20),0 0 0 8px rgba(255,255,255,.88)!important;
  position:relative!important;
  z-index:2!important;
  cursor:pointer!important;
  transition:transform .18s ease, box-shadow .18s ease!important;
  padding:0!important;
  appearance:none!important;
}
.timeline.timeline-alternating .timeline-card.top .timeline-icon{grid-row:5!important;align-self:start!important}
.timeline.timeline-alternating .timeline-card.bottom .timeline-icon{grid-row:1!important;align-self:end!important}
.timeline.timeline-alternating .timeline-icon:hover{transform:translateY(-4px) scale(1.03)!important;box-shadow:0 18px 42px rgba(37,99,235,.28),0 0 0 8px rgba(255,255,255,.95)!important}
.timeline.timeline-alternating .timeline-icon:after{display:none!important}
.timeline.timeline-alternating .timeline-number{
  grid-row:3!important;
  place-self:center!important;
  width:92px!important;
  height:42px!important;
  border-radius:999px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  color:#fff!important;
  background:linear-gradient(135deg,#2563eb,#7c3aed)!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  box-shadow:0 13px 26px rgba(37,99,235,.24)!important;
  position:relative!important;
  z-index:4!important;
}
.timeline.timeline-alternating .timeline-number::before{content:""!important}
.timeline.timeline-alternating .timeline-card.bottom .timeline-number{margin:0!important}
.timeline.timeline-alternating .timeline-badge{display:none!important}
.timeline.timeline-alternating .tone-purple .timeline-icon{border-color:#7c3aed!important;box-shadow:0 15px 32px rgba(124,58,237,.22),0 0 0 8px rgba(255,255,255,.88)!important}
.timeline.timeline-alternating .tone-orange .timeline-icon{border-color:#f59e0b!important;box-shadow:0 15px 32px rgba(245,158,11,.22),0 0 0 8px rgba(255,255,255,.88)!important}
.timeline.timeline-alternating .tone-blue .timeline-icon{border-color:#2563eb!important}
.timeline.timeline-alternating .tone-green .timeline-icon{border-color:#10b981!important;box-shadow:0 15px 32px rgba(16,185,129,.22),0 0 0 8px rgba(255,255,255,.88)!important}
.timeline.timeline-alternating .tone-cyan .timeline-icon{border-color:#06b6d4!important;box-shadow:0 15px 32px rgba(6,182,212,.22),0 0 0 8px rgba(255,255,255,.88)!important}
.timeline.timeline-alternating .timeline-card.running .timeline-number{background:linear-gradient(135deg,#16a34a,#22c55e)!important;color:#052e16!important}
.timeline.timeline-alternating .timeline-card.done .timeline-number{background:linear-gradient(135deg,#64748b,#94a3b8)!important;color:#fff!important}
.timeline.timeline-alternating .timeline-card.done .timeline-icon,.timeline.timeline-alternating .timeline-card.done .timeline-copy{opacity:.78!important}
@media(max-width:920px){
  .timeline.timeline-alternating{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px 16px!important}
  .timeline.timeline-alternating:before{display:none!important}
}
@media(max-width:640px){
  .timeline.timeline-alternating{grid-template-columns:1fr!important;padding:8px 0 0 32px!important;gap:18px!important}
  .timeline.timeline-alternating:before{display:block!important;left:24px!important;right:auto!important;top:0!important;bottom:0!important;width:3px!important;height:auto!important;transform:none!important;background:linear-gradient(180deg,#2563eb,#7c3aed,#10b981,#f59e0b)!important;opacity:.28!important}
  .timeline.timeline-alternating .timeline-card{grid-template-columns:60px 1fr!important;grid-template-rows:auto auto!important;min-height:0!important;gap:8px 12px!important;align-items:start!important}
  .timeline.timeline-alternating .timeline-card:after{display:none!important}
  .timeline.timeline-alternating .timeline-number{grid-column:1!important;grid-row:1!important;width:42px!important;height:30px!important;font-size:11px!important;margin:0!important;justify-self:start!important;align-self:start!important}
  .timeline.timeline-alternating .timeline-icon,.timeline.timeline-alternating .timeline-card.top .timeline-icon,.timeline.timeline-alternating .timeline-card.bottom .timeline-icon{grid-column:1!important;grid-row:2!important;width:50px!important;height:50px!important;border-width:6px!important;font-size:20px!important;justify-self:start!important;align-self:start!important;margin:0!important}
  .timeline.timeline-alternating .timeline-copy,.timeline.timeline-alternating .timeline-card.top .timeline-copy,.timeline.timeline-alternating .timeline-card.bottom .timeline-copy{grid-column:2!important;grid-row:1 / span 2!important;text-align:left!important;justify-self:stretch!important;align-self:start!important;width:auto!important;min-height:0!important;padding:14px!important}
  .timeline.timeline-alternating .timeline-copy h3{font-size:14px!important}.timeline.timeline-alternating .timeline-copy strong{font-size:12px!important}
  .schedule-modal-card{padding:22px;border-radius:22px}.schedule-modal-grid{grid-template-columns:1fr}.schedule-modal-card h3{font-size:20px}
}

/* v3.19 - timeline number centering and real modal overlay */
.timeline.timeline-alternating .timeline-number{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  box-sizing:border-box!important;
  min-width:74px!important;
  min-height:38px!important;
  padding:0 18px!important;
}
.timeline.timeline-alternating .timeline-number *{line-height:1!important}

.schedule-modal[hidden]{display:none!important}
.schedule-modal{
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
}
.schedule-modal-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(2,8,23,.68)!important;
  backdrop-filter:blur(8px)!important;
}
.schedule-modal-card{
  position:relative!important;
  z-index:1!important;
  width:min(620px, calc(100vw - 32px))!important;
  max-height:calc(100vh - 48px)!important;
  overflow:auto!important;
  background:linear-gradient(180deg,#ffffff,#f4f8ff)!important;
  color:#071b3a!important;
  border:1px solid rgba(180,205,238,.95)!important;
  border-radius:28px!important;
  box-shadow:0 28px 90px rgba(2,8,23,.35)!important;
  padding:30px!important;
}
.schedule-modal-close{
  position:absolute!important;
  right:16px!important;
  top:16px!important;
  width:38px!important;
  height:38px!important;
  border-radius:999px!important;
  border:1px solid #d6e2f2!important;
  background:#fff!important;
  color:#0f172a!important;
  font-size:22px!important;
  font-weight:900!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
}
.schedule-modal-icon{
  width:72px!important;
  height:72px!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(135deg,#e0f2fe,#ede9fe)!important;
  border:8px solid #2563eb!important;
  font-size:30px!important;
  box-shadow:0 14px 32px rgba(37,99,235,.20)!important;
  margin-bottom:14px!important;
}
.schedule-modal-card .eyebrow{color:#1d7fff!important;margin:0 0 8px!important}
.schedule-modal-card h3{
  margin:0 0 20px!important;
  font-size:26px!important;
  line-height:1.22!important;
  color:#061833!important;
  letter-spacing:-.025em!important;
}
.schedule-modal-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  margin:0 0 18px!important;
}
.schedule-modal-grid div{
  background:#fff!important;
  border:1px solid #dbe8f8!important;
  border-radius:18px!important;
  padding:14px 16px!important;
}
.schedule-modal-grid small{
  display:block!important;
  color:#64748b!important;
  font-size:11px!important;
  text-transform:uppercase!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
  margin-bottom:5px!important;
}
.schedule-modal-grid strong{
  display:block!important;
  color:#071b3a!important;
  font-size:14px!important;
  line-height:1.35!important;
}
.schedule-modal-notes{
  margin:0!important;
  color:#334155!important;
  line-height:1.7!important;
  background:#eef6ff!important;
  border:1px solid #d9e8fb!important;
  border-radius:18px!important;
  padding:16px!important;
}
body.modal-open{overflow:hidden!important}
@media(max-width:640px){
  .timeline.timeline-alternating .timeline-number{min-width:44px!important;min-height:30px!important;padding:0 10px!important}
  .schedule-modal{padding:14px!important;align-items:flex-end!important}
  .schedule-modal-card{width:100%!important;max-height:86vh!important;border-radius:24px 24px 0 0!important;padding:24px 18px!important}
  .schedule-modal-grid{grid-template-columns:1fr!important}
  .schedule-modal-card h3{font-size:20px!important;padding-right:42px!important}
}

/* v3.20 - snake/wrapped timeline connector for many schedules */
@media (min-width: 921px){
  .timeline.timeline-alternating{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(150px,1fr))!important;
    grid-auto-rows:358px!important;
    gap:42px 18px!important;
    padding:28px 0 40px!important;
    align-items:center!important;
  }
  .timeline.timeline-alternating:before{display:none!important;}
  .timeline.timeline-alternating .timeline-card{
    grid-column:var(--snake-col)!important;
    grid-row:var(--snake-row)!important;
    min-width:0!important;
  }
  .timeline.timeline-alternating .timeline-card:before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    left:-10px!important;
    right:-10px!important;
    top:50%!important;
    height:4px!important;
    transform:translateY(-50%)!important;
    background:linear-gradient(90deg,rgba(37,99,235,.22),rgba(124,58,237,.28),rgba(16,185,129,.24),rgba(245,158,11,.22))!important;
    border-radius:999px!important;
    z-index:0!important;
  }
  .timeline.timeline-alternating .timeline-snake-turn{
    position:absolute!important;
    top:50%!important;
    width:42px!important;
    height:calc(100% + 42px)!important;
    border-color:rgba(124,58,237,.28)!important;
    border-style:solid!important;
    z-index:0!important;
    pointer-events:none!important;
  }
  .timeline.timeline-alternating .snake-turn-right .timeline-snake-turn{
    right:-10px!important;
    border-width:4px 4px 4px 0!important;
    border-radius:0 32px 32px 0!important;
    background:none!important;
  }
  .timeline.timeline-alternating .snake-turn-left .timeline-snake-turn{
    left:-10px!important;
    border-width:4px 0 4px 4px!important;
    border-radius:32px 0 0 32px!important;
    background:none!important;
  }
  .timeline.timeline-alternating .timeline-number{
    z-index:5!important;
    min-width:78px!important;
    height:40px!important;
  }
  .timeline.timeline-alternating .timeline-icon,
  .timeline.timeline-alternating .timeline-copy{z-index:3!important;}
}

@media (max-width: 920px){
  .timeline.timeline-alternating .timeline-card{
    grid-column:auto!important;
    grid-row:auto!important;
  }
  .timeline.timeline-alternating .timeline-snake-turn{display:none!important;}
}

/* v3.21 - stronger continuous snake connector between wrapped timeline rows */
@media (min-width: 921px){
  .timeline.timeline-alternating .timeline-card:before{
    left:-18px!important;
    right:-18px!important;
    height:4px!important;
    background:linear-gradient(90deg,rgba(37,99,235,.32),rgba(124,58,237,.34),rgba(16,185,129,.30),rgba(245,158,11,.30))!important;
    box-shadow:0 0 0 1px rgba(255,255,255,.18),0 6px 18px rgba(37,99,235,.08)!important;
  }
  .timeline.timeline-alternating .timeline-snake-turn{
    top:50%!important;
    width:10px!important;
    height:calc(100% + 42px)!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    z-index:1!important;
    overflow:visible!important;
  }
  .timeline.timeline-alternating .timeline-snake-turn:before,
  .timeline.timeline-alternating .timeline-snake-turn:after{
    content:""!important;
    position:absolute!important;
    height:4px!important;
    width:48px!important;
    background:linear-gradient(90deg,rgba(37,99,235,.32),rgba(124,58,237,.34),rgba(16,185,129,.30),rgba(245,158,11,.30))!important;
    border-radius:999px!important;
  }
  .timeline.timeline-alternating .snake-turn-right .timeline-snake-turn{
    right:-50px!important;
    border-right:4px solid rgba(124,58,237,.34)!important;
    border-radius:0 34px 34px 0!important;
  }
  .timeline.timeline-alternating .snake-turn-right .timeline-snake-turn:before{top:0!important;right:0!important;}
  .timeline.timeline-alternating .snake-turn-right .timeline-snake-turn:after{bottom:0!important;right:0!important;}
  .timeline.timeline-alternating .snake-turn-left .timeline-snake-turn{
    left:-50px!important;
    border-left:4px solid rgba(124,58,237,.34)!important;
    border-radius:34px 0 0 34px!important;
  }
  .timeline.timeline-alternating .snake-turn-left .timeline-snake-turn:before{top:0!important;left:0!important;}
  .timeline.timeline-alternating .snake-turn-left .timeline-snake-turn:after{bottom:0!important;left:0!important;}
  .timeline.timeline-alternating .timeline-number{position:relative!important;z-index:6!important;}
}

/* v3.22 - Schedule icon settings */
.schedule-icon-mini{
    display:inline-flex;
    width:34px;
    height:34px;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:linear-gradient(135deg, rgba(35, 213, 255, .18), rgba(124, 58, 237, .18));
    border:1px solid rgba(125, 211, 252, .45);
    box-shadow:0 8px 22px rgba(35, 213, 255, .12);
    font-size:17px;
    line-height:1;
}
@media (max-width: 760px){
    .schedule-icon-mini{width:30px;height:30px;font-size:15px;}
}

/* v3.26 - Pengumuman editor klasik, gambar, dan konten HTML aman */
.announcement-card{display:flex;flex-direction:column;gap:10px;overflow:hidden}.announcement-card>span{display:none!important}.announcement-thumb{width:100%;height:150px;object-fit:cover;border-radius:18px;margin:-4px 0 4px;background:#eaf3ff;border:1px solid #dbeafe}.announcement-more{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-weight:900}.announcement-more span{position:static!important;font-size:20px!important;color:inherit!important}.announcement-detail-card{max-width:920px;margin:auto}.announcement-detail-image{width:100%;max-height:420px;object-fit:cover;border-radius:22px;margin-bottom:22px;border:1px solid #dbeafe;box-shadow:0 18px 42px rgba(15,23,42,.08)}.announcement-admin-cell{display:flex;align-items:center;gap:12px;min-width:220px}.announcement-admin-cell span{min-width:0}.announcement-table-thumb{width:74px;height:50px;object-fit:cover;border-radius:12px;border:1px solid rgba(125,211,252,.22);background:rgba(255,255,255,.08)}.announcement-admin-thumb{width:120px;height:78px;object-fit:cover;border-radius:14px;border:1px solid rgba(125,211,252,.22)}.announcement-image-preview{align-items:center;justify-content:flex-start}.rich-editor-wrap{display:grid;gap:8px}.classic-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px;border:1px solid rgba(125,211,252,.22);border-radius:16px;background:rgba(15,23,42,.24)}.classic-toolbar button{border:1px solid rgba(125,211,252,.28);background:rgba(255,255,255,.08);color:#e8f2ff;border-radius:10px;min-height:34px;padding:7px 10px;font-weight:900;cursor:pointer}.classic-toolbar button:hover{background:rgba(29,127,255,.25)}.classic-editor{min-height:260px;padding:16px;border-radius:18px;border:1px solid rgba(125,211,252,.24);background:#fff;color:#102039;outline:none;overflow:auto}.classic-editor:focus{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.16)}.classic-editor.source-mode{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.rich-content{font-size:15px;line-height:1.75;color:#22314d}.rich-content p{margin:0 0 1em}.rich-content h2,.rich-content h3,.rich-content h4{line-height:1.25;color:#071b3a;margin:1.2em 0 .55em}.rich-content h2{font-size:1.7rem}.rich-content h3{font-size:1.35rem}.rich-content ul,.rich-content ol{padding-left:1.35rem;margin:.5em 0 1em}.rich-content blockquote{margin:1rem 0;padding:14px 18px;border-left:4px solid #1d7fff;background:#eef6ff;border-radius:12px}.rich-content a{font-weight:900;color:#1d7fff}.rich-content img{max-width:100%;border-radius:16px;border:1px solid #dbeafe;box-shadow:0 10px 26px rgba(15,23,42,.08);margin:10px 0}.rich-content table{width:100%;border-collapse:collapse;margin:1rem 0;border:1px solid #dbeafe;border-radius:12px;overflow:hidden}.rich-content th,.rich-content td{border:1px solid #dbeafe;padding:10px;color:#102039}.rich-content th{background:#eef6ff}.rich-content iframe,.rich-embed{width:100%;aspect-ratio:16/9;height:auto;min-height:260px;border:0;border-radius:18px;background:#071226;margin:12px 0}.app-body .rich-content h2,.app-body .rich-content h3,.app-body .rich-content h4{color:#071b3a}.app-body .classic-editor .rich-content,.app-body .classic-editor{color:#102039}.app-body .announcement-editor-card .muted{color:#aabbd8}.app-body .rich-content table th,.app-body .rich-content table td{color:#102039}
@media(max-width:720px){.classic-editor{min-height:220px}.classic-toolbar{gap:5px}.classic-toolbar button{font-size:12px;padding:6px 8px}.announcement-admin-cell{display:grid;gap:8px}.announcement-table-thumb{width:100%;height:auto;aspect-ratio:16/9}.announcement-thumb{height:auto;aspect-ratio:16/9}.rich-content{font-size:14px}.rich-content iframe,.rich-embed{min-height:190px}.announcement-detail-image{max-height:none;aspect-ratio:16/9}}
