/* ═══════════════════════════════════
   CLOSERIAI — Admin styles
   ═══════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:#080808;color:#e2e2f0;font-family:'Sora',sans-serif;min-height:100vh}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:#222;border-radius:4px}
button{font-family:'Sora',sans-serif}

#login{position:fixed;inset:0;background:#080808;display:flex;align-items:center;justify-content:center;z-index:99}
.lbox{background:#111;border:1px solid #1e1e26;border-radius:16px;padding:32px;width:90%;max-width:320px;text-align:center}
.lbox h2{font-size:20px;font-weight:800;margin-bottom:4px;color:#f0f0ff}
.lbox p{font-size:12px;color:#555;margin-bottom:20px}
.linput{width:100%;background:#080808;border:1px solid #252530;border-radius:10px;padding:11px 14px;color:#f0f0f0;font-size:14px;font-family:'JetBrains Mono',monospace;outline:none;margin-bottom:10px;text-align:center}
.linput:focus{border-color:rgba(232,74,95,.4)}
.lbtn{width:100%;background:linear-gradient(135deg,#e84a5f,#8b5cf6);border:none;border-radius:10px;padding:12px;color:#fff;font-size:14px;font-weight:700;cursor:pointer}
.lerr{color:#ef4444;font-size:12px;margin-top:8px;display:none}

.admin-app{padding:24px;max-width:900px;margin:0 auto}
.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:10px}
.top h1{font-size:20px;font-weight:800}
.top p{font-size:12px;color:#555;margin-top:2px}
.rbtn{background:#111;border:1px solid #252530;border-radius:8px;padding:7px 14px;color:#888;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}
.rbtn:hover{color:#f0f0f0}

.notice{background:rgba(139,92,246,.07);border:1px solid rgba(139,92,246,.2);border-radius:10px;padding:12px 16px;margin-bottom:20px;font-size:12px;color:#a78bfa}

.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
.stat{background:#111;border:1px solid #1e1e26;border-radius:12px;padding:16px}
.stat-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#555;margin-bottom:6px}
.stat-val{font-size:28px;font-weight:900;font-family:'JetBrains Mono',monospace}
.stat.s1 .stat-val{color:#f0f0f0}
.stat.s2 .stat-val{color:#ef4444}

.section{background:#111;border:1px solid #1e1e26;border-radius:14px;overflow:visible;margin-bottom:16px}
#codes-table{overflow:hidden;border-radius:0 0 14px 14px}
.section-head{padding:14px 16px;border-bottom:1px solid #161620}
.section-head h3{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#555}
.blocked-list{padding:12px 16px;display:flex;flex-wrap:wrap;gap:8px;min-height:44px}
.blocked-ip{display:flex;align-items:center;gap:6px;background:#1a1a1a;border:1px solid #252530;border-radius:7px;padding:5px 10px;font-family:'JetBrains Mono',monospace;font-size:11px;color:#f59e0b}
.unblock-btn{background:none;border:none;color:#555;cursor:pointer;font-size:12px;transition:color .15s}
.unblock-btn:hover{color:#ef4444}
.block-row{display:flex;gap:8px;padding:0 16px 14px;align-items:center}
.block-input{flex:1;background:#0a0a0d;border:1px solid #252530;border-radius:8px;padding:8px 12px;color:#f0f0f0;font-size:12px;font-family:'JetBrains Mono',monospace;outline:none}
.block-input:focus{border-color:rgba(245,158,11,.4)}
.block-btn{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);border-radius:8px;padding:8px 14px;color:#f59e0b;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}
.block-btn:hover{background:rgba(245,158,11,.2)}
.no-blocked{padding:14px;font-size:12px;color:#333;text-align:center}

.thead{display:grid;grid-template-columns:120px 90px 140px 1fr;padding:10px 16px;border-bottom:1px solid #161620;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#444}
.trow{display:grid;grid-template-columns:120px 90px 140px 1fr;padding:12px 16px;border-bottom:1px solid #111820;align-items:center;transition:background .15s}
.trow:last-child{border-bottom:none}
.trow:hover{background:#131318}
.code-b{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;background:#1a1a1a;border:1px solid #252530;border-radius:5px;padding:3px 7px;color:#a78bfa;display:inline-block}
.name-c{font-size:13px;font-weight:600;color:#f0f0f0}
.ip-c{font-family:'JetBrains Mono',monospace;font-size:11px;color:#555}
.ip-c.has-ip{color:#f59e0b}
.flag{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;border-radius:5px;padding:3px 7px}
.flag.ok{background:rgba(16,185,129,.1);color:#10b981}
.act-btns{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto}
.act-btn{background:none;border:1px solid #222;border-radius:5px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s}
.act-btn.copy{color:#60a5fa}
.act-btn.copy:hover{border-color:rgba(96,165,250,.4);background:rgba(96,165,250,.07)}
.act-btn.infos{color:#a78bfa}
.act-btn.infos:hover{border-color:rgba(139,92,246,.4);background:rgba(139,92,246,.07)}
.act-btn.msg{color:#34d399}
.act-btn.msg:hover{border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.07)}
.act-btn.block-ip{color:#f59e0b}
.act-btn.block-ip:hover{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.07)}
.act-btn.del{color:#ef4444}
.act-btn.del:hover{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.07)}

/* ── LOCK TOGGLE ── */
.lock-toggle{display:flex;align-items:center;gap:16px;background:#111;border:1px solid #1e1e26;border-radius:10px;padding:12px 16px;margin-bottom:20px;cursor:pointer;transition:border-color .2s}
.lock-toggle:hover{border-color:#252530}
.lock-status{flex:1}
.lock-status-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#555;margin-bottom:3px}
.lock-status-val{font-size:12px;font-weight:600}
.lock-status-val.locked{color:#ef4444}
.lock-status-val.unlocked{color:#10b981}
.lock-switch{width:40px;height:22px;border-radius:11px;background:#252530;position:relative;transition:background .25s;flex-shrink:0;border:none;cursor:pointer}
.lock-switch.on{background:#ef4444}
.lock-switch::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .25s;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.lock-switch.on::after{transform:translateX(18px)}

/* ── MODALS ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:#111;border:1px solid #252530;border-radius:16px;padding:24px;width:100%;max-width:560px;max-height:80vh;overflow-y:auto;position:relative}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:12px}
.modal-title{font-size:16px;font-weight:800;color:#f0f0ff;margin-bottom:3px}
.modal-sub{font-size:12px;color:#555}
.modal-close{background:none;border:none;color:#555;cursor:pointer;font-size:18px;padding:0;line-height:1;flex-shrink:0;transition:color .15s}
.modal-close:hover{color:#f0f0f0}

/* IP History table */
.ip-hist-head{display:grid;grid-template-columns:130px 1fr 1fr 50px 100px;padding:8px 12px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#444;border-bottom:1px solid #1a1a1a;margin-bottom:4px}
.ip-hist-row{display:grid;grid-template-columns:130px 1fr 1fr 50px 100px;padding:8px 12px;border-radius:8px;align-items:center;transition:background .15s}
.ip-hist-row:hover{background:#0a0a0d}
.ip-hist-ip{font-family:'JetBrains Mono',monospace;font-size:11px;color:#f59e0b}
.ip-hist-date{font-size:10px;color:#555}
.ip-hist-count{font-family:'JetBrains Mono',monospace;font-size:11px;color:#a78bfa;text-align:center}

/* ── LOGS ── */
.logs-list{max-height:360px;overflow-y:auto}
.log-row{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid #0d0d12;font-size:12px;transition:background .15s}
.log-row:last-child{border-bottom:none}
.log-row:hover{background:#0a0a0d}
.log-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;border-radius:5px;padding:3px 8px;white-space:nowrap;flex-shrink:0}
.log-login{background:rgba(16,185,129,.1);color:#10b981}
.log-block{background:rgba(239,68,68,.1);color:#ef4444}
.log-unblock{background:rgba(96,165,250,.1);color:#60a5fa}
.log-admin_login{background:rgba(139,92,246,.1);color:#a78bfa}
.log-detail{flex:1;color:#888;font-family:'JetBrains Mono',monospace;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.log-ts{color:#333;font-size:10px;white-space:nowrap;flex-shrink:0}

/* Message textarea */
.msg-textarea{width:100%;background:#0a0a0d;border:1px solid #252530;border-radius:10px;padding:12px 14px;color:#f0f0f0;font-size:13px;font-family:'Sora',sans-serif;outline:none;resize:vertical;min-height:100px;line-height:1.6}
.msg-textarea:focus{border-color:rgba(52,211,153,.4)}
.add-row{display:flex;gap:8px;padding:0 16px 14px;align-items:center;flex-wrap:wrap}
.add-input{background:#0a0a0d;border:1px solid #252530;border-radius:8px;padding:8px 12px;color:#f0f0f0;font-size:12px;font-family:'JetBrains Mono',monospace;outline:none}
.add-input:focus{border-color:rgba(139,92,246,.4)}
.add-btn{background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.25);border-radius:8px;padding:8px 14px;color:#a78bfa;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}
.add-btn:hover{background:rgba(139,92,246,.2)}
.gen-btn{background:#111;border:1px solid #252530;border-radius:8px;padding:8px 10px;color:#555;font-size:11px;cursor:pointer;transition:all .2s;white-space:nowrap}
.gen-btn:hover{color:#f0f0f0}
