:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:#fafaff;background:#09091f;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(ellipse at 53% 50%,#171244 0,#09091f 65%)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:inherit;text-decoration:none}.glow{position:fixed;border-radius:50%;filter:blur(95px);pointer-events:none;opacity:.25}.glow-a{width:420px;height:420px;background:#8837ff;top:-220px;left:18%}.glow-b{width:430px;height:430px;background:#167bd9;bottom:-260px;right:0}.app{position:relative;max-width:1320px;margin:auto;padding:0 36px}.topbar{height:98px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff10}.brand{font-size:21px;font-weight:950;letter-spacing:1px;display:flex;align-items:center;gap:11px}.brand-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:linear-gradient(140deg,#a94aff,#4434c5);color:#ffdd83;font-size:28px}.brand small{font-size:10px;letter-spacing:2px;color:#a7a7c7;vertical-align:middle}.accent{color:#b477ff}.toplink{font-size:13px;font-weight:700;color:#afadcf;transition:.2s}.toplink:hover{color:white}.hero{min-height:calc(100vh - 140px);display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:32px;padding:58px 0}.eyebrow,.minor{font-size:11px;font-weight:850;letter-spacing:2px;color:#d6aaff}.intro h1{font-size:clamp(45px,5.3vw,77px);letter-spacing:-3px;line-height:1.07;margin:23px 0}.intro h1 span{color:#c48dff}.intro>p{color:#b9b8d4;font-size:16px;line-height:1.85;max-width:510px;margin-bottom:35px}.voucher-card{padding:26px;background:linear-gradient(135deg,#211b4d,#141431);border:1px solid #514583;border-radius:22px;max-width:530px;box-shadow:0 14px 55px #0004}.voucher-card .minor{margin-bottom:18px}.voucher-card label,.panel label,.auth-card label{display:block;font-size:12px;font-weight:750;margin-bottom:10px;color:#ddd9f6}.voucher-line{display:flex;gap:8px}.voucher-line input{min-width:0;flex:1}.voucher-card input,.admin-app input,.admin-app textarea{width:100%;background:#090b26;color:#fff;border:1px solid #494267;border-radius:11px;padding:15px 16px;outline:none;font-size:13px}.voucher-card input:focus,.admin-app input:focus{border-color:#ad71ff;box-shadow:0 0 0 3px #a76dff1d}.button{border:0;background:linear-gradient(120deg,#b979ff,#794bff);color:white;font-weight:850;padding:15px 21px;border-radius:11px;white-space:nowrap;box-shadow:0 8px 25px #723ffc40}.button:hover:not(:disabled){filter:brightness(1.13)}.form-note{font-size:12px;color:#aaa9ca;margin-top:14px;line-height:1.55}.form-note.success{color:#5debc0}.form-note.error{color:#ff879f}.feature-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:25px;color:#a5a2c3;font-size:12px}.wheel-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.wheel-frame{width:min(100%,590px);aspect-ratio:1;position:relative;border:11px solid #272151;border-radius:50%;box-shadow:0 0 0 2px #7050bc,0 0 0 12px #1a163a,0 0 65px #7247ff38,0 28px 80px #000a;background:#130e2e;display:grid;place-items:center}.wheel-frame:after{position:absolute;content:"";inset:3px;border-radius:50%;border:4px dotted #e8b96d;pointer-events:none;opacity:.7}#wheel{width:100%;height:100%;border-radius:50%;display:block;transition:none}.hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:92px;height:92px;background:radial-gradient(circle at 30% 20%,#fcf0b5,#bd78e1 50%,#5933ad);box-shadow:0 5px 17px #0009,0 0 0 7px #f3d38c;border-radius:50%;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;color:#180d3c;line-height:1}.hub span{font-size:27px}.hub small{font-size:11px;font-weight:950;letter-spacing:1px}.pointer{position:absolute;z-index:2;left:50%;top:-24px;transform:translateX(-50%);filter:drop-shadow(0 5px 5px #0008)}.orbit{position:absolute;border:1px solid #453071;border-radius:50%;pointer-events:none}.orbit-one{width:110%;aspect-ratio:1}.orbit-two{width:123%;aspect-ratio:1;border-style:dashed;opacity:.28}.spin-btn{margin-top:37px;padding:18px 35px;min-width:min(100%,355px);border-radius:13px;border:1px solid #f2ce98;background:linear-gradient(135deg,#ffdf99,#d3a858);color:#30204f;font-weight:950;letter-spacing:.7px;box-shadow:0 10px 30px #bd852c4a}.wheel-hint{font-size:12px;color:#9f9cbf;margin:14px 0}.public-app footer{text-align:center;font-size:10px;letter-spacing:2px;color:#68668a;padding:20px}.modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px}.modal[hidden],#dashboard[hidden],#auth[hidden],#codesBox[hidden],.toast[hidden]{display:none!important}.modal-backdrop{position:absolute;inset:0;background:#050510d9;backdrop-filter:blur(8px)}.result-card{position:relative;width:min(100%,430px);padding:34px;text-align:center;background:linear-gradient(145deg,#272058,#12142f);border:1px solid #9874db;border-radius:25px;box-shadow:0 30px 90px #000b}.sparkle{color:#ffd98d;letter-spacing:26px;margin-left:26px}.result-emoji{font-size:68px;margin:15px}.result-card h2{font-size:37px;margin:14px 0;color:#ffdb91}.result-card p{color:#ccc8e6}.result-card .notice{font-size:12px;line-height:1.6;margin:26px 0}.result-code{font-weight:800}.admin-wrap{padding:44px 0 75px}.auth-card{margin:50px auto;width:min(100%,450px);padding:36px;background:#181737;border:1px solid #534582;border-radius:24px}.auth-card h1,.admin-heading h1{font-size:38px;margin:12px 0;letter-spacing:-1.5px}.auth-card p,.admin-heading p,.small-muted{color:#aaa8cb;line-height:1.7;font-size:13px}.auth-card form{margin-top:27px}.full{width:100%;margin-top:15px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.ghost-button{background:#242044;border:1px solid #585075;border-radius:10px;padding:11px 18px;color:#e4ddff;font-weight:750}.ghost-button:hover{border-color:#c29afc}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:22px}.stat,.panel{border:1px solid #3b345f;background:linear-gradient(150deg,#1a183b,#101129);border-radius:20px;padding:24px}.stat strong{font-size:35px;display:block;margin-top:9px}.stat span{font-size:12px;color:#b6b0d5}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:25px}.panel h2{font-size:22px;letter-spacing:-.5px;margin:9px 0}.pill{padding:7px 10px;border-radius:99px;background:#423267;color:#d8c0ff;font-size:10px;font-weight:800}.fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inlinehead{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0 10px;font-size:12px}.link-button{border:0;background:transparent;color:#c596ff;padding:0;font-size:12px;font-weight:750}.admin-app textarea{resize:vertical}.prize-row{display:grid;grid-template-columns:19px 1fr 75px 34px 30px;gap:8px;align-items:center;margin-bottom:9px}.prize-row input[type=color]{padding:2px;width:34px;height:34px;border-radius:8px}.prize-row input[type=checkbox]{width:17px;height:17px;accent-color:#9b65f5}.prize-row .name{min-width:0}.prize-row .weight{padding:12px 5px;text-align:center}.prize-row button{color:#f58ea1;background:transparent;border:0;font-size:19px}.prize-labels{display:grid;grid-template-columns:19px 1fr 75px 34px 30px;gap:8px;color:#9692b4;font-size:10px;margin-bottom:9px}.log-panel,.password-panel{margin-top:20px}.table-scroll{overflow:auto;max-height:390px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#a99dc9;font-size:11px;letter-spacing:1px}td,th{padding:14px;border-bottom:1px solid #ffffff15}td{color:#dfd9ef}.toast{position:fixed;bottom:26px;right:26px;max-width:400px;padding:14px 20px;color:white;background:#523d97;border:1px solid #a279eb;border-radius:11px;box-shadow:0 15px 40px #0008;font-size:13px;z-index:30}@media(max-width:940px){.hero{grid-template-columns:1fr;gap:70px;text-align:center;padding:44px 0}.intro>p,.voucher-card{margin-left:auto;margin-right:auto}.feature-row{justify-content:center}.wheel-frame{width:min(100%,520px)}.admin-grid{grid-template-columns:1fr}}@media(max-width:560px){.app{padding:0 18px}.topbar{height:76px}.hero{gap:52px}.intro h1{font-size:45px;letter-spacing:-2px}.intro>p{font-size:14px}.voucher-card{padding:20px 16px}.voucher-line{flex-direction:column}.wheel-frame{border-width:7px}.hub{width:65px;height:65px;box-shadow:0 0 0 4px #f3d38c}.hub span{font-size:18px}.hub small{font-size:8px}.pointer{top:-25px}.feature-row{gap:10px}.wheel-stage{padding:12px}.admin-wrap{padding:26px 0}.stats{gap:7px}.stat,.panel{padding:16px}.stat strong{font-size:24px}.admin-heading h1,.auth-card h1{font-size:28px}.fieldgrid{grid-template-columns:1fr}.prize-row{grid-template-columns:17px 1fr 56px 30px 20px;gap:5px}.prize-labels{grid-template-columns:17px 1fr 56px 30px 20px}.prize-row .name,.prize-row .weight{padding:10px 5px;font-size:11px}.admin-heading{align-items:start}}

/* Manajemen voucher */
.voucher-actions{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.voucher-pages{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:14px}.danger-button{border-color:#b4476e!important;color:#ffb8ca!important}.status-used{color:#ff9eb5;font-weight:700}.status-available{color:#83eac4;font-weight:700}#voucherRows td{white-space:nowrap}#voucherManager select{width:100%;background:#12112e;color:#fff;border:1px solid #515079;border-radius:9px;padding:12px}button:disabled{opacity:.4;cursor:not-allowed}
