/* ==========================================================================
   Modern Yönetim Paneli Tema — lisans.kadir.app / deploy.kadir.app ortak
   Glassmorphism · yumuşak gölgeler · gradient accent · ferah tipografi
   (Aynı sınıf adları korunur; HTML değişmeden modernize edilir.)
   ========================================================================== */

:root {
    --bg-0:#070a12; --bg-1:#0c1322; --bg-2:#0e1728;
    --surface:rgba(255,255,255,.035);
    --surface-2:rgba(255,255,255,.06);
    --surface-hover:rgba(255,255,255,.09);
    --border:rgba(255,255,255,.08);
    --border-strong:rgba(255,255,255,.14);
    --text:#e9edf5; --text-muted:#8b93a7; --text-dim:#5b6478;
    --accent:#4f8cff; --accent-2:#7aa9ff; --accent-glow:rgba(79,140,255,.38);
    --green:#10b981; --green-bg:rgba(16,185,129,.14);
    --amber:#f5b301; --amber-bg:rgba(245,179,1,.14);
    --red:#ef4444;   --red-bg:rgba(239,68,68,.14);
    --purple:#a78bfa;--purple-bg:rgba(167,139,250,.14);
    --blue:#60a5fa;  --blue-bg:rgba(96,165,250,.14);
    --slate-bg:rgba(139,147,167,.14);
    --radius:16px; --radius-sm:11px; --radius-lg:22px;
    --shadow:0 6px 24px rgba(0,0,0,.28);
    --shadow-lg:0 18px 50px rgba(0,0,0,.5);
    --trans:.18s cubic-bezier(.4,0,.2,1);
    color-scheme:dark;
}

* { box-sizing:border-box; margin:0; padding:0; }

body {
    font-family:'Poppins',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    color:var(--text); line-height:1.55; min-height:100vh; font-size:14.5px;
    background:
        radial-gradient(1200px 600px at 78% -8%, rgba(79,140,255,.14), transparent 60%),
        radial-gradient(900px 500px at 0% 100%, rgba(122,169,255,.08), transparent 55%),
        linear-gradient(160deg, var(--bg-0) 0%, var(--bg-1) 55%, var(--bg-2) 100%);
    background-attachment:fixed;
}
a { color:var(--accent-2); text-decoration:none; }
::selection { background:var(--accent-glow); }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:rgba(255,255,255,.1); border-radius:10px; }
::-webkit-scrollbar-thumb:hover { background:rgba(255,255,255,.18); }

/* ---------- Layout ---------- */
.admin-wrapper { display:flex; min-height:100vh; }

