/* BerkasHub — tema futuristik */
:root{
  --bg:#05070f;--bg2:#0a0f1f;
  --glass:rgba(16,24,48,.55);--glass2:rgba(22,32,64,.7);
  --line:rgba(120,160,255,.16);--line2:rgba(120,200,255,.35);
  --ink:#e8eeff;--muted:#8a96b8;
  --cyan:#22e4ff;--violet:#8b5cff;--pink:#ff4fd8;
  --grad:linear-gradient(120deg,var(--cyan),var(--violet) 55%,var(--pink));
  --green:#2ef2a0;--green-bg:rgba(46,242,160,.12);
  --red:#ff5c7a;--red-bg:rgba(255,92,122,.12);
  --warn:#ffcc4d;--warn-bg:rgba(255,204,77,.12);
  --r:16px;
  --glow:0 0 0 1px var(--line),0 10px 40px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);
  font:15px/1.55 "Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--cyan);text-decoration:none}
::selection{background:rgba(139,92,255,.5)}

/* Latar animasi */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(1200px 600px at 50% -10%,#121b3d 0%,var(--bg) 60%)}
.grid{position:absolute;inset:-50% -50% 0;background-image:linear-gradient(rgba(80,140,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(80,140,255,.09) 1px,transparent 1px);
  background-size:46px 46px;transform:perspective(700px) rotateX(58deg);transform-origin:center top;
  mask-image:linear-gradient(to bottom,transparent 10%,#000 55%,transparent 95%);-webkit-mask-image:linear-gradient(to bottom,transparent 10%,#000 55%,transparent 95%);
  animation:gridmove 14s linear infinite;top:40%}
@keyframes gridmove{to{background-position:0 46px,0 0}}
.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;animation:float 18s ease-in-out infinite}
.o1{width:420px;height:420px;background:var(--violet);top:-120px;left:-100px}
.o2{width:360px;height:360px;background:var(--cyan);top:30%;right:-120px;animation-delay:-6s;opacity:.3}
.o3{width:300px;height:300px;background:var(--pink);bottom:-120px;left:35%;animation-delay:-11s;opacity:.25}
@keyframes float{50%{transform:translate(40px,30px) scale(1.08)}}
@media (prefers-reduced-motion:reduce){.grid,.orb{animation:none}}

.wrap{max-width:1180px;margin:0 auto;padding:0 16px}

/* Header */
.top{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(5,7,15,.6);border-bottom:1px solid var(--line);margin-bottom:28px}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;gap:10px;align-items:center;color:var(--ink)}
.bname{font-family:Orbitron,sans-serif;font-weight:800;letter-spacing:.08em;font-size:17px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 0 18px rgba(34,228,255,.45)}
nav{display:flex;gap:6px}
nav a{color:var(--muted);font-weight:500;padding:7px 14px;border-radius:99px;border:1px solid transparent;transition:.2s}
nav a:hover{color:var(--ink);border-color:var(--line2);background:rgba(34,228,255,.06)}

h1,h2{font-family:Orbitron,"Space Grotesk",sans-serif;letter-spacing:.02em}
h1{font-size:24px;margin:0 0 6px;font-weight:800}
h2{font-size:15px;margin:0 0 16px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#c6d2ff}

/* Kartu kaca */
.card{position:relative;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:var(--r);padding:22px;margin-bottom:18px;box-shadow:var(--glow)}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(34,228,255,.5),transparent 35%,transparent 65%,rgba(255,79,216,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.narrow{max-width:420px;margin:7vh auto}

/* Form */
.stack{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#aab6da;text-transform:uppercase;letter-spacing:.08em}
label.check,label.inline{flex-direction:row;align-items:center;gap:10px;font-weight:500;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink)}
input,textarea,select{font:inherit;font-size:15px;text-transform:none;letter-spacing:0;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:rgba(6,10,24,.7);color:var(--ink);width:100%;transition:border-color .2s,box-shadow .2s}
input::placeholder,textarea::placeholder{color:#5c6890}
input:focus,textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,228,255,.15),0 0 20px rgba(34,228,255,.15)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;flex:none;accent-color:var(--cyan);padding:0}
input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.8) sepia(1) hue-rotate(160deg) saturate(4);cursor:pointer}
label.inline input{width:auto}

/* Tombol */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border:1px solid var(--line2);border-radius:11px;background:rgba(20,30,60,.6);color:var(--ink);font:inherit;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap;transition:.2s}
.btn:hover{border-color:var(--cyan);box-shadow:0 0 16px rgba(34,228,255,.25);transform:translateY(-1px)}
.btn.primary{border:0;color:#050816;background:var(--grad);background-size:200% 100%;box-shadow:0 0 22px rgba(139,92,255,.4)}
.btn.primary:hover{background-position:100% 0;box-shadow:0 0 30px rgba(34,228,255,.5)}
.btn.danger{color:var(--red);border-color:rgba(255,92,122,.35)}
.btn.danger:hover{border-color:var(--red);box-shadow:0 0 16px rgba(255,92,122,.3)}
.btn.sm{padding:5px 11px;font-size:13px;border-radius:9px}
.btn.big{padding:14px;font-size:16px;letter-spacing:.05em}
.btn:disabled{opacity:.6;cursor:wait}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row input{width:auto}

.muted{color:var(--muted)}.small{font-size:13px}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:13px}
.mt{margin-top:16px}.nowrap{white-space:nowrap}
.grid2{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}

