/* ============================================================
   Admin-Bereich · nutzt dieselben Tokens (Light/Dark)
   ============================================================ */

.admin-bar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}
.admin-bar-inner{max-width:1180px;margin:0 auto;padding:var(--sp-3) var(--sp-6);
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
.admin-bar .brand{display:flex;align-items:center;gap:var(--sp-3);text-decoration:none;color:var(--ink)}
.admin-bar .brand-logo{width:32px;height:32px;border-radius:9px;background:var(--brand-graphite);
  color:#fff;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:12px}
.admin-bar .brand-text b{display:block;font-size:15px;line-height:1.1}
.admin-bar .brand-text small{font-size:11px;color:var(--muted)}
.admin-nav{display:flex;align-items:center;gap:var(--sp-4)}
.admin-nav a{font-size:13px;color:var(--muted);text-decoration:none}
.admin-nav a:hover{color:var(--accent)}
.admin-nav .logout{color:var(--danger-ink)}
.theme-toggle{width:32px;height:32px;border:1px solid var(--line-strong);background:transparent;
  border-radius:var(--r-sm);cursor:pointer;display:grid;place-items:center;color:var(--ink)}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.theme-ico{width:15px;height:15px;border-radius:50%;background:var(--ink);
  -webkit-mask:radial-gradient(circle at 68% 32%, transparent 42%, #000 43%);
          mask:radial-gradient(circle at 68% 32%, transparent 42%, #000 43%)}

.admin-main{max-width:1180px;margin:0 auto;padding:var(--sp-6)}
.admin-wrap{display:flex;flex-direction:column;gap:var(--sp-8)}
.admin-head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
.admin-head-row h1{font-size:24px;font-weight:600}

.flash{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);margin-bottom:var(--sp-4);font-size:14px}
.flash-ok{background:var(--live-soft);color:var(--live-ink)}
.flash-err{background:var(--danger-soft);color:var(--danger-ink)}

.btn-primary{background:var(--accent);color:#fff;border:0;border-radius:var(--r-sm);
  padding:10px 16px;font-size:14px;font-family:var(--sans);cursor:pointer;text-decoration:none;display:inline-block}
.btn-primary:hover{background:var(--accent-strong)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-6)}
.panel h2{font-size:16px;font-weight:600;margin-bottom:var(--sp-4)}

/* Tabellen */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);
  font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl a{color:var(--ink);text-decoration:none;font-weight:500}
.tbl a:hover{color:var(--accent)}
.tasks-cell{color:var(--muted);font-size:12px}
.row-actions{display:flex;gap:var(--sp-3);align-items:center;justify-content:flex-end}
.inline{display:inline}

.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:4px 9px;border-radius:var(--r-pill)}
.status .dot{width:7px;height:7px;border-radius:50%}
.s-dev{color:var(--amber-ink);background:var(--amber-soft)} .s-dev .dot{background:var(--amber)}
.s-live{color:var(--live-ink);background:var(--live-soft)} .s-live .dot{background:var(--live)}
.s-pre{color:var(--accent-ink);background:var(--accent-soft)} .s-pre .dot{background:var(--accent)}
.s-idle{color:var(--idle-ink);background:var(--idle-soft)} .s-idle .dot{background:var(--idle)}

.mini{font-size:12px;color:var(--accent);background:transparent;border:1px solid var(--line-strong);
  border-radius:var(--r-sm);padding:5px 10px;cursor:pointer;text-decoration:none;font-family:var(--sans)}
.mini:hover{border-color:var(--accent)}
.mini.danger{color:var(--danger-ink);border-color:transparent}
.mini.danger:hover{border-color:var(--danger)}
.pill-btn{font-size:11px;border-radius:var(--r-pill);padding:4px 11px;cursor:pointer;border:1px solid var(--line-strong);font-family:var(--mono)}
.pill-btn.on{background:var(--live-soft);color:var(--live-ink);border-color:transparent}
.pill-btn.off{background:var(--idle-soft);color:var(--idle-ink);border-color:transparent}

/* Formular */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:start}
.fs{border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}
.fs legend{font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:0 8px;color:var(--muted)}
.fs-public legend{color:var(--accent-ink)}
.fs-internal{background:var(--tint)}
.fs-internal legend{color:var(--amber-ink)}
.form-grid label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.form-grid input[type=text],.form-grid input[type=url],.form-grid input[type=number],
.form-grid select,.form-grid textarea{
  font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;width:100%}