.admin-sidebar {
    width:264px; flex-shrink:0; padding:22px 16px;
    background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
    border-right:1px solid var(--border);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    position:sticky; top:0; height:100vh; display:flex; flex-direction:column;
}
.admin-logo { padding:8px 12px 22px; }
.admin-logo h2 {
    font-size:20px; font-weight:700; color:#fff; display:flex; align-items:center; gap:10px;
    letter-spacing:-.2px;
}
.admin-logo h2 i {
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.admin-logo span { font-size:12px; color:var(--text-dim); margin-left:2px; }
.admin-logo-avatar { width:46px; height:46px; border-radius:12px; object-fit:cover; margin-bottom:8px; }

.admin-nav { list-style:none; display:flex; flex-direction:column; gap:3px; flex:1; }
.admin-nav li a {
    display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:12px;
    color:var(--text-muted); font-weight:500; font-size:14px; transition:var(--trans);
    position:relative;
}
.admin-nav li a i { width:20px; text-align:center; font-size:15px; transition:var(--trans); }
.admin-nav li a:hover { background:var(--surface-2); color:var(--text); }
.admin-nav li a.active {
    background:linear-gradient(135deg, rgba(79,140,255,.22), rgba(79,140,255,.08));
    color:#fff; box-shadow:inset 0 0 0 1px rgba(79,140,255,.25);
}
.admin-nav li a.active::before {
    content:''; position:absolute; left:-16px; top:50%; transform:translateY(-50%);
    width:3px; height:22px; border-radius:0 4px 4px 0;
    background:linear-gradient(180deg,var(--accent),var(--accent-2)); box-shadow:0 0 12px var(--accent-glow);
}
.admin-nav li a.active i { color:var(--accent-2); }
.admin-nav-divider { height:1px; background:var(--border); margin:12px 6px; }

.admin-content { flex:1; padding:32px 40px; min-width:0; max-width:1500px; }

/* ---------- Topbar ---------- */
.admin-topbar {
    display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
    margin-bottom:28px; flex-wrap:wrap;
}
.admin-topbar-heading { font-size:26px; font-weight:700; color:#fff; letter-spacing:-.5px; }
.admin-topbar-subtitle { font-size:13.5px; color:var(--text-muted); margin-top:3px; }
.admin-topbar-actions { display:flex; gap:10px; align-items:center; }

/* ---------- Cards / Panels ---------- */
.editor-layout { display:grid; grid-template-columns:1fr 340px; gap:22px; align-items:start; }
.editor-main { display:flex; flex-direction:column; gap:22px; min-width:0; }
.editor-panel {
    background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
    padding:24px; box-shadow:var(--shadow); backdrop-filter:blur(10px);
}
.editor-panel h3 { font-size:16px; font-weight:600; color:#fff; margin-bottom:16px; letter-spacing:-.2px; }

/* ---------- Stat kartları ---------- */
.ls-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:18px; margin-bottom:30px; }
.ls-stat {
    position:relative; overflow:hidden; padding:22px 24px; border-radius:var(--radius);
    background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow);
    backdrop-filter:blur(10px); transition:var(--trans);
}
.ls-stat:hover { transform:translateY(-2px); border-color:var(--border-strong); box-shadow:var(--shadow-lg); }
.ls-stat::after {
    content:''; position:absolute; right:-30px; top:-30px; width:110px; height:110px; border-radius:50%;
    background:radial-gradient(circle, rgba(79,140,255,.16), transparent 70%);
}
.ls-stat .num { font-size:34px; font-weight:700; color:#fff; line-height:1; letter-spacing:-1px; }
.ls-stat .lbl { color:var(--text-muted); font-size:13px; margin-top:9px; }
.ls-stat.good .num { color:var(--green); } .ls-stat.good::after { background:radial-gradient(circle,rgba(16,185,129,.18),transparent 70%); }
.ls-stat.warn .num { color:var(--amber); } .ls-stat.warn::after { background:radial-gradient(circle,rgba(245,179,1,.18),transparent 70%); }
.ls-stat.bad  .num { color:var(--red); }   .ls-stat.bad::after  { background:radial-gradient(circle,rgba(239,68,68,.18),transparent 70%); }

/* ---------- Tablo ---------- */
.admin-table {
    width:100%; border-collapse:separate; border-spacing:0;
    background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
    overflow:hidden; box-shadow:var(--shadow); backdrop-filter:blur(10px);
}
.admin-table thead th {
    text-align:left; padding:15px 18px; font-size:11.5px; font-weight:600; letter-spacing:.6px;
    text-transform:uppercase; color:var(--text-dim);
    background:rgba(255,255,255,.02); border-bottom:1px solid var(--border);
}
.admin-table tbody td { padding:15px 18px; border-bottom:1px solid var(--border); font-size:14px; vertical-align:middle; }
.admin-table tbody tr { transition:var(--trans); }
.admin-table tbody tr:last-child td { border-bottom:0; }
.admin-table tbody tr:hover { background:var(--surface-2); }
.admin-table .status-badge { font-size:11.5px; }

/* ---------- Badge / pill ---------- */
.status-badge {
    display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px;
    font-size:12px; font-weight:600; line-height:1; letter-spacing:.2px;
}
.status-active,.status-published { background:var(--green-bg); color:var(--green); box-shadow:inset 0 0 0 1px rgba(16,185,129,.25); }
.status-suspended,.status-beta   { background:var(--amber-bg); color:var(--amber); box-shadow:inset 0 0 0 1px rgba(245,179,1,.25); }
.status-revoked                  { background:var(--red-bg);   color:var(--red);   box-shadow:inset 0 0 0 1px rgba(239,68,68,.25); }
.status-released,.status-draft   { background:var(--slate-bg); color:var(--text-muted); box-shadow:inset 0 0 0 1px rgba(139,147,167,.2); }
.status-plain,.status-stable     { background:var(--blue-bg);  color:var(--blue);  box-shadow:inset 0 0 0 1px rgba(96,165,250,.25); }
.status-encrypted                { background:var(--purple-bg);color:var(--purple);box-shadow:inset 0 0 0 1px rgba(167,139,250,.25); }

.log-event { font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:7px; background:var(--surface-2); color:var(--text-muted); }
.log-event.activate,.log-event.heartbeat { background:var(--green-bg); color:var(--green); }
.log-event.deny { background:var(--red-bg); color:var(--red); }
.log-event.deactivate { background:var(--amber-bg); color:var(--amber); }

/* ---------- Butonlar ---------- */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:11px 18px; border:0; border-radius:11px; font-size:14px; font-weight:600;
    font-family:inherit; cursor:pointer; transition:var(--trans); white-space:nowrap; line-height:1;
    text-decoration:none;
}
.btn:active { transform:translateY(1px); }
.btn-primary {
    background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff;
    box-shadow:0 6px 18px rgba(79,140,255,.35);
}
.btn-primary:hover { transform:translateY(-1px); box-shadow:0 10px 26px rgba(79,140,255,.5); }
.btn-secondary { background:var(--surface-2); color:var(--text); box-shadow:inset 0 0 0 1px var(--border); }
.btn-secondary:hover { background:var(--surface-hover); box-shadow:inset 0 0 0 1px var(--border-strong); }
.btn-danger { background:linear-gradient(135deg,#ef4444,#f87171); color:#fff; box-shadow:0 6px 18px rgba(239,68,68,.32); }
.btn-danger:hover { transform:translateY(-1px); box-shadow:0 10px 26px rgba(239,68,68,.45); }
.btn-success { background:linear-gradient(135deg,#0ea371,#22c99a); color:#fff; box-shadow:0 6px 18px rgba(16,185,129,.32); }
.btn-success:hover { transform:translateY(-1px); box-shadow:0 10px 26px rgba(16,185,129,.45); }
.btn-warning { background:linear-gradient(135deg,#e0a800,#f5c542); color:#241900; box-shadow:0 6px 18px rgba(245,179,1,.3); }
.btn-warning:hover { transform:translateY(-1px); box-shadow:0 10px 26px rgba(245,179,1,.42); }
.btn-block { width:100%; }
.btn-sm { padding:7px 13px; font-size:12.5px; border-radius:9px; }

/* ---------- Form ---------- */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:13px; color:var(--text-muted); margin-bottom:7px; font-weight:500; }
input[type=text], input[type=password], input[type=email], input[type=number], input[type=date],
select, textarea {
    width:100%; padding:11px 14px; background:rgba(0,0,0,.25); color:var(--text);
    border:1px solid var(--border); border-radius:11px; font-size:14px; font-family:inherit; transition:var(--trans);
}
input:focus, select:focus, textarea:focus {
    outline:none; border-color:var(--accent); background:rgba(0,0,0,.35);
    box-shadow:0 0 0 3px var(--accent-glow);
}
textarea { resize:vertical; min-height:90px; }
select { cursor:pointer; }
.ls-form-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }

/* ---------- Yardımcılar ---------- */
.mono { font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:13px; }
.muted { color:var(--text-muted); }
.key-pill {
    display:inline-flex; align-items:center; gap:10px; background:rgba(0,0,0,.28);
    border:1px solid var(--border); border-radius:11px; padding:10px 14px;
    font-family:ui-monospace,monospace; color:var(--text); font-size:13px;
}
.key-pill button { background:none; border:none; color:var(--accent-2); cursor:pointer; font-size:13px; font-weight:600; }
.key-pill button:hover { color:#fff; }

/* ---------- Empty state ---------- */
.empty-state {
    text-align:center; padding:56px 24px; background:var(--surface); border:1px dashed var(--border-strong);
    border-radius:var(--radius); color:var(--text-muted);
}
.empty-state p { margin-bottom:16px; }

/* ---------- Alert ---------- */
.alert { padding:14px 17px; border-radius:12px; font-size:14px; margin-bottom:20px; border:1px solid transparent; }
.alert-success { background:var(--green-bg); border-color:rgba(16,185,129,.3); color:#6ee7b7; }
.alert-error   { background:var(--red-bg); border-color:rgba(239,68,68,.3); color:#fca5a5; }
.alert-info    { background:var(--blue-bg); border-color:rgba(96,165,250,.3); color:#93c5fd; }
.alert-warn    { background:var(--amber-bg); border-color:rgba(245,179,1,.3); color:#fcd34d; }

/* ---------- Pagination ---------- */
.admin-pagination { display:flex; gap:6px; flex-wrap:wrap; }
.admin-pagination a {
    padding:8px 13px; border-radius:9px; background:var(--surface-2); color:var(--text-muted);
    font-size:13px; font-weight:600; transition:var(--trans); box-shadow:inset 0 0 0 1px var(--border);
}
.admin-pagination a:hover { background:var(--surface-hover); color:var(--text); }
.admin-pagination a.active { background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; box-shadow:0 4px 14px rgba(79,140,255,.4); }

/* ---------- Modal ---------- */
.modal-overlay {
    display:none; position:fixed; inset:0; z-index:1000; padding:24px;
    background:rgba(4,7,14,.62); backdrop-filter:blur(6px);
    align-items:center; justify-content:center;
}
.modal-overlay.active { display:flex; animation:fadeIn .2s ease; }
.modal {
    width:100%; max-width:520px; max-height:90vh; overflow-y:auto;
    background:linear-gradient(180deg, rgba(20,28,46,.98), rgba(14,20,36,.98));
    border:1px solid var(--border-strong); border-radius:var(--radius-lg);
    padding:28px; box-shadow:var(--shadow-lg); animation:pop .22s cubic-bezier(.34,1.56,.64,1);
}
.modal h3 { font-size:19px; color:#fff; margin-bottom:20px; font-weight:700; }
.modal-actions { display:flex; gap:12px; justify-content:flex-end; margin-top:22px; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes pop { from{opacity:0; transform:translateY(12px) scale(.98)} to{opacity:1; transform:none} }

/* ---------- Toggle switch (checkbox) ---------- */
input[type=checkbox] {
    appearance:none; -webkit-appearance:none; width:44px; height:25px; border-radius:999px;
    background:var(--surface-hover); position:relative; cursor:pointer; transition:var(--trans);
    box-shadow:inset 0 0 0 1px var(--border); flex-shrink:0; vertical-align:middle;
}
input[type=checkbox]::before {
    content:''; position:absolute; top:3px; left:3px; width:19px; height:19px; border-radius:50%;
    background:#fff; transition:var(--trans); box-shadow:0 2px 5px rgba(0,0,0,.4);
}
input[type=checkbox]:checked { background:linear-gradient(135deg,var(--accent),var(--accent-2)); box-shadow:0 0 12px var(--accent-glow); }
input[type=checkbox]:checked::before { transform:translateX(19px); }

/* ---------- Login ---------- */
.login-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.login-card {
    width:100%; max-width:400px; padding:40px 34px; text-align:center;
    background:var(--surface); border:1px solid var(--border-strong); border-radius:var(--radius-lg);
    box-shadow:var(--shadow-lg); backdrop-filter:blur(16px);
}
.login-card h1 { font-size:23px; color:#fff; margin-bottom:6px; font-weight:700; display:flex; align-items:center; justify-content:center; gap:10px; }
.login-card h1 i { color:var(--accent-2); }
.login-card .form-group { text-align:left; }
.login-btn {
    width:100%; padding:13px; margin-top:8px; border:0; border-radius:12px; cursor:pointer;
    background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; font-size:15px; font-weight:600;
    font-family:inherit; box-shadow:0 8px 22px rgba(79,140,255,.4); transition:var(--trans);
}
.login-btn:hover { transform:translateY(-1px); box-shadow:0 12px 30px rgba(79,140,255,.55); }
.login-error { background:var(--red-bg); border:1px solid rgba(239,68,68,.3); color:#fca5a5; padding:11px 14px; border-radius:11px; font-size:14px; margin-bottom:16px; }

/* ---------- Deploy'a özel ---------- */
.upload-zone { border:2px dashed var(--border-strong); border-radius:var(--radius); padding:22px; text-align:center; color:var(--text-muted); }
.update-step { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--border); }
.update-step .s-icon { width:22px; text-align:center; }
.update-step.done .s-icon { color:var(--green); }
.update-step.fail .s-icon { color:var(--red); }

/* ---------- Responsive ---------- */
@media (max-width:1000px) {
    .editor-layout { grid-template-columns:1fr; }
    .admin-content { padding:24px 20px; }
    .admin-sidebar { width:230px; }
}
@media (max-width:720px) {
    .admin-wrapper { flex-direction:column; }
    .admin-sidebar { width:100%; height:auto; position:static; flex-direction:row; align-items:center; flex-wrap:wrap; gap:8px; }
    .admin-nav { flex-direction:row; flex-wrap:wrap; }
    .admin-nav-divider { display:none; }
    .admin-table { display:block; overflow-x:auto; white-space:nowrap; }
}