/* Daftar folder */
.list{display:flex;flex-direction:column;gap:12px}
.folder{position:relative;display:flex;align-items:center;gap:16px;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;color:var(--ink);transition:.25s;overflow:hidden}
.folder::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(34,228,255,.08) 50%,transparent 70%);transform:translateX(-100%);transition:transform .6s}
.folder:hover{border-color:var(--line2);transform:translateX(4px);box-shadow:-4px 0 0 var(--cyan),0 10px 30px rgba(0,0,0,.4)}
.folder:hover::after{transform:translateX(100%)}
.ficon{width:46px;height:46px;border-radius:13px;flex:none;display:grid;place-items:center;color:var(--cyan);background:linear-gradient(140deg,rgba(34,228,255,.18),rgba(139,92,255,.18));border:1px solid var(--line2);box-shadow:inset 0 0 14px rgba(34,228,255,.15)}
.ficon.big{width:58px;height:58px;border-radius:16px}
.ficon.big svg{width:28px;height:28px}
.fbody{flex:1;display:flex;flex-direction:column;min-width:0;gap:2px}
.fbody strong{font-size:16px}

/* Badge */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.08em}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.badge.green{background:var(--green-bg);color:var(--green);border:1px solid rgba(46,242,160,.3)}
.badge.red{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,92,122,.3)}

