:root{--bg:#f6f8fc;--panel:#fff;--ink:#111827;--muted:#667085;--line:#e6eaf0;--brand:#4f46e5;--brand2:#7c3aed;--ok:#059669;--warn:#d97706;--bad:#dc2626;--dark:#07111f;--radius:20px;--shadow:0 18px 50px rgba(16,24,40,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1160px,calc(100% - 32px));margin:auto}.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(230,234,240,.8)}.nav{height:72px;display:flex;align-items:center;gap:24px}.brand{font-weight:900;letter-spacing:.08em}.brand span{color:var(--brand)}.navlinks{display:flex;gap:18px;margin-left:auto;align-items:center}.btn{border:0;border-radius:14px;padding:12px 18px;font-weight:750;cursor:pointer;transition:.2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:white;box-shadow:0 12px 28px rgba(79,70,229,.24)}.btn-soft{background:#eef2ff;color:#3730a3}.btn-ghost{background:white;border:1px solid var(--line)}.btn-danger{background:#fee2e2;color:#991b1b}.btn-success{background:#d1fae5;color:#065f46}.hero{padding:84px 0 64px;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(10px);opacity:.5;pointer-events:none}.hero:before{width:420px;height:420px;background:#ddd6fe;right:-120px;top:-120px;animation:float 8s ease-in-out infinite}.hero:after{width:280px;height:280px;background:#bfdbfe;left:-80px;bottom:-120px;animation:float 10s ease-in-out infinite reverse}@keyframes float{50%{transform:translateY(24px) translateX(-16px)}}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:center;position:relative}.eyebrow{display:inline-flex;gap:8px;align-items:center;background:#eef2ff;color:#4338ca;border:1px solid #dfe3ff;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:800}.hero h1{font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.055em;margin:18px 0 22px}.hero p{font-size:18px;line-height:1.7;color:var(--muted);max-width:720px}.hero-card{background:rgba(255,255,255,.88);border:1px solid white;border-radius:28px;padding:28px;box-shadow:var(--shadow);backdrop-filter:blur(20px)}.hero-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.metric{background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:18px}.metric b{display:block;font-size:22px}.section{padding:70px 0}.section h2{font-size:34px;letter-spacing:-.03em;margin:0 0 12px}.section-lead{color:var(--muted);max-width:720px;line-height:1.7}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 8px 28px rgba(16,24,40,.04)}.card h3{margin:0 0 10px}.badge{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.badge-ok{background:#d1fae5;color:#065f46}.badge-warn{background:#fef3c7;color:#92400e}.badge-info{background:#dbeafe;color:#1e40af}.badge-muted{background:#f2f4f7;color:#475467}.form-card{background:white;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:800;color:#344054}.input{width:100%;border:1px solid #d0d5dd;border-radius:13px;padding:12px 14px;background:#fff;outline:none;transition:.18s}.input:focus{border-color:#818cf8;box-shadow:0 0 0 4px rgba(99,102,241,.12)}.notice{padding:14px 16px;border-radius:14px;background:#f8fafc;border:1px solid var(--line);color:#475467;line-height:1.6}.notice.ok{background:#ecfdf3;border-color:#abefc6;color:#067647}.notice.warn{background:#fffaeb;border-color:#fedf89;color:#b54708}.notice.bad{background:#fef3f2;border-color:#fecdca;color:#b42318}.hidden{display:none!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:#0b1220;color:white;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar .brand{padding:8px 10px 24px}.side-nav{display:flex;flex-direction:column;gap:6px}.side-nav button{all:unset;cursor:pointer;padding:12px 14px;border-radius:12px;color:#b8c1d1;font-weight:650;transition:.18s}.side-nav button:hover,.side-nav button.active{background:#182235;color:white}.side-nav .sep{height:1px;background:#243045;margin:10px 8px}.app-main{min-width:0}.app-header{height:72px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 26px;position:sticky;top:0;z-index:20}.app-header .right{margin-left:auto;display:flex;align-items:center;gap:12px}.content{padding:26px}.page-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:22px}.page-head h1{margin:0;font-size:28px;letter-spacing:-.03em}.page-head p{margin:5px 0 0;color:var(--muted)}.page-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.kpi{background:white;border:1px solid var(--line);border-radius:18px;padding:18px}.kpi .label{font-size:13px;color:var(--muted);font-weight:700}.kpi .value{font-size:30px;font-weight:900;letter-spacing:-.04em;margin-top:8px}.kpi .sub{font-size:12px;color:var(--muted);margin-top:6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:20px;overflow:hidden}.panel h3{margin:0 0 16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:white}.table{width:100%;border-collapse:collapse;min-width:780px}.table th,.table td{padding:12px 14px;border-bottom:1px solid #eef1f5;text-align:left;font-size:13px;vertical-align:middle}.table th{background:#f8fafc;color:#475467;position:sticky;top:0}.table tr:last-child td{border-bottom:0}.actions{display:flex;gap:8px}.actions .btn{padding:8px 10px;border-radius:10px;font-size:12px}.bar-row{display:grid;grid-template-columns:160px 1fr 70px;gap:12px;align-items:center;margin:12px 0}.bar{height:10px;background:#eef2f6;border-radius:999px;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:inherit;transition:width .6s ease}.funnel{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.funnel-step{flex:1;min-width:120px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fafbfc}.funnel-step b{font-size:22px;display:block}.funnel-arrow{color:#98a2b3}.modal{position:fixed;inset:0;background:rgba(3,7,18,.64);display:grid;place-items:center;padding:20px;z-index:100}.modal-card{width:min(640px,100%);max-height:90vh;overflow:auto;background:white;border-radius:24px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.camera-box{background:#020617;border-radius:18px;overflow:hidden;aspect-ratio:16/10;position:relative}.camera-box video{width:100%;height:100%;object-fit:cover}.camera-reticle{position:absolute;left:50%;top:50%;width:210px;height:210px;transform:translate(-50%,-50%);border:3px solid rgba(255,255,255,.85);border-radius:24px;box-shadow:0 0 0 999px rgba(0,0,0,.2)}.participant-shell{min-height:100vh;background:linear-gradient(180deg,#f5f3ff 0,#f8fafc 380px)}.participant-wrap{width:min(820px,calc(100% - 28px));margin:auto;padding:34px 0 80px}.welcome{padding:34px;border-radius:28px;background:linear-gradient(135deg,#111827,#3730a3);color:white;position:relative;overflow:hidden}.welcome:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-80px;top:-90px;background:rgba(255,255,255,.12);animation:float 7s ease-in-out infinite}.status-list{display:grid;gap:12px;margin-top:20px}.status-item{display:flex;align-items:center;gap:14px;background:white;border:1px solid var(--line);padding:16px;border-radius:16px}.status-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f2f4f7;font-weight:900}.status-dot.ok{background:#d1fae5;color:#047857}.status-dot.wait{background:#fef3c7;color:#b45309}.exam-card{margin-top:18px;background:white;border:1px solid var(--line);border-radius:22px;padding:22px}.success-mark{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#d1fae5;color:#047857;font-size:38px;animation:pop .5s cubic-bezier(.2,.8,.2,1)}@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}.display-body{background:#050b15;color:#fff;overflow:hidden}.display{height:100vh;display:flex;flex-direction:column;padding:34px 46px;background:radial-gradient(circle at 85% 15%,rgba(99,102,241,.25),transparent 35%),radial-gradient(circle at 10% 90%,rgba(14,165,233,.15),transparent 30%),#050b15}.display-head{display:flex;align-items:center}.display-brand{font-weight:950;letter-spacing:.14em}.live-dot{margin-left:auto;font-size:13px;color:#86efac}.display-main{flex:1;display:grid;place-items:center;min-height:0}.scene{width:100%;animation:sceneIn .45s ease both}@keyframes sceneIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.scene-title{text-align:center;font-size:clamp(38px,5vw,72px);letter-spacing:-.05em;margin:0}.scene-sub{text-align:center;color:#9fb0c6;font-size:clamp(16px,2vw,24px);margin-top:14px}.display-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:38px}.display-kpi{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);border-radius:24px;padding:28px;text-align:center;backdrop-filter:blur(10px)}.display-kpi b{font-size:clamp(36px,5vw,68px);display:block}.display-kpi span{color:#a8b6c8;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.display-bars{width:min(1050px,100%);margin:34px auto 0}.display-bar-row{display:grid;grid-template-columns:240px 1fr 110px;gap:18px;align-items:center;margin:16px 0;font-size:18px}.display-bar{height:18px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}.display-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#818cf8,#22d3ee);transition:width .7s}.countdown{font-size:clamp(72px,13vw,180px);font-weight:950;letter-spacing:-.07em;text-align:center;font-variant-numeric:tabular-nums}.ticker{height:52px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;color:#b7c4d6;gap:20px}.ticker .time{margin-left:auto;color:#fff;font-weight:800}.winner-card{text-align:center}.medal{font-size:110px;animation:medal 1.2s ease both}@keyframes medal{0%{opacity:0;transform:scale(.2) rotate(-20deg)}60%{transform:scale(1.15) rotate(5deg)}100%{opacity:1;transform:scale(1)}}.winner-name{font-size:clamp(52px,8vw,108px);font-weight:950;letter-spacing:-.055em;margin:12px 0}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;width:10px;height:16px;background:white;animation:fall 3s linear infinite}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 70% 20%,#e0e7ff,transparent 34%),var(--bg)}.login-card{width:min(440px,100%);background:white;border:1px solid var(--line);border-radius:26px;padding:30px;box-shadow:var(--shadow)}.muted{color:var(--muted)}.small{font-size:12px}.text-right{text-align:right}.mt{margin-top:18px}.mb{margin-bottom:18px}@media(max-width:980px){.hero-grid,.grid-2,.grid-3{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;left:-280px;width:260px;transition:.2s}.sidebar.open{left:0}.app-header{padding:0 16px}.content{padding:18px}.display{padding:26px}.display-kpis{grid-template-columns:1fr 1fr}.display-bar-row{grid-template-columns:160px 1fr 85px}}@media(max-width:680px){.navlinks a:not(.btn){display:none}.hero{padding-top:52px}.hero-grid{gap:26px}.cards,.form-grid,.kpis{grid-template-columns:1fr}.field.full{grid-column:auto}.container{width:min(100% - 22px,1160px)}.form-card{padding:20px}.welcome{padding:24px}.page-head{flex-direction:column}.page-actions{margin-left:0}.display{padding:20px}.display-kpis{grid-template-columns:1fr 1fr;gap:10px}.display-kpi{padding:18px}.display-bar-row{grid-template-columns:110px 1fr 68px;font-size:13px}.ticker{font-size:12px}.scene-title{font-size:40px}}

/* v0.3.0 PUSKANAS brand, realtime UX, responsive admin */
:root{--pus-blue:#0875ed;--pus-blue-dark:#075fc6;--pus-orange:#ff9418;--pus-orange2:#ff7a00;--brand:var(--pus-blue);--brand2:#005dcc}
.brand-logo{display:flex;align-items:center;gap:10px;min-width:0}.brand-logo img.full{width:168px;height:auto;display:block}.brand-logo img.star{width:38px;height:38px;object-fit:contain;display:none}.sidebar .brand-logo{padding:4px 8px 18px}.sidebar .brand-logo img.full{width:184px}.brand-logo.compact img.full{width:150px}
.process-loader{position:fixed;inset:0;display:grid;place-items:center;background:rgba(246,248,252,.78);backdrop-filter:blur(7px);z-index:300;transition:opacity .2s}.loader-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 28px;border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 25px 70px rgba(0,50,120,.16);font-weight:800;color:#344054}.loader-card img{width:72px;height:72px;object-fit:contain;animation:pusStar 1.05s cubic-bezier(.5,.05,.35,1) infinite}.loader-ring{position:absolute;width:92px;height:92px;border:3px solid rgba(8,117,237,.12);border-top-color:var(--pus-orange);border-radius:50%;top:12px;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pusStar{0%,100%{transform:scale(.9) rotate(-7deg);filter:drop-shadow(0 5px 12px rgba(8,117,237,.2))}50%{transform:scale(1.08) rotate(7deg);filter:drop-shadow(0 8px 18px rgba(8,117,237,.38))}}
.page-curtain{position:fixed;inset:0;z-index:290;background:#fff;display:grid;place-items:center;transition:opacity .28s ease,visibility .28s;opacity:1;visibility:visible;pointer-events:none}.page-curtain img{width:82px;animation:pusStar .9s ease-in-out infinite}.page-curtain.ready{opacity:0;visibility:hidden}.page-entered main,.page-entered .app-main{animation:pageIn .35s ease both}@keyframes pageIn{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}.content.page-refresh{animation:contentIn .25s ease}@keyframes contentIn{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
.toast{position:fixed;right:18px;bottom:18px;z-index:350;box-shadow:var(--shadow);max-width:380px;transform:translateY(18px);opacity:0;transition:.2s}.toast.show{transform:none;opacity:1}
.password-wrap{position:relative}.password-wrap .input{padding-right:48px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:10px;background:#f2f4f7;color:#344054;cursor:pointer;font-size:18px}
.app-shell{grid-template-columns:238px minmax(0,1fr);transition:grid-template-columns .22s ease}.sidebar{width:238px;transition:width .22s ease,padding .22s ease;overflow-x:hidden}.side-nav{gap:3px}.side-nav button{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:13px;white-space:nowrap}.side-nav button .nav-ico{width:24px;text-align:center;font-size:16px;flex:0 0 24px}.side-nav button .nav-label{overflow:hidden;transition:opacity .15s}.nav-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#718096;font-weight:900;padding:14px 12px 5px}.app-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.app-shell.sidebar-collapsed .sidebar{width:76px;padding-left:10px;padding-right:10px}.app-shell.sidebar-collapsed .brand-logo img.full{display:none}.app-shell.sidebar-collapsed .brand-logo img.star{display:block}.app-shell.sidebar-collapsed .brand-logo{justify-content:center;padding-left:0;padding-right:0}.app-shell.sidebar-collapsed .side-nav button{justify-content:center;padding:11px}.app-shell.sidebar-collapsed .side-nav .nav-label,.app-shell.sidebar-collapsed .nav-group-title,.app-shell.sidebar-collapsed .side-nav .sep{display:none}.app-shell.sidebar-collapsed .side-nav button{position:relative}.app-shell.sidebar-collapsed .side-nav button:hover:after{content:attr(data-title);position:absolute;left:58px;top:50%;transform:translateY(-50%);background:#111827;color:#fff;padding:7px 10px;border-radius:9px;white-space:nowrap;z-index:40;box-shadow:var(--shadow)}
.event-hero-image{width:100%;height:220px;object-fit:cover;border-radius:22px;border:1px solid var(--line);background:#eef2f6}.media-preview{position:relative}.media-preview .empty-media{height:170px;border:1px dashed #b8c3d1;border-radius:18px;display:grid;place-items:center;color:#667085;background:#f8fafc}.maps-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:17px;background:#eff8ff;border:1px solid #b2ddff}.maps-card .maps-ico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:white;color:#026aa2;font-size:22px}
.chat-layout{display:grid;grid-template-columns:minmax(230px,320px) minmax(0,1fr);gap:16px;min-height:520px}.chat-list{border:1px solid var(--line);border-radius:18px;overflow:auto;background:#fff}.chat-thread-item{width:100%;display:block;padding:14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer}.chat-thread-item:hover,.chat-thread-item.active{background:#eff8ff}.chat-thread-item:focus-visible{outline:3px solid rgba(22,133,248,.24);outline-offset:-3px}.chat-thread-item:last-child{border-bottom:0}.unread-dot{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:var(--pus-orange);color:#fff;font-size:11px;font-weight:900}.chat-panel{border:1px solid var(--line);border-radius:18px;background:#fff;display:flex;flex-direction:column;min-height:520px}.chat-messages{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;max-height:520px}.chat-bubble{max-width:78%;padding:11px 13px;border-radius:15px;background:#f2f4f7;line-height:1.45}.chat-bubble.mine{align-self:flex-end;background:#e0f2fe;color:#075985}.chat-bubble .meta{font-size:10px;color:#667085;margin-top:5px}.chat-compose{display:flex;gap:9px;border-top:1px solid var(--line);padding:12px}.chat-compose .input{flex:1}
.event-banner{position:relative;overflow:hidden;border-radius:26px;min-height:220px;background:linear-gradient(135deg,#08204d,#0875ed);color:#fff;background-size:cover;background-position:center}.event-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,12,31,.85),rgba(2,12,31,.35))}.event-banner-content{position:relative;z-index:1;padding:30px;max-width:670px}.event-banner h1{margin:10px 0;font-size:clamp(28px,5vw,46px)}.event-banner p{color:#e5f1ff}.participant-menu{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.participant-menu .btn.active{background:#e0f2fe;border-color:#7dd3fc;color:#075985}
.manual-token-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}
.scoring-rule{padding:12px 14px;border:1px solid #b2ddff;background:#eff8ff;border-radius:14px;font-size:13px;line-height:1.6}.integration-steps{counter-reset:step;display:grid;gap:10px}.integration-step{padding:14px 14px 14px 54px;border:1px solid var(--line);border-radius:15px;position:relative;background:#fff}.integration-step:before{counter-increment:step;content:counter(step);position:absolute;left:14px;top:13px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eaf3ff;color:#075fc6;font-weight:900}
.display{position:relative;background-size:cover!important;background-position:center!important}.display:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(3,9,20,.84),rgba(4,15,34,.68));z-index:0}.display>*{position:relative;z-index:1}.display-logo{height:42px;width:auto;object-fit:contain;filter:drop-shadow(0 5px 14px rgba(0,0,0,.18))}.display-wallpaper-note{font-size:11px;color:#8ea1b7;margin-left:14px}
.crud-actions{display:flex;gap:6px;flex-wrap:wrap}.btn-icon{width:36px;height:36px;padding:0;border-radius:10px}.live-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#ecfdf3;color:#047857;font-weight:800;font-size:11px}.live-pill:before{content:"";width:7px;height:7px;background:#10b981;border-radius:50%;animation:pulseLive 1.4s infinite}@keyframes pulseLive{50%{box-shadow:0 0 0 6px rgba(16,185,129,.12)}}
@media(max-width:900px){.app-shell,.app-shell.sidebar-collapsed{display:block}.sidebar,.app-shell.sidebar-collapsed .sidebar{position:fixed;z-index:70;left:-260px;top:0;width:238px;height:100vh;padding:22px 16px;transition:left .2s}.sidebar.open,.app-shell.sidebar-collapsed .sidebar.open{left:0}.app-shell.sidebar-collapsed .brand-logo img.full{display:block}.app-shell.sidebar-collapsed .brand-logo img.star{display:none}.app-shell.sidebar-collapsed .side-nav .nav-label,.app-shell.sidebar-collapsed .nav-group-title,.app-shell.sidebar-collapsed .side-nav .sep{display:block}.app-shell.sidebar-collapsed .side-nav button{justify-content:flex-start;padding:10px 12px}.chat-layout{grid-template-columns:1fr}.chat-list{max-height:240px}.app-header{padding:0 12px}.content{padding:18px}.event-hero-image{height:180px}}

/* v0.3.0 participant, auth, logo and live-display refinements */
.brand-image{display:flex;align-items:center}.brand-image img{display:block;width:178px;max-height:52px;object-fit:contain;object-position:left center}.participant-topbar .brand-image img{width:166px}.light-eyebrow{background:rgba(255,255,255,.13)!important;border-color:rgba(255,255,255,.2)!important;color:#fff!important}
.password-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:10px;background:#f2f4f7;color:#344054;cursor:pointer;font-size:18px}.password-eye:hover,.password-toggle:hover{background:#e4e7ec}
.auth-page{min-height:100vh;background:#eef5ff}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(380px,.9fr) minmax(440px,1.1fr)}.auth-brand-panel{position:relative;overflow:hidden;padding:54px clamp(34px,5vw,82px);background:linear-gradient(145deg,#031735,#075fc6 58%,#0875ed);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.auth-brand-panel:after{content:"";position:absolute;inset:auto -15% -45% 25%;height:65%;background:radial-gradient(circle,rgba(255,148,24,.28),transparent 62%);pointer-events:none}.auth-full-logo{width:min(320px,70%);height:auto;filter:drop-shadow(0 12px 32px rgba(0,0,0,.18));position:relative;z-index:1}.auth-brand-panel h1{font-size:clamp(36px,4vw,62px);line-height:1.02;letter-spacing:-.055em;max-width:690px;margin:16px 0}.auth-brand-panel p{font-size:18px;line-height:1.7;color:#dbeafe;max-width:630px}.auth-star-watermark{position:absolute;right:-80px;bottom:-90px;width:390px;opacity:.18;transform:rotate(-9deg)}.auth-card-wrap{display:grid;place-items:center;padding:34px;background:linear-gradient(135deg,#f8fbff,#edf4ff)}.auth-card{width:min(470px,100%);background:rgba(255,255,255,.96);border:1px solid #e5edf7;border-radius:28px;padding:34px;box-shadow:0 30px 80px rgba(2,48,104,.12)}.auth-star{width:64px;height:64px;object-fit:contain;margin-bottom:12px}.auth-card h2{font-size:30px;margin:6px 0 8px}.single-col{grid-template-columns:1fr}.btn-wide{width:100%}.auth-links{display:flex;justify-content:space-between;gap:14px;margin-top:20px;font-size:13px;font-weight:750;color:#075fc6}.small-link{display:inline-block;margin-top:20px;color:#075fc6;font-weight:700;font-size:13px}
.participant-welcome{display:flex;align-items:center;gap:24px;background:linear-gradient(125deg,#041932,#075fc6 62%,#0875ed);padding:30px}.participant-welcome h1{font-size:36px;margin:12px 0 6px}.participant-welcome p{color:#d7eaff;margin:0;line-height:1.6}.welcome-star{width:94px;height:94px;object-fit:contain;filter:drop-shadow(0 12px 28px rgba(0,0,0,.22));animation:pusStar 2.4s ease-in-out infinite}.participant-event-card{background:#fff;border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:var(--shadow);margin-top:20px}.participant-event-banner{min-height:205px;background:linear-gradient(120deg,#031735,#0875ed);background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end}.participant-event-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,12,31,.85),rgba(1,12,31,.24))}.event-banner-overlay{position:relative;z-index:1;color:#fff;padding:26px;width:100%}.event-banner-overlay h2{font-size:clamp(26px,4vw,38px);margin:10px 0 6px;letter-spacing:-.03em}.event-banner-overlay p{margin:0;color:#eaf4ff}.event-meta-line{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:13px;color:#dbeafe}.participant-event-body{padding:22px}.modern-status-list{grid-template-columns:repeat(4,1fr);gap:10px}.modern-status-list .status-item{padding:13px}.participant-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.payment-bank{background:#fff8ed;border-color:#fed7aa}.exam-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.exam-card-head h3{margin:9px 0 0}.exam-card-head>span{font-size:12px;font-weight:850;color:#075fc6;background:#eaf3ff;padding:8px 10px;border-radius:999px}.completed-exam{text-align:center;background:linear-gradient(180deg,#fff,#f7fbff)}.result-processing{display:flex;text-align:left;align-items:center;gap:12px;background:#eff8ff;border:1px solid #b2ddff;border-radius:16px;padding:14px;margin-top:16px}.result-processing small{display:block;color:#475467;margin-top:3px}.processing-dot{width:12px;height:12px;border-radius:50%;background:#0875ed;box-shadow:0 0 0 0 rgba(8,117,237,.3);animation:processingPulse 1.4s infinite}@keyframes processingPulse{50%{box-shadow:0 0 0 9px rgba(8,117,237,0)}}.empty-state{text-align:center;padding:40px}.empty-state img{width:70px}.nav-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#ff8b14;color:#fff;font-size:10px;padding:0 5px}.chat-modal-card{width:min(760px,100%)}.chat-reg-picker{display:flex;gap:8px;overflow:auto;padding-bottom:10px}.chat-reg-chip{border:1px solid var(--line);background:#fff;border-radius:13px;padding:9px 12px;min-width:150px;text-align:left;cursor:pointer}.chat-reg-chip.active{background:#eff8ff;border-color:#84caff;color:#075fc6}.chat-reg-chip small{display:block;color:#667085;margin-top:3px}.participant-chat-messages{height:360px;max-height:45vh;border:1px solid var(--line);border-radius:16px;margin:6px 0 0}.participant-chat-messages+.chat-compose{border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-card{position:relative}.hero-star{position:absolute;width:76px;right:18px;top:16px;opacity:.14;transform:rotate(9deg)}.hero-card h2{font-size:30px;margin:16px 0 8px;padding-right:60px}.event-public-hero{background-size:cover;background-position:center;transition:background-image .4s ease}.subject-public-card{transition:.2s}.subject-public-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(5,68,145,.09)}.subject-public-card h3{margin-top:12px}
.display{isolation:isolate;--event-wallpaper:none}.display-wallpaper-layer{position:absolute!important;inset:0;z-index:-2!important;background-image:var(--event-wallpaper);background-size:cover;background-position:center;opacity:0;transition:opacity .8s ease}.display.has-custom-wallpaper .display-wallpaper-layer{opacity:1}.display:before{z-index:-1!important;background:linear-gradient(135deg,rgba(2,8,20,.86),rgba(3,23,55,.68))}.display-brand{display:flex;align-items:center;gap:18px}.display-brand img{height:54px;width:auto;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.25))}.display-brand span{font-size:13px;letter-spacing:.18em;color:#dceaff}.display-loading{text-align:center}.display-loading img{width:100px;animation:pusStar 1.2s ease-in-out infinite;margin-bottom:20px}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-brand-panel{min-height:330px}.modern-status-list{grid-template-columns:1fr 1fr}.participant-menu{gap:4px}.participant-menu .btn{padding:10px 11px;font-size:12px}.display-brand span{display:none}}
@media(max-width:620px){.auth-brand-panel{padding:34px 24px;min-height:300px}.auth-card-wrap{padding:18px}.auth-card{padding:24px}.participant-welcome{align-items:flex-start}.welcome-star{width:62px;height:62px}.participant-welcome h1{font-size:28px}.modern-status-list{grid-template-columns:1fr}.participant-event-body{padding:16px}.participant-topbar .brand-image img{width:130px}.participant-topbar .nav{height:auto;padding:10px 0;align-items:flex-start}.participant-topbar .participant-menu{margin-left:auto}.participant-menu #eventTabBtn{display:none}.display-brand img{height:40px}}
.nav-section{display:flex;flex-direction:column;gap:3px}.nav-folder{width:100%!important}.folder-arrow{margin-left:auto;transition:transform .18s;color:#7f8da2}.nav-section .nav-children{display:none;padding-left:8px;border-left:1px solid #26364f;margin-left:23px}.nav-section.open .nav-children{display:flex;flex-direction:column;gap:3px}.nav-section.open .folder-arrow{transform:rotate(180deg)}.nav-children button{font-size:12px!important;padding:9px 10px!important}.app-shell.sidebar-collapsed .nav-section .nav-children{position:static;border:0;margin:0;padding:0}.app-shell.sidebar-collapsed .nav-section.open .nav-children{display:flex}.app-shell.sidebar-collapsed .folder-arrow{display:none}
@media(max-width:900px){.app-shell.sidebar-collapsed .nav-section .nav-children{margin-left:23px;border-left:1px solid #26364f;padding-left:8px}.app-shell.sidebar-collapsed .folder-arrow{display:block}}

/* =========================================================
   Base UI integrity + public/auth/participant redesign
   Versioned stylesheet intentionally bypasses stale CSS caches.
   ========================================================= */
:root{
  --pus-navy:#07182f;
  --pus-navy-2:#0b2d59;
  --pus-blue:#0875ed;
  --pus-blue-dark:#075fc6;
  --pus-blue-soft:#eaf4ff;
  --pus-orange:#ff9418;
  --pus-orange-dark:#ff7a00;
  --pus-surface:#f4f8fd;
  --pus-white:#fff;
  --ink:#101828;
  --muted:#667085;
  --line:#e4eaf2;
  --brand:var(--pus-blue);
  --brand2:var(--pus-blue-dark);
  --shadow:0 18px 55px rgba(7,45,92,.09);
}
img{max-width:100%}
.brand-image img,.brand-logo img.full,.auth-full-logo{display:block;height:auto;max-width:100%}

/* public top navigation */
.public-page-v4{background:#fff;overflow-x:hidden}
.public-topbar-v4{background:rgba(255,255,255,.94);border-bottom:1px solid rgba(213,223,236,.82);box-shadow:0 8px 28px rgba(6,41,83,.035)}
.public-nav-v4{height:78px}
.public-brand-v4{width:178px;min-width:178px;overflow:hidden}
.public-brand-v4 img{width:178px!important;height:auto!important;max-height:48px!important;object-fit:contain!important;object-position:left center}
.public-navlinks-v4>a:not(.btn){font-size:14px;font-weight:750;color:#344054;transition:.18s}
.public-navlinks-v4>a:not(.btn):hover{color:var(--pus-blue-dark)}
.public-login-btn{padding:10px 15px}

/* public hero */
.public-hero-v4{position:relative;overflow:hidden;padding:72px 0 78px;background:linear-gradient(180deg,#fbfdff 0%,#f3f8fe 100%);border-bottom:1px solid #eaf0f7}
.public-hero-v4:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(7,95,198,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(7,95,198,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 86%);pointer-events:none}
.public-hero-glow{position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none}
.public-glow-one{width:420px;height:420px;right:-130px;top:-170px;background:rgba(8,117,237,.13)}
.public-glow-two{width:300px;height:300px;left:-180px;bottom:-145px;background:rgba(255,148,24,.12)}
.public-hero-grid-v4{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.82fr);gap:68px;align-items:center}
.public-hero-copy-v4{min-width:0}
.public-eyebrow-v4{background:#fff;border-color:#d8e6f7;color:var(--pus-blue-dark);box-shadow:0 8px 26px rgba(7,95,198,.07)}
.pulse-mini{width:7px;height:7px;border-radius:99px;background:var(--pus-orange);box-shadow:0 0 0 5px rgba(255,148,24,.12)}
.public-hero-copy-v4 h1{font-size:clamp(46px,5.4vw,72px);line-height:1.01;letter-spacing:-.055em;margin:22px 0 20px;max-width:790px;color:var(--pus-navy)}
.public-hero-copy-v4 h1 span{color:var(--pus-blue-dark)}
.public-hero-copy-v4>p{max-width:690px;font-size:18px;line-height:1.7;color:#5c6c82;margin:0}
.public-hero-actions-v4{margin-top:28px}
.public-hero-actions-v4 .btn{min-height:48px;padding-inline:19px}
.public-trust-row-v4{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:690px;margin-top:38px;padding-top:24px;border-top:1px solid #dce7f3}
.public-trust-row-v4>div{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:8px}
.public-trust-row-v4 span{font-size:11px;font-weight:900;color:var(--pus-blue-dark);background:#eaf4ff;border:1px solid #d3e7ff;border-radius:10px;padding:8px 6px;text-align:center}
.public-trust-row-v4 p{font-size:12px;line-height:1.3;color:#667085;margin:0;font-weight:700}

/* event showcase safely isolates arbitrary event header images */
.event-showcase-v4{min-width:0;background:#fff;border:1px solid #dde7f2;border-radius:30px;overflow:hidden;box-shadow:0 30px 80px rgba(6,48,100,.13);transform:translateZ(0)}
.event-showcase-media-v4{position:relative;height:252px;background:linear-gradient(135deg,#071d3d,#0875ed);overflow:hidden}
.event-showcase-media-v4:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 46%,rgba(2,14,33,.40));pointer-events:none}
.event-header-img-v4{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;object-position:center;display:block}
.event-header-fallback-v4{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:20px;padding:32px;background:radial-gradient(circle at 82% 16%,rgba(255,148,24,.28),transparent 34%),linear-gradient(135deg,#06162e,#075fc6 64%,#0875ed)}
.event-header-fallback-v4 img{width:112px;height:112px;object-fit:contain;filter:drop-shadow(0 16px 30px rgba(0,0,0,.28))}
.event-header-fallback-v4 div{display:flex;flex-direction:column;color:#fff;max-width:200px}.event-header-fallback-v4 small{letter-spacing:.18em;font-weight:900;color:#ffd9a7}.event-header-fallback-v4 strong{font-size:24px;line-height:1.05;margin-top:6px}
.event-showcase-badge-v4{position:absolute;z-index:2;left:20px;bottom:18px;color:#fff;background:rgba(4,20,46,.7);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);padding:8px 11px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.08em}
.event-showcase-body-v4{padding:24px 25px 26px}
.event-showcase-title-v4{display:flex;align-items:flex-start;gap:20px}.event-showcase-title-v4>div{min-width:0;flex:1}.event-showcase-title-v4 img{width:44px;height:44px;object-fit:contain;flex:none}
.micro-label{display:inline-block;margin:0;color:var(--pus-blue-dark);font-size:10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.event-showcase-title-v4 h2{font-size:27px;line-height:1.08;letter-spacing:-.035em;margin:5px 0 0;overflow-wrap:anywhere}
.event-venue-v4{margin:13px 0 0;line-height:1.5}
.event-metrics-v4{margin-top:18px}.event-metrics-v4 .metric{padding:15px 16px}.event-metrics-v4 .metric b{font-size:20px;margin-top:3px}

/* public content */
.public-section-v4{padding:82px 0;background:#fff}
.public-section-heading-v4{max-width:760px;margin-bottom:30px}.public-section-heading-v4.compact{margin-bottom:24px}.public-section-heading-v4 h2{font-size:clamp(32px,4vw,48px);line-height:1.06;color:var(--pus-navy);margin:9px 0 12px}
.journey-grid-v4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.journey-card-v4{display:flex;gap:16px;padding:22px 20px;border:1px solid #e4ebf3;border-radius:20px;background:#fbfdff;transition:.2s}
.journey-card-v4:hover{transform:translateY(-3px);border-color:#cfe3f8;box-shadow:0 16px 35px rgba(7,60,120,.07)}
.journey-card-v4>span{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--pus-blue-soft);color:var(--pus-blue-dark);font-size:11px;font-weight:950}
.journey-card-v4 h3{font-size:17px;margin:1px 0 7px}.journey-card-v4 p{font-size:13px;color:#667085;line-height:1.55;margin:0}
.public-subject-section-v4{padding:78px 0;background:#f4f8fd;border-block:1px solid #e7eef6}
.subject-cards-v4{grid-template-columns:repeat(3,1fr)}
.subject-cards-v4 .card{box-shadow:none;border-color:#dde7f1;padding:22px;background:#fff}
.registration-section-v4{padding:86px 0;background:#fff}
.registration-layout-v4{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:56px;align-items:start}
.registration-aside-v4{position:sticky;top:112px;padding:18px 0}.registration-aside-v4 h2{font-size:clamp(34px,4vw,50px);line-height:1.03;letter-spacing:-.05em;color:var(--pus-navy);margin:18px 0 15px}.registration-aside-v4>p{color:#667085;line-height:1.7;font-size:16px}
.registration-note-v4{display:flex;gap:14px;padding:16px;margin-top:28px;background:#f1f7ff;border:1px solid #d5e8ff;border-radius:18px}.registration-note-v4 img{width:42px;height:42px;object-fit:contain;flex:none}.registration-note-v4 div{display:flex;flex-direction:column;gap:4px}.registration-note-v4 span{font-size:12px;color:#667085;line-height:1.5}
.registration-card-v4{padding:30px;box-shadow:0 24px 70px rgba(8,61,120,.09);border-color:#e0e8f1}.registration-card-v4 .page-head h2{font-size:32px;margin-top:5px}.label-optional{font-weight:600;color:#98a2b3;font-size:11px}
.public-footer-v4{background:#06162e;color:#cfe0f4;padding:26px 0}.public-footer-v4 .container{display:flex;align-items:center;gap:22px}.public-footer-v4 img{width:142px;height:auto;background:white;border-radius:9px;padding:6px 8px}.public-footer-v4 p{margin:0;font-size:13px}.public-footer-v4 a{margin-left:auto;font-size:12px;font-weight:800;color:#fff}

/* auth v4 — never lets brand image dictate layout size */
.auth-page{min-height:100vh;background:#f4f8fd;overflow-x:hidden}
.auth-layout{min-height:100vh;display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(440px,.95fr)!important}
.auth-brand-panel{position:relative;isolation:isolate;overflow:hidden;padding:48px clamp(34px,5vw,76px)!important;background:radial-gradient(circle at 88% 10%,rgba(255,148,24,.28),transparent 28%),linear-gradient(145deg,#05152c,#075fc6 67%,#0875ed)!important;color:#fff;display:flex!important;flex-direction:column;justify-content:space-between;min-width:0}
.auth-brand-panel:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px}
.auth-brand-panel:after{content:"";position:absolute;width:440px;height:440px;border-radius:50%;right:-210px;bottom:-210px;background:rgba(255,255,255,.075);z-index:-1}
.auth-logo-plate-v4{width:230px;max-width:52%;padding:9px 12px;border-radius:14px;background:#fff;box-shadow:0 16px 36px rgba(0,0,0,.16);position:relative;z-index:2}
.auth-logo-plate-v4 .auth-full-logo{width:100%!important;max-height:58px!important;object-fit:contain!important}
.auth-brand-copy-v4{max-width:620px;position:relative;z-index:2;margin-top:70px;margin-bottom:48px}
.auth-brand-panel h1{font-size:clamp(39px,4.2vw,64px)!important;line-height:1.01!important;letter-spacing:-.055em;max-width:620px;margin:18px 0!important}
.auth-brand-panel p{font-size:17px!important;line-height:1.68!important;color:#dcecff!important;max-width:590px}
.auth-feature-row-v4{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.auth-feature-row-v4 span{border:1px solid rgba(255,255,255,.19);background:rgba(255,255,255,.08);padding:9px 11px;border-radius:999px;font-size:11px;font-weight:800;color:#eaf4ff}
.auth-star-watermark{position:absolute!important;right:-45px!important;bottom:-58px!important;width:330px!important;height:330px!important;object-fit:contain!important;opacity:.13!important;transform:rotate(-8deg);z-index:0}
.auth-card-wrap{display:grid!important;place-items:center;padding:42px!important;background:linear-gradient(135deg,#fff,#eef5fc)!important;min-width:0}
.auth-card{width:min(450px,100%)!important;background:#fff!important;border:1px solid #dde7f1!important;border-radius:28px!important;padding:34px!important;box-shadow:0 28px 75px rgba(5,55,110,.11)!important}
.auth-card-brand-v4{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.auth-card-brand-v4 img{width:55px!important;height:55px!important;object-fit:contain!important}.auth-card-brand-v4 span{font-size:10px;letter-spacing:.14em;font-weight:950;color:#667085}
.auth-card h2{font-size:32px!important;letter-spacing:-.035em;margin:0 0 8px!important;color:var(--pus-navy)}
.auth-card>.muted{line-height:1.6;margin:0 0 24px}
.auth-card .input{min-height:48px;border-color:#d8e1ec;background:#fbfdff}.auth-card .input:focus{background:#fff;border-color:#76aef3;box-shadow:0 0 0 4px rgba(8,117,237,.10)}
.auth-card .btn-primary{min-height:49px;background:linear-gradient(135deg,#0875ed,#075fc6);box-shadow:0 14px 30px rgba(8,117,237,.20)}
.auth-security-v4{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid #edf1f6;color:#7a889b;font-size:11px}.auth-security-v4 b{color:#4d5c70}

/* participant portal v4 */
.participant-shell{min-height:100vh;background:linear-gradient(180deg,#eff6ff 0,#f7faff 270px,#f7f9fc 100%)!important}
.participant-topbar{box-shadow:0 8px 28px rgba(7,45,92,.045)}
.participant-topbar .brand-image{width:168px;min-width:168px;overflow:hidden}.participant-topbar .brand-image img{width:168px!important;height:auto!important;max-height:46px!important;object-fit:contain!important}
.participant-wrap{width:min(1040px,calc(100% - 32px))!important;padding:32px 0 72px!important}
.participant-welcome{min-height:210px;display:grid!important;grid-template-columns:90px minmax(0,1fr) auto;align-items:center!important;gap:26px!important;background:radial-gradient(circle at 88% 18%,rgba(255,148,24,.24),transparent 25%),linear-gradient(120deg,#05172f,#075fc6 67%,#0875ed)!important;padding:32px 34px!important;border-radius:28px!important;box-shadow:0 24px 60px rgba(4,59,120,.16)}
.participant-welcome:after{width:320px!important;height:320px!important;right:-145px!important;top:-170px!important;background:rgba(255,255,255,.07)!important}
.participant-welcome .welcome-star{width:86px!important;height:86px!important;position:relative;z-index:1}
.participant-welcome h1{font-size:clamp(30px,4vw,40px)!important;margin:10px 0 5px!important;overflow-wrap:anywhere}.participant-welcome p{max-width:650px;font-size:14px!important}
.participant-event-card{border-radius:25px!important;border-color:#dde6f0!important;box-shadow:0 18px 50px rgba(7,45,92,.07)!important;margin-top:18px!important}
.participant-event-banner{min-height:225px!important;background-position:center!important;background-size:cover!important}
.participant-event-banner:after{background:linear-gradient(90deg,rgba(3,20,45,.91) 0%,rgba(3,35,74,.64) 55%,rgba(3,35,74,.26) 100%)!important}
.event-banner-overlay{padding:27px 28px!important;max-width:820px}.event-banner-overlay h2{font-size:clamp(27px,4vw,38px)!important;max-width:720px}.event-meta-line{gap:9px!important}.event-meta-line span{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);padding:7px 10px;border-radius:999px}
.participant-event-body{padding:23px 24px 25px!important}
.modern-status-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;margin-top:0!important}.modern-status-list .status-item{min-width:0;padding:13px 12px!important;border-color:#e5ebf2;background:#fbfcfe}.modern-status-list .status-item>div{min-width:0}.modern-status-list .status-item b{font-size:12px}.modern-status-list .small{font-size:11px;white-space:normal;overflow-wrap:anywhere}
.participant-actions{margin-top:15px!important}.participant-actions .btn{font-size:12px;padding:10px 13px}
.exam-card{border-color:#dce7f2!important;background:#fbfdff!important}.completed-exam{background:linear-gradient(180deg,#fff,#f5faff)!important}

/* v4 responsive */
@media(max-width:1020px){
  .public-hero-grid-v4{grid-template-columns:1fr 390px;gap:36px}
  .journey-grid-v4{grid-template-columns:1fr 1fr}
  .registration-layout-v4{grid-template-columns:1fr;gap:26px}.registration-aside-v4{position:static;max-width:720px}
  .auth-layout{grid-template-columns:minmax(0,.9fr) minmax(400px,1.1fr)!important}.auth-brand-panel{padding:38px!important}.auth-brand-copy-v4{margin-top:50px}
}
@media(max-width:900px){
  .public-navlinks-v4>a:not(.btn){display:none}.public-nav-v4{height:70px}.public-brand-v4{width:155px;min-width:155px}.public-brand-v4 img{width:155px!important}
  .public-hero-v4{padding:48px 0 58px}.public-hero-grid-v4{grid-template-columns:1fr;gap:34px}.public-hero-copy-v4 h1{max-width:720px}.event-showcase-v4{width:min(620px,100%)}
  .subject-cards-v4{grid-template-columns:1fr 1fr}
  .auth-layout{grid-template-columns:1fr!important}.auth-brand-panel{min-height:auto!important;padding:28px 28px 34px!important}.auth-brand-copy-v4{margin:42px 0 0!important}.auth-brand-panel h1{font-size:38px!important;max-width:660px}.auth-brand-panel p{max-width:660px}.auth-star-watermark{width:220px!important;height:220px!important}.auth-card-wrap{padding:28px 18px 42px!important}.auth-card{margin-top:-8px}
  .participant-wrap{width:min(760px,calc(100% - 28px))!important}.participant-welcome{grid-template-columns:70px minmax(0,1fr)!important;min-height:185px}.participant-welcome .welcome-star{width:66px!important;height:66px!important}.modern-status-list{grid-template-columns:1fr 1fr!important}
}
@media(max-width:620px){
  .container{width:min(100% - 24px,1160px)}
  .public-nav-v4{gap:10px}.public-brand-v4{width:138px;min-width:138px}.public-brand-v4 img{width:138px!important}.public-login-btn{font-size:11px;padding:9px 11px}.public-hero-v4{padding-top:36px}.public-hero-copy-v4 h1{font-size:42px}.public-hero-copy-v4>p{font-size:15px}.public-trust-row-v4{grid-template-columns:1fr;gap:8px;margin-top:28px}.public-trust-row-v4>div{grid-template-columns:32px 1fr}.public-hero-actions-v4 .btn{width:100%}
  .event-showcase-media-v4{height:205px}.event-header-fallback-v4 img{width:78px;height:78px}.event-header-fallback-v4 strong{font-size:19px}.event-showcase-body-v4{padding:20px}.event-showcase-title-v4 h2{font-size:23px}.event-showcase-title-v4 img{width:38px;height:38px}.event-metrics-v4{grid-template-columns:1fr 1fr!important}.event-metrics-v4 .metric{padding:12px}.event-metrics-v4 .metric b{font-size:17px}
  .public-section-v4,.public-subject-section-v4,.registration-section-v4{padding:60px 0}.journey-grid-v4,.subject-cards-v4{grid-template-columns:1fr}.registration-card-v4{padding:20px}.registration-card-v4 .form-grid{grid-template-columns:1fr}.registration-card-v4 .field{grid-column:1/-1}.public-footer-v4 .container{align-items:flex-start;flex-direction:column}.public-footer-v4 a{margin-left:0}
  .auth-logo-plate-v4{width:190px;max-width:65%}.auth-brand-panel{padding:24px!important}.auth-brand-copy-v4{margin-top:35px!important}.auth-brand-panel h1{font-size:32px!important}.auth-brand-panel p{font-size:14px!important}.auth-feature-row-v4{display:none}.auth-card-wrap{padding:18px 14px 30px!important}.auth-card{padding:24px!important;border-radius:22px!important}.auth-card h2{font-size:28px!important}
  .participant-topbar .nav{align-items:center!important}.participant-topbar .brand-image{width:126px;min-width:126px}.participant-topbar .brand-image img{width:126px!important}.participant-menu .btn{font-size:11px!important;padding:9px!important}.participant-menu #eventTabBtn{display:none}.participant-wrap{width:min(100% - 20px,760px)!important;padding-top:18px!important}.participant-welcome{grid-template-columns:52px minmax(0,1fr)!important;gap:14px!important;padding:22px!important;min-height:150px!important}.participant-welcome .welcome-star{width:50px!important;height:50px!important}.participant-welcome h1{font-size:26px!important}.participant-welcome p{font-size:12px!important}.modern-status-list{grid-template-columns:1fr!important}.participant-event-banner{min-height:190px!important}.event-banner-overlay{padding:20px!important}.participant-event-body{padding:16px!important}.participant-actions .btn{flex:1 1 150px}.exam-card-head{flex-direction:column}.exam-card-head>span{align-self:flex-start}
}
.participant-hero-chip-v4{position:relative;z-index:1;align-self:center;display:flex;align-items:center;gap:11px;min-width:205px;padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.09);backdrop-filter:blur(10px)}.participant-hero-chip-v4 .pulse-mini{background:#67e8a7;box-shadow:0 0 0 5px rgba(103,232,167,.12)}.participant-hero-chip-v4 div{display:flex;flex-direction:column;gap:2px}.participant-hero-chip-v4 b{font-size:11px}.participant-hero-chip-v4 small{font-size:9px;color:#d9ebff}
@media(max-width:900px){.participant-hero-chip-v4{display:none}}

/* =========================================================
   PUSKANAS v0.10.0 — stability, alignment, QR & document studio
   ========================================================= */
/* Remove global loading curtains/animated process overlays: realtime updates must not flash. */
.process-loader,.page-curtain{display:none!important;opacity:0!important;visibility:hidden!important}
.page-entered main,.page-entered .app-main,.content.page-refresh{animation:none!important}

/* Predictable control alignment across every page. */
.btn,.page-actions,.actions,.crud-actions,.inline-form,.manual-token-row,.app-header .right,.nav,.auth-card-brand-v4{align-items:center}
.btn{display:inline-flex;justify-content:center;gap:7px;line-height:1.15;vertical-align:middle;min-height:40px}
.btn-icon{width:42px;min-width:42px;padding:0}
.input,button,select,textarea{font-family:inherit}
.password-wrap{position:relative;display:flex;align-items:center}
.password-wrap .input{padding-right:82px}
.password-eye,.password-toggle{position:absolute!important;right:6px!important;top:50%!important;transform:translateY(-50%)!important;width:auto!important;min-width:66px!important;height:34px!important;padding:0 10px!important;border:0;border-radius:9px;background:#eef4fb;color:#24415f;font-size:11px!important;font-weight:800;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}

/* Admin sidebar is deliberately text-only. When minimized it fully hides instead of leaving orphan icons. */
.side-nav button{gap:0!important}.side-nav .nav-label{display:block;min-width:0}.nav-section .nav-children{margin-left:10px!important;padding-left:10px!important}
.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)!important}
.app-shell.sidebar-collapsed .sidebar{width:0!important;padding-left:0!important;padding-right:0!important;border:0!important;overflow:hidden!important}
.app-shell.sidebar-collapsed .sidebar *{opacity:0;pointer-events:none}
@media(max-width:900px){.app-shell.sidebar-collapsed{display:block!important}.app-shell.sidebar-collapsed .sidebar{width:238px!important;padding:22px 16px!important;border-right:1px solid rgba(255,255,255,.08)!important;overflow-y:auto!important}.app-shell.sidebar-collapsed .sidebar *{opacity:1;pointer-events:auto}}

/* QR scanner */
.camera-box.qr-mode{aspect-ratio:4/3;max-height:520px;background:#07111f}
.camera-box.qr-mode video{width:100%;height:100%;object-fit:cover}
.camera-box.qr-mode .camera-reticle{width:min(64%,360px)!important;height:auto!important;aspect-ratio:1/1;border-radius:20px!important;border:3px solid #fff!important;box-shadow:0 0 0 999px rgba(0,0,0,.25),0 0 24px rgba(8,117,237,.45)}
.camera-box.qr-mode .camera-reticle:before,.camera-box.qr-mode .camera-reticle:after{content:"";position:absolute;inset:14px;border:1px dashed rgba(255,255,255,.45);border-radius:14px}
.manual-token-row{grid-template-columns:minmax(0,1fr) auto}

/* Google Form wizard */
.gform-wizard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gform-wizard .integration-step{border:1px solid #dde7f2;border-radius:16px;padding:18px;background:#fbfdff;min-width:0}
.gform-wizard .step-ok{border-color:#a6e7c5;background:#f2fff8}.gform-wizard .step-error{border-color:#f3b4bd;background:#fff8f8}
.inline-form{display:flex;gap:9px;min-width:0}.inline-form .input{min-width:0;flex:1}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f5f9;padding:2px 6px;border-radius:6px;font-size:.92em}

/* Document template studio */
.doc-template-grid{align-items:start}.doc-template-panel{min-width:0}
.doc-preview{position:relative;width:100%;overflow:hidden;border:1px solid #d8e2ed;border-radius:16px;background:#f7f9fc center/100% 100% no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.doc-preview.with-bg{background-size:100% 100%}.doc-preview-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:28px;color:#7b8798;font-size:13px;background:linear-gradient(135deg,#fbfdff,#eef4fa)}
.doc-preview-field{position:absolute;z-index:2;white-space:nowrap;max-width:90%;line-height:1.05;text-shadow:0 1px 1px rgba(255,255,255,.5);pointer-events:none}
.doc-page-settings{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.doc-page-settings label,.doc-field-row label{font-size:11px;font-weight:800;color:#526175;margin:0}
.doc-settings-grid{display:grid;gap:8px;margin-top:14px}.doc-field-row{display:grid;grid-template-columns:minmax(125px,1.3fr) 88px 88px 94px 110px 72px 78px;gap:7px;align-items:end;padding:10px;border:1px solid #e4eaf1;border-radius:12px;background:#fff}.doc-field-row>b{align-self:center;font-size:12px}.doc-field-row .input{padding:8px 9px;min-height:36px}.doc-field-row .color-input{padding:4px;height:36px}.check-label{display:flex;align-items:center;gap:5px;height:36px}.doc-upload-form .inline-form{flex-wrap:wrap}

/* Dedicated QR landing result */
.checkin-page{min-height:100vh;margin:0;background:linear-gradient(145deg,#edf5ff,#fff);display:grid;place-items:center;padding:20px}.checkin-shell{width:min(620px,100%)}.checkin-card{background:#fff;border:1px solid #dde8f2;border-radius:28px;box-shadow:0 30px 80px rgba(5,55,110,.13);padding:34px;text-align:center}.checkin-logo{width:min(240px,70%);height:auto;margin:0 auto 28px}.checkin-mark{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:#eafbf2;color:#148455;font-size:46px;font-weight:900}.checkin-mark.error{background:#fff1f2;color:#be3448}.checkin-result h1{margin:8px 0}.checkin-result h2{margin:6px 0;color:#075fc6}.checkin-result .actions{justify-content:center;margin-top:18px}

/* Live wallpaper/effects are independent; switching scene clears effect elements in JS. */
.display-wallpaper-layer{transition:opacity .25s ease!important}.confetti.hidden{display:none!important}.confetti:empty{display:none!important}

@media(max-width:1100px){.gform-wizard,.doc-template-grid{grid-template-columns:1fr}.doc-field-row{grid-template-columns:1fr repeat(3,80px);}.doc-field-row label:nth-of-type(n+4){grid-column:auto}.doc-page-settings{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.inline-form,.manual-token-row,.doc-page-settings{display:grid;grid-template-columns:1fr}.doc-field-row{grid-template-columns:1fr 1fr}.doc-field-row>b{grid-column:1/-1}.app-header .right{gap:6px}.app-header .right .live-pill,.app-header .right #adminName{display:none}.camera-box.qr-mode .camera-reticle{width:min(72%,300px)!important}.doc-preview-field{font-size:9px!important}}

/* =========================================================
   PUSKANAS v0.10.0 — auth/mobile, sidebar icons, wallpaper,
   participant banner, draggable document editor
   ========================================================= */

/* PUSKANAS logo remains transparently composited: never put a white plate behind it. */
.auth-logo-plate-v4{background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important}
.brand-image,.brand-logo,.public-brand-logo{background:transparent!important}

/* Professional icon system: icons are used only where they improve scanning. */
.side-nav button{display:flex!important;align-items:center!important;gap:11px!important;min-height:42px}
.nav-icon,.control-icon{width:20px;height:20px;min-width:20px;display:inline-flex;align-items:center;justify-content:center;color:currentColor}
.nav-icon svg,.control-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-icon svg path[d^="M4 4h6"],.nav-icon svg path[d^="M8 8h3"]{fill:none}
.nav-folder{position:relative;padding-right:32px!important}.nav-folder:after{content:'›';position:absolute;right:12px;top:50%;transform:translateY(-50%) rotate(90deg);opacity:.65;transition:.18s}
.nav-section.open>.nav-folder:after{transform:translateY(-50%) rotate(-90deg)}
.sidebar-toggle-btn{padding:10px 12px!important}.sidebar-toggle-btn .control-label{font-size:12px;font-weight:800}

/* Collapsed desktop sidebar keeps useful icons instead of disappearing completely. */
.app-shell.sidebar-collapsed{grid-template-columns:68px minmax(0,1fr)!important}
.app-shell.sidebar-collapsed .sidebar{width:68px!important;padding:16px 8px!important;border-right:1px solid rgba(255,255,255,.08)!important;overflow-x:hidden!important;overflow-y:auto!important}
.app-shell.sidebar-collapsed .sidebar *{opacity:1!important;pointer-events:auto!important}
.app-shell.sidebar-collapsed .brand-logo .full{display:none!important}.app-shell.sidebar-collapsed .brand-logo .star{display:block!important;margin:auto;width:34px!important;height:34px!important}
.app-shell.sidebar-collapsed .side-nav button[data-page]{justify-content:center!important;padding:11px!important}.app-shell.sidebar-collapsed .side-nav button[data-page] .nav-label{display:none!important}.app-shell.sidebar-collapsed .nav-icon{width:22px;height:22px;min-width:22px}
.app-shell.sidebar-collapsed .nav-section>.nav-folder{height:14px!important;min-height:14px!important;padding:0!important;margin:10px 6px 4px!important;border-radius:0!important;background:transparent!important;border-top:1px solid rgba(255,255,255,.12)!important}
.app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-label,.app-shell.sidebar-collapsed .nav-section>.nav-folder:after{display:none!important}
.app-shell.sidebar-collapsed .nav-children{display:flex!important;flex-direction:column!important;margin:0!important;padding:0!important;border:0!important}

/* Live Display wallpaper is placed above the opaque base background and below overlay/content. */
.display{isolation:isolate!important;position:relative!important;overflow:hidden!important}
.display-wallpaper-layer{position:absolute!important;inset:0!important;z-index:0!important;background-image:var(--event-wallpaper)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;opacity:0;transition:opacity .25s ease!important;pointer-events:none}
.display.has-custom-wallpaper .display-wallpaper-layer{opacity:1!important}
.display:before{z-index:1!important;pointer-events:none!important}
.display>.display-head,.display>.display-main,.display>.ticker{position:relative!important;z-index:2!important}

/* Participant event banner uses the uploaded artwork as actual media, preserving its ratio. */
.participant-event-media{position:relative;width:100%;background:#07182e;overflow:hidden;min-height:180px;display:grid;place-items:center}
.participant-event-media img{display:block;width:100%;height:auto;max-height:460px;object-fit:contain;background:#07182e}
.participant-event-media.no-image{min-height:230px;background:linear-gradient(135deg,#08254b,#0967d7)}
.participant-event-media.no-image:before{content:'';width:100px;height:100px;background:url('../assets/puskanas-star.png?v=0115') center/contain no-repeat;opacity:.92}
.participant-event-summary{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:20px 22px 0}.participant-event-summary h2{margin:6px 0 5px;font-size:24px}.participant-event-summary p{margin:0;color:var(--muted)}
.participant-event-summary .badge{flex:0 0 auto}

/* Document studio: cursor drag is the primary positioning method; numeric fields remain precision controls. */
.doc-preview{user-select:none;touch-action:none}
.doc-preview-field{pointer-events:auto!important;cursor:grab!important;border:1px dashed transparent;border-radius:5px;padding:2px 4px;transition:border-color .15s,box-shadow .15s;transform-origin:center center}
.doc-preview-field:hover{border-color:#0b6edc;box-shadow:0 0 0 3px rgba(11,110,220,.10);background:rgba(255,255,255,.20)}
.doc-preview-field.dragging{cursor:grabbing!important;border-color:#075fc6;background:rgba(255,255,255,.28);box-shadow:0 7px 24px rgba(7,95,198,.18)}
.doc-field-row{grid-template-columns:minmax(120px,1.2fr) 74px 74px 82px 126px 114px 70px 72px!important}
.doc-drag-hint{display:flex;align-items:center;gap:8px;padding:11px 13px;border-radius:11px;background:#eef6ff;border:1px solid #d6e9ff;color:#245a91;font-size:12px;font-weight:700;margin:12px 0}
.doc-font-select{min-width:110px}

/* Mobile login is intentionally minimal: star, title and form only. */
@media(max-width:700px){
  .auth-page{min-height:100vh!important;background:linear-gradient(180deg,#f6faff 0,#eef5fd 100%)!important}
  .auth-layout{display:block!important;min-height:100vh!important}
  .auth-brand-panel{display:none!important}
  .auth-card-wrap{min-height:100vh!important;padding:24px 16px!important;display:grid!important;place-items:center!important;background:transparent!important}
  .auth-card{width:min(100%,430px)!important;padding:28px 22px!important;border-radius:24px!important;box-shadow:0 22px 60px rgba(8,39,74,.12)!important;border:1px solid #dbe7f2!important}
  .auth-card-brand-v4{justify-content:center!important;margin-bottom:18px!important}
  .auth-card-brand-v4 img{width:70px!important;height:70px!important;object-fit:contain!important}
  .auth-card-brand-v4 span{display:none!important}
  .auth-card h2{text-align:center!important;font-size:27px!important;margin:0 0 22px!important}
  .auth-card>p.muted,.auth-card .auth-security-v4,.auth-card .small-link,.auth-card .auth-links{display:none!important}
  .auth-card .form-grid{gap:14px!important}
  .auth-card .btn-wide{min-height:48px!important;width:100%!important}
  .auth-card .field label{font-size:12px!important}
  .password-eye,.password-toggle{min-width:62px!important}
  .participant-event-media{min-height:130px}.participant-event-media img{max-height:300px}.participant-event-summary{padding:16px 16px 0;flex-direction:column;gap:8px}.participant-event-summary h2{font-size:20px}
  .doc-field-row{grid-template-columns:1fr 1fr!important}.doc-field-row>b{grid-column:1/-1}.doc-font-select{min-width:0}
  .app-shell.sidebar-collapsed{display:block!important}.app-shell.sidebar-collapsed .sidebar{width:238px!important;padding:22px 16px!important;left:-280px!important}.app-shell.sidebar-collapsed .sidebar.open{left:0!important}.app-shell.sidebar-collapsed .side-nav button[data-page]{justify-content:flex-start!important;padding:12px 14px!important}.app-shell.sidebar-collapsed .side-nav button[data-page] .nav-label{display:block!important}.app-shell.sidebar-collapsed .nav-section>.nav-folder{height:auto!important;min-height:42px!important;padding:12px 32px 12px 14px!important;margin:0!important;border-top:0!important}.app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-label,.app-shell.sidebar-collapsed .nav-section>.nav-folder:after{display:block!important}
  .app-header{gap:7px!important}.app-header #eventPicker{margin-left:0!important;flex:1;min-width:0;width:auto!important}.app-header .right #changePasswordBtn{display:none}.sidebar-toggle-btn .control-label{display:none}
}
/* Custom Live Display wallpaper remains visible while preserving text contrast. */
.display.has-custom-wallpaper:before{background:linear-gradient(135deg,rgba(2,8,20,.62),rgba(3,23,55,.46))!important}

/* =========================================================
   PUSKANAS v0.10.0 — responsive navigation, document studio,
   live display, registration UX and control alignment
   ========================================================= */

/* Sidebar: smooth, clean collapsed rail with no visible drawer scrollbar. */
.app-shell{transition:grid-template-columns .28s cubic-bezier(.2,.8,.2,1)!important}
.sidebar{transition:width .28s cubic-bezier(.2,.8,.2,1),padding .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1)!important;scrollbar-width:none;-ms-overflow-style:none}
.sidebar::-webkit-scrollbar{width:0;height:0}
.side-nav button{transition:background-color .2s ease,color .2s ease,transform .2s ease,padding .28s ease!important}
.side-nav button:hover{transform:translateX(2px)}
.side-nav .nav-label{display:block!important;max-width:190px;opacity:1;transform:translateX(0);transition:max-width .24s ease,opacity .18s ease,transform .24s ease!important;overflow:hidden}
.nav-folder{min-height:42px!important;display:flex!important;align-items:center!important;gap:11px!important}
.nav-folder .folder-icon{display:inline-flex!important}
.nav-folder:after{transition:transform .2s ease,opacity .2s ease!important}
.sidebar-toggle-btn.icon-only-btn{width:44px;height:44px;padding:0!important;flex:0 0 44px}
.sidebar-toggle-btn.icon-only-btn .control-icon{width:21px;height:21px}
.app-shell.sidebar-collapsed .sidebar{overflow-y:auto!important;overflow-x:hidden!important}
.app-shell.sidebar-collapsed .side-nav{gap:5px!important}
.app-shell.sidebar-collapsed .side-nav button[data-page],
.app-shell.sidebar-collapsed .nav-section>.nav-folder{width:42px!important;height:42px!important;min-height:42px!important;justify-content:center!important;padding:0!important;margin:0 auto!important;border:0!important;border-radius:12px!important;background:transparent!important}
.app-shell.sidebar-collapsed .side-nav button[data-page]:hover,
.app-shell.sidebar-collapsed .nav-section>.nav-folder:hover,
.app-shell.sidebar-collapsed .side-nav button[data-page].active{background:#182235!important}
.app-shell.sidebar-collapsed .side-nav .nav-label,
.app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-label{display:block!important;max-width:0!important;opacity:0!important;transform:translateX(-8px)!important;margin:0!important;pointer-events:none!important}
.app-shell.sidebar-collapsed .nav-section>.nav-folder:after{display:none!important}
.app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-icon{display:inline-flex!important;width:22px!important;height:22px!important;min-width:22px!important}
.app-shell.sidebar-collapsed .nav-section{gap:5px!important;margin:1px 0!important}
.app-shell.sidebar-collapsed .nav-section .nav-children{display:flex!important;flex-direction:column!important;gap:5px!important;margin:0!important;padding:0!important;border:0!important}
.app-shell.sidebar-collapsed .side-nav button:hover:after,.app-shell.sidebar-collapsed .nav-folder:hover:before{pointer-events:none}

/* Consistent compact close controls. */
.modal .page-head{position:relative;padding-right:48px;min-height:42px}
.modal-close-btn{appearance:none;border:1px solid #dbe3ec;background:#fff;color:#344054;width:38px;height:38px;border-radius:12px;display:inline-grid;place-items:center;font-size:25px;line-height:1;font-weight:400;cursor:pointer;box-shadow:0 6px 18px rgba(16,24,40,.06);transition:.18s ease;flex:0 0 38px}
.modal-close-btn:hover{background:#f8fafc;color:#b42318;border-color:#f3c7c2;transform:translateY(-1px)}
.modal .page-head>.modal-close-btn,.modal .page-actions>.modal-close-btn{position:absolute;right:0;top:0}

/* Password toggles use only an eye icon. */
.password-wrap{position:relative}
.password-wrap .input{padding-right:52px!important}
.password-eye,.password-toggle{position:absolute!important;right:5px!important;top:50%!important;transform:translateY(-50%)!important;width:40px!important;height:40px!important;min-width:40px!important;padding:0!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#617083!important;display:grid!important;place-items:center!important;cursor:pointer!important}
.password-eye:hover,.password-toggle:hover{background:#eef5ff!important;color:#075fc6!important}
.password-eye svg,.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* School recommendation dropdown. */
.school-autocomplete-field{position:relative}
.school-suggestions{position:absolute;left:0;right:0;top:76px;z-index:45;background:#fff;border:1px solid #d9e4ef;border-radius:14px;box-shadow:0 18px 50px rgba(8,39,74,.15);max-height:280px;overflow:auto;padding:6px}
.school-suggestion{width:100%;border:0;background:#fff;border-radius:10px;padding:11px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;color:#172033}
.school-suggestion:hover,.school-suggestion:focus{background:#eef6ff;outline:none}
.school-suggestion span{font-size:12px;color:#667085}
.school-suggestion-empty{padding:13px;color:#667085;font-size:13px}

/* Landing event visual always uses the exact Header Event Peserta asset when available. */
.event-showcase-media-v4{background:#08254b}
.event-header-img-v4{object-fit:contain!important;object-position:center!important;background:#08254b}.event-showcase-media-v4.has-event-header:after{display:none!important}.event-showcase-media-v4.has-event-header .event-showcase-badge-v4{background:rgba(4,22,48,.72);backdrop-filter:blur(8px)}

/* Portal Event Saya intentionally has no banner image. */
.participant-event-card{overflow:hidden}
.participant-event-summary-no-media{padding:22px!important;border-radius:22px 22px 0 0;background:linear-gradient(135deg,#f8fbff,#eef6ff);border-bottom:1px solid #dfe8f2}
.participant-event-summary-no-media h2{font-size:25px;margin-top:8px}

/* Document Template Studio: stacked documents, preview + setup, then tidy field cards. */
.doc-template-stack{display:grid;grid-template-columns:1fr;gap:24px}
.doc-template-panel{padding:24px!important;overflow:visible!important}
.doc-template-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.doc-template-heading h3{font-size:24px;margin:5px 0 6px}.doc-template-heading p{margin:0;color:var(--muted);line-height:1.55}
.doc-editor-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:20px;align-items:start}
.doc-preview-column{min-width:0}.doc-preview{width:100%;border-radius:16px!important;box-shadow:0 8px 30px rgba(8,39,74,.08)}
.doc-drag-hint{margin:12px 0 0!important;align-items:flex-start!important;line-height:1.45}.doc-drag-hint b{white-space:nowrap}
.doc-setup-column{display:grid;gap:14px}
.doc-setup-card{border:1px solid #dfe7f0;border-radius:16px;background:#f9fbfd;padding:16px}.doc-setup-card h4{margin:0 0 5px;font-size:15px}.doc-setup-card p{font-size:12px;color:var(--muted);margin:0 0 12px;line-height:1.45}
.doc-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.doc-action-row .btn{flex:1;min-width:120px}
.doc-page-settings{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:0!important}.doc-page-settings label,.doc-control-grid label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#475467}
.doc-a4-btn{width:100%;margin-top:10px}
.doc-fields-section{margin-top:22px;border-top:1px solid #e8edf3;padding-top:20px}
.doc-section-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:13px}.doc-section-title h4{margin:0 0 4px;font-size:17px}.doc-section-title p{margin:0;color:var(--muted);font-size:12px}
.doc-settings-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.doc-field-card{border:1px solid #e0e7ef;border-radius:15px;background:#fff;padding:14px;min-width:0}
.doc-field-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #eef2f6}.doc-field-card-head b{display:block;font-size:14px}.doc-field-card-head small{display:block;color:#8592a3;font-size:10px;margin-top:3px}.doc-field-chip{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;background:#eef6ff;color:#075fc6;padding:5px 7px;border-radius:999px}
.doc-control-grid{display:grid;gap:8px}.doc-coordinate-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:8px}.doc-typography-grid{grid-template-columns:minmax(120px,1.4fr) minmax(90px,1fr) 64px 72px;align-items:end}
.doc-control-grid .input{min-height:38px!important;padding:8px 9px!important;font-size:12px!important}.doc-control-grid .color-input{height:38px!important;padding:4px!important}
.doc-bold-toggle{height:38px;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center;gap:6px;border:1px solid #d0d5dd;border-radius:11px;background:#fff;font-size:12px!important}.doc-bold-toggle input{margin:0}
.doc-save-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#f7faff;border:1px solid #deebf8;border-radius:14px;padding:12px 14px;margin-top:16px}.doc-save-bar span{font-size:12px;color:#667085}

/* Live Display: uploaded wallpaper is the real base layer on every scene, including Welcome/Closing. */
.display.has-custom-wallpaper{background-color:#050b15!important;background-size:cover,cover!important;background-position:center,center!important;background-repeat:no-repeat,no-repeat!important}
.display.has-custom-wallpaper:before{background:transparent!important}
.display.has-custom-wallpaper .display-wallpaper-layer{display:none!important}
.countdown{font-variant-numeric:tabular-nums;min-width:10ch}

/* Global responsive refinements. */
img,video,canvas{max-width:100%}
.page-actions{align-items:center}
.crud-actions,.actions{flex-wrap:wrap}
@media(max-width:1200px){
  .content{padding:22px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .doc-editor-layout{grid-template-columns:1fr}.doc-setup-column{grid-template-columns:1fr 1fr}.doc-settings-cards{grid-template-columns:1fr!important}
}
@media(max-width:900px){
  .sidebar{scrollbar-width:none!important}.sidebar::-webkit-scrollbar{display:none}
  .app-shell.sidebar-collapsed .sidebar{overflow-y:auto!important}
  .app-shell.sidebar-collapsed .nav-section>.nav-folder{width:auto!important;height:auto!important;min-height:42px!important;justify-content:flex-start!important;padding:12px 14px!important;margin:0!important}
  .app-shell.sidebar-collapsed .side-nav .nav-label,.app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-label{max-width:190px!important;opacity:1!important;transform:none!important;pointer-events:auto!important}
  .app-shell.sidebar-collapsed .nav-section>.nav-folder:after{display:block!important}
  .app-header{min-height:68px;height:auto;padding:10px 12px!important;gap:8px;flex-wrap:wrap}.app-header #eventPicker{order:2;flex:1 1 calc(100% - 56px);max-width:none!important}.app-header .right{margin-left:auto}.content{padding:15px!important}
  .page-head{gap:10px}.page-head h1{font-size:24px}.page-actions{width:100%;margin-left:0!important}.page-actions>.btn,.page-actions>a.btn{flex:1 1 auto}
  .grid-2,.grid-3{grid-template-columns:1fr!important}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .panel{padding:16px}.modal{padding:10px}.modal-card{border-radius:18px;padding:18px;max-height:94vh}
  .doc-setup-column{grid-template-columns:1fr}.doc-template-panel{padding:16px!important}.doc-template-heading{flex-direction:column}.doc-save-bar{align-items:stretch;flex-direction:column}.doc-save-bar .btn{width:100%}
  .participant-wrap{width:min(100% - 20px,820px);padding-top:20px}.participant-welcome{padding:22px!important}.participant-actions{display:grid!important;grid-template-columns:1fr 1fr}.participant-actions .btn{width:100%}
  .public-hero-grid-v4{grid-template-columns:1fr!important}.registration-layout-v4{grid-template-columns:1fr!important}
}
@media(max-width:620px){
  .app-header .right #logoutBtn{padding:10px 12px}.app-header #eventPicker{font-size:12px}.sidebar-toggle-btn.icon-only-btn{width:42px;height:42px;flex-basis:42px}
  .content{padding:12px!important}.kpis{grid-template-columns:1fr!important}.kpi{padding:15px}.page-head h1{font-size:22px}.page-head p{font-size:12px}.page-actions{display:grid!important;grid-template-columns:1fr 1fr}.page-actions:empty{display:none!important}
  .table{min-width:680px}.table th,.table td{padding:10px;font-size:12px}.bar-row{grid-template-columns:95px minmax(90px,1fr) 58px!important;gap:8px;font-size:11px}
  .doc-page-settings{grid-template-columns:1fr!important}.doc-coordinate-grid{grid-template-columns:1fr 1fr}.doc-coordinate-grid label:last-child{grid-column:1/-1}.doc-typography-grid{grid-template-columns:1fr 1fr}.doc-field-card{padding:12px}.doc-preview-field{font-size:8px!important}.doc-drag-hint{flex-direction:column;gap:3px!important}
  .participant-actions{grid-template-columns:1fr!important}.participant-event-summary-no-media{padding:16px!important}.participant-event-summary-no-media h2{font-size:20px}.event-meta-line{display:grid!important;gap:5px!important}
  .school-suggestions{top:74px}
  .public-navlinks-v4 a:not(.public-login-btn){display:none}.public-nav-v4{height:64px}.public-brand-v4 img{width:145px!important}.public-hero-v4{padding-top:34px!important}.public-hero-copy-v4 h1{font-size:43px!important}.event-showcase-media-v4{height:190px!important}.registration-card-v4{padding:18px!important}
  .display{padding:18px!important}.display-head{gap:10px}.display-brand img{height:34px!important}.display-kpis{grid-template-columns:1fr 1fr!important}.display-kpi{padding:14px!important}.display-kpi b{font-size:32px!important}.countdown{font-size:clamp(54px,17vw,94px)!important}.ticker{height:44px!important}
}

/* Touch-friendly overflow without blocking transitions. */
.table-wrap{-webkit-overflow-scrolling:touch}
@media(prefers-reduced-motion:reduce){.app-shell,.sidebar,.side-nav button{transition:none!important}}


/* ==========================================================================
   PUSKANAS v0.10.0 — registration independence, event header consistency,
   and compact primary-only sidebar rail. These final overrides intentionally
   take precedence over legacy rules retained for backward-compatible pages.
   ========================================================================== */
@media(min-width:901px){
  .app-shell{transition:grid-template-columns .28s cubic-bezier(.2,.8,.2,1)!important}
  .app-shell.sidebar-collapsed{grid-template-columns:68px minmax(0,1fr)!important}
  .app-shell.sidebar-collapsed .sidebar{width:68px!important;padding:16px 8px!important;overflow:hidden!important}
  .app-shell.sidebar-collapsed .side-nav{gap:8px!important;overflow:visible!important}
  .app-shell.sidebar-collapsed .brand-logo{min-height:46px!important;margin-bottom:8px!important}
  .app-shell.sidebar-collapsed .brand-logo .full{display:none!important}
  .app-shell.sidebar-collapsed .brand-logo .star{display:block!important;width:34px!important;height:34px!important;margin:0 auto!important}
  .app-shell.sidebar-collapsed .side-nav>button[data-page],
  .app-shell.sidebar-collapsed .nav-section>.nav-folder{display:flex!important;width:44px!important;height:44px!important;min-height:44px!important;margin:0 auto!important;padding:0!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:13px!important}
  .app-shell.sidebar-collapsed .side-nav>button[data-page] .nav-label,
  .app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-label{display:none!important}
  .app-shell.sidebar-collapsed .nav-section .nav-children{display:none!important}
  .app-shell.sidebar-collapsed .nav-section{display:block!important;margin:0!important}
  .app-shell.sidebar-collapsed .nav-section>.nav-folder .nav-icon,
  .app-shell.sidebar-collapsed .side-nav>button[data-page] .nav-icon{display:inline-flex!important;width:22px!important;height:22px!important;min-width:22px!important}
  .app-shell.sidebar-collapsed .side-nav>button[data-page]:hover,
  .app-shell.sidebar-collapsed .nav-section>.nav-folder:hover,
  .app-shell.sidebar-collapsed .side-nav>button[data-page].active{background:#182235!important}
  .app-shell.sidebar-collapsed .side-nav button:hover:after{left:54px!important}
}
.registration-card-v4 .field small.muted{display:block;margin-top:7px;line-height:1.45}
.school-suggestion span{display:block;margin-top:3px}
.event-showcase-media-v4.has-event-header{background:#fff!important}
.event-showcase-media-v4.has-event-header .event-header-img-v4{object-fit:contain!important;object-position:center!important;background:#fff!important}

/* ==========================================================================
   PUSKANAS v0.10.0 — realtime public counters, polished controls,
   pagination, permission editor and compact document studio.
   ========================================================================== */
:root{--ease-ui:cubic-bezier(.2,.75,.25,1);--select-arrow:#31506f}

/* Consistent dropdown/select treatment across public, participant and admin UI. */
select.input{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding-right:42px!important;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2331506f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:17px 17px;
  cursor:pointer;transition:border-color .2s var(--ease-ui),box-shadow .2s var(--ease-ui),background-color .2s var(--ease-ui),transform .2s var(--ease-ui)
}
select.input:hover:not(:disabled){border-color:#9eb4cc;background-color:#fbfdff}
select.input:focus{border-color:#0875ed!important;box-shadow:0 0 0 4px rgba(8,117,237,.12)!important}
select.input:disabled{cursor:not-allowed;background-color:#f4f7fa;color:#8a99aa;opacity:.82}
select.input option{background:#fff;color:#10243b}

/* Public subject groups and realtime participant totals. */
#subjectCards.subject-cards-v4{display:block!important;margin-top:30px!important}
.subject-level-group{margin-top:26px}.subject-level-group:first-child{margin-top:0}
.subject-level-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 13px;padding:0 2px}
.subject-level-head h3{margin:2px 0 0;font-size:21px;letter-spacing:-.025em;color:#10213a}.subject-level-kicker{font-size:10px;font-weight:900;letter-spacing:.16em;color:#0875ed}
.subject-level-total{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#eaf4ff;color:#075fc6;font-size:11px;font-weight:850;border:1px solid #cfe4fb}
.subject-level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.subject-public-card{min-height:205px;display:flex;flex-direction:column;justify-content:flex-start}
.subject-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.subject-live-count{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;color:#137a50}.subject-live-count i{width:8px;height:8px;border-radius:50%;background:#1fc983;box-shadow:0 0 0 4px rgba(31,201,131,.11)}
.subject-registration-stat{margin-top:auto;padding-top:16px;border-top:1px solid #e8edf3;display:flex;align-items:center;gap:10px}.subject-registration-stat b{font-size:28px;letter-spacing:-.04em;color:#075fc6}.subject-registration-stat span{font-size:11px;line-height:1.35;color:#6b7a8c}

/* Generic pagination for long operational datasets. */
.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 4px 2px;color:#667085;font-size:12px}
.pagination-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pagination-btn{min-width:34px;height:34px;border:1px solid #dbe4ee;border-radius:10px;background:#fff;color:#344054;font-weight:800;cursor:pointer;transition:.18s var(--ease-ui)}.pagination-btn:hover:not(:disabled){border-color:#8bb9ed;color:#075fc6;background:#f4f9ff;transform:translateY(-1px)}.pagination-btn.active{background:#0875ed;color:#fff;border-color:#0875ed;box-shadow:0 6px 16px rgba(8,117,237,.2)}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}

/* Google Form wizard step markers never overlap the title. */
.integration-step-title{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:10px}.integration-step-title b{line-height:1.3;min-width:0}.integration-step-number{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#e8f3ff;color:#075fc6;font-weight:900;font-size:13px;flex:0 0 auto}.step-ok .integration-step-number{background:#dff8ea;color:#087a50}.step-error .integration-step-number{background:#feeceb;color:#b42318}.admin-subject-picker{width:min(310px,100%)}.question-number-pill{display:inline-grid;place-items:center;min-width:32px;height:30px;padding:0 8px;border-radius:9px;background:#eef6ff;color:#075fc6;font-weight:900}

/* Compact, single-column-right document controls. */
.doc-editor-layout{grid-template-columns:minmax(0,1fr) 390px!important;gap:18px!important}
.doc-setup-column{display:flex!important;flex-direction:column;gap:12px!important;min-width:0}.doc-setup-card.compact{padding:14px!important}.doc-setup-card h4{margin:0 0 8px!important}.doc-setup-card p{font-size:11px;margin:0 0 10px;color:#667085}
.doc-typography-card{max-height:690px;overflow:auto;scrollbar-width:thin}.doc-setup-title-row{position:sticky;top:0;z-index:2;background:#fff;padding-bottom:8px;border-bottom:1px solid #edf1f5;margin-bottom:9px}.doc-setup-title-row h4{margin:0 0 2px}.doc-setup-title-row p{margin:0}
.doc-fields-compact{display:grid;gap:8px}.doc-field-mini{border:1px solid #e1e8f0;border-radius:12px;padding:9px;background:#fbfdff}.doc-field-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.doc-field-mini-head b{font-size:11px}.doc-field-mini-head span{font-size:9px;color:#7b8da0;background:#eef3f8;padding:3px 6px;border-radius:999px}
.doc-field-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.doc-field-mini-grid.secondary{grid-template-columns:1.4fr 1fr .72fr;margin-top:6px}.doc-field-mini label{display:grid;gap:3px;font-size:9px;font-weight:800;color:#5d6b7b}.doc-field-mini .input{padding:8px 9px!important;min-height:34px!important;border-radius:9px!important;font-size:10px!important}.doc-field-mini input[type=color].input{padding:4px!important;min-width:0}.doc-bold-toggle.compact{display:flex!important;align-items:center;gap:7px;margin-top:7px}.doc-save-settings{width:100%;margin-top:10px}
.doc-template-panel{overflow:visible!important}.doc-preview-column{min-width:0}.doc-preview{max-width:100%;box-shadow:0 14px 36px rgba(9,40,74,.08)}

/* Portal participant readability. */
.participant-event-summary-no-media{background:linear-gradient(135deg,#f8fbff,#eef6ff)!important;color:#0e223b!important}
.participant-event-summary-no-media p{color:#53677d!important}.participant-event-summary-no-media .event-meta-line{color:#405970!important}.participant-event-summary-no-media .event-meta-line span{background:#fff!important;border:1px solid #d8e5f2!important;color:#405970!important;box-shadow:0 3px 9px rgba(9,48,86,.035)}
.participant-event-summary-no-media>.badge{color:#344054!important;background:#f2f4f7!important}

/* Per-account access restrictions. */
.permission-summary{display:flex;gap:5px;flex-wrap:wrap;max-width:360px}.permission-summary span{font-size:10px;padding:4px 7px;background:#eef5ff;color:#075fc6;border-radius:999px;border:1px solid #d6e9ff}.permission-summary small{align-self:center;color:#667085}
.permission-editor{border:1px solid #dce6f0;border-radius:15px;padding:14px;background:#fbfdff}.permission-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.permission-editor-head b,.permission-editor-head small{display:block}.permission-editor-head small{font-weight:500;color:#667085;margin-top:2px}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.permission-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #e0e8f1;border-radius:11px;background:#fff;font-size:11px;font-weight:750;cursor:pointer}.permission-item input{accent-color:#0875ed}.permission-item.locked{background:#eef8ff;color:#075fc6;cursor:default}

/* Chat pagination wrapper. */
.chat-list-wrap{min-width:0;border-right:1px solid var(--line);display:flex;flex-direction:column}.chat-list-wrap .chat-list{border-right:0!important;min-height:0;flex:1}.chat-list-wrap .pagination-bar{padding:10px;border-top:1px solid var(--line);flex-direction:column;align-items:stretch}.chat-list-wrap .pagination-actions{justify-content:center}

/* Mobile UI: smoother drawer and less layout jump without global loading animation. */
@media(max-width:900px){
  .sidebar{transition:transform .32s var(--ease-ui),box-shadow .32s var(--ease-ui),opacity .24s ease!important;will-change:transform}.sidebar.open{box-shadow:18px 0 44px rgba(2,20,39,.22)}
  .app-header{transition:padding .25s var(--ease-ui)}.content{transition:padding .25s var(--ease-ui)}
  .subject-level-grid{grid-template-columns:1fr 1fr}.permission-grid{grid-template-columns:1fr 1fr}.doc-editor-layout{grid-template-columns:1fr!important}.doc-setup-column{display:grid!important;grid-template-columns:1fr 1fr!important}.doc-typography-card{grid-column:1/-1;max-height:none}
  .pagination-bar{align-items:flex-start;flex-direction:column}.pagination-actions{width:100%}
}
@media(max-width:620px){
  .subject-level-head{align-items:flex-start;flex-direction:column;gap:7px}.subject-level-grid{grid-template-columns:1fr}.subject-public-card{min-height:180px}.subject-registration-stat b{font-size:24px}
  .permission-grid{grid-template-columns:1fr}.permission-editor-head{align-items:flex-start;flex-direction:column}.permission-editor-head .btn{width:100%}
  .doc-setup-column{display:flex!important;flex-direction:column}.doc-field-mini-grid,.doc-field-mini-grid.secondary{grid-template-columns:1fr 1fr}.doc-field-mini-grid.secondary label:first-child{grid-column:1/-1}.doc-typography-card{max-height:none}.doc-preview-field{font-size:7px!important}
  .pagination-actions{overflow:auto;flex-wrap:nowrap;padding-bottom:2px}.pagination-btn{flex:0 0 34px}
  .gform-wizard{grid-template-columns:1fr!important}.integration-step{padding:14px!important}.integration-step-title{grid-template-columns:28px minmax(0,1fr)}.integration-step-number{width:28px;height:28px}
  .inline-form{flex-direction:column}.inline-form .btn{width:100%}.admin-subject-picker{width:100%}
}
.subject-level-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:0 2px;color:#667085;font-size:11px}.subject-level-pager>div{display:flex;gap:6px}
@media(max-width:620px){.subject-level-pager{align-items:flex-start;flex-direction:column}.subject-level-pager>div{width:100%;justify-content:flex-end}}

/* v0.10.3 search/filter toolbar */
.list-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}.list-search{position:relative;flex:1 1 320px;min-width:220px}.list-search>span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:20px;color:#64748b;pointer-events:none}.list-search .input{padding-left:42px}.list-filter{width:auto;min-width:170px}.badge-ok{background:#dcfce7;color:#166534}@media(max-width:720px){.list-tools{align-items:stretch}.list-search,.list-filter,.list-tools>.btn{width:100%;min-width:0}.list-search{flex-basis:100%}}


/* === v0.10.5 process animation: only user-initiated operations, never realtime polling === */
.process-loader{position:fixed;inset:0;z-index:4000;display:none!important;align-items:center;justify-content:center;padding:20px;background:rgba(4,17,34,.36);backdrop-filter:blur(5px);opacity:0;transition:opacity .2s ease}
.process-loader.active{display:flex!important;opacity:1}
.process-loader-card{width:min(260px,calc(100vw - 40px));background:rgba(255,255,255,.97);border:1px solid rgba(215,227,241,.95);border-radius:24px;padding:24px;text-align:center;box-shadow:0 28px 80px rgba(3,24,50,.2)}
.process-loader-card>b{display:block;font-size:15px;color:#092a51;margin-top:12px}.process-loader-card>small{display:block;color:#667085;margin-top:4px}
.process-star-wrap{width:76px;height:76px;margin:auto;display:grid;place-items:center;position:relative}.process-star-wrap>span{position:absolute;inset:5px;border-radius:50%;background:radial-gradient(circle,rgba(8,117,237,.20),rgba(8,117,237,0) 68%);animation:processHalo 1.25s ease-in-out infinite}.process-star-wrap img{width:62px;height:62px;object-fit:contain;position:relative;animation:processStar 1.05s cubic-bezier(.45,.05,.55,.95) infinite}
.process-loader-dots{display:flex;justify-content:center;gap:5px;margin-top:14px}.process-loader-dots i{width:6px;height:6px;border-radius:50%;background:#0875ed;animation:processDot 1s ease-in-out infinite}.process-loader-dots i:nth-child(2){animation-delay:.14s}.process-loader-dots i:nth-child(3){animation-delay:.28s}
@keyframes processStar{0%,100%{transform:scale(.92) rotate(-5deg)}50%{transform:scale(1.08) rotate(5deg)}}@keyframes processHalo{0%,100%{transform:scale(.85);opacity:.35}50%{transform:scale(1.2);opacity:1}}@keyframes processDot{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-5px);opacity:1}}
@media(max-width:600px){.process-loader{align-items:flex-end;padding:16px}.process-loader-card{width:100%;border-radius:20px;padding:18px}.process-star-wrap{width:62px;height:62px}.process-star-wrap img{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.process-star-wrap img,.process-star-wrap>span,.process-loader-dots i{animation:none!important}}

/* === v0.10.5 refreshed analytics === */
.analytics-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:18px}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.analytics-kpi-grid .kpi{min-height:138px;background:linear-gradient(145deg,#fff,#f6faff);border-color:#dce9f8;display:flex;flex-direction:column;justify-content:center}.analytics-kpi-grid .kpi .value{font-size:34px;color:#062b57}.analytics-health-panel{background:linear-gradient(145deg,#062a55,#0875ed);color:#fff;border:0;overflow:hidden;position:relative}.analytics-health-panel:after{content:'';position:absolute;width:210px;height:210px;border-radius:50%;right:-90px;top:-90px;background:rgba(255,255,255,.08)}.analytics-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.analytics-panel-head h3{margin:3px 0 0}.analytics-eyebrow{font-size:10px;letter-spacing:.15em;font-weight:900;color:#0875ed}.analytics-health-panel .analytics-eyebrow{color:#b8ddff}.analytics-live-dot{font-size:11px;font-weight:850;color:#c7ffdf;background:rgba(7,80,55,.32);border:1px solid rgba(157,255,202,.18);border-radius:999px;padding:7px 9px}.analytics-donut-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative;z-index:1}.analytics-donut-card{text-align:center}.analytics-donut-card>small{display:block;color:rgba(255,255,255,.72);margin-top:8px}.analytics-donut{--p:0;width:104px;height:104px;margin:auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#65d6ff calc(var(--p)*1%),rgba(255,255,255,.14) 0);position:relative}.analytics-donut:before{content:'';position:absolute;inset:10px;background:#08376b;border-radius:50%}.analytics-donut>div{position:relative;z-index:1}.analytics-donut b{display:block;font-size:21px}.analytics-donut span{font-size:10px;color:#d9ecff}.analytics-chart-panel{min-height:320px}.analytics-line-wrap{width:100%;overflow:hidden}.analytics-line-chart{width:100%;height:auto;min-height:180px}.analytics-line-chart .analytics-line-shadow{fill:none;stroke:#cde4ff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}.analytics-line-chart .analytics-line{fill:none;stroke:#0875ed;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.analytics-line-chart circle{fill:#fff;stroke:#0875ed;stroke-width:4}.analytics-line-chart text{fill:#183b66;font-size:11px;font-weight:850}.analytics-line-chart .axis-label{fill:#667085;font-size:9px}.analytics-alert-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:#fff9ed;border:1px solid #ffe2ab;color:#8b4a00}.analytics-alert-strip span{padding:5px 8px;border-radius:999px;background:#fff;color:#855200;font-size:11px}.finance-stack{margin:24px 0}.finance-stack-bar{height:24px;border-radius:999px;overflow:hidden;background:#eef3f8;display:flex}.finance-stack-bar i{height:100%;display:block}.finance-stack-bar .verified,.legend-dot.verified{background:#17b26a}.finance-stack-bar .pending,.legend-dot.pending{background:#f79009}.finance-stack-bar .unpaid,.legend-dot.unpaid{background:#d0d5dd}.finance-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:11px;color:#475467}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.analytics-finance-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.analytics-finance-cards .kpi{padding:14px;min-height:100px}.analytics-finance-cards .kpi .value{font-size:19px}.analytics-bar-row .bar i{background:linear-gradient(90deg,#0875ed,#4db7ff)}.analytics-rank-item{border-bottom:1px solid #edf1f5;padding:11px 0}.analytics-rank-item:last-child{border-bottom:0}
@media(max-width:1100px){.analytics-hero-grid{grid-template-columns:1fr}.analytics-health-panel{min-height:auto}}
@media(max-width:760px){.analytics-kpi-grid{grid-template-columns:1fr 1fr}.analytics-donut-row{grid-template-columns:repeat(3,1fr)}.analytics-donut{width:84px;height:84px}.analytics-donut:before{inset:9px}.analytics-donut b{font-size:17px}.analytics-finance-cards{grid-template-columns:1fr}.analytics-line-chart{min-width:500px}.analytics-line-wrap{overflow:auto}}
@media(max-width:520px){.analytics-kpi-grid{grid-template-columns:1fr}.analytics-donut-row{gap:5px}.analytics-donut{width:76px;height:76px}.analytics-donut span{font-size:9px}.analytics-health-panel{padding:18px}.analytics-alert-strip{align-items:flex-start;flex-direction:column}}

.exam-in-progress{border-color:#b2ddff;background:linear-gradient(180deg,#f7fbff,#fff)}
.analytics-private-panel{min-height:210px;border:1px dashed #cbd8e6;border-radius:18px;background:linear-gradient(145deg,#f8fbff,#fff);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px;color:#475467}.analytics-private-panel b{color:#16385f;font-size:18px}.analytics-private-panel p{max-width:420px;margin:8px auto 0;line-height:1.6}
.analytics-line-chart .analytics-area{fill:rgba(8,117,237,.08);stroke:none}.analytics-stage-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:8px 0 12px}.analytics-stage-strip>div{position:relative;background:#f7faff;border:1px solid #e3edf8;border-radius:12px;padding:9px 10px;min-width:0}.analytics-stage-strip small{display:block;color:#667085;font-size:9px}.analytics-stage-strip b{display:block;color:#0b345f;font-size:16px;margin-top:2px}.analytics-stage-strip span{position:absolute;right:-7px;top:50%;transform:translateY(-50%);color:#9aa9b8;font-weight:900;z-index:2}@media(max-width:760px){.analytics-stage-strip{grid-template-columns:repeat(5,minmax(92px,1fr));overflow:auto;padding-bottom:5px}.analytics-stage-strip>div{min-width:92px}}

/* v0.10.8: released participant result + document actions */
.participant-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.participant-result-grid>div{padding:14px 16px;border:1px solid #d9e5f4;border-radius:16px;background:#f8fbff}.participant-result-grid span{display:block;font-size:12px;color:#64748b;margin-bottom:5px}.participant-result-grid b{font-size:18px;color:#071b38}.participant-result-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.result-released-card{border-color:#b9ddcb;background:linear-gradient(180deg,#fbfffd,#f5fbff)}
@media(max-width:700px){.participant-result-grid{grid-template-columns:1fr}.participant-result-actions .btn{width:100%;justify-content:center}}

/* v0.10.8 sidebar cleanup */
.nav-folder:after,.folder-arrow{display:none!important;content:none!important}
.nav-folder{padding-right:14px!important}
.certificate-window-note{display:inline-flex;align-items:center;min-height:42px;padding:9px 13px;border-radius:12px;background:#fff7df;border:1px solid #f2d58a;color:#815b00;font-size:13px;font-weight:700}

/* ===== PUSKANAS v0.10.14 exam focus, document editor, live readability ===== */
.payment-review-lock{display:inline-flex;align-items:center;max-width:520px;padding:10px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:13px;font-weight:750;line-height:1.45}
.exam-prep-modal{z-index:160}.exam-prep-card{width:min(650px,calc(100% - 24px));position:relative;padding:30px}.exam-prep-star{width:58px;height:58px;object-fit:contain;margin-bottom:14px}.exam-prep-card h2{font-size:28px;margin:8px 0}.exam-prep-checklist{display:grid;gap:10px;margin:20px 0}.exam-prep-checklist>div{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.exam-prep-checklist b{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#e8f2ff;color:#075fc6}.exam-prep-actions{justify-content:flex-end;margin-top:18px}.exam-browser-note{font-size:13px;line-height:1.5}
.exam-mode{position:fixed;inset:0;z-index:5000;background:#07101f;display:grid;grid-template-rows:auto auto 1fr;overflow:hidden}.exam-mode.hidden{display:none!important}.exam-mode-toolbar{height:62px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;background:#07101f;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.exam-mode-toolbar>div{display:flex;align-items:center;gap:10px}.exam-mode-toolbar img{width:34px;height:34px;object-fit:contain}.exam-mode-toolbar b{display:block;font-size:14px}.exam-mode-toolbar small{display:block;color:#aac1df;margin-top:2px}.exam-fullscreen-btn{background:#fff!important;color:#07101f!important;border-color:#fff!important}.exam-frame{width:100%;height:100%;border:0;background:#fff}.exam-focus-warning{display:flex;align-items:center;gap:12px;padding:9px 14px;background:#fff3cd;color:#7a4d00;border-bottom:1px solid #f3ce62;font-size:13px}.exam-focus-warning span{flex:1}.exam-focus-warning button{border:0;background:#7a4d00;color:#fff;border-radius:9px;padding:8px 12px;font-weight:800}.exam-focus-warning.hidden{display:none!important}

.doc-template-stack{display:grid;gap:24px}.doc-template-panel{overflow:visible!important}.doc-template-heading{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.doc-template-heading h3{font-size:24px;margin:4px 0 5px}.doc-template-heading p{margin:0;color:var(--muted)}.doc-editor-topbar{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(220px,.65fr) minmax(420px,1.55fr);gap:12px;align-items:stretch;margin-bottom:16px}.doc-top-card{border:1px solid var(--line);background:#f8fbff;border-radius:16px;padding:14px;min-width:0}.doc-top-card>b{display:block;margin-bottom:10px}.doc-upload-form{display:grid;gap:10px}.doc-action-row{display:flex;gap:8px}.doc-action-row .btn{flex:1}.doc-page-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.doc-page-settings label,.doc-selected-grid label{font-size:11px;font-weight:800;color:#475467;display:grid;gap:4px}.doc-selected-field-editor{display:grid;gap:9px}.doc-selected-field-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.doc-selected-field-head b{display:block}.doc-field-code{font-size:10px;padding:4px 7px;background:#eef2f7;border-radius:999px;color:#667085}.doc-selected-grid{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:7px;align-items:end}.doc-bold-toggle{display:flex!important;align-items:center;gap:5px;padding-bottom:9px}.doc-bold-toggle input{width:16px;height:16px}.doc-preview-column{display:grid;gap:10px}.doc-preview{position:relative;width:100%;max-width:1180px;margin:auto;background:#f3f5f8 center/100% 100% no-repeat!important;border:1px solid #d9e2ee;border-radius:16px;overflow:hidden;box-shadow:0 14px 36px rgba(15,23,42,.08);touch-action:none}.doc-preview-field{position:absolute;white-space:nowrap;cursor:grab;user-select:none;touch-action:none;line-height:1!important;padding:2px 4px;border:1px dashed transparent;border-radius:5px;transform-origin:center center;z-index:2}.doc-preview-field:hover,.doc-preview-field.selected{outline:2px solid rgba(7,95,198,.55);background:rgba(235,246,255,.42)}.doc-preview-field.dragging{cursor:grabbing;outline:2px solid #075fc6;background:rgba(255,255,255,.65)}.doc-drag-hint{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#eef7ff;color:#264766;font-size:12px}.doc-drag-hint span{flex:1}.doc-preview-empty{position:absolute;inset:0;display:grid;place-items:center;color:#667085;text-align:center;padding:30px;background:#f8fafc}.micro-label{font-size:10px;letter-spacing:.14em;font-weight:900;color:#075fc6}

/* Custom wallpaper readability: brightness is detected in display-v0118.js. */
.display.has-custom-wallpaper:before{content:""!important;position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none!important;transition:background .35s ease!important}.display.has-custom-wallpaper.wallpaper-dark:before{background:linear-gradient(135deg,rgba(3,9,20,.50),rgba(3,20,43,.36))!important}.display.has-custom-wallpaper.wallpaper-light:before{background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(243,248,255,.25))!important}.display.has-custom-wallpaper .display-main{z-index:2!important}.display.has-custom-wallpaper .scene>div{width:min(1250px,96%);margin:auto;border-radius:34px;padding:clamp(24px,3vw,48px);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 24px 80px rgba(0,0,0,.18);transition:background .35s,color .35s}.display.has-custom-wallpaper.wallpaper-dark .scene>div{background:rgba(3,12,28,.55);border:1px solid rgba(255,255,255,.18);color:#fff}.display.has-custom-wallpaper.wallpaper-light .scene>div{background:rgba(255,255,255,.86);border:1px solid rgba(8,27,54,.12);color:#071426}.display.wallpaper-light .scene-title,.display.wallpaper-light .winner-name,.display.wallpaper-light .countdown{color:#071426!important;text-shadow:0 1px 0 rgba(255,255,255,.35)}.display.wallpaper-light .scene-sub,.display.wallpaper-light .scene-announcement-message{color:#334155!important}.display.wallpaper-light .display-kpi{background:rgba(255,255,255,.88)!important;border-color:rgba(7,31,62,.14)!important;color:#071426!important}.display.wallpaper-light .display-kpi span{color:#475569!important}.display.wallpaper-light .display-bar{background:rgba(15,23,42,.13)!important}.display.wallpaper-light .ticker{color:#334155!important;border-top-color:rgba(15,23,42,.18)!important}.display.wallpaper-light .ticker .time{color:#071426!important}.display.wallpaper-light .live-dot{color:#047857!important;background:rgba(255,255,255,.75);padding:5px 9px;border-radius:999px}.display.wallpaper-light .display-brand span{color:#071426!important;text-shadow:0 1px 5px rgba(255,255,255,.8)}.display.wallpaper-dark .scene-title,.display.wallpaper-dark .winner-name,.display.wallpaper-dark .countdown{color:#fff!important;text-shadow:0 3px 20px rgba(0,0,0,.5)}.display.wallpaper-dark .scene-sub,.display.wallpaper-dark .scene-announcement-message{color:#dbeafe!important}.display.has-custom-wallpaper[data-scene="welcome"] .scene>div,.display.has-custom-wallpaper[data-scene="closing"] .scene>div{text-align:center}

@media(max-width:1100px){.doc-editor-topbar{grid-template-columns:1fr 1fr}.doc-field-editor-host{grid-column:1/-1}.doc-selected-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.exam-prep-card{padding:22px 18px}.exam-prep-actions{display:grid;grid-template-columns:1fr}.exam-mode-toolbar{height:auto;min-height:58px}.exam-mode-toolbar small{max-width:230px}.exam-focus-warning{align-items:flex-start;flex-wrap:wrap}.exam-focus-warning button{width:100%}.doc-template-heading{display:block}.doc-template-heading .badge{margin-top:8px}.doc-editor-topbar{grid-template-columns:1fr}.doc-field-editor-host{grid-column:auto}.doc-selected-grid{grid-template-columns:repeat(2,1fr)}.doc-drag-hint{align-items:flex-start;flex-wrap:wrap}.doc-drag-hint .btn{width:100%}.display.has-custom-wallpaper .scene>div{width:98%;padding:18px;border-radius:24px}}

/* v0.10.14: certificate batch window lives with document operations. */
.certificate-batch-panel{border-color:#dbe7f7;background:linear-gradient(180deg,#fff,#fbfdff)}
.compact-head{margin-bottom:14px}.compact-head h3{margin:0 0 5px}.compact-head p{margin:0;color:var(--muted)}
.certificate-batch-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:680px){.certificate-batch-actions{display:grid;grid-template-columns:1fr}.certificate-batch-actions .btn{width:100%}}


/* ===== PUSKANAS v0.10.14 document studio cleanup ===== */
.document-download-panel{padding:22px!important;background:linear-gradient(180deg,#fff,#fbfdff)}
.document-download-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.document-download-heading h3{margin:4px 0 4px;font-size:22px}
.document-download-grid{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(520px,1.6fr);gap:14px;align-items:stretch}
.document-download-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:#fff;display:flex;flex-direction:column;gap:14px;justify-content:space-between;min-width:0}
.document-download-card b{font-size:16px}.document-download-card p{margin:5px 0 0;color:var(--muted);line-height:1.5}.document-download-card>.btn{align-self:flex-start}
.certificate-window-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.certificate-window-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#344054}.certificate-window-grid small{font-weight:500;color:var(--muted)}
.document-download-actions{grid-column:1/-1;display:flex;gap:9px;align-items:center;flex-wrap:wrap}.document-download-status{border-radius:12px;padding:10px 12px;font-size:12px;background:#ecfdf3;color:#067647}.document-download-status.warn{background:#fff7ed;color:#9a3412}
.doc-image-status{display:block;margin-top:2px;font-size:11px;color:var(--muted)}.doc-image-status.ok{color:#067647}.doc-image-status.bad{color:#b42318}
.doc-page-actions{display:flex;gap:8px;flex-wrap:wrap}.doc-page-actions .btn{flex:1 1 auto}
.doc-preview.with-bg .doc-preview-empty{background:rgba(248,250,252,.82)}
@media(max-width:1050px){.document-download-grid{grid-template-columns:1fr}.certificate-window-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.document-download-panel{padding:15px!important}.certificate-window-grid{grid-template-columns:1fr}.document-download-actions{grid-column:auto;display:grid;grid-template-columns:1fr}.document-download-actions .btn{width:100%}.document-download-card>.btn{width:100%}.doc-page-actions{display:grid;grid-template-columns:1fr}.doc-page-actions .btn{width:100%}}


/* ===== PUSKANAS v0.10.14 UI hardening ===== */
/* Fullscreen exam must consume the entire viewport. */
.exam-mode{display:flex!important;flex-direction:column!important;width:100vw!important;height:100dvh!important;min-height:100vh!important;max-height:100dvh!important;background:#fff!important;overflow:hidden!important}
html:fullscreen,html:-webkit-full-screen{width:100%!important;height:100%!important;background:#fff!important}
html:fullscreen body,html:-webkit-full-screen body{width:100%!important;height:100%!important;overflow:hidden!important;background:#fff!important}
.exam-mode-toolbar{flex:0 0 62px!important;width:100%!important}
.exam-focus-warning{flex:0 0 auto!important}
.exam-frame-shell{position:relative;flex:1 1 auto;min-height:0;width:100%;overflow:hidden;background:#fff}
.exam-frame{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:100%!important;display:block!important;border:0!important;background:#fff!important}

/* Preparation dialog: compact, balanced, responsive. */
.exam-prep-card{width:min(720px,calc(100% - 24px))!important;padding:28px!important;overflow-x:hidden!important}
.exam-prep-hero{display:grid;grid-template-columns:68px 1fr;gap:16px;align-items:center;padding-right:42px}.exam-prep-logo{width:62px;height:62px;border-radius:18px;background:#eef6ff;display:grid;place-items:center}.exam-prep-star{width:46px!important;height:46px!important;margin:0!important}.exam-prep-hero h2{margin:6px 0 4px!important;font-size:26px!important}.exam-prep-hero p{margin:0}.exam-prep-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.exam-prep-meta-grid>div{padding:13px 15px;border:1px solid #dce6f2;border-radius:14px;background:#f8fbff}.exam-prep-meta-grid span{display:block;font-size:11px;color:#667085;text-transform:uppercase;letter-spacing:.08em}.exam-prep-meta-grid b{display:block;margin-top:4px;font-size:18px;color:#0b345f}.exam-prep-checklist{grid-template-columns:1fr 1fr!important;gap:10px!important;margin:14px 0!important}.exam-prep-checklist>div{min-height:76px!important;padding:12px!important;align-items:flex-start!important}.exam-prep-checklist>div>b{flex:0 0 30px}.exam-prep-security{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px 14px;border-radius:14px;background:#fff8e7;border:1px solid #f6d794;color:#805300;font-size:12px;line-height:1.5}.exam-prep-security b{white-space:nowrap}.exam-prep-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.exam-prep-actions .btn{min-width:150px}

/* General button/layout protection. */
.btn{min-height:42px;max-width:100%;line-height:1.15;white-space:nowrap}.page-actions,.actions,.crud-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}.page-actions>*,.actions>*,.crud-actions>*{min-width:0}.crud-actions{justify-content:flex-start}.crud-actions .crud-icon-btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;padding:0!important;border-radius:11px!important;flex:0 0 38px!important}.crud-action-icon{width:18px;height:18px;display:grid;place-items:center}.crud-action-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Modal/form scroll is contained inside the card, never outside the form. */
.modal{overflow:hidden!important}.modal-card{position:relative!important;width:min(760px,100%)!important;max-width:100%!important;max-height:min(92dvh,920px)!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:24px!important}.modal-card>*{max-width:100%;min-width:0}.modal-card .form-grid>*{min-width:0}.modal-card input,.modal-card select,.modal-card textarea{max-width:100%;min-width:0}.modal-card::-webkit-scrollbar{width:9px}.modal-card::-webkit-scrollbar-track{background:transparent}.modal-card::-webkit-scrollbar-thumb{background:#c7d2df;border-radius:999px;border:2px solid #fff}.modal-card{scrollbar-width:thin;scrollbar-color:#c7d2df transparent}#genericModalCard{width:min(860px,100%)!important}.modal .page-head{position:relative!important;min-width:0}.modal .page-head>div{min-width:0}.modal .page-head h1,.modal .page-head h2,.modal .page-head p{overflow-wrap:anywhere}

/* Ranking finale + premium gold ribbons. */
.confetti.gold-confetti i{width:7px;height:34px;border-radius:2px;box-shadow:0 0 10px rgba(255,210,70,.28);animation-name:goldRibbonFall}.confetti.gold-confetti i:nth-child(3n){width:10px;height:28px}.confetti.gold-confetti i:nth-child(4n){width:5px;height:40px}@keyframes goldRibbonFall{0%{transform:translateY(-5vh) rotate(0deg) rotateY(0);opacity:0}10%{opacity:1}100%{transform:translateY(112vh) rotate(720deg) rotateY(540deg);opacity:.85}}
.ranking-board{text-align:center}.winner-podium{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:16px;align-items:end;width:min(1120px,96%);margin:34px auto 0}.podium-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:230px;padding:26px 18px;border-radius:26px;border:1px solid rgba(255,255,255,.18);background:rgba(4,16,36,.58);backdrop-filter:blur(12px);box-shadow:0 20px 60px rgba(0,0,0,.2)}.podium-card.gold{min-height:292px;order:2;background:linear-gradient(180deg,rgba(255,221,99,.30),rgba(82,54,3,.52));border-color:rgba(255,220,94,.55)}.podium-card.silver{min-height:252px;order:1}.podium-card.bronze{min-height:220px;order:3}.podium-rank{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:950;background:#fff;color:#081426;box-shadow:0 10px 28px rgba(0,0,0,.18)}.podium-card.gold .podium-rank{background:linear-gradient(145deg,#fff1a8,#e4ad20);color:#5d3d00}.podium-card span{font-size:12px;letter-spacing:.13em;font-weight:900}.podium-card b{font-size:clamp(22px,2.6vw,38px);line-height:1.05}.podium-card small{font-size:14px;opacity:.82}.display.wallpaper-light .podium-card{background:rgba(255,255,255,.88);border-color:rgba(15,23,42,.14);color:#071426}.display.wallpaper-light .podium-card.gold{background:linear-gradient(180deg,rgba(255,239,171,.95),rgba(255,255,255,.90))}

@media(max-width:700px){.exam-prep-card{padding:20px 16px!important}.exam-prep-hero{grid-template-columns:52px 1fr;gap:12px}.exam-prep-logo{width:50px;height:50px;border-radius:14px}.exam-prep-star{width:38px!important;height:38px!important}.exam-prep-hero h2{font-size:22px!important}.exam-prep-meta-grid,.exam-prep-checklist{grid-template-columns:1fr!important}.exam-prep-security{grid-template-columns:1fr}.exam-prep-actions{display:grid!important;grid-template-columns:1fr!important}.exam-prep-actions .btn{width:100%;min-width:0}.exam-mode-toolbar{flex:0 0 auto!important;min-height:58px!important}.modal-card{width:100%!important;max-height:94dvh!important;padding:18px!important;padding-right:18px!important}.winner-podium{grid-template-columns:1fr;align-items:stretch}.podium-card,.podium-card.gold,.podium-card.silver,.podium-card.bronze{min-height:0!important;order:initial!important;padding:18px}.podium-rank{width:50px;height:50px;font-size:22px}}

.podium-result{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:4px}.podium-result span{font-size:11px!important;letter-spacing:0!important;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.12)}.display.wallpaper-light .podium-result span{background:rgba(7,20,38,.07)}

/* ===== PUSKANAS v0.10.14 attendance popup, date-filter batch, template preview ===== */
.attendance-card-popup{width:min(520px,94vw);padding:26px!important;overflow:hidden!important}
.attendance-card-body{text-align:center;min-width:0}
.attendance-card-loading{min-height:330px;display:grid;place-items:center;align-content:center;gap:16px;color:#334155}
.attendance-card-loading img{width:58px;height:58px;object-fit:contain;animation:pulseStar 1.2s ease-in-out infinite}
.attendance-popup-logo{display:block;width:min(220px,62%);height:auto;margin:0 auto 16px}
.attendance-qr-state h2,.attendance-success-state h2{margin:8px 0 6px}
.attendance-qr-state>p{max-width:390px;margin:0 auto 16px;line-height:1.55}
.attendance-qr-frame{width:min(310px,78vw);aspect-ratio:1/1;margin:16px auto;padding:14px;border:1px solid #d9e4f0;border-radius:22px;background:#fff;box-shadow:0 16px 40px rgba(7,50,100,.09)}
.attendance-qr-frame img{width:100%;height:100%;display:block;object-fit:contain}
.attendance-card-number,.attendance-success-meta{display:grid;gap:4px;margin:14px auto;padding:12px 16px;border:1px solid #dfE8f2;border-radius:14px;background:#f8fbff;max-width:330px}
.attendance-card-number span,.attendance-success-meta span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}
.attendance-card-number b,.attendance-success-meta b{font-size:17px;color:#0f172a}
.attendance-card-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.attendance-waiting{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:12px;color:#64748b}
.attendance-waiting span{width:9px;height:9px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.10);animation:attendancePulse 1.2s ease-in-out infinite}
@keyframes attendancePulse{50%{opacity:.35;transform:scale(.75)}}
.attendance-success-state{padding:28px 6px 18px}
.attendance-success-icon{width:88px;height:88px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:#e9fbf1;color:#148455;font-size:50px;font-weight:900;box-shadow:0 14px 34px rgba(20,132,85,.13)}
.attendance-success-state p{max-width:380px;margin:0 auto 14px;line-height:1.55;color:#526175}
.attendance-success-state .btn{margin-top:6px}

.certificate-date-filter{display:grid;grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto;gap:12px;align-items:end;margin-top:12px}
.certificate-date-filter label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:#334155}
.certificate-date-filter .document-download-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.doc-preview{background-image:none!important}
.doc-preview-image{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;user-select:none}
.doc-preview-image.hidden{display:none!important}
.doc-preview-empty{z-index:1}
.doc-preview-field{z-index:2!important}

@media(max-width:760px){
  .certificate-date-filter{grid-template-columns:1fr}
  .certificate-date-filter .document-download-actions{display:grid;grid-template-columns:1fr 1fr}
  .attendance-card-popup{padding:20px!important}.attendance-qr-frame{width:min(280px,76vw)}
}


/* ===== PUSKANAS v0.10.14 public registration blue theme ===== */
.public-topbar-v4{
  background:linear-gradient(135deg,rgba(4,32,75,.98),rgba(7,95,198,.97))!important;
  border-bottom-color:rgba(255,255,255,.14)!important;
  box-shadow:0 10px 32px rgba(3,34,76,.18)!important;
}
.public-topbar-v4 .public-navlinks-v4>a:not(.btn){color:#f7fbff!important}
.public-topbar-v4 .public-navlinks-v4>a:not(.btn):hover{color:#ffcf93!important}
.public-topbar-v4 .public-login-btn{background:rgba(255,255,255,.96)!important;border-color:rgba(255,255,255,.86)!important;color:#06366e!important}
.public-topbar-v4 .public-brand-v4 img{filter:drop-shadow(0 7px 16px rgba(0,0,0,.18))}
.registration-section-v4{
  background:radial-gradient(circle at 88% 8%,rgba(66,164,255,.33),transparent 30%),linear-gradient(135deg,#041a3c 0%,#075fc6 58%,#0879ee 100%)!important;
  position:relative;overflow:hidden;
}
.registration-section-v4:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:40px 40px}
.registration-section-v4>.container{position:relative;z-index:1}
.registration-aside-v4 h2{color:#fff!important}
.registration-aside-v4>p{color:#d7eaff!important}
.registration-aside-v4 .public-eyebrow-v4{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.24)!important;color:#fff!important;box-shadow:none!important}
.registration-note-v4{background:rgba(255,255,255,.11)!important;border-color:rgba(255,255,255,.20)!important;color:#fff!important;backdrop-filter:blur(12px)}
.registration-note-v4 span{color:#d9eaff!important}
.registration-card-v4{background:#fff!important;border-color:rgba(255,255,255,.64)!important;box-shadow:0 28px 70px rgba(0,25,70,.28)!important}
@media(max-width:700px){
  .public-page-v4{background:#075fc6!important}
  .public-topbar-v4{position:sticky!important;background:#075fc6!important}
  .registration-section-v4{padding:44px 0 54px!important;min-height:calc(100dvh - 64px);background:linear-gradient(180deg,#075fc6,#064da5)!important}
  .registration-layout-v4{gap:18px!important}
  .registration-aside-v4{padding:0 4px!important}
  .registration-aside-v4 h2{font-size:32px!important;margin:12px 0 10px!important}
  .registration-aside-v4>p{font-size:14px!important}
  .registration-note-v4{margin-top:16px!important}
  .registration-card-v4{border-radius:22px!important;padding:18px!important;box-shadow:0 22px 54px rgba(0,25,70,.28)!important}
  .registration-card-v4 .page-head h2{font-size:27px!important}
}

/* ===== PUSKANAS v0.10.14 Maintenance + digital award QR ===== */
.maintenance-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.maintenance-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:20px;box-shadow:0 8px 28px rgba(16,24,40,.04)}
.maintenance-card.danger{border-color:#fecaca;background:#fffafa}.maintenance-card h3{margin:0 0 8px}.maintenance-card p{color:var(--muted);line-height:1.6}
.maintenance-confirm{display:grid;gap:10px;margin-top:14px}.maintenance-confirm .input{background:#fff}
.doc-preview-qr{display:grid!important;place-items:center!important;padding:3px!important;background:#fff!important;border:1px solid rgba(15,23,42,.28)!important;box-shadow:0 2px 8px rgba(15,23,42,.12)!important}
.doc-preview-qr svg{width:100%;height:100%;display:block}.doc-preview-qr.selected{outline:3px solid rgba(7,95,198,.55)!important}
.award-digital-frame{width:100%;height:min(72vh,760px);border:1px solid #d9e2ec;border-radius:18px;background:#fff;margin-top:18px}
@media(max-width:760px){.maintenance-grid{grid-template-columns:1fr}.award-digital-frame{height:62vh}}

/* v0.10.15 — admin notifications, QR verification, and reference-school UX */
.admin-notification-wrap{position:relative;display:flex;align-items:center}
.notification-bell{position:relative;width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);display:grid;place-items:center;cursor:pointer;transition:.18s ease}
.notification-bell:hover{border-color:#b8cee9;box-shadow:0 8px 22px rgba(15,67,120,.10);transform:translateY(-1px)}
.notification-bell svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-badge{position:absolute;right:-5px;top:-6px;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;border:2px solid #fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1}
.admin-notification-panel{position:absolute;right:0;top:52px;width:min(390px,calc(100vw - 28px));max-height:min(520px,70vh);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px rgba(15,38,70,.18);z-index:1200}
.notification-panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;background:#fff;z-index:1}
.notification-panel-head b{display:block;font-size:16px}.notification-panel-head small{display:block;color:var(--muted);margin-top:2px}
.notification-list{padding:8px}.notification-item{width:100%;border:0;background:transparent;border-radius:14px;padding:11px;display:grid;grid-template-columns:38px 1fr;gap:10px;text-align:left;cursor:pointer;color:var(--text)}
.notification-item:hover{background:#f5f9ff}.notification-item>span:last-child{min-width:0}.notification-item b{display:block;font-size:13px;line-height:1.35}.notification-item small{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:3px}.notification-item em{display:block;color:#8090a6;font-size:10px;font-style:normal;margin-top:5px}
.notification-item-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:900;background:#e9f4ff;color:#0868c9}.notification-item-icon.payment{background:#eafaf1;color:#15803d}.notification-empty{padding:22px 14px;text-align:center;color:var(--muted);font-size:13px}
.nav-label .unread-dot{margin-left:6px;vertical-align:middle}
.qr-verification-test{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:22px;align-items:center}.qr-verification-test img{width:100%;aspect-ratio:1;background:#fff;border:10px solid #fff;border-radius:16px;box-shadow:0 8px 28px rgba(15,38,70,.12)}
.award-verification-card{text-align:center;padding:28px}.award-verification-star{width:68px}.pending-mark{width:48px;height:48px;margin:0 auto 8px;border-radius:50%;display:grid;place-items:center;background:#fff3cd;color:#8a5b00;font-size:30px;font-weight:800}
@media(max-width:760px){.admin-notification-panel{position:fixed;right:14px;left:14px;top:68px;width:auto}.app-header .right #adminName{display:none}.qr-verification-test{grid-template-columns:1fr}.qr-verification-test img{max-width:240px;margin:auto}.notification-bell{width:40px;height:40px}}
.notification-target-row{outline:2px solid rgba(8,117,237,.35);outline-offset:-2px;background:#f2f8ff!important;animation:notificationRowPulse 1.6s ease-out 1}
@keyframes notificationRowPulse{0%{box-shadow:inset 0 0 0 999px rgba(8,117,237,.12)}100%{box-shadow:inset 0 0 0 999px rgba(8,117,237,0)}}

/* v0.10.16 - attendance QR modal must stay fully usable on short/mobile screens. */
.attendance-card-modal{align-items:center;overflow-y:auto;padding:16px 10px}
.attendance-card-popup{width:min(520px,94vw);max-height:min(94dvh,920px)!important;padding:26px!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.attendance-card-popup .modal-close{position:sticky;top:0;z-index:3}
@media(max-width:640px),(max-height:760px){
  .attendance-card-modal{align-items:flex-start}
  .attendance-card-popup{max-height:calc(100dvh - 20px)!important;padding:18px!important;margin:auto}
  .attendance-qr-frame{width:min(250px,70vw);margin:10px auto;padding:10px}
  .attendance-qr-state>p{margin-bottom:10px}
}

/* v0.10.16 - compact payment account list inside the half-width Event card. */
.bank-account-list{display:grid;gap:10px}
.bank-account-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:#fbfdff}
.bank-account-main{min-width:0;display:grid;gap:3px}
.bank-account-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bank-account-main code{font:700 14px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:normal;word-break:break-all;color:var(--ink)}
.bank-account-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bank-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.bank-account-actions .btn{padding:9px 11px;min-height:38px}
@media(max-width:650px){.bank-account-item{grid-template-columns:1fr}.bank-account-actions{justify-content:flex-start}}

/* v0.10.16 - audit log stays bounded and readable. */
.audit-table-wrap{max-height:660px;overflow:auto;border:1px solid var(--line);border-radius:16px}
.audit-table-wrap .table{margin:0}
.audit-table-wrap thead th{position:sticky;top:0;z-index:2;background:#f7faff}
.audit-detail-cell{max-width:420px;white-space:normal;overflow-wrap:anywhere}

/* v0.10.16 - School Analytics information hierarchy. */
.school-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.school-kpi{min-height:126px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fff,#f8fbff);box-shadow:0 10px 26px rgba(15,42,74,.045);display:flex;flex-direction:column;justify-content:center}
.school-kpi span{font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}.school-kpi b{font-size:31px;line-height:1.1;margin:8px 0 4px}.school-kpi small{color:var(--muted)}
.school-kpi.accent{background:linear-gradient(145deg,#eef7ff,#fff);border-color:#cfe5ff}
.school-leader-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.school-leader-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 12px 30px rgba(15,42,74,.05);overflow:hidden;position:relative}
.school-leader-card::after{content:"";position:absolute;right:-38px;top:-50px;width:130px;height:130px;border-radius:50%;background:rgba(17,117,235,.06)}
.school-leader-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#eaf4ff;color:#0c6fd9;font-size:22px;font-weight:900}.school-leader-card.winners .school-leader-icon{background:#fff5d8;color:#a76b00}
.school-leader-copy{min-width:0}.school-leader-copy span{font-size:11px;letter-spacing:.08em;font-weight:900;color:var(--muted)}.school-leader-copy h3{margin:5px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.school-leader-copy p{margin:0;color:var(--muted);font-size:13px}
.school-leader-score{position:relative;z-index:1;text-align:right}.school-leader-score>b{display:block;font-size:30px}.school-leader-score>small{color:var(--muted)}.school-medal-inline{display:flex;gap:8px;margin-top:7px;font-size:12px;white-space:nowrap}
.school-directory-panel{padding:0;overflow:hidden}.school-directory-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:22px 22px 12px}.school-directory-head h3{margin:5px 0}.school-directory-head p{margin:0;color:var(--muted)}.school-directory-panel>.list-tools{margin:8px 22px 16px}
.school-medal-summary{display:flex;gap:12px;flex-wrap:wrap}.school-medal-summary>span{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;font-size:12px}.school-medal-summary .medal{width:9px;height:9px;border-radius:50%;display:inline-block}.school-medal-summary .gold{background:#e7ae27}.school-medal-summary .silver{background:#9aa6b2}.school-medal-summary .bronze{background:#b76e3c}
.school-table-wrap{border-top:1px solid var(--line)}.school-table{min-width:920px}.school-name-cell{display:grid;gap:3px}.school-name-cell small{color:var(--muted)}
.school-rate{display:grid;grid-template-columns:auto 70px;gap:5px 8px;align-items:center}.school-rate>span{height:6px;border-radius:10px;background:#e9eef5;overflow:hidden}.school-rate>span i{display:block;height:100%;background:currentColor;color:#1388e8;border-radius:10px}.school-rate small{grid-column:1/-1;color:var(--muted)}
.school-medal-cell{display:flex;gap:9px;white-space:nowrap}.school-winner-count{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:12px;background:#eef7ff;color:#075fc6}
@media(max-width:1100px){.school-kpi-grid{grid-template-columns:repeat(2,1fr)}.school-leader-grid{grid-template-columns:1fr}}
@media(max-width:640px){.school-kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.school-kpi{padding:14px;min-height:112px}.school-kpi b{font-size:25px}.school-leader-card{grid-template-columns:auto 1fr}.school-leader-score{grid-column:1/-1;text-align:left;padding-left:64px}.school-directory-head{align-items:flex-start;flex-direction:column}.school-directory-panel>.list-tools{margin-inline:14px}}

/* v0.10.16 - package updater. */
.maintenance-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
.maintenance-grid-v2 .update-package-card{grid-column:1/-1;background:linear-gradient(145deg,#f6fbff,#fff);border-color:#cfe5ff}
.maintenance-upload-form{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr) auto;gap:12px;align-items:end;margin-top:16px}.maintenance-upload-form label{display:grid;gap:7px;font-weight:700}.maintenance-upload-form small{font-weight:400;color:var(--muted)}
@media(max-width:900px){.maintenance-grid-v2{grid-template-columns:1fr}.maintenance-upload-form{grid-template-columns:1fr}.maintenance-grid-v2 .update-package-card{grid-column:auto}}

/* v0.10.16 - automatic Event Live Display controls. */
.live-auto-panel{border-color:#cfe2fb;background:linear-gradient(145deg,#f7fbff,#fff)}
.live-auto-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.live-auto-head h3{margin:5px 0}.live-auto-head p{margin:0;max-width:850px;color:var(--muted)}
.live-auto-config{display:grid;grid-template-columns:minmax(200px,1.2fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;gap:12px;align-items:end;margin:18px 0}.live-auto-config>label{display:grid;gap:6px;font-weight:700}.live-auto-config>label small{font-weight:400;color:var(--muted)}
.live-auto-switch{align-self:stretch;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.live-auto-switch input{width:20px;height:20px;accent-color:#0879e8}
.live-auto-status{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px}.live-auto-status>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;display:grid;gap:4px}.live-auto-status span{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800;letter-spacing:.05em}.live-auto-status b{font-size:14px;overflow-wrap:anywhere}
.live-auto-timeline{display:grid;gap:8px}.live-auto-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:#fff}.live-auto-step.active{border-color:#8bc5ff;background:#eef7ff;box-shadow:0 8px 20px rgba(14,114,220,.08)}.live-auto-step-index{width:30px;height:30px;border-radius:10px;background:#edf2f7;display:grid;place-items:center;font-weight:900}.live-auto-step.active .live-auto-step-index{background:#0879e8;color:#fff}.live-auto-step>div:nth-child(2){display:grid;gap:3px}.live-auto-step small{color:var(--muted)}
@media(max-width:980px){.live-auto-config{grid-template-columns:1fr 1fr}.live-auto-config .btn{align-self:stretch}.live-auto-status{grid-template-columns:1fr}}
@media(max-width:620px){.live-auto-head{flex-direction:column}.live-auto-config{grid-template-columns:1fr}.live-auto-step{grid-template-columns:auto 1fr}.live-auto-step>.badge{grid-column:2}.live-auto-status{grid-template-columns:1fr}}

/* v0.10.16 - public Live Display batch countdown and exam-end reminder. */
.exam-clock-stage{width:min(1280px,96%)}
.live-flow-title{margin-bottom:18px!important}
.live-flow-clock{font-variant-numeric:tabular-nums;letter-spacing:.04em}
.live-flow-kpis{max-width:980px;margin:28px auto 0}
.exam-remaining-wrap{width:min(820px,94%);margin:10px auto 28px;padding:20px 28px;border-radius:24px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(145deg,rgba(7,95,198,.28),rgba(10,28,58,.26));box-shadow:0 20px 60px rgba(0,0,0,.12);text-align:center;backdrop-filter:blur(8px)}
.exam-remaining-wrap>span{display:block;font-size:clamp(13px,1.4vw,20px);font-weight:900;letter-spacing:.12em;color:#bfdbfe}
.exam-remaining-wrap>strong{display:block;margin:8px 0 5px;font-size:clamp(62px,10vw,136px);line-height:.95;font-weight:950;letter-spacing:.045em;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 5px 26px rgba(0,0,0,.25)}
.exam-remaining-wrap>small{display:block;font-size:clamp(14px,1.5vw,20px);color:#dbeafe}
.display.wallpaper-light .exam-remaining-wrap{background:rgba(239,247,255,.92);border-color:rgba(7,95,198,.15)}
.display.wallpaper-light .exam-remaining-wrap>span{color:#075fc6}.display.wallpaper-light .exam-remaining-wrap>strong{color:#071426;text-shadow:none}.display.wallpaper-light .exam-remaining-wrap>small{color:#475569}
@media(max-width:700px){.exam-remaining-wrap{padding:17px 14px;border-radius:18px}.exam-remaining-wrap>strong{font-size:clamp(52px,16vw,88px)}.live-flow-kpis{grid-template-columns:1fr 1fr}}


/* v0.10.17 account safety, participant navigation, recovery, document actions */
.confirm-dialog-backdrop{position:fixed;inset:0;background:rgba(6,18,38,.58);display:grid;place-items:center;padding:20px;z-index:12000;backdrop-filter:blur(5px)}
.confirm-dialog-card{width:min(430px,100%);background:#fff;border:1px solid #dbe5f1;border-radius:24px;padding:28px;box-shadow:0 28px 80px rgba(4,22,52,.28);text-align:center}
.confirm-dialog-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin:0 auto 15px;background:#e8f2ff;color:#075fc6;font-size:25px;font-weight:900}.confirm-dialog-icon.danger{background:#fff0f0;color:#c62828}
.confirm-dialog-card h2{margin:0 0 8px}.confirm-dialog-card p{margin:0;color:#61728b;line-height:1.6}.confirm-dialog-actions{display:flex;gap:10px;justify-content:center;margin-top:22px}.confirm-dialog-actions .btn{min-width:125px}
.participant-topbar{background:linear-gradient(90deg,#0b3b78 0%,#075fc6 70%,#147ae1 100%);border-bottom:0;box-shadow:0 10px 30px rgba(8,54,112,.15)}
.participant-topbar .participant-menu .btn{color:#fff;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08)}
.participant-topbar .participant-menu .btn:hover,.participant-topbar .participant-menu .btn.active{background:#fff;color:#0b3b78;border-color:#fff}
.participant-topbar .brand-image img{filter:drop-shadow(0 2px 2px rgba(0,0,0,.08))}
.account-recovery-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:16px 18px;border-radius:18px;background:#fff7dc;border:1px solid #f4d56b}.account-recovery-banner b{display:block;color:#573f00}.account-recovery-banner span{display:block;margin-top:3px;color:#7a6729;font-size:.92rem}
.security-question-help{padding:12px 14px;border-radius:14px;background:#f3f7fc;color:#596a82;font-size:.9rem;line-height:1.55}
.forgot-link-row{display:flex;justify-content:flex-end;margin-top:-2px}.forgot-link-row button{border:0;background:none;color:#075fc6;font-weight:800;cursor:pointer;padding:4px 0}.forgot-link-row button:hover{text-decoration:underline}
.recovery-step{display:none}.recovery-step.active{display:block}.recovery-note{font-size:.88rem;color:#687990;line-height:1.55;margin-top:10px}
.document-verification-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:16px 0 4px}.document-verification-actions .btn{min-width:170px}
.participant-whatsapp-btn{background:#159d54!important;color:#fff!important;border-color:#159d54!important}.participant-whatsapp-btn:hover{filter:brightness(.96)}
.public-guide-btn{white-space:nowrap}
@media(max-width:760px){.participant-topbar .nav{align-items:flex-start}.participant-topbar .participant-menu{gap:7px}.participant-topbar .participant-menu .btn{padding:10px 12px}.account-recovery-banner{align-items:flex-start;flex-direction:column}.account-recovery-banner .btn{width:100%}.confirm-dialog-actions{flex-direction:column-reverse}.confirm-dialog-actions .btn{width:100%}}
.recovery-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.recovery-panel-head{margin-bottom:14px}.recovery-panel-head h3{margin:7px 0 5px}.recovery-panel-head p{margin:0}
.recovery-panel .form-grid{margin-top:12px}.recovery-panel .notice{margin-bottom:2px}
.participant-menu{flex-wrap:wrap}.participant-actions{align-items:center}
@media(max-width:760px){.participant-topbar .container.nav{gap:10px}.participant-topbar .participant-menu{width:100%;justify-content:flex-start}.participant-topbar .participant-menu .btn{font-size:13px}.document-verification-actions{display:grid}.document-verification-actions .btn{width:100%}}


/* =========================================================
   PUSKANAS v0.10.18 — visual alignment & responsive hardening
   ========================================================= */

/* Public portal: distinct actions and glass interaction on registration. */
.public-hero-actions-v4{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.public-hero-actions-v4 .btn{position:relative;overflow:hidden;border:1px solid transparent;box-shadow:0 10px 24px rgba(9,53,110,.10);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease,border-color .2s ease}
.public-register-btn{isolation:isolate;background:linear-gradient(135deg,#0879ee 0%,#075fc6 58%,#144fc5 100%)!important;color:#fff!important;border-color:rgba(255,255,255,.26)!important;box-shadow:0 15px 34px rgba(7,95,198,.27)!important}
.public-register-btn:before{content:"";position:absolute;inset:-45% -20%;z-index:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.08) 40%,rgba(255,255,255,.55) 50%,rgba(255,255,255,.10) 60%,transparent 75%);transform:translateX(-120%) skewX(-12deg);transition:transform .55s ease;pointer-events:none}
.public-register-btn:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 20px 46px rgba(7,95,198,.34),inset 0 1px 0 rgba(255,255,255,.46)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.public-register-btn:hover:before{transform:translateX(105%) skewX(-12deg)}
.public-status-btn{background:linear-gradient(135deg,#fff 0%,#eef6ff 100%)!important;color:#123f73!important;border-color:#bad8fa!important}
.public-status-btn:hover{box-shadow:0 15px 34px rgba(39,104,178,.18)}
.public-location-btn{background:linear-gradient(135deg,#fff2d9,#ffe2ad)!important;color:#8b4a00!important;border-color:#ffc769!important}
.public-location-btn:hover{filter:saturate(1.08)}
.public-guide-btn{background:linear-gradient(135deg,#eee8ff,#ddd4ff)!important;color:#4633a4!important;border-color:#c6b9ff!important;white-space:nowrap}
.public-guide-btn:hover{filter:saturate(1.08)}

/* Participant portal: clear color coding for every primary event action. */
.participant-actions{display:flex;gap:10px;flex-wrap:wrap}
.participant-actions .btn,.participant-result-actions .btn,.attendance-card-actions .btn{border:1px solid transparent!important;box-shadow:0 9px 22px rgba(15,52,99,.10);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.participant-actions .btn:hover,.participant-result-actions .btn:hover,.attendance-card-actions .btn:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(15,52,99,.16);filter:brightness(.985)}
.participant-attendance-btn{background:linear-gradient(135deg,#6956e8,#5140cb)!important;color:#fff!important;border-color:#5847d2!important}
.participant-location-btn{background:linear-gradient(135deg,#ffad32,#ed8517)!important;color:#fff!important;border-color:#e4871a!important}
.participant-chat-btn{background:linear-gradient(135deg,#0c8fd5,#066fb4)!important;color:#fff!important;border-color:#0876b8!important}
.participant-payment-btn{background:linear-gradient(135deg,#f0a21f,#d97a0e)!important;color:#fff!important;border-color:#d88117!important}
.participant-whatsapp-btn{background:linear-gradient(135deg,#21b665,#159d54)!important;color:#fff!important;border-color:#159d54!important}
.participant-exam-btn{background:linear-gradient(135deg,#0879ed,#075fc6)!important;color:#fff!important;border-color:#075fc6!important;box-shadow:0 12px 28px rgba(7,95,198,.20)!important}
.participant-certificate-btn{background:linear-gradient(135deg,#6d5be8,#533ac5)!important;color:#fff!important;border-color:#5845c9!important}
.participant-discussion-btn{background:linear-gradient(135deg,#13a6a1,#087d88)!important;color:#fff!important;border-color:#0b858d!important}
.participant-download-btn{background:linear-gradient(135deg,#155eaa,#0a477f)!important;color:#fff!important;border-color:#0f518f!important}

/* Maintenance: labels/inputs align as one system at desktop, tablet and mobile widths. */
.maintenance-grid-v2{align-items:stretch}
.maintenance-card{min-width:0;display:flex;flex-direction:column}
.maintenance-card>.notice{width:100%}
.maintenance-upload-form{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;align-items:stretch!important;margin-top:18px!important}
.maintenance-upload-fields{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:14px;align-items:start}
.maintenance-upload-fields label,.maintenance-confirm label{display:grid;grid-template-rows:auto minmax(48px,auto) auto;gap:7px;font-weight:800;min-width:0}
.maintenance-upload-fields .input,.maintenance-confirm .input{min-height:48px;width:100%;min-width:0}
.maintenance-file-input{padding:8px 10px!important;line-height:1.2}
.maintenance-file-input::file-selector-button{min-height:34px;margin-right:10px;border:0;border-radius:9px;padding:7px 11px;background:#eaf4ff;color:#075fc6;font-weight:800;cursor:pointer}
.maintenance-upload-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:2px}
.maintenance-upload-actions .btn{min-width:240px}
.maintenance-confirm{margin-top:auto!important;padding-top:16px}
.maintenance-confirm .btn{min-height:48px}

/* Live Display: every scene uses a centered visual frame with restrained typography. */
.display-main{display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden}
.scene{height:100%;min-height:0;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding:8px 0}
.scene>div{width:min(1180px,96%);max-height:100%;margin:auto!important;text-align:center;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}
.scene>div::-webkit-scrollbar{display:none}
.scene-title{width:min(1080px,100%);margin-left:auto!important;margin-right:auto!important;font-size:clamp(34px,4.2vw,62px)!important;line-height:1.08!important;letter-spacing:-.038em!important}
.scene-sub{width:min(980px,100%);margin-left:auto!important;margin-right:auto!important;font-size:clamp(14px,1.55vw,21px)!important;line-height:1.5!important}
.display-kpis{width:min(1040px,100%);margin:28px auto 0!important;gap:14px!important}
.display-kpi{padding:20px!important;border-radius:20px!important}
.display-kpi b{font-size:clamp(30px,4vw,54px)!important;line-height:1!important}
.display-kpi span{font-size:clamp(10px,.9vw,12px)!important;line-height:1.35!important}
.display-bars{width:min(1000px,94%)!important;margin:26px auto 0!important}
.display-bar-row{grid-template-columns:minmax(150px,220px) minmax(120px,1fr) 88px!important;gap:14px!important;margin:12px 0!important;font-size:clamp(13px,1.2vw,17px)!important;text-align:left}
.display-bar-row>b{text-align:right}
.countdown{font-size:clamp(64px,10vw,138px)!important;line-height:.96!important;letter-spacing:.01em!important}
.winner-name{font-size:clamp(42px,6.2vw,82px)!important;line-height:1.02!important;letter-spacing:-.035em!important}
.medal{font-size:clamp(64px,8vw,100px)!important}
.exam-clock-stage{width:min(1120px,96%)!important}
.live-scene-card{margin:auto!important}
.live-flow-title{margin-top:14px!important;margin-bottom:12px!important}
.live-batch-label{display:inline-flex;align-items:center;justify-content:center;min-height:34px;margin:0 auto 10px;padding:7px 14px;border-radius:999px;background:rgba(7,95,198,.16);border:1px solid rgba(100,181,255,.35);font-size:clamp(13px,1.2vw,17px);font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#dbeafe}
.display.wallpaper-light .live-batch-label{background:rgba(7,95,198,.09);border-color:rgba(7,95,198,.18);color:#075fc6}
.live-batch-subjects{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:min(1000px,96%);margin:0 auto 16px}
.live-batch-subjects span{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);font-size:clamp(11px,1vw,14px);line-height:1.2;color:#eaf4ff}
.live-batch-subjects b{font-weight:900;color:#fff}
.display.wallpaper-light .live-batch-subjects span{background:rgba(255,255,255,.92);border-color:rgba(15,23,42,.12);color:#334155}.display.wallpaper-light .live-batch-subjects b{color:#071426}
.live-flow-kpis{margin-top:22px!important}
.exam-remaining-wrap{width:min(720px,90%)!important;margin:8px auto 20px!important;padding:17px 22px!important}
.exam-remaining-wrap>strong{font-size:clamp(54px,8vw,106px)!important;line-height:.98!important}
.live-completed-mark{width:84px!important;height:84px!important;font-size:44px!important;margin-bottom:12px!important}
.live-completed-kpis{max-width:720px!important}

/* Admin live automation: multi-subject batches remain readable instead of a single long label. */
.live-auto-step{align-items:start!important}
.live-auto-step-main{display:grid;gap:6px;min-width:0}
.live-auto-step-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.live-auto-step-title>span{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf6ff;color:#075fc6;font-size:10px;font-style:normal;font-weight:850}
.live-auto-subjects{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.live-auto-subjects em{font-style:normal;font-size:10px;font-weight:750;color:#53657d;background:#f5f7fa;border:1px solid #e4eaf1;border-radius:999px;padding:4px 7px}

/* Cross-page responsive hardening: prevent clipped forms, actions and oversized controls. */
img,svg,video,canvas,iframe{max-width:100%}
.input,select,textarea,input[type=file]{max-width:100%;min-width:0}
.form-grid,.grid-2,.grid-3,.kpis,.cards{min-width:0}
.form-grid>*,.grid-2>*,.grid-3>*,.kpis>*,.cards>*{min-width:0}
.page-head>*{min-width:0}.page-head h1,.page-head h2,.page-head h3,.page-head p{overflow-wrap:anywhere}
.crud-actions,.page-actions,.actions,.inline-form{flex-wrap:wrap}
.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
.modal-card{max-width:calc(100vw - 24px)}
@media(max-width:1024px){
  .maintenance-upload-fields{grid-template-columns:1fr}
  .maintenance-upload-actions{align-items:stretch;flex-direction:column}.maintenance-upload-actions .btn{width:100%;min-width:0}
  .display{padding:22px 24px!important}.display-head{min-height:42px}.display-brand img{height:38px!important}.display-brand span{font-size:11px!important}
  .scene-title{font-size:clamp(30px,5vw,52px)!important}.countdown{font-size:clamp(58px,12vw,116px)!important}
}
@media(max-width:760px){
  .content{padding:14px!important}.panel,.card,.form-card,.maintenance-card{padding:16px!important;border-radius:16px!important}
  .form-grid,.grid-2,.grid-3,.kpis,.cards{grid-template-columns:1fr!important}
  .field.full{grid-column:1!important}
  .page-head{gap:10px!important;margin-bottom:16px!important}.page-head h1{font-size:24px!important}.page-actions{width:100%;display:grid!important;grid-template-columns:1fr}.page-actions .btn,.page-actions a{width:100%}
  .participant-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px}.participant-actions .btn{width:100%;min-width:0}
  .public-hero-actions-v4{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}.public-hero-actions-v4 .btn{width:100%;min-width:0}.public-register-btn{grid-column:1/-1}
  .display{padding:14px 16px!important}.display-head{gap:8px}.display-brand span{display:none}.display-brand img{height:30px!important}.live-dot{font-size:10px!important}
  .scene{padding:2px 0!important}.scene>div{width:98%!important}.scene-title{font-size:clamp(26px,7vw,40px)!important}.scene-sub{font-size:clamp(12px,3.2vw,16px)!important}
  .display-kpis{grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:16px!important}.display-kpi{padding:12px!important;border-radius:14px!important}.display-kpi b{font-size:clamp(24px,8vw,38px)!important}
  .display-bars{width:98%!important;margin-top:16px!important}.display-bar-row{grid-template-columns:minmax(82px,110px) 1fr 54px!important;gap:7px!important;margin:8px 0!important;font-size:11px!important}.display-bar{height:10px!important}
  .countdown{font-size:clamp(48px,14vw,82px)!important}.exam-remaining-wrap{width:94%!important;padding:13px 12px!important;margin-bottom:13px!important}.exam-remaining-wrap>strong{font-size:clamp(46px,13vw,76px)!important}
  .live-batch-subjects{gap:5px;margin-bottom:10px}.live-batch-subjects span{padding:5px 8px;font-size:10px}
  .ticker{height:40px!important;font-size:10px!important;gap:8px!important}.ticker #tickerText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticker .time{flex:0 0 auto}
}
@media(max-width:520px){
  .participant-actions{grid-template-columns:1fr!important}.public-hero-actions-v4{grid-template-columns:1fr!important}.public-register-btn{grid-column:auto}
  .participant-topbar .container.nav{width:calc(100% - 18px)!important}.participant-topbar .participant-menu{display:grid!important;grid-template-columns:1fr 1fr!important}.participant-topbar .participant-menu .btn{width:100%;min-width:0}
  .app-header{height:auto!important;min-height:64px!important;padding:8px 10px!important;gap:8px;flex-wrap:wrap}.app-header #eventPicker{order:3!important;width:100%!important;margin-left:0!important}.app-header .right{margin-left:auto!important;gap:5px!important}.app-header .right .btn{padding:8px 9px!important;font-size:11px!important;min-height:36px!important}.notification-bell{width:38px!important;height:38px!important}
  .maintenance-card h3{font-size:19px}.maintenance-card p{font-size:13px}.maintenance-upload-actions .small{line-height:1.45}
  .display-kpis{grid-template-columns:1fr 1fr!important}.display-kpi span{letter-spacing:.03em!important}.winner-name{font-size:clamp(34px,10vw,54px)!important}
}


/* v0.10.19 Live Display fit patch -------------------------------------------------
   The projector/browser viewport can be very wide but short (e.g. 1900x860).
   Scenes are now anchored to the exact center of display-main and dynamically
   scaled by display-v0119.js when their natural height would touch the ticker.
   This removes the hidden scroll/crop behavior from v0.10.18. */
.display{
  padding:clamp(14px,2.2vh,28px) clamp(20px,2.5vw,46px)!important;
}
.display-head{
  flex:0 0 auto;
  min-height:clamp(36px,5.4vh,52px);
}
.display-main{
  position:relative!important;
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:clamp(4px,.9vh,10px) 0!important;
}
.ticker{
  flex:0 0 auto;
  height:clamp(38px,5.4vh,50px)!important;
}
.scene{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0!important;
  overflow:hidden!important;
  text-align:center!important;
}
.scene>div{
  --scene-fit:1;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:min(1180px,96%)!important;
  max-height:none!important;
  margin:0!important;
  overflow:visible!important;
  overscroll-behavior:auto!important;
  scrollbar-width:auto!important;
  text-align:center!important;
  transform:translate(-50%,-50%) scale(var(--scene-fit))!important;
  transform-origin:center center!important;
  will-change:transform;
}
.scene>div::-webkit-scrollbar{display:initial!important}
.display.has-custom-wallpaper .scene>div{
  padding:clamp(20px,2.5vw,40px)!important;
}
.scene-title,
.scene-sub,
.live-batch-label,
.live-batch-subjects,
.countdown,
.exam-remaining-wrap,
.display-kpis,
.display-bars{
  margin-left:auto!important;
  margin-right:auto!important;
}
.live-scene-card,
.exam-clock-stage{
  text-align:center!important;
}
.live-flow-title{
  text-align:center!important;
}
.countdown,
.exam-remaining-wrap>strong{
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

/* Short projector/browser windows need vertical density, not desktop-width sizing. */
@media (max-height:900px) and (min-width:761px){
  .display{padding-top:14px!important;padding-bottom:12px!important}
  .display-head{min-height:38px!important}
  .display-brand img{height:40px!important;width:auto!important}
  .display-brand span{font-size:11px!important}
  .ticker{height:36px!important;font-size:13px!important}
  .display-main{padding:4px 0!important}
  .display.has-custom-wallpaper .scene>div{padding:22px 30px!important;border-radius:28px!important}
  .scene-title{font-size:clamp(30px,3.55vw,54px)!important;line-height:1.04!important}
  .scene-sub{font-size:clamp(13px,1.22vw,18px)!important;line-height:1.36!important;margin-top:8px!important}
  .display-kpis{margin-top:18px!important;gap:10px!important}
  .display-kpi{padding:12px 16px!important;border-radius:17px!important}
  .display-kpi b{font-size:clamp(27px,3vw,44px)!important}
  .display-kpi span{font-size:10px!important}
  .live-batch-label{min-height:28px!important;margin-bottom:6px!important;padding:5px 11px!important;font-size:12px!important}
  .live-batch-subjects{gap:5px!important;margin-bottom:8px!important}
  .live-batch-subjects span{padding:5px 9px!important;font-size:11px!important}
  .live-flow-title{margin-top:7px!important;margin-bottom:6px!important}
  .countdown{font-size:clamp(58px,7.4vw,108px)!important;line-height:.94!important}
  .exam-remaining-wrap{width:min(680px,88%)!important;margin:5px auto 12px!important;padding:11px 18px!important;border-radius:18px!important}
  .exam-remaining-wrap>span{font-size:clamp(13px,1.25vw,18px)!important}
  .exam-remaining-wrap>strong{font-size:clamp(48px,5.8vw,82px)!important;line-height:.95!important}
  .exam-remaining-wrap>small{font-size:clamp(12px,1.05vw,16px)!important}
  .live-flow-kpis{margin-top:14px!important}
  .display-bars{margin-top:12px!important}
  .display-bar-row{margin:6px 0!important;font-size:13px!important}
  .display-bar{height:11px!important}
}

@media (max-height:720px) and (min-width:761px){
  .display{padding-top:9px!important;padding-bottom:8px!important}
  .display-head{min-height:32px!important}
  .display-brand img{height:34px!important}
  .ticker{height:32px!important;font-size:11px!important}
  .display.has-custom-wallpaper .scene>div{padding:16px 24px!important;border-radius:24px!important}
  .scene-title{font-size:clamp(27px,3.2vw,46px)!important}
  .scene-sub{font-size:clamp(12px,1.05vw,16px)!important;margin-top:6px!important}
  .countdown{font-size:clamp(50px,6.7vw,92px)!important}
  .display-kpis{margin-top:12px!important}
  .display-kpi{padding:9px 13px!important}
  .display-kpi b{font-size:clamp(24px,2.7vw,38px)!important}
  .live-batch-subjects{margin-bottom:5px!important}
  .live-flow-title{margin-top:4px!important;margin-bottom:4px!important}
  .exam-remaining-wrap{margin:4px auto 8px!important;padding:8px 15px!important}
  .exam-remaining-wrap>strong{font-size:clamp(42px,5.3vw,70px)!important}
  .live-flow-kpis{margin-top:10px!important}
  .display-bars{margin-top:8px!important}
  .display-bar-row{margin:4px 0!important}
}


/* =========================================================
   PUSKANAS v0.10.20 — Mobile off-canvas navigation
   Participant: all account actions move to a sidebar on HP.
   Public portal: Tentang/Bidang/Pendaftaran move to a sidebar,
   while Masuk Peserta remains a compact header shortcut.
   ========================================================= */
.mobile-nav-toggle,.mobile-nav-drawer-head{display:none}
.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(3,18,42,.52);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease;z-index:2090;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.mobile-nav-toggle{min-height:42px;border:1px solid rgba(255,255,255,.30);border-radius:13px;background:rgba(255,255,255,.12);color:#fff;padding:9px 12px;font-weight:850;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 7px 20px rgba(2,28,68,.12)}
.mobile-nav-toggle-icon{width:19px;height:15px;display:flex;flex-direction:column;justify-content:space-between}
.mobile-nav-toggle-icon i{display:block;height:2px;width:100%;border-radius:999px;background:currentColor}
.mobile-nav-close{width:40px;height:40px;flex:0 0 40px;border:1px solid #dbe6f3;border-radius:12px;background:#f7faff;color:#17395f;font-size:27px;line-height:1;display:grid;place-items:center;cursor:pointer}
.mobile-nav-drawer-head{align-items:center;justify-content:space-between;gap:14px;padding-bottom:18px;margin-bottom:6px;border-bottom:1px solid #e5edf6}
.mobile-nav-drawer-head div{min-width:0;display:flex;flex-direction:column;gap:3px}.mobile-nav-drawer-head span{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:900;color:#0879ee}.mobile-nav-drawer-head b{font-size:20px;color:#0b203d}
.drawer-action-dot{display:none}

@media(max-width:760px){
  body.participant-nav-open,body.public-nav-open{overflow:hidden!important}
  .mobile-nav-toggle{display:inline-flex}
  .mobile-nav-drawer-head{display:flex}

  /* Participant header becomes one clean row: logo + menu button. */
  .participant-topbar{min-height:68px!important}
  .participant-topbar .container.nav{width:min(calc(100% - 24px),1160px)!important;height:68px!important;min-height:68px!important;padding:0!important;gap:10px!important;align-items:center!important;flex-wrap:nowrap!important}
  .participant-topbar .brand-image{width:146px!important;min-width:146px!important;display:flex!important;align-items:center!important}
  .participant-topbar .brand-image img{width:146px!important;max-height:42px!important}
  .participant-mobile-menu-toggle{margin-left:auto!important}
  .participant-menu{
    position:fixed!important;right:0!important;top:0!important;bottom:0!important;left:auto!important;z-index:2100!important;
    width:min(86vw,340px)!important;height:100dvh!important;margin:0!important;padding:20px 18px 24px!important;
    display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:10px!important;
    background:linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%)!important;border-left:1px solid #dbe7f5!important;
    box-shadow:-26px 0 70px rgba(4,31,69,.24)!important;overflow-y:auto!important;overscroll-behavior:contain!important;
    transform:translateX(104%)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;
    transition:transform .24s ease,opacity .2s ease,visibility .24s ease!important;
  }
  body.participant-nav-open .participant-menu{transform:translateX(0)!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  body.participant-nav-open .participant-menu-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  .participant-menu .btn,.participant-menu #eventTabBtn{display:flex!important;width:100%!important;min-height:52px!important;justify-content:flex-start!important;text-align:left!important;padding:13px 14px!important;font-size:14px!important;border-radius:15px!important;box-shadow:none!important;transform:none!important}
  .participant-menu .btn .drawer-action-dot{display:block;width:9px;height:9px;flex:0 0 9px;border-radius:50%;box-shadow:0 0 0 5px rgba(8,121,238,.09)}
  .participant-menu #eventTabBtn{background:#eaf4ff!important;border-color:#b9d8fb!important;color:#075fc6!important}.participant-menu #eventTabBtn .drawer-action-dot{background:#0879ee}
  .participant-menu #chatTabBtn{background:#eafcff!important;border-color:#b6edf4!important;color:#08758b!important}.participant-menu #chatTabBtn .drawer-action-dot{background:#12a9c6}
  .participant-menu #securityBtn{background:#f1edff!important;border-color:#d8cfff!important;color:#5b38b5!important}.participant-menu #securityBtn .drawer-action-dot{background:#7155d9}
  .participant-menu #logoutBtn{margin-top:auto!important;background:#fff0f1!important;border-color:#ffc9ce!important;color:#b42332!important}.participant-menu #logoutBtn .drawer-action-dot{background:#e04454}
  .participant-menu .nav-badge{margin-left:auto!important}

  /* Public header: logo + participant login shortcut + compact menu button. */
  .public-topbar-v4{min-height:68px!important}
  .public-nav-v4{height:68px!important;min-height:68px!important;gap:8px!important;flex-wrap:nowrap!important}
  .public-brand-v4{width:142px!important;min-width:142px!important}.public-brand-v4 img{width:142px!important;max-height:42px!important}
  .public-login-quick{display:inline-flex!important;margin-left:auto!important;min-height:42px!important;padding:9px 13px!important;font-size:12px!important;border-radius:13px!important;white-space:nowrap!important}
  .public-mobile-menu-toggle{flex:0 0 auto!important;width:44px!important;padding:9px!important}.public-mobile-menu-toggle>span:last-child{display:none}
  .public-navlinks-v4{
    position:fixed!important;right:0!important;top:0!important;bottom:0!important;left:auto!important;z-index:2100!important;
    width:min(86vw,340px)!important;height:100dvh!important;margin:0!important;padding:20px 18px 24px!important;
    display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:10px!important;
    background:linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%)!important;border-left:1px solid #dbe7f5!important;
    box-shadow:-26px 0 70px rgba(4,31,69,.24)!important;overflow-y:auto!important;overscroll-behavior:contain!important;
    transform:translateX(104%)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;
    transition:transform .24s ease,opacity .2s ease,visibility .24s ease!important;
  }
  body.public-nav-open .public-navlinks-v4{transform:translateX(0)!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  body.public-nav-open .public-menu-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  .public-navlinks-v4>a:not(.btn){display:flex!important;width:100%!important;min-height:52px!important;align-items:center!important;gap:11px!important;padding:13px 14px!important;border-radius:15px!important;border:1px solid #d7e5f5!important;background:#fff!important;color:#173b68!important;font-size:14px!important;font-weight:850!important;box-shadow:0 5px 16px rgba(12,55,104,.045)!important}
  .public-navlinks-v4>a:not(.btn) .drawer-action-dot{display:block;width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#0879ee;box-shadow:0 0 0 5px rgba(8,121,238,.09)}
  .public-navlinks-v4>a:not(.btn):nth-of-type(2) .drawer-action-dot{background:#f59e0b;box-shadow:0 0 0 5px rgba(245,158,11,.10)}
  .public-navlinks-v4>a:not(.btn):nth-of-type(3) .drawer-action-dot{background:#7357d8;box-shadow:0 0 0 5px rgba(115,87,216,.10)}
}

@media(max-width:430px){
  .participant-topbar .brand-image{width:132px!important;min-width:132px!important}.participant-topbar .brand-image img{width:132px!important}.participant-mobile-menu-toggle>span:last-child{display:none}.participant-mobile-menu-toggle{width:44px!important;padding:9px!important}
  .public-brand-v4{width:128px!important;min-width:128px!important}.public-brand-v4 img{width:128px!important}.public-login-quick{font-size:11px!important;padding:8px 10px!important}.public-mobile-menu-toggle{width:42px!important;min-height:40px!important}
}

@media(min-width:761px){
  .public-login-quick{margin-left:0}
}

/* Existing v4 CSS hid public text links below 900px. Keep the horizontal navigation
   usable on tablet widths; the off-canvas mode begins only at the HP breakpoint. */
@media(min-width:761px) and (max-width:900px){
  .public-navlinks-v4>a:not(.btn){display:inline-flex!important}
  .public-nav-v4{height:70px!important;gap:14px!important}
  .public-navlinks-v4{gap:12px!important}
  .public-navlinks-v4>a:not(.btn){font-size:12px!important}
  .public-login-quick{font-size:12px!important;padding:10px 12px!important}
}

/* The translated closed drawer must never expand the document's horizontal scroll area. */
body.participant-shell,body.public-page-v4{overflow-x:hidden}

/* Closed off-canvas panels are removed from layout entirely so no invisible
   transformed element can enlarge the horizontal scroll range on mobile WebView/browser engines. */
@keyframes pusMobileDrawerIn{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:760px){
  .participant-menu,.public-navlinks-v4{display:none!important;transform:none!important}
  body.participant-nav-open .participant-menu,body.public-nav-open .public-navlinks-v4{display:flex!important;transform:none!important;animation:pusMobileDrawerIn .20s ease both}
}
@media(max-width:760px){
  .participant-topbar .participant-menu{display:none!important}
  body.participant-nav-open .participant-topbar .participant-menu{display:flex!important}
}
@media(max-width:760px){
  .public-topbar-v4 .public-navlinks-v4>a:not(.btn){color:#173b68!important}
  .public-topbar-v4 .public-navlinks-v4>a:not(.btn):hover{color:#075fc6!important;background:#f7fbff!important}
}

/* =========================================================
   PUSKANAS v0.10.21 — bank identity, participant journey,
   compact public subjects, icon actions, mobile auth theme.
   ========================================================= */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Canonical bank picker and bank identity. */
.bank-picker-control{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:center}
.bank-picker-preview{height:52px;border:1px solid #d7e3f1;border-radius:14px;background:#f8fbff;display:grid;place-items:center}
.bank-logo{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 42px;border-radius:12px;overflow:hidden;box-shadow:0 5px 14px rgba(12,47,89,.12)}
.bank-logo img{width:100%;height:100%;object-fit:cover;display:block}
.bank-account-main-icon{display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;align-items:center!important;gap:11px!important}
.bank-account-main-icon>div{min-width:0}
.bank-admin-form .input{min-width:0}

/* Participant realtime journey. */
.participant-journey{margin:0 0 16px;border:1px solid #dce8f5;border-radius:20px;background:linear-gradient(180deg,#fbfdff,#f5f9ff);padding:16px}
.participant-journey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.participant-journey-head h3{margin:4px 0 0;font-size:17px;letter-spacing:-.02em}
.participant-current-step{display:inline-flex;align-items:center;min-height:31px;padding:6px 10px;border-radius:999px;background:#eaf4ff;color:#075fc6;border:1px solid #c8e0fb;font-size:11px;font-weight:850;white-space:nowrap}
.participant-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;position:relative}
.participant-step{min-width:0;position:relative;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #e0e9f4;border-radius:15px;background:#fff;transition:border-color .2s,box-shadow .2s,transform .2s}
.participant-step-marker{width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:grid;place-items:center;background:#eef3f8;color:#607086;font-size:10px;font-weight:900;border:1px solid #dce5ee}
.participant-step-copy{min-width:0;display:grid;gap:2px}.participant-step-copy b{font-size:12px;color:#172b46}.participant-step-copy span{font-size:10px;color:#6b7c92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.participant-step.done{border-color:#b9efd2;background:#f3fff8}.participant-step.done .participant-step-marker{background:#d4f8e4;border-color:#a7e6c6;color:#078447}
.participant-step.current{border-color:#86bcf6;background:#f1f8ff;box-shadow:0 8px 22px rgba(7,95,198,.10);transform:translateY(-1px)}.participant-step.current .participant-step-marker{background:#0875ed;border-color:#0875ed;color:#fff;box-shadow:0 0 0 4px rgba(8,117,237,.10)}
.participant-step.problem{border-color:#ffc7c7;background:#fff6f6}.participant-step.problem .participant-step-marker{background:#fee2e2;border-color:#fecaca;color:#c62828}
.participant-step.upcoming{opacity:.72}

/* Participant action hierarchy: primary text actions + three compact icon shortcuts. */
.participant-actions{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important}
.participant-primary-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.participant-quick-icons{display:flex;align-items:center;gap:8px;margin-left:auto}
.participant-icon-action{position:relative;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;padding:0!important;border-radius:14px!important;display:inline-grid!important;place-items:center!important;flex:0 0 46px!important}
.participant-icon-action svg,.public-icon-action svg,.bank-copy-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.participant-icon-action[data-tooltip]:after,.public-icon-action[data-tooltip]:after{content:attr(data-tooltip);position:absolute;z-index:30;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);padding:6px 8px;border-radius:8px;background:#071d39;color:#fff;font-size:10px;font-weight:750;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:.15s}
.participant-icon-action[data-tooltip]:hover:after,.participant-icon-action[data-tooltip]:focus-visible:after,.public-icon-action[data-tooltip]:hover:after,.public-icon-action[data-tooltip]:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* Participant bank transfer card with copy control. */
.participant-bank-card{border:1px solid #d9e5f3;border-radius:20px;padding:16px;background:linear-gradient(145deg,#ffffff,#f5f9ff);box-shadow:0 10px 28px rgba(8,43,82,.07)}
.participant-bank-heading{display:flex;align-items:center;gap:11px}.participant-bank-heading>div{min-width:0;display:grid;gap:2px}.participant-bank-heading span{font-size:9px;letter-spacing:.12em;font-weight:900;color:#718197}.participant-bank-heading b{font-size:16px;color:#10213a}
.participant-bank-number-row{margin-top:14px;padding:12px 13px;border:1px solid #cfe0f2;border-radius:15px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}.participant-bank-number-row>div{min-width:0;display:grid;gap:2px}.participant-bank-number-row span,.participant-bank-holder span{font-size:10px;color:#75859b}.participant-bank-number-row strong{font:850 20px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;color:#092d59;letter-spacing:.02em;word-break:break-all}
.bank-copy-btn{width:42px;height:42px;flex:0 0 42px;border:1px solid #bdd7f4;border-radius:12px;background:#eaf4ff;color:#075fc6;display:grid;place-items:center;cursor:pointer;transition:.18s}.bank-copy-btn:hover{background:#dcebff;transform:translateY(-1px)}.bank-copy-btn.copied{background:#e0f8ea;color:#087d48;border-color:#afe5c7}
.participant-bank-holder{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px 4px}.participant-bank-holder b{font-size:12px;color:#283b55}.participant-bank-card>small{display:block;margin-top:7px;color:#6d7e94;line-height:1.55}

/* Public icon-only secondary shortcuts. */
.public-icon-action{position:relative;width:54px!important;height:54px!important;min-width:54px!important;padding:0!important;border-radius:16px!important;display:inline-grid!important;place-items:center!important;flex:0 0 54px!important}
.public-icon-action svg{width:24px;height:24px}

/* Compact, one-level-at-a-time public subject catalogue. */
.subject-cards-v4{display:block!important}
.subject-catalog-v5{display:grid;gap:14px}
.subject-catalog-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.subject-catalog-tab{min-width:0;border:1px solid #d8e5f4;border-radius:16px;background:#fff;padding:12px 13px;text-align:left;cursor:pointer;display:grid;gap:4px;transition:.18s;color:#183451}
.subject-catalog-tab span{font-weight:850;font-size:13px}.subject-catalog-tab small{font-size:10px;color:#718096}
.subject-catalog-tab:hover{border-color:#9dc5f2;transform:translateY(-1px)}.subject-catalog-tab.active{background:linear-gradient(135deg,#0a70dd,#075fc6);border-color:#075fc6;color:#fff;box-shadow:0 10px 26px rgba(7,95,198,.18)}.subject-catalog-tab.active small{color:#dcecff}
.subject-catalog-panel{border:1px solid #dbe7f4;border-radius:20px;background:#fff;padding:16px}
.subject-catalog-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.subject-catalog-panel-head h3{font-size:20px;margin:3px 0 0;color:#112a47}.subject-catalog-totals{display:flex;gap:7px;flex-wrap:wrap}.subject-catalog-totals span{display:inline-flex;align-items:baseline;gap:4px;padding:7px 9px;border-radius:999px;background:#f0f6fd;border:1px solid #d8e8f8;color:#5f7289;font-size:10px}.subject-catalog-totals b{color:#075fc6;font-size:13px}
.subject-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.subject-compact-card{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e0e9f3;border-radius:14px;background:#fbfdff}.subject-compact-main{min-width:0;display:flex;align-items:center;gap:10px}.subject-compact-main>div{min-width:0}.subject-compact-badge{width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#eaf3ff;color:#075fc6;display:grid;place-items:center;font-size:9px;font-weight:900}.subject-compact-card h4{margin:0;font-size:14px;color:#11243c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subject-compact-card p{margin:3px 0 0;font-size:10px;color:#718096}.subject-compact-count{display:grid;grid-template-columns:7px auto;grid-template-rows:auto auto;column-gap:5px;align-items:center;flex:0 0 auto;text-align:right}.subject-compact-count i{grid-row:1;width:7px;height:7px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 4px #e9f9f0}.subject-compact-count b{grid-row:1;font-size:13px;color:#0b6f43}.subject-compact-count span{grid-column:1/-1;font-size:9px;color:#7c8b9e}

/* Mobile login shares the blue visual language of the public website. */
@media(max-width:700px){
  .auth-page{background:radial-gradient(circle at 88% 5%,rgba(34,142,255,.38),transparent 32%),radial-gradient(circle at 12% 95%,rgba(255,145,28,.18),transparent 34%),linear-gradient(155deg,#06234b 0%,#075fc6 62%,#0879ef 100%)!important}
  .auth-card-wrap{background:transparent!important;padding:24px 15px!important}
  .auth-card{background:rgba(255,255,255,.975)!important;border-color:rgba(255,255,255,.72)!important;box-shadow:0 26px 68px rgba(0,22,55,.28)!important}
}

@media(max-width:900px){
  .participant-stepper{grid-template-columns:1fr 1fr}
  .subject-catalog-tabs{grid-template-columns:1fr 1fr 1fr}
  .subject-compact-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .bank-picker-control{grid-template-columns:48px minmax(0,1fr)}.bank-picker-preview{height:48px}.bank-logo{width:38px;height:38px;flex-basis:38px}
  .participant-journey{padding:14px}.participant-journey-head{flex-direction:column;gap:8px}.participant-current-step{white-space:normal}
  .participant-stepper{grid-template-columns:1fr;gap:7px}.participant-step{padding:9px}.participant-step-copy span{white-space:normal}
  .participant-actions{display:grid!important;grid-template-columns:1fr!important}.participant-primary-actions{display:grid;grid-template-columns:1fr;gap:8px}.participant-primary-actions>.btn{width:100%!important}.participant-quick-icons{margin-left:0;justify-content:flex-start}
  .participant-icon-action{width:48px!important;height:48px!important;flex-basis:48px!important}.participant-icon-action[data-tooltip]:after,.public-icon-action[data-tooltip]:after{display:none}
  .participant-bank-number-row strong{font-size:17px}
  .public-hero-actions-v4{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:center!important}.public-register-btn,.public-status-btn{min-width:0!important}.public-location-btn{grid-column:1!important;justify-self:end!important}.public-guide-btn{grid-column:2!important;justify-self:start!important}.public-icon-action{width:54px!important;height:54px!important;min-width:54px!important}
  .subject-catalog-tabs{grid-template-columns:1fr;gap:7px}.subject-catalog-tab{padding:10px 12px;grid-template-columns:minmax(0,1fr) auto;align-items:center}.subject-catalog-tab small{text-align:right}
  .subject-catalog-panel{padding:13px}.subject-catalog-panel-head{align-items:flex-start;flex-direction:column;gap:8px}.subject-catalog-totals{width:100%}.subject-compact-card{padding:10px}.subject-compact-card h4{font-size:13px}
}
@media(max-width:430px){
  .public-hero-actions-v4{grid-template-columns:1fr 1fr!important}.public-register-btn,.public-status-btn{grid-column:1/-1!important;width:100%!important}.public-location-btn{grid-column:1!important;justify-self:end!important}.public-guide-btn{grid-column:2!important;justify-self:start!important}.public-icon-action{width:54px!important;height:54px!important;min-width:54px!important}.public-icon-action svg{width:22px;height:22px}
  .subject-catalog-tab{grid-template-columns:1fr}.subject-catalog-tab small{text-align:left}
}


/* v0.10.22 — mobile action alignment, inline bank marks, stable chat workspace, exam deadline timer */
.bank-logo svg{width:100%;height:100%;display:block}
.payment-amount-locked{background:#f2f4f7!important;color:#344054!important;font-weight:850;cursor:not-allowed}
.participant-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:9px!important}
.participant-payment-action-row{display:flex;align-items:center;gap:9px;min-width:0}
.participant-payment-action-row>.btn{width:auto}
.participant-shortcut-row{display:flex;align-items:center;gap:8px;min-width:0}
.participant-shortcut-row .participant-attendance-btn{flex:0 1 auto;white-space:nowrap;min-height:48px}
.participant-shortcut-row .participant-icon-action{flex:0 0 48px;width:48px;height:48px;min-width:48px;padding:0!important}

.chat-layout{height:clamp(520px,calc(100dvh - 250px),760px)!important;min-height:0!important;overflow:hidden!important}
.chat-list-wrap{height:100%!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
.chat-list-wrap .chat-list{height:auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain;flex:1 1 auto!important}
.chat-list-wrap>.pagination-bar{flex:0 0 auto!important;margin:0!important;padding:10px 12px!important;border-top:1px solid var(--line);background:#fff}
.chat-panel{height:100%!important;min-height:0!important;overflow:hidden!important}
.chat-messages{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain}
.chat-compose{flex:0 0 auto!important;background:#fff;position:relative;z-index:2;margin:0!important}

.exam-mode-toolbar-actions{display:flex;align-items:center;gap:10px}
.exam-mode-deadline{display:grid;gap:1px;text-align:right;padding:5px 10px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.07)}
.exam-mode-deadline span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#aac1df;font-weight:800}
.exam-mode-deadline b{font-variant-numeric:tabular-nums;font-size:15px!important;letter-spacing:.03em}

.podium-medal-graphic,.winner-medal-graphic{display:grid;place-items:center;margin-inline:auto;filter:drop-shadow(0 14px 24px rgba(0,0,0,.24))}
.podium-medal-graphic{width:84px;height:106px;margin-bottom:12px}
.podium-medal-graphic svg,.winner-medal-graphic svg{width:100%;height:100%;display:block}
.winner-medal-graphic{width:116px;height:144px;margin-bottom:8px}

@media(max-width:900px){
  .chat-layout{height:auto!important;min-height:0!important;overflow:visible!important;grid-template-columns:1fr!important}
  .chat-list-wrap{height:240px!important;min-height:0!important;border-right:0!important;border-bottom:1px solid var(--line)}
  .chat-panel{height:min(560px,65dvh)!important;min-height:440px!important;overflow:hidden!important}
  .chat-list-wrap .chat-list{max-height:none!important}
}
@media(max-width:620px){
  .public-hero-actions-v4{display:grid!important;grid-template-columns:minmax(0,1fr) 48px 48px!important;gap:9px!important;align-items:center!important}
  .public-register-btn{grid-column:1/-1!important;width:100%!important}
  .public-status-btn{grid-column:1!important;width:100%!important;min-width:0!important}
  .public-location-btn{grid-column:2!important;justify-self:center!important}
  .public-guide-btn{grid-column:3!important;justify-self:center!important}
  .public-icon-action{width:48px!important;height:48px!important;min-width:48px!important;padding:0!important}
  .participant-actions{display:flex!important;flex-direction:column!important;gap:8px!important}
  .participant-payment-action-row{display:grid!important;grid-template-columns:1fr!important}
  .participant-payment-action-row>.btn,.participant-payment-action-row>.payment-review-lock{width:100%!important;min-width:0!important}
  .participant-shortcut-row{display:grid!important;grid-template-columns:minmax(0,1fr) repeat(3,48px)!important;gap:8px!important;align-items:center!important;width:100%}
  .participant-shortcut-row .participant-attendance-btn{grid-column:1!important;width:100%!important;min-width:0!important;min-height:48px!important;padding-inline:10px!important}
  .participant-shortcut-row .participant-icon-action{width:48px!important;height:48px!important;min-width:48px!important}
  .exam-mode-toolbar{gap:8px!important;flex-wrap:wrap!important}
  .exam-mode-toolbar>div:first-child{min-width:0;flex:1 1 150px}
  .exam-mode-toolbar-actions{margin-left:auto;gap:6px}
  .exam-mode-deadline{padding:4px 7px}
  .exam-fullscreen-btn{padding:8px 10px!important;font-size:11px!important}
}
@media(max-width:390px){
  .public-hero-actions-v4{grid-template-columns:minmax(0,1fr) 44px 44px!important;gap:7px!important}
  .public-icon-action{width:44px!important;height:44px!important;min-width:44px!important}
  .participant-shortcut-row{grid-template-columns:minmax(0,1fr) repeat(3,44px)!important;gap:6px!important}
  .participant-shortcut-row .participant-icon-action{width:44px!important;height:44px!important;min-width:44px!important}
  .participant-shortcut-row .participant-attendance-btn{min-height:44px!important;font-size:11px!important}
  .exam-mode-deadline span{display:none}.exam-mode-deadline b{font-size:13px!important}
}

/* v0.10.23 — keep Chat Admin beside payment CTA and preserve compact mobile alignment. */
.participant-payment-action-row{display:flex!important;align-items:center!important;gap:9px!important;width:100%;min-width:0}
.participant-payment-action-row>.participant-payment-btn{flex:1 1 auto!important;width:auto!important;min-width:0!important}
.participant-payment-action-row>.participant-chat-btn{flex:0 0 48px!important;width:48px!important;height:48px!important;min-width:48px!important}
@media(max-width:620px){
  .participant-payment-action-row{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:8px!important}
  .participant-payment-action-row>.participant-payment-btn{width:auto!important;min-width:0!important;flex:1 1 auto!important}
  .participant-payment-action-row>.participant-chat-btn{width:48px!important;height:48px!important;min-width:48px!important;flex:0 0 48px!important}
  .participant-payment-action-row>.payment-review-lock{width:100%!important;min-width:0!important}
  .participant-shortcut-row{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:8px!important;width:100%!important;flex-wrap:nowrap!important}
  .participant-shortcut-row .participant-attendance-btn{flex:1 1 auto!important;width:auto!important;min-width:0!important}
  .participant-shortcut-row .participant-icon-action{flex:0 0 48px!important}
}
@media(max-width:390px){
  .participant-payment-action-row>.participant-chat-btn{width:44px!important;height:44px!important;min-width:44px!important;flex-basis:44px!important}
  .participant-shortcut-row .participant-icon-action{width:44px!important;height:44px!important;min-width:44px!important;flex-basis:44px!important}
}

/* v0.10.24 — compact desktop payment CTA while retaining mobile side-by-side Chat Admin. */
@media(min-width:621px){
  .participant-payment-action-row{width:auto!important;align-self:flex-start!important;justify-content:flex-start!important}
  .participant-payment-action-row>.participant-payment-btn{flex:0 0 auto!important;width:clamp(220px,26vw,320px)!important;min-width:220px!important;max-width:320px!important;padding-inline:22px!important}
}


/* v0.10.25 — consistent admin warnings + simplified participant account header. */
.confirm-dialog-icon.warning{background:#fff7df!important;color:#a85a00!important;border:1px solid #f6d38a}
.confirm-dialog-icon.success{background:#eafaf1!important;color:#087a45!important;border:1px solid #b9ebd0}
.alert-dialog-card p{white-space:pre-line}.alert-dialog-actions{justify-content:center}.alert-dialog-actions .btn{min-width:150px}
.input-dialog-card{text-align:left}.input-dialog-card>.confirm-dialog-icon,.input-dialog-card>h2,.input-dialog-card>p{text-align:center}.input-dialog-label{display:grid;gap:8px;margin-top:18px;font-size:12px;font-weight:850;color:#344054}.input-dialog-label textarea{resize:vertical;min-height:90px}.input-error{border-color:#d92d20!important;box-shadow:0 0 0 3px rgba(217,45,32,.10)!important}

.participant-header-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;min-height:62px}
.participant-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}
.participant-security-icon{width:44px;height:44px;min-width:44px;border:1px solid rgba(255,255,255,.34);border-radius:13px;background:rgba(255,255,255,.10);color:#fff;display:grid;place-items:center;cursor:pointer;transition:.18s ease;padding:0}
.participant-security-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.participant-security-icon:hover,.participant-security-icon:focus-visible{background:#fff;color:#075fc6;border-color:#fff;transform:translateY(-1px);outline:none}
.participant-logout-btn{height:44px!important;padding:0 18px!important;border-color:rgba(255,255,255,.34)!important;background:rgba(255,255,255,.10)!important;color:#fff!important}
.participant-logout-btn:hover,.participant-logout-btn:focus-visible{background:#fff!important;color:#075fc6!important;border-color:#fff!important}
.participant-topbar .participant-menu,.participant-topbar .participant-menu-backdrop,.participant-topbar .participant-mobile-menu-toggle{display:none!important}

@media(max-width:620px){
  .participant-topbar{position:sticky;top:0;z-index:1100}
  .participant-header-row{min-height:64px!important;padding-top:7px!important;padding-bottom:7px!important;gap:8px!important;flex-wrap:nowrap!important}
  .participant-header-row .brand-image{min-width:0;flex:1 1 auto;overflow:hidden}
  .participant-header-row .brand-image img{width:min(142px,42vw)!important;max-width:142px!important;height:auto!important}
  .participant-account-actions{gap:6px;flex:0 0 auto}
  .participant-security-icon{width:42px;height:42px;min-width:42px;border-radius:12px}
  .participant-logout-btn{height:42px!important;padding:0 12px!important;font-size:12px!important;white-space:nowrap}
}
@media(max-width:360px){
  .participant-header-row .brand-image img{width:min(124px,38vw)!important}
  .participant-security-icon{width:40px;height:40px;min-width:40px}
  .participant-logout-btn{height:40px!important;padding:0 10px!important;font-size:11px!important}
}

/* v0.10.26 — public external shortcuts obey configuration even against icon display rules. */
.public-icon-action.hidden{display:none!important}
@media(max-width:620px){
  .public-hero-actions-v4:not(.has-public-icons){grid-template-columns:1fr!important}
  .public-hero-actions-v4:not(.has-public-icons) .public-register-btn,
  .public-hero-actions-v4:not(.has-public-icons) .public-status-btn{grid-column:1/-1!important;width:100%!important;justify-self:stretch!important}
  .public-hero-actions-v4.has-public-location:not(.has-public-guide),
  .public-hero-actions-v4.has-public-guide:not(.has-public-location){grid-template-columns:minmax(0,1fr) 48px!important}
  .public-hero-actions-v4.has-public-location:not(.has-public-guide) .public-location-btn,
  .public-hero-actions-v4.has-public-guide:not(.has-public-location) .public-guide-btn{grid-column:2!important;justify-self:center!important}
}
@media(max-width:390px){
  .public-hero-actions-v4.has-public-location:not(.has-public-guide),
  .public-hero-actions-v4.has-public-guide:not(.has-public-location){grid-template-columns:minmax(0,1fr) 44px!important}
}

/* v0.10.27 — one responsive participant action rail: payment CTA shrinks as external shortcuts appear. */
.payment-label-mobile{display:none}
.participant-payment-action-row{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:9px!important;
  width:fit-content!important;
  max-width:100%!important;
  min-width:0!important;
}
.participant-payment-action-row>.participant-payment-btn{
  flex:0 1 var(--payment-cta-max,320px)!important;
  width:var(--payment-cta-max,320px)!important;
  min-width:180px!important;
  max-width:var(--payment-cta-max,320px)!important;
  padding-inline:20px!important;
  white-space:nowrap!important;
}
.participant-payment-action-row>.participant-icon-action{
  flex:0 0 48px!important;
  width:48px!important;
  min-width:48px!important;
  height:48px!important;
}

@media(max-width:620px){
  .participant-payment-action-row{
    width:100%!important;
    max-width:100%!important;
    gap:8px!important;
  }
  .participant-payment-action-row>.participant-payment-btn{
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding-inline:12px!important;
  }
  .payment-label-desktop{display:none!important}
  .payment-label-mobile{display:inline!important}
  .participant-payment-action-row>.participant-icon-action{
    flex:0 0 48px!important;
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
  }
}
@media(max-width:390px){
  .participant-payment-action-row{gap:6px!important}
  .participant-payment-action-row>.participant-icon-action{
    flex-basis:44px!important;
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
  }
  .participant-payment-action-row>.participant-payment-btn{
    min-height:44px!important;
    padding-inline:9px!important;
    font-size:11px!important;
  }
}

/* v0.10.28 — official 9-bank wordmark assets */
.bank-picker-control{grid-template-columns:104px minmax(0,1fr)!important}
.bank-picker-preview{height:54px!important;padding:5px 8px!important;background:#fff!important}
.bank-logo{width:88px!important;height:42px!important;flex:0 0 88px!important;border-radius:10px!important;background:#fff!important;border:1px solid #e2e8f0;box-shadow:0 4px 12px rgba(12,47,89,.08)!important;padding:5px 7px!important;overflow:hidden}
.bank-logo img{width:100%!important;height:100%!important;object-fit:contain!important;display:block!important;padding:0!important}
.bank-logo-legacy{display:grid!important;place-items:center!important;color:#334155;font-size:10px;letter-spacing:.05em}
.bank-account-main-icon{align-items:center!important}
@media(max-width:700px){.bank-picker-control{grid-template-columns:88px minmax(0,1fr)!important}.bank-logo{width:76px!important;height:38px!important;flex-basis:76px!important;padding:4px 6px!important}}

/* v0.10.28 — native exam renderer + autosave */
.exam-native{position:absolute;inset:0;display:flex;flex-direction:column;background:#f4f8fd;color:#0b1f3a;overflow:hidden}
.exam-native.hidden{display:none!important}
.exam-native-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:#fff;border-bottom:1px solid #dce6f2;box-shadow:0 4px 14px rgba(15,45,78,.06);z-index:2}
.exam-native-head>div{display:grid;gap:2px}.exam-native-head b{font-size:13px;color:#0b4f9c}.exam-native-head .btn{min-width:150px}
.exam-native-form{flex:1 1 auto;overflow:auto;padding:20px clamp(14px,3vw,34px) 96px;display:grid;gap:18px;scroll-behavior:smooth}
.native-question{width:min(900px,100%);margin:0 auto;background:#fff;border:1px solid #dbe6f2;border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(15,45,78,.05)}
.native-question-number{font-size:11px;font-weight:900;letter-spacing:.08em;color:#0b65c2;text-transform:uppercase;margin-bottom:8px}.native-question h3{font-size:18px;line-height:1.5;margin:0 0 14px;white-space:pre-line;color:#10243f}
.native-question-help{font-size:14px;line-height:1.6;color:#5a6b82;background:#f6f9fd;border:1px solid #e3ebf5;border-radius:12px;padding:10px 12px;margin:-4px 0 14px;white-space:pre-line}
.native-options{display:grid;gap:9px}.native-option{display:grid;grid-template-columns:22px 1fr;align-items:start;gap:10px;padding:12px 13px;border:1px solid #dce6f2;border-radius:13px;background:#fbfdff;cursor:pointer;transition:.15s ease}.native-option:hover{border-color:#8ec5ff;background:#f4f9ff}.native-option input{position:absolute;opacity:0;pointer-events:none}.native-option-mark{width:20px;height:20px;border:2px solid #b9c9dc;border-radius:50%;background:#fff;position:relative;margin-top:1px}.native-option input[type="checkbox"]+.native-option-mark{border-radius:6px}.native-option input:checked+.native-option-mark{border-color:#0876df;background:#0876df;box-shadow:0 0 0 3px rgba(8,118,223,.12)}.native-option input:checked+.native-option-mark:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.native-option>span:last-child{line-height:1.45;font-size:15px}
.exam-native-submitbar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 18px;background:rgba(255,255,255,.96);border-top:1px solid #dce6f2;backdrop-filter:blur(10px);z-index:3}.exam-native-submitbar span{font-size:12px;color:#667085;max-width:620px}.exam-native-submitbar .btn{min-width:160px}
@media(max-width:700px){.exam-native-head{padding:9px 10px}.exam-native-head .btn{display:none}.exam-native-form{padding:12px 10px 92px}.native-question{padding:15px;border-radius:15px}.native-question h3{font-size:16px}.native-option{padding:11px}.native-option>span:last-child{font-size:14px}.exam-native-submitbar{justify-content:space-between;gap:8px;padding:9px 10px}.exam-native-submitbar span{font-size:10px;line-height:1.3;max-width:55%}.exam-native-submitbar .btn{min-width:128px;padding:10px 12px}}

/* v0.10.28 — native exam autosave monitor and curated bank logo presentation. */
.stats-row.compact-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.stats-row.compact-stats>div{border:1px solid #dfe8f2;background:linear-gradient(145deg,#fff,#f6faff);border-radius:14px;padding:13px 14px;min-width:0}.stats-row.compact-stats b{display:block;font-size:18px;color:#073567;overflow-wrap:anywhere}.stats-row.compact-stats span{display:block;margin-top:3px;color:#667085;font-size:11px}.bank-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}.bank-logo{overflow:hidden}
@media(max-width:680px){.stats-row.compact-stats{grid-template-columns:1fr}.stats-row.compact-stats>div{padding:11px 12px}}

/* v0.10.29 — Early Bird pricing, participant migration, and embedded bank logos. */
.earlybird-admin-card{border:1px solid #b9d9ff;border-radius:18px;background:linear-gradient(145deg,#f7fbff,#eef7ff);padding:16px!important;display:grid;gap:14px}
.earlybird-admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.earlybird-admin-head>div{display:grid;gap:3px}.earlybird-admin-head b{font-size:18px;color:#073b77}.earlybird-admin-head small{color:#667085;line-height:1.45}.earlybird-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #bfd7f4;background:#fff;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:850;white-space:nowrap}.earlybird-toggle input{width:18px;height:18px;accent-color:#0876df}.earlybird-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.earlybird-admin-grid label{display:grid;gap:7px;font-size:12px;font-weight:850;color:#344054}.earlybird-admin-grid .input:disabled{opacity:.55;cursor:not-allowed;background:#f1f4f8}.earlybird-admin-preview{display:flex;gap:10px;align-items:center;min-height:32px;padding:8px 11px;border-radius:12px;background:rgba(255,255,255,.72);font-size:12px;color:#526173}.earlybird-admin-preview b{font-size:15px;color:#08703f}.earlybird-admin-preview span{line-height:1.4}
.event-price-metric{align-content:start}.event-price-values{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.event-price-values s{font-size:13px;color:#98a2b3;font-weight:750}.earlybird-public-badge{display:grid;gap:1px;margin-top:5px;padding:5px 8px;border-radius:9px;background:linear-gradient(135deg,#fff4cf,#ffe297);border:1px solid #ffc553;color:#8b4a00;width:fit-content;max-width:100%}.earlybird-public-badge strong{font-size:9px;letter-spacing:.05em}.earlybird-public-badge span{font-size:9px;color:#9c6418}.earlybird-registration-notice{display:flex;align-items:flex-start;gap:12px;margin:0 0 16px;padding:13px 14px;border:1px solid #ffc85d;border-radius:15px;background:linear-gradient(135deg,#fff8e8,#ffefc5);color:#703a00}.earlybird-registration-notice .earlybird-spark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#f28b00;color:#fff;font-size:18px;font-weight:950}.earlybird-registration-notice>div{display:grid;gap:3px}.earlybird-registration-notice b{font-size:14px}.earlybird-registration-notice span{font-size:12px;line-height:1.5}.earlybird-registration-notice strong{color:#08703f}.earlybird-registration-notice s{color:#8f6b3b}

.participant-import-layout{display:grid;gap:16px}.import-guide-card,.import-history-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(145deg,#fff,#f7fbff)}.import-guide-card{display:grid;gap:9px}.import-guide-card h3,.import-history-card h3{margin:0}.import-guide-card p{margin:0;color:#5d6b7f;line-height:1.55}.import-guide-actions{display:flex;gap:8px;flex-wrap:wrap}.participant-import-form{border:1px solid #d9e6f4;border-radius:18px;padding:16px;background:#fff}.participant-import-result{display:grid;gap:14px}.import-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.import-summary-grid>div{display:grid;gap:2px;padding:12px 14px;border:1px solid #dce6f2;border-radius:14px;background:#f8fbff}.import-summary-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#667085;font-weight:850}.import-summary-grid b{font-size:22px;color:#0b3565}.import-summary-grid .ok{background:#effcf5;border-color:#b8ecd0}.import-summary-grid .warn{background:#fff9e8;border-color:#f5df9b}.import-summary-grid .bad{background:#fff2f0;border-color:#fac7c0}.import-preview-table{max-height:420px;overflow:auto}.import-preview-table .table{min-width:930px}.import-preview-table td{vertical-align:top}.import-preview-table small{line-height:1.35}.import-generated-login{color:#7d4fe6!important;font-weight:800}.import-commit-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #b9d9ff;border-radius:15px;padding:13px 14px;background:#f1f8ff}.import-commit-bar>div{display:grid;gap:2px}.import-commit-bar span{font-size:11px;color:#667085}.credential-warning{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #ffcc66;border-radius:15px;padding:13px 14px;background:#fff8e8}.credential-warning>span{flex:1 1 360px;color:#73501d;font-size:12px;line-height:1.45}.import-credential-table{max-height:360px;overflow:auto}.import-credential-table .table{min-width:850px}.import-history-card{overflow:hidden}.import-history-card .table-wrap{max-height:240px;overflow:auto;margin-top:10px}

.migration-activation-modal{z-index:10020!important;background:rgba(3,23,48,.82)!important;backdrop-filter:blur(8px)}.migration-activation-card{width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;border:1px solid rgba(255,255,255,.2);box-shadow:0 28px 80px rgba(0,18,48,.38)}.migration-activation-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#073c7c,#0a78e1);color:#fff}.migration-activation-brand img{width:54px;height:54px;object-fit:contain;flex:0 0 54px}.migration-activation-brand>div{display:grid;gap:3px}.migration-activation-brand .micro-label{color:#bde1ff}.migration-activation-brand h2{margin:0;color:#fff}.migration-activation-brand p{margin:0;color:#eaf5ff;line-height:1.45;font-size:12px}.migration-activation-actions{display:flex!important;gap:9px;flex-wrap:wrap}.migration-activation-actions .btn-primary{flex:1 1 280px}.migration-account-locked{overflow:hidden!important}.migration-account-locked .participant-security-icon{opacity:.5;pointer-events:none}

/* SVGs are embedded as data URIs in common-v0131.js to avoid hosting SVG MIME/path failures. */
.bank-logo img{object-fit:contain!important;background:#fff}

@media(max-width:820px){.earlybird-admin-grid{grid-template-columns:1fr}.import-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-commit-bar{align-items:stretch;flex-direction:column}.import-commit-bar .btn{width:100%}}
@media(max-width:620px){.earlybird-admin-head{align-items:flex-start;flex-direction:column}.earlybird-toggle{align-self:flex-start}.earlybird-registration-notice{padding:11px}.participant-import-form{padding:12px}.import-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.credential-warning .btn{width:100%}.migration-activation-card{padding:16px!important}.migration-activation-brand{align-items:flex-start}.migration-activation-brand img{width:44px;height:44px;flex-basis:44px}}

.participant-invoice-promo{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:10px 0 12px;padding:9px 11px;border:1px solid #f8c55d;border-radius:12px;background:linear-gradient(135deg,#fff8e7,#ffefc2);color:#7b4700}.participant-invoice-promo span{font-size:9px;font-weight:950;letter-spacing:.08em;background:#f08a00;color:#fff;border-radius:999px;padding:5px 7px}.participant-invoice-promo s{font-size:11px;color:#8f7656}.participant-invoice-promo b{font-size:14px;color:#08703f}.participant-invoice-promo em{font-size:10px;font-style:normal;font-weight:800;color:#9a5b08}


/* v0.10.31 — generic group link, bank layout fix, public schedule, shared certificate/discussion window. */
.bank-account-main-icon{grid-template-columns:100px minmax(0,1fr)!important;align-items:center!important;column-gap:12px!important}
.bank-account-main-icon>.bank-logo{grid-column:1;grid-row:1;justify-self:start;margin:0!important}
.bank-account-main-icon>div{grid-column:2;grid-row:1;min-width:0!important;display:grid;gap:2px}
.bank-account-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}.bank-account-title b{min-width:0;overflow-wrap:anywhere}
.participant-group-btn{background:linear-gradient(135deg,#6f55e8,#4f46c9)!important;color:#fff!important;border-color:#5a48d8!important}
.participant-guide-download-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:44px!important;width:auto!important;max-width:190px!important;padding:10px 14px!important;background:linear-gradient(135deg,#efe9ff,#ddd4ff)!important;color:#4d2bb8!important;border:1px solid #cfc1ff!important;box-shadow:0 8px 20px rgba(92,65,190,.12)!important}
.participant-guide-download-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.participant-guide-download-btn span{white-space:nowrap;font-size:11px;font-weight:900}
.event-schedule-metric{align-content:start}.event-schedule-time{display:block;margin-top:4px;color:#526173;font-size:10px;font-weight:750;line-height:1.35}
@media(max-width:700px){.bank-account-main-icon{grid-template-columns:86px minmax(0,1fr)!important}.participant-guide-download-btn{max-width:none!important;min-height:42px!important;padding:9px 12px!important}.participant-guide-download-btn span{font-size:10px}}
@media(max-width:420px){.participant-guide-download-btn{flex:1 1 auto!important}.participant-shortcut-row:has(.participant-guide-download-btn){align-items:stretch!important}}


/* v0.10.31 — compact public event metrics, icon-only participant guide, admin subject filters. */
.event-metrics-v4{align-items:start!important;gap:10px!important;margin-top:15px!important}
.event-metrics-v4 .metric{align-self:start!important;min-height:0!important;padding:10px 12px!important;border-radius:15px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important}
.event-metrics-v4 .metric>.muted.small{font-size:10px!important;line-height:1.15!important;margin:0!important}
.event-schedule-metric b{font-size:18px!important;line-height:1.08!important;letter-spacing:-.02em!important;margin-top:4px!important}
.event-schedule-time{margin-top:3px!important;font-size:9.5px!important;line-height:1.25!important}
.event-price-values{gap:5px!important;line-height:1.05!important;margin-top:2px!important}
.event-price-values s{font-size:11px!important;line-height:1.1!important}
.event-price-metric #eventFee{font-size:18px!important;line-height:1.1!important;margin-top:2px!important}
.earlybird-public-badge{margin-top:4px!important;padding:4px 7px!important;border-radius:8px!important;gap:0!important}
.earlybird-public-badge strong,.earlybird-public-badge span{font-size:8px!important;line-height:1.25!important}

/* The guide uses the same accessible icon-only rail as Location/Group/Chat. */
.participant-guide-download-btn{position:relative!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;flex:0 0 48px!important;padding:0!important;border-radius:14px!important;display:inline-grid!important;place-items:center!important;gap:0!important;background:linear-gradient(135deg,#efe9ff,#ddd4ff)!important;color:#4d2bb8!important;border:1px solid #cfc1ff!important;box-shadow:0 8px 20px rgba(92,65,190,.12)!important}
.participant-guide-download-btn svg{width:21px!important;height:21px!important;margin:0!important}
.participant-guide-download-btn .sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}

/* Bidang & Kategori filters stay compact on desktop and stack cleanly on small screens. */
.subject-panel-head{margin-bottom:14px!important}
.subject-filter-toolbar{margin-bottom:14px!important;padding:11px!important;border:1px solid #dce8f4;border-radius:15px;background:linear-gradient(145deg,#fafdff,#f3f8fe)}
.subject-filter-toolbar .list-search{flex:1 1 260px!important}
.subject-filter-toolbar .list-filter{min-width:145px!important}
.subject-filter-toolbar .subject-schedule-filter{min-width:235px!important;max-width:310px!important}
.subject-filter-count{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:8px 10px;border-radius:999px;background:#eaf4ff;border:1px solid #cfe3fa;color:#5c6f86;font-size:10px;font-weight:800;white-space:nowrap}
.subject-filter-count b{font-size:13px;color:#075fc6}
.subject-level-pill{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:6px 9px;border-radius:999px;background:#eaf4ff;border:1px solid #cde2fa;color:#075fc6;font-size:10px;font-weight:900}
.subject-filter-empty{display:grid;gap:3px;padding:18px;text-align:center;color:#667085}.subject-filter-empty b{color:#344054}.subject-filter-empty span{font-size:11px}

@media(max-width:620px){
  .event-metrics-v4{gap:8px!important}
  .event-metrics-v4 .metric{padding:9px 10px!important;border-radius:13px!important}
  .event-schedule-metric b,.event-price-metric #eventFee{font-size:16px!important}
  .event-schedule-time{font-size:8.5px!important}
  .earlybird-public-badge{padding:4px 5px!important}.earlybird-public-badge strong,.earlybird-public-badge span{font-size:7.5px!important}
  .participant-shortcut-row .participant-guide-download-btn{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;flex:0 0 48px!important;padding:0!important}
  .subject-filter-toolbar{align-items:stretch!important}.subject-filter-toolbar .list-search,.subject-filter-toolbar .list-filter,.subject-filter-toolbar .subject-schedule-filter,.subject-filter-toolbar>.btn{width:100%!important;min-width:0!important;max-width:none!important}.subject-filter-count{margin-left:0!important;align-self:flex-start}
}
@media(max-width:390px){
  .participant-shortcut-row .participant-guide-download-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;flex-basis:44px!important}
  .participant-guide-download-btn svg{width:19px!important;height:19px!important}
}

/* ===== v0.10.32 — proportional event metrics, admin sorting, live display cleanup ===== */
.event-metrics-v4{
  align-items:stretch!important;
}
.event-metrics-v4 .metric{
  align-self:stretch!important;
  height:100%!important;
  min-height:84px!important;
}
.event-metrics-v4 .event-schedule-metric{
  justify-content:center!important;
}
.event-metrics-v4 .event-schedule-metric b{
  font-size:20px!important;
  line-height:1.08!important;
  margin-top:5px!important;
}
.event-metrics-v4 .event-schedule-time{
  margin-top:4px!important;
  font-size:10.5px!important;
  line-height:1.3!important;
  font-weight:800!important;
  letter-spacing:.005em!important;
}

.list-sort-group{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:245px;
  padding:4px 5px 4px 10px;
  border:1px solid #dce4ef;
  border-radius:13px;
  background:#f8fbff;
}
.list-sort-label{
  flex:0 0 auto;
  color:#64748b;
  font-size:11px;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.list-sort-group .list-sort-select{
  min-width:145px;
  max-width:220px;
  border:0;
  padding:8px 30px 8px 7px;
  background:transparent;
  box-shadow:none!important;
}
.list-sort-direction{
  flex:0 0 38px;
  width:38px;
  height:38px;
  padding:0!important;
  border-radius:10px!important;
  font-size:18px!important;
  line-height:1!important;
}
.subject-filter-toolbar .list-sort-group{
  min-width:240px;
}

.live-auto-config-v2{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
.live-auto-config-v2 .live-auto-control-card{
  min-width:0;
  min-height:132px;
  padding:14px!important;
  border:1px solid #dbe4ef!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 5px 16px rgba(15,23,42,.035);
}
.live-auto-config-v2 label.live-auto-control-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:9px!important;
}
.live-auto-config-v2 .live-auto-switch{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:9px!important;
}
.live-auto-control-label{
  display:block;
  min-height:18px;
  color:#334155;
  font-size:12px;
  font-weight:850;
  line-height:1.35;
}
.live-auto-switch-line{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 11px;
  border:1px solid #d8e1ec;
  border-radius:12px;
  background:#f8fafc;
}
.live-auto-switch-line input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:#1475e8;
}
.live-auto-switch-line strong{
  font-size:13px;
  line-height:1.25;
}
.live-auto-field-row{
  min-height:44px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}
.live-auto-field-row .input{
  height:44px;
  min-width:0;
}
.live-auto-field-row>span{
  color:#64748b;
  font-size:12px;
  font-weight:750;
}
.live-auto-config-v2 .live-auto-control-card>small{
  margin-top:auto;
  color:#64748b;
  font-size:11px;
  font-weight:500;
  line-height:1.35;
}
.live-auto-save{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:9px;
}
.live-auto-save .btn{
  width:100%;
  min-height:44px;
  margin:0;
}

.display-kpis-two{
  width:min(760px,100%)!important;
  max-width:760px!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  justify-content:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.display-kpis-welcome{max-width:760px!important}
.live-completed-kpis.display-kpis-two{max-width:720px!important}
.display-kpis-closing{max-width:720px!important}

@media(max-width:1180px){
  .live-auto-config-v2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .list-sort-group{width:100%;min-width:0}
  .list-sort-group .list-sort-select{flex:1 1 auto;width:auto!important;min-width:0!important;max-width:none!important}
  .list-sort-label{padding-left:2px}
  .subject-filter-toolbar .list-sort-group{width:100%!important;min-width:0!important}
}
@media(max-width:680px){
  .event-metrics-v4 .metric{min-height:78px!important}
  .event-metrics-v4 .event-schedule-metric b{font-size:18px!important}
  .event-metrics-v4 .event-schedule-time{font-size:9.5px!important;line-height:1.3!important}
  .live-auto-config-v2{grid-template-columns:1fr!important}
  .live-auto-config-v2 .live-auto-control-card{min-height:0}
  .display-kpis-two{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
}

/* ===== v0.10.33 — compact sort menu + regional registration ===== */
.list-sort-menu{
  position:relative;
  flex:0 0 auto;
  margin:0;
}
.list-sort-trigger{
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:12px!important;
  list-style:none;
  cursor:pointer;
}
.list-sort-trigger::-webkit-details-marker{display:none}
.list-sort-trigger::marker{display:none;content:""}
.list-sort-trigger svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.list-sort-menu[open] .list-sort-trigger{
  border-color:#9ec9fb!important;
  background:#eaf4ff!important;
  color:#075fc7!important;
}
.list-sort-popover{
  position:absolute;
  z-index:90;
  top:calc(100% + 8px);
  right:0;
  width:270px;
  max-width:min(270px,calc(100vw - 32px));
  padding:12px;
  display:grid;
  gap:10px;
  border:1px solid #d8e2ee;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 42px rgba(15,23,42,.16);
}
.list-sort-popover label{display:grid;gap:6px}
.list-sort-popover label>span{
  color:#64748b;
  font-size:11px;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.list-sort-popover .list-sort-select{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
.list-sort-popover .list-sort-direction{
  width:100%!important;
  min-height:40px;
  height:auto;
  padding:8px 11px!important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:13px!important;
}
.list-sort-popover .list-sort-direction b{font-size:18px;line-height:1}
.subject-filter-toolbar .list-sort-menu{align-self:center}

.registration-region-notice{
  display:flex;
  align-items:flex-start;
  gap:11px;
  margin:0 0 16px;
  padding:13px 14px;
  border:1px solid #9ec9fb;
  border-radius:15px;
  background:linear-gradient(135deg,#eef7ff,#e5f2ff);
  color:#0b386b;
}
.registration-region-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#1475e8;
  color:#fff;
  font-size:19px;
  font-weight:900;
}
.registration-region-notice>div{display:grid;gap:3px}
.registration-region-notice b{font-size:14px;color:#073c78}
.registration-region-notice span{font-size:12px;line-height:1.5}
#province.region-locked[readonly]{
  background:#f1f7fd;
  border-color:#b7d4f4;
  color:#0b4c8c;
  font-weight:800;
  cursor:not-allowed;
}

@media(max-width:760px){
  .list-sort-menu{width:44px!important;min-width:44px!important;align-self:center!important}
  .subject-filter-toolbar .list-sort-menu{width:44px!important;min-width:44px!important;align-self:flex-start!important}
  .list-sort-popover{position:absolute;left:0;right:auto;top:calc(100% + 8px);width:270px;max-width:calc(100vw - 32px);margin-top:0}
}
@media(max-width:620px){
  .registration-region-notice{padding:11px}
}

/* v0.10.35 — exam renderer layer fix.
   .exam-frame uses display:block!important for fullscreen hardening, so the generic
   .hidden rule cannot hide it. Native Autosave must always paint above the iframe,
   and the explicit compound selector restores a real display:none state. */
.exam-frame.hidden{display:none!important}
.exam-frame{z-index:1}
.exam-native{z-index:2}

/* v0.10.36 — payment holder alignment and stable Native Autosave scrolling. */
.participant-bank-holder{
  display:grid!important;
  justify-items:start!important;
  align-items:start!important;
  justify-content:start!important;
  gap:2px!important;
  padding:10px 2px 3px!important;
}
.participant-bank-holder b{display:block;max-width:100%;text-align:left;overflow-wrap:anywhere}

body.exam-active{overflow:hidden!important;overscroll-behavior:none}
.exam-mode[data-render-mode="native"] .exam-frame{display:none!important;visibility:hidden!important;pointer-events:none!important}
.exam-mode[data-render-mode="native"] .exam-native{display:block!important;visibility:visible!important}
.exam-mode[data-render-mode="google_form"] .exam-native{display:none!important}
.exam-native{display:block;overflow:hidden;isolation:isolate}
.exam-native-form{
  position:absolute!important;
  inset:0!important;
  min-height:0!important;
  height:100%!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  display:block!important;
  padding:18px clamp(12px,3vw,32px) 28px!important;
  scroll-behavior:auto!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  background:#f4f8fd;
}
.exam-native-form .native-question{margin:0 auto 18px!important}
.exam-native-form .native-question:last-child{margin-bottom:0!important}
.exam-toolbar-submit{background:#0b75df!important;color:#fff!important;border-color:#0b75df!important;white-space:nowrap}
.exam-toolbar-submit.hidden{display:none!important}
@media(max-width:700px){
  .exam-native-form{padding:10px 8px 18px!important}
  .exam-mode-toolbar{height:auto;min-height:58px;padding:7px 8px;gap:8px}
  .exam-mode-toolbar>div:first-child{min-width:0}
  .exam-mode-toolbar>div:first-child>div{min-width:0}
  .exam-mode-toolbar b{font-size:12px}
  .exam-mode-toolbar small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}
  .exam-mode-toolbar-actions{gap:6px!important}
  .exam-toolbar-submit,.exam-fullscreen-btn{padding:8px 9px!important;font-size:10px!important;min-width:0!important}
  .exam-mode-deadline{padding:5px 7px!important}
}

/* v0.10.36 — event duplication dialog. */
.duplicate-event-options{display:grid;gap:10px}
.duplicate-event-option{display:flex;align-items:flex-start;gap:11px;padding:12px 13px;border:1px solid #d7e4f2;border-radius:14px;background:#f8fbff;cursor:pointer}
.duplicate-event-option input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:#0876df}
.duplicate-event-option span{display:grid;gap:3px;min-width:0}.duplicate-event-option b{font-size:13px;color:#173b65}.duplicate-event-option small{font-size:11px;line-height:1.45;color:#667085}
.page-actions .btn svg{width:16px;height:16px;vertical-align:-3px}

/* v0.10.37 — compact icon-only exam toolbar actions. */
.exam-toolbar-icon-btn{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border-radius:13px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}
.exam-toolbar-icon-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.exam-toolbar-submit.exam-toolbar-icon-btn{background:#0b75df!important;color:#fff!important;border-color:#0b75df!important}
.exam-fullscreen-btn.exam-toolbar-icon-btn{background:#fff!important;color:#07101f!important;border-color:#fff!important}
@media(max-width:700px){
  .exam-mode-toolbar{flex-wrap:nowrap!important;padding:7px 8px!important}
  .exam-mode-toolbar>div:first-child{flex:1 1 auto!important;min-width:0!important}
  .exam-mode-toolbar-actions{flex:0 0 auto!important;gap:5px!important}
  .exam-toolbar-icon-btn{width:38px!important;height:38px!important;min-width:38px!important;border-radius:11px!important}
  .exam-toolbar-icon-btn svg{width:19px;height:19px}
  .exam-mode-deadline{min-width:58px!important;padding:4px 6px!important}
  .exam-mode-toolbar small{max-width:34vw!important}
}


/* ===== v0.10.38 — participant sender-bank picker + centered Countdown KPI ===== */
#senderBankOtherField{transition:opacity .18s ease}
.display-kpis-countdown{
  width:min(840px,100%)!important;
  max-width:840px!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  justify-content:center!important;
  align-items:stretch!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.display-kpis-countdown .display-kpi{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.display-kpis-countdown .display-kpi b,.display-kpis-countdown .display-kpi span{width:100%;text-align:center!important}
@media(max-width:680px){
  .display-kpis-countdown{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
  .display-kpis-countdown .display-kpi{padding:10px 6px!important}
  .display-kpis-countdown .display-kpi b{font-size:clamp(22px,7vw,34px)!important}
  .display-kpis-countdown .display-kpi span{font-size:9px!important;letter-spacing:.02em!important}
}

/* v0.10.39: participant exam schedule lock + compact Word-like document editor */
.participant-exam-btn:disabled{cursor:not-allowed;opacity:.52;filter:saturate(.55);box-shadow:none!important}

.doc-page-card-v0139{display:flex;flex-direction:column;gap:10px;overflow:visible}
.doc-page-card-v0139>b{margin-bottom:0!important}
.doc-orientation-block{display:grid;gap:6px}
.doc-orientation-block>span,.doc-word-control-label,.doc-color-control>span{font-size:10px;font-weight:900;letter-spacing:.03em;color:#475467}
.doc-orientation-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border:1px solid #d7e0eb;background:#fff;border-radius:12px}
.doc-orientation-btn{min-height:36px;border:0;border-radius:9px;background:transparent;color:#526175;font-size:11px;font-weight:900;cursor:pointer;transition:.15s ease}
.doc-orientation-btn:hover{background:#f0f6ff;color:#075fc6}.doc-orientation-btn.active{background:#e7f2ff;color:#075fc6;box-shadow:inset 0 0 0 1px #9fc9f8}
.doc-page-settings-v0139{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;margin:0!important}
.doc-page-settings-v0139 .input{width:100%;min-width:0}
.doc-page-actions-v0139{display:grid;grid-template-columns:1fr 1fr;gap:7px}.doc-page-actions-v0139 .btn{min-width:0;padding-left:10px;padding-right:10px}

.doc-selected-grid-v0141{grid-template-columns:78px 78px 78px minmax(125px,1.15fr) auto auto 50px!important;gap:7px!important;align-items:end}
.doc-selected-grid-v0141>label{min-width:0}.doc-font-field select{min-width:0;width:100%}
.doc-word-controls{display:grid;gap:4px;min-width:max-content}
.doc-word-toolbar{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #d7e0eb;background:#fff;border-radius:11px;min-height:38px}
.doc-format-btn{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#344054;cursor:pointer;padding:0;line-height:1;transition:.15s ease}
.doc-format-btn:hover{background:#f0f6ff;color:#075fc6}.doc-format-btn.active{background:#ddecff;color:#075fc6;box-shadow:inset 0 0 0 1px #9fc9f8}
.doc-format-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.doc-format-btn strong{font-family:Arial,Helvetica,sans-serif;font-size:15px}.doc-format-italic strong{font-style:italic;font-family:Georgia,"Times New Roman",serif}.doc-format-underline strong{text-decoration:underline;text-underline-offset:2px}
.doc-color-control{display:grid!important;gap:4px!important;justify-items:center;align-items:end}.doc-color-control>span{width:100%;text-align:center}
.doc-color-dot{appearance:none;-webkit-appearance:none;width:38px;height:38px;min-width:38px;border:2px solid #fff!important;border-radius:50%!important;padding:0!important;overflow:hidden;cursor:pointer;box-shadow:0 0 0 1px #cfd9e6,0 2px 8px rgba(15,23,42,.08);background:transparent}
.doc-color-dot::-webkit-color-swatch-wrapper{padding:0}.doc-color-dot::-webkit-color-swatch{border:0;border-radius:50%}.doc-color-dot::-moz-color-swatch{border:0;border-radius:50%}

@media(max-width:1450px){.doc-editor-topbar{grid-template-columns:minmax(240px,.82fr) minmax(230px,.72fr) minmax(390px,1.45fr)}.doc-selected-grid-v0141{grid-template-columns:72px 72px 72px minmax(115px,1fr) auto auto 48px!important}.doc-format-btn{width:30px}}
@media(max-width:1100px){.doc-selected-grid-v0141{grid-template-columns:repeat(4,minmax(0,1fr))!important}.doc-word-controls,.doc-color-control{min-width:0}.doc-word-toolbar{width:max-content}.doc-color-control{justify-items:start}.doc-color-control>span{text-align:left}.doc-page-card-v0139{min-height:0}}
@media(max-width:700px){.doc-page-settings-v0139{grid-template-columns:1fr 1fr!important}.doc-page-actions-v0139{grid-template-columns:1fr}.doc-selected-grid-v0141{grid-template-columns:1fr 1fr!important}.doc-font-field{grid-column:1/-1}.doc-word-controls{min-width:0}.doc-word-toolbar{width:max-content}.doc-format-btn{width:34px;height:34px}.doc-color-dot{width:38px;height:38px}}

/* ===== v0.10.40 — certificate payment gate + compact PDF controls ===== */
.doc-page-card-v0141{display:flex;flex-direction:column;gap:8px;overflow:visible;padding:12px!important}
.doc-page-compact-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.doc-page-compact-head>b{margin:0!important;white-space:nowrap}
.doc-page-compact-actions{display:flex;align-items:center;gap:6px;min-width:0}
.doc-orientation-icons{display:flex!important;grid-template-columns:none!important;gap:4px!important;padding:3px!important;border-radius:10px!important}
.doc-orientation-icon{width:34px;height:34px;min-height:34px;padding:0!important;display:grid;place-items:center}
.doc-orientation-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.doc-a4-btn{min-width:44px;height:40px;padding:0 10px!important}
.doc-page-settings-v0141{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:7px!important;margin:0!important}
.doc-page-settings-v0141 label{font-size:10px!important}
.doc-page-settings-v0141 .input{width:100%;min-width:0;height:40px;padding:8px 10px}
.doc-page-hint{font-size:10px;color:#667085;line-height:1.35}
.document-download-status .muted{display:inline-block;margin-left:5px}
.table .btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
@media(max-width:1450px){.doc-editor-topbar{grid-template-columns:minmax(240px,.82fr) minmax(205px,.62fr) minmax(390px,1.55fr)}}
@media(max-width:1100px){.doc-page-card-v0141{min-height:0}.doc-page-compact-head{align-items:flex-start}.doc-page-compact-actions{flex-shrink:0}}
@media(max-width:700px){.doc-page-card-v0141{padding:11px!important}.doc-page-compact-head{align-items:center}.doc-page-settings-v0141{grid-template-columns:1fr 1fr!important}.doc-orientation-icon{width:32px;height:32px;min-height:32px}.doc-a4-btn{height:38px}.doc-page-hint{font-size:9px}}
.doc-preview-field:not(.doc-preview-qr){text-transform:uppercase}


/* ===== v0.10.41 — compact PDF size row ===== */
.doc-page-card-v0141{display:flex;flex-direction:column;gap:8px;overflow:visible;padding:12px!important}
.doc-page-card-v0141>b{margin:0!important;white-space:nowrap}
.doc-page-inline-v0141{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:7px;align-items:end;margin:0}
.doc-page-inline-v0141>label{display:grid;gap:4px;min-width:0;font-size:10px!important}
.doc-page-inline-v0141 .input{width:100%;min-width:0;height:40px;padding:8px 10px}
.doc-orientation-inline-v0141{display:flex;align-items:center;gap:4px;height:40px;padding:3px;border:1px solid #d7e0eb;background:#fff;border-radius:10px;white-space:nowrap}
.doc-orientation-inline-v0141 .doc-orientation-icon{width:32px;height:32px;min-height:32px}
@media(max-width:1450px){.doc-editor-topbar{grid-template-columns:minmax(240px,.82fr) minmax(215px,.64fr) minmax(390px,1.55fr)}}
@media(max-width:1100px){.doc-editor-topbar{grid-template-columns:1fr 1fr!important}.doc-field-editor-host{grid-column:1/-1}.doc-page-card-v0141{min-height:0}.doc-page-inline-v0141{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}}
@media(max-width:700px){.doc-editor-topbar{grid-template-columns:1fr!important}.doc-field-editor-host{grid-column:auto}.doc-page-card-v0141{padding:11px!important}.doc-page-inline-v0141{grid-template-columns:1fr 1fr}.doc-orientation-inline-v0141{grid-column:1/-1;justify-self:start;height:38px}.doc-orientation-inline-v0141 .doc-orientation-icon{width:30px;height:30px;min-height:30px}.doc-page-hint{font-size:9px}}

/* ===== v0.10.42 — unclipped sort overlay + analytics podium + 200-user hardening ===== */
.list-sort-menu[open]{z-index:10040}
.list-sort-popover-portal{
  position:fixed!important;
  right:auto!important;
  bottom:auto!important;
  margin:0!important;
  z-index:10080!important;
  width:270px;
  max-width:calc(100vw - 24px)!important;
  overflow:visible!important;
}
@media(max-width:760px){
  .list-sort-popover-portal{position:fixed!important;right:auto!important;max-width:calc(100vw - 24px)!important;margin:0!important}
}
.analytics-school-rank-item{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-height:56px;
  margin:0 0 7px;
  padding:8px 11px;
  border:1px solid #e2eaf3;
  border-radius:14px;
  background:#fff;
}
.analytics-school-rank-item:last-child{margin-bottom:0}
.analytics-rank-badge{
  width:32px;height:32px;
  display:grid;place-items:center;
  border-radius:10px;
  background:#eef3f8;
  color:#334155;
  font-size:13px;
  font-weight:950;
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.analytics-rank-copy{min-width:0;display:grid;gap:2px}
.analytics-rank-copy>b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25}
.analytics-rank-copy .small{line-height:1.35}
.analytics-rank-1{border-color:#f2d675;background:linear-gradient(90deg,#fff9df,#fff 42%)}
.analytics-rank-1 .analytics-rank-badge{background:#f6c945;color:#5b4100;box-shadow:0 5px 14px rgba(160,118,0,.18)}
.analytics-rank-2{border-color:#cfd8e4;background:linear-gradient(90deg,#f4f7fa,#fff 42%)}
.analytics-rank-2 .analytics-rank-badge{background:#dbe2ea;color:#344054;box-shadow:0 5px 14px rgba(71,84,103,.12)}
.analytics-rank-3{border-color:#e2b38b;background:linear-gradient(90deg,#fff0e3,#fff 42%)}
.analytics-rank-3 .analytics-rank-badge{background:#d99359;color:#fff;box-shadow:0 5px 14px rgba(158,84,30,.16)}
@media(max-width:560px){.analytics-school-rank-item{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:8px}.analytics-rank-badge{width:30px;height:30px}.analytics-rank-copy>b{font-size:12px}}

/* v0.10.43 — scoring configuration per subject */
.scoring-config-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(180deg,rgba(239,246,255,.72),rgba(255,255,255,.96))}
.scoring-config-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.scoring-config-heading>div{display:grid;gap:3px}.scoring-config-heading b{font-size:17px}.scoring-config-heading small{color:var(--muted);line-height:1.45}
.scoring-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.scoring-config-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--text)}
.scoring-auto-preview{margin-top:12px;border:1px solid #bfdbfe;border-radius:14px;padding:12px;background:#fff}.scoring-auto-preview.bad{border-color:#fecaca;background:#fff7f7;color:#991b1b}
.scoring-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.scoring-preview-head span{font-size:12px;color:var(--muted)}
.scoring-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.scoring-preview-grid>div{display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--soft,#f8fafc)}.scoring-preview-grid span,.scoring-preview-grid small{font-size:11px;color:var(--muted)}.scoring-preview-grid b{font-size:14px}
.scoring-auto-preview>p{margin:9px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}.scoring-sync-note{margin-top:9px;line-height:1.45}.btn-inline-mini{min-height:30px;padding:4px 9px;margin-left:6px;font-size:11px;vertical-align:middle}.scoring-summary{line-height:1.65}
@media(max-width:920px){.scoring-config-grid,.scoring-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.scoring-config-grid,.scoring-preview-grid{grid-template-columns:1fr}.scoring-config-card{padding:12px}.scoring-preview-head{align-items:flex-start;flex-direction:column}}

/* ===== v0.10.44 — stable participant action rail on desktop + mobile ===== */
.attendance-label-mobile{display:none}
.participant-shell .participant-actions{width:100%;min-width:0;overflow:visible}
.participant-shell .participant-payment-action-row,
.participant-shell .participant-shortcut-row{
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  gap:8px!important;
}
.participant-shell .participant-payment-action-row>.participant-payment-btn{
  flex:0 1 var(--payment-cta-max,260px)!important;
  width:var(--payment-cta-max,260px)!important;
  min-width:0!important;
  max-width:var(--payment-cta-max,260px)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.participant-shell .participant-payment-action-row>.participant-icon-action,
.participant-shell .participant-shortcut-row>.participant-icon-action,
.participant-shell .participant-shortcut-row>.participant-guide-download-btn{
  flex:0 0 48px!important;
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  height:48px!important;
  min-height:48px!important;
  padding:0!important;
}
.participant-shell .participant-shortcut-row>.participant-attendance-btn{
  flex:0 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:210px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.participant-shell .participant-result-actions>.btn,
.participant-shell .attendance-card-actions>.btn,
.participant-shell .exam-card>.btn,
.participant-shell .account-recovery-banner>.btn{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
@media(max-width:620px){
  .participant-shell .participant-payment-action-row,
  .participant-shell .participant-shortcut-row{gap:7px!important}
  .participant-shell .participant-payment-action-row>.participant-payment-btn{
    flex:1 1 auto!important;
    width:auto!important;
    max-width:none!important;
    padding-inline:10px!important;
  }
  .participant-shell .participant-shortcut-row>.participant-attendance-btn{
    flex:1 1 auto!important;
    width:auto!important;
    max-width:none!important;
    padding-inline:10px!important;
  }
  .attendance-label-desktop{display:none!important}
  .attendance-label-mobile{display:inline!important}
}
@media(max-width:390px){
  .participant-shell .participant-payment-action-row,
  .participant-shell .participant-shortcut-row{gap:6px!important}
  .participant-shell .participant-payment-action-row>.participant-icon-action,
  .participant-shell .participant-shortcut-row>.participant-icon-action,
  .participant-shell .participant-shortcut-row>.participant-guide-download-btn{
    flex-basis:44px!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
  }
  .participant-shell .participant-payment-action-row>.participant-payment-btn,
  .participant-shell .participant-shortcut-row>.participant-attendance-btn{
    min-height:44px!important;
    padding-inline:8px!important;
    font-size:11px!important;
  }
}
@media(max-width:350px){
  .participant-shell .participant-payment-action-row,
  .participant-shell .participant-shortcut-row{gap:5px!important}
  .participant-shell .participant-payment-action-row>.participant-icon-action,
  .participant-shell .participant-shortcut-row>.participant-icon-action,
  .participant-shell .participant-shortcut-row>.participant-guide-download-btn{
    flex-basis:40px!important;
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    border-radius:12px!important;
  }
  .participant-shell .participant-payment-action-row>.participant-payment-btn,
  .participant-shell .participant-shortcut-row>.participant-attendance-btn{min-height:40px!important;font-size:10.5px!important}
}
/* v0.10.44 — final overflow guard for every textual button in Participant Portal. */
.participant-shell .btn{min-width:0;max-width:100%}
.participant-shell .btn:not(.participant-icon-action):not(.exam-toolbar-icon-btn):not(.bank-copy-btn){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* ===== v0.10.45 — atomic Admin event-context switching ===== */
#content[aria-busy="true"]{opacity:.62;pointer-events:none;transition:opacity .12s ease}
.app-shell.event-context-switching .side-nav button[data-page],
.app-shell.event-context-switching .nav-folder{pointer-events:none}
.app-shell.event-context-switching #eventPicker{cursor:wait}


/* ===== PUSKANAS v0.10.48 — compact iOS/mobile participant UI + traffic analytics ===== */
/* VisualViewport is synchronized by participant-v0148.js. The explicit min-height:0
   removes the old 100vh floor that can extend behind Safari's dynamic bottom toolbar. */
.participant-shell .modal{z-index:4200!important}
.exam-mode{
  height:var(--pus-visible-vh,100dvh)!important;
  min-height:0!important;
  max-height:var(--pus-visible-vh,100dvh)!important;
  width:var(--pus-visible-vw,100vw)!important;
  max-width:100vw!important;
}
.participant-chat-btn{position:relative!important;overflow:visible!important}
.participant-chat-notification-dot{position:absolute;right:4px;top:4px;width:10px;height:10px;border-radius:50%;background:#dc2626;border:2px solid #fff;box-shadow:0 0 0 2px rgba(220,38,38,.10);pointer-events:none}
.chat-reg-chip{position:relative;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.chat-reg-chip-copy{min-width:0;display:block;text-align:left}.chat-reg-chip-copy b,.chat-reg-chip-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-reg-unread{flex:0 0 auto;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900;border:2px solid #fff;box-shadow:0 4px 12px rgba(220,38,38,.22)}

.analytics-traffic-panel{overflow:visible!important}
.analytics-traffic-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 8px}
.analytics-traffic-kpi{min-width:0;padding:13px 14px;border:1px solid #e3ebf5;border-radius:15px;background:#f8fbff}.analytics-traffic-kpi small{display:block;color:#667085;font-size:10px;font-weight:850;letter-spacing:.045em;text-transform:uppercase}.analytics-traffic-kpi b{display:block;margin-top:5px;font-size:24px;line-height:1;color:#102f52}.analytics-traffic-kpi span{display:block;margin-top:5px;color:#8492a6;font-size:10px}
.analytics-traffic-chart-wrap{overflow-x:auto;overflow-y:hidden;padding:6px 0 2px;-webkit-overflow-scrolling:touch}.analytics-traffic-chart{width:100%;min-width:680px;height:auto;display:block}.analytics-traffic-grid-line{stroke:#e8eef6;stroke-width:1}.analytics-traffic-area{fill:rgba(22,133,248,.08)}.analytics-traffic-visits{fill:none;stroke:#1685f8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.analytics-traffic-conversions{fill:none;stroke:#16a36a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.analytics-traffic-dot-visit{fill:#1685f8}.analytics-traffic-dot-conversion{fill:#16a36a}.analytics-traffic-label{fill:#7a889b;font-size:10px;font-weight:700}.analytics-traffic-value{fill:#344054;font-size:9px;font-weight:850}.analytics-traffic-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px;color:#667085;font-size:11px}.analytics-traffic-legend span{display:inline-flex;align-items:center;gap:6px}.analytics-traffic-legend i{width:9px;height:9px;border-radius:50%;background:#1685f8}.analytics-traffic-legend i.conversion{background:#16a36a}.analytics-traffic-note{margin:10px 0 0;color:#7a889b;font-size:10px;line-height:1.5}

@media(max-width:700px), (max-height:520px) and (pointer:coarse){
  /* Every participant modal is bound to the actually visible Safari viewport rather than 100vh. */
  .participant-shell .modal{height:var(--pus-visible-vh,100dvh)!important;max-height:var(--pus-visible-vh,100dvh)!important;inset:0!important;place-items:start center!important;align-items:flex-start!important;padding:max(6px,env(safe-area-inset-top)) 7px max(8px,env(safe-area-inset-bottom))!important;overflow-y:auto!important;overscroll-behavior:contain!important}
  .participant-shell .modal-card{width:100%!important;max-width:100%!important;max-height:calc(var(--pus-visible-vh,100dvh) - max(14px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)))!important;margin:0 auto!important;border-radius:17px!important;padding:13px!important;padding-right:13px!important;overflow-y:auto!important;scroll-padding-top:50px;scroll-padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .participant-shell .modal-card .page-head{margin-bottom:11px!important;gap:8px!important}.participant-shell .modal-card .page-head h2{font-size:18px!important;line-height:1.15!important}.participant-shell .modal-card .page-head p{font-size:11px!important;line-height:1.35!important;margin-top:3px!important;padding-right:36px!important}
  .participant-shell .modal-close-btn{position:sticky!important;top:0!important;z-index:12!important;margin-left:auto!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;border-radius:10px!important;font-size:21px!important;background:#fff!important;box-shadow:0 5px 14px rgba(16,24,40,.12)!important}
  .participant-shell .modal .page-head>.modal-close-btn{position:sticky!important;right:auto!important;top:0!important;margin-left:auto!important}
  .participant-shell .chat-modal-card{padding:11px!important}.participant-shell .chat-reg-picker{gap:6px!important;margin-bottom:8px!important}.participant-shell .chat-reg-chip{padding:8px 9px!important;border-radius:11px!important}.participant-shell .chat-reg-chip b{font-size:11px!important}.participant-shell .chat-reg-chip small{font-size:9px!important}.participant-shell .participant-chat-messages{min-height:180px!important;max-height:42vh!important;padding:9px!important}.participant-shell .chat-compose{gap:6px!important}.participant-shell .chat-compose .input{padding:9px 10px!important;min-height:38px!important}.participant-shell .chat-compose .btn{min-height:38px!important;padding:8px 11px!important}

  .exam-prep-card{padding:11px!important}.exam-prep-card>.modal-close-btn{margin-bottom:-30px!important}.exam-prep-hero{grid-template-columns:40px 1fr!important;gap:8px!important;padding-right:36px!important}.exam-prep-logo{width:38px!important;height:38px!important;border-radius:11px!important}.exam-prep-star{width:28px!important;height:28px!important}.exam-prep-hero .eyebrow{font-size:8px!important;padding:4px 7px!important}.exam-prep-hero h2{font-size:17px!important;line-height:1.1!important;margin:3px 0!important}.exam-prep-hero p{font-size:10px!important;line-height:1.3!important}.exam-prep-meta-grid{grid-template-columns:1fr 1fr!important;gap:6px!important;margin:9px 0!important}.exam-prep-meta-grid>div{padding:8px 9px!important;border-radius:10px!important}.exam-prep-meta-grid span{font-size:8px!important}.exam-prep-meta-grid b{font-size:14px!important;margin-top:2px!important}.exam-prep-checklist{grid-template-columns:1fr 1fr!important;gap:6px!important;margin:8px 0!important}.exam-prep-checklist>div{min-height:0!important;grid-template-columns:22px 1fr!important;gap:6px!important;padding:7px!important;border-radius:10px!important;font-size:9px!important;line-height:1.35!important}.exam-prep-checklist>div>b{width:21px!important;height:21px!important;flex-basis:21px!important;border-radius:7px!important;font-size:9px!important}.exam-prep-security{grid-template-columns:1fr!important;gap:2px!important;padding:7px 8px!important;border-radius:10px!important;font-size:9px!important;line-height:1.35!important}.exam-prep-actions{grid-template-columns:1fr 1.35fr!important;gap:6px!important;margin-top:8px!important}.exam-prep-actions .btn{min-height:38px!important;padding:8px 8px!important;font-size:10px!important;border-radius:10px!important}
  .attendance-card-popup{padding:11px!important;max-height:calc(var(--pus-visible-vh,100dvh) - 14px)!important}.attendance-card-popup>.modal-close-btn{margin-bottom:-28px!important}.attendance-popup-logo{width:min(150px,48%)!important;margin-bottom:7px!important}.attendance-qr-state h2,.attendance-success-state h2{font-size:18px!important;margin:3px 0!important}.attendance-qr-state>p{font-size:10px!important;line-height:1.35!important;margin:0 auto 7px!important}.attendance-qr-frame{width:min(210px,58vw)!important;margin:7px auto!important;padding:7px!important;border-radius:14px!important}.attendance-card-number,.attendance-success-meta{margin:7px auto!important;padding:8px 10px!important}.attendance-card-number b{font-size:16px!important}

  /* Compact exam header and leave a generous iOS safe scroll landing below option E. */
  .exam-mode-toolbar{flex:0 0 48px!important;min-height:48px!important;max-height:48px!important;height:48px!important;padding:4px 6px!important;gap:5px!important}.exam-mode-toolbar img{width:27px!important;height:27px!important}.exam-mode-toolbar>div{gap:5px!important}.exam-mode-toolbar b{font-size:10.5px!important;line-height:1.1!important}.exam-mode-toolbar small{font-size:7.5px!important;line-height:1.1!important;max-width:27vw!important}.exam-mode-toolbar-actions{gap:4px!important}.exam-mode-deadline{min-width:52px!important;padding:3px 5px!important;border-radius:8px!important}.exam-mode-deadline span{font-size:7px!important}.exam-mode-deadline b{font-size:11px!important}.exam-toolbar-icon-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border-radius:9px!important}.exam-toolbar-icon-btn svg{width:16px!important;height:16px!important}
  .exam-focus-warning{padding:5px 7px!important;gap:5px!important;font-size:9px!important;line-height:1.25!important}.exam-focus-warning button{width:auto!important;min-height:30px!important;padding:5px 7px!important;font-size:9px!important}
  .exam-frame-shell,.exam-native{min-height:0!important}.exam-native-form{padding:7px 6px max(112px,calc(env(safe-area-inset-bottom) + 92px))!important;scroll-padding-top:8px!important;scroll-padding-bottom:max(132px,calc(env(safe-area-inset-bottom) + 112px))!important;overscroll-behavior-y:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important}
  .exam-native-form .native-question{padding:10px!important;margin:0 auto 8px!important;border-radius:12px!important}.exam-native-form .native-question:last-child{margin-bottom:max(18px,env(safe-area-inset-bottom))!important}.native-question h3{font-size:13px!important;line-height:1.25!important;margin-bottom:7px!important}.native-question p,.native-question .native-question-title{font-size:12px!important;line-height:1.35!important}.native-options{gap:5px!important}.native-option{grid-template-columns:18px 1fr!important;gap:7px!important;padding:7px 8px!important;border-radius:9px!important;min-height:36px!important}.native-option-mark{width:17px!important;height:17px!important;margin-top:0!important}.native-option input:checked+.native-option-mark:after{left:4px!important;top:1px!important;width:4px!important;height:8px!important}.native-option>span:last-child{font-size:12px!important;line-height:1.32!important}

  .analytics-traffic-kpis{grid-template-columns:1fr 1fr}.analytics-traffic-kpi{padding:10px}.analytics-traffic-kpi b{font-size:20px}.analytics-traffic-chart{min-width:610px}.analytics-traffic-panel{padding:15px!important}
}
@media(max-width:380px){
  .participant-shell .modal-card{padding:9px!important;padding-right:9px!important;border-radius:14px!important}.exam-prep-checklist{grid-template-columns:1fr!important}.exam-prep-checklist>div{font-size:8.5px!important}.exam-prep-actions{grid-template-columns:1fr!important}.exam-prep-actions .btn{min-height:34px!important}.exam-mode-toolbar small{display:none!important}.exam-mode-deadline{min-width:48px!important}.native-option>span:last-child{font-size:11.5px!important}.analytics-traffic-kpis{grid-template-columns:1fr 1fr}.analytics-traffic-kpi b{font-size:18px}
}

/* ===== PUSKANAS v0.10.50 — centered mobile popups + keyboard-stable participant chat ===== */
/* iOS Safari moves the VisualViewport when its keyboard opens. Participant JS now exposes
   width/height AND offsetTop/offsetLeft, so overlays stay centered inside the actually
   visible area instead of being anchored to the layout viewport behind the keyboard. */
@media(max-width:700px), (max-height:520px) and (pointer:coarse){
  .participant-shell .modal:not(.hidden){
    inset:auto!important;
    top:var(--pus-vv-top,0px)!important;
    left:var(--pus-vv-left,0px)!important;
    width:var(--pus-visible-vw,100vw)!important;
    height:var(--pus-visible-vh,100dvh)!important;
    max-width:none!important;
    max-height:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    place-items:unset!important;
    padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  .participant-shell .modal-card{
    position:relative!important;
    width:min(100%,560px)!important;
    max-width:560px!important;
    max-height:calc(var(--pus-visible-vh,100dvh) - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)))!important;
    margin:auto!important;
    border-radius:18px!important;
    padding:13px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-padding-top:46px!important;
    scroll-padding-bottom:max(18px,env(safe-area-inset-bottom))!important;
  }
  .participant-shell .modal-card .page-head{position:relative!important;padding-right:42px!important;margin-bottom:10px!important;gap:8px!important}
  .participant-shell .modal-card .page-head h2{font-size:18px!important;line-height:1.16!important}
  .participant-shell .modal-card .page-head p{padding-right:0!important;font-size:11px!important;line-height:1.35!important;margin-top:3px!important}
  .participant-shell .modal-close-btn{
    position:absolute!important;
    top:10px!important;
    right:10px!important;
    left:auto!important;
    z-index:14!important;
    margin:0!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    border-radius:10px!important;
    font-size:21px!important;
    background:#fff!important;
    box-shadow:0 5px 14px rgba(16,24,40,.12)!important;
  }
  .participant-shell .modal .page-head>.modal-close-btn{position:absolute!important;top:0!important;right:0!important;margin:0!important}

  /* Chat is a fixed-height flex workspace. The compose row never participates in the
     message scroll container, so opening the keyboard cannot push it above the viewport. */
  .participant-shell #chatModal .chat-modal-card{
    display:flex!important;
    flex-direction:column!important;
    height:min(620px,calc(var(--pus-visible-vh,100dvh) - 24px))!important;
    max-height:calc(var(--pus-visible-vh,100dvh) - 16px)!important;
    overflow:hidden!important;
    padding:12px!important;
  }
  .participant-shell #chatModal .page-head{flex:0 0 auto!important;margin-bottom:7px!important}
  .participant-shell #chatModal .chat-reg-picker{flex:0 0 auto!important;gap:6px!important;margin:0 0 7px!important;padding:0 0 3px!important;max-height:58px!important;overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-x:contain!important}
  .participant-shell #chatModal .chat-reg-chip{padding:7px 9px!important;border-radius:10px!important;min-width:138px!important}
  .participant-shell #chatModal .chat-reg-chip b{font-size:11px!important}.participant-shell #chatModal .chat-reg-chip small{font-size:9px!important}
  .participant-shell #chatModal .participant-chat-messages{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:96px!important;
    max-height:none!important;
    margin:0!important;
    padding:9px!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .participant-shell #chatModal .chat-compose{
    flex:0 0 auto!important;
    position:relative!important;
    inset:auto!important;
    z-index:3!important;
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    margin:0!important;
    padding:8px!important;
    background:#fff!important;
    border:1px solid var(--line)!important;
    border-top:0!important;
    border-radius:0 0 14px 14px!important;
    padding-bottom:max(8px,env(safe-area-inset-bottom))!important;
  }
  .participant-shell #participantChatText{min-width:0!important;min-height:40px!important;padding:9px 10px!important;font-size:16px!important;line-height:1.25!important}
  .participant-shell #chatModal .chat-compose .btn{flex:0 0 auto!important;min-width:64px!important;min-height:40px!important;height:40px!important;padding:0 11px!important;font-size:11px!important;border-radius:10px!important}

  /* During keyboard animation, use nearly all of the VisualViewport while staying centered
     in that visible viewport. Header copy collapses first; messages keep the remaining room. */
  .participant-shell.participant-keyboard-open #chatModal{padding:4px 6px!important}
  .participant-shell.participant-keyboard-open #chatModal .chat-modal-card{height:calc(var(--pus-visible-vh,100dvh) - 8px)!important;max-height:calc(var(--pus-visible-vh,100dvh) - 8px)!important;padding:8px!important;border-radius:14px!important}
  .participant-shell.participant-keyboard-open #chatModal .page-head{margin-bottom:4px!important;min-height:34px!important}
  .participant-shell.participant-keyboard-open #chatModal .page-head h2{font-size:16px!important;margin:2px 0!important}
  .participant-shell.participant-keyboard-open #chatModal .page-head p{display:none!important}
  .participant-shell.participant-keyboard-open #chatModal .chat-reg-picker{max-height:42px!important;margin-bottom:4px!important}
  .participant-shell.participant-keyboard-open #chatModal .chat-reg-chip{padding:5px 8px!important;min-width:126px!important}
  .participant-shell.participant-keyboard-open #chatModal .chat-reg-chip small{display:none!important}
  .participant-shell.participant-keyboard-open #chatModal .participant-chat-messages{min-height:64px!important;padding:7px!important}
  .participant-shell.participant-keyboard-open #chatModal .chat-compose{padding:6px!important;padding-bottom:max(6px,env(safe-area-inset-bottom))!important}

  /* Confirm/alert/input dialogs are also centered against the VisualViewport on Participant Portal. */
  .participant-shell .confirm-dialog-backdrop{
    inset:auto!important;
    top:var(--pus-vv-top,0px)!important;
    left:var(--pus-vv-left,0px)!important;
    width:var(--pus-visible-vw,100vw)!important;
    height:var(--pus-visible-vh,100dvh)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
  }
  .participant-shell .confirm-dialog-card{width:min(430px,100%)!important;max-height:calc(var(--pus-visible-vh,100dvh) - 20px)!important;overflow-y:auto!important;margin:auto!important}
  .participant-shell.participant-keyboard-open .confirm-dialog-card{padding:18px!important;border-radius:18px!important}
  .participant-shell.participant-keyboard-open .confirm-dialog-icon{width:42px!important;height:42px!important;margin-bottom:10px!important}
  .participant-shell.participant-keyboard-open .confirm-dialog-card h2{font-size:19px!important}
  .participant-shell.participant-keyboard-open .confirm-dialog-card p{font-size:12px!important;line-height:1.4!important}

  /* Header actions use one shared height/grid so the security and Keluar controls stay
     aligned and proportional on iPhone mini/SE through larger Android devices. */
  .participant-topbar .container.nav,.participant-header-row{height:60px!important;min-height:60px!important;max-height:60px!important;padding-top:0!important;padding-bottom:0!important;align-items:center!important}
  .participant-header-row{gap:8px!important}
  .participant-header-row .brand-image{min-width:0!important;flex:1 1 auto!important;display:flex!important;align-items:center!important;overflow:hidden!important}
  .participant-header-row .brand-image img{width:min(136px,39vw)!important;max-width:136px!important;max-height:38px!important;height:auto!important}
  .participant-account-actions{display:grid!important;grid-template-columns:40px auto!important;align-items:center!important;justify-content:end!important;gap:6px!important;flex:0 0 auto!important;margin-left:auto!important}
  .participant-security-icon{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border-radius:11px!important}
  .participant-security-icon svg{width:19px!important;height:19px!important}
  .participant-logout-btn{height:40px!important;min-height:40px!important;min-width:62px!important;padding:0 12px!important;border-radius:11px!important;font-size:11px!important;line-height:1!important;font-weight:800!important;white-space:nowrap!important}
}
@media(max-width:360px){
  .participant-header-row .brand-image img{width:min(118px,36vw)!important;max-width:118px!important}
  .participant-account-actions{grid-template-columns:38px auto!important;gap:5px!important}
  .participant-security-icon{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  .participant-logout-btn{height:38px!important;min-height:38px!important;min-width:56px!important;padding:0 9px!important;font-size:10.5px!important}
  .participant-shell #chatModal .chat-reg-chip{min-width:124px!important}
}

/* v0.10.50 final iOS stabilization: avoid programmatic viewport panning while a
   Participant popup is open; the centered VisualViewport shell owns positioning. */
@media(max-width:700px), (max-height:520px) and (pointer:coarse){
  .participant-shell .modal:not(.hidden){transform:translate3d(0,0,0)!important}
  .participant-shell .modal-card{width:min(calc(100% - 4px),520px)!important}
  .participant-shell #chatModal .chat-modal-card{width:min(calc(100% - 4px),520px)!important}
  .participant-shell #participantChatText{scroll-margin:0!important}
}

/* v0.10.51 — account trace detail, analytics hover, demographics, and transparent promotion UI */
.detail-icon-btn{width:38px;min-width:38px;padding:0!important;font-size:24px;line-height:1;border-radius:11px;display:inline-flex;align-items:center;justify-content:center}
.account-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.detail-kv{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#f8fbff;min-width:0}
.detail-kv small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.detail-kv b{display:block;overflow-wrap:anywhere;color:var(--ink);font-size:14px}.detail-kv span{display:block;color:var(--muted);font-size:11px;margin-top:4px;overflow-wrap:anywhere}
.account-activity-section,.account-permission-section{margin-top:18px}.account-activity-section h3,.account-permission-section h3{margin:0 0 10px}
.account-activity-list{display:grid;gap:8px}.account-activity-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.account-activity-item>span{width:9px;height:9px;border-radius:50%;background:#1685f8;margin-top:6px;box-shadow:0 0 0 4px rgba(22,133,248,.1);flex:0 0 auto}.account-activity-item b{display:block;font-size:13px}.account-activity-item small{display:block;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.account-permission-list{display:flex;flex-wrap:wrap;gap:7px}
.analytics-hover-target{cursor:crosshair;transition:transform .18s ease,filter .18s ease,opacity .18s ease;transform-box:fill-box;transform-origin:center}.analytics-hover-target:hover{filter:drop-shadow(0 4px 8px rgba(10,74,150,.22));opacity:1;transform:scale(1.035)}
.analytics-hover-tooltip{position:fixed;z-index:100000;pointer-events:none;background:#081f3b;color:#fff;padding:9px 11px;border-radius:10px;font-size:12px;font-weight:700;line-height:1.35;box-shadow:0 10px 30px rgba(4,24,48,.28);max-width:280px;transform:translateY(-100%);animation:analyticsTipIn .14s ease both}.analytics-hover-tooltip.hidden{display:none}@keyframes analyticsTipIn{from{opacity:0;transform:translateY(calc(-100% + 5px)) scale(.96)}to{opacity:1;transform:translateY(-100%) scale(1)}}
.analytics-demographic-panel{overflow:hidden}.demographic-bars{display:grid;gap:12px;margin-top:6px}.demographic-row{display:grid;gap:6px;padding:9px 10px;border-radius:11px;transition:background .18s ease,transform .18s ease}.demographic-row:hover{background:#f5f9ff;transform:translateX(2px)}.demographic-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.demographic-row span{font-weight:700}.demographic-row small{color:var(--muted)}.demographic-track{height:9px;border-radius:999px;background:#e8eff8;overflow:hidden}.demographic-track i{display:block;height:100%;min-width:3%;border-radius:inherit;background:linear-gradient(90deg,#0e65d8,#35a5ff);transition:width .4s ease}
.promotion-admin-panel .page-head{margin-bottom:14px}.promotion-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.promotion-admin-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:grid;grid-template-columns:145px minmax(0,1fr);min-height:150px}.promotion-admin-card>img{width:100%;height:100%;object-fit:cover;background:#eef4fb}.promotion-admin-card>div{padding:13px;min-width:0}.promotion-admin-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.promotion-admin-card p{margin:7px 0;color:var(--muted);font-size:12px}.promotion-admin-card small{display:block;color:var(--muted);margin-bottom:9px}
.public-floating-notice{position:fixed;right:max(18px,env(safe-area-inset-right));top:calc(74px + env(safe-area-inset-top));z-index:5000;width:min(360px,calc(100vw - 32px));background:#fff;border:1px solid #dbe7f6;border-radius:16px;padding:13px 42px 13px 42px;box-shadow:0 18px 50px rgba(4,33,68,.19);display:flex;gap:10px;align-items:flex-start;opacity:0;transform:translateX(28px) scale(.98);transition:opacity .28s ease,transform .28s ease}.public-floating-notice.show{opacity:1;transform:translateX(0) scale(1)}.public-floating-notice.hidden{display:none}.public-floating-notice>button{position:absolute;right:9px;top:8px;border:0;background:transparent;font-size:21px;color:#74839a;cursor:pointer}.public-floating-notice b{display:block;font-size:13px}.public-floating-notice p{margin:3px 0 0;color:#5f7088;font-size:12px;line-height:1.45}.public-floating-pulse{position:absolute;left:15px;top:17px;width:12px;height:12px;border-radius:50%;background:#18a56c;box-shadow:0 0 0 5px rgba(24,165,108,.12)}.public-floating-notice.success .public-floating-pulse{background:#1685f8;box-shadow:0 0 0 5px rgba(22,133,248,.12)}
.public-promotion-modal{position:fixed;inset:0;z-index:6000;display:grid;place-items:center;padding:calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));opacity:0;pointer-events:none;transition:opacity .25s ease}.public-promotion-modal.show{opacity:1;pointer-events:auto}.public-promotion-backdrop{position:absolute;inset:0;background:rgba(3,20,42,.62);backdrop-filter:blur(6px)}.public-promotion-card{position:relative;z-index:1;width:min(520px,94vw);max-height:min(82vh,720px);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.3);transform:translateY(18px) scale(.97);transition:transform .28s ease}.public-promotion-modal.show .public-promotion-card{transform:translateY(0) scale(1)}.public-promotion-card>img{display:block;width:100%;max-height:440px;object-fit:cover;background:#eef3f8}.public-promotion-copy{padding:18px}.public-promotion-copy>span{font-size:10px;font-weight:900;letter-spacing:.13em;color:#0e65d8}.public-promotion-copy h3{margin:5px 0 7px}.public-promotion-copy p{margin:0 0 14px;color:#5d6e84;line-height:1.5}.public-promotion-close{position:absolute;z-index:2;right:10px;top:10px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(4,25,50,.7);color:#fff;font-size:25px;line-height:1;cursor:pointer;backdrop-filter:blur(4px)}
@media(max-width:760px){.account-detail-grid{grid-template-columns:1fr}.promotion-admin-grid{grid-template-columns:1fr}.promotion-admin-card{grid-template-columns:105px minmax(0,1fr)}.public-floating-notice{top:calc(66px + env(safe-area-inset-top));right:12px;width:calc(100vw - 24px)}.public-promotion-card{width:min(440px,96vw);max-height:78dvh;border-radius:18px}.public-promotion-copy{padding:14px}.public-promotion-card>img{max-height:48dvh}}

/* ===== PUSKANAS v0.10.58 — promotion replay on every reload + viewport-safe modal ===== */
.public-promotion-modal{
  /* Keep a full-viewport fallback. VisualViewport JS may override each edge inline.
     Do NOT restore the legacy important inset:auto declaration: that can beat inline top/left and place the
     fixed modal at its static position below the long landing page. */
  inset:0;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;
  overflow:hidden!important;
}
.public-promotion-card{
  width:min(560px,calc(var(--public-promo-vw,100vw) - 32px))!important;
  max-width:100%!important;
  max-height:calc(var(--public-promo-vh,100dvh) - 28px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:22px!important;
  background:#fff!important;
}
.public-promotion-media{
  position:relative;
  flex:0 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:min(46vh,430px);
  max-height:calc(var(--public-promo-vh,100dvh) - 210px);
  min-height:180px;
  background:linear-gradient(145deg,#edf4fb,#f8fbff);
  overflow:hidden;
}
.public-promotion-media>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#f4f8fc;
  transition:opacity .18s ease,transform .22s ease;
}
.public-promotion-copy{padding:15px 17px 16px!important;display:grid;gap:8px;flex:0 0 auto;min-width:0}
.public-promotion-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.public-promotion-kicker>span{font-size:9px;font-weight:950;letter-spacing:.14em;color:#0e65d8}
.public-promotion-kicker>em{font-size:10px;font-style:normal;font-weight:900;color:#687b94;background:#eef4fb;border-radius:999px;padding:4px 8px;white-space:nowrap}
.public-promotion-copy h3{margin:0!important;font-size:19px;line-height:1.22;letter-spacing:-.02em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.public-promotion-copy p{margin:0!important;color:#5d6e84;line-height:1.42;font-size:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.public-promotion-copy>a.btn{justify-self:start;max-width:100%;min-height:40px;padding:9px 14px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-promotion-carousel{display:flex;align-items:center;justify-content:center;gap:9px;min-height:26px;margin-top:1px}
.public-promotion-nav{width:27px;height:27px;border-radius:9px;border:1px solid #d8e4f2;background:#f6f9fd;color:#1d4f87;display:grid;place-items:center;font-size:20px;line-height:1;cursor:pointer;padding:0}
.public-promotion-dots{display:flex;align-items:center;justify-content:center;gap:6px;min-width:30px}
.public-promotion-dots:empty+.public-promotion-nav,.public-promotion-nav:has(+ .public-promotion-dots:empty){visibility:hidden}
.public-promotion-dots button{width:7px;height:7px;border:0;border-radius:999px;background:#c9d7e8;padding:0;cursor:pointer;transition:width .18s ease,background .18s ease}
.public-promotion-dots button.active{width:20px;background:#0e65d8}
.public-promotion-close{right:9px!important;top:9px!important;width:36px!important;height:36px!important;font-size:23px!important;box-shadow:0 5px 18px rgba(3,20,42,.2)}

.participant-payment-attention{
  margin:0 0 16px;
  border:1px solid #f3b84a;
  border-radius:18px;
  background:linear-gradient(135deg,#fff8e8,#fffdf7 58%,#fff4d8);
  box-shadow:0 12px 30px rgba(164,101,0,.09);
  padding:13px 14px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
}
.participant-payment-attention-icon{width:38px;height:38px;border-radius:13px;background:#f08a00;color:#fff;display:grid;place-items:center;font-weight:950;font-size:18px;box-shadow:0 7px 18px rgba(240,138,0,.24);position:relative}
.participant-payment-attention-icon:after{content:"";position:absolute;inset:-4px;border:2px solid rgba(240,138,0,.22);border-radius:16px;animation:paymentNudgePulse 1.9s ease-out infinite}
.participant-payment-attention-copy{min-width:0}.participant-payment-attention-copy b{display:block;color:#7a4500;font-size:14px;line-height:1.3}.participant-payment-attention-copy span{display:block;color:#8b632c;font-size:11.5px;line-height:1.45;margin-top:3px}
.participant-payment-attention .btn{min-height:40px;padding:8px 13px;white-space:nowrap;background:linear-gradient(135deg,#f0a21f,#d97a0e)!important;color:#fff!important;border-color:#d88117!important}
.participant-payment-focus{animation:participantPaymentFocus 1.25s ease both}
.participant-payment-focus .participant-payment-btn{animation:paymentButtonPulse 1.15s ease 2}
.participant-payment-status-badge{background:#fff0cb!important;color:#8b5200!important;border-color:#f0c267!important}
.participant-payment-status-badge.pending{background:#eaf4ff!important;color:#12588f!important;border-color:#b7d8f7!important}
@keyframes paymentNudgePulse{0%{opacity:.8;transform:scale(.9)}75%,100%{opacity:0;transform:scale(1.25)}}
@keyframes participantPaymentFocus{0%{box-shadow:0 0 0 0 rgba(240,138,0,0)}25%{box-shadow:0 0 0 5px rgba(240,138,0,.2)}100%{box-shadow:0 0 0 0 rgba(240,138,0,0)}}
@keyframes paymentButtonPulse{0%,100%{transform:translateY(0);box-shadow:0 4px 12px rgba(217,122,14,.18)}50%{transform:translateY(-2px);box-shadow:0 8px 22px rgba(217,122,14,.34)}}

@media(max-width:760px){
  .public-promotion-modal{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}
  .public-promotion-card{width:min(430px,calc(var(--public-promo-vw,100vw) - 20px))!important;max-height:calc(var(--public-promo-vh,100dvh) - 20px)!important;border-radius:18px!important}
  .public-promotion-media{height:min(47dvh,350px);min-height:150px;max-height:calc(var(--public-promo-vh,100dvh) - 190px)}
  .public-promotion-copy{padding:12px 13px 13px!important;gap:6px}
  .public-promotion-copy h3{font-size:16px;-webkit-line-clamp:2}
  .public-promotion-copy p{font-size:11px;line-height:1.38;-webkit-line-clamp:2}
  .public-promotion-copy>a.btn{width:100%;justify-content:center;min-height:38px;padding:8px 10px;font-size:11.5px}
  .public-promotion-carousel{min-height:23px;gap:7px}
  .public-promotion-nav{width:25px;height:25px;border-radius:8px;font-size:18px}
  .public-promotion-close{width:34px!important;height:34px!important;right:7px!important;top:7px!important}
  .participant-payment-attention{grid-template-columns:auto minmax(0,1fr);gap:9px;padding:11px 12px;border-radius:15px}
  .participant-payment-attention-icon{width:34px;height:34px;border-radius:11px;font-size:16px}
  .participant-payment-attention .btn{grid-column:1/-1;width:100%;min-height:42px}
}
@media(max-width:390px), (max-height:620px) and (pointer:coarse){
  .public-promotion-media{height:min(42dvh,285px);min-height:125px;max-height:calc(var(--public-promo-vh,100dvh) - 175px)}
  .public-promotion-copy{padding:10px 11px 11px!important;gap:5px}
  .public-promotion-copy h3{font-size:15px}
  .public-promotion-copy p{font-size:10.5px;-webkit-line-clamp:2}
  .public-promotion-kicker>span{font-size:8px}.public-promotion-kicker>em{font-size:9px;padding:3px 7px}
  .public-promotion-copy>a.btn{min-height:36px;font-size:11px}
  .participant-payment-attention-copy b{font-size:13px}.participant-payment-attention-copy span{font-size:10.8px}
}
@media(prefers-reduced-motion:reduce){.public-promotion-card,.public-promotion-modal,.public-promotion-dots button,.participant-payment-focus,.participant-payment-focus .participant-payment-btn,.participant-payment-attention-icon:after{animation:none!important;transition:none!important}}


/* ===== PUSKANAS v0.10.54 — Participant hidden-modal contract =====
   Root cause v0.10.53: the mobile VisualViewport rule `.participant-shell .modal`
   used `display:flex!important`, which has higher selector specificity than the
   global `.hidden{display:none!important}` utility. On <=700px viewports this
   made every transient Participant modal render even while it still had class
   `hidden`, producing stacked Payment/Chat/Exam Preparation overlays after
   registration. Hidden is now authoritative on every Participant viewport. */
body.participant-shell .modal.hidden,
body.participant-shell .modal[aria-hidden="true"].hidden{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
@media(max-width:700px), (max-height:520px) and (pointer:coarse){
  body.participant-shell .modal.hidden,
  body.participant-shell .modal[aria-hidden="true"].hidden{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

/* ===== PUSKANAS v0.10.55 — promotion delivery diagnostics & media fallback ===== */
.promotion-delivery-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border:1px solid transparent;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:900;letter-spacing:.035em;line-height:1.2}
.promotion-delivery-badge.live{background:#e9f8f0;color:#147549;border-color:#bfe8d1}
.promotion-delivery-badge.scheduled{background:#eaf4ff;color:#125f9d;border-color:#bad9f7}
.promotion-delivery-badge.expired,.promotion-delivery-badge.disabled{background:#f2f4f7;color:#697386;border-color:#d9dfe7}
.promotion-delivery-badge.missing_media,.promotion-delivery-badge.invalid_window{background:#fff0ed;color:#a83d2e;border-color:#f3c4bc}
.promotion-delivery-note{margin:7px 0 9px!important;padding:8px 9px;border-radius:10px;background:#f7faff;color:#5c6e84!important;border:1px solid #e3edf8;font-size:11px!important;line-height:1.4}
.promotion-delivery-note.live{background:#f1fbf6;color:#376d55!important;border-color:#d8efe3}
.promotion-delivery-note.missing_media,.promotion-delivery-note.invalid_window{background:#fff7f5;color:#8d4b40!important;border-color:#f4d7d0}
.public-promotion-image-fallback{position:absolute;inset:0;display:none;align-items:center;justify-content:center;text-align:center;padding:24px;color:#64758b;font-size:12px;font-weight:800;letter-spacing:.01em;background:linear-gradient(145deg,#eef5fc,#fafcff)}
.public-promotion-media.image-error>img{opacity:0}
.public-promotion-media.image-error .public-promotion-image-fallback{display:flex}


/* ===== PUSKANAS v0.10.60 — compact Executive Analytics demographics + edge-safe tooltip ===== */
.analytics-demographic-grid{align-items:start!important}
.analytics-demographic-panel{overflow:hidden!important;padding:15px 16px!important}
.analytics-demographic-panel .analytics-panel-head{align-items:center!important;margin-bottom:8px!important;gap:10px!important}
.analytics-demographic-panel .analytics-panel-head h3{font-size:16px!important;line-height:1.2!important;margin:2px 0 0!important}
.analytics-demographic-panel .analytics-panel-head>small{font-size:10px!important;white-space:nowrap}
.analytics-demographic-panel .analytics-eyebrow{font-size:9px!important;letter-spacing:.12em!important}
.demographic-bars{display:grid!important;grid-template-columns:minmax(0,1fr);gap:7px!important;margin-top:0!important}
.analytics-demographic-grade .demographic-bars{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.demographic-row{display:grid!important;gap:4px!important;padding:6px 8px!important;border:1px solid #edf2f7;border-radius:10px!important;background:#fbfdff;min-width:0;transition:border-color .16s ease,background .16s ease,transform .16s ease!important}
.demographic-row:hover{background:#f5f9ff!important;border-color:#dce9f8;transform:translateY(-1px)!important}
.demographic-row-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;min-width:0}
.demographic-label{font-size:11px!important;font-weight:800!important;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#213a59}
.demographic-value{display:inline-flex!important;align-items:baseline!important;gap:5px!important;flex:0 0 auto;white-space:nowrap}
.demographic-value b{font-size:12px!important;line-height:1!important;color:#0b345f}
.demographic-value small{font-size:9px!important;line-height:1!important;color:#7a889b!important}
.demographic-track{height:5px!important;border-radius:999px!important;background:#e8eff8!important;overflow:hidden!important}
.demographic-track i{display:block!important;height:100%!important;min-width:3%!important;border-radius:inherit!important;background:linear-gradient(90deg,#0e65d8,#35a5ff)!important;transition:width .4s ease!important}
.analytics-demographic-empty{padding:10px 12px!important;font-size:11px!important}
.analytics-hover-tooltip{max-width:min(280px,calc(100vw - 24px))!important;transform:none!important;animation:analyticsTipInV0161 .12s ease both!important;will-change:left,top,opacity}
@keyframes analyticsTipInV0161{from{opacity:0}to{opacity:1}}
@media(max-width:520px){
  .analytics-demographic-grade .demographic-bars{grid-template-columns:minmax(0,1fr)!important}
  .analytics-demographic-panel{padding:13px 14px!important}
}


/* v0160: Executive Analytics demographic refresh */
.analytics-demographic-grid{align-items:start!important}
.analytics-demographic-panel{padding:16px 18px!important;overflow:hidden!important}
.analytics-demographic-panel .analytics-panel-head{align-items:center!important;margin-bottom:10px!important;gap:10px!important}
.analytics-demographic-panel .analytics-panel-head h3{font-size:16px!important;line-height:1.2!important;margin:2px 0 0!important}
.analytics-demographic-panel .analytics-panel-head>small{font-size:10px!important;white-space:nowrap}
.analytics-demographic-panel .analytics-eyebrow{font-size:9px!important;letter-spacing:.12em!important}
.demographic-vertical-chart{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end;min-height:190px;padding-top:4px}
.demographic-vertical-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 10px 4px;border-radius:14px;background:#fbfdff;border:1px solid #e7eef8;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.demographic-vertical-item:hover{transform:translateY(-2px);background:#f5f9ff;box-shadow:0 10px 22px rgba(8,117,237,.08)}
.demographic-vertical-meta{display:flex;flex-direction:column;align-items:center;line-height:1.1;gap:3px}
.demographic-vertical-meta b{font-size:20px;color:#062b57;letter-spacing:-.03em}
.demographic-vertical-meta small{font-size:11px;color:var(--muted)}
.demographic-vertical-bar{width:100%;height:108px;display:flex;align-items:flex-end;justify-content:center;padding:0 8px}
.demographic-vertical-bar i{display:block;width:min(76px,100%);height:24%;min-height:16%;border-radius:14px 14px 8px 8px;background:linear-gradient(180deg,#53b8ff 0%,#0875ed 100%);box-shadow:0 10px 18px rgba(8,117,237,.16);transition:height .45s ease}
.demographic-vertical-label{font-weight:800;color:#173153;font-size:14px}
.analytics-grade-list{display:grid;gap:10px;margin-top:4px}
.analytics-grade-row{grid-template-columns:140px minmax(0,1fr) 92px!important;gap:12px!important;margin:0!important;padding:0!important}
.analytics-grade-row span{font-weight:700;color:#173153}
.analytics-grade-row b{font-size:13px;color:#062b57;text-align:right;line-height:1.1}
.analytics-grade-row b small{display:block;color:var(--muted);font-size:10px;font-weight:700;margin-top:2px}
.analytics-grade-row .bar{height:10px;background:#e8eff8}
.analytics-grade-row .bar i{background:linear-gradient(90deg,#0875ed,#4db7ff)}
.analytics-hover-tooltip{max-width:min(280px,calc(100vw - 24px))!important;transform:none!important;animation:analyticsTipInV0161 .12s ease both!important;will-change:left,top,opacity}
@keyframes analyticsTipInV0161{from{opacity:0}to{opacity:1}}
@media(max-width:980px){
  .analytics-demographic-grid{grid-template-columns:1fr!important}
}
@media(max-width:680px){
  .demographic-vertical-chart{gap:10px;min-height:210px}
  .demographic-vertical-meta b{font-size:20px}
  .analytics-grade-row{grid-template-columns:95px minmax(90px,1fr) 70px!important;gap:8px!important}
}

/* ===== PUSKANAS v0.10.61 — Executive Analytics equal-height demographic row ===== */
/* Desktop: kedua panel pada baris demografi selalu mengisi tinggi track yang sama. */
.analytics-demographic-grid{align-items:stretch!important}
.analytics-demographic-panel{display:flex!important;flex-direction:column!important;height:100%!important}
.analytics-demographic-level .demographic-vertical-chart{
  flex:1 1 auto;
  min-height:0;
  height:100%;
  align-items:stretch;
  gap:12px;
  padding-top:6px;
}
.analytics-demographic-level .demographic-vertical-item{
  height:100%;
  min-height:0;
  padding:10px 12px 8px;
}
.analytics-demographic-level .demographic-vertical-bar{
  flex:1 1 auto;
  min-height:168px;
  height:auto;
  padding:10px 8px 0;
}
.analytics-demographic-level .demographic-vertical-label{margin-top:6px}
@media(max-width:980px){
  /* Setelah panel ditumpuk, jangan memaksakan tinggi dari panel saudara. */
  .analytics-demographic-panel{height:auto!important}
  .analytics-demographic-level .demographic-vertical-chart{height:auto;min-height:210px}
  .analytics-demographic-level .demographic-vertical-item{height:auto;min-height:210px}
  .analytics-demographic-level .demographic-vertical-bar{min-height:132px}
}
@media(max-width:680px){
  .analytics-demographic-level .demographic-vertical-chart{min-height:190px}
  .analytics-demographic-level .demographic-vertical-item{min-height:190px}
  .analytics-demographic-level .demographic-vertical-bar{min-height:118px}
}

/* v0.10.63 Marketing Quiz Voucher */
.marketing-quiz-invite{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:0 0 14px;border:1px solid #b7d8ff;border-radius:16px;background:linear-gradient(135deg,#eef7ff,#f8fbff)}.marketing-quiz-invite>div{display:grid;gap:3px}.marketing-quiz-invite b{font-size:15px}.marketing-quiz-invite small{color:var(--muted)}
.voucher-input-row{display:grid;grid-template-columns:1fr auto;gap:8px}.voucher-status.ok{color:#087a4c}.voucher-status.bad{color:#c33434}
.marketing-quiz-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:18px}.marketing-quiz-backdrop{position:absolute;inset:0;background:rgba(7,19,40,.64);backdrop-filter:blur(4px)}.marketing-quiz-card{position:relative;width:min(620px,100%);max-height:min(760px,92vh);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 28px 80px rgba(0,0,0,.28);padding:22px}.marketing-quiz-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:24px}.marketing-quiz-head{padding-right:44px}.marketing-quiz-head h3{margin:6px 0 10px}.marketing-quiz-head>div{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.marketing-quiz-body h4{font-size:18px;line-height:1.5;margin:22px 0 14px}.marketing-quiz-options{display:grid;gap:10px}.marketing-quiz-option{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;width:100%;text-align:left;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.marketing-quiz-option b{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#edf4ff}.marketing-quiz-option.selected{border-color:#1686ed;background:#f0f8ff}.marketing-quiz-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.marketing-quiz-result{text-align:center;display:grid;gap:14px;justify-items:center;padding:24px 10px}.marketing-quiz-result code{font-size:22px;font-weight:800;letter-spacing:1px;padding:12px 16px;background:#eef6ff;border-radius:12px;color:#0759a8}.marketing-quiz-trophy{font-size:46px;color:#f3a400}.marketing-quiz-admin .table small{white-space:normal}.marketing-quiz-settings{align-items:end}
@media(max-width:640px){.marketing-quiz-invite{align-items:flex-start;flex-direction:column}.marketing-quiz-invite .btn{width:100%}.marketing-quiz-card{padding:18px;border-radius:18px}.voucher-input-row{grid-template-columns:1fr}.voucher-input-row .btn{width:100%}}

/* ===== v0.10.63 compact Maintenance + Quiz Voucher admin ===== */
.btn-sm{min-height:32px!important;padding:6px 10px!important;border-radius:9px!important;font-size:12px!important}
.ok-text{color:#07875b!important}.danger-text{color:#c33434!important}

/* Maintenance: ringkas, dua pekerjaan utama berdampingan, reset dilipat secara default. */
.maintenance-status-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}
.maintenance-status-strip>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 13px;border:1px solid var(--line);border-radius:13px;background:#fff}
.maintenance-status-strip small{font-size:10px;font-weight:850;letter-spacing:.08em;color:var(--muted)}
.maintenance-status-strip b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.maintenance-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.maintenance-card-compact{padding:15px!important;border-radius:16px!important;box-shadow:0 5px 18px rgba(16,24,40,.035)!important}
.maintenance-card-compact.update-package-card{grid-column:auto!important;background:linear-gradient(145deg,#f8fcff,#fff)!important}
.maintenance-mini-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}
.maintenance-mini-head h3{margin:2px 0 0!important;font-size:18px;line-height:1.2}
.maintenance-card-compact>p{margin:0 0 10px!important;font-size:12.5px;line-height:1.45!important}
.maintenance-chip{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.06em;white-space:nowrap}
.maintenance-chip.good{background:#eafaf4;color:#087a4c}.maintenance-chip.warn{background:#fff4df;color:#9a5a00}
.maintenance-compact-form{display:grid;gap:9px;margin-top:8px}
.maintenance-compact-fields{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(180px,.75fr);gap:9px;align-items:start}
.maintenance-compact-fields-3{grid-template-columns:minmax(0,1.15fr) minmax(160px,.75fr) minmax(150px,.55fr)}
.maintenance-compact-fields label,.maintenance-reset-fields label{display:grid;gap:5px;min-width:0;font-size:11px;font-weight:800;color:#334155}
.maintenance-compact-fields .input,.maintenance-reset-fields .input{min-height:38px!important;height:38px;padding-top:7px!important;padding-bottom:7px!important;font-size:13px}
.maintenance-compact-fields small{font-size:10px;font-weight:500;color:var(--muted)}
.maintenance-compact-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:1px}
.maintenance-compact-actions small{font-size:10.5px;color:var(--muted);line-height:1.35}
.maintenance-compact-actions .btn{min-width:128px;min-height:36px;padding:7px 12px}
.maintenance-utility-grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:12px;margin-top:12px;align-items:start}
.maintenance-utility-card{min-height:96px;padding:14px 15px!important;border-radius:16px!important;display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:14px}
.maintenance-utility-card h3,.maintenance-reset-details h3{margin:2px 0 3px!important;font-size:16px}.maintenance-utility-card p,.maintenance-reset-details p{margin:0!important;font-size:11.5px!important;line-height:1.4!important}
.maintenance-utility-card .btn{flex:0 0 auto;min-height:36px}
.maintenance-reset-details{padding:0!important;border-radius:16px!important;overflow:hidden;display:block!important}
.maintenance-reset-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;list-style:none}.maintenance-reset-details>summary::-webkit-details-marker{display:none}
.maintenance-expand-hint{flex:0 0 auto;padding:5px 9px;border:1px solid #fecaca;border-radius:999px;background:#fff;color:#b42318;font-size:10px;font-weight:850}
.maintenance-reset-details[open] .maintenance-expand-hint{font-size:0}.maintenance-reset-details[open] .maintenance-expand-hint:after{content:'Tutup';font-size:10px}
.maintenance-reset-body{display:grid;gap:9px;padding:0 15px 14px;border-top:1px solid #fee2e2}
.maintenance-reset-body>.notice{margin-top:10px}
.maintenance-reset-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}

/* Quiz Voucher Admin: settings satu baris, statistik jadi chip, bank soal memakai viewport lokal. */
.marketing-quiz-admin-compact{padding:16px!important;border-radius:17px!important}
.marketing-quiz-compact-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}
.marketing-quiz-compact-head>div:first-child{min-width:0}
.marketing-quiz-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.marketing-quiz-title-row h3{margin:2px 0 0;font-size:19px;line-height:1.2}
.marketing-quiz-compact-head p{margin:3px 0 0;font-size:11.5px;color:var(--muted)}
.marketing-quiz-stats{display:flex;gap:7px;flex:0 0 auto}.marketing-quiz-stats span{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;font-size:10.5px;color:var(--muted)}.marketing-quiz-stats b{color:var(--text);font-size:12px}
.marketing-quiz-settings-compact{display:grid;grid-template-columns:minmax(145px,.95fr) minmax(105px,.58fr) minmax(110px,.62fr) minmax(120px,.72fr) minmax(95px,.52fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid #dbe7f5;border-radius:13px;background:#f8fbff}
.marketing-quiz-settings-compact>label{display:grid;gap:4px;min-width:0;font-size:10.5px;font-weight:850;color:#42526a}.marketing-quiz-settings-compact .input{height:36px;min-height:36px;padding:6px 9px;font-size:12px}.marketing-quiz-settings-compact small{font-size:9px;font-weight:600;color:var(--muted);margin-top:-2px}
.marketing-quiz-toggle-card{align-self:stretch!important;display:flex!important;flex-direction:column;justify-content:space-between;padding:0!important}.marketing-quiz-toggle-card .earlybird-toggle{min-height:36px;display:flex;align-items:center;padding:5px 8px;border:1px solid var(--line);border-radius:10px;background:#fff}
.marketing-quiz-save{min-height:36px!important;padding:7px 13px!important;white-space:nowrap}
.marketing-quiz-bank-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:11px 0 6px}.marketing-quiz-bank-head>div{display:flex;align-items:baseline;gap:9px;min-width:0}.marketing-quiz-bank-head h4{margin:0;font-size:15px}.marketing-quiz-bank-head span{font-size:10.5px;color:var(--muted)}
.marketing-quiz-table-wrap{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:12px}.marketing-quiz-table{margin:0}.marketing-quiz-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc}.marketing-quiz-table th,.marketing-quiz-table td{padding:8px 9px!important;vertical-align:middle}.marketing-quiz-table th{font-size:10.5px}.marketing-quiz-table td{font-size:12px}
.marketing-quiz-table th:nth-child(1),.marketing-quiz-table td:nth-child(1){width:42px}.marketing-quiz-table th:nth-child(3),.marketing-quiz-table td:nth-child(3),.marketing-quiz-table th:nth-child(4),.marketing-quiz-table td:nth-child(4){width:64px;text-align:center}.marketing-quiz-table th:nth-child(5),.marketing-quiz-table td:nth-child(5){width:92px}.marketing-quiz-table th:nth-child(6),.marketing-quiz-table td:nth-child(6){width:120px}
.mq-question-copy{display:grid;gap:2px;min-width:0;max-width:720px}.mq-question-copy b,.mq-question-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mq-question-copy small{font-size:10px;color:var(--muted)}.mq-actions{flex-wrap:nowrap!important;gap:5px!important}

@media(max-width:1180px){.marketing-quiz-settings-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.marketing-quiz-save{width:100%}.maintenance-compact-fields-3{grid-template-columns:1fr 1fr}.maintenance-compact-fields-3>label:first-child{grid-column:1/-1}}
@media(max-width:900px){.maintenance-status-strip{grid-template-columns:1fr 1fr 1fr}.maintenance-compact-grid,.maintenance-utility-grid{grid-template-columns:1fr}.maintenance-compact-fields,.maintenance-compact-fields-3{grid-template-columns:1fr 1fr}.maintenance-compact-fields-3>label:first-child{grid-column:1/-1}.marketing-quiz-settings-compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.maintenance-status-strip{grid-template-columns:1fr}.maintenance-status-strip>div{padding:8px 10px}.maintenance-compact-fields,.maintenance-compact-fields-3,.maintenance-reset-fields{grid-template-columns:1fr}.maintenance-compact-fields-3>label:first-child{grid-column:auto}.maintenance-compact-actions{align-items:stretch;flex-direction:column}.maintenance-compact-actions .btn{width:100%}.maintenance-utility-card{align-items:stretch;flex-direction:column}.maintenance-utility-card .btn{width:100%}.marketing-quiz-compact-head{align-items:flex-start;flex-direction:column}.marketing-quiz-stats{width:100%;flex-wrap:wrap}.marketing-quiz-settings-compact{grid-template-columns:1fr}.marketing-quiz-bank-head{align-items:flex-start}.marketing-quiz-table-wrap{max-height:320px}.marketing-quiz-table{min-width:720px}}
.marketing-quiz-admin-compact .mq-question-copy b,.marketing-quiz-admin-compact .mq-question-copy small{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* ===== v0.10.65 Event controls + Maintenance layout hardening ===== */
.ui-switch{position:relative;display:inline-flex;align-items:center;gap:7px;min-width:0;cursor:pointer;user-select:none;vertical-align:middle}
.ui-switch input{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}
.ui-switch-track{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 42px;border:1px solid #cbd5e1;border-radius:999px;background:#dbe3ee;box-shadow:inset 0 1px 2px rgba(15,23,42,.08);transition:background .18s ease,border-color .18s ease}
.ui-switch-track i{position:absolute;left:2px;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(15,23,42,.22);transition:transform .18s ease}
.ui-switch input:checked + .ui-switch-track{background:#0b79e6;border-color:#0b79e6}
.ui-switch input:checked + .ui-switch-track i{transform:translateX(18px)}
.ui-switch input:focus-visible + .ui-switch-track{outline:3px solid rgba(11,121,230,.22);outline-offset:2px}
.ui-switch-state{display:inline-flex;align-items:center;justify-content:center;min-width:24px;font-size:9px;font-weight:900;letter-spacing:.05em;color:#667085}
.ui-switch-state:before{content:'OFF'}
.ui-switch input:checked ~ .ui-switch-state{color:#087a4c}.ui-switch input:checked ~ .ui-switch-state:before{content:'ON'}
.ui-switch-small .ui-switch-track{width:38px;height:22px;flex-basis:38px}.ui-switch-small .ui-switch-track i{width:16px;height:16px}.ui-switch-small input:checked + .ui-switch-track i{transform:translateX(16px)}
.earlybird-admin-head .earlybird-switch{flex:0 0 auto;margin-left:auto}.earlybird-admin-head{align-items:flex-start}.earlybird-admin-head>div{min-width:0}

/* Quiz Voucher: switch lives in the title; settings are a single aligned control row. */
.marketing-quiz-admin-v4{padding:15px!important}
.marketing-quiz-admin-v4 .marketing-quiz-compact-head{margin-bottom:9px;align-items:center}
.marketing-quiz-admin-v4 .marketing-quiz-title-row{gap:10px;flex-wrap:nowrap}
.marketing-quiz-admin-v4 .marketing-quiz-title-row h3{min-width:0}
.marketing-quiz-switch{flex:0 0 auto}
.marketing-quiz-settings-v4{grid-template-columns:minmax(105px,.68fr) minmax(110px,.7fr) minmax(140px,.95fr) minmax(110px,.7fr) auto!important;gap:8px!important;align-items:end!important;padding:9px 10px!important}
.marketing-quiz-settings-v4>label{display:grid!important;grid-template-rows:auto 36px!important;gap:4px!important;align-items:end!important;margin:0!important;min-width:0}
.marketing-quiz-settings-v4>label>.input{height:36px!important;min-height:36px!important;width:100%!important;min-width:0!important}
.marketing-quiz-settings-v4 .marketing-quiz-save{height:36px!important;min-height:36px!important;align-self:end!important;margin:0!important;padding:7px 14px!important}

/* Maintenance: one full-width operation per row prevents native file controls/buttons from colliding. */
.maintenance-status-strip-v4{margin-bottom:10px!important;gap:8px!important}.maintenance-status-strip-v4>div{padding:8px 11px!important;min-height:42px}.maintenance-status-strip-v4 small{font-size:9px!important}.maintenance-status-strip-v4 b{font-size:13px!important}
.maintenance-ops-v4{display:grid;gap:10px}
.maintenance-op-v4{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1.58fr);grid-template-areas:'info form' 'note note';gap:8px 16px;align-items:end;padding:13px 15px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 4px 15px rgba(16,24,40,.03);min-width:0}
.maintenance-op-v4.danger{border-color:#fecaca;background:#fffafa}
.maintenance-op-info{grid-area:info;min-width:0;align-self:center}.maintenance-op-info h3{margin:3px 0 3px;font-size:17px;line-height:1.2}.maintenance-op-info p{margin:0;color:var(--muted);font-size:11px;line-height:1.4;max-width:420px}
.maintenance-op-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.maintenance-op-title .micro-label{min-width:0}
.maintenance-op-form{grid-area:form;display:grid;gap:8px;align-items:end;min-width:0}
.maintenance-op-form-update{grid-template-columns:minmax(260px,1.35fr) minmax(190px,.65fr) auto}
.maintenance-op-form-rollback{grid-template-columns:minmax(240px,1.18fr) minmax(180px,.7fr) minmax(150px,.56fr) auto}
.maintenance-op-form label{display:grid;grid-template-rows:auto 38px;gap:4px;min-width:0;margin:0;color:#334155;font-size:10.5px;font-weight:850}
.maintenance-op-form label>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.maintenance-op-form .input{width:100%!important;min-width:0!important;height:38px!important;min-height:38px!important;padding:6px 9px!important;font-size:12px!important}
.maintenance-op-form .maintenance-file-input{overflow:hidden!important;padding:5px 7px!important;line-height:1.1!important}
.maintenance-op-form .maintenance-file-input::file-selector-button{height:28px;min-height:28px;margin-right:8px;padding:4px 9px;border:0;border-radius:8px;background:#eaf4ff;color:#075fc6;font-size:11px;font-weight:850;cursor:pointer}
.maintenance-op-form>.btn{height:38px!important;min-height:38px!important;padding:7px 13px!important;white-space:nowrap;align-self:end}
.maintenance-op-note{grid-area:note;color:var(--muted);font-size:9.5px;line-height:1.35;margin-top:0}.maintenance-op-note b{color:#475467}
.maintenance-bottom-v4{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:10px;margin-top:10px;align-items:start}
.maintenance-mini-action-v4,.maintenance-reset-v4{border:1px solid var(--line);border-radius:15px;background:#fff;min-width:0}
.maintenance-mini-action-v4{min-height:78px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.maintenance-mini-action-v4>div{display:grid;gap:2px;min-width:0}.maintenance-mini-action-v4 b,.maintenance-reset-v4 summary b{font-size:14px}.maintenance-mini-action-v4 small,.maintenance-reset-v4 summary small{font-size:10px;color:var(--muted);line-height:1.35}.maintenance-mini-action-v4 .btn{flex:0 0 auto;min-height:34px;padding:6px 11px}
.maintenance-reset-v4{overflow:hidden;border-color:#fecaca;background:#fffafa}.maintenance-reset-v4>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;cursor:pointer;list-style:none;min-height:78px}.maintenance-reset-v4>summary::-webkit-details-marker{display:none}.maintenance-reset-v4>summary>div{display:grid;gap:2px;min-width:0}.maintenance-reset-v4[open] .maintenance-expand-hint{font-size:0}.maintenance-reset-v4[open] .maintenance-expand-hint:after{content:'Tutup';font-size:10px}
.maintenance-reset-body-v4{display:grid;gap:9px;padding:10px 14px 13px;border-top:1px solid #fee2e2}.maintenance-reset-fields-v4{display:grid;grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto;gap:8px;align-items:end}.maintenance-reset-fields-v4 label{display:grid;gap:4px;min-width:0;font-size:10.5px;font-weight:850}.maintenance-reset-fields-v4 .input{height:38px!important;min-height:38px!important}.maintenance-reset-fields-v4>.btn{height:38px!important;min-height:38px!important;white-space:nowrap}

@media(max-width:1250px){
  .maintenance-op-v4{grid-template-columns:1fr;grid-template-areas:'info' 'form' 'note';align-items:stretch}.maintenance-op-info p{max-width:none}
  .maintenance-op-form-update{grid-template-columns:minmax(0,1fr) minmax(190px,.62fr) auto}.maintenance-op-form-rollback{grid-template-columns:minmax(0,1.1fr) minmax(170px,.62fr) minmax(150px,.54fr) auto}
}
@media(max-width:980px){
  .marketing-quiz-settings-v4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.marketing-quiz-settings-v4 .marketing-quiz-save{width:100%}
  .maintenance-op-form-update,.maintenance-op-form-rollback{grid-template-columns:1fr 1fr}.maintenance-op-form>.btn{width:100%}.maintenance-op-form-rollback>label:first-child{grid-column:1/-1}.maintenance-bottom-v4{grid-template-columns:1fr}
}
@media(max-width:640px){
  .marketing-quiz-admin-v4 .marketing-quiz-title-row{align-items:center;flex-wrap:wrap}.marketing-quiz-settings-v4{grid-template-columns:1fr!important}.marketing-quiz-switch{margin-left:0}
  .earlybird-admin-head{flex-direction:row!important;align-items:flex-start!important}.earlybird-admin-head .earlybird-switch{align-self:flex-start!important}
  .maintenance-op-v4{padding:12px}.maintenance-op-form-update,.maintenance-op-form-rollback,.maintenance-reset-fields-v4{grid-template-columns:1fr}.maintenance-op-form-rollback>label:first-child{grid-column:auto}.maintenance-op-form>.btn,.maintenance-reset-fields-v4>.btn{width:100%}.maintenance-mini-action-v4{align-items:stretch;flex-direction:column}.maintenance-mini-action-v4 .btn{width:100%}
}

/* ===== v0.10.65 Quiz one-shot feedback + discount attribution ===== */
.marketing-quiz-scoreline{display:grid!important;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.marketing-quiz-scoreline b{color:#075fc6;font-size:15px}.marketing-quiz-scoreline small{font-size:11px;color:var(--muted)}
.marketing-quiz-question-meta{display:inline-flex;margin-top:14px;padding:5px 9px;border-radius:999px;background:#eef6ff;color:#075fc6;font-size:11px;font-weight:800}.marketing-quiz-point-flash{height:0;opacity:0;transform:translateY(-4px);font-size:13px;font-weight:900;transition:.18s ease}.marketing-quiz-point-flash.show{height:26px;opacity:1;transform:none;margin-top:8px}.marketing-quiz-point-flash.good{color:#0b8f55}.marketing-quiz-point-flash.bad{color:#d12b36}
.marketing-quiz-option.locked-correct{border-color:#86d6b0;background:#effbf5;color:#0a6c43}.marketing-quiz-option.locked-correct b{background:#d8f4e7;color:#0a6c43}.marketing-quiz-option.locked-wrong{border-color:#f0a5ab;background:#fff1f2;color:#b51f2b}.marketing-quiz-option.locked-wrong b{background:#ffdadd;color:#b51f2b}.marketing-quiz-option.locked-other{opacity:.58}.marketing-quiz-option:disabled{cursor:not-allowed}.marketing-quiz-actions>small{align-self:center;color:var(--muted);font-size:11px;max-width:280px}.marketing-quiz-fail-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#fff0f1;color:#c72834;font-size:34px;font-weight:900}
.participant-price-cell{display:grid;gap:3px;min-width:150px}.participant-price-cell>b{font-size:13px}.participant-price-cell small{font-size:10px;color:var(--muted)}.participant-discount-tags{display:flex;gap:4px;flex-wrap:wrap}.participant-discount-tags span{display:inline-flex;padding:3px 6px;border-radius:999px;background:#eef7ff;color:#075fc6;font-size:9.5px;font-weight:800}
.analytics-discount-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}.analytics-discount-strip span{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fbff;font-size:11px;color:var(--muted)}.analytics-discount-strip b{font-size:10px;color:var(--text);text-transform:uppercase;letter-spacing:.03em}
@media(max-width:760px){.marketing-quiz-scoreline{grid-template-columns:1fr auto}.marketing-quiz-scoreline small{grid-column:1/-1}.marketing-quiz-actions{align-items:stretch;flex-direction:column}.marketing-quiz-actions>small{max-width:none}.analytics-discount-strip{grid-template-columns:1fr}.participant-price-cell{min-width:125px}}

/* ===== v0.10.67 Admin responsive action/table hardening ===== */
.app-shell,.app-main,.content,.content>*,.panel,.card,.form-card,.table-wrap{min-width:0}
.app-shell .content{max-width:100%;overflow-x:hidden}
.app-shell .panel,.app-shell .card,.app-shell .notice,.app-shell .page-head,.app-shell .field{overflow-wrap:anywhere}
.app-shell .table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.app-shell .admin-responsive-table{width:100%;max-width:100%}
.app-shell .admin-responsive-table th,.app-shell .admin-responsive-table td{min-width:0}
.app-shell .admin-responsive-table td{overflow-wrap:anywhere;word-break:normal}
.app-shell .admin-responsive-table td small{display:inline-block;max-width:100%;line-height:1.4;overflow-wrap:anywhere}
.app-shell .table-action-head,.app-shell .table-action-cell{white-space:nowrap;width:1%}
.app-shell .table-action-cell .table-action-group{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:nowrap!important;max-width:none}
.app-shell .table-action-cell .btn,.app-shell .table-action-cell a.btn{flex:0 0 auto;min-height:36px;padding:7px 10px;border-radius:10px;font-size:12px;line-height:1.05}
.app-shell .table-action-cell .detail-icon-btn{width:36px!important;min-width:36px!important;padding:0!important}
.app-shell .table-action-cell>button.btn,.app-shell .table-action-cell>a.btn{margin-right:5px;vertical-align:middle}
.app-shell .table-action-cell>button.btn:last-child,.app-shell .table-action-cell>a.btn:last-child{margin-right:0}

/* Payments: reserve a real action column so review notes never squeeze actions downward. */
.app-shell .payments-admin-table{min-width:980px;table-layout:fixed}
.app-shell .payments-admin-table th:nth-child(1),.app-shell .payments-admin-table td:nth-child(1){width:190px}
.app-shell .payments-admin-table th:nth-child(2),.app-shell .payments-admin-table td:nth-child(2){width:250px}
.app-shell .payments-admin-table th:nth-child(3),.app-shell .payments-admin-table td:nth-child(3){width:150px}
.app-shell .payments-admin-table th:nth-child(5),.app-shell .payments-admin-table td:nth-child(5){width:184px;min-width:184px}
.app-shell .payment-status-cell{white-space:normal!important;line-height:1.35;vertical-align:middle}
.app-shell .payment-status-cell small{display:block;margin-top:5px;max-width:100%;line-height:1.45;color:#667085}
.app-shell .payment-row-actions{display:flex!important;flex-wrap:nowrap!important;gap:6px!important;align-items:center!important}
.app-shell .payment-row-actions .btn{min-width:0!important}

/* Common admin controls keep their shape before switching to the mobile card layout. */
.app-shell .page-actions{min-width:0;max-width:100%}
.app-shell .page-actions .btn,.app-shell .page-actions a.btn{max-width:100%}
.app-shell .list-tools>*{min-width:0}
.app-shell code{overflow-wrap:anywhere;word-break:break-word}
.admin-notification-panel{max-width:min(390px,calc(100vw - 24px))}

@media(max-width:1280px){
  .app-shell .content{padding:18px!important}
  .app-shell .table th,.app-shell .table td{padding:10px 11px;font-size:12px}
  .app-shell .table-action-cell .btn,.app-shell .table-action-cell a.btn{min-height:34px;padding:6px 9px;font-size:11px}
  .app-shell .payments-admin-table{min-width:920px}
  .app-shell .payments-admin-table th:nth-child(1),.app-shell .payments-admin-table td:nth-child(1){width:175px}
  .app-shell .payments-admin-table th:nth-child(2),.app-shell .payments-admin-table td:nth-child(2){width:225px}
  .app-shell .payments-admin-table th:nth-child(3),.app-shell .payments-admin-table td:nth-child(3){width:145px}
  .app-shell .payments-admin-table th:nth-child(5),.app-shell .payments-admin-table td:nth-child(5){width:170px;min-width:170px}
}
@media(max-width:1100px){
  .app-header #adminName{display:none!important}
  .app-header .right{gap:7px!important}
  .app-header .right>.btn{padding-inline:12px}
  .app-shell .page-head{flex-wrap:wrap}
  .app-shell .page-actions{margin-left:0;flex:1 1 100%}
}
@media(max-width:900px){
  .app-shell .content{padding:14px!important}
  .app-shell .panel,.app-shell .card,.app-shell .form-card{max-width:100%}
  .app-header .right{min-width:0;flex-wrap:wrap;justify-content:flex-end}
  .app-header .right .live-pill{flex:0 0 auto}
  .app-shell .page-actions{display:flex!important;gap:7px!important}
  .app-shell .page-actions>*{flex:1 1 150px;min-width:0}
  .app-shell .page-actions .btn,.app-shell .page-actions a.btn{width:100%;white-space:normal;text-align:center}
}

/* On phones, admin data tables become labelled cards. This removes horizontal clipping entirely. */
@media(max-width:720px){
  .app-shell .table-wrap{overflow:visible;border:0;background:transparent;border-radius:0}
  .app-shell .admin-responsive-table{display:block!important;min-width:0!important;width:100%!important;table-layout:auto!important;border-collapse:separate!important}
  .app-shell .admin-responsive-table thead{display:none!important}
  .app-shell .admin-responsive-table tbody{display:grid!important;gap:10px;width:100%}
  .app-shell .admin-responsive-table tbody tr{display:block!important;width:100%;min-width:0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 3px 12px rgba(16,24,40,.025)}
  .app-shell .admin-responsive-table tbody td{display:block!important;width:100%!important;min-width:0!important;max-width:none!important;padding:9px 11px!important;border-bottom:1px solid #eef1f5!important;white-space:normal!important;text-align:left!important;position:relative!important;background:transparent!important;overflow-wrap:anywhere!important}
  .app-shell .admin-responsive-table tbody td:last-child{border-bottom:0!important}
  .app-shell .admin-responsive-table tbody td[data-label]:before{content:attr(data-label);display:block;margin:0 0 4px;color:#667085;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
  .app-shell .admin-responsive-table tbody td[colspan]{padding:13px!important}
  .app-shell .admin-responsive-table tbody td[colspan]:before{display:none!important}
  .app-shell .table-action-cell{white-space:normal!important}
  .app-shell .table-action-cell .table-action-group{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px!important;width:100%;max-width:100%;white-space:normal!important}
  .app-shell .table-action-cell .table-action-group .btn,.app-shell .table-action-cell .table-action-group a.btn{width:100%;min-width:0!important;min-height:38px;white-space:normal;text-align:center;padding:7px 8px}
  .app-shell .table-action-cell>button.btn,.app-shell .table-action-cell>a.btn{margin:3px 4px 3px 0;white-space:normal;max-width:100%}
  .app-shell .payment-status-cell small{margin-top:4px}
  .app-shell .payments-admin-table{min-width:0!important}
  .app-shell .payments-admin-table th,.app-shell .payments-admin-table td{width:auto!important;min-width:0!important}
  .app-shell .payment-row-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%}
  .app-shell .page-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}
  .app-shell .page-actions>*{width:100%!important;min-width:0!important}
  .app-shell .list-tools{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .app-shell .list-search,.app-shell .list-filter,.app-shell .list-tools>.btn,.app-shell .list-tools>select{width:100%!important;min-width:0!important}
  .app-shell .bar-row{grid-template-columns:minmax(80px,105px) minmax(0,1fr) 54px!important}
}
@media(max-width:460px){
  .app-shell .content{padding:10px!important}
  .app-shell .panel,.app-shell .card,.app-shell .form-card{padding:13px!important;border-radius:14px!important}
  .app-shell .page-head h1{font-size:21px!important}
  .app-shell .page-actions{grid-template-columns:1fr!important}
  .app-shell .table-action-cell .table-action-group{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-shell .payment-row-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .app-header .right .live-pill{display:none!important}
  .admin-notification-panel{right:-72px!important;max-width:calc(100vw - 18px)!important}
}

/* v0.10.67 mobile action refinement: keep icon actions compact instead of stretching them into oversized cells. */
@media(max-width:720px){
  .app-shell .table-action-cell .table-action-group{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;width:100%;max-width:100%}
  .app-shell .table-action-cell .table-action-group .btn,.app-shell .table-action-cell .table-action-group a.btn{width:auto!important;min-width:38px!important;max-width:100%;min-height:38px;white-space:normal;text-align:center;padding:7px 10px}
  .app-shell .table-action-cell .table-action-group .crud-icon-btn{width:38px!important;min-width:38px!important;max-width:38px!important;padding:0!important}
  .app-shell .payment-row-actions{display:flex!important;flex-wrap:nowrap!important;width:auto!important}
  .app-shell .marketing-quiz-table-wrap{max-height:330px!important;overflow:auto!important;border:1px solid var(--line)!important;border-radius:13px!important;background:#fff!important}
}
@media(max-width:460px){
  .app-shell .table-action-cell .table-action-group{display:flex!important;flex-wrap:wrap!important}
  .app-shell .payment-row-actions{display:flex!important;flex-wrap:nowrap!important}
}

/* v0.10.67 - controlled registration regions + permission-pruned Admin nav */
.sidebar:not(.permissions-ready) .side-nav{visibility:hidden}
.sidebar.permissions-ready .side-nav{visibility:visible}
.side-nav button.hidden,.side-nav [data-super-only].hidden,.nav-section.hidden{display:none!important}
#province.region-locked:disabled{opacity:1;color:var(--ink);background:#eef6ff;border-color:#b8d6f7;cursor:not-allowed}
.registration-region-select:disabled{cursor:not-allowed;background:#f5f8fc;color:#7a8798}
.region-master-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1.2fr) auto;gap:10px;align-items:end;margin-bottom:12px}
.region-master-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#334155}
.region-master-form .btn{min-height:44px;white-space:nowrap}
.region-master-note{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;border:1px solid #dce8f5;border-radius:12px;background:#f8fbff;color:#53657c;font-size:12px}
.region-master-note b{color:#0b4d8a}.region-master-table{max-height:360px;overflow:auto}.region-master-table thead th{position:sticky;top:0;z-index:2;background:#f7f9fc}
@media(max-width:760px){.region-master-form{grid-template-columns:1fr}.region-master-form .btn{width:100%}}

/* ===== v0.10.68 Chat automation, message analytics, Admin action affordances ===== */
.admin-control button,.admin-control .btn,.admin-control [role="button"]{transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,background-color .16s ease,border-color .16s ease}
@media(hover:hover) and (pointer:fine){
  .admin-control button:not(:disabled):hover,.admin-control .btn:not(:disabled):hover,.admin-control [role="button"]:not([aria-disabled="true"]):hover{transform:translateY(-2px);filter:saturate(1.04);box-shadow:0 8px 18px rgba(16,24,40,.10)}
  .admin-control .side-nav button:hover,.admin-control .chat-thread-item:hover,.admin-control .notification-item:hover{box-shadow:none}
}
.admin-control button:focus-visible,.admin-control .btn:focus-visible,.admin-control [role="button"]:focus-visible{outline:3px solid rgba(79,70,229,.20);outline-offset:2px}
.admin-control .admin-icon-action{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;max-width:40px!important;padding:0!important;display:inline-grid!important;place-items:center!important;flex:0 0 40px!important;border-radius:12px!important;white-space:nowrap!important}
.admin-control .admin-action-icon{width:20px;height:20px;display:grid;place-items:center;pointer-events:none}
.admin-control .admin-action-icon svg,.admin-control .admin-icon-action>svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-button-tooltip{position:fixed;z-index:14000;left:0;top:0;max-width:min(260px,calc(100vw - 20px));padding:7px 10px;border-radius:9px;background:#111827;color:#fff;box-shadow:0 8px 24px rgba(15,23,42,.22);font-size:11px;font-weight:800;line-height:1.3;opacity:0;visibility:hidden;transform:translateY(3px);pointer-events:none;transition:opacity .12s ease,transform .12s ease;white-space:normal;text-align:center}
.admin-button-tooltip.show{opacity:1;transform:none}
.modal-card-wide{width:min(1040px,calc(100vw - 32px))!important}

/* Executive Event Analytics: conversation intelligence without overcrowding the dashboard. */
.message-analytics-panel{padding:20px!important;overflow:visible!important}
.message-analytics-head-meta{display:grid;justify-items:end;gap:2px}
.message-analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}
.message-analytics-kpis>div{display:grid;gap:4px;min-width:0;padding:13px 14px;border:1px solid #e5edf5;border-radius:14px;background:#f8fbff}
.message-analytics-kpis>div.attention{background:#fff8ec;border-color:#f5d59d}
.message-analytics-kpis small{font-size:10px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:#65758b}.message-analytics-kpis b{font-size:25px;letter-spacing:-.035em}.message-analytics-kpis span{font-size:10px;color:var(--muted)}
.message-analytics-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px}
.message-intent-card,.message-decision-card{min-width:0;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fff}
.message-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.message-section-title>div{display:grid;gap:2px}.message-section-title b{font-size:13px}.message-section-title small{font-size:10px;color:var(--muted)}
.message-peak-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eef6ff;color:#075fc6;font-size:10px;font-weight:850;white-space:nowrap}
.message-intent-list{display:grid;gap:10px}.message-intent-row{display:grid;gap:5px}.message-intent-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px}.message-intent-row>div:first-child>span{min-width:0;color:#344054;font-weight:750}.message-intent-row>div:first-child>b{white-space:nowrap;font-size:11px}.message-intent-row b small{font-weight:700;color:var(--muted)}
.message-intent-track{height:7px;border-radius:999px;background:#eef2f6;overflow:hidden}.message-intent-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#075fc6,#4f46e5)}
.message-recommendations{display:grid;gap:8px}.message-recommendation{display:grid;grid-template-columns:7px minmax(0,1fr);gap:10px;padding:10px 11px;border-radius:12px;background:#f8fafc;border:1px solid #edf0f4}.message-recommendation>span{width:7px;height:7px;margin-top:5px;border-radius:50%;background:#7690a7}.message-recommendation.high>span{background:#d92d20}.message-recommendation.medium>span{background:#d97706}.message-recommendation.low>span{background:#039855}.message-recommendation b{display:block;font-size:11.5px}.message-recommendation p{margin:3px 0 0;font-size:10.5px;line-height:1.45;color:var(--muted)}
.message-bot-usage{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.message-bot-usage>small{font-size:10px;font-weight:800;color:var(--muted)}.message-bot-usage>div{display:flex;gap:6px;flex-wrap:wrap}.message-bot-usage span{display:inline-flex;gap:4px;padding:5px 7px;border-radius:999px;background:#f3f4ff;color:#4338ca;font-size:9.5px}.message-analytics-empty{display:grid;justify-items:center;text-align:center;gap:5px;padding:24px 12px;color:var(--muted)}.message-analytics-empty>div{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eef6ff;color:#075fc6}.message-analytics-empty svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}.message-analytics-empty b{color:#344054;font-size:13px}.message-analytics-empty p{margin:0;max-width:620px;font-size:11px;line-height:1.5}

/* Chat Konfirmasi Pembayaran: bot acknowledgement + quick replies. */
.chat-bot-status{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;font-size:10.5px;font-weight:850;border:1px solid #d5dae2;background:#f8fafc;color:#667085}.chat-bot-status.on{background:#ecfdf3;border-color:#abefc6;color:#067647}.chat-bot-status svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.chat-participant-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:13px 16px;border-bottom:1px solid var(--line);background:#fff}.chat-payment-context{display:flex;justify-content:flex-end;align-items:center;gap:5px;flex-wrap:wrap;max-width:440px}.chat-payment-context>span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:9px;background:#f8fafc;border:1px solid #edf0f4;font-size:9.5px;color:#475467}.chat-payment-context .badge{padding:3px 6px;font-size:9px}
.chat-bubble.bot{align-self:flex-start;background:#f5f3ff;border:1px solid #ddd6fe;color:#4c1d95}.chat-bot-label{display:flex;align-items:center;gap:5px;margin-bottom:5px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#6d28d9}.chat-bot-label svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9}
.chat-quick-reply-bar{flex:0 0 auto;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:8px 11px;border-top:1px solid var(--line);background:#fbfcfe}.chat-quick-reply-bar>span{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:900;color:#667085;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.chat-quick-reply-bar>span svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}.chat-quick-reply-bar>div{display:flex;gap:6px;overflow-x:auto;padding:2px;scrollbar-width:thin}.chat-quick-reply{border:1px solid #dce5f0;background:#fff;color:#344054;border-radius:999px;min-height:31px;padding:6px 10px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer;font-size:10px;font-weight:800}.chat-quick-reply:hover{border-color:#a9c9ec;background:#eef6ff;color:#075fc6}.chat-quick-reply small{padding:2px 5px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8.5px}

.chat-automation-form{display:grid;gap:14px}.chat-automation-master{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border:1px solid #cfe1f4;border-radius:15px;background:#f7fbff}.chat-automation-master h3,.chat-quick-editor-title h3{margin:2px 0 3px}.chat-automation-master p,.chat-quick-editor-title p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.chat-automation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chat-automation-card{display:grid;align-content:start;gap:9px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.chat-automation-card>label{display:grid;gap:6px;font-size:10.5px;font-weight:800;color:#475467}.chat-automation-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.chat-automation-card-head>div{display:flex;gap:8px;align-items:flex-start}.chat-automation-card-head>div>svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:#075fc6;stroke-width:1.8}.chat-automation-card-head span{display:grid;gap:2px}.chat-automation-card-head b{font-size:12px}.chat-automation-card-head small{font-size:9.5px;color:var(--muted);line-height:1.35}.chat-automation-card-head>label{white-space:nowrap;font-size:10px;font-weight:800;color:#475467}
.chat-weekday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.chat-weekday-grid label{display:block;position:relative;cursor:pointer}.chat-weekday-grid input{position:absolute;opacity:0;pointer-events:none}.chat-weekday-grid span{display:grid;place-items:center;min-height:30px;border:1px solid #d9e1ea;border-radius:8px;background:#fff;font-size:9px;font-weight:850;color:#667085}.chat-weekday-grid input:checked+span{background:#eef6ff;border-color:#8fc0ef;color:#075fc6}.chat-office-times{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chat-office-times label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#475467}
.chat-quick-editor-section{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fafbfc}.chat-quick-editor-title{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.chat-quick-editor-title>.btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.chat-quick-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.chat-quick-editor-row{display:grid;gap:8px;padding:12px;border:1px solid #e1e6ed;border-radius:13px;background:#fff}.chat-quick-editor-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.chat-quick-editor-head b{font-size:11px}.chat-quick-editor-head .btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important}.chat-quick-editor-head svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.chat-quick-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px}.chat-quick-editor-row label{display:grid;gap:5px;font-size:9.5px;font-weight:800;color:#475467}.chat-quick-enabled{display:flex!important;align-items:center;grid-template-columns:auto 1fr!important}.chat-automation-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.chat-automation-footer .notice{margin:0;font-size:10.5px;padding:10px 12px}

@media(max-width:900px){
  .message-analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.message-analytics-grid{grid-template-columns:1fr}.chat-participant-head{grid-template-columns:1fr}.chat-payment-context{justify-content:flex-start;max-width:none}.chat-automation-grid,.chat-quick-editor{grid-template-columns:1fr}.modal-card-wide{width:min(760px,calc(100vw - 24px))!important}
}
@media(max-width:620px){
  .admin-control .admin-icon-action{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;flex-basis:38px!important}.app-shell .page-actions .admin-icon-action{width:38px!important;min-width:38px!important;max-width:38px!important;flex:0 0 38px!important}.app-shell .table-action-cell .admin-icon-action{width:38px!important;min-width:38px!important;max-width:38px!important;padding:0!important}
  .message-analytics-panel{padding:14px!important}.message-analytics-kpis{grid-template-columns:1fr 1fr;gap:7px}.message-analytics-kpis>div{padding:10px}.message-analytics-kpis b{font-size:21px}.message-section-title{flex-direction:column}.message-analytics-head-meta{justify-items:start}.chat-quick-reply-bar{grid-template-columns:1fr;gap:5px}.chat-quick-reply-bar>div{width:100%}.chat-automation-master,.chat-quick-editor-title{align-items:flex-start;flex-direction:column}.chat-weekday-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chat-office-times,.chat-quick-editor-fields,.chat-automation-footer{grid-template-columns:1fr}.chat-automation-footer .btn{width:100%}.modal-card-wide{width:calc(100vw - 16px)!important}
}
@media(max-width:390px){.message-analytics-kpis{grid-template-columns:1fr}.chat-weekday-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* ===== v0.10.69 Payment-gated attendance + participant-facing action hints ===== */
/* Sidebar keeps its normal selected/hover background only; the global Admin lift/tooltip affordance does not apply here. */
.admin-control .side-nav button{transform:none!important;filter:none!important;box-shadow:none!important}
@media(hover:hover) and (pointer:fine){.admin-control .side-nav button:hover{transform:none!important;filter:none!important;box-shadow:none!important}}
.admin-control .app-shell.sidebar-collapsed .side-nav button:hover:after,.admin-control .app-shell.sidebar-collapsed .nav-folder:hover:before{content:none!important;display:none!important}
.attendance-payment-locked{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border:1px solid #f2d6a2;border-radius:10px;background:#fff8e8;color:#9a6700;font-size:10.5px;font-weight:850;line-height:1.25;white-space:nowrap}
.user-action-tooltip{position:fixed;z-index:15000;left:0;top:0;max-width:min(280px,calc(100vw - 20px));padding:8px 10px;border-radius:10px;background:#111827;color:#fff;box-shadow:0 10px 28px rgba(15,23,42,.22);font-size:11px;font-weight:800;line-height:1.35;text-align:center;white-space:normal;opacity:0;visibility:hidden;transform:translateY(3px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}
.user-action-tooltip.show{opacity:1;transform:none}
.public-page-v4 button,.public-page-v4 a.btn,.participant-shell button,.participant-shell a.btn{transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease,background-color .16s ease}
@media(hover:hover) and (pointer:fine){
  .public-page-v4 button:not(:disabled):hover,.public-page-v4 a.btn:hover,.participant-shell button:not(:disabled):hover,.participant-shell a.btn:hover{transform:translateY(-2px);filter:saturate(1.03);box-shadow:0 9px 20px rgba(16,24,40,.11)}
  .public-page-v4 .mobile-nav-close:hover,.participant-shell .password-toggle:hover,.participant-shell .password-eye:hover{box-shadow:none}
}
.public-page-v4 button:focus-visible,.public-page-v4 a.btn:focus-visible,.participant-shell button:focus-visible,.participant-shell a.btn:focus-visible{outline:3px solid rgba(7,95,198,.22);outline-offset:2px}

/* ===== v0.10.70 Paid-only analytics + chatbot switches + payment transaction detail ===== */
.chat-switch{display:inline-flex!important;align-items:center!important;gap:8px!important;min-width:0;cursor:pointer;user-select:none;color:#344054;font-size:10px;font-weight:850;line-height:1}
.chat-switch input{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}
.chat-switch-track{position:relative;display:inline-flex;flex:0 0 40px;width:40px;height:22px;border-radius:999px;background:#d8e0ea;border:1px solid #c6d0dc;box-shadow:inset 0 1px 2px rgba(16,24,40,.08);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
.chat-switch-track i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.28);transition:transform .18s ease}
.chat-switch input:checked+.chat-switch-track{background:#0876df;border-color:#0876df;box-shadow:0 0 0 1px rgba(8,118,223,.06),inset 0 1px 2px rgba(0,0,0,.08)}
.chat-switch input:checked+.chat-switch-track i{transform:translateX(18px)}
.chat-switch input:focus-visible+.chat-switch-track{outline:3px solid rgba(8,118,223,.2);outline-offset:2px}
.chat-switch em{font-style:normal;white-space:nowrap;color:#475467}
.chat-switch input:checked~em{color:#075fc6}
.chat-automation-master>.chat-switch{padding:7px 10px;border:1px solid #cfe1f4;border-radius:999px;background:#fff}
.chat-automation-card-head>.chat-switch{flex:0 0 auto;margin-top:1px}
.chat-quick-enabled{display:flex!important;align-items:center!important;justify-content:flex-end!important;min-height:28px}
.chat-quick-enabled .chat-switch{padding:4px 0}
.payment-detail-grid{margin-top:4px}
.payment-detail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.payment-detail-actions .btn{min-height:38px}
.app-shell .payments-admin-table th:nth-child(5),.app-shell .payments-admin-table td:nth-child(5){width:228px;min-width:228px}
@media(max-width:1280px){.app-shell .payments-admin-table th:nth-child(5),.app-shell .payments-admin-table td:nth-child(5){width:214px;min-width:214px}}
@media(max-width:720px){.chat-automation-master>.chat-switch{align-self:flex-start}.chat-automation-card-head{align-items:center}.payment-detail-actions{justify-content:stretch}.payment-detail-actions .btn,.payment-detail-actions a.btn{flex:1 1 150px;text-align:center}.app-shell .payment-row-actions{flex-wrap:wrap!important}}
@media(max-width:460px){.chat-switch em{font-size:9.5px}.payment-detail-actions{display:grid;grid-template-columns:1fr}.payment-detail-actions .btn,.payment-detail-actions a.btn{width:100%}.app-shell .payment-row-actions{flex-wrap:wrap!important}}

/* ===== v0.10.71 Executive analytics semantics + conversion context ===== */
/* Layout intentionally reuses the stable v0.10.70 analytics primitives. */

/* ===== v0.10.72 Admin section actions + analytics/doorprize/report layout ===== */
.section-action-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:18px;
  width:100%;
  margin:0 0 16px;
}
.section-action-copy{min-width:0}
.section-action-copy h3{margin:0 0 6px!important}
.section-action-copy p{margin:0;color:var(--muted);line-height:1.55;max-width:980px}
.section-action-copy .analytics-eyebrow{margin-bottom:7px}
.section-action-control{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  justify-self:end;
  align-self:start;
  min-width:42px;
}
.section-action-control>.btn{margin:0!important;flex:0 0 auto}
.subject-admin-panel .subject-panel-head,
.promotion-admin-panel .promotion-section-head,
.announcement-admin-panel .announcement-section-head{margin-bottom:16px!important}

/* Executive Analytics / Bidang: separate volume from operational progress. */
.analytics-field-row{
  display:grid;
  grid-template-columns:minmax(145px,1.1fr) minmax(120px,1.65fr) 58px minmax(124px,.9fr);
  align-items:center;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid #edf1f5;
  min-width:0;
}
.analytics-field-row:last-child{border-bottom:0}
.analytics-field-label{display:grid;gap:5px;min-width:0}
.analytics-field-label b{font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.analytics-field-label>span{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  padding:3px 7px;
  border-radius:999px;
  background:#eef6ff;
  color:#075fc6;
  font-size:9px;
  font-weight:850;
  letter-spacing:.045em;
}
.analytics-field-progress{min-width:0}
.analytics-field-progress .bar{height:9px;margin:0}
.analytics-field-progress .bar i{background:linear-gradient(90deg,#0875ed,#4db7ff)}
.analytics-field-total{display:grid;justify-items:end;gap:1px;line-height:1}
.analytics-field-total b{font-size:16px}
.analytics-field-total small{font-size:9px;color:var(--muted);font-weight:700}
.analytics-field-activity{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  min-width:0;
}
.analytics-field-activity>span{
  min-width:0;
  display:grid;
  gap:2px;
  padding:6px 7px;
  border:1px solid #e4eaf1;
  border-radius:10px;
  background:#f8fafc;
  text-align:center;
}
.analytics-field-activity small{font-size:8.5px;color:var(--muted);font-weight:800;white-space:nowrap}
.analytics-field-activity b{font-size:12px;line-height:1.05}

/* Doorprize: catalog and history are visually separated, no merged toolbar/notice states. */
.doorprize-catalog-panel,.doorprize-history-panel{overflow:visible}
.doorprize-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.doorprize-section-head h3{margin:6px 0 0!important}
.doorprize-section-head>small{padding-top:5px;white-space:nowrap}
.doorprize-flow-notice{margin:0 0 14px}
.doorprize-tools{margin:0 0 16px}
.doorprize-tools .list-tools{margin:0!important}
.doorprize-prize-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.doorprize-prize-card{display:flex;flex-direction:column;gap:12px;min-height:210px;padding:18px}
.doorprize-prize-card>p{margin:0;line-height:1.5}
.doorprize-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.doorprize-card-head h3{margin:0!important;min-width:0;overflow-wrap:anywhere}
.doorprize-card-meta{display:grid;grid-template-columns:minmax(80px,.65fr) minmax(0,1.35fr);gap:8px}
.doorprize-card-meta>span{display:grid;gap:3px;padding:9px 10px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);min-width:0}
.doorprize-card-meta small{font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.doorprize-card-meta b{font-size:12px;overflow-wrap:anywhere}
.doorprize-card-actions{margin-top:auto;padding-top:2px}
.doorprize-empty-state{grid-column:1/-1;margin:0;min-height:92px;display:grid;place-items:center;text-align:center}
.doorprize-history-panel{margin-top:18px!important}
.doorprize-history-table{margin-top:0}

/* Download & Report Center: show dataset scope and keep cards aligned. */
.download-report-note{margin-bottom:16px}
.download-report-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.download-report-card{display:flex;flex-direction:column;gap:12px;min-height:206px;padding:19px}
.download-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.download-report-head h3{margin:0!important;min-width:0;overflow-wrap:anywhere}
.download-scope-badge{
  display:inline-flex;
  flex:0 0 auto;
  max-width:150px;
  padding:5px 8px;
  border-radius:999px;
  font-size:9px;
  line-height:1.15;
  font-weight:850;
  text-align:center;
  background:#eef2f6;
  color:#475467;
}
.download-scope-badge.verified{background:#e9f9f0;color:#067647}
.download-scope-badge.all{background:#eef6ff;color:#075fc6}
.download-scope-badge.finance{background:#fff5e6;color:#9a4d00}
.download-scope-badge.event{background:#f2efff;color:#5d3db8}
.download-scope-badge.system{background:#f2f4f7;color:#344054}
.download-report-card>p{margin:0;line-height:1.55}
.download-report-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid #edf1f5}
.download-report-foot small{color:var(--muted);font-size:10px;line-height:1.35}
.download-report-foot .btn{flex:0 0 auto}

@media(max-width:1180px){
  .doorprize-prize-grid,.download-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-field-row{grid-template-columns:minmax(130px,1fr) minmax(105px,1.25fr) 52px minmax(112px,.85fr);gap:9px}
}
@media(max-width:760px){
  .section-action-head{grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .section-action-control{justify-self:end}
  .analytics-field-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:12px 0}
  .analytics-field-label{grid-column:1}
  .analytics-field-total{grid-column:2;grid-row:1;align-self:start}
  .analytics-field-progress{grid-column:1/-1;grid-row:2}
  .analytics-field-activity{grid-column:1/-1;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr))}
  .doorprize-prize-grid,.download-report-grid{grid-template-columns:1fr}
  .doorprize-section-head{align-items:flex-start}
  .doorprize-section-head>small{white-space:normal;text-align:right}
  .download-report-foot{align-items:flex-end}
}
@media(max-width:520px){
  .section-action-copy p{font-size:12px}
  .doorprize-section-head{display:grid;grid-template-columns:1fr}.doorprize-section-head>small{text-align:left;padding-top:0}
  .download-report-head{display:grid;grid-template-columns:1fr}.download-scope-badge{max-width:100%;width:max-content}
  .download-report-foot{display:grid;grid-template-columns:1fr}.download-report-foot .btn{width:100%}
}

/* ===== v0.10.73 — compact participant migration actions, sort hover hints, Live Display auto switch ===== */
/* Sorting is a first-class Admin action: keep the funnel compact, but make hover/focus obvious and let the global tooltip explain it. */
.admin-control .list-sort-trigger{transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease!important}
@media(hover:hover) and (pointer:fine){
  .admin-control .list-sort-trigger:hover{background:#eef6ff!important;border-color:#b9d8f8!important;color:#075fc6!important;box-shadow:0 8px 18px rgba(7,95,198,.10)!important}
}
.admin-control .list-sort-trigger:focus-visible{background:#eef6ff!important;border-color:#8fc0ef!important;color:#075fc6!important}

/* Data Peserta page actions stay visually compact without losing discoverability: the global Admin tooltip reads data-admin-label. */
.participant-migration-action{display:inline-grid!important;place-items:center!important}

/* Live Display automatic mode now uses the same ON/OFF switch language as other Admin settings. */
.live-auto-switch-card{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:9px!important}
.live-auto-switch-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}
.live-auto-switch-card>strong{display:block;min-height:44px;padding:12px;border:1px solid #d8e1ec;border-radius:12px;background:#f8fafc;color:#334155;font-size:13px;line-height:1.35}
.live-auto-mode-switch{flex:0 0 auto}
.live-auto-mode-switch .ui-switch-state{min-width:28px}
@media(max-width:620px){.live-auto-switch-head{align-items:flex-start}.live-auto-mode-switch{margin-top:1px}}

/* v0.10.74 — Executive payment-bank intelligence */
.analytics-bank-panel{overflow:hidden}
.analytics-bank-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;align-items:start}
.analytics-bank-ranking{display:grid;gap:10px;min-width:0}
.analytics-bank-row{display:grid;grid-template-columns:minmax(210px,.85fr) minmax(220px,1.15fr);gap:14px;align-items:center;padding:11px 12px;border:1px solid var(--line,#dbe5f0);border-radius:14px;background:var(--card,#fff);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.analytics-bank-row:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(15,35,70,.07);border-color:#b9d6f4}
.analytics-bank-identity{display:grid;grid-template-columns:28px 84px minmax(0,1fr);gap:12px;align-items:center;min-width:0}
.analytics-bank-rank{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#edf5ff;font-weight:800;font-size:12px;color:#0f5fb8}
.analytics-bank-logo{width:78px!important;height:30px!important;flex:0 0 78px!important;padding:3px 6px!important;display:grid!important;place-items:center;overflow:hidden}
.analytics-bank-logo img{width:100%!important;height:100%!important;max-width:66px!important;max-height:24px!important;object-fit:contain!important}
.analytics-bank-identity>div{min-width:0;display:grid;gap:2px}
.analytics-bank-identity b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.analytics-bank-identity small{color:var(--muted,#667085);font-size:11px}
.analytics-bank-share{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:12px;align-items:center}
.analytics-bank-share .bar{height:9px;border-radius:999px;background:#edf1f6;overflow:hidden}
.analytics-bank-share .bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1478ee,#48b4ef)}
.analytics-bank-share>span{display:grid;grid-template-columns:1fr;line-height:1.05;text-align:right}
.analytics-bank-share>span b{font-size:15px}
.analytics-bank-share>span small{font-size:10px;color:var(--muted,#667085)}
.analytics-bank-decision{display:grid;gap:12px;padding:14px;border-radius:16px;background:#f7faff;border:1px solid #d9e7f7}
.analytics-bank-decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.analytics-bank-decision-grid>div{display:grid;gap:3px;padding:11px;border-radius:12px;background:#fff;border:1px solid #e4ebf3;min-width:0}
.analytics-bank-decision-grid small{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#667085);font-weight:800}
.analytics-bank-decision-grid b{font-size:16px;line-height:1.15;word-break:break-word}
.analytics-bank-decision-grid span{font-size:11px;color:var(--muted,#667085)}
.analytics-bank-value-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.analytics-bank-value-strip span{display:grid;gap:2px;padding:10px 11px;border-radius:12px;background:#0e1b2c;color:#fff}
.analytics-bank-value-strip b{font-size:15px}
.analytics-bank-value-strip small{font-size:10px;color:#cad6e5}
.analytics-bank-empty{margin:0}
@media(max-width:1050px){.analytics-bank-layout{grid-template-columns:1fr}.analytics-bank-row{grid-template-columns:minmax(190px,.9fr) minmax(180px,1.1fr)}}
@media(max-width:700px){.analytics-bank-row{grid-template-columns:1fr;gap:9px}.analytics-bank-share{grid-template-columns:minmax(0,1fr) 68px}.analytics-bank-decision-grid{grid-template-columns:1fr 1fr}.analytics-bank-value-strip{grid-template-columns:1fr}}
@media(max-width:460px){.analytics-bank-decision-grid,.analytics-bank-value-strip{grid-template-columns:1fr}.analytics-bank-identity{grid-template-columns:26px 68px minmax(0,1fr);gap:8px}.analytics-bank-logo{width:62px!important;flex-basis:62px!important}}

/* v0.10.76 — payment bank ranking spacing + protected Super Admin header action */
.analytics-bank-identity>div{padding-left:2px}


/* ===== v0.10.76 — Ranking action alignment + smooth mobile Admin/Public drawers ===== */
.ranking-section-head{margin-bottom:16px!important}
.ranking-section-head .ranking-finalize-action{align-self:start;justify-self:end}
.ranking-section-head .ranking-finalize-action .btn{white-space:nowrap}
@media(max-width:620px){
  .ranking-section-head{grid-template-columns:minmax(0,1fr) auto!important;gap:9px!important}
  .ranking-section-head .section-action-copy h3{font-size:16px;line-height:1.25}
  .ranking-section-head .section-action-copy p{font-size:11px;line-height:1.45}
  .ranking-section-head .ranking-finalize-action .btn{min-height:38px;padding:9px 11px;font-size:11px}
}

.admin-sidebar-backdrop{display:none}
@media(max-width:900px){
  body.admin-sidebar-open{overflow:hidden!important}
  .admin-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:66;background:rgba(3,18,42,.46);opacity:0;visibility:hidden;pointer-events:none;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:opacity .3s ease,visibility .3s ease}
  body.admin-sidebar-open .admin-sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  .admin-control .sidebar,.admin-control .app-shell.sidebar-collapsed .sidebar{
    left:0!important;right:auto!important;z-index:70!important;width:min(82vw,260px)!important;max-width:260px!important;height:100dvh!important;padding:22px 16px!important;
    transform:translate3d(-104%,0,0)!important;opacity:.985!important;visibility:visible!important;pointer-events:none!important;
    box-shadow:none!important;will-change:transform;overscroll-behavior:contain;
    transition:transform .34s cubic-bezier(.22,.8,.2,1),box-shadow .34s cubic-bezier(.22,.8,.2,1),opacity .24s ease!important;
  }
  .admin-control .sidebar.open,.admin-control .app-shell.sidebar-collapsed .sidebar.open{transform:translate3d(0,0,0)!important;pointer-events:auto!important;box-shadow:20px 0 58px rgba(2,20,39,.28)!important}
  .admin-control .sidebar .brand-logo,.admin-control .sidebar .side-nav{transition:opacity .2s ease,transform .28s cubic-bezier(.22,.8,.2,1)}
  .admin-control .sidebar:not(.open) .brand-logo,.admin-control .sidebar:not(.open) .side-nav{opacity:.88;transform:translateX(-8px)}
  .admin-control .sidebar.open .brand-logo,.admin-control .sidebar.open .side-nav{opacity:1;transform:none}
}

@media(max-width:760px){
  .public-menu-backdrop{transition:opacity .3s ease,visibility .3s ease!important;background:rgba(3,18,42,.48)!important}
  .public-navlinks-v4{transform:translate3d(104%,0,0)!important;transition:transform .34s cubic-bezier(.22,.8,.2,1),opacity .24s ease,visibility .34s ease!important;will-change:transform,opacity}
  body.public-nav-open .public-navlinks-v4{transform:translate3d(0,0,0)!important}
  .public-navlinks-v4 .public-drawer-head,.public-navlinks-v4>a{transition:transform .28s cubic-bezier(.22,.8,.2,1),opacity .22s ease!important}
  body:not(.public-nav-open) .public-navlinks-v4 .public-drawer-head,body:not(.public-nav-open) .public-navlinks-v4>a{transform:translateX(12px);opacity:.72}
  body.public-nav-open .public-navlinks-v4 .public-drawer-head,body.public-nav-open .public-navlinks-v4>a{transform:none;opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .admin-sidebar-backdrop,.admin-control .sidebar,.public-menu-backdrop,.public-navlinks-v4,.public-navlinks-v4 .public-drawer-head,.public-navlinks-v4>a{transition:none!important}
}

/* v0.10.77 — Chat typing presence + delayed chatbot reply */
.chat-typing-indicator{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:82%;padding:8px 11px;border:1px solid #d9e2ec;border-radius:15px;background:#f7f9fc;color:#475467;box-shadow:0 4px 12px rgba(15,23,42,.04)}
.chat-typing-indicator.bot{border-color:#ddd6fe;background:#f5f3ff;color:#5b21b6}.chat-typing-indicator small{font-size:10px;font-weight:750;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-typing-dots{display:inline-flex;align-items:center;gap:3px;height:12px}.chat-typing-dots i{display:block;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.35;animation:pusChatTyping 1.05s ease-in-out infinite}.chat-typing-dots i:nth-child(2){animation-delay:.14s}.chat-typing-dots i:nth-child(3){animation-delay:.28s}@keyframes pusChatTyping{0%,60%,100%{transform:translateY(0);opacity:.3}30%{transform:translateY(-3px);opacity:1}}
@media(max-width:720px){.chat-typing-indicator{max-width:92%;padding:7px 9px}.chat-typing-indicator small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.chat-typing-dots i{animation:none!important;opacity:.7}}

/* v0.10.78 — configurable keyword-triggered chatbot replies */
.chat-keyword-editor-section{display:grid;gap:10px;padding:14px;border:1px solid #cfe1f4;border-radius:15px;background:#f7fbff}
.chat-keyword-editor-title{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.chat-keyword-editor-title h3{margin:2px 0 3px}.chat-keyword-editor-title p{margin:0;color:var(--muted);font-size:11px;line-height:1.45;max-width:760px}
.chat-keyword-editor-title>.btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.chat-keyword-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.chat-keyword-editor-row{display:grid;gap:9px;padding:12px;border:1px solid #d9e7f5;border-radius:13px;background:#fff;min-width:0}
.chat-keyword-editor-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.chat-keyword-editor-head>div{display:grid;gap:2px;min-width:0}.chat-keyword-editor-head b{font-size:11px}.chat-keyword-editor-head small{font-size:9.5px;line-height:1.35;color:var(--muted)}
.chat-keyword-editor-head .btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;flex:0 0 32px}.chat-keyword-editor-head svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}
.chat-keyword-editor-fields{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.chat-keyword-editor-row label{display:grid;gap:5px;font-size:9.5px;font-weight:800;color:#475467;min-width:0}.chat-keyword-enabled{display:flex;align-items:center;min-height:40px}.chat-keyword-enabled .chat-switch{white-space:nowrap}
@media(max-width:900px){.chat-keyword-editor{grid-template-columns:1fr}}
@media(max-width:720px){.chat-keyword-editor-title{flex-direction:column}.chat-keyword-editor-title>.btn{align-self:flex-start}.chat-keyword-editor-fields{grid-template-columns:1fr}.chat-keyword-enabled{min-height:0}}


/* v0.10.79 — Quick Reply slash command + readable Chatbot message fields */
.chat-automation-form textarea.input,.chat-quick-editor-row textarea.input,.chat-keyword-editor-row textarea.input{font-weight:400!important;line-height:1.5!important}
.chat-bubble,.chat-bubble.bot{font-weight:400}
.chat-quick-shortcut-menu{display:none;position:absolute;left:12px;bottom:calc(100% + 8px);z-index:24;width:min(560px,calc(100% - 24px));max-height:270px;overflow:auto;padding:7px;border:1px solid #cddced;border-radius:14px;background:#fff;box-shadow:0 18px 44px rgba(15,43,75,.18)}
.chat-quick-shortcut-menu.open{display:grid;gap:5px}
.chat-quick-shortcut-option{width:100%;border:1px solid transparent;border-radius:11px;background:#fff;color:#1f2937;padding:9px 10px;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:center;gap:10px;text-align:left;cursor:pointer;font:inherit}
.chat-quick-shortcut-option:hover,.chat-quick-shortcut-option.active{background:#eef6ff;border-color:#b7d5f4;color:#075fc6}
.chat-quick-shortcut-option>span{display:flex;align-items:center;gap:7px;min-width:0}.chat-quick-shortcut-option b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-quick-shortcut-option small{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;background:#edf2f7;color:#53657d;font-size:9px;font-weight:700;white-space:nowrap}
.chat-quick-shortcut-option em{min-width:0;color:#667085;font-size:10px;font-style:normal;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:720px){.chat-quick-shortcut-menu{left:7px;width:calc(100% - 14px);max-height:230px}.chat-quick-shortcut-option{grid-template-columns:1fr}.chat-quick-shortcut-option em{font-size:9.5px}}

/* v0.10.81 — authoritative Paket Pendaftaran */
.registration-package-field{border:1px solid #cfe0f5;border-radius:18px;padding:16px;background:linear-gradient(180deg,#f8fbff,#fff)}
.registration-package-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.registration-package-heading label{display:block;font-size:1.03rem;font-weight:800;margin:2px 0 3px}.registration-package-required{flex:0 0 auto;border-radius:999px;background:#eaf3ff;color:#0965c7;padding:6px 10px;font-size:.72rem;font-weight:800}
.registration-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.registration-package-card{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;border:1px solid #d9e4f0;border-radius:16px;padding:15px;background:#fff;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.registration-package-card:hover{transform:translateY(-2px);border-color:#84bdf5;box-shadow:0 12px 26px rgba(25,83,145,.09)}.registration-package-card.selected{border-color:#0b74e8;box-shadow:0 0 0 2px rgba(11,116,232,.1),0 12px 28px rgba(11,116,232,.11)}.registration-package-card.unavailable{opacity:.58;cursor:not-allowed;transform:none;box-shadow:none}.registration-package-card>input{position:absolute;opacity:0;pointer-events:none}.registration-package-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.registration-package-card-head h3{margin:3px 0 0;font-size:1rem}.registration-package-code{display:inline-flex;border-radius:999px;padding:4px 8px;background:#eff6ff;color:#1263b6;font-size:.68rem;font-weight:800;letter-spacing:.06em}.registration-package-price{text-align:right;white-space:nowrap}.registration-package-price s{display:block;color:#8793a5;font-size:.7rem}.registration-package-price b{font-size:1.05rem;color:#0a5fc1}.registration-package-card>p{margin:0;color:#65738a;font-size:.82rem;line-height:1.45}.registration-package-facilities{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:.78rem;line-height:1.35}.registration-package-facilities li{color:#26374d}.registration-package-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.registration-package-meta span{border-radius:999px;background:#f1f5f9;padding:5px 8px;font-size:.68rem;font-weight:700;color:#536273}.registration-package-meta .package-city-rule{background:#fff3db;color:#8b5700}.registration-package-unavailable-reason{display:block;color:#9b4d00;font-weight:700;line-height:1.35}.registration-package-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;padding:12px 14px;border-radius:13px;background:#0d2036;color:#fff}.registration-package-summary>div{display:flex;flex-direction:column;gap:2px}.registration-package-summary span{font-size:.7rem;opacity:.72}.registration-package-summary b{font-size:.94rem}.registration-package-summary small{font-size:.68rem;color:#a9d5ff}
.registration-package-mode-control{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #cfe0f5;border-radius:14px;padding:13px 14px;background:#f7fbff}.registration-package-mode-control>div{display:flex;flex-direction:column;gap:2px}.registration-package-mode-control b{font-size:.95rem}.registration-package-mode-control small{font-size:.72rem;color:#66768d;line-height:1.45;max-width:640px}
.registration-package-admin-panel .section-action-head{align-items:flex-start}.registration-package-mode-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;font-size:.68rem;font-weight:900;letter-spacing:.04em;background:#eef2f7;color:#637084}.registration-package-mode-badge.on{background:#e7f8ef;color:#167248}.registration-package-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.registration-package-admin-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line,#dce5ef);border-radius:16px;padding:14px;background:#fff;min-width:0}.registration-package-admin-card.inactive{opacity:.72}.registration-package-admin-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.registration-package-admin-card h4{margin:4px 0 0;font-size:1rem}.registration-package-admin-price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.registration-package-admin-price b{font-size:1.15rem;color:#0c5fb8}.registration-package-admin-price s{color:#8b97a9;font-size:.76rem}.registration-package-admin-price small{width:100%;color:#738196}.registration-package-admin-card>p{margin:0;color:#64748b;font-size:.78rem;line-height:1.45}.registration-package-admin-facilities{display:flex;flex-wrap:wrap;gap:6px}.registration-package-admin-facilities span{border-radius:999px;background:#eef6ff;color:#235c93;padding:5px 8px;font-size:.68rem;font-weight:700}.registration-package-admin-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.registration-package-admin-meta>span{font-size:.69rem;color:#5f6d80;background:#f6f8fb;border-radius:8px;padding:5px 7px}.registration-package-empty{grid-column:1/-1}.registration-package-benefit-box{border:1px solid #dbe5f0;border-radius:14px;padding:14px;background:#f9fbfd}.registration-package-benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}.registration-package-form-switch{display:flex;align-items:center;gap:9px;width:max-content;max-width:100%;font-weight:700}.registration-package-form-switch>span:last-child{font-size:.78rem}.registration-package-accommodation-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;margin-top:12px}.participant-package-label{display:flex;flex-direction:column;gap:1px;margin-bottom:5px}.participant-package-label small{color:#60728a}.payment-package-mini{display:inline-flex;margin-top:4px;border-radius:999px;background:#eef6ff;color:#165f9e;padding:3px 7px;font-size:.68rem;font-weight:700}.package-entitlement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.package-entitlement-list>div{display:flex;flex-direction:column;gap:2px;padding:10px;border:1px solid #e2e8f0;border-radius:11px}.package-entitlement-list span{font-size:.78rem}.package-entitlement-list b{font-size:.72rem;text-transform:capitalize;color:#176a48}.package-entitlement-list small{font-size:.66rem;color:#6b7788}
.participant-package-summary{border:1px solid #d6e6f6;border-radius:16px;background:#f9fcff;padding:14px;margin:12px 0}.participant-package-summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.participant-package-summary-head h3{margin:2px 0 2px;font-size:1rem}.participant-package-summary-head p{margin:0;color:#6c7b8f;font-size:.75rem}.participant-package-payment-state{flex:0 0 auto;border-radius:999px;background:#fff4df;color:#865900;padding:6px 9px;font-size:.68rem;font-weight:800}.participant-package-payment-state.active{background:#e7f8ef;color:#166a46}.participant-package-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px}.participant-package-benefits>div{display:flex;align-items:flex-start;gap:8px;padding:9px;border-radius:11px;background:#fff;border:1px solid #e1e9f2}.participant-package-benefit-check{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#eaf5ff;color:#0b6fcf;font-weight:900}.participant-package-benefits b{display:block;font-size:.76rem}.participant-package-benefits small{display:block;margin-top:2px;color:#6e7c90;font-size:.65rem;line-height:1.35}
@media(max-width:1100px){.registration-package-grid,.registration-package-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-package-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.registration-package-grid,.registration-package-admin-grid,.registration-package-benefit-grid,.registration-package-accommodation-settings,.package-entitlement-list,.participant-package-benefits{grid-template-columns:1fr}.registration-package-heading,.participant-package-summary-head{flex-direction:column}.registration-package-required,.participant-package-payment-state{align-self:flex-start}.registration-package-summary{grid-template-columns:1fr}.registration-package-mode-control{align-items:flex-start}.registration-package-card-head{gap:6px}.registration-package-card{padding:13px}}
@media(prefers-reduced-motion:reduce){.registration-package-card{transition:none}}

/* v0.10.81 package entitlement operations */
.package-entitlement-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.package-entitlement-heading h3{margin:0 0 3px}.package-entitlement-heading p{margin:0;max-width:760px}.package-entitlement-list>.package-entitlement-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-width:0}.package-entitlement-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.package-entitlement-copy>span{font-weight:750;color:#17253a}.package-entitlement-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:0 0 auto}.package-entitlement-list .package-entitlement-status{display:inline-flex;align-items:center;min-height:27px;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:800;text-transform:none;background:#eef2f7;color:#5b697b}.package-entitlement-list .package-entitlement-status.eligible{background:#eaf7ef;color:#176a48}.package-entitlement-list .package-entitlement-status.fulfilled{background:#eaf3ff;color:#155b9e}.package-entitlement-list .package-entitlement-status.pending_payment{background:#fff6e5;color:#9a5a00}
@media(max-width:720px){.package-entitlement-list>.package-entitlement-row{flex-direction:column;align-items:stretch}.package-entitlement-actions{justify-content:flex-start}}


/* v0.10.84: compact Paket Pendaftaran controls + discussion preview + chat whitespace. */
.registration-package-admin-panel{padding:18px!important}
.registration-package-admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}
.registration-package-admin-copy{min-width:0;display:grid;gap:4px}
.registration-package-admin-copy .micro-label{margin:0}
.registration-package-admin-title-row{display:flex;align-items:center;gap:12px;min-width:0}
.registration-package-admin-title-row h3{margin:0;font-size:1.12rem}
.registration-package-admin-copy p{margin:0;max-width:780px;color:#64748b;font-size:.78rem;line-height:1.45}
.registration-package-mode-switch{flex:0 0 auto;margin:0}
.registration-package-add{flex:0 0 38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;padding:0!important;border-radius:11px!important;display:inline-grid!important;place-items:center!important}.registration-package-add svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.registration-package-admin-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;border:1px solid #e1eaf4;border-radius:12px;background:#f8fbff;margin:0 0 12px}
.registration-package-admin-summary span{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;color:#64748b;padding:5px 9px;font-size:.69rem;font-weight:700}
.registration-package-admin-summary span.active{background:#eaf9f1;border-color:#c9ecd8;color:#14724a}
.registration-package-admin-summary b{color:#172235}
.registration-package-admin-grid{margin-top:0;gap:10px}
.registration-package-admin-card{padding:12px;border-radius:14px;gap:8px}
.registration-package-admin-card h4{font-size:.94rem}
.registration-package-admin-price b{font-size:1.05rem}
.registration-package-admin-meta>span{padding:4px 7px}
.registration-package-empty{margin:0;padding:13px!important}

.registration-package-form-compact{display:grid;gap:12px}
.registration-package-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.registration-package-form-grid>label,.registration-package-extra-benefits{display:grid;gap:5px;min-width:0;font-size:.78rem;font-weight:750;color:#34445b}
.registration-package-form-grid .input,.registration-package-extra-benefits .input{margin:0}
.registration-package-form-grid small{font-weight:400;color:#76859a;line-height:1.35}
.registration-package-form-full{grid-column:1/-1}
.registration-package-form-status{display:grid;align-content:center;gap:7px;min-height:68px;padding:9px 11px;border:1px solid #e1e8f0;border-radius:12px;background:#f8fafc}
.registration-package-form-status>span{font-size:.72rem;font-weight:800;color:#53647a;text-transform:uppercase;letter-spacing:.04em}
.registration-package-benefit-box-compact{padding:11px 12px;border-radius:13px;margin:0}
.registration-package-benefit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.registration-package-benefit-head>div{display:grid;gap:2px}
.registration-package-benefit-head b{font-size:.84rem}
.registration-package-benefit-grid{gap:8px;margin-top:0}
.registration-package-benefit-grid .registration-package-form-switch{width:100%;min-height:42px;padding:7px 9px;border:1px solid #e0e8f1;border-radius:11px;background:#fff}
.registration-package-accommodation-settings{margin-top:9px;gap:9px}
.registration-package-accommodation-settings>label{display:grid;gap:5px;font-size:.76rem;font-weight:750}
.registration-package-extra-benefits{margin:0}
.registration-package-form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}
.registration-package-form-footer small{color:#708096;font-size:.7rem;line-height:1.4}
.registration-package-form-footer .btn{min-width:150px}
.label-optional{font-weight:500;color:#8290a2;font-size:.7rem}

.chat-message-text{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-weight:400!important;line-height:1.5}

.subject-discussion-preview{margin-top:11px;border:1px solid #d9e5f1;border-radius:13px;background:#f8fbff;overflow:hidden}
.subject-discussion-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #dfe8f2;background:#fff}
.subject-discussion-preview-head>div:first-child{min-width:0;display:grid;gap:2px}
.subject-discussion-preview-head b{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subject-discussion-preview-head small{color:#748399;font-size:.68rem}
.subject-discussion-preview-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.subject-discussion-preview-actions .btn{padding:7px 10px!important;font-size:.72rem!important}
.subject-discussion-preview iframe{display:block;width:100%;height:330px;border:0;background:#eef3f8}

@media(max-width:720px){
  .registration-package-admin-head{align-items:flex-start}.registration-package-admin-title-row{gap:9px}.registration-package-admin-copy p{font-size:.74rem}.registration-package-add{padding:0!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}.registration-package-admin-summary{gap:6px}
  .registration-package-form-grid{grid-template-columns:1fr}.registration-package-form-full{grid-column:auto}.registration-package-benefit-grid{grid-template-columns:1fr}.registration-package-form-footer{align-items:stretch;flex-direction:column}.registration-package-form-footer .btn{width:100%}
  .subject-discussion-preview-head{align-items:flex-start;flex-direction:column}.subject-discussion-preview-actions{width:100%}.subject-discussion-preview-actions .btn{flex:1}.subject-discussion-preview iframe{height:270px}
}

/* v0.10.84 — compact public registration, stable participant chat scroll, Event Twibbon workflow */
.registration-layout-compact{display:block!important;max-width:980px;margin-inline:auto}
.registration-card-compact{max-width:920px;margin-inline:auto;padding:24px!important}
.registration-form-head{margin-bottom:14px!important}
.registration-form-head h2{font-size:28px!important;margin-bottom:0!important}
.registration-form-compact{display:block!important}
.registration-form-group{border:1px solid #e7edf5;border-radius:18px;padding:16px;margin-top:12px;background:#fbfdff}
.registration-form-group.hidden{display:none!important}
.registration-form-group-head{display:flex;align-items:center;gap:10px;margin-bottom:13px}
.registration-form-group-head>span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#eaf3ff;color:#075fc6;font-size:12px;font-weight:900}
.registration-form-group-head b{font-size:14px;color:#12223a}
.registration-form-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.registration-form-group-grid>.field{margin:0!important;min-width:0}
.registration-form-group-grid>.field.full{grid-column:1/-1}
.registration-form-group-grid label{margin-bottom:6px!important}
.registration-form-group-grid .input{min-height:44px}
.registration-form-group-grid textarea.input{min-height:78px}
.registration-card-compact .marketing-quiz-invite,.registration-card-compact .earlybird-registration-notice,.registration-card-compact .registration-region-notice{margin-bottom:10px}
.registration-card-compact .registration-package-heading{margin-bottom:10px}
.registration-card-compact .registration-package-grid{gap:10px}
.registration-card-compact .registration-package-card{padding:14px}
.registration-submit-row{margin-top:14px!important}
.registration-submit-row .btn{min-height:48px}

.twibbon-admin-panel{overflow:hidden}
.twibbon-admin-head{align-items:center}
.twibbon-admin-status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:10px;font-weight:900;letter-spacing:.05em}
.twibbon-admin-status.active{background:#e9f9ef;color:#087a45}
.twibbon-admin-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:16px;align-items:center;margin-top:14px}
.twibbon-admin-preview,.twibbon-admin-empty{display:flex;align-items:center;gap:14px;min-height:118px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fafcff}
.twibbon-admin-preview img{width:104px;height:104px;object-fit:contain;border-radius:12px;background:linear-gradient(45deg,#eef2f6 25%,transparent 25%),linear-gradient(-45deg,#eef2f6 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef2f6 75%),linear-gradient(-45deg,transparent 75%,#eef2f6 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}
.twibbon-admin-preview b,.twibbon-admin-empty b{display:block;color:#12223a}.twibbon-admin-preview small,.twibbon-admin-empty small{display:block;color:#667085;margin-top:4px;line-height:1.45}
.twibbon-admin-empty>span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#eaf3ff;color:#075fc6}.twibbon-admin-empty svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.twibbon-admin-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:end}
.twibbon-admin-file{display:grid;gap:6px;font-size:11px;font-weight:800;color:#344054}.twibbon-admin-file .input{min-width:0}

.twibbon-editor-card{width:min(940px,100%)}
.twibbon-editor-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:20px;align-items:start}
.twibbon-canvas-wrap{position:relative;display:grid;place-items:center;min-height:420px;padding:12px;border:1px solid var(--line);border-radius:18px;background-color:#f6f8fb;background-image:linear-gradient(45deg,#e7ebf0 25%,transparent 25%),linear-gradient(-45deg,#e7ebf0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7ebf0 75%),linear-gradient(-45deg,transparent 75%,#e7ebf0 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;overflow:hidden}
#twibbonCanvas{display:block;width:100%;height:auto;max-height:62vh;object-fit:contain;box-shadow:0 12px 30px rgba(16,24,40,.12);background:transparent}
.twibbon-photo-hint{position:absolute;inset:auto 18px 18px;z-index:2;padding:9px 12px;border-radius:10px;background:rgba(7,29,57,.86);color:#fff;text-align:center;font-size:11px;font-weight:750;backdrop-filter:blur(6px)}
.twibbon-editor-controls{display:grid;gap:13px}.twibbon-editor-controls>label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#344054}.twibbon-editor-controls input[type=range]{width:100%;accent-color:#0875ed}
.twibbon-photo-picker .input{font-weight:500}
.twibbon-editor-note{padding:11px 12px;border-radius:12px;background:#f2f8ff;color:#475467;font-size:11px;line-height:1.5;border:1px solid #d5e8ff}
.twibbon-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.twibbon-editor-actions .btn{min-width:0}
.participant-shell .participant-twibbon-btn{background:linear-gradient(135deg,#ec4899,#8b5cf6)!important;color:#fff!important;border:1px solid #a855f7!important;box-shadow:0 8px 20px rgba(139,92,246,.22)!important}.participant-shell .participant-twibbon-btn:hover{filter:brightness(.97)}.participant-shell .participant-twibbon-btn svg{stroke:currentColor!important}

@media(max-width:760px){
  .registration-card-compact{padding:16px!important;border-radius:20px!important}.registration-form-group{padding:13px;border-radius:15px}.registration-form-group-grid{grid-template-columns:1fr;gap:10px}.registration-form-group-grid>.field,.registration-form-group-grid>.field.full{grid-column:1/-1}.registration-form-head h2{font-size:25px!important}
  .twibbon-admin-body{grid-template-columns:1fr}.twibbon-admin-form{grid-template-columns:1fr 1fr}.twibbon-admin-file{grid-column:1/-1}
  .twibbon-editor-card{width:100%;max-height:min(94dvh,900px);overflow:auto}.twibbon-editor-layout{grid-template-columns:1fr;gap:14px}.twibbon-canvas-wrap{min-height:260px}.twibbon-editor-actions{position:sticky;bottom:0;background:#fff;padding-top:6px}
  .participant-shortcut-row{flex-wrap:wrap!important}
}
@media(max-width:430px){
  .registration-section-v4{padding:36px 0!important}.registration-card-compact{padding:12px!important}.registration-form-group{padding:12px}.registration-form-group-head{margin-bottom:10px}.registration-form-group-grid .input{min-height:42px}.registration-card-compact .registration-package-card{padding:12px}.registration-card-compact .registration-package-card-head{gap:8px}.registration-card-compact .registration-package-facilities{margin-block:8px}
  .twibbon-admin-form{grid-template-columns:1fr}.twibbon-editor-card{padding:14px!important}.twibbon-canvas-wrap{padding:8px;min-height:230px}.twibbon-editor-actions{grid-template-columns:1fr 1fr;gap:7px}.twibbon-editor-actions .btn{padding-inline:10px;font-size:11px}
}

/* v0.10.85 — UI copy cleanup release. No core exam/layout behavior changed from v0184. */

/* ===== v0.11.1 Payment dashboard compactness + unlimited package selection ===== */
.payment-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.payment-kpi-grid .kpi{min-width:0;min-height:88px;padding:12px 14px;border-radius:14px;display:flex;flex-direction:column;justify-content:center}
.payment-kpi-grid .kpi .label{font-size:11px;line-height:1.25;font-weight:800}
.payment-kpi-grid .kpi .value{font-size:22px;line-height:1.05;margin-top:5px;letter-spacing:-.025em;overflow-wrap:anywhere}
.payment-kpi-grid .kpi .sub{font-size:10px;line-height:1.35;margin-top:5px}
.midtrans-transactions-panel{padding:16px}
.midtrans-section-head{margin-bottom:10px}
.midtrans-section-head .section-action-copy h3{font-size:18px;margin-bottom:3px!important}
.midtrans-section-head .section-action-copy p{font-size:12px;line-height:1.4;max-width:760px}
.midtrans-table-wrap{border-radius:12px}
.app-shell .midtrans-payments-table{width:100%;min-width:760px;table-layout:fixed}
.app-shell .midtrans-payments-table th,.app-shell .midtrans-payments-table td{padding:9px 10px;font-size:12px;vertical-align:top;overflow-wrap:anywhere}
.app-shell .midtrans-payments-table th:nth-child(1),.app-shell .midtrans-payments-table td:nth-child(1){width:22%}
.app-shell .midtrans-payments-table th:nth-child(2),.app-shell .midtrans-payments-table td:nth-child(2){width:24%}
.app-shell .midtrans-payments-table th:nth-child(3),.app-shell .midtrans-payments-table td:nth-child(3){width:18%}
.app-shell .midtrans-payments-table th:nth-child(4),.app-shell .midtrans-payments-table td:nth-child(4){width:10%}
.app-shell .midtrans-payments-table th:nth-child(5),.app-shell .midtrans-payments-table td:nth-child(5){width:18%;min-width:0}
.app-shell .midtrans-payments-table th:nth-child(6),.app-shell .midtrans-payments-table td:nth-child(6){width:8%}
.app-shell .midtrans-payments-table small{font-size:10px;line-height:1.35;color:var(--muted)}
.app-shell .midtrans-payments-table .badge{padding:5px 7px;font-size:9px;line-height:1.15;white-space:normal;text-align:center}
.midtrans-order-id{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px}
.midtrans-status-cell small{display:block;margin-top:4px}
.midtrans-row-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.midtrans-row-actions .btn{min-height:32px;padding:6px 9px;border-radius:9px;font-size:10.5px}
.midtrans-row-actions .detail-icon-btn{width:32px!important;min-width:32px!important;height:32px!important;padding:0!important}
.midtrans-sync-btn{white-space:nowrap}
@media(max-width:1180px){.payment-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .midtrans-payments-table{min-width:700px}.app-shell .midtrans-payments-table th,.app-shell .midtrans-payments-table td{padding:8px 9px}}
@media(max-width:720px){.payment-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.payment-kpi-grid .kpi{min-height:80px;padding:10px 11px}.payment-kpi-grid .kpi .value{font-size:19px}.midtrans-transactions-panel{padding:13px!important}.app-shell .midtrans-payments-table{min-width:0!important;table-layout:auto!important}.app-shell .midtrans-payments-table tbody td{padding:8px 10px!important}.midtrans-order-id{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-all}.midtrans-row-actions{display:flex!important;gap:6px!important}.midtrans-row-actions .btn{width:auto!important;min-width:32px!important}}
@media(max-width:460px){.payment-kpi-grid{grid-template-columns:1fr}.payment-kpi-grid .kpi{min-height:72px}.midtrans-section-head .section-action-copy p{font-size:11px}}

/* v0.11.3 — payment UX, expanded Core API channels, 30-minute expiry */
.payment-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap;min-width:0;max-width:100%}.app-shell .page-actions>.payment-head-actions{flex:0 1 auto;min-width:0;width:auto}.payment-gateway-pill{flex:0 0 auto;white-space:nowrap}.app-shell .page-actions .payment-head-actions .payment-head-icon-btn{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;flex:0 0 42px!important;padding:0!important}.payment-export-btn{min-width:0;white-space:nowrap;flex:0 1 auto}.payment-export-btn svg{width:16px;height:16px;flex:0 0 auto}@media(max-width:1100px){.app-shell .page-actions>.payment-head-actions{width:100%!important;justify-content:flex-start}}@media(max-width:720px){.app-shell .page-actions>.payment-head-actions{display:grid!important;grid-template-columns:auto 42px minmax(0,1fr)!important;grid-column:1/-1!important;align-items:center!important;gap:7px!important;width:100%!important}.app-shell .page-actions .payment-head-actions .payment-export-btn{width:100%!important;min-width:0!important;padding:10px 12px!important;font-size:12px!important;white-space:nowrap!important}.payment-gateway-pill{justify-self:start}}@media(max-width:380px){.app-shell .page-actions>.payment-head-actions{grid-template-columns:auto 42px 42px!important;justify-content:start}.app-shell .page-actions .payment-head-actions .payment-export-btn{width:42px!important;min-width:42px!important;max-width:42px!important;padding:0!important;height:42px!important}.payment-export-label{display:none!important}}
.payment-head-icon-btn{width:42px;height:42px;padding:0!important;display:inline-grid;place-items:center;border-radius:12px}.payment-head-icon-btn svg{width:18px;height:18px}.midtrans-channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.midtrans-channel-option{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #dbe5f1;border-radius:14px;background:#fff;cursor:pointer}.midtrans-channel-option input{margin-top:3px}.midtrans-channel-option span{display:grid;gap:2px}.midtrans-channel-option b{font-size:13px}.midtrans-channel-option small{font-size:11px;line-height:1.4;color:#64748b}
.payment-checkout-shell{min-height:100vh;background:linear-gradient(135deg,#062a58 0,#075fc6 55%,#1f86ed 100%);background-attachment:fixed}.payment-checkout-shell:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:72px 72px;pointer-events:none}.payment-checkout-topbar{position:sticky;top:0;z-index:20;background:linear-gradient(90deg,#07366d,#0864c9);border-bottom:1px solid rgba(255,255,255,.15)}.payment-checkout-nav{min-height:68px;display:flex;align-items:center;justify-content:space-between}.payment-checkout-nav .brand img{height:38px;width:auto}.payment-checkout-nav-actions{display:flex;align-items:center;gap:10px}.payment-secure-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.13);color:#fff;font-weight:800;font-size:12px}.payment-secure-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:#2ce59b;box-shadow:0 0 0 4px rgba(44,229,155,.17)}.payment-checkout-nav .btn{background:#fff;color:#12335f;border-color:rgba(255,255,255,.4)}
.payment-checkout-main{position:relative;z-index:1;padding:36px 0 64px}.payment-checkout-container{max-width:1180px}.payment-progress{max-width:820px;margin:0 auto 22px;display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:12px;padding:14px 18px;border:1px solid rgba(255,255,255,.2);background:rgba(4,30,64,.36);backdrop-filter:blur(8px);border-radius:18px;color:#cfe6ff}.payment-progress>div{display:flex;align-items:center;gap:9px;min-width:0}.payment-progress>div>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.13);font-weight:900}.payment-progress>div>div{display:grid}.payment-progress b{color:#fff;font-size:13px}.payment-progress small{font-size:10px;color:#b9d4f1}.payment-progress>i{height:1px;background:rgba(255,255,255,.24)}.payment-progress .done>span,.payment-progress .ready>span{background:#1eaa70;color:#fff}.payment-progress .current>span{background:#fff;color:#075fc6}.payment-progress .current.done>span{background:#1eaa70;color:#fff}
.payment-page-loading{width:min(520px,calc(100% - 24px));margin:80px auto;padding:34px;background:#fff;border-radius:22px;display:flex;align-items:center;justify-content:center;gap:14px;box-shadow:0 20px 60px rgba(0,22,55,.24)}.payment-page-loading img{width:34px;height:34px}.payment-checkout-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:18px;align-items:start}.payment-checkout-card{background:#fff;border:1px solid rgba(219,229,241,.9);border-radius:22px;box-shadow:0 24px 70px rgba(0,24,59,.19)}.payment-main-card{padding:26px}.payment-summary-card{padding:22px;position:sticky;top:90px}.payment-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid #e5edf6}.payment-card-head h1{margin:4px 0 5px;font-size:24px;line-height:1.15}.payment-card-head p{margin:0}.payment-status-pill{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.05em;background:#fff4d6;color:#865d00;white-space:nowrap}.payment-status-pill.paid{background:#dff9e9;color:#08733f}.payment-status-pill.pending,.payment-status-pill.creating{background:#e7f2ff;color:#075fc6}.payment-status-pill.reconciliation_required{background:#fff0e5;color:#a13b00}.payment-status-pill.failed,.payment-status-pill.expired,.payment-status-pill.cancelled{background:#feecec;color:#a82424}.payment-registration-switcher{margin-top:18px;display:grid;gap:7px}.payment-registration-switcher label{font-size:12px;font-weight:800;color:#334155}
.payment-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:24px 0 14px}.payment-section-heading h2{font-size:18px;margin:3px 0 0}.payment-section-heading>small{color:#64748b;font-size:11px}.payment-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.payment-method-option{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 22px;align-items:center;gap:10px;padding:13px;border:1px solid #dbe5f1;border-radius:15px;cursor:pointer;background:#fff;transition:.16s ease}.payment-method-option:hover{border-color:#9cc8f7;box-shadow:0 6px 18px rgba(7,95,198,.08)}.payment-method-option.selected{border-color:#075fc6;background:#f4f9ff;box-shadow:0 0 0 2px rgba(7,95,198,.08)}.payment-method-option input{position:absolute;opacity:0;pointer-events:none}.payment-method-symbol{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:900;font-size:11px}.payment-method-symbol.qr{background:#0b2242;color:#fff}.payment-method-symbol.bank{background:#eaf4ff;color:#075fc6}.payment-method-copy{display:grid;gap:3px;min-width:0}.payment-method-copy b{font-size:13px}.payment-method-copy small{font-size:10px;line-height:1.35;color:#64748b}.payment-method-option>i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;border:1px solid #cedbea;color:transparent;font-size:11px;font-style:normal}.payment-method-option.selected>i{background:#075fc6;border-color:#075fc6;color:#fff}.payment-method-empty{grid-column:1/-1}.payment-primary-action{width:100%;margin-top:14px;min-height:46px}
.payment-success-panel{margin-top:20px;padding:18px;border-radius:16px;background:#ecfbf3;border:1px solid #bdebd1;display:flex;gap:14px;align-items:flex-start}.payment-success-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#1eaa70;color:#fff;font-size:22px;font-weight:900;flex:0 0 auto}.payment-success-panel h2{margin:3px 0 4px;font-size:20px}.payment-success-panel p{margin:0;color:#3f5f50;font-size:12px;line-height:1.55}.payment-expiry{font-size:10px;color:#9a5800;background:#fff6df;padding:6px 8px;border-radius:999px}.payment-qris-box{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:center;padding:16px;border:1px solid #dbe5f1;border-radius:18px;background:#fbfdff}.payment-qris-box img{display:block;width:220px;max-width:100%;aspect-ratio:1;object-fit:contain;background:#fff;border:1px solid #edf2f7;border-radius:14px;padding:8px}.payment-qris-box>div{display:grid;gap:8px}.payment-qris-box b{font-size:18px}.payment-qris-box span{font-size:12px;line-height:1.55;color:#52647a}.payment-qris-box small{font-size:10px;color:#8090a2}.payment-number-box{padding:16px;border:1px solid #dbe5f1;border-radius:16px;background:#f8fbff;display:grid;gap:8px}.payment-number-box>span{font-size:11px;font-weight:800;color:#51667e}.payment-number-box>div{display:flex;gap:10px;align-items:center;justify-content:space-between}.payment-number-box strong{font-size:22px;letter-spacing:.02em;overflow-wrap:anywhere}.payment-number-box button{border:0;border-radius:10px;padding:8px 11px;background:#e6f2ff;color:#075fc6;font-weight:800;cursor:pointer}.payment-number-box small{font-size:10px;color:#64748b;line-height:1.45}.payment-mandiri-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-check-actions{display:flex;gap:9px;margin-top:14px}.payment-check-actions .btn{min-height:42px}.payment-auto-note{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;color:#64748b;font-size:10px;line-height:1.45}.payment-auto-note>span{margin-top:3px;width:8px;height:8px;border-radius:50%;background:#23c988;box-shadow:0 0 0 4px #dcf8ec;flex:0 0 auto}.payment-manual-form{margin-top:14px}
.payment-footer-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:24px;padding-top:18px;border-top:1px solid #e5edf6}.payment-footer-actions .btn{min-height:43px}.payment-summary-head{padding-bottom:15px;border-bottom:1px solid #e5edf6}.payment-summary-head h2{margin:4px 0 0;font-size:18px}.payment-summary-person{display:grid;gap:3px;padding:16px 0;border-bottom:1px solid #eef3f8}.payment-summary-person span{font-size:10px;color:#64748b}.payment-summary-person b{font-size:14px}.payment-summary-person small{font-size:10px;color:#7b8ba0}.payment-price-breakdown{padding:12px 0}.payment-price-breakdown>div{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:11px}.payment-price-breakdown span{color:#52647a}.payment-price-breakdown b{font-size:11px}.payment-price-breakdown b.discount{color:#128153}.payment-price-breakdown>div.subtotal{border-top:1px dashed #dbe5f1;margin-top:5px;padding-top:11px}.payment-total-row{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding:15px 0;border-top:1px solid #dbe5f1}.payment-total-row span{font-size:11px;font-weight:800}.payment-total-row b{font-size:22px;color:#075fc6}.payment-summary-note{margin-top:8px;padding:12px;border-radius:13px;background:#f3f7fb}.payment-summary-note b{font-size:11px}.payment-summary-note p{margin:4px 0 0;font-size:9.5px;line-height:1.5;color:#64748b}
@media(max-width:900px){.payment-checkout-grid{grid-template-columns:1fr}.payment-summary-card{position:static;order:-1}.payment-method-grid{grid-template-columns:1fr 1fr}.payment-main-card,.payment-summary-card{padding:20px}.payment-progress{margin-left:12px;margin-right:12px}.payment-qris-box{grid-template-columns:180px 1fr}.payment-qris-box img{width:180px}}
@media(max-width:640px){.payment-checkout-main{padding-top:18px}.payment-secure-badge{display:none}.payment-checkout-nav{min-height:60px}.payment-checkout-nav .brand img{height:32px}.payment-progress{grid-template-columns:1fr;gap:7px;padding:11px}.payment-progress>i{display:none}.payment-progress>div{padding:5px}.payment-progress>div>div{grid-template-columns:auto 1fr;align-items:center;gap:6px}.payment-progress small{font-size:9px}.payment-checkout-card{border-radius:18px}.payment-main-card,.payment-summary-card{padding:16px}.payment-card-head{display:grid}.payment-card-head h1{font-size:20px}.payment-status-pill{justify-self:start}.payment-method-grid{grid-template-columns:1fr}.payment-qris-box{grid-template-columns:1fr;text-align:center}.payment-qris-box img{width:min(260px,100%);justify-self:center}.payment-mandiri-grid{grid-template-columns:1fr}.payment-footer-actions{display:grid}.payment-footer-actions .btn{width:100%}.payment-section-heading{align-items:flex-start}.payment-section-heading>small{display:none}.payment-number-box strong{font-size:18px}.midtrans-channel-grid{grid-template-columns:1fr}}
/* v0.11.3 payment UX hardening + expanded Midtrans channels */
.payment-page-toast{position:fixed;z-index:90;top:82px;right:max(18px,calc((100vw - 1180px)/2));width:min(430px,calc(100vw - 28px));padding:13px 15px;border-radius:14px;border:1px solid #d7e4f2;background:#fff;color:#17324f;box-shadow:0 16px 44px rgba(0,27,65,.2);font-size:12px;line-height:1.5;font-weight:700}.payment-page-toast.ok{border-color:#a9e4c4;background:#effbf4;color:#09643c}.payment-page-toast.warn{border-color:#f2d38a;background:#fff9e9;color:#805600}.payment-page-toast.bad{border-color:#f0b5b5;background:#fff2f2;color:#9f2525}.payment-page-toast.hidden{display:none!important}
.payment-method-option{grid-template-columns:64px minmax(0,1fr) 22px;min-height:76px}.payment-method-icon{width:60px;height:50px;border:1px solid #e2ebf5;border-radius:13px;background:#f8fbff;display:grid;place-items:center;overflow:hidden}.payment-method-brand-logo{display:block;max-width:52px;max-height:31px;width:auto;height:auto;object-fit:contain}.payment-method-symbol{width:52px;height:38px;border-radius:10px}.payment-method-copy b{font-size:13.5px}.payment-method-copy small{font-size:10.5px}.payment-expiry{font-weight:900;color:#8d5a00;background:#fff5d8;border:1px solid #f4d68a}.payment-expiry.expired{color:#a82424;background:#feecec;border-color:#f5bcbc}
.payment-wallet-box,.payment-redirect-box{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:center;padding:17px;border:1px solid #dbe5f1;border-radius:18px;background:#fbfdff}.payment-wallet-box>img{width:180px;max-width:100%;aspect-ratio:1;object-fit:contain;background:#fff;border:1px solid #edf2f7;border-radius:14px;padding:8px}.payment-wallet-box>div,.payment-redirect-box>div:last-child{display:grid;gap:9px}.payment-wallet-box b,.payment-redirect-box b{font-size:17px}.payment-wallet-box span,.payment-redirect-box span{font-size:11px;line-height:1.55;color:#52647a}.payment-wallet-box .btn,.payment-redirect-box .btn{justify-self:start}.payment-redirect-box{grid-template-columns:54px minmax(0,1fr)}.payment-redirect-icon{width:54px;height:54px;border-radius:15px;background:#eaf4ff;color:#075fc6;display:grid;place-items:center;font-weight:900;font-size:24px}
.payment-combined-code{padding:16px;border:1px solid #dbe5f1;border-radius:16px;background:#f8fbff;display:grid;gap:13px}.payment-code-parts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-code-parts>div{padding:12px;border-radius:12px;background:#fff;border:1px solid #e4edf6;display:grid;gap:5px}.payment-code-parts span{font-size:10px;color:#64748b;font-weight:800}.payment-code-parts strong{font-size:19px;overflow-wrap:anywhere}.payment-combined-code>.btn{justify-self:start}.payment-combined-code>small{font-size:10px;color:#64748b;line-height:1.5}
.midtrans-channel-groups{display:grid;gap:14px}.midtrans-channel-group{padding:13px;border:1px solid #e1e9f2;border-radius:16px;background:#f9fbfe}.midtrans-channel-group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.midtrans-channel-group-title b{font-size:13px}.midtrans-channel-group-title small{font-size:10px;color:#718096}.midtrans-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.midtrans-channel-option{align-items:center;min-height:72px;background:#fff}.midtrans-channel-option .channel-logo{width:52px;height:42px;border-radius:10px;border:1px solid #e4edf6;background:#f8fbff;display:grid;place-items:center;flex:0 0 auto}.midtrans-channel-option .channel-logo img{max-width:46px;max-height:27px;object-fit:contain}.midtrans-channel-option .channel-copy{display:grid;gap:2px;min-width:0}.midtrans-channel-option .channel-copy b{font-size:12px}.midtrans-channel-option .channel-copy small{font-size:9.5px;line-height:1.35;color:#64748b}.midtrans-channel-option input{margin:0 0 0 auto;order:3;flex:0 0 auto}.midtrans-security-note{margin-top:12px;padding:11px 12px;border-radius:12px;background:#eef6ff;color:#35516f;font-size:10px;line-height:1.5}
@media(max-width:640px){.payment-page-toast{top:70px;left:14px;right:14px;width:auto}.payment-method-option{grid-template-columns:58px minmax(0,1fr) 22px;padding:12px}.payment-method-icon{width:54px;height:46px}.payment-method-brand-logo{max-width:47px;max-height:28px}.payment-wallet-box,.payment-redirect-box{grid-template-columns:1fr;text-align:center}.payment-wallet-box>img{width:min(240px,100%);justify-self:center}.payment-wallet-box .btn,.payment-redirect-box .btn{justify-self:stretch}.payment-redirect-icon{justify-self:center}.payment-code-parts{grid-template-columns:1fr}.payment-combined-code>.btn{justify-self:stretch}.midtrans-channel-grid{grid-template-columns:1fr}}

/* v0.11.5 package accordion + channel switch + simplified transaction actions */
.registration-package-grid{align-items:start}.package-accordion-card{padding:0;gap:0;overflow:hidden;background:#fff}.package-accordion-card:hover{transform:translateY(-2px)}
.registration-package-visual{height:92px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#d8f8ef,#7ed9f4);border-bottom:1px solid #e0eaf4}.registration-package-visual:before,.registration-package-visual:after{content:'';position:absolute;border-radius:999px;background:rgba(255,255,255,.42)}.registration-package-visual:before{width:92px;height:92px;left:-32px;top:-42px}.registration-package-visual:after{width:76px;height:76px;right:-25px;bottom:-34px}.registration-package-visual.tier-1{background:linear-gradient(135deg,#e6fbef,#78d8ef)}.registration-package-visual.tier-2{background:linear-gradient(135deg,#5b236f,#b02678 58%,#e0526c)}.registration-package-visual>span{position:relative;z-index:1;width:82px;height:64px;display:grid;place-items:center}.registration-package-visual svg{width:80px;height:60px;fill:rgba(255,255,255,.28);stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 8px 10px rgba(0,66,127,.14))}
.package-accordion-card .registration-package-card-head{padding:12px 13px 7px}.package-accordion-card .registration-package-card-head h3{font-size:.92rem}.package-accordion-card .registration-package-code{padding:3px 7px;font-size:.62rem}.package-accordion-card .registration-package-price b{font-size:1rem}.registration-package-expand-hint{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 13px 11px;color:#718096;font-size:.67rem;font-weight:800}.registration-package-expand-hint span{font-size:1rem;line-height:1;transition:transform .18s ease}.package-accordion-card.selected .registration-package-expand-hint{color:#0965c7}.package-accordion-card.selected .registration-package-expand-hint span{transform:rotate(180deg)}
.registration-package-details{display:none;padding:0 13px}.package-accordion-card.selected .registration-package-details{display:block;padding:11px 13px 13px;border-top:1px solid #e7edf5}.registration-package-details>p{margin:0 0 9px;color:#65738a;font-size:.76rem;line-height:1.42}.registration-package-details .registration-package-facilities{font-size:.73rem;gap:5px}.registration-package-details .registration-package-meta{margin-top:10px}.package-accordion-card.unavailable .registration-package-expand-hint{color:#9a6a2a}.registration-package-summary{grid-template-columns:1fr auto;padding:8px 11px;margin-top:9px}.registration-package-summary>div{justify-content:center}.registration-package-summary span{font-size:.62rem}.registration-package-summary b{font-size:.8rem}.registration-package-summary small{font-size:.61rem}
.midtrans-channel-option{position:relative;align-items:center}.midtrans-channel-option.enabled{border-color:#a9d2fa;background:#f6fbff;box-shadow:0 0 0 1px rgba(11,121,230,.05)}.midtrans-channel-switch{margin-left:auto;flex:0 0 auto}.midtrans-channel-option .channel-logo img{display:block;width:auto;height:auto;max-width:46px;max-height:30px}.midtrans-channel-option .channel-logo img[src*="google.com/s2/favicons"]{width:30px;height:30px}.midtrans-channel-option>.channel-copy{flex:1 1 auto}
.payment-transaction-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.55fr);gap:9px}.payment-transaction-actions .btn{width:100%;justify-content:center;margin:0}.payment-paid-actions{justify-content:flex-end}.payment-paid-actions .btn{min-width:120px}.payment-mandiri-onecopy small b{color:#233e5c}
@media(max-width:760px){.registration-package-grid{grid-template-columns:1fr}.registration-package-visual{height:76px}.registration-package-visual svg{height:50px}.registration-package-summary{grid-template-columns:1fr 1fr}.midtrans-channel-switch .ui-switch-state{display:none}.payment-transaction-actions{grid-template-columns:1fr 1fr}.payment-paid-actions{display:grid;grid-template-columns:1fr}.payment-paid-actions .btn{width:100%}}


/* v0.11.5 payment instructions + proportional package typography */
.package-accordion-card .registration-package-card-head h3{font-weight:700;line-height:1.25;letter-spacing:0}
.package-accordion-card .registration-package-code{font-weight:700}
.package-accordion-card .registration-package-price s{font-weight:400}
.package-accordion-card .registration-package-price b{font-weight:750}
.registration-package-expand-hint{font-weight:500}
.registration-package-details>p{font-weight:400;color:#627086}
.registration-package-details .registration-package-facilities{font-weight:400}
.registration-package-details .registration-package-facilities li{font-weight:450;color:#314155}
.registration-package-details .registration-package-meta span{font-weight:600}
.registration-package-summary span{font-weight:400}.registration-package-summary b{font-weight:700}.registration-package-summary small{font-weight:400}
.payment-copy-icon{display:grid!important;place-items:center!important;flex:0 0 38px!important;width:38px!important;height:38px!important;min-width:38px!important;padding:0!important;border-radius:11px!important}
.payment-copy-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.payment-copy-icon.copied{background:#e7f8ef!important;color:#08734a!important}
.payment-mandiri-combined-code{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}.payment-mandiri-combined-code em{font:inherit;font-style:normal}.payment-mandiri-combined-code i{font-size:.75em;color:#8a98a9;font-style:normal}
.payment-howto{margin-top:10px;border:1px solid #e0e8f1;border-radius:14px;background:#fff;overflow:hidden}.payment-howto summary{list-style:none;cursor:pointer;padding:11px 13px;font-size:11px;font-weight:750;color:#1d4268;display:flex;align-items:center;justify-content:space-between}.payment-howto summary::-webkit-details-marker{display:none}.payment-howto summary:after{content:'+';font-size:17px;font-weight:500;color:#5f7c9a}.payment-howto[open] summary:after{content:'−'}.payment-howto[open] summary{border-bottom:1px solid #e8eef5}.payment-howto ol{margin:11px 15px 8px 31px;padding:0;display:grid;gap:7px;color:#4f6074;font-size:10.5px;line-height:1.45}.payment-howto p{margin:0 13px 12px;color:#6d7c8e;font-size:9.8px;line-height:1.45}.payment-howto b{font-weight:700;color:#273d56}
.payment-transaction-actions{display:flex;gap:9px}.payment-transaction-actions .btn{width:auto;min-width:150px}.payment-paid-actions{display:flex;gap:9px;flex-wrap:wrap}
@media(max-width:640px){
  .payment-section-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;width:100%;margin:20px 0 12px}.payment-section-heading>div{min-width:0}.payment-section-heading .micro-label{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}.payment-section-heading h2{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.25;margin-top:4px}.payment-expiry{justify-self:start;width:max-content;max-width:100%;white-space:nowrap}
  .payment-number-box{padding:14px}.payment-number-box>div{gap:8px}.payment-number-box strong{min-width:0;font-size:17px;line-height:1.25}.payment-mandiri-combined-code{gap:5px}.payment-copy-icon{flex-basis:36px!important;width:36px!important;height:36px!important;min-width:36px!important}
  .payment-transaction-actions{display:grid;grid-template-columns:1fr}.payment-transaction-actions .btn{width:100%;min-width:0}.payment-howto summary{font-size:10.5px}.payment-howto ol{font-size:10px}
}

/* v0.11.8: payment QRIS delivery, fee refresh and compact finance action */
.app-shell .page-actions .payment-head-actions .payment-export-btn{
  width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;
  flex:0 0 42px!important;padding:0!important;display:inline-grid!important;place-items:center!important;border-radius:12px;
}
.payment-head-actions .payment-export-btn svg{width:18px;height:18px}
@media(max-width:720px){
  .app-shell .page-actions>.payment-head-actions{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;width:100%!important;grid-column:1/-1!important}
  .app-shell .page-actions .payment-head-actions .payment-export-btn{width:42px!important;min-width:42px!important;max-width:42px!important;height:42px!important;padding:0!important}
}
.payment-qris-media{display:grid;gap:9px;align-items:center;justify-items:center;min-width:0}
.payment-qris-box .payment-qris-media>img,.payment-wallet-box .payment-qris-media>img{display:block;width:220px;max-width:100%;aspect-ratio:1;object-fit:contain;background:#fff;border:1px solid #edf2f7;border-radius:14px;padding:8px}
.payment-qris-download{width:100%;max-width:220px;min-height:38px;justify-content:center;font-size:11px!important}
.payment-fee-refresh{margin-bottom:12px}.payment-fee-refresh .mt{margin-top:10px}.payment-fee-refresh small{display:block;margin-top:8px;line-height:1.45;color:#7a5b20}
.payment-howto[open] summary:after{content:'−'}
@media(max-width:900px){.payment-qris-box .payment-qris-media>img,.payment-wallet-box .payment-qris-media>img{width:180px}.payment-qris-download{max-width:180px}}
@media(max-width:640px){
  .payment-qris-box .payment-qris-media>img,.payment-wallet-box .payment-qris-media>img{width:min(260px,100%)}
  .payment-qris-download{max-width:260px}
  .payment-fee-refresh .btn{width:100%}
}

/* v0.11.11 - Midtrans/package analytics + public pre-registration support chat */
.analytics-midtrans-panel,.analytics-package-panel{overflow:visible}
.analytics-midtrans-kpis,.analytics-package-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0}
.analytics-midtrans-kpis .kpi,.analytics-package-kpis .kpi{padding:14px;margin:0;min-width:0}.analytics-midtrans-kpis .kpi .value,.analytics-package-kpis .kpi .value{font-size:22px}
.analytics-midtrans-status{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.analytics-midtrans-status span{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#f3f6fa;color:#4c5f75;font-size:11px}.analytics-midtrans-status span.ok{background:#ecfdf3;color:#067647}.analytics-midtrans-status span.warn{background:#fffaeb;color:#b54708}
.analytics-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.analytics-method-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e6edf5;border-radius:13px;padding:11px 12px;background:#fbfdff}.analytics-method-item>div,.analytics-method-item>span{display:grid;gap:2px}.analytics-method-item>span{text-align:right}.analytics-method-item small{font-size:10px;color:var(--muted)}
.analytics-package-list{display:grid;gap:9px}.analytics-package-row{display:grid;grid-template-columns:34px minmax(0,1fr) 70px minmax(130px,.7fr);gap:12px;align-items:center;border:1px solid #e5ecf5;border-radius:14px;padding:12px;background:#fff}.analytics-package-rank{width:30px;height:30px;border-radius:10px;background:#edf5ff;color:#0759a8;display:grid;place-items:center;font-weight:900}.analytics-package-copy{min-width:0;display:grid;gap:5px}.analytics-package-copy>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-package-copy small,.analytics-package-total small,.analytics-package-money small{color:var(--muted);font-size:10px}.analytics-package-copy .bar{height:7px}.analytics-package-total,.analytics-package-money{display:grid;gap:2px;text-align:right}.analytics-package-total b{font-size:20px}.analytics-package-money b{font-size:13px}
.public-inquiry-admin-section{background:#f8fbff;border:1px solid #dce9f7;border-radius:18px;padding:16px;margin-bottom:16px}.public-inquiry-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.public-inquiry-admin-head h3{margin:3px 0 5px}.public-inquiry-admin-head p{margin:0;max-width:760px;font-size:12px}.public-inquiry-admin-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px;max-height:360px;overflow:auto;padding-right:3px}.public-inquiry-admin-card{border:1px solid #dfe8f2;background:#fff;border-radius:13px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.public-inquiry-admin-card:hover{border-color:#9ec9f6;box-shadow:0 6px 18px rgba(16,75,135,.08)}.public-inquiry-admin-card>span{display:grid;gap:3px;min-width:0}.public-inquiry-admin-card>span:last-child{text-align:right;justify-items:end}.public-inquiry-admin-card b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-inquiry-admin-card small{font-size:10px;color:var(--muted)}.public-inquiry-admin-card em{font-style:normal;background:#e63c3c;color:#fff;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;font-size:10px;font-weight:800}
.public-inquiry-statusbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}.public-inquiry-statusbar>span{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eaf8f1;color:#087149;font-size:11px;font-weight:800}.public-inquiry-modal-messages{height:min(430px,52vh);min-height:240px;border:1px solid var(--line);border-radius:16px;padding:12px;background:#f8fafc}.public-inquiry-compose{margin-top:10px}

.public-support-widget{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:4800;display:grid;justify-items:end;gap:10px;pointer-events:none}.public-support-toggle,.public-support-panel{pointer-events:auto}.public-support-toggle{border:0;border-radius:999px;background:linear-gradient(135deg,#075fb7,#0b84e8);color:#fff;box-shadow:0 16px 42px rgba(0,67,139,.28);height:52px;padding:0 18px 0 13px;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:850;cursor:pointer}.public-support-toggle-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16)}.public-support-toggle-icon svg{width:18px;height:18px}.public-support-panel{position:absolute;right:0;bottom:62px;width:min(390px,calc(100vw - 28px));max-height:min(680px,calc(100vh - 105px));background:#fff;border:1px solid #d8e5f2;border-radius:20px;box-shadow:0 24px 65px rgba(0,39,83,.28);overflow:hidden;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);transform-origin:bottom right;transition:opacity .2s ease,transform .2s ease,visibility .2s}.public-support-widget.open .public-support-panel{opacity:1;visibility:visible;transform:none}.public-support-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:15px 15px 13px;background:linear-gradient(135deg,#064c96,#0b77d0);color:#fff}.public-support-panel>header>div{display:grid;gap:2px;min-width:0}.public-support-panel>header small{font-size:8.5px;letter-spacing:.13em;font-weight:900;opacity:.85}.public-support-panel>header b{font-size:15px}.public-support-panel>header span{font-size:10px;opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-support-close{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;width:34px;height:34px;border-radius:10px;font-size:22px;line-height:1;cursor:pointer}.public-support-body{padding:14px;overflow:auto;min-height:0}.public-support-intro{padding:11px 12px;border-radius:13px;background:#f1f7fd;border:1px solid #dcebf8;margin-bottom:11px}.public-support-intro b{font-size:12px}.public-support-intro p{font-size:10.5px;line-height:1.5;color:#5b6f85;margin:4px 0 0}.public-support-form{display:grid;gap:9px}.public-support-form label{display:grid;gap:4px;font-size:10px;font-weight:800;color:#344b62}.public-support-form label small{font-weight:600;color:#8291a3}.public-support-form .input{font-size:11px;padding:10px 11px;border-radius:11px}.public-support-form textarea{resize:vertical;min-height:76px}.public-support-form .btn{width:100%;font-size:11px;padding:11px}.public-support-registered-note{display:block;color:#74869a;font-size:9.5px;line-height:1.45;text-align:center}.public-support-thread-meta{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:9px}.public-support-thread-meta span{font-size:10px;font-weight:850;color:#0759a8;background:#edf6ff;border-radius:999px;padding:6px 9px}.public-support-thread-meta small{font-size:9px;color:#7b8a9c;text-align:right;max-width:190px}.public-support-messages{height:min(365px,46vh);overflow:auto;display:flex;flex-direction:column;gap:8px;padding:3px}.public-support-bubble{align-self:flex-start;max-width:86%;background:#f1f4f8;border:1px solid #e3e8ef;border-radius:13px 13px 13px 4px;padding:9px 10px;color:#32465a;font-size:11px;line-height:1.5}.public-support-bubble.mine{align-self:flex-end;background:#eaf5ff;border-color:#cce6fb;border-radius:13px 13px 4px 13px}.public-support-bubble.system{max-width:96%;align-self:center;background:#f8fafc;color:#66788b;text-align:center;border-style:dashed}.public-support-bubble small{display:block;margin-top:5px;color:#8795a5;font-size:8.5px}.public-support-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;border-top:1px solid #edf1f5;margin-top:9px;padding-top:10px}.public-support-compose textarea{min-height:48px;max-height:100px;resize:none;font-size:11px}.public-support-compose .btn{height:48px;padding:0 14px;font-size:10px}.public-support-empty{text-align:center;color:#8795a5;font-size:10px;padding:24px 8px}
@media(max-width:1080px){.analytics-midtrans-kpis,.analytics-package-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.public-inquiry-admin-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.analytics-method-grid{grid-template-columns:1fr}.analytics-package-row{grid-template-columns:30px minmax(0,1fr) 52px}.analytics-package-money{grid-column:2/-1;text-align:left;padding-top:4px;border-top:1px dashed #e4e9ef}.public-inquiry-admin-head{display:grid}.public-inquiry-admin-list{grid-template-columns:1fr}.public-support-widget{right:12px;bottom:max(12px,env(safe-area-inset-bottom))}.public-support-toggle{height:50px;padding-right:14px}.public-support-panel{position:fixed;right:12px;bottom:72px;width:calc(100vw - 24px);max-height:calc(100dvh - 92px);border-radius:18px}.public-support-messages{height:min(360px,43dvh)}}
@media(max-width:480px){.analytics-midtrans-kpis,.analytics-package-kpis{grid-template-columns:1fr 1fr;gap:8px}.analytics-midtrans-kpis .kpi,.analytics-package-kpis .kpi{padding:11px}.analytics-midtrans-kpis .kpi .value,.analytics-package-kpis .kpi .value{font-size:18px}.public-support-toggle>span:last-child{display:none}.public-support-toggle{width:52px;padding:0;justify-content:center}.public-support-toggle-icon{background:transparent}.public-support-panel{bottom:74px}.public-support-body{padding:12px}}
.analytics-package-route-note{margin:-2px 0 12px;padding:9px 11px;border:1px solid #e6edf5;border-radius:12px;background:#f8fbff;color:#66788b;font-size:10.5px;line-height:1.45}
.public-page-v4 .toast{bottom:max(82px,calc(18px + env(safe-area-inset-bottom)))}

/* v0.11.13: pre-registration chat close control + immutable completed-session UI */
.public-inquiry-modal-head{position:relative!important;display:block!important;padding-right:52px!important;min-height:42px}
.public-inquiry-modal-head>.modal-close-btn{position:absolute!important;top:0!important;right:0!important;margin:0!important;z-index:3}
.public-inquiry-closed-note{display:block;max-width:540px;text-align:right;color:#667085;font-size:10px;line-height:1.45;font-weight:650}
@media(max-width:720px){.public-inquiry-modal-head{padding-right:46px!important}.public-inquiry-modal-head>.modal-close-btn{width:36px!important;height:36px!important}.public-inquiry-statusbar{align-items:flex-start}.public-inquiry-closed-note{max-width:62%;font-size:9.5px}}

/* v0.11.14 - marketing compare-at price / stacked promotion */
.registration-package-price{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.registration-package-price .registration-package-saving,.registration-package-saving{font-size:11px;font-weight:800;color:#15803d}.registration-package-promo-badge{display:inline-flex;width:max-content;max-width:100%;margin:7px 0 2px;padding:5px 9px;border-radius:999px;background:#ecfdf3;color:#047857;font-size:10px;font-weight:900;letter-spacing:.045em}.registration-package-form-grid .registration-package-price-preview{border:1px solid #dbe6f3;border-radius:12px;padding:10px 12px;background:#f8fbff;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.registration-package-price-preview span{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.registration-package-price-preview s{color:#94a3b8}.registration-package-price-preview b{color:#075fc6;font-size:16px}.registration-package-price-preview small{width:100%;color:#64748b}.registration-package-price-preview.valid{border-color:#bbf7d0;background:#f0fdf4}.registration-package-price-preview.invalid{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.analytics-discount-strip{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.analytics-discount-strip span{border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:7px 10px;font-size:12px;color:#64748b}.analytics-discount-strip b{color:#0f172a}.participant-package-summary s{color:#94a3b8;margin-right:4px}.participant-package-summary p b{color:#075fc6}
@media(max-width:640px){.registration-package-price{align-items:flex-start}.registration-package-card-head .registration-package-price{align-items:flex-end}.analytics-discount-strip{gap:6px}.analytics-discount-strip span{font-size:11px;padding:6px 8px}}

/* v0.11.19 - resumable Quiz Voucher + schedule-only event header */
.event-time-metric{align-content:start}.event-time-metric b{display:block;margin-top:4px;font-size:18px!important;line-height:1.08!important;letter-spacing:-.02em!important;color:var(--text)}
.marketing-quiz-resume-note{margin:14px 0 2px;padding:10px 12px;border:1px solid #b8ddcb;border-radius:12px;background:#effbf5;color:#08703f;font-size:12px;font-weight:750;line-height:1.45}
.marketing-quiz-answer-hint{align-self:center;color:var(--muted);font-size:11px;max-width:330px;line-height:1.45}.marketing-quiz-answer-hint.good{color:#08703f;font-weight:850}.marketing-quiz-answer-hint.bad{color:#bd2632;font-weight:850}
.marketing-quiz-fireworks{position:fixed;inset:0;z-index:10080;pointer-events:none;width:100vw;height:100vh}
.marketing-quiz-option.selected{border-color:#1686ed!important;background:#f0f8ff!important;box-shadow:0 0 0 2px rgba(22,134,237,.08)}.marketing-quiz-option.selected b{background:#dceeff!important;color:#075fc6}
@media(max-width:760px){.event-time-metric b{font-size:16px!important}.marketing-quiz-actions{align-items:stretch;flex-direction:column}.marketing-quiz-actions .btn{width:100%}.marketing-quiz-answer-hint{max-width:none}.marketing-quiz-resume-note{font-size:11px}}


/* v0.11.20 - per-package promotion targeting + aligned schedule metrics */
.event-metrics-v4 .event-schedule-metric,.event-metrics-v4 .event-time-metric{justify-content:center!important;text-align:left!important}
.event-metrics-v4 .event-schedule-metric>.muted.small,.event-metrics-v4 .event-time-metric>.muted.small{min-height:12px;display:block}
.event-metrics-v4 .event-schedule-metric b,.event-metrics-v4 .event-time-metric b{font-size:20px!important;line-height:1.08!important;margin-top:5px!important;letter-spacing:-.02em!important}
.registration-package-promo-targets,.registration-package-promo-eligibility{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.registration-package-promo-targets span,.registration-package-promo-eligibility span{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;letter-spacing:.035em;border:1px solid #cfe3fa;background:#eef7ff;color:#075fc6}
.registration-package-promo-targets span.on{border-color:#bbf7d0;background:#f0fdf4;color:#047857}.registration-package-promo-targets span.off{border-color:#e2e8f0;background:#f8fafc;color:#94a3b8}
.registration-package-promo-target-box{margin-top:12px}.registration-package-promo-target-box .registration-package-benefit-head small{display:block;margin-top:5px;color:#64748b;font-size:11px;line-height:1.45}.registration-package-promo-switch-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:760px){.event-metrics-v4 .event-schedule-metric b,.event-metrics-v4 .event-time-metric b{font-size:18px!important}.registration-package-promo-switch-grid{grid-template-columns:1fr!important}}

/* v0.11.21 - compact responsive Piagam/Sertifikat document studio */
.doc-template-panel{min-width:0!important}
.doc-editor-topbar{grid-template-columns:minmax(210px,.72fr) minmax(190px,.58fr) minmax(0,1.7fr)!important;gap:8px!important;margin-bottom:12px!important;align-items:stretch!important}
.doc-editor-topbar>*{min-width:0!important}
.doc-top-card{padding:10px 11px!important;border-radius:14px!important;min-width:0!important}
.doc-top-card>b{margin:0 0 6px!important;font-size:13px!important;line-height:1.2!important}
.doc-upload-form{gap:7px!important}.doc-upload-form .input{min-width:0!important}
.doc-action-row{gap:6px!important}.doc-action-row .btn{min-width:0!important;min-height:38px!important;padding:8px 10px!important;font-size:12px!important}
.doc-image-status{font-size:10px!important;line-height:1.35!important;min-height:0!important}
.doc-page-card-v0141{gap:6px!important;padding:10px 11px!important}
.doc-page-inline-v0141{gap:6px!important}.doc-page-inline-v0141>label{gap:3px!important;font-size:9.5px!important}
.doc-page-inline-v0141 .input{height:36px!important;min-height:36px!important;padding:7px 9px!important}
.doc-orientation-inline-v0141{height:36px!important;gap:3px!important;padding:3px!important}.doc-orientation-inline-v0141 .doc-orientation-icon{width:28px!important;height:28px!important;min-height:28px!important}
.doc-page-hint{font-size:9.5px!important;line-height:1.3!important;margin-top:0!important}
.doc-selected-field-editor{gap:6px!important;min-width:0!important}.doc-selected-field-head{gap:8px!important}.doc-selected-field-head b{font-size:13px!important;line-height:1.2!important}
.doc-selected-grid-v0141{grid-template-columns:64px 64px 64px minmax(105px,1fr) auto auto 42px!important;gap:5px!important;min-width:0!important}
.doc-selected-grid-v0141>label,.doc-selected-grid-v0141>div{min-width:0!important}.doc-selected-grid-v0141 .input{height:36px!important;min-height:36px!important;padding:7px 8px!important;font-size:11px!important}
.doc-selected-grid-v0141 label{font-size:9.5px!important;gap:3px!important}.doc-word-controls{gap:3px!important;min-width:0!important}.doc-word-control-label,.doc-color-control>span{font-size:9.5px!important}
.doc-word-toolbar{gap:2px!important;padding:2px!important;min-height:36px!important;max-width:100%!important}.doc-format-btn{width:30px!important;height:30px!important;min-width:30px!important}
.doc-format-btn svg{width:16px!important;height:16px!important}.doc-color-dot{width:34px!important;height:34px!important;min-width:34px!important}
.doc-selected-field-editor>small{font-size:9.5px!important;line-height:1.35!important;color:#667085!important}
.doc-field-code{font-size:9px!important;padding:3px 6px!important;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* The sidebar consumes meaningful viewport width. Reflow the selected-text card before
   its controls can collide, instead of waiting until the content column is already narrow. */
@media(max-width:1600px){
  .doc-editor-topbar{grid-template-columns:minmax(0,1fr) minmax(0,.78fr)!important}
  .doc-field-editor-host{grid-column:1/-1!important}
  .doc-selected-grid-v0141{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .doc-word-toolbar{width:max-content!important;max-width:100%!important}
  .doc-color-control{justify-items:start!important}.doc-color-control>span{text-align:left!important}
}
@media(max-width:1180px){
  .doc-editor-topbar{grid-template-columns:1fr!important}
  .doc-field-editor-host{grid-column:auto!important}
  .doc-action-row{grid-template-columns:1fr 1fr;display:grid!important}
  .doc-selected-grid-v0141{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .doc-font-field{grid-column:1/-1!important}
}
@media(max-width:760px){
  .doc-editor-topbar{gap:7px!important}.doc-top-card{padding:9px 10px!important}.doc-action-row{grid-template-columns:1fr!important}
  .doc-page-inline-v0141{grid-template-columns:1fr 1fr!important}.doc-orientation-inline-v0141{grid-column:1/-1!important;justify-self:start!important}
  .doc-selected-grid-v0141{grid-template-columns:1fr 1fr!important}.doc-font-field{grid-column:1/-1!important}
  .doc-word-toolbar{width:max-content!important}.doc-selected-field-head{align-items:flex-start!important}.doc-field-code{max-width:48%!important}
}
@media(max-width:430px){
  .doc-selected-grid-v0141{grid-template-columns:1fr!important}.doc-font-field{grid-column:auto!important}
  .doc-word-controls,.doc-color-control{justify-self:start!important}.doc-page-inline-v0141{grid-template-columns:1fr 1fr!important}
}
.doc-image-input{width:100%!important;max-width:100%!important;min-width:0!important;min-height:38px!important;font-size:11px!important;padding:6px 8px!important;overflow:hidden!important}
.doc-image-input::file-selector-button{margin-right:8px;padding:6px 9px;border:1px solid #cfd9e6;border-radius:8px;background:#fff;color:#23364d;font-weight:750;cursor:pointer}
.doc-field-editor-host .doc-selected-grid:not(.doc-selected-grid-v0141){grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;min-width:0!important}
.doc-field-editor-host .doc-selected-grid:not(.doc-selected-grid-v0141) .input{min-width:0!important;height:36px!important;min-height:36px!important}
@media(max-width:760px){.doc-field-editor-host .doc-selected-grid:not(.doc-selected-grid-v0141){grid-template-columns:1fr 1fr!important}}
@media(max-width:430px){.doc-field-editor-host .doc-selected-grid:not(.doc-selected-grid-v0141){grid-template-columns:1fr!important}}

/* ===== v0.11.31 — package header image + region-first school UX ===== */
.registration-package-visual.has-image{height:92px;background:#eef5fb;display:block;position:relative;overflow:hidden}
.registration-package-visual.has-image:before,.registration-package-visual.has-image:after{display:none}
.registration-package-visual.has-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.school-autocomplete-field .input:disabled{background:#f4f7fa;color:#8a98a8;cursor:not-allowed}
@media(max-width:760px){.registration-package-visual.has-image{height:88px}}
