@font-face{font-family:"Nunito Sans";font-weight:400;font-display:swap;src:url(../fonts/nunito-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02AF}
@font-face{font-family:"Nunito Sans";font-weight:400;font-display:swap;src:url(../fonts/nunito-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+2000-206F}
@font-face{font-family:"Nunito Sans";font-weight:700;font-display:swap;src:url(../fonts/nunito-sans-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02AF}
@font-face{font-family:"Nunito Sans";font-weight:700;font-display:swap;src:url(../fonts/nunito-sans-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+2000-206F}
@font-face{font-family:"Nunito Sans";font-weight:800;font-display:swap;src:url(../fonts/nunito-sans-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02AF}
@font-face{font-family:"Nunito Sans";font-weight:800;font-display:swap;src:url(../fonts/nunito-sans-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+2000-206F}
:root{--teal:#0e7c7b;--teal-d:#0a5554;--mint:#e7f3f0;--ink:#16302e;--muted:#5f7572;--line:#dbe7e4;--bg:#f3f7f6;--red:#c8413a;--font:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.5;color:var(--ink);background:var(--bg)}
a{color:var(--teal)}
:focus-visible{outline:3px solid #f0b429;outline-offset:2px}
h1,h2{margin:0;line-height:1.2}
h2{font-size:17px;margin-bottom:14px}
code{background:var(--mint);padding:1px 6px;border-radius:4px;font-size:13px}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}
.r{text-align:right}
.mark{display:inline-block;width:30px;height:30px;border-radius:8px;background:var(--teal);position:relative;flex:none}
.mark::before,.mark::after{content:"";position:absolute;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:1px}
.mark::before{width:16px;height:5px}.mark::after{width:5px;height:16px}
.mark--lg{width:48px;height:48px;border-radius:12px;margin-bottom:16px}
.mark--lg::before{width:26px;height:8px}.mark--lg::after{width:8px;height:26px}

.btn{display:inline-block;background:var(--teal);color:#fff;border:1px solid var(--teal);border-radius:8px;padding:9px 18px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;line-height:1.3}
.btn:hover{background:var(--teal-d);border-color:var(--teal-d);color:#fff}
.btn--ghost{background:#fff;color:var(--teal);border-color:var(--line)}
.btn--ghost:hover{background:var(--mint);color:var(--teal-d);border-color:var(--line)}
.btn--danger{background:#fff;color:var(--red);border-color:#efc9c6}
.btn--danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn--sm{padding:5px 11px;font-size:13px}
.btn--block{width:100%;padding:12px}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:#bcd6d1;cursor:pointer;text-decoration:underline}
.inline{display:inline}

/* yerleşim */
.adm{display:flex;min-height:100vh}
.side{width:240px;flex:none;background:var(--ink);color:#cfe0dc;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}
.side__brand{display:flex;align-items:center;gap:10px;padding:20px 18px;color:#fff;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08)}
.side nav{display:flex;flex-direction:column;padding:12px 10px;gap:2px}
.side nav a{color:#cfe0dc;text-decoration:none;padding:9px 12px;border-radius:7px;display:flex;align-items:center;justify-content:space-between}
.side nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.side nav a.on{background:var(--teal);color:#fff;font-weight:700}
.badge{background:var(--red);color:#fff;border-radius:999px;font-size:12px;padding:1px 8px}
.side__foot{margin-top:auto;padding:16px 22px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px;font-size:14px}
.side__foot a{color:#bcd6d1}
.main{flex:1;min-width:0}
.top{display:flex;align-items:center;gap:14px;padding:18px 32px;background:#fff;border-bottom:1px solid var(--line)}
.top h1{font-size:21px}
.top__user{margin-left:auto;color:var(--muted);font-size:14px}
.menubtn{display:none}
.body{padding:28px 32px 60px;max-width:1200px}
.alert{margin:20px 32px 0;padding:12px 16px;border-radius:8px;font-weight:700;max-width:1136px}
.body .alert,.authbox .alert{margin:0 0 18px}
.alert--ok{background:#d6f0e5;color:#0b5a3c}
.alert--err{background:#fbe1df;color:#8e2a24}

.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;margin-bottom:22px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.cols .card{margin:0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;text-decoration:none;color:var(--ink)}
.stat strong{display:block;font-size:30px;line-height:1.1;color:var(--teal-d)}
.stat span{color:var(--muted)}
.stat:hover{border-color:var(--teal)}
.checks{list-style:none;margin:0;padding:0}
.checks li{padding:9px 0;border-bottom:1px solid var(--line)}
.checks li:last-child{border:0}
.checks b{display:inline-block;min-width:58px;font-size:12px;padding:2px 8px;border-radius:999px;margin-right:6px;text-align:center}
.checks .ok b{background:#d6f0e5;color:#0b5a3c}
.checks .bad b{background:#fbe1df;color:#8e2a24}
.checks small{display:block;color:var(--muted);margin:4px 0 0 70px}
.quick{display:flex;flex-wrap:wrap;gap:8px}

.bar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.bar p{margin:0;max-width:70ch}
.empty{background:#fff;border:2px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--muted)}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
.card .tablewrap{border:0;border-radius:0}
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tbl th{font-size:13px;color:var(--muted);font-weight:700;background:#fafcfc}
.tbl tr:last-child td{border-bottom:0}
.tbl .r{text-align:right}
.tbl--sm td,.tbl--sm th{padding:7px 10px;font-size:14px}
.tbl tr.child td:first-child{padding-left:36px;position:relative}
.tbl tr.child td:first-child::before{content:"";position:absolute;left:18px;top:50%;width:10px;border-top:1px solid #9bb5b0}
.tbl tr.unread td{font-weight:700;background:#fbfefd}
.thumb{width:72px;height:48px;object-fit:cover;border-radius:6px;background:var(--mint);display:block}
.pill{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;background:#eef1f1;color:var(--muted)}
.pill--on{background:#d6f0e5;color:#0b5a3c}
.pill--bad{background:#fbe1df;color:#8e2a24}

/* formlar */
.form{max-width:860px}
.form.narrow{max-width:520px}
.f{margin-bottom:18px}
.f>label>span{display:block;font-weight:700;margin-bottom:6px}
.f input[type=text],.f input[type=password],.f input[type=number],.f select,.f textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid #c7d9d5;border-radius:8px;background:#fff;color:var(--ink)}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--teal);outline:2px solid rgba(14,124,123,.22)}
.f .short{max-width:120px}
.f textarea.code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;border-radius:0 0 8px 8px}
.f--check label{display:flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}
.f--check input{width:18px;height:18px;accent-color:var(--teal)}
.hint{display:block;color:var(--muted);margin-top:5px;font-size:13px}
.err{display:block;color:var(--red);font-weight:700;margin-top:5px}
.has-err input,.has-err textarea,.has-err select{border-color:var(--red)!important}
.imgfield{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.preview{max-width:220px;max-height:140px;border-radius:8px;border:1px solid var(--line);background:var(--mint);object-fit:contain}
.small{font-size:14px;display:flex;gap:6px;align-items:center}
.slug{display:flex;align-items:stretch}
.slug span{background:var(--mint);border:1px solid #c7d9d5;border-right:0;border-radius:8px 0 0 8px;padding:10px 10px;color:var(--muted);font-size:14px;white-space:nowrap;max-width:50%;overflow:hidden;text-overflow:ellipsis}
.slug input{border-radius:0 8px 8px 0!important}
.editor__bar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border:1px solid #c7d9d5;border-bottom:0;border-radius:8px 8px 0 0;background:#fafcfc}
.editor__bar button{font:inherit;font-size:13px;padding:5px 10px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer}
.editor__bar button:hover,.editor__bar button[aria-pressed=true]{background:var(--mint);border-color:var(--teal)}
.editor__preview{border:1px solid #c7d9d5;border-radius:0 0 8px 8px;padding:16px 20px;min-height:200px;background:#fff}
.editor__preview h2{font-size:22px;margin:1em 0 .4em}
.actions{display:flex;gap:10px;align-items:center;margin-top:8px}
.actions.sticky{position:sticky;bottom:0;background:var(--bg);padding:14px 0;border-top:1px solid var(--line)}
.meta{display:grid;grid-template-columns:110px 1fr;gap:6px 14px;margin:0 0 18px}
.meta dt{color:var(--muted)}.meta dd{margin:0}
.msgbody{background:var(--mint);padding:18px;border-radius:8px;margin-bottom:18px;white-space:normal;word-wrap:break-word}

/* giriş sayfası */
.authpage{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:linear-gradient(160deg,#0a5554,#16302e)}
.authbox{background:#fff;border-radius:16px;padding:36px 34px;width:100%;max-width:400px;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.authbox h1{font-size:23px;margin-bottom:8px}
.authbox form{margin-top:20px}
.authbox .f,.authbox label.f{display:block;margin-bottom:16px}
.authbox label.f span{display:block;font-weight:700;margin-bottom:6px}
.authbox input{width:100%;font:inherit;padding:11px 12px;border:1px solid #c7d9d5;border-radius:8px}
.authbox input:focus{border-color:var(--teal);outline:2px solid rgba(14,124,123,.22)}

@media (max-width:900px){
  .side{position:fixed;left:0;top:0;bottom:0;z-index:20;transform:translateX(-100%);transition:transform .2s}
  .side.is-open{transform:none}
  .menubtn{display:block;font:inherit;font-weight:700;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}
  .top{padding:14px 18px}.body{padding:20px 18px 60px}.alert{margin:16px 18px 0}
  .cols{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .bar{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* kurulum */
.authbox--wide{max-width:640px}
.authbox fieldset{border:1px solid var(--line);border-radius:12px;padding:16px 18px 6px;margin:0 0 18px}
.authbox legend{font-weight:800;padding:0 6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.seg{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.seg label{flex:1;display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;font-weight:700}
.seg input{accent-color:var(--teal)}
.check{display:flex;gap:8px;align-items:center;margin-bottom:14px;font-weight:700}
.check input{width:18px;height:18px;accent-color:var(--teal)}
.authbox .slug input{border-radius:0 8px 8px 0}
.syscheck{list-style:none;padding:0;margin:14px 0;display:flex;flex-wrap:wrap;gap:6px}
.syscheck li{font-size:13px;padding:3px 10px;border-radius:999px}
.syscheck .ok{background:#d6f0e5;color:#0b5a3c}.syscheck .bad{background:#fbe1df;color:#8e2a24}
.bigurl{font-size:19px;font-weight:800;background:var(--mint);padding:14px;border-radius:8px;word-break:break-all}
.center{text-align:center}
[hidden]{display:none!important}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
.authbox input[type=radio],.authbox input[type=checkbox]{width:18px;height:18px;flex:none;padding:0}
.authbox .slug span{max-width:60%}
.ver{color:#7f9e98;font-size:12px}
.backups{list-style:none;margin:0;padding:0}
.backups li{padding:12px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.backups li:last-child{border:0}
.backups small{display:block;font-size:12px}
.bkform{display:flex;gap:6px}
.bkform input{flex:1;min-width:0;font:inherit;font-size:13px;padding:5px 9px;border:1px solid #c7d9d5;border-radius:6px}