.form-grid textarea{resize:vertical;font-family:var(--sans)}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{
  outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.f-row{display:flex;gap:var(--sp-3);flex-wrap:wrap}
.f-row > label{flex:1;min-width:120px}
.f-row > label.grow{flex:2}
.check{flex-direction:row !important;align-items:center;gap:8px !important;color:var(--ink) !important}
.check input{width:auto}
.form-actions{grid-column:1 / -1;display:flex;gap:var(--sp-4);align-items:center}

/* Aufgaben-Liste */
.task-add{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}
.task-add .grow{flex:1;min-width:200px}
.task-add input[type=text],.task-add select{font-family:var(--sans);font-size:14px;color:var(--ink);
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px}
.task-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.task{display:flex;align-items:center;gap:var(--sp-3);padding:9px 12px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-sm);border-left:3px solid var(--idle)}
.task.prio-high{border-left-color:var(--danger)}
.task.prio-normal{border-left-color:var(--accent)}
.task.prio-low{border-left-color:var(--idle)}
.task.done{opacity:.55}
.task.done .task-title{text-decoration:line-through}
.task-title{flex:1;font-size:14px;color:var(--ink)}
.check-btn{width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);
  background:transparent;cursor:pointer;color:var(--live-ink);font-size:13px}
.kprio{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}

/* Kanban */
.kanban{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
.kcol{background:var(--tint);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4);
  display:flex;flex-direction:column;gap:var(--sp-3)}
.kcol-head{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);
  display:flex;justify-content:space-between}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:var(--sp-3);border-left:3px solid var(--accent)}
.kcard.prio-high{border-left-color:var(--danger)}
.kcard.prio-low{border-left-color:var(--idle)}
.kcard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.kcode{font-size:11px;color:var(--muted)}
.kcard .kprio{font-size:10px}
.ktitle{font-size:13px;color:var(--ink);margin-bottom:8px}
.kcard-foot{display:flex;gap:6px}

.empty{color:var(--muted);font-size:13px}

/* Login */
.page-login body,.login-wrap{min-height:100vh}
.login-wrap{display:grid;place-items:center;padding:var(--sp-12) var(--sp-6)}
.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:var(--sp-8);width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:var(--shadow)}
.login-brand{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}
.login-brand .brand-logo{width:38px;height:38px;border-radius:10px;background:var(--brand-graphite);
  color:#fff;display:grid;place-items:center;font-family:var(--mono);font-weight:600}
.login-brand b{display:block} .login-brand small{color:var(--muted);font-size:12px}
.login-card label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.login-card input{font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);
  border-radius:var(--r-sm);padding:11px 12px}
.login-card input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.login-card button{background:var(--accent);color:#fff;border:0;border-radius:var(--r-sm);
  padding:12px;font-size:15px;cursor:pointer;margin-top:var(--sp-2)}
.login-card button:hover{background:var(--accent-strong)}
.login-error{background:var(--danger-soft);color:var(--danger-ink);padding:9px 12px;border-radius:var(--r-sm);font-size:13px}
.login-back{font-size:12px;color:var(--muted);text-decoration:none;text-align:center}

.admin-foot{max-width:1180px;margin:var(--sp-12) auto 0;padding:var(--sp-6);
  border-top:1px solid var(--line);font-size:12px;color:var(--muted)}

@media (max-width:760px){
  .form-grid{grid-template-columns:1fr}
  .kanban{grid-template-columns:1fr}
  .admin-nav a[href="../index.php"]{display:none}
}
