@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
.evosis-app{--navy:#09172f;--blue:#3478f6;--cyan:#8be7e8;--gold:#ffd27a;--ink:#13223d;--muted:#70809a;--line:#e3eaf5;--paper:#f4f7fc;color:var(--ink);font-family:'DM Sans',sans-serif;max-width:1240px;margin:26px auto;background:var(--paper);border-radius:28px;overflow:hidden;position:relative;box-shadow:0 28px 90px rgba(14,34,70,.16);isolation:isolate}
.evosis-app *{box-sizing:border-box}.evosis-app h1,.evosis-app h2,.evosis-app h3{font-family:'Manrope',sans-serif;line-height:1.18}
.evosis-hero{min-height:360px;padding:30px clamp(22px,5vw,66px) 48px;color:#fff;position:relative;overflow:hidden;background:radial-gradient(ellipse at 78% 15%,rgba(63,154,255,.34),transparent 28%),radial-gradient(ellipse at 58% 100%,rgba(76,228,218,.16),transparent 35%),linear-gradient(125deg,#07142e 0%,#102b58 54%,#164779 100%)}
.evosis-hero:before{content:"";position:absolute;inset:0;opacity:.2;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent)}
.evosis-hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-90px;bottom:-250px;border:1px solid #ffffff24;box-shadow:0 0 0 28px #ffffff08,0 0 0 62px #ffffff06,0 0 0 100px #ffffff04;pointer-events:none}
.evosis-brand{display:flex;gap:13px;align-items:center;position:relative;z-index:2}.evosis-brand strong,.evosis-brand small{display:block}.evosis-brand strong{font-family:'Manrope',sans-serif;font-size:14px;letter-spacing:.08em;text-transform:uppercase}.evosis-brand small{color:#bfd3f2;font-size:11px;margin-top:5px}
.evosis-mark{display:grid;place-items:center;width:48px;height:48px;background:linear-gradient(145deg,#fff,#dbeaff);color:#0b2550;border-radius:16px;font-weight:900;font-size:12px;box-shadow:0 10px 26px #0003;transform:rotate(-4deg)}
.evosis-hero h1{font-size:clamp(38px,6vw,70px);letter-spacing:-.065em;max-width:760px;margin:48px 0 15px;font-weight:800;position:relative;z-index:1}.evosis-hero h1 em{font-style:normal;background:linear-gradient(90deg,#ffe09b,#8be7e8 75%);color:transparent;background-clip:text;-webkit-background-clip:text}
.evosis-hero>p{color:#d5e3fa;max-width:540px;font-size:15px;line-height:1.8;margin:0;position:relative;z-index:1}.evosis-status{display:inline-flex;align-items:center;gap:9px;margin-top:25px;padding:10px 14px;border:1px solid #ffffff30;border-radius:99px;background:#ffffff0c;backdrop-filter:blur(8px);font-size:11px;color:#edf5ff;position:relative;z-index:1}.evosis-dot{width:7px;height:7px;border-radius:50%;background:#f4cc7d;box-shadow:0 0 0 4px #f4cc7d25}
.evosis-message{margin:22px 28px 0;background:#e7f8ef;border:1px solid #bde8cf;color:#17633a;border-radius:14px;padding:15px 18px;font-size:13px;box-shadow:0 8px 24px #153b2208}
.evosis-login,.evosis-done{background:#fff;border:1px solid #e4eaf4;border-radius:24px;padding:clamp(24px,4vw,42px);margin:30px auto;max-width:650px;width:calc(100% - 40px);box-shadow:0 18px 55px rgba(26,52,94,.07)}
.evosis-kicker{font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--blue)}.evosis-login h2,.evosis-done h2,.evosis-section-title h2,.evosis-results h2{font-size:clamp(25px,3vw,35px);letter-spacing:-.055em;margin:10px 0}.evosis-login p,.evosis-done p,.evosis-instruction{color:var(--muted);font-size:13px;line-height:1.8}
.evosis-login form{display:grid;gap:17px;margin-top:25px}.evosis-app label{display:block}.evosis-login label{font-size:11px;font-weight:800;letter-spacing:.025em}.evosis-login input{display:block;width:100%;margin-top:8px;padding:15px 16px;border:1px solid #dce5f2;border-radius:13px;font:inherit;font-size:14px;background:#f9fbff;transition:border-color .2s,box-shadow .2s}.evosis-login input:focus{outline:0;border-color:#5b8ff5;box-shadow:0 0 0 4px #3478f61c}
.evosis-app button{font:inherit;cursor:pointer}.evosis-login button,.evosis-submit-row button{background:linear-gradient(105deg,#102650,#1e4c8a);color:#fff;border:0;border-radius:13px;padding:16px 19px;font-weight:800;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 10px 24px #143b761f;transition:transform .2s,box-shadow .2s,filter .2s}.evosis-login button:hover,.evosis-submit-row button:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 14px 28px #143b7630}.evosis-login>small{display:block;color:var(--muted);font-size:11px;margin-top:18px;line-height:1.7}
.evosis-voter{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:26px clamp(20px,4vw,54px) 0}.evosis-voter h2{margin:7px 0;font-size:25px;letter-spacing:-.04em}.evosis-voter p{margin:0;color:var(--muted);font-size:12px}.evosis-logout{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink);font-weight:700}
.evosis-candidates{padding:38px clamp(20px,4vw,54px) 50px}.evosis-section-title{display:flex;align-items:end;justify-content:space-between;gap:16px}.evosis-section-title h2{margin-bottom:0}.evosis-count{font-size:9px;font-weight:900;letter-spacing:.16em;color:#44638f;background:#e5edf9;padding:9px 11px;border-radius:8px;white-space:nowrap}.evosis-instruction{margin:13px 0 26px}
.evosis-candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.evosis-card{position:relative;background:#fff;border:1px solid #e1e8f2;border-radius:21px;overflow:hidden;cursor:pointer;transition:transform .25s,border-color .25s,box-shadow .25s;box-shadow:0 8px 24px #1b355408}.evosis-card:hover{transform:translateY(-6px);box-shadow:0 20px 42px #1b35541a}.evosis-card:has(input:checked){border:2px solid #3478f6;box-shadow:0 0 0 5px #3478f618,0 20px 42px #1b35541a;transform:translateY(-3px)}.evosis-card>input{position:absolute;opacity:0;pointer-events:none}
.evosis-card-top{display:flex;justify-content:space-between;align-items:center;padding:16px 17px 0;font-size:11px;font-weight:900;color:#3478f6;letter-spacing:.12em}.evosis-select-indicator{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#edf2fa;color:transparent;font-size:12px;transition:all .2s}.evosis-card:has(input:checked) .evosis-select-indicator{background:#3478f6;color:#fff}
.evosis-photo{display:block;width:calc(100% - 34px);height:195px;object-fit:cover;object-position:center 25%;margin:13px 17px 0;border-radius:15px;background:#e8eef7;transition:transform .35s}.evosis-card:hover .evosis-photo{transform:scale(1.015)}.evosis-photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,#fff,#e2edff 55%,#d6f4f3);color:#2358a8}.evosis-photo-placeholder span{font-family:'Manrope';font-size:46px;font-weight:900;opacity:.48;letter-spacing:-.08em}.evosis-photo-placeholder small{font-size:9px;font-weight:900;letter-spacing:.18em;margin-top:4px}
.evosis-card-content{padding:19px 19px 22px}.evosis-card-content h3{font-size:17px;margin:0;letter-spacing:-.04em;overflow-wrap:anywhere}.evosis-role{font-size:10px;color:var(--muted);margin:6px 0 0}.evosis-plus{display:grid;place-items:center;border:1px solid #e6ebf3;color:#8a9ab0;width:23px;height:23px;border-radius:50%;font-size:14px;margin:13px 0}.evosis-vision{background:linear-gradient(140deg,#f3f7fd,#f7fbff);border:1px solid #edf2f9;border-radius:12px;padding:13px;margin-top:19px}.evosis-vision strong{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#3478f6}.evosis-vision p,.evosis-card details p{font-size:11px;color:#5e6e84;line-height:1.75;margin:7px 0 0;overflow-wrap:anywhere}.evosis-card details{margin-top:13px;border-top:1px solid var(--line);padding-top:13px}.evosis-card summary{font-size:11px;color:#2358a8;font-weight:800}
.evosis-submit-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;padding:19px 20px;background:linear-gradient(115deg,#eaf0fa,#e7f8f8);border:1px solid #e1eaf4;border-radius:16px}.evosis-submit-row p{font-size:11px;line-height:1.7;color:#52637b;margin:0}.evosis-submit-row p span{font-size:16px;margin-right:6px}.evosis-submit-row button{min-width:230px}
.evosis-done{text-align:center;margin-top:30px}.evosis-check{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 18px;background:linear-gradient(145deg,#e2f7eb,#c9f0e2);color:#17864b;border-radius:21px;font-size:29px;box-shadow:0 10px 24px #17864b13}
.evosis-results{margin:0 clamp(20px,4vw,54px) 40px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:27px;box-shadow:0 12px 34px #1b355407}.evosis-results>p{font-size:12px;color:var(--muted)}.evosis-result-list{display:grid;gap:19px;margin:24px 0}.evosis-result>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px}.evosis-result>div:first-child span{color:var(--muted)}.evosis-bar{height:9px;background:#edf1f7;border-radius:99px;overflow:hidden;margin-top:10px}.evosis-bar span{display:block;height:100%;background:linear-gradient(90deg,#3478f6,#72d6d4);border-radius:99px;transition:width .8s ease}.evosis-results>small{font-size:10px;color:var(--muted)}
.evosis-footer{display:flex;justify-content:space-between;gap:12px;padding:22px clamp(20px,4vw,54px);border-top:1px solid var(--line);font-size:10px;color:#718097;background:#fff}.evosis-footer span{color:#9aa5b5}
@media(prefers-reduced-motion:reduce){.evosis-app *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:850px){.evosis-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.evosis-card:last-child:nth-child(odd){grid-column:1/-1}.evosis-card:last-child:nth-child(odd) .evosis-photo{height:240px}.evosis-submit-row{align-items:stretch;flex-direction:column}.evosis-submit-row button{width:100%;min-width:0}.evosis-hero h1{margin-top:39px}}
@media(max-width:560px){.evosis-app{margin:0;border-radius:0}.evosis-hero{padding:24px 20px 31px;min-height:0}.evosis-hero h1{font-size:38px;margin-top:36px}.evosis-hero>p{font-size:13px}.evosis-brand small{font-size:10px}.evosis-candidate-grid{grid-template-columns:1fr;gap:15px}.evosis-card:last-child:nth-child(odd){grid-column:auto}.evosis-photo,.evosis-card:last-child:nth-child(odd) .evosis-photo{height:245px}.evosis-card-content{padding:18px 19px}.evosis-voter{align-items:flex-start;padding:22px 20px 0}.evosis-voter h2{font-size:20px}.evosis-section-title{align-items:flex-start;flex-direction:column}.evosis-results{padding:21px;margin:0 16px 28px}.evosis-result>div:first-child{flex-direction:column;gap:5px}.evosis-footer{flex-direction:column}.evosis-login{width:calc(100% - 32px)}}

/* Polesan identitas sekolah dan layout responsif */
:root{--school-navy:#082653;--school-blue:#0868cf;--school-cyan:#17b8c5;--school-gold:#f7c84b}
body{margin:0;background:#eaf0f9;color:#142747;font-family:'DM Sans',Arial,sans-serif}
.site-shell{max-width:1536px;margin:0 auto;background:#f5f8fd;min-height:100vh;box-shadow:0 20px 80px #09265318}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px clamp(18px,4vw,58px);background:#fff;border-bottom:1px solid #e4ebf6;position:relative;z-index:5}
.brand{display:flex;align-items:center;gap:12px;color:#102b56;text-decoration:none;min-width:220px}.school-logo{width:48px;height:56px;object-fit:contain;filter:drop-shadow(0 5px 8px #12345b18)}.brand b,.brand small{display:block}.brand b{font-size:15px;letter-spacing:.02em}.brand small{font-size:11px;color:#6c7d99;margin-top:4px}.topbar nav{display:flex;align-items:center;gap:clamp(8px,1.7vw,24px);flex-wrap:wrap;justify-content:flex-end}.topbar nav a{color:#304767;text-decoration:none;font-size:12px;font-weight:700;padding:9px 3px}.topbar nav a:hover{color:#0874d9}.topbar nav .nav-cta{padding:11px 17px;border-radius:99px;color:#fff;background:linear-gradient(110deg,#075fbe,#0b8bd3);box-shadow:0 7px 18px #0874d92c}
.hero{position:relative;overflow:hidden;padding:clamp(35px,5vw,75px) clamp(22px,6vw,90px);color:#fff;background:radial-gradient(ellipse at 78% 12%,#2f86d780,transparent 30%),linear-gradient(120deg,#061a3d,#0a3471 65%,#087a9b);min-height:300px}.hero:after{content:'SMPN 3 WATES';position:absolute;right:5%;bottom:-30px;font-size:clamp(55px,10vw,140px);font-weight:900;letter-spacing:-.07em;color:#ffffff09;pointer-events:none}.hero-copy{max-width:720px;position:relative;z-index:1}.hero .eyebrow{font-size:10px;letter-spacing:.17em;font-weight:900;color:#d9e9ff}.hero h1{font-size:clamp(38px,6vw,76px);line-height:.99;letter-spacing:-.06em;margin:25px 0 18px;font-weight:900}.hero h1 em{font-style:normal;color:#ffd66f}.hero-copy>p{max-width:570px;color:#e0ebff;line-height:1.8;font-size:15px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:12px;padding:13px 19px;text-decoration:none;font-weight:800;font-size:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px)}.btn-gold{background:linear-gradient(110deg,#ffdf7a,#f7bd3d);color:#10264b;box-shadow:0 10px 25px #f5c54b33}.btn-ghost{border:1px solid #ffffff55;color:#fff;background:#ffffff0b}.btn-blue{background:linear-gradient(110deg,#075fbe,#0c83d4);color:white;box-shadow:0 8px 20px #0874d929}.btn-dark{background:#102d59;color:#fff}.hero-foot{display:flex;gap:20px;flex-wrap:wrap;margin-top:27px;font-size:11px;color:#e4efff}.hero-foot i{font-style:normal;color:#ffd66f;margin-right:6px}.hero-status{margin-top:24px;display:inline-flex;align-items:center;gap:12px;background:#ffffff12;border:1px solid #ffffff2b;padding:12px 16px;border-radius:14px}.hero-status b,.hero-status small{display:block}.hero-status b{font-size:12px}.hero-status small{font-size:10px;color:#c8dcfa;margin-top:4px}.section,.workspace{padding:clamp(25px,4vw,55px)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.section-head h2,.workspace h1{font-size:clamp(28px,4vw,44px);letter-spacing:-.05em;margin:9px 0}.section-head h2 em{font-style:normal;color:#0876d2}.section-head>p{max-width:370px;color:#6c7d99;font-size:12px;line-height:1.8}.eyebrow.light{font-size:10px;letter-spacing:.16em;font-weight:900;color:#1476c9}.candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.candidate-card{overflow:hidden;background:white;border:1px solid #e0e8f4;border-radius:20px;box-shadow:0 9px 30px #1b35540b;transition:transform .25s,box-shadow .25s}.candidate-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px #1b355418}.candidate-top{display:flex;justify-content:space-between;padding:18px 19px 0;color:#0876d2;font-size:11px;font-weight:900;letter-spacing:.12em}.candidate-tag{color:#7587a1}.candidate-photo{display:block;width:calc(100% - 32px);height:200px;object-fit:cover;margin:14px 16px 0;border-radius:14px;background:#e8f0fc}.candidate-photo.placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(140deg,#d9eaff,#e4fbfa);color:#2367af}.candidate-photo.placeholder span{font-size:54px;font-weight:900;opacity:.4}.candidate-photo.placeholder small{font-size:9px;letter-spacing:.14em;font-weight:900}.candidate-info{padding:20px}.candidate-info h3{font-size:17px;margin:0}.candidate-info .role{font-size:11px;color:#6e8099;margin:6px 0}.candidate-info .plus{color:#9aabc1;margin:12px 0}.vision{background:#f2f7ff;border:1px solid #e5eef9;border-radius:12px;padding:13px;margin-top:16px}.vision b{font-size:9px;letter-spacing:.14em;color:#0876d2}.vision p{font-size:11px;line-height:1.7;color:#526783}.workspace{background:#f5f8fd}.admin-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:25px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{padding:20px;background:white;border:1px solid #e2eaf5;border-radius:16px;box-shadow:0 7px 22px #102b5608}.stat-card span,.stat-card small{display:block;color:#71819b;font-size:11px}.stat-card b{display:block;font-size:31px;letter-spacing:-.05em;color:#0c2d60;margin:8px 0}.admin-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:24px 0}.admin-panels a{position:relative;display:block;text-decoration:none;color:#17335c;background:white;border:1px solid #e0e8f4;border-radius:15px;padding:18px}.admin-panels a>span{display:block;color:#0b80d5;font-size:10px;font-weight:900;margin-bottom:15px}.admin-panels b,.admin-panels small{display:block}.admin-panels b{font-size:13px}.admin-panels small{font-size:10px;color:#73839c;margin-top:6px}.admin-panels i{position:absolute;right:16px;top:15px;color:#0b80d5;font-style:normal}.narrow{max-width:920px;margin:0 auto}.admin-form,.setting-form{display:grid;gap:16px}.form-card,.upload-form,.setting-form{background:white;border:1px solid #e0e8f4;border-radius:18px;padding:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label,.setting-form label{display:grid;gap:8px;font-size:11px;font-weight:800;color:#354b6c}.form-grid input,.form-grid textarea,.setting-form input,.setting-form textarea,.setting-form select{width:100%;box-sizing:border-box;padding:12px;border:1px solid #dce5f2;border-radius:10px;background:#fbfdff;font:inherit;color:#183153}.form-grid .wide{grid-column:1/-1}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #e0e8f4;border-radius:15px}.table-wrap table{width:100%;border-collapse:collapse;font-size:12px}.table-wrap th,.table-wrap td{text-align:left;padding:13px;border-bottom:1px solid #edf1f7}.table-wrap th{background:#eef4fc;color:#3d5577;font-size:10px}.callout{padding:15px;background:#e8f4ff;border:1px solid #cce5ff;border-radius:12px;color:#28547d;font-size:12px;line-height:1.7;margin:18px 0}.callout.warning{background:#fff7df;border-color:#f4df9b;color:#785b12}.admin-subhead{margin-top:30px}.muted-note{font-size:11px;color:#6e8099;line-height:1.7}.auth-wrap{padding:45px 20px;background:linear-gradient(125deg,#e8f1ff,#f6f9ff)}.auth-card{max-width:460px;margin:auto;padding:30px;background:#fff;border-radius:22px;box-shadow:0 15px 45px #102b5614}.flash{margin:15px 25px;padding:13px 16px;border-radius:12px;background:#e4f8ec;color:#14613a;font-size:12px}.flash.error{background:#fff0f0;color:#9a2828}.success-panel,.results-public{padding:30px;background:#fff;border:1px solid #e0e8f4;border-radius:18px}.result-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.result-summary>div{padding:18px;background:#fff;border:1px solid #e0e8f4;border-radius:14px}.result-summary small,.result-summary b{display:block}.result-summary small{font-size:10px;color:#71819b}.result-summary b{font-size:27px;color:#0a3976;margin-top:7px}.result-list{display:grid;gap:18px;margin:25px 0}.result-label{display:flex;justify-content:space-between;gap:12px;font-size:12px}.bar{height:10px;background:#e6edf7;border-radius:99px;overflow:hidden;margin-top:9px}.bar span{display:block;height:100%;background:linear-gradient(90deg,#0876d2,#15b7bf);border-radius:99px}.site-shell footer{padding:22px;text-align:center;background:#fff;color:#75839a;font-size:10px;border-top:1px solid #e4ebf6}
@media(max-width:900px){.topbar{align-items:flex-start;flex-direction:column}.topbar nav{justify-content:flex-start}.candidate-grid,.admin-panels{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.topbar nav{gap:8px}.topbar nav a{font-size:11px}.hero{padding:32px 22px}.hero h1{font-size:42px}.section-head,.admin-heading{align-items:flex-start;flex-direction:column}.candidate-grid,.admin-panels,.form-grid,.result-summary{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:22px 16px}.section{padding:24px 16px}.candidate-photo{height:230px}}


/* Printable student login tickets; Indonesian F4 paper: 215 x 330 mm. */
.ticket-print-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0}
.ticket-print-head h2{width:100%;margin:0;color:#12264a}
.ticket-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5mm;margin:10px 0}
.ticket{border:1px dashed #64748b;border-radius:10px;padding:5mm;min-height:62mm;break-inside:avoid;background:#fff;color:#12264a}
.ticket-brand{display:flex;align-items:center;gap:8px;border-bottom:1px solid #dbe4f0;padding-bottom:7px}
.ticket-brand img{width:35px;height:35px;object-fit:contain}
.ticket-brand b,.ticket-brand small{display:block}
.ticket-brand b{font-size:10pt;letter-spacing:.04em}
.ticket-brand small{font-size:8pt;color:#526581}
.ticket h3{text-align:center;font-size:10pt;letter-spacing:.08em;margin:8px 0 5px}
.ticket-name{font-size:11pt;font-weight:800;text-align:center;overflow-wrap:anywhere}
.ticket-class{text-align:center;color:#526581;font-size:8pt;margin:2px 0 7px}
.ticket-credential{display:flex;justify-content:space-between;gap:8px;border:1px solid #dbe4f0;border-radius:5px;padding:6px 8px;margin:5px 0}
.ticket-credential span{font-size:7pt;color:#526581;letter-spacing:.06em}
.ticket-credential b{font-family:monospace;font-size:10pt;letter-spacing:.04em;overflow-wrap:anywhere}
.ticket p{font-size:7pt;color:#526581;text-align:center;margin:7px 0 0}
@media print{
 @page{size:215mm 330mm;margin:8mm}
 body{background:#fff!important;color:#111!important}
 .site-header,.footer,.workspace>form,.workspace>.eyebrow,.workspace>h1,.workspace>p,.workspace>.admin-subhead,.ticket-print-head button,.nav,.topbar{display:none!important}
 .workspace{max-width:none!important;width:100%!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important}
 .ticket-print-head{display:block!important;margin:0 0 5mm!important}
 .ticket-print-head h2{font-size:12pt!important;text-align:center}
 .ticket-print-head p{font-size:8pt;text-align:center;margin:2mm 0}
 .ticket-sheet{grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm;margin:0}
 .ticket{min-height:62mm;border:1px dashed #444;border-radius:0;padding:4mm;box-shadow:none!important}
 .ticket-brand img{width:30px;height:30px}
}
@media(max-width:650px){.ticket-sheet{grid-template-columns:1fr}.ticket{min-height:0}}


/* Refined student/admin authentication pages */
.evosis-app .auth-wrap{
 display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.8fr);
 align-items:center;gap:clamp(28px,5vw,74px);padding:clamp(30px,5vw,68px);
 min-height:570px;background:
 radial-gradient(circle at 8% 10%,rgba(63,135,255,.12),transparent 28%),
 linear-gradient(135deg,#edf4ff 0%,#f8fbff 58%,#eaf5ff 100%);
}
.evosis-app .auth-aside{max-width:560px;margin:0 auto;width:100%;align-self:center}
.evosis-app .auth-aside .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:.18em;color:#1874d1}
.evosis-app .auth-aside h1{font-size:clamp(38px,5vw,64px);letter-spacing:-.055em;color:#10294e;margin:18px 0}
.evosis-app .auth-aside h1 em{color:#1677d2;font-style:normal}
.evosis-app .auth-aside>p{font-size:15px;line-height:1.8;color:#5a6d89;max-width:480px}
.evosis-app .auth-photo-frame{position:relative;overflow:hidden;margin:24px 0 18px;border-radius:24px;height:230px;box-shadow:0 20px 45px rgba(21,66,125,.16);background:#dceaff}
.evosis-app .auth-photo-frame:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(0deg,rgba(5,24,53,.88),transparent);pointer-events:none}
.evosis-app .auth-photo-frame img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 42%;transition:transform .7s ease}
.evosis-app .auth-photo-frame:hover img{transform:scale(1.035)}
.evosis-app .photo-caption{position:absolute;z-index:1;left:20px;right:20px;bottom:17px;color:#fff;display:grid;gap:5px}
.evosis-app .photo-caption span{font-size:9px;font-weight:800;letter-spacing:.16em;color:#a8dcff}
.evosis-app .photo-caption b{font-family:'Manrope',sans-serif;font-size:17px}
.evosis-app .auth-note{display:flex;gap:9px;align-items:flex-start;color:#425a7b;font-size:12px;line-height:1.7;background:rgba(255,255,255,.68);border:1px solid #dce8f7;border-radius:13px;padding:12px 14px}
.evosis-app .auth-card{width:100%;max-width:430px;margin:0 auto;padding:clamp(24px,3vw,38px);border:1px solid rgba(220,231,246,.9);border-radius:26px;box-shadow:0 24px 65px rgba(19,54,101,.13);background:rgba(255,255,255,.96)}
.evosis-app .auth-card .eyebrow{display:inline-block;color:#1677d2;font-size:9px;font-weight:800;letter-spacing:.18em;margin-bottom:10px}
.evosis-app .auth-card h2{font-size:28px;letter-spacing:-.035em;color:#10294e;margin:5px 0 10px}
.evosis-app .auth-card>p{color:#71809a;font-size:13px;line-height:1.7;margin:0 0 22px}
.evosis-app .auth-card form{display:grid;gap:16px}
.evosis-app .auth-card label{display:grid;gap:8px;font-size:12px;font-weight:700;color:#263e60}
.evosis-app .auth-card input{display:block;width:100%;min-width:0;border:1px solid #d8e3f2;border-radius:12px;background:#f9fbff;padding:14px 15px;font:inherit;font-size:13px;color:#10294e;outline:none;transition:border-color .2s,box-shadow .2s}
.evosis-app .auth-card input:focus{border-color:#3387ed;box-shadow:0 0 0 4px rgba(51,135,237,.13);background:#fff}
.evosis-app .auth-card .btn{width:100%;min-height:48px;justify-content:center;border:0;border-radius:13px;box-shadow:0 9px 20px rgba(25,116,213,.2);font-size:13px}
.evosis-app .auth-card small{display:block;color:#74849c;font-size:10px;line-height:1.7;margin-top:16px}
.evosis-app .admin-auth{background:radial-gradient(circle at 95% 0%,rgba(255,204,112,.2),transparent 24%),linear-gradient(135deg,#eef4ff,#f9fbff)}
.evosis-app .admin-auth .auth-aside .eyebrow{color:#9b6a0b}
.evosis-app .admin-auth .auth-aside h1 em{color:#c68b18}
.evosis-app .admin-auth .auth-photo-frame{height:210px}
.evosis-app .admin-auth .photo-caption span{color:#ffe2a1}
.evosis-app .admin-auth .auth-card .eyebrow{color:#b47a0d}
.evosis-app .admin-auth .auth-card .btn{background:linear-gradient(100deg,#12376b,#1769b6)}
@media(max-width:850px){
 .evosis-app .auth-wrap{grid-template-columns:1fr;gap:24px;padding:28px 20px}
 .evosis-app .auth-aside{max-width:600px}
 .evosis-app .auth-aside h1{font-size:42px}
 .evosis-app .auth-photo-frame{height:220px}
 .evosis-app .auth-card{max-width:600px}
}
@media(max-width:480px){
 .evosis-app .auth-wrap{padding:24px 14px;gap:20px}
 .evosis-app .auth-aside h1{font-size:36px}
 .evosis-app .auth-photo-frame{height:185px;border-radius:18px}
 .evosis-app .auth-card{padding:23px 18px;border-radius:20px}
 .evosis-app .auth-card h2{font-size:24px}
}


/* Login refinement + student record management */
.evosis-app .auth-wrap{width:100%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.82fr);align-items:center;gap:clamp(24px,4vw,68px);padding:clamp(28px,5vw,72px);min-height:calc(100vh - 125px)}
.evosis-app .auth-wrap .auth-card{box-sizing:border-box}
.evosis-app .auth-card form{display:grid;gap:16px;margin-top:22px}
.evosis-app .auth-card label{display:grid;gap:8px;color:#304766;font-size:12px;font-weight:700}
.evosis-app .auth-card input{width:100%;box-sizing:border-box;min-height:48px;border:1px solid #d8e3f1;border-radius:12px;padding:12px 14px;background:#fbfdff;color:#12294b;font:inherit;font-weight:400;outline:none;transition:border-color .2s,box-shadow .2s}
.evosis-app .auth-card input:focus{border-color:#1681df;box-shadow:0 0 0 4px rgba(22,129,223,.12)}
.evosis-app .auth-card .btn{width:100%;justify-content:center;min-height:48px}
.evosis-app .auth-card form p{margin:0}
.evosis-app .auth-card>p{color:#657791;line-height:1.7;font-size:13px}
.evosis-app .admin-auth{background:radial-gradient(circle at 10% 15%,rgba(245,185,66,.16),transparent 27%),linear-gradient(135deg,#eef4ff,#fbfcff 55%,#fff7e7)}
.evosis-app .admin-auth .auth-aside .eyebrow{color:#a46a0a}
.evosis-app .admin-auth .auth-aside h1 em{color:#c58a18}
.evosis-app .admin-auth .auth-card .eyebrow{color:#b37a12}
.evosis-app .auth-photo-frame{height:clamp(230px,28vw,360px)}
.evosis-app .auth-photo-frame img{object-position:center 42%}
.evosis-app .student-management{max-width:1380px;margin:28px auto;padding:clamp(20px,3vw,38px)}
.evosis-app .management-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.evosis-app .management-heading h1{font-size:clamp(32px,4vw,46px);letter-spacing:-.04em;color:#112b50;margin:12px 0}
.evosis-app .management-heading p{color:#647792;line-height:1.7;max-width:680px}
.evosis-app .management-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}
.evosis-app .management-stats>div{background:linear-gradient(135deg,#fff,#f5f9ff);border:1px solid #e0e9f5;border-radius:16px;padding:18px 20px}
.evosis-app .management-stats span,.evosis-app .management-stats b{display:block}
.evosis-app .management-stats span{font-size:12px;color:#657791}
.evosis-app .management-stats b{font-size:28px;color:#125da8;margin-top:8px}
.evosis-app .student-search{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.evosis-app .student-search input{flex:1;min-width:220px;min-height:44px;border:1px solid #d8e3f1;border-radius:12px;padding:10px 14px;font:inherit;box-sizing:border-box}
.evosis-app .student-table-wrap{overflow:auto;border:1px solid #e0e8f3;border-radius:16px;background:#fff}
.evosis-app .student-table{width:100%;border-collapse:collapse;min-width:850px;font-size:12px}
.evosis-app .student-table th{background:#f0f6ff;color:#385575;text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:14px 16px}
.evosis-app .student-table td{padding:14px 16px;border-top:1px solid #edf1f7;color:#415571;vertical-align:middle}
.evosis-app .student-table tbody tr:hover{background:#f9fbff}
.evosis-app .student-table td b{color:#172f50}
.evosis-app .student-table code{background:#f1f5fb;border-radius:6px;padding:5px 7px;color:#1d5c9f}
.evosis-app .student-status{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}
.evosis-app .student-status.pending{background:#fff5df;color:#94630b}
.evosis-app .student-status.done{background:#e7f8ee;color:#187246}
.evosis-app .delete-student-form{margin:0}
.evosis-app .btn-delete{border:1px solid #ffd1d1;background:#fff2f2;color:#b42323;border-radius:9px;padding:8px 12px;font:inherit;font-weight:800;cursor:pointer}
.evosis-app .btn-delete:hover{background:#ffe0e0}
.evosis-app .protected-label{font-size:10px;color:#72819a;font-weight:700}
.evosis-app .empty-state{text-align:center;padding:28px!important;color:#71819a!important}
.evosis-app .table-note{font-size:11px;color:#6b7c95;margin-top:12px}
@media(max-width:820px){
 .evosis-app .auth-wrap{grid-template-columns:1fr;min-height:0;padding:26px 18px;gap:22px}
 .evosis-app .auth-aside{max-width:680px}
 .evosis-app .auth-aside h1{font-size:clamp(36px,9vw,54px)}
 .evosis-app .auth-photo-frame{height:clamp(190px,48vw,300px);margin:18px 0 12px}
 .evosis-app .auth-card{max-width:560px}
 .evosis-app .management-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){
 .evosis-app .auth-wrap{padding:22px 14px}
 .evosis-app .auth-card{padding:22px 18px;border-radius:20px}
 .evosis-app .auth-card h2{font-size:24px}
 .evosis-app .management-stats{grid-template-columns:1fr}
 .evosis-app .student-search>*{width:100%}
 .evosis-app .student-search input{min-width:0}
}


/* Admin reporting and printable A4 election minutes */
.report-workspace{max-width:1240px;margin:28px auto;padding:clamp(16px,3vw,36px);box-sizing:border-box}
.report-tools{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:24px}
.report-tools>div:first-child{flex:1;min-width:250px}
.report-tools h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.04em;color:#122b4d;margin:10px 0}
.report-tools p{color:#63758f;line-height:1.7}
.report-meta-form{width:100%;max-width:850px;background:#fff;border:1px solid #e1e9f4;border-radius:16px;padding:20px;box-sizing:border-box}
.report-meta-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.report-meta-form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#334967}
.report-meta-form label.wide{grid-column:1/-1}
.report-meta-form input,.report-meta-form textarea{box-sizing:border-box;width:100%;border:1px solid #d9e4f1;border-radius:10px;padding:11px;font:inherit}
.official-report{background:#fff;color:#171717;max-width:210mm;margin:0 auto;padding:14mm;box-sizing:border-box;border:1px solid #e0e0e0;box-shadow:0 10px 35px rgba(20,45,80,.08);font-family:Arial,sans-serif;font-size:11pt;line-height:1.45}
.report-header{display:grid;grid-template-columns:25mm 1fr;align-items:center;gap:7mm;text-align:center}
.report-header img{width:24mm;height:24mm;object-fit:contain}
.report-header h2{font-size:12pt;margin:0;font-weight:800}
.report-header p{font-size:11pt;font-weight:800;margin:7px 0 0}
.report-header small{font-size:9pt}
.report-rule{border-top:3px double #111;margin:5mm 0}
.report-title{text-align:center;font-size:12pt;margin:7mm 0;text-decoration:underline}
.report-paragraph{text-align:justify;margin:5mm 0}
.report-table{width:100%;border-collapse:collapse;font-size:9pt;margin:6mm 0}
.report-table th,.report-table td{border:1px solid #333;padding:7px 6px;vertical-align:top}
.report-table th{text-align:center;background:#f0f0f0}
.report-table td:nth-child(n+3){text-align:center}
.report-total td{font-weight:800;background:#f5f5f5}
.report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5mm;margin:6mm 0}
.report-summary>div{border:1px solid #888;padding:3mm;text-align:center}
.report-summary span,.report-summary b{display:block}
.report-summary span{font-size:8pt}
.report-summary b{font-size:14pt;margin-top:2mm}
.report-signatures{display:grid;grid-template-columns:1fr 1fr;gap:20mm;margin-top:12mm;text-align:center;font-size:10pt}
.report-signatures p{min-height:12mm}
.signature-space{height:22mm}
.report-foot{border-top:1px solid #aaa;margin-top:10mm;padding-top:3mm;font-size:8pt;color:#555}
.report-warning{border:1px solid #b91c1c;padding:8px;color:#991b1b;font-weight:700;text-align:center}
@media(max-width:650px){
 .report-meta-form .form-grid,.report-summary{grid-template-columns:1fr}
 .report-meta-form label.wide{grid-column:auto}
 .official-report{padding:8mm;font-size:9pt;overflow-x:auto}
 .report-table{font-size:7.5pt}
 .report-table th,.report-table td{padding:4px 3px}
 .report-header{grid-template-columns:18mm 1fr;gap:3mm}
 .report-header img{width:17mm;height:17mm}
 .report-header h2,.report-header p{font-size:9pt}
}
@media print{
 @page{size:A4 portrait;margin:12mm}
 html,body{width:auto!important;overflow:visible!important;background:#fff!important}
 .site-shell{width:auto!important;max-width:none!important;margin:0!important;box-shadow:none!important;border:0!important;overflow:visible!important}
 .topbar,.footer,.no-print,.report-tools,.flash,.site-header,.nav{display:none!important}
 .report-workspace{max-width:none!important;margin:0!important;padding:0!important;width:100%!important}
 .official-report{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;font-size:10pt;line-height:1.35}
 .report-table{font-size:8.5pt}
 .report-summary{break-inside:avoid}
 .report-signatures{break-inside:avoid}
}

/* FIX LAYOUT: gulir vertikal aktif, seluruh konten terlihat, dan lebar memenuhi layar */
html{min-height:100%;height:auto!important;overflow-x:hidden!important;overflow-y:auto!important;scroll-behavior:auto}
body{min-height:100%;height:auto!important;overflow-x:hidden!important;overflow-y:auto!important}
.site-shell{width:100%!important;max-width:none!important;min-height:100vh;height:auto!important;margin:0!important;overflow:visible!important}
.evosis-app{width:100%!important;max-width:none!important;min-height:100vh;height:auto!important;margin:0!important;border-radius:0!important;overflow:visible!important}
.workspace,.section,.report-workspace,.student-management{width:100%;max-width:none;box-sizing:border-box}
.workspace,.section{overflow:visible!important}
.evosis-app .auth-wrap{width:100%;box-sizing:border-box}
.evosis-app img{max-width:100%}
@media(min-width:1200px){.workspace,.section{padding-left:clamp(28px,4vw,72px);padding-right:clamp(28px,4vw,72px)}}
@media(max-width:700px){.site-shell,.evosis-app{border-radius:0!important}.workspace,.section{padding-left:16px;padding-right:16px}.table-wrap,.student-table-wrap{max-width:100%;overflow-x:auto!important}}
