/* Gaya bersama aplikasi BES (voting, kelompok, timer, nota, qr, berkas) */
:root{--navy:#0B1120;--mid:#111827;--card:#141E30;--line:#1F2D45;--txt:#F8FAFC;--mut:#94A3B8;--soft:#CBD5E1;--acc:#3B82F6;--acc2:#2563EB;--glow:rgba(59,130,246,.18);--ok:#22C55E;--bad:#EF4444;--font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--disp:'Plus Jakarta Sans','Inter',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:radial-gradient(900px 480px at 12% -8%,var(--glow),transparent 70%),var(--navy);color:var(--txt);line-height:1.6;min-height:100vh}
a{color:var(--acc)}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:12px 5%;background:rgba(11,17,32,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top .back{display:inline-flex;align-items:center;gap:6px;color:var(--mut);text-decoration:none;font-size:.85rem}
.top .back:hover{color:var(--txt)}
.top .back svg{width:14px;height:14px}
.top .ttl{font-family:var(--disp);font-weight:800;font-size:1.05rem;margin-left:auto;margin-right:auto;padding-right:70px}
.wrap{max-width:1120px;margin:0 auto;padding:34px 5% 60px}
.hero{margin-bottom:26px}
.hero h1{font-family:var(--disp);font-size:clamp(1.6rem,3.6vw,2.3rem);font-weight:800;letter-spacing:-.02em;line-height:1.2}
.hero p{color:var(--mut);margin-top:8px;max-width:640px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}
.card+.card{margin-top:16px}
.card h2{font-family:var(--disp);font-size:1.05rem;font-weight:700;margin-bottom:12px}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:18px;align-items:start}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row.end{justify-content:flex-end}
.field{margin-bottom:14px}
label,.lbl{display:block;font-size:.8rem;color:var(--mut);margin-bottom:6px;font-weight:500}
input[type=text],input[type=number],input[type=date],input[type=search],input[type=tel],input[type=email],input[type=password],select,textarea{width:100%;background:#0f1828;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:.92rem;outline:none;transition:border-color .15s}
input:focus,select:focus,textarea:focus{border-color:var(--acc)}
textarea{min-height:130px;resize:vertical}
input[type=color]{width:46px;height:38px;border:1px solid var(--line);border-radius:8px;background:#0f1828;padding:3px;cursor:pointer}
input[type=range]{width:100%;accent-color:var(--acc)}
input[type=checkbox],input[type=radio]{accent-color:var(--acc);width:16px;height:16px}
.chk{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--soft);margin:0;cursor:pointer}
button,.btn{font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;border:1px solid var(--line);background:#182540;color:var(--txt);text-decoration:none;transition:border-color .15s,transform .15s,background .15s}
button:hover:not(:disabled),.btn:hover{border-color:var(--acc)}
button:disabled{opacity:.5;cursor:not-allowed}
button:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.btn-pri{background:linear-gradient(135deg,var(--acc),var(--acc2));border:0;color:#fff;box-shadow:0 8px 24px var(--glow)}
.btn-pri:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}
.btn-ghost{background:transparent}
.btn-bad{color:#fca5a5}
.btn-sm{padding:6px 12px;font-size:.8rem;border-radius:8px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.tabs button{background:transparent;color:var(--mut)}
.tabs button.on{background:var(--acc);border-color:var(--acc);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:5px 12px;border-radius:999px;font-size:.78rem;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--soft)}
.muted{color:var(--mut);font-size:.85rem}
.hide{display:none!important}
.drop{border:2px dashed var(--line);border-radius:14px;padding:30px 18px;text-align:center;color:var(--mut);cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover,.drop.over{border-color:var(--acc);background:rgba(59,130,246,.06)}
.drop b{color:var(--txt)}
.list{display:grid;gap:8px;margin-top:14px}
.item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#0f1828;border:1px solid var(--line);border-radius:10px}
.item .nm{flex:1;min-width:0;word-break:break-word;font-size:.9rem}
.item .nm small{display:block;color:var(--mut);font-size:.75rem}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--bad);color:#fff;padding:10px 18px;border-radius:10px;font-size:.88rem;z-index:99;display:none;max-width:90vw}
.toast.ok{background:var(--ok);color:#052e16}
.foot{max-width:1120px;margin:0 auto;padding:0 5% 40px;color:var(--mut);font-size:.8rem}
.foot a{color:var(--soft)}
@media(max-width:860px){.grid2{grid-template-columns:1fr}.top .ttl{padding-right:0;margin-right:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
