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

:root{
  --green:#2e7d5b;
  --green-dark:#183f31;
  --green-soft:#eaf7f1;
  --purple:#5ec86d;
  --purple-dark:#1d8b4c;
  --orange:#f1704f;
  --orange-soft:#ffe9df;
  --ink:#2e2d3b;
  --muted:#7b7b8b;
  --line:#e7e7ee;
  --white:#ffffff;
  --shadow:0 18px 48px rgba(32, 43, 79, .12);
  --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Poppins',Arial,sans-serif;
  color:var(--ink);
  background:#f6f8fb;
}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
.container{width:min(1280px,calc(100% - 48px));margin:0 auto}
.narrow{width:min(1100px,calc(100% - 48px));margin:0 auto}

/* Public page */
.public-page{background:#f4f1f6}
.public-topbar{position:relative;z-index:3;padding:16px 0;background:transparent}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.public-brand-mini{display:flex;align-items:center;gap:12px}
.brand-icon{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#8f1631,#d93f49);position:relative;box-shadow:0 10px 22px rgba(143,22,49,.22)}
.brand-icon span,.brand-icon:before{content:"";position:absolute}
.brand-icon:before{left:8px;top:8px;width:20px;height:18px;border:3px solid #fff;border-radius:8px 10px 10px 8px}
.brand-icon span{right:6px;top:12px;width:10px;height:10px;border-top:3px solid #fff;border-right:3px solid #fff;transform:rotate(45deg)}
.brand-icon.large{width:60px;height:60px;border-radius:18px}
.brand-copy strong,.tracking-brand-text strong{display:block;font-size:26px;line-height:1;color:#7f102a;letter-spacing:.06em}
.brand-copy small,.tracking-brand-text small{display:block;font-weight:700;letter-spacing:.12em;color:#7f102a;font-size:13px}
.public-nav{display:flex;gap:36px;font-weight:500;color:#31313f}
.public-nav a{position:relative}
.public-nav a:hover{color:#8f1631}
.public-topbar-right{display:flex;align-items:center;gap:18px}
.office-phone{font-size:14px;color:#4a4a62}
.mini-admin-pill{padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.45);backdrop-filter:blur(10px);font-size:13px;color:#1d8f53;border:1px solid rgba(124,103,216,.12)}

.hero-ptsp{position:relative;overflow:hidden;background:linear-gradient(90deg,#d9f3e4 0%,#eaf7d8 45%,#ffe4bd 100%);min-height:690px}
.hero-grid-lines{position:absolute;inset:0;background-image:linear-gradient(to right, rgba(120,120,140,.10) 1px, transparent 1px);background-size:180px 100%;pointer-events:none}
.hero-orb{position:absolute;border-radius:50%;background:rgba(255,255,255,.28);filter:blur(.2px)}
.orb-left{width:420px;height:420px;left:-50px;top:-130px}
.orb-right{width:220px;height:220px;right:170px;top:-90px}
.hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr 420px;align-items:center;gap:48px;padding:80px 0 170px}
.hero-center-copy{text-align:center;max-width:620px;margin:0 auto;transform:translateY(18px)}
.hero-campus{font-size:76px;font-weight:800;line-height:.95;color:#3b3652;letter-spacing:-.05em;margin-bottom:16px}
.hero-center-copy h1{font-size:23px;margin:0 0 10px;color:#4f4560}
.hero-center-copy p{margin:0 auto 28px;max-width:540px;color:#7a758a;font-size:14px;line-height:1.7}
.hero-cta-row{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.cta-bubble{min-width:146px;padding:17px 26px;border-radius:999px;color:#fff;font-weight:700;font-size:14px;box-shadow:0 12px 24px rgba(62,66,126,.18);position:relative}
.cta-bubble:after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;background:rgba(255,255,255,.94);border-radius:50%;box-shadow:inset 0 0 0 4px rgba(103,82,213,.18)}
.cta-bubble.orange{background:linear-gradient(90deg,#ff8b2b,#f36d2d,#41b86f)}
.cta-bubble.purple{background:linear-gradient(90deg,#ff8b2b,#39b86f)}

.tracking-card-wrap{position:relative}
.tracking-card{background:rgba(255,255,255,.94);border:1px solid rgba(58,58,75,.12);border-radius:14px;box-shadow:0 16px 34px rgba(20,32,74,.12);padding:24px 22px;position:relative;z-index:2}
.tracking-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}
.tracking-card h3{margin:4px 0 6px;text-align:center;font-size:22px;color:#403856}
.tracking-card p{margin:0 0 16px;text-align:center;color:#878295;font-size:12px}
.tracking-inputs input{width:100%;padding:14px 16px;border-radius:8px;border:1px solid #d8dae5;background:#f8f8fb;text-align:center;margin-bottom:14px}
.grad-button{display:block;text-align:center;padding:14px 16px;border-radius:999px;color:#fff;font-weight:700;font-size:14px;box-shadow:0 14px 24px rgba(67,69,148,.16)}
.grad-button:before{display:inline-block;margin-right:8px}
.grad-login{background:linear-gradient(90deg,#ff8b2b,#38b66c)}
.grad-login:before{content:"◉"}
.grad-service{background:linear-gradient(90deg,#ff8b2b,#38b66c);margin-top:10px}
.grad-service:before{content:"✦"}
.small-track-note{font-size:11px;text-align:center;color:#7c768a;margin-top:4px}
.small-track-note a{color:#1d8f53}
.target-illustration{position:absolute;right:-40px;bottom:-88px;width:200px;height:200px;z-index:1}
.target-illustration .ring{position:absolute;border-radius:50%;border:10px solid #ff6a2d;inset:auto auto 0 0}
.target-illustration .r1{width:126px;height:126px;left:36px;bottom:30px;border-width:10px}
.target-illustration .r2{width:84px;height:84px;left:57px;bottom:51px;border-width:9px;border-color:#ff7e3c}
.target-illustration .r3{width:42px;height:42px;left:78px;bottom:72px;border-width:8px;border-color:#ff9556}
.target-illustration .dart{position:absolute;width:75px;height:10px;background:#3a4b65;transform:rotate(-52deg);right:14px;bottom:114px;border-radius:10px}
.target-illustration .dart:before{content:"";position:absolute;right:-9px;top:-5px;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:18px solid #3a4b65}
.target-illustration .dart:after{content:"";position:absolute;left:-10px;top:-4px;width:14px;height:14px;background:#f6a21a;transform:rotate(45deg)}

.cloud-divider{position:absolute;left:0;right:0;bottom:-1px;height:155px;display:flex;align-items:flex-end;gap:0;overflow:hidden}
.cloud-divider span{display:block;background:#f7f7f8;height:120px;border-radius:999px 999px 0 0;flex:1;min-width:180px}
.cloud-divider span:nth-child(1){height:105px}
.cloud-divider span:nth-child(2){height:146px}
.cloud-divider span:nth-child(3){height:116px}
.cloud-divider span:nth-child(4){height:154px}
.cloud-divider span:nth-child(5){height:112px}

.flow-section{background:#f7f7f8;padding:85px 0 76px;position:relative}
.flow-section h2,.stats-band h2{font-size:52px;line-height:1.1;text-align:center;margin:0 0 42px;font-weight:800;background:linear-gradient(90deg,#ff8b2b,#31b566);-webkit-background-clip:text;background-clip:text;color:transparent}
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:42px;text-align:center}
.flow-item{padding:8px 10px}
.flow-icon{font-size:42px;line-height:1;margin-bottom:14px;filter:grayscale(1)}
.flow-item h4{font-size:20px;margin:0 0 12px;color:#353249}
.flow-item p{margin:0;color:#7d7c8b;font-size:14px;line-height:1.8}

.stats-band{background:linear-gradient(135deg,#168a74 0%, #3cbf6b 55%, #ff962f 100%);padding:72px 0 80px;color:#fff}
.stats-pill-box{background:#fff;color:#2f3148;border-radius:8px;max-width:820px;margin:0 auto 48px;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:var(--shadow)}
.mini-stat{text-align:center;padding:26px 12px}
.mini-stat strong{display:block;font-size:32px;line-height:1.1;font-weight:800;margin-bottom:8px}
.mini-stat span{display:block;font-size:14px;color:#76768a}
.service-hours{text-align:center}
.service-hours h5{margin:0 0 12px;color:#f37f4e;font-size:16px}
.service-hours p{margin:4px 0;color:#efeefe;font-size:14px}
.public-services-strip{background:#eef3f0;padding:52px 0 70px}
.center-head{justify-content:center;text-align:center}
.bottom-running-text{position:fixed;left:0;right:0;bottom:0;background:#1b1b1b;color:#f4cb59;font-size:12px;padding:6px 12px;white-space:nowrap;overflow:hidden;text-align:center;z-index:50}

/* App shell */
.app-shell{display:flex;min-height:100vh;background:#eef3f0}
.sidebar{width:300px;background:linear-gradient(180deg,#118c74 0%,#3dbb69 55%,#ff922f 100%);padding:24px 18px;color:#fff;position:sticky;top:0;height:100vh;box-shadow:16px 0 36px rgba(17,40,31,.14)}
.brand{display:flex;align-items:center;gap:14px;padding:6px 8px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}
.brand-mark{width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#4fd38f,#b7f1d1);color:#163d2d;display:grid;place-items:center;font-weight:800;box-shadow:0 12px 24px rgba(0,0,0,.18)}
.brand h1{font-size:24px;margin:0 0 2px}
.brand p{margin:0;color:rgba(255,255,255,.72);font-size:13px}
.menu{display:flex;flex-direction:column;gap:8px}
.menu-link{padding:13px 14px;border-radius:14px;color:rgba(255,255,255,.82);font-weight:500;transition:.2s ease}
.menu-link:hover,.menu-link.active{background:rgba(255,255,255,.14);color:#fff;transform:translateX(2px)}
.sidebar-footer{position:absolute;left:18px;right:18px;bottom:20px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.08);font-size:13px;color:rgba(255,255,255,.78);line-height:1.6}
.main{flex:1;padding:26px}
.topbar{background:rgba(255,255,255,.82);backdrop-filter:blur(12px);border:1px solid rgba(22,57,43,.08);padding:18px 24px;border-radius:22px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 12px 24px rgba(23,60,45,.06);margin-bottom:24px}
.topbar h2{margin:0;font-size:28px;color:#24473a}
.toggle-sidebar{display:none;border:0;background:#edf5f1;padding:10px 12px;border-radius:12px;margin-right:12px}
.topbar>div:first-child{display:flex;align-items:center}
.topbar-right{display:flex;gap:12px;align-items:center}
.notif-pill,.user-pill{padding:10px 14px;border-radius:999px;background:#f2f6f4;font-size:14px;color:#385748;border:1px solid #e3ece7}
.notif-pill span{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:#2e7d5b;color:#fff;margin-left:8px;padding:0 6px}
.user-pill small{margin-left:8px;color:#6d8d7a}

.flash{padding:14px 16px;border-radius:16px;margin:16px 0;font-weight:600}
.flash.success{background:#eaf8ef;color:#22623f;border:1px solid #bce2ca}
.flash.error{background:#fff1f0;color:#a23d35;border:1px solid #f3c1bc}

.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-bottom:22px}
.compact-4{grid-template-columns:repeat(4,1fr)}
.stat-card{background:linear-gradient(180deg,#ffffff,#f6fbf8);border:1px solid #e4efe8;border-radius:22px;padding:22px;box-shadow:0 12px 28px rgba(34,70,51,.06)}
.stat-card span{display:block;color:#6e8579;font-size:14px;margin-bottom:10px}
.stat-card strong{font-size:34px;color:#234738;line-height:1.1}
.cards{display:grid;gap:20px;margin-bottom:22px}
.cards.two{grid-template-columns:1.15fr .85fr}
.cards.three{grid-template-columns:repeat(3,1fr)}
.panel-card{background:#fff;border:1px solid #e4efe8;border-radius:24px;padding:24px;box-shadow:0 18px 30px rgba(31,63,47,.06)}
.panel-card h3,.panel-card h4{margin-top:0}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.section-head h3{margin:0;color:#24473a;font-size:22px}
.section-head small,.muted,.search-note{color:#79887f}
.fake-chart{display:flex;flex-direction:column;gap:14px}
.bar-row{display:grid;grid-template-columns:180px 1fr 44px;align-items:center;gap:12px}
.bar-row label{font-size:14px;color:#3d5c4d;font-weight:600}
.bar{height:14px;background:#edf4ef;border-radius:999px;overflow:hidden}
.bar span{display:block;height:100%;background:linear-gradient(90deg,#46c17f,#2e7d5b)}
.timeline{display:flex;flex-direction:column;gap:14px}
.timeline-item{padding:16px 18px;background:#f8fbf9;border:1px solid #e5efe8;border-radius:18px}
.timeline-item strong{display:block;margin-bottom:6px;color:#274d3c}
.timeline-item p{margin:0 0 6px;color:#677a70;font-size:14px}
.timeline-item small{color:#83948a}
.info-strip{background:linear-gradient(135deg,#eff9f2,#ffffff)}
.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.step-box{background:#fff;border:1px solid #e4efe8;border-radius:18px;padding:18px;font-weight:600;color:#2d5a46;text-align:center}
.data-table{width:100%;border-collapse:separate;border-spacing:0 10px}
.data-table th{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#71887c;padding:0 14px 8px;text-align:left}
.data-table td{background:#f9fbfa;padding:14px;border-top:1px solid #edf2ef;border-bottom:1px solid #edf2ef}
.data-table tr td:first-child{border-left:1px solid #edf2ef;border-radius:16px 0 0 16px}
.data-table tr td:last-child{border-right:1px solid #edf2ef;border-radius:0 16px 16px 0}
.data-table tbody tr:hover td{background:#f2f8f4}
.status{display:inline-flex;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize}
.status.diajukan{background:#fff2d9;color:#8f6100}
.status.diproses,.status.diverifikasi{background:#e5f3ff;color:#1e5d8c}
.status.selesai{background:#e7faed;color:#247048}
.status.ditolak{background:#ffe7e5;color:#b54842}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.form-grid.compact{grid-template-columns:1fr}
.form-grid .full{grid-column:1/-1}
.form-grid label{display:flex;flex-direction:column;gap:8px;color:#365646;font-weight:600}
input[type=text],input[type=password],input[type=file],select,textarea{width:100%;padding:13px 14px;border-radius:14px;border:1px solid #dfe9e3;background:#fbfcfc;color:#30443a}
textarea{min-height:112px;resize:vertical}
.row-actions{display:flex;gap:10px;flex-wrap:wrap}
.stack-form{display:flex;flex-direction:column;gap:10px}
.template-box{max-height:160px;overflow:auto;padding:14px;border-radius:16px;background:#f6faf7;border:1px solid #e4efe8;line-height:1.6;color:#5a6f63}
.export-box{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:14px;border:0;font-weight:700;cursor:pointer;transition:.2s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(90deg,#ff8f2f,#31b566);color:#fff;box-shadow:0 12px 20px rgba(49,181,102,.22)}
.btn-secondary{background:linear-gradient(90deg,#ffb24d,#43be71);color:#fff}
.btn-outline,.btn-ghost{background:#f4f8f5;color:#2e6950;border:1px solid #dce9e1}
.btn-danger{background:linear-gradient(90deg,#ec7d72,#cb5348);color:#fff}
.form-card{max-width:980px}
.tone-soft{background:linear-gradient(180deg,#fff,#f7fbf9)}

@media (max-width: 1200px){
  .hero-layout{grid-template-columns:1fr;gap:24px;padding-top:40px}
  .tracking-card-wrap{max-width:420px;margin:0 auto}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .cards.two,.cards.three,.flow-grid,.step-grid,.stats-pill-box{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 920px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);z-index:40;transition:.25s ease}
  body.sidebar-collapsed .sidebar, body:not(.sidebar-collapsed) .sidebar{transform:translateX(-100%)}
  body.show-sidebar .sidebar{transform:translateX(0)}
  .toggle-sidebar{display:inline-block}
  .main{padding:16px}
  .topbar{padding:16px}
  .topbar-right{flex-wrap:wrap;justify-content:flex-end}
  .public-nav{display:none}
}
@media (max-width: 768px){
  .container,.narrow{width:min(100% - 24px,1000px)}
  .hero-campus{font-size:48px}
  .flow-section h2,.stats-band h2{font-size:34px}
  .stats-grid,.compact-4,.cards.two,.cards.three,.flow-grid,.step-grid,.stats-pill-box,.form-grid{grid-template-columns:1fr}
  .public-topbar-right{gap:10px}
  .office-phone{display:none}
  .data-table{display:block;overflow:auto}
  .target-illustration{display:none}
}


/* New public accents */
.public-logo,.tracking-logo-img,.brand-logo-app{object-fit:contain;background:#fff;border-radius:16px;border:1px solid rgba(110,110,140,.12);box-shadow:0 8px 18px rgba(53,53,76,.08)}
.public-logo{width:52px;height:52px;padding:6px}
.tracking-logo-img{width:64px;height:64px;padding:6px}
.brand-logo-app{width:50px;height:50px;padding:6px}
.animated-campus{display:inline-block;animation:campusFloat 3.6s ease-in-out infinite, campusGlow 5s ease-in-out infinite}
@keyframes campusFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes campusGlow{
  0%,100%{text-shadow:0 0 0 rgba(109,86,216,0)}
  50%{text-shadow:0 10px 28px rgba(49,181,102,.22)}
}
.btn-anim{transition:transform .22s ease, box-shadow .22s ease, filter .22s ease}
.btn-anim:hover{transform:translateY(-3px) scale(1.01);filter:saturate(1.04)}
.cta-bubble.green{background:linear-gradient(90deg,#ff8f2f,#31b566,#168a74)}
.grad-button{border:0;cursor:pointer;width:100%}
.public-form-strip{background:#f7f7f8;padding:16px 0 65px}
.landing-form-card{max-width:none}
.service-list-public{display:flex;flex-direction:column;gap:14px;max-height:680px;overflow:auto;padding-right:4px}
.service-public-item{padding:16px 18px;border:1px solid #e7eceb;border-radius:18px;background:linear-gradient(180deg,#fff,#f6fbf8)}
.service-public-item strong{display:block;color:#26473a;margin-bottom:6px}
.service-public-item span{display:inline-block;padding:6px 10px;border-radius:999px;background:#edf6f1;color:#2a6a4d;font-size:12px;font-weight:700;margin-bottom:8px}
.service-public-item p{margin:0;color:#6f8078;font-size:14px;line-height:1.6}
.survey-section{background:#eef3f0;padding:10px 0 78px}
.survey-info-box{margin-top:18px;padding:18px;border-radius:18px;background:#f7fbf8;border:1px solid #e1ece4;color:#5e7168;line-height:1.7}
.inline-preview-settings{margin-top:4px}
.settings-preview-box{padding:18px;border-radius:18px;background:#f7fbf8;border:1px dashed #cfe1d7}
.settings-logo-preview{max-width:110px;max-height:110px;display:block}
.tracking-page{background:linear-gradient(180deg,#f7f1f4,#eef3f0)}
.tracking-page-wrap{padding:34px 0 60px}
.tracking-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.tracking-panel-hero{margin-bottom:20px}
.tracking-inline-form{display:flex;gap:12px;flex-wrap:wrap}
.tracking-inline-form input{flex:1;min-width:260px}
.tracking-table td{background:#fff}
.public-service-cards .panel-card,.public-form-grid .panel-card,.survey-section .panel-card{animation:fadeRise .5s ease}
@keyframes fadeRise{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
.public-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:linear-gradient(90deg,#ff8b2b,#31b566);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.public-nav a:hover:after{transform:scaleX(1)}
.hero-center-copy h1{max-width:720px;margin-left:auto;margin-right:auto}


/* Public extra pages */
.admin-login-page{display:flex;align-items:center;min-height:100vh}
.admin-login-card{max-width:520px;margin:50px auto}
.centered-login-logo{justify-content:center;margin-bottom:12px}
.guestbook-camera-box{padding:16px;border:1px dashed #d7dde7;border-radius:18px;background:#fafbfd}
.guestbook-camera-box video,.guestbook-camera-box img{width:100%;max-width:520px;border-radius:18px;background:#e9edf3;display:block}
.guestbook-camera-box img{margin-top:12px}
.public-service-cards .btn{margin-top:8px}

/* Admin recolor purple-red gradient */
.role-admin .sidebar{background:linear-gradient(180deg,#118c74 0%,#3dbb69 55%,#ff922f 100%)}
.role-admin .brand-mark{background:linear-gradient(145deg,#ffe0b9,#d4ffd8);color:#19634a}
.role-admin .notif-pill span{background:#2fb666}
.role-admin .menu-link:hover,.role-admin .menu-link.active{background:rgba(255,255,255,.16)}
.role-admin .btn-primary{background:linear-gradient(90deg,#ff8f2f,#31b566);box-shadow:0 12px 20px rgba(49,181,102,.23)}
.role-admin .btn-secondary{background:linear-gradient(90deg,#ffb14a,#45be72)}
.role-admin .btn-outline,.role-admin .btn-ghost{color:#1f8f53}
.role-admin .status.diproses,.role-admin .status.diverifikasi{background:#e8fff0;color:#1f8f53}
.role-admin .bar span{background:linear-gradient(90deg,#ff8f2f,#31b566)}

.status.permohonan-diterima{background:#fff2d9;color:#8f6100}
.status.permohonan-direview{background:#e8efff;color:#355faa}
.status.permohonan-diproses,.status.selesai-diproses{background:#efe7ff;color:#6c32b1}
.status.unduh-file,.status.ambil-langsung{background:#e7faed;color:#247048}
.progress-line{height:10px;background:#ebe7f7;border-radius:999px;overflow:hidden;margin:10px 0 6px}
.progress-line span{display:block;height:100%;background:linear-gradient(90deg,#ff8f2f,#31b566);border-radius:999px}
.progress-line.large{height:14px}
.progress-label{font-weight:700;color:#1d8f53}
.flow-mini-bar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.flow-mini-bar span{padding:8px 12px;border-radius:999px;background:#eefcf3;color:#1d8f53;font-size:12px;font-weight:700}
.progress-panel{margin-bottom:18px}


.export-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:8px}
.export-toolbar label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#5e4b7d}
.survey-form-card{background:#faf8ff}
.survey-main-title{text-align:center;font-size:26px;margin-bottom:18px;color:#2c2048}
.survey-form-layout{display:flex;flex-direction:column;gap:14px}
.survey-box{border:1px solid #d9d9e8;border-radius:16px;padding:16px;background:#fff}
.survey-box-title{text-align:center;font-weight:800;color:#2b1f4e;padding:10px 0 16px 0}
.survey-box-title small{display:block;font-weight:600;margin-top:6px}
.survey-grid-1,.survey-grid-2{display:grid;gap:16px}
.survey-grid-2{grid-template-columns:1.4fr 1fr}
.label-inline{font-weight:700;margin-bottom:8px;color:#34264f}
.radio-grid{display:flex;gap:16px;flex-wrap:wrap}
.radio-grid label{font-size:14px;color:#362a52}
.edu-grid label,.job-grid label{min-width:74px}
.survey-questions-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:16px}
.survey-question-item{padding:6px 0}
.survey-question-text{font-weight:600;color:#2f2350;margin-bottom:8px;line-height:1.6}
.survey-admin-table td{vertical-align:top}
@media (max-width: 900px){.survey-grid-2,.survey-questions-grid{grid-template-columns:1fr}}


.question-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.question-chart-box{background:#fff;border:1px solid #ece8ff;border-radius:18px;padding:14px}.question-chart-box h4{margin:0 0 10px;font-size:14px;color:#4b2d7f}.bar-row.mini{grid-template-columns:1.6fr 1fr 40px;gap:8px;margin:8px 0}.bar-row.mini label{font-size:12px;line-height:1.35}.bar-row.mini b{font-size:12px}.bar-row .bar span{background:linear-gradient(90deg,#ff8f2f,#31b566)}@media(max-width:900px){.question-chart-grid{grid-template-columns:1fr}}


/* Index popup maklumat */
.index-popup-overlay{position:fixed;inset:0;background:rgba(18,37,26,.55);display:none;align-items:center;justify-content:center;padding:24px;z-index:2000;backdrop-filter:blur(3px)}
.index-popup-overlay.show{display:flex;animation:fadeIn .28s ease}
.index-popup-card{position:relative;max-width:min(1100px,92vw);max-height:90vh;background:#fff;border-radius:24px;padding:14px;box-shadow:0 24px 60px rgba(20,55,30,.28);overflow:auto;border:4px solid rgba(255,143,47,.35)}
.index-popup-card img{display:block;max-width:100%;height:auto;border-radius:18px}
.index-popup-close{position:absolute;right:14px;top:14px;border:0;border-radius:999px;width:42px;height:42px;background:linear-gradient(90deg,#ff8f2f,#31b566);color:#fff;font-size:22px;font-weight:800;cursor:pointer;box-shadow:0 10px 20px rgba(49,181,102,.28)}
.index-popup-hint{position:absolute;left:18px;bottom:14px;background:rgba(255,255,255,.92);color:#26563a;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid #dcefe0}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