/* Peringatan */
.alert{padding:13px 16px;border-radius:12px;margin-bottom:16px;border:1px solid;backdrop-filter:blur(10px)}
.alert.ok{background:var(--green-bg);color:#b9ffe0;border-color:rgba(46,242,160,.35)}
.alert.err{background:var(--red-bg);color:#ffc7d1;border-color:rgba(255,92,122,.35)}
.alert.warn{background:var(--warn-bg);color:#ffe9a8;border-color:rgba(255,204,77,.35)}
.alert ul{margin:8px 0 0 18px;padding:0}
.alert b{font-family:"JetBrains Mono",monospace}

.crumb{margin:0 0 8px;font-size:13px;color:var(--muted)}
.titlebar{display:flex;gap:14px;align-items:center;margin-bottom:18px;flex-wrap:wrap}

/* Link bagikan */
.share{display:flex;gap:16px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.share>div:first-child{flex:1;min-width:240px}
.share input{color:var(--cyan);background:rgba(34,228,255,.05);border-color:var(--line2);margin-top:6px}

/* Statistik */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.stat{position:relative;overflow:hidden;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;display:flex;flex-direction:column}
.stat::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--grad);opacity:.8}
.stat b{font-family:Orbitron,sans-serif;font-size:26px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.stat:nth-child(2) b{background:none;color:var(--green);text-shadow:0 0 16px rgba(46,242,160,.4)}
.stat:nth-child(3) b{background:none;color:var(--red);text-shadow:0 0 16px rgba(255,92,122,.4)}

details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
details.card>summary strong::before{content:"▸ ";color:var(--cyan);display:inline-block;transition:transform .2s}
details.card[open]>summary strong::before{content:"▾ "}

.toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}

/* Panel aksi massal */
.bulk{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 18px;position:sticky;top:72px;z-index:6;background:var(--glass2)}
.bulk #selcount{font-family:Orbitron,sans-serif;color:var(--cyan);font-size:16px}

/* Tabel */
.tablewrap{overflow-x:auto;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--r)}
table{width:100%;border-collapse:collapse}
th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#9fb0e0;background:rgba(34,228,255,.04);font-weight:600}
tbody tr{transition:background .2s}
tbody tr:hover{background:rgba(34,228,255,.04)}
tr:last-child td{border-bottom:0}
td.empty{text-align:center;color:var(--muted);padding:40px}
td:nth-child(2){font-family:"JetBrains Mono",monospace;color:var(--muted)}
.file{font-weight:500;word-break:break-all;display:inline-flex;align-items:center;gap:6px}
.file::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--cyan);box-shadow:0 0 8px var(--cyan);flex:none}
.file:hover{text-shadow:0 0 10px rgba(34,228,255,.6)}
.note{background:rgba(139,92,255,.1);border-left:2px solid var(--violet);border-radius:6px;padding:5px 9px;margin-top:6px;color:#cbc2ff}
td.nowrap{font-family:"JetBrains Mono",monospace;font-size:13px}
td.nowrap .badge{margin-top:6px;font-family:"Space Grotesk",sans-serif}
td form{display:inline-block;margin:0 2px 4px 0}
.edit{display:inline-block;position:relative}
.edit .pop{position:absolute;right:0;top:36px;width:300px;background:#0c1330;border:1px solid var(--line2);border-radius:var(--r);padding:16px;box-shadow:0 20px 50px rgba(0,0,0,.6),0 0 30px rgba(34,228,255,.12);z-index:10}

/* Halaman unggah publik */
.upload{max-width:640px;margin:2vh auto 28px}
.uphead{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.uphead h1{font-size:22px}
.desc{background:rgba(6,10,24,.6);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:18px;color:#cdd6f4}
.countdown{display:block;margin-top:2px;font-family:"JetBrains Mono",monospace;font-weight:600;color:var(--cyan);text-shadow:0 0 10px rgba(34,228,255,.5)}
.drop{position:relative;border:1.5px dashed var(--line2);border-radius:var(--r);padding:30px 20px;text-align:center;align-items:center;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500;font-size:14px;color:var(--ink);background:radial-gradient(400px 120px at 50% 0,rgba(34,228,255,.08),transparent);transition:.25s}
.drop::before{content:"";width:48px;height:48px;margin:0 auto 6px;border-radius:50%;background:var(--grad);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5'/%3E%3Cpath d='M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5'/%3E%3Cpath d='M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E") center/contain no-repeat}
.drop:hover,.drop.over{border-color:var(--cyan);background:radial-gradient(400px 160px at 50% 0,rgba(34,228,255,.16),transparent);box-shadow:0 0 30px rgba(34,228,255,.15) inset}
.drop input{display:none}
.dropmsg{font-size:16px}.dropmsg b{color:var(--cyan)}
.chosen{color:var(--green);font-weight:600;word-break:break-word}

/* Kuisioner — form publik */
select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322e4ff' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
select option{background:#0c1330;color:var(--ink)}
.q{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(6,10,24,.45);transition:border-color .2s}
.q:focus-within{border-color:var(--line2);box-shadow:0 0 0 1px rgba(34,228,255,.12),0 0 24px rgba(34,228,255,.08)}
.qlabel{font-weight:600;font-size:15px;display:flex;gap:10px;align-items:baseline}
.qno{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--cyan);flex:none;padding:2px 7px;border:1px solid var(--line2);border-radius:6px;background:rgba(34,228,255,.06)}
.req{color:var(--pink)}
.qhelp{color:var(--muted);font-size:13px;margin-top:-4px}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{flex-direction:row;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;color:var(--ink);transition:.2s}
.opt:hover{border-color:var(--line2);background:rgba(34,228,255,.04)}
.opt:has(input:checked){border-color:var(--cyan);background:rgba(34,228,255,.08);box-shadow:0 0 14px rgba(34,228,255,.12)}
.opt input{accent-color:var(--cyan)}
.scale{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sc{position:relative;flex-direction:row;text-transform:none;letter-spacing:0}
.sc input{position:absolute;opacity:0;width:1px;height:1px}
.sc span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line2);font-family:Orbitron,sans-serif;font-size:15px;color:var(--ink);cursor:pointer;transition:.2s}
.sc span:hover{border-color:var(--cyan)}
.sc input:checked+span{background:var(--grad);border-color:transparent;color:#050816;box-shadow:0 0 18px rgba(139,92,255,.5)}
.sc input:focus-visible+span{outline:2px solid var(--cyan);outline-offset:2px}

/* Kuisioner — pembuat (admin) */
#qbuilder{display:flex;flex-direction:column;gap:12px}
.qempty{padding:22px;text-align:center;color:var(--muted);border:1.5px dashed var(--line2);border-radius:14px}
.qitem{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-left:3px solid var(--violet);border-radius:14px;background:rgba(6,10,24,.5)}
.qitem:focus-within{border-left-color:var(--cyan)}
.qhead{display:grid;grid-template-columns:auto 1fr 190px;gap:10px;align-items:center}
.qhead input{font-weight:600}
.qhelpin{font-size:13px;padding:8px 12px}
.qsub{font-size:11px}
.grid2s{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qtools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.qtools .sp{flex:1}

/* Kolom jawaban di tabel rekap */
td.answers{min-width:260px;max-width:420px}
.ans{display:flex;flex-direction:column;padding:5px 0;border-bottom:1px dashed var(--line)}
.ans:last-child{border-bottom:0}
.aq{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.av{font-size:14px;word-break:break-word}

.foot{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:12px;padding:36px 16px;letter-spacing:.06em}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.3}}

@media(max-width:860px){
  .grid2,.grid3{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .edit .pop{position:fixed;left:16px;right:16px;top:90px;width:auto}
  .bulk{position:static}
  h1{font-size:20px}
  .uphead{flex-direction:column;align-items:flex-start;gap:12px}
  .qhead{grid-template-columns:auto 1fr}
  .qhead select{grid-column:1/-1}
  .grid2s{grid-template-columns:1fr}
  .sc span{width:40px;height:40px}
}
