
:root { --y:#FFD21F; --ink:#0c0c0e; --bg:#0d0d10; --pan:#141418; --card:rgba(255,255,255,.04); --card2:rgba(255,255,255,.08); --line:rgba(255,255,255,.08); --mut:rgba(255,255,255,.55); --ok:#5be584; --bad:#ff5a67; --warn:#ff9a3d; --f:'Rajdhani','Arial Narrow',sans-serif; }
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--bg); color:#fff; font-family:var(--f); font-size:16px; font-weight:500; min-height:100vh; }
button, input { font:inherit; color:inherit; background:none; border:0; outline:none; } button { cursor:pointer; }
.hide { display:none !important; } .mut { color:var(--mut); } .ok { color:var(--ok) !important; } .bad { color:var(--bad) !important; } .mono { font-variant-numeric:tabular-nums; letter-spacing:.02em; }
/* Login */
#login { min-height:100vh; display:grid; place-items:center; background:radial-gradient(ellipse at 50% 110%, rgba(255,210,31,.14), transparent 55%), var(--bg); }
.lg-box { width:380px; background:var(--pan); border:1px solid var(--line); border-radius:18px; padding:34px 32px; position:relative; }
.lg-box::before { content:''; position:absolute; left:32px; right:32px; top:-1px; height:2px; background:var(--y); box-shadow:0 0 14px var(--y); }
.logo { display:flex; align-items:center; gap:12px; font-weight:700; font-size:24px; letter-spacing:.12em; }
.logo .d { width:38px; height:38px; border-radius:8px; background:var(--y); color:var(--ink); display:grid; place-items:center; font-style:italic; }
.lg-box h1 { font-size:15px; letter-spacing:.3em; color:var(--mut); margin:6px 0 26px; }
.field { display:grid; gap:6px; margin-bottom:14px; } .field label { font-size:12px; letter-spacing:.16em; color:var(--mut); font-weight:700; text-transform:uppercase; }
.inp { background:var(--card2); border:1px solid var(--line); border-radius:10px; padding:10px 14px; font-size:16px; } .inp:focus { border-color:var(--y); } .inp.w { width:100%; }
.btn { background:var(--y); color:var(--ink); font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-radius:10px; padding:10px 18px; font-size:14px; }
.btn.full { width:100%; padding:13px; font-size:16px; margin-top:8px; } .btn.sm { padding:5px 10px; font-size:12px; } .btn.ghost { background:var(--card2); color:#fff; }
.lg-foot { margin-top:18px; font-size:13px; color:var(--mut); text-align:center; }
/* Shell */
#shell { display:grid; grid-template-columns:250px 1fr; min-height:100vh; }
aside { background:var(--pan); border-right:1px solid var(--line); padding:22px 16px; display:flex; flex-direction:column; gap:22px; position:sticky; top:0; height:100vh; }
#nav { display:grid; gap:4px; }
#nav button { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:10px; color:var(--mut); font-weight:600; font-size:16px; text-align:left; }
#nav button i { font-style:normal; width:22px; text-align:center; }
#nav button:hover { background:var(--card); color:#fff; } #nav button.on { background:rgba(255,210,31,.12); color:var(--y); box-shadow:inset 3px 0 0 var(--y); }
.pill { margin-left:auto; background:var(--bad); color:#fff; border-radius:10px; font-size:12px; padding:0 7px; }
#me { margin-top:auto; display:flex; align-items:center; gap:10px; padding:12px; border-radius:12px; background:var(--card); border:1px solid var(--line); flex-wrap:wrap; }
#me b { display:block; } #me small { font-size:13px; font-weight:700; }
.av { width:36px; height:36px; border-radius:10px; background:var(--y); color:var(--ink); display:grid; place-items:center; font-weight:700; font-size:18px; flex:none; }
.av.sm { width:30px; height:30px; font-size:15px; border-radius:8px; background:var(--card2); color:#fff; } .av.on { box-shadow:0 0 0 2px var(--ok); }
.mgr { font-size:11px; font-weight:700; letter-spacing:.14em; padding:2px 7px; border-radius:6px; background:rgba(255,210,31,.14); color:var(--y); }
#logout { font-size:13px; color:var(--mut); text-align:left; padding:0 12px; }
main { padding:26px 32px 40px; min-width:0; }
.ph { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:18px; }
.ph h2 { font-size:30px; letter-spacing:.04em; line-height:1; } .ph small { color:var(--mut); font-size:15px; }
.ph-r { display:flex; gap:10px; }
.box { background:var(--pan); border:1px solid var(--line); border-radius:16px; padding:18px 20px; min-width:0; }
.lbl { font-weight:700; letter-spacing:.18em; font-size:13px; color:var(--mut); margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.tag { font-size:12px; font-weight:700; letter-spacing:.06em; padding:2px 8px; border-radius:6px; background:var(--card2); color:#fff; }
.lbl .tag { margin-left:auto; }
.kpis { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-bottom:14px; }
.kpi { background:var(--pan); border:1px solid var(--line); border-radius:16px; padding:16px 18px; display:grid; gap:2px; }
.kpi small { color:var(--mut); letter-spacing:.14em; font-size:12px; text-transform:uppercase; font-weight:700; } .kpi b { font-size:38px; line-height:1.05; } .kpi b em { font-size:18px; color:var(--mut); font-style:normal; } .kpi span { color:var(--mut); font-size:14px; }
.bar { height:6px; border-radius:6px; background:var(--card2); overflow:hidden; margin-top:6px; } .bar i { display:block; height:100%; background:var(--y); }
.grid2 { display:grid; grid-template-columns:1.2fr 1fr; gap:14px; } .grid2.t { grid-template-columns:.9fr 1.3fr; }
.lg { display:grid; grid-template-columns:minmax(30px, auto) 1fr auto; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); } .lg:last-child { border:0; }
.lg p { color:var(--mut); font-size:14px; } .lg small { color:var(--mut); font-size:13px; }
.dist { display:grid; grid-template-columns:1fr auto; gap:0 10px; margin-bottom:10px; } .dist .bar { grid-column:1/3; margin-top:4px; }
.hint-i { padding:9px 12px; border-radius:10px; background:var(--card); border:1px solid var(--line); font-size:14px; margin-bottom:8px; } .hint-i.warn { border-color:rgba(255,154,61,.4); color:var(--warn); }
.hint { color:var(--mut); font-size:14px; }
.chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.chips button { padding:6px 12px; border-radius:8px; background:var(--card); border:1px solid var(--line); color:var(--mut); font-weight:600; font-size:14px; }
.chips button em { font-style:normal; opacity:.6; margin-left:4px; } .chips button.on { background:var(--y); color:var(--ink); border-color:var(--y); }
.tbl { padding:0; overflow:auto; } table { width:100%; border-collapse:collapse; }
th { text-align:left; font-size:12px; letter-spacing:.14em; color:var(--mut); text-transform:uppercase; padding:12px 14px; border-bottom:1px solid var(--line); white-space:nowrap; position:sticky; top:0; background:var(--pan); }
td { padding:10px 14px; border-bottom:1px solid var(--line); font-size:15px; vertical-align:middle; } tr:last-child td { border:0; } tbody tr:hover td { background:rgba(255,255,255,.02); }
td small { display:block; color:var(--mut); font-size:12px; }
.st { font-size:12px; font-weight:700; letter-spacing:.08em; padding:2px 8px; border-radius:6px; background:var(--card2); white-space:nowrap; }
.st.ok { background:rgba(91,229,132,.13); color:var(--ok); } .st.bad { background:rgba(255,90,103,.13); color:var(--bad); } .st.warn { background:rgba(255,154,61,.13); color:var(--warn); }
.sw { display:inline-block; width:18px; height:18px; border-radius:5px; border:1px solid rgba(255,255,255,.25); vertical-align:middle; margin-right:4px; }
.ic { width:28px; height:28px; border-radius:7px; background:var(--card2); } .note { margin-right:6px; cursor:help; }
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:12px; } .cards.c2 { grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); }
.mc { background:var(--pan); border:1px solid var(--line); border-radius:14px; padding:14px 16px; display:grid; gap:4px; } .mc.done { border-color:rgba(91,229,132,.35); }
.mc-h { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; } .mc b { font-size:17px; } .mc small { color:var(--mut); font-size:13px; min-height:18px; }
.mc-f { display:flex; justify-content:space-between; font-size:13px; color:var(--mut); margin-top:6px; } .mc-f a { color:var(--y); cursor:pointer; }
.tg { font-size:12px; font-weight:700; padding:2px 8px; border-radius:6px; background:var(--card2); color:var(--mut); } .tg.on { background:rgba(91,229,132,.14); color:var(--ok); }
.car { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid var(--line); } .car:last-child { border:0; }
code { font-family:ui-monospace, Consolas, monospace; font-size:13px; background:var(--card2); padding:2px 8px; border-radius:6px; color:var(--y); }
.usr { display:grid; grid-template-columns:30px 1fr auto auto; gap:12px; align-items:center; padding:9px 0; border-bottom:1px solid var(--line); } .usr small { font-size:13px; font-weight:700; display:block; } .usr .mut { display:inline; font-weight:500; }
.scroll { max-height:680px; overflow:auto; }
.perm th, .perm td { padding:7px 8px; font-size:13px; } .perm th { font-size:11px; letter-spacing:.08em; }
.perm tr.grp td { color:var(--y); font-weight:700; letter-spacing:.16em; font-size:12px; text-transform:uppercase; padding-top:14px; }
.perm td:first-child { white-space:nowrap; } .dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; }
.lv { font-size:12px; font-weight:700; padding:2px 7px; border-radius:6px; } .lv.l0 { color:var(--mut); } .lv.l1 { background:var(--card2); } .lv.l2 { background:rgba(63,169,255,.14); color:#7cc4ff; } .lv.l3 { background:rgba(255,210,31,.14); color:var(--y); }
.map { display:grid; grid-template-columns:1fr 20px 1fr 20px; align-items:center; padding:6px 0; border-bottom:1px solid var(--line); font-size:15px; } .map i { color:var(--y); font-style:normal; }
#as-unused { position:fixed; right:16px; bottom:16px; background:var(--pan); border:1px solid var(--line); border-radius:12px; padding:8px 10px; font-size:13px; color:var(--mut); display:flex; gap:6px; align-items:center; z-index:9; }
#as button { padding:3px 8px; border-radius:6px; background:var(--card2); color:#fff; font-weight:600; }

a { color:inherit; text-decoration:none; }
.logo { color:#fff; }
#nav, aside nav { display:grid; gap:4px; }
aside nav a { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:10px; color:var(--mut); font-weight:600; font-size:16px; }
aside nav a i { font-style:normal; width:22px; text-align:center; }
aside nav a:hover { background:var(--card); color:#fff; } aside nav a.on { background:rgba(255,210,31,.12); color:var(--y); box-shadow:inset 3px 0 0 var(--y); }
.me { margin-top:auto; display:flex; align-items:center; gap:10px; padding:12px; border-radius:12px; background:var(--card); border:1px solid var(--line); flex-wrap:wrap; }
.me b { display:block; } .me small { font-size:13px; font-weight:700; display:block; }
.small { font-size:14px; color:var(--mut); padding:0 12px; text-align:left; } .small:hover { color:#fff; }
.flash { padding:10px 14px; border-radius:10px; margin-bottom:14px; border:1px solid rgba(91,229,132,.35); background:rgba(91,229,132,.08); color:var(--ok); font-weight:600; }
.flash.error { border-color:rgba(255,90,103,.4); background:rgba(255,90,103,.08); color:var(--bad); }
.inline { display:inline; } .act { white-space:nowrap; text-align:right; } .act > * { margin-left:4px; }
.ic.red:hover { background:var(--bad); } .btn.red { background:rgba(255,90,103,.16); color:var(--bad); }
td small.inl, small.inl { display:inline; color:var(--mut); font-size:13px; margin-left:4px; }
.empty { text-align:center; color:var(--mut); padding:30px; }
dialog { margin:auto; background:var(--pan); color:#fff; border:1px solid var(--line); border-radius:16px; padding:0; width:min(720px, 94vw); }
dialog::backdrop { background:rgba(0,0,0,.6); }
.dlg-h { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--line); font-size:20px; }
.dlg-h .x { width:32px; height:32px; border-radius:8px; background:var(--card2); }
.dlg-b { padding:18px 20px; max-height:70vh; overflow:auto; } .dlg-f { display:flex; justify-content:flex-end; gap:8px; padding:14px 20px; border-top:1px solid var(--line); }
.g2 { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.inp { width:100%; } .ph-r .inp { width:220px; } select.inp option { background:#151518; } textarea.inp { resize:vertical; font-size:15px; }
.chk { display:flex; gap:8px; align-items:center; margin-top:6px; color:var(--mut); font-weight:600; }
.lvsel { background:var(--card2); border:1px solid var(--line); border-radius:6px; padding:2px 4px; font-size:12px; font-weight:700; color:#fff; }
.lvsel.l2 { color:#7cc4ff; } .lvsel.l3 { color:var(--y); } .lvsel.l0 { color:var(--mut); }
.usr { grid-template-columns:30px 1fr auto auto auto; } .usr.off { opacity:.55; }
details.ed { position:relative; } details.ed summary { list-style:none; display:grid; place-items:center; cursor:pointer; } details.ed summary::-webkit-details-marker { display:none; }
.ed-b { position:absolute; right:0; top:34px; z-index:5; width:300px; background:#1b1b20; border:1px solid var(--line); border-radius:12px; padding:12px; display:grid; gap:8px; box-shadow:0 12px 30px rgba(0,0,0,.5); }
.ed-b form { display:grid; grid-template-columns:1fr auto; gap:6px; } .ed-b .row { display:flex; gap:6px; } .ed-b .row form { display:inline; }
.box.narrow { max-width:420px; }
.steps p { margin-bottom:12px; line-height:1.4; color:#ddd; }
.chips.radio label { cursor:pointer; } .chips.radio input { display:none; }
.chips.radio span { display:inline-block; padding:6px 12px; border-radius:8px; background:var(--card); border:1px solid var(--line); color:var(--mut); font-weight:600; font-size:14px; }
.chips.radio input:checked + span { background:var(--y); color:var(--ink); border-color:var(--y); }
.hidden-row { display:none; }
@media (max-width:900px) { #shell { grid-template-columns:1fr; } aside { position:static; height:auto; } .kpis, .grid2, .grid2.t, .g2 { grid-template-columns:1fr; } main { padding:18px 14px; } }
/* ---------- v2 ---------- */
.nav-sep { font-size:11px; letter-spacing:.2em; color:var(--mut); font-weight:700; padding:14px 12px 4px; }
.pill.y { background:var(--y); color:var(--ink); }
.kpis.k5 { grid-template-columns:repeat(5, 1fr); } .kpi b.y { color:var(--y); font-size:28px; } .kpi b em { font-size:15px; } .warnc { color:var(--warn); }
.lbl a.tag { margin-left:auto; } .lnk:hover b { color:var(--y); }
.fcards { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:10px; }
.fc { display:grid; gap:8px; padding:13px 15px; border-radius:14px; background:var(--pan); border:1px solid var(--line); border-left:3px solid var(--ok); transition:transform .12s, border-color .12s; }
.fc:hover { transform:translateY(-2px); border-color:rgba(255,210,31,.4); }
.fc.yellow { border-left-color:var(--warn); } .fc.red { border-left-color:var(--bad); background:linear-gradient(90deg, rgba(255,90,103,.07), var(--pan) 40%); }
.fc-h { display:flex; align-items:center; gap:8px; } .fc-h b { font-size:17px; flex:1; }
.fc-l { display:flex; justify-content:space-between; gap:8px; font-size:13px; color:#ddd; } .fc-l span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fc-t { display:flex; flex-wrap:wrap; gap:4px; min-height:20px; } .fc-s { color:var(--mut); font-size:12px; }
.amp-d { width:10px; height:10px; border-radius:50%; background:var(--ok); box-shadow:0 0 8px var(--ok); flex:none; } .amp-d.yellow { background:var(--warn); box-shadow:0 0 8px var(--warn); } .amp-d.red { background:var(--bad); box-shadow:0 0 8px var(--bad); }
.badge { font-size:12px; font-weight:700; padding:2px 8px; border-radius:6px; background:rgba(255,210,31,.15); color:var(--y); letter-spacing:.04em; }
.fv-top { display:grid; grid-template-columns:1.4fr 1fr; gap:14px; margin-bottom:14px; }
.amp { display:inline-flex; align-items:center; gap:8px; font-weight:700; padding:4px 12px; border-radius:8px; margin-right:8px; background:rgba(91,229,132,.12); color:var(--ok); }
.amp i { width:10px; height:10px; border-radius:50%; background:currentColor; } .amp.yellow { background:rgba(255,154,61,.12); color:var(--warn); } .amp.red { background:rgba(255,90,103,.12); color:var(--bad); }
.kv { display:grid; grid-template-columns:repeat(3, 1fr); gap:12px 16px; margin-top:14px; } .kv small { display:block; color:var(--mut); font-size:12px; letter-spacing:.1em; text-transform:uppercase; } .kv b { font-size:15px; word-break:break-word; }
.grid3 { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.note-f { display:grid; gap:6px; margin-bottom:10px; } .note-f .btn { justify-self:end; }
.note-i { padding:10px 0; border-top:1px solid var(--line); } .note-i > div { display:flex; align-items:center; gap:6px; } .note-i > div form { margin-left:auto; } .note-i p { color:#ddd; font-size:14px; margin-top:4px; }
.grid2.r { grid-template-columns:.8fr 1.6fr; margin-bottom:14px; } .grid2.sk { grid-template-columns:.9fr 1.6fr; }
.schmiede { background:linear-gradient(160deg, rgba(255,210,31,.10), var(--pan) 55%); border-color:rgba(255,210,31,.3); }
.sm-own { font-size:40px; font-weight:700; color:var(--y); line-height:1.1; margin:6px 0; }
.row-f { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:16px; }
table.mini td, table.mini th { padding:8px 10px; font-size:14px; }
details.proto { border-top:1px solid var(--line); padding:10px 0; } details.proto summary { display:flex; gap:10px; align-items:center; cursor:pointer; list-style:none; } details.proto summary form { margin-left:auto; }
details.proto p { color:#ddd; margin-top:8px; line-height:1.45; white-space:normal; }
.chips a { padding:6px 12px; border-radius:8px; background:var(--card); border:1px solid var(--line); color:var(--mut); font-weight:600; font-size:14px; } .chips a.on { background:var(--y); color:var(--ink); border-color:var(--y); }
.seg { display:flex; gap:6px; } .seg button { flex:1; padding:8px; border-radius:8px; background:var(--card2); font-weight:700; } .seg button.on { background:var(--y); color:var(--ink); }
.res { margin-top:14px; padding:14px; border-radius:12px; background:var(--card); border:1px solid var(--line); display:grid; gap:6px; }
.res small { color:var(--mut); letter-spacing:.12em; font-size:12px; text-transform:uppercase; } .res b { font-size:26px; color:var(--y); line-height:1.1; } .res .btn { justify-self:start; }
.res.frak b { color:var(--bad); }
.task { display:grid; grid-template-columns:28px 1fr auto; gap:10px; padding:11px 0; border-top:1px solid var(--line); align-items:start; }
.task.pin { background:rgba(255,210,31,.05); } .task.p2 .t-b > b { color:var(--bad); } .task.done { opacity:.55; } .task.done .t-b > b { text-decoration:line-through; }
.chk-b { width:24px; height:24px; border-radius:7px; border:2px solid var(--line); color:var(--ink); background:var(--card); font-weight:700; } .task.done .chk-b { background:var(--ok); border-color:var(--ok); }
.chk-b:hover { border-color:var(--y); }
.t-b p { color:#ddd; font-size:14px; margin:3px 0; } .t-b small { color:var(--mut); font-size:12px; }
.frame-box { padding:0; overflow:hidden; height:calc(100vh - 170px); } .frame-box iframe { width:100%; height:100%; border:0; background:#0d0d10; }
.tw-c { padding:5px 10px; border-radius:8px; background:var(--card); border:1px solid var(--line); font-size:14px; } .tw-c.hi { border-color:rgba(255,90,103,.5); color:var(--bad); }
tr.off td { opacity:.5; }
@media (max-width:1100px) { .kpis.k5 { grid-template-columns:repeat(2, 1fr); } .fv-top, .grid3, .grid2.r, .grid2.sk { grid-template-columns:1fr; } .kv { grid-template-columns:1fr 1fr; } }
/* ---------- v2.1 Server ---------- */
.join { display:block; text-align:center; background:var(--y); color:var(--ink); font-weight:700; letter-spacing:.14em; text-transform:uppercase; border-radius:12px; padding:12px; box-shadow:0 0 22px rgba(255,210,31,.25); transition:transform .12s; }
.join:hover { transform:translateY(-2px); } .join-alt { font-size:12px; color:var(--mut); text-align:center; margin-top:-16px; }
.srv { display:grid; grid-template-columns:1fr 1.2fr 1fr 1fr auto; gap:18px; align-items:center; padding:16px 20px; margin-bottom:14px; border-radius:16px; background:linear-gradient(100deg, rgba(255,210,31,.10), var(--pan) 45%); border:1px solid rgba(255,210,31,.25); }
.srv small { display:block; color:var(--mut); font-size:11px; letter-spacing:.16em; font-weight:700; } .srv b { font-size:24px; line-height:1.1; display:block; } .srv b em { font-size:15px; color:var(--mut); font-style:normal; } .srv span.mut { font-size:13px; }
.srv-s { display:flex; align-items:center; gap:12px; } .srv-a { display:flex; gap:8px; }
.dot-live { width:14px; height:14px; border-radius:50%; background:var(--bad); box-shadow:0 0 10px var(--bad); flex:none; } .dot-live.on { background:var(--ok); box-shadow:0 0 12px var(--ok); animation:pulse 1.6s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 6px rgba(91,229,132,.15); } }
@media (max-width:1100px) { .srv { grid-template-columns:1fr 1fr; } .srv-a { grid-column:1/3; } }
/* ---------- Teamregeln ---------- */
.tr-grund { padding:12px 16px; border-radius:12px; background:rgba(255,154,61,.08); border:1px solid rgba(255,154,61,.35); color:var(--warn); font-weight:600; }
.tr-top { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.tr-c { display:grid; grid-template-columns:36px 1fr; gap:2px 10px; padding:12px 14px; border-radius:12px; background:var(--pan); border:1px solid var(--line); }
.tr-c span { grid-row:1/3; font-size:24px; } .tr-c b { font-size:16px; color:var(--y); } .tr-c small { color:#ddd; font-size:13px; }
.tr-nav { display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 12px; position:sticky; top:0; background:var(--bg); padding:8px 0; z-index:2; }
.tr-nav a { padding:5px 10px; border-radius:8px; background:var(--card); border:1px solid var(--line); font-size:13px; font-weight:600; color:var(--mut); } .tr-nav a:hover { color:var(--y); border-color:var(--y); }
.tr-secs { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.tr-h { display:flex; align-items:center; gap:10px; margin-bottom:10px; } .tr-h span { background:var(--y); color:var(--ink); font-weight:700; border-radius:8px; padding:2px 9px; } .tr-h b { font-size:20px; }
.tr-s ol { list-style:none; display:grid; gap:6px; } .tr-li { display:grid; grid-template-columns:52px 1fr; gap:8px; align-items:start; font-size:15px; line-height:1.4; color:#e6e6e6; }
.tr-cp { font-size:12px; font-weight:700; color:var(--mut); background:var(--card2); border-radius:6px; padding:2px 0; } .tr-cp:hover { color:var(--ink); background:var(--y); }
.tr-s:target { border-color:var(--y); }
@media (max-width:1100px) { .tr-top, .tr-secs { grid-template-columns:1fr; } }
/* ---------- Sanktions-Rechner 2.0 ---------- */
.sk2 { display:grid; grid-template-columns:1fr 1.1fr; gap:14px; align-items:start; }
.sk-l { display:flex; flex-direction:column; gap:10px; max-height:calc(100vh - 230px); }
.sk-search { position:relative; } .sk-search span { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--y); font-size:20px; }
.sk-search .inp { padding:14px 44px; font-size:18px; border-radius:12px; } .sk-search kbd { position:absolute; right:12px; top:50%; transform:translateY(-50%); }
kbd { font-family:inherit; font-size:12px; font-weight:700; padding:1px 7px; border-radius:5px; background:var(--card2); border:1px solid var(--line); color:#fff; }
.sk-quick { display:flex; flex-wrap:wrap; gap:6px; align-items:center; } .sk-quick small { color:var(--mut); font-size:12px; letter-spacing:.08em; margin-right:4px; }
.sk-quick button { padding:4px 10px; border-radius:8px; background:rgba(255,210,31,.1); border:1px solid rgba(255,210,31,.3); color:var(--y); font-weight:600; font-size:13px; }
.sk-list { overflow:auto; display:grid; gap:6px; align-content:start; padding-right:4px; }
.sk-it { display:grid; grid-template-columns:auto 44px 1fr auto; gap:10px; align-items:center; padding:10px 12px; border-radius:11px; background:var(--card); border:1px solid var(--line); cursor:pointer; transition:border-color .12s, background .12s; }
.sk-it:hover, .sk-it.cur { border-color:rgba(255,210,31,.45); } .sk-it.on { border-color:var(--y); background:rgba(255,210,31,.08); }
.sk-it b { display:block; font-size:16px; } .sk-it small { color:var(--mut); font-size:13px; }
.sk-p { font-size:12px; font-weight:700; color:var(--mut); text-align:center; } .uses { font-size:12px; font-weight:700; color:var(--y); }
.sk-list.sorting .sk-it { cursor:grab; } .sk-it.drag { opacity:.4; } .grip { color:var(--mut); font-size:18px; }
.sk-none { text-align:center; color:var(--mut); padding:26px 10px; }
.sk-r { position:sticky; top:14px; min-height:420px; } .sk-r.pop { animation:skpop .25s ease; }
@keyframes skpop { from { opacity:.3; transform:translateY(6px); } to { opacity:1; transform:none; } }
.sk-empty { display:grid; place-items:center; text-align:center; min-height:380px; color:var(--mut); } .sk-empty b { font-size:54px; color:var(--y); opacity:.5; display:block; }
.sk-h { display:flex; align-items:center; gap:10px; } .sk-para { background:var(--y); color:var(--ink); font-weight:700; border-radius:8px; padding:2px 9px; font-size:13px; }
.sk-h h3 { font-size:24px; flex:1; } .sk-note { color:var(--mut); margin:6px 0 14px; min-height:4px; }
.sk-hist-l .tag.bad { background:rgba(255,90,103,.15); color:var(--bad); }
.sk-pen { padding:16px; border-radius:14px; background:linear-gradient(120deg, rgba(255,210,31,.12), var(--card)); border:1px solid rgba(255,210,31,.3); margin-top:6px; }
.sk-pen small { color:var(--mut); letter-spacing:.14em; font-size:12px; text-transform:uppercase; } .sk-pen > b { display:block; font-size:32px; color:var(--y); line-height:1.1; margin:4px 0 10px; }
.sk-steps { display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; } .sk-steps span { padding:6px 8px; border-radius:8px; background:var(--card); font-size:13px; color:var(--mut); }
.sk-steps span em { display:block; font-style:normal; font-weight:700; font-size:11px; letter-spacing:.1em; } .sk-steps span.on { background:var(--y); color:var(--ink); } .sk-steps span.inh { opacity:.6; }
.sk-alert { margin-top:10px; padding:10px 12px; border-radius:10px; background:rgba(255,90,103,.1); border:1px solid rgba(255,90,103,.4); color:var(--bad); } .sk-alert.info { background:rgba(63,169,255,.08); border-color:rgba(63,169,255,.35); color:#7cc4ff; }
.sk-frak { margin-top:10px; padding:12px; border-radius:10px; background:var(--card); border:1px solid var(--line); } .sk-frak small { color:var(--mut); font-size:12px; letter-spacing:.1em; text-transform:uppercase; } .sk-frak b { display:block; color:var(--bad); font-size:18px; }
.sk-frak .row { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:8px; }
.sk-hist { margin-top:12px; display:grid; gap:4px; } .sk-hist > small { color:var(--mut); font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.sk-hist div { font-size:14px; padding:6px 10px; border-radius:8px; background:var(--card); } .sk-hist div.same { border-left:3px solid var(--bad); } .sk-hist em { float:right; font-style:normal; color:var(--mut); font-size:12px; }
.sk-act { display:grid; gap:8px; margin-top:16px; } .sk-act form { display:grid; grid-template-columns:1fr auto; gap:8px; }
.inp.bad { border-color:var(--bad); } .hide { display:none !important; }
@media (max-width:1100px) { .sk2 { grid-template-columns:1fr; } .sk-l { max-height:none; } .sk-r { position:static; } }
/* Dropdowns im dunklen Design (Fix: dunkle Schrift auf dunklem Grund) */
:root { color-scheme: dark; }
select, select.inp { color:#fff; background-color:#1c1c21; }
select option, select optgroup { background:#1c1c21; color:#fff; }
select option:checked, select option:hover { background:#FFD21F; color:#0c0c0e; }
.sk-it { grid-template-columns:44px 1fr auto; } .sk-list.sorting .sk-it { grid-template-columns:20px 44px 1fr auto; }
/* ---------- MLO-Karten mit Vorschaubild ---------- */
.cards:has(.mc) { grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:14px; }
.mc { position:relative; padding:0; overflow:hidden; gap:0; }
.mc-img { position:relative; display:block; aspect-ratio:16/9; background:#0a0a0c; overflow:hidden; }
.mc-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.mc:hover .mc-img img { transform:scale(1.05); }
.mc-img .play { position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); width:54px; height:54px; border-radius:50%; background:rgba(12,12,14,.7); color:var(--y); display:grid; place-items:center; font-size:20px; border:2px solid var(--y); opacity:0; transition:opacity .2s; }
.mc-img:hover .play { opacity:1; }
.mc-ph { width:100%; height:100%; display:grid; place-items:center; align-content:center; gap:6px; background:repeating-linear-gradient(135deg, rgba(255,210,31,.04) 0 12px, transparent 12px 24px); color:var(--mut); text-align:center; padding:10px; }
.mc-ph span { font-size:40px; } .mc-ph small { font-size:12px; }
.mc-st { position:absolute; top:10px; right:10px; font-size:12px; font-weight:700; padding:3px 9px; border-radius:7px; background:rgba(12,12,14,.8); color:var(--mut); }
.mc-st.on { background:var(--ok); color:var(--ink); }
.mc-g { position:absolute; top:10px; left:10px; font-size:12px; font-weight:700; padding:3px 9px; border-radius:7px; background:rgba(12,12,14,.8); color:#fff; }
.mc-b { padding:10px 13px 12px; display:grid; gap:2px; }
.mc-b b { font-size:14px; font-weight:600; color:#ddd; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mc-b small { font-size:12px; color:var(--mut); min-height:16px; }
.mc.done { border-color:rgba(91,229,132,.35); }
/* Tier-Avatare */
.av.ani { background:#1c1c21; box-shadow:inset 0 0 0 1px var(--c), 0 0 10px -4px var(--c); font-size:20px; line-height:1; }
.av.ani.sm { font-size:17px; }
.av.ani:hover { transform:scale(1.12) rotate(-6deg); transition:transform .15s; }
/* ---------- Fahrzeug-Karten ---------- */
.vg { margin-bottom:22px; scroll-margin-top:12px; }
.vcards { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:12px; }
.vc { background:var(--pan); border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:border-color .15s, transform .15s; }
.vc:hover { border-color:rgba(255,210,31,.45); transform:translateY(-2px); }
.vc-img { position:relative; aspect-ratio:2.2/1; background:radial-gradient(ellipse at 50% 90%, rgba(255,210,31,.12), transparent 65%), #0c0c0f; display:grid; place-items:center; }
.vc-img img { width:92%; height:92%; object-fit:contain; filter:drop-shadow(0 8px 10px rgba(0,0,0,.6)); transition:transform .3s; }
.vc:hover .vc-img img { transform:scale(1.06); }
.vc-ph { display:none; text-align:center; color:var(--mut); } .vc-img.noimg .vc-ph, .vc-img:not(:has(img)) .vc-ph { display:grid; gap:4px; } .vc-ph span { font-size:30px; } .vc-ph small { font-size:12px; }
.vc-b { padding:10px 12px 12px; display:grid; gap:6px; } .vc-b b { font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vc-f { display:flex; justify-content:space-between; align-items:center; gap:6px; }
.vc-code { font-family:ui-monospace, Consolas, monospace; font-size:12px; background:var(--card2); padding:3px 8px; border-radius:6px; color:var(--y); max-width:60%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vc-code:hover { background:var(--y); color:var(--ink); }
.vg-nav { position:sticky; top:0; z-index:3; background:var(--bg); padding:8px 0; }
/* ---------- Karte ---------- */
.mp { display:grid; grid-template-columns:1fr 300px; gap:14px; }
.mp-view { position:relative; overflow:hidden; border-radius:16px; border:1px solid var(--line); background:#0a0f14; height:calc(100vh - 210px); min-height:480px; cursor:grab; user-select:none; }
.mp-view:active { cursor:grabbing; } .mp.editing .mp-view { cursor:crosshair; box-shadow:0 0 0 2px var(--y) inset; }
.mp-stage { position:absolute; left:0; top:0; width:100%; transform-origin:0 0; }
.mp-stage img { width:100%; display:block; pointer-events:none; }
.mp-pins { position:absolute; inset:0; }
.pin { position:absolute; transform:translate(-50%, -50%) scale(calc(1 / var(--z, 1))); display:flex; align-items:center; gap:6px; background:none; padding:0; }
.pin i { width:16px; height:16px; border-radius:50%; background:var(--pc); border:2px solid #0c0c0e; box-shadow:0 0 0 2px var(--ok), 0 2px 8px rgba(0,0,0,.6); flex:none; }
.pin.yellow i { box-shadow:0 0 0 2px var(--warn), 0 2px 8px rgba(0,0,0,.6); } .pin.red i { box-shadow:0 0 0 2px var(--bad), 0 0 12px var(--bad); animation:pulse 1.4s infinite; }
.pin.auto i { outline:2px dashed rgba(255,255,255,.7); outline-offset:3px; }
.pin span { font-size:12px; font-weight:700; color:#fff; background:rgba(12,12,14,.8); padding:1px 6px; border-radius:5px; white-space:nowrap; opacity:.85; }
.pin:hover span, .pin.sel span { background:var(--y); color:var(--ink); opacity:1; } .pin:hover { z-index:5; }
.pin.ping i { animation:ping 0.4s ease 4; } @keyframes ping { 50% { transform:scale(1.8); } }
.mp-tip { position:absolute; z-index:10; min-width:190px; background:rgba(12,12,14,.95); border:1px solid rgba(255,210,31,.4); border-radius:10px; padding:10px 12px; font-size:13px; pointer-events:none; display:grid; gap:2px; }
.mp-tip b { font-size:16px; } .mp-tip small { color:var(--mut); } .mp-tip .y { color:var(--y); } .t-red { color:var(--bad); } .t-yellow { color:var(--warn); } .t-green { color:var(--ok); }
.mp-zoom { position:absolute; right:12px; top:12px; display:grid; gap:4px; z-index:6; } .mp-zoom button { width:34px; height:34px; border-radius:8px; background:rgba(12,12,14,.85); border:1px solid var(--line); font-size:18px; font-weight:700; }
.mp-hint { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); background:var(--y); color:var(--ink); font-weight:700; padding:8px 14px; border-radius:10px; z-index:6; }
.mp-miss { position:absolute; inset:0; display:grid; place-items:center; align-content:center; text-align:center; gap:8px; padding:30px; color:var(--mut); } .mp-miss b { font-size:24px; color:#fff; }
.mp-side { display:flex; flex-direction:column; max-height:calc(100vh - 210px); }
.mp-list { overflow:auto; display:grid; gap:4px; align-content:start; flex:1; }
.mp-it { display:grid; grid-template-columns:12px 1fr auto; gap:10px; align-items:center; padding:8px 10px; border-radius:9px; cursor:pointer; border:1px solid transparent; }
.mp-it:hover { background:var(--card); } .mp-it.sel { border-color:var(--y); background:rgba(255,210,31,.08); } .mp-it.miss b { color:var(--mut); }
.mp-it b { display:block; font-size:14px; } .mp-it small { color:var(--mut); font-size:12px; }
.mp-leg { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--mut); padding-top:10px; border-top:1px solid var(--line); margin-top:8px; } .mp-leg span { display:flex; align-items:center; gap:5px; }
.mp-leg .ring { width:10px; height:10px; border-radius:50%; outline:2px dashed rgba(255,255,255,.7); }
.mp-info { font-size:12px; color:var(--mut); margin-top:8px; line-height:1.4; }
.mp-up { margin-top:8px; font-size:13px; } .mp-up summary { cursor:pointer; color:var(--y); } .mp-up form { display:grid; gap:6px; margin-top:6px; }
#mp-edit.on { background:var(--y); color:var(--ink); }
@media (max-width:1100px) { .mp { grid-template-columns:1fr; } .mp-side { max-height:none; } }
.mp-gen { display:block; width:100%; height:auto; background:radial-gradient(ellipse at 45% 55%, rgba(63,169,255,.06), transparent 70%); }
.mp-gen .d circle { fill:rgba(255,210,31,.38); }
.mp-gen .l { display:none; } .mp-stage.zl .mp-gen .l { display:block; }
.mp-gen .l text { font-size:6px; fill:rgba(255,255,255,.55); font-family:'Rajdhani', sans-serif; font-weight:600; }
.miss-box { margin-bottom:14px; } .miss-box summary { cursor:pointer; } .miss-box textarea { margin-top:8px; font-family:ui-monospace, Consolas, monospace; font-size:13px; }
/* ---------- Aktivität ---------- */
.onl { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--ok); padding:0 12px; margin-bottom:-10px; } .onl .dot-live { width:9px; height:9px; }
table.ac th a { color:inherit; } table.ac th a.on { color:var(--y); }
.ac-u { display:flex; align-items:center; gap:10px; } .ac-u small { display:block; font-size:12px; font-weight:700; }
tr.ac-r.on td { background:rgba(91,229,132,.04); }
.spark7 { display:flex; align-items:flex-end; gap:3px; height:28px; width:98px; } .spark7 i { flex:1; background:var(--y); border-radius:2px 2px 0 0; min-height:3px; } .spark7 i.z { background:var(--card2); }
/* ---------- v2.8: Spielerzahlen ---------- */
.lchart { position:relative; height:260px; margin:6px 0 4px; }
.lchart svg { display:block; width:100%; height:100%; overflow:visible; }
.lchart .gl { stroke:rgba(255,255,255,.07); stroke-width:1; } .lchart .ax { fill:var(--mut); font-size:12px; font-family:inherit; }
.lchart .ln { fill:none; stroke:var(--y); stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.lchart .cross { stroke:rgba(255,255,255,.35); stroke-width:1; pointer-events:none; }
.lchart .hit { cursor:crosshair; } .lchart .nl { stroke-width:1.5; stroke-dasharray:4 4; opacity:.75; pointer-events:none; }
.lchart .npin { cursor:help; } .lchart .npin circle { stroke:#0b0b0b; stroke-width:2; } .lchart .npin text { font-size:10px; font-weight:800; fill:#111; pointer-events:none; }
.lchart .npin:hover circle { r:9; }
.snotes { display:flex; flex-direction:column; gap:6px; margin-top:10px; max-height:260px; overflow:auto; }
.snote { display:flex; gap:10px; align-items:flex-start; padding:8px 10px; border-radius:10px; background:rgba(255,255,255,.03); border-left:3px solid var(--c); }
.snote > i { width:9px; height:9px; border-radius:50%; background:var(--c); margin-top:6px; flex:none; }
.snote > div { flex:1; font-size:13px; } .snote p { margin:2px 0 0; font-size:14px; } .snote small { color:var(--mut); } .lchart .dot { fill:var(--y); stroke:#0b0b0b; stroke-width:2; }
.tip { position:fixed; z-index:99; pointer-events:none; background:rgba(12,12,12,.96); border:1px solid rgba(255,210,31,.35); border-radius:8px; padding:6px 10px; font-size:14px; color:#eee; white-space:nowrap; transform:translate(-50%, calc(-100% - 12px)); display:none; }
.tip b { color:var(--y); font-size:16px; }
.hm { display:grid; grid-template-columns:30px repeat(24, 1fr); gap:3px; align-items:center; }
.hm i { display:block; aspect-ratio:1; border-radius:3px; background:rgba(255,210,31,var(--a)); } .hm i.z { background:rgba(255,255,255,.04); } .hm i:hover { outline:2px solid #fff; }
.hm-h, .hm-d { font-size:11px; color:var(--mut); } .hm-d { font-weight:700; }
.hm-l { display:flex; align-items:center; gap:8px; margin-top:10px; } .hm-l > span:not(.sh-c) { width:120px; height:8px; border-radius:4px; background:linear-gradient(90deg, rgba(255,210,31,.1), var(--y)); } .hm-l small { color:var(--mut); }
.copyline { display:flex; gap:8px; align-items:center; background:rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.08); border-radius:8px; padding:8px 10px; margin-top:8px; } .copyline code { flex:1; overflow:auto; font-size:13px; color:var(--y); }
/* ---------- Dienstplan ---------- */
.shift { display:grid; grid-template-columns:56px repeat(7, 1fr); gap:4px; }
.sh-h { text-align:center; font-size:13px; color:var(--mut); font-weight:700; } .sh-h.today { color:var(--y); }
.sh-s { font-size:12px; color:var(--mut); display:flex; align-items:center; }
.sh-c { display:grid; place-items:center; height:38px; border-radius:6px; font-weight:700; font-size:16px; cursor:default; }
.sh-c.c0 { background:rgba(255,90,90,.16); color:var(--bad); } .sh-c.c1 { background:rgba(255,165,61,.16); color:var(--warn); } .sh-c.c2 { background:rgba(255,210,31,.2); color:var(--y); }
.sh-c.now { outline:2px solid var(--y); } .sh-c.sm { height:22px; width:28px; font-size:12px; }
.sh-k { display:grid; place-items:center; height:34px; cursor:pointer; } .sh-k input { display:none; }
.sh-k i { width:100%; height:100%; border-radius:6px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); display:grid; place-items:center; font-style:normal; }
.sh-k input:checked + i { background:var(--y); border-color:var(--y); } .sh-k input:checked + i:after { content:"✓"; color:#000; font-weight:700; }
.row-b { display:flex; align-items:center; gap:10px; margin-bottom:6px; } .row-b .ac-u { width:170px; } .row-b .bar { flex:1; }
.duty { display:flex; flex-wrap:wrap; gap:10px; } .duty span { display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.04); border-radius:8px; padding:6px 10px; } .duty small { font-size:12px; font-weight:700; }
/* ---------- Ankündigungen ---------- */
.banner { display:flex; align-items:center; gap:12px; background:rgba(255,210,31,.1); border:1px solid rgba(255,210,31,.45); border-radius:10px; padding:10px 14px; margin-bottom:12px; }
.banner > span { font-size:22px; } .banner div { flex:1; } .banner small { display:block; color:var(--mut); }
.news { background:var(--card); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:14px 16px; margin-bottom:12px; }
.news.imp { border-left:4px solid var(--y); } .news.unread { box-shadow:0 0 0 1px rgba(255,210,31,.35); }
.news-h { display:flex; align-items:center; gap:10px; } .news-h > div:not(.av) { flex:1; } .news-h b { font-size:18px; } .news-h small { display:block; color:var(--mut); }
.news-b { margin:10px 0; line-height:1.45; } .news-b a { color:var(--y); }
.news-f { display:flex; align-items:center; gap:10px; } .news-f .bar { flex:1; max-width:260px; } .news-f small { color:var(--mut); }
.news-m { margin-top:8px; display:flex; flex-wrap:wrap; gap:4px; align-items:center; } .news-m small { color:var(--mut); margin-right:4px; }
/* ---------- Kalender ---------- */
.legend { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:10px; font-size:13px; color:var(--mut); } .legend span { display:flex; align-items:center; gap:6px; }
.legend i { width:10px; height:10px; border-radius:3px; display:inline-block; } .legend i.abg { background:var(--bad); opacity:.5; } .legend i.abs { background:#777; }
.cal { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; }
.cal-h { text-align:center; font-size:12px; color:var(--mut); font-weight:700; padding-bottom:2px; }
.cal-d { min-height:86px; background:rgba(255,255,255,.035); border-radius:7px; padding:4px; display:flex; flex-direction:column; gap:2px; overflow:hidden; }
.cal-d[data-edit] { cursor:pointer; } .cal-d[data-edit]:hover { background:rgba(255,255,255,.06); }
.cal-d.out { opacity:.35; } .cal-d.today { outline:2px solid var(--y); } .cal-n { font-size:13px; font-weight:700; color:var(--mut); } .cal-d.today .cal-n { color:var(--y); }
.cal-d em { font-style:normal; font-size:12px; font-weight:600; border-left:3px solid var(--c); background:rgba(255,255,255,.05); border-radius:3px; padding:1px 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-d em.abg { --c:var(--bad); color:#ffb3b3; } .cal-d em.abs { --c:#777; color:var(--mut); }
.evc { display:flex; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.06); } .evc:last-child { border:0; }
.evc-d { width:44px; text-align:center; border-radius:8px; background:rgba(255,255,255,.04); border-top:3px solid var(--c); padding:4px 0; flex:none; } .evc-d b { font-size:20px; display:block; } .evc-d small { color:var(--mut); }
.evc-b { flex:1; } .evc-b > small { display:block; color:var(--mut); } .evc-b p { font-size:14px; margin:4px 0; }
.evc-f { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:6px; }
@media (max-width:900px) { .cal-d { min-height:56px; } .cal-d em { font-size:10px; } .hm { grid-template-columns:24px repeat(24, 1fr); gap:2px; } }
.box.tbl > .lbl { padding:16px 18px 4px; }
.grid2.t { align-items:start; }
/* ---------- v2.9: Live-Logs ---------- */
.conn { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--mut); border:1px solid var(--line); border-radius:8px; padding:6px 12px; }
.conn i { width:9px; height:9px; border-radius:50%; background:#666; } .conn.on { color:var(--ok); border-color:rgba(91,229,132,.35); } .conn.on i { background:var(--ok); box-shadow:0 0 8px var(--ok); }
.grid2.lg2 { grid-template-columns:1.7fr 1fr; align-items:start; }
.lgbar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; } .lgbar .inp:first-of-type { flex:1; min-width:220px; }
.chips.lgch { flex-wrap:wrap; margin-bottom:10px; } .chips.lgch a { display:inline-flex; align-items:center; gap:6px; } .chips.lgch i { width:8px; height:8px; border-radius:50%; display:inline-block; } .chips.lgch em { font-style:normal; opacity:.6; font-size:12px; }
.lgr { border-bottom:1px solid var(--line); } .lgr summary { display:grid; grid-template-columns:78px 130px 1fr; gap:10px; align-items:center; padding:8px 4px; cursor:pointer; list-style:none; font-size:14px; }
.lgr summary::-webkit-details-marker { display:none; } .lgr summary:hover { background:rgba(255,255,255,.03); } .lgr[open] summary { background:rgba(255,210,31,.05); }
.lgr .t { color:var(--mut); font-size:12.5px; } .lgr .src { font-size:12px; font-weight:700; border-radius:5px; padding:2px 7px; text-align:center; color:var(--c); background:rgba(255,255,255,.05); border-left:3px solid var(--c); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lgm { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .lgm .y, b.y { color:var(--y); } .pl { color:inherit; border-bottom:1px dotted var(--mut); }
.lgr.new summary { animation:lgnew 2s ease; } @keyframes lgnew { from { background:rgba(255,210,31,.18); } to { background:transparent; } }
.lgf { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:8px; padding:8px 4px 12px 92px; } .lgf div { background:rgba(255,255,255,.035); border-radius:7px; padding:6px 9px; } .lgf small { display:block; color:var(--mut); font-size:12px; } .lgf span { font-size:14px; word-break:break-word; }
.lgt { margin:0 4px 10px 92px; white-space:pre-wrap; font-size:13px; color:#cfcfcf; background:rgba(0,0,0,.35); border-radius:7px; padding:8px 10px; font-family:inherit; }
.lgi { display:flex; flex-wrap:wrap; gap:4px; padding:0 4px 12px 92px; }
a.row-b { color:inherit; } .sw { width:9px; height:9px; border-radius:50%; display:inline-block; margin-right:4px; }
.banner.bad { background:rgba(255,90,90,.08); border-color:rgba(255,90,90,.45); }
.big-s { display:flex; gap:10px; margin-bottom:14px; } .big-s .inp { flex:1; font-size:20px; padding:12px 14px; color:var(--y); border-color:rgba(255,210,31,.45); }
.kv { display:grid; grid-template-columns:130px 1fr; gap:6px 10px; } .kv span { color:var(--mut); }
.tl { border-left:2px solid var(--line); margin-left:6px; padding-left:14px; } .tl > div { position:relative; margin-bottom:12px; font-size:14px; } .tl > div:before { content:""; position:absolute; left:-20px; top:4px; width:10px; height:10px; border-radius:50%; background:var(--c, var(--y)); } .tl small { color:var(--mut); display:block; }
@media (max-width:900px) { .grid2.lg2 { grid-template-columns:1fr; } .lgr summary { grid-template-columns:60px 1fr; } .lgr .lgm { grid-column:1 / -1; } .lgf, .lgt, .lgi { padding-left:4px; margin-left:4px; } }
/* ---------- v3.0: Bewerbungen ---------- */
.chips a em { font-style:normal; opacity:.6; margin-left:3px; }
.kanban { display:grid; gap:12px; margin-top:12px; align-items:start; } .kanban.c3 { grid-template-columns:repeat(3, 1fr); } .kanban.c4 { grid-template-columns:repeat(4, 1fr); } .kanban.c5 { grid-template-columns:repeat(5, 1fr); }
.kcol { background:rgba(255,255,255,.025); border:1px solid var(--line); border-radius:12px; padding:10px; min-height:120px; }
.apc { display:block; background:var(--card, rgba(22,22,22,.92)); border:1px solid var(--line); border-radius:10px; padding:10px; margin-bottom:8px; color:inherit; } .apc:hover { border-color:rgba(255,210,31,.5); } .apc.new { border-color:rgba(255,210,31,.55); }
.apc-h { display:flex; align-items:center; gap:8px; } .apc-h > div:not(.av) { flex:1; min-width:0; } .apc-h b { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .apc-h small { color:var(--mut); font-size:12px; }
.apc-t { display:flex; flex-wrap:wrap; gap:4px; margin:8px 0 4px; } .dot-new { width:9px; height:9px; border-radius:50%; background:var(--y); box-shadow:0 0 8px var(--y); flex:none; }
.grid2.app { grid-template-columns:1.5fr 1fr; align-items:start; }
.ansr { border-left:3px solid var(--line); padding:2px 0 2px 12px; margin-bottom:12px; } .ansr b { display:block; color:var(--mut); font-size:13px; margin-bottom:2px; } .ansr p { line-height:1.45; } .ansr.fx { border-color:var(--warn, #ffa53d); }
.vehs { display:flex; gap:12px; margin-top:12px; } .vehs figure { margin:0; background:rgba(255,255,255,.03); border-radius:8px; padding:6px; text-align:center; } .vehs img { height:70px; } .vehs figcaption { font-size:12px; color:var(--mut); }
.shots { display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; } .shots figure { margin:0; } .shots img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:8px; border:1px solid var(--line); } .shots figcaption { display:flex; justify-content:space-between; font-size:13px; margin-top:3px; } .noimg { aspect-ratio:16/9; display:grid; place-items:center; border:1px dashed var(--line); border-radius:8px; color:var(--mut); }
.chkr { display:flex; flex-direction:column; gap:2px; padding:6px 0; border-bottom:1px solid var(--line); } .chkr small { color:var(--mut); } .chkr a { color:var(--y); } .hint.ok { color:var(--ok); }
.votes { display:flex; gap:8px; margin-bottom:8px; } .btn.red { background:var(--bad, #ff5a5a); color:#fff; }
.acts { display:flex; flex-direction:column; gap:6px; } .acts .btn { width:100%; } .asend .acts, .dt .acts { flex-direction:row; } .asend .acts .btn { width:auto; }
.dt { border-top:1px solid var(--line); padding-top:8px; margin-top:8px; } .dt summary { cursor:pointer; font-weight:700; color:var(--y); padding:4px 0; } .dt form { margin-top:8px; } .fixl { display:grid; grid-template-columns:1fr; gap:0; margin-bottom:6px; max-height:260px; overflow:auto; } .fixl .chk { font-size:13px; margin:2px 0; }
.achat { display:flex; flex-direction:column; gap:8px; max-height:420px; overflow:auto; margin-bottom:10px; } .am { border-radius:10px; padding:8px 10px; font-size:14px; line-height:1.35; background:rgba(255,255,255,.04); } .am b { display:block; font-size:12px; color:var(--y); } .am small { display:block; font-size:11.5px; color:var(--mut); margin-top:2px; }
.am.app { background:rgba(90,169,255,.08); } .am.app b { color:#5aa9ff; } .am.int { background:rgba(255,165,61,.07); border:1px dashed rgba(255,165,61,.35); } .am.int b { color:#ffa53d; } .am.sys { background:none; text-align:center; color:var(--mut); font-size:13px; padding:2px; }
.lnk-del { background:none; border:0; color:var(--mut); text-decoration:underline; cursor:pointer; font:inherit; font-size:13px; margin-top:6px; }
@media (max-width:1100px) { .kanban.c4, .kanban.c5 { grid-template-columns:repeat(2, 1fr); } .grid2.app { grid-template-columns:1fr; } }
/* ---------- v3.1: Spieler online (dream_panelsync) ---------- */
.ptab tr.pl-r { cursor:pointer; } .ptab tr.pl-r:hover td { background:rgba(255,255,255,.03); } .ptab tr.pl-r.open td { background:rgba(255,210,31,.05); }
.jobt { font-weight:700; color:var(--c); border-left:3px solid var(--c); padding-left:6px; }
.pdet { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:6px 4px 10px; } .pdet .kv { grid-template-columns:110px 1fr; font-size:14px; } .acts-r { display:flex; gap:6px; flex-wrap:wrap; align-items:flex-start; }
.joins { max-height:520px; overflow:auto; } .jr { display:grid; grid-template-columns:44px auto 1fr; gap:8px; align-items:center; padding:5px 0; border-bottom:1px solid var(--line); font-size:14px; } .jr .t { color:var(--mut); font-size:12.5px; } .jn { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kpi b.y { color:var(--y); }
/* ===== Menü v32: schmal, Gruppen, Handy-Schublade, Suche oben ===== */
#shell { grid-template-columns:212px 1fr; }
aside#side { padding:16px 10px 12px; gap:12px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
aside#side .logo { font-size:20px; padding:0 6px; } aside#side .logo .d { width:32px; height:32px; }
aside nav { gap:1px; }
aside nav a { padding:7px 10px; gap:10px; font-size:15px; border-radius:8px; }
aside nav a i { width:20px; font-size:14px; } aside nav a span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
aside nav a .pill { margin-left:auto; }
.ng { margin-top:6px; } .ng summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:6px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--mut); font-weight:700; padding:8px 10px 4px; user-select:none; }
.ng summary::-webkit-details-marker { display:none; }
.ng summary::after { content:'›'; margin-left:auto; font-size:15px; letter-spacing:0; transition:transform .15s; } .ng[open] summary::after { transform:rotate(90deg); }
.ng summary:hover { color:#fff; } .ng summary .pill { margin-left:6px; font-size:11px; letter-spacing:0; }
.side-f { margin-top:auto; display:grid; grid-template-columns:minmax(0, 1fr); gap:8px; }
.side-f .join { padding:9px; font-size:13px; border-radius:10px; box-shadow:none; }
.side-f .onl { margin:0; padding:0 4px; font-size:12.5px; }
.side-f .me { margin:0; padding:8px; gap:8px; flex-wrap:nowrap; border-radius:10px; }
.side-f .me > div:not(.av) { flex:1; min-width:0; } .side-f .me b { font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .side-f .me small { font-size:11.5px; }
.side-f .me .ic { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; color:var(--mut); font-size:15px; } .side-f .me .ic:hover { background:var(--card2); color:#fff; }
#mainwrap { min-width:0; display:flex; flex-direction:column; }
.tb { display:flex; align-items:center; gap:10px; padding:12px 32px 0; }
.tb-menu, .tb-logo { display:none !important; }
.gsearch { margin-left:auto; display:flex; align-items:center; gap:8px; background:var(--card2); border:1px solid var(--line); border-radius:10px; padding:0 10px; width:min(420px, 100%); transition:border-color .15s; }
.gsearch:focus-within { border-color:var(--y); } .gsearch span { color:var(--mut); font-size:18px; }
.gsearch input { flex:1; min-width:0; padding:9px 0; font-size:15px; } .gsearch kbd { font:inherit; font-size:11px; color:var(--mut); border:1px solid var(--line); border-radius:5px; padding:0 5px; }
#mainwrap main { padding-top:14px; }
#scrim { display:none; }
@media (max-width:900px) {
  #shell { grid-template-columns:1fr; }
  aside#side { position:fixed; left:0; top:0; bottom:0; width:min(280px, 84vw); height:100vh; z-index:60; transform:translateX(-102%); transition:transform .2s ease; box-shadow:0 0 40px rgba(0,0,0,.6); }
  body.nav-open aside#side { transform:none; }
  body.nav-open #scrim { display:block; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:55; }
  .tb { position:sticky; top:0; z-index:40; background:rgba(13,13,16,.94); border-bottom:1px solid var(--line); padding:8px 12px; }
  .tb-menu { display:grid !important; place-items:center; width:40px; height:40px; border-radius:10px; background:var(--card2); font-size:20px; }
  .tb-logo { display:flex !important; } .tb-logo .d { width:34px; height:34px; }
  .gsearch { width:auto; flex:1; } .gsearch kbd { display:none; }
  #mainwrap main { padding:14px 12px 30px; }
  .ph { flex-wrap:wrap; gap:10px; } .ph-r { flex-wrap:wrap; }
}
/* Spieler-Akte */
.pa-top { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; }
.pa-av { width:64px; height:64px; border-radius:14px; background:var(--y); color:var(--ink); display:grid; place-items:center; font-size:28px; font-weight:700; }
.pa-top h3 { font-size:26px; line-height:1.1; } .pa-top .sub { color:var(--mut); font-size:14px; }
.pa-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.pa-ids { display:grid; grid-template-columns:110px 1fr auto; gap:6px 10px; align-items:center; font-size:14px; } .pa-ids span { color:var(--mut); } .pa-ids b { overflow-wrap:anywhere; }
.pa-money { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; } .pa-money div { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px; } .pa-money small { display:block; color:var(--mut); font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; } .pa-money b { font-size:22px; }
.inv { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:8px; } .inv div { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:8px 10px; display:flex; justify-content:space-between; gap:8px; font-size:14px; } .inv div b { color:var(--y); font-variant-numeric:tabular-nums; } .inv div span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pa-load { display:flex; align-items:center; gap:10px; color:var(--mut); padding:12px 0; } .pa-load i { width:16px; height:16px; border:2px solid var(--line); border-top-color:var(--y); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.pa-hits a { display:grid; grid-template-columns:1fr auto; gap:4px 10px; padding:10px 12px; border-radius:10px; border:1px solid var(--line); background:var(--card); margin-bottom:6px; } .pa-hits a:hover { border-color:var(--y); } .pa-hits small { color:var(--mut); }
@media (max-width:900px) { .pa-top { grid-template-columns:auto 1fr; } .pa-top > .acts-r { grid-column:1 / -1; } .pa-money { grid-template-columns:1fr 1fr 1fr; } .pa-money b { font-size:17px; } .pa-ids { grid-template-columns:90px 1fr auto; } }
.side-f { min-width:0; } .side-f .me .ic, .side-f .me form { flex-shrink:0; }
.side-f .me small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.side-f .me .av { width:32px !important; height:32px !important; font-size:17px; border-radius:8px; }
.grid2 > div, .grid2 > .box { min-width:0; } .pa-body .kv b, .pa-body .hint, .pa-ids b { overflow-wrap:anywhere; }
.side-f .join { letter-spacing:.1em; white-space:nowrap; }
@media (max-width:900px) { .pa-money { gap:6px; } .pa-money div { padding:9px 8px; } .pa-money b { font-size:15px; white-space:nowrap; } .pa-money small { font-size:10px; letter-spacing:.08em; } .inv { grid-template-columns:1fr 1fr; } }
/* ---------- Teamliste */
.tl-p { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.04em; padding:2px 9px; border-radius:20px; border:1px solid transparent; white-space:nowrap; line-height:1.5; }
.tl-p.sm { font-size:11.5px; padding:1px 8px; }
.tl-bar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; } .tl-bar .inp { flex:1; min-width:220px; } .tl-bar .chips { margin:0; }
.tl-g { margin-bottom:14px; } .tl-g > .lbl { letter-spacing:.2em; }
table.tl td { vertical-align:middle; } table.tl th { white-space:nowrap; }
.tl-n { display:flex; gap:10px; align-items:center; } .tl-n i { width:4px; height:28px; border-radius:3px; flex:none; } .tl-n small { display:block; font-size:12px; }
.tl-side { display:flex; flex-wrap:wrap; gap:4px; max-width:340px; }
.tl-info { max-width:260px; font-size:14px; } .tl-info small { display:block; margin-top:2px; }
.tl-tw { font-size:12px; font-weight:700; color:var(--bad); margin-left:4px; white-space:nowrap; }
.tl-bd { background:rgba(255,95,162,.08); border-color:rgba(255,95,162,.45); } .tl-bd u { text-decoration-color:var(--y); }
.tl-cal { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.tl-m { padding:14px 16px; min-height:120px; } .tl-m.now { border-color:rgba(255,210,31,.55); box-shadow:inset 0 2px 0 var(--y); } .tl-m.now > .lbl { color:var(--y); }
.tl-bdr { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid var(--line); } .tl-bdr:last-child { border:0; }
.tl-bdr > span { color:var(--y); min-width:26px; } .tl-bdr b { flex:1; min-width:0; overflow-wrap:anywhere; } .tl-bdr small { font-size:11px; color:var(--mut); background:var(--card2); padding:1px 6px; border-radius:6px; }
.tl-bdr.ex { opacity:.55; } .tl-bdr.today b { color:var(--y); } .tl-bdr .ic { width:22px; height:22px; font-size:11px; opacity:.5; } .tl-bdr:hover .ic { opacity:1; }
.tl-none { padding:6px 0; }
td.act a.ic { display:inline-grid; place-items:center; vertical-align:middle; }
@media (max-width:1100px) { .tl-cal { grid-template-columns:repeat(3, 1fr); } }
@media (max-width:700px) { .tl-cal { grid-template-columns:1fr 1fr; } .tl-bar .inp { min-width:0; width:100%; } }
@media (min-width:1101px) { .tl-g table.tl { table-layout:fixed; min-width:1050px; } .tl-g table.tl th:nth-child(1) { width:14%; } .tl-g table.tl th:nth-child(2) { width:10%; } .tl-g table.tl th:nth-child(3) { width:10%; } .tl-g table.tl th:nth-child(4) { width:10%; } .tl-g table.tl th:nth-child(5) { width:9%; } .tl-g table.tl th:nth-child(6) { width:20%; } .tl-g table.tl th:nth-child(7) { width:6%; } .tl-g table.tl th:nth-child(8) { width:12%; } .tl-g table.tl th:nth-child(9) { width:150px; } }
/* Team-Seite: Panel-Zugänge */
.usr { grid-template-columns:30px minmax(0,1fr) auto auto auto 30px; } .acc-tl { font-size:13px; font-weight:600; } .acc-tl a { color:var(--y); }
@media (max-width:700px) { .usr { grid-template-columns:30px minmax(0,1fr) auto 30px; } .usr .acc-tl, .usr > small.mut { display:none; } }
/* Zusatzrollen-Häkchen */
.xr { display:flex; flex-wrap:wrap; gap:6px; } .xr-c { cursor:pointer; } .xr-c input { display:none; }
.xr-c span { display:inline-block; padding:4px 10px; border-radius:20px; font-size:13px; font-weight:700; border:1px solid var(--line); color:var(--mut); background:var(--card); }
.xr-c input:checked + span { color:var(--c); border-color:var(--c); background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1px var(--c); }
.xr-c.dis { cursor:not-allowed; } .xr-c.dis span { opacity:.45; }
.acc-act { display:flex; gap:6px; align-items:center; justify-content:flex-end; }
.usr { grid-template-columns:30px minmax(0,1fr) auto auto auto auto; }
dialog .dlg-b { max-height:72vh; overflow:auto; }
.xr-c span { text-transform:none; letter-spacing:.02em; }
/* externe Links im Menü */
nav a em.ext { font-style:normal; margin-left:auto; opacity:.45; font-size:13px; }
/* Bans & Strafregister */
.bpre { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:6px; }
.bp { text-align:left; padding:7px 9px; border:1px solid var(--line); border-radius:9px; background:var(--card); color:#fff; font:inherit; font-weight:600; font-size:14px; line-height:1.2; cursor:pointer; }
.bp small { display:block; font-size:12px; color:var(--mut); font-weight:500; }
.bp.md { border-color:rgba(255,90,103,.4); } .bp.md small { color:var(--bad); }
.bp:hover { border-color:rgba(255,210,31,.5); } .bp.on { border-color:var(--y); background:rgba(255,210,31,.1); } .bp.md.on { border-color:var(--bad); background:rgba(255,90,103,.12); }
.breq { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; } .breq:last-child { border:0; } .breq > div:first-child { min-width:0; flex:1; }
.sanc { display:grid; gap:6px; } .sc { display:grid; grid-template-columns:104px minmax(0,1fr); gap:10px; align-items:start; padding:7px 0; border-bottom:1px solid var(--line); } .sc:last-child { border:0; }
.sc .st { text-align:center; } .sc b { display:block; font-weight:600; overflow-wrap:anywhere; } .sc small { color:var(--mut); font-size:13px; } .sc a { color:var(--y); }
table.bans td { vertical-align:top; } table.bans td small a { color:inherit; }
@media (max-width:700px) { .bpre { grid-template-columns:1fr 1fr; } .sc { grid-template-columns:1fr; } }
/* Adminjail */
.jrow { display:flex; gap:14px; align-items:center; padding:10px 0; border-top:1px solid var(--line); } .jrow:first-of-type { border-top:0; }
.jrow > div:first-child { flex:1; min-width:0; }
.jbar { height:5px; border-radius:3px; background:var(--card2); margin-top:6px; overflow:hidden; } .jbar i { display:block; height:100%; background:var(--y); }
.jt { text-align:right; white-space:nowrap; } .jt small { display:block; color:var(--mut); }
.jmini { display:grid; grid-template-columns:70px 70px 1fr auto; gap:10px; padding:5px 0; font-size:14px; border-top:1px solid var(--line); }
.dseg button.on { background:var(--y); color:var(--ink); }
@media (max-width:700px) { .jmini { grid-template-columns:62px 60px 1fr; } .jmini small { display:none; } }
/* Aufgaben v2 – Board */
.tboard { display:grid; grid-template-columns:1fr 1.15fr 1fr; gap:14px; align-items:start; }
.tcol { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.tcol.work { border-color:rgba(255,210,31,.35); } .tcol.work > .lbl { color:var(--y); }
.tcol > .lbl { display:flex; justify-content:space-between; margin:0; }
.tk2 { background:var(--card2); border:1px solid var(--line); border-left:3px solid #555; border-radius:12px; padding:11px 13px; }
.tk2.p2 { border-left-color:var(--bad); } .tk2.p1 { border-left-color:var(--y); } .tk2.pin { background:rgba(255,210,31,.06); } .tk2.done { opacity:.7; }
.tk2-h { display:flex; align-items:center; gap:7px; } .tk2-h > b { font-size:17px; } .tk2-h .act { margin-left:auto; display:flex; gap:4px; }
.tk2 .pri { font-size:11px; letter-spacing:1.5px; padding:1px 6px; border-radius:4px; background:rgba(255,90,103,.15); color:var(--bad); font-weight:700; }
.tk2 .cat { font-size:11px; letter-spacing:1px; padding:1px 6px; border-radius:4px; background:var(--card); border:1px solid var(--line); color:var(--mut); font-weight:700; }
.tk2 p { color:#ddd; font-size:14px; margin:3px 0 0; }
.tk2-m { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:7px; font-size:13px; color:var(--mut); font-weight:600; }
.tk2-m .av { width:22px; height:22px; border-radius:50%; background:#333; border:1px solid #555; color:#fff; display:inline-grid; place-items:center; font-size:11px; margin-right:-4px; }
.tk2-m .due { padding:1px 7px; border-radius:5px; background:var(--card); border:1px solid var(--line); } .tk2-m .due.late { color:var(--bad); border-color:rgba(255,90,103,.5); }
.tk2-m form button.tag { cursor:pointer; }
.tk2-c { margin-top:8px; display:flex; flex-direction:column; gap:3px; font-size:14px; font-weight:600; }
.tk2-c label { display:flex; gap:7px; align-items:center; cursor:pointer; color:#ddd; } .tk2-c input { accent-color:#5be584; width:15px; height:15px; }
.tk2-c input:checked + span { color:var(--mut); text-decoration:line-through; }
.tk2-s { display:flex; align-items:center; gap:10px; margin-top:10px; } .tk2-s b { color:var(--y); min-width:44px; text-align:right; }
.tk2-s input[type=range] { flex:1; -webkit-appearance:none; appearance:none; height:9px; border-radius:6px; outline:none; cursor:pointer;
  background:linear-gradient(90deg, var(--y) var(--p,0%), #26262b var(--p,0%)); }
.tk2-s input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:19px; height:19px; border-radius:50%; background:#fff; border:3px solid var(--y); }
.tk2-s input[type=range]::-moz-range-thumb { width:15px; height:15px; border-radius:50%; background:#fff; border:3px solid var(--y); }
.tk2-s input[type=range]:disabled { cursor:default; opacity:.85; }
.hint2 { display:block; font-size:12px; color:var(--mut); margin-top:3px; }
.tk2-f { display:flex; gap:6px; margin-top:9px; flex-wrap:wrap; }
.tk2-k { margin-top:8px; padding-top:8px; border-top:1px dashed var(--line); display:flex; flex-direction:column; gap:6px; font-size:14px; }
.tk2-l { margin-top:7px; padding-top:6px; border-top:1px dashed var(--line); font-size:13px; color:var(--mut); } .tk2-l b { color:#fff; }
.tpeople { display:flex; flex-wrap:wrap; gap:4px 14px; max-height:130px; overflow-y:auto; padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:var(--card2); }
@media (max-width:1100px) { .tboard { grid-template-columns:1fr; } }
/* Fraktions-Verlauf */
.fh { display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; padding:9px 0; border-top:1px solid var(--line); font-size:14px; }
.fh:first-of-type { border-top:0; }
.fh-i { font-size:15px; text-align:center; }
.fh-t { color:#ddd; min-width:0; overflow-wrap:anywhere; }
.fh-old { color:#ff8a94; text-decoration:line-through; text-decoration-color:rgba(255,138,148,.5); }
.fh-new { color:#7ee8a2; font-weight:600; }
.fh-m { text-align:right; white-space:nowrap; } .fh-m b { display:block; font-size:13px; } .fh-m small { color:var(--mut, #8a8a8a); font-size:12px; }
.fh-box { margin-bottom:14px; padding:12px 16px; }
.fh-box summary { display:flex; align-items:center; gap:12px; cursor:pointer; list-style:none; }
.fh-box summary::-webkit-details-marker { display:none; }
.fh-box summary .lnk { margin-left:auto; font-size:13px; }
.fh-box[open] summary { margin-bottom:8px; }
/* Creator-Codes */
.cc-chart { padding:14px 18px; } .ccb { display:flex; align-items:flex-end; gap:4px; height:90px; margin-top:10px; }
.ccb i { flex:1; background:rgba(255,210,31,.45); border-radius:3px 3px 0 0; min-height:3px; } .ccb i:hover { background:var(--y); }
.cc-t td.rk { font-size:18px; width:44px; text-align:center; } .cc-t tr.off td { opacity:.5; }
.cc-t code { background:var(--card2); padding:2px 8px; border-radius:6px; letter-spacing:.08em; }
.mini { display:inline-block; width:60px; height:5px; border-radius:3px; background:var(--card2); overflow:hidden; vertical-align:middle; } .mini i { display:block; height:100%; background:var(--y); }
/* Fraktionen · Mitglieder */
.fm-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px; margin-bottom:14px; }
.fm-card { display:block; background:var(--pan); border:1px solid var(--line); border-radius:14px; padding:14px 16px; color:#fff; transition:border-color .15s; }
.fm-card:hover { border-color:rgba(255,210,31,.45); } .fm-card.on { border-color:var(--y); box-shadow:0 0 0 1px var(--y) inset; }
.fm-h { display:flex; align-items:center; gap:8px; } .fm-h i { width:10px; height:10px; border-radius:50%; flex:none; } .fm-h b { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.fm-h .st { font-size:10px; }
.fm-n { margin:10px 0 2px; color:var(--mut); font-size:15px; } .fm-n b { color:#fff; font-size:28px; margin-right:2px; }
.fm-grid { display:grid; grid-template-columns:minmax(0, 1fr) 340px; gap:14px; align-items:start; }
.fm-th { display:flex; align-items:center; gap:8px; padding:4px 4px 12px; flex-wrap:wrap; } .fm-th i { width:12px; height:12px; border-radius:50%; } .fm-th b { font-size:22px; } .fm-th .lnk { margin-left:auto; font-size:14px; color:var(--y); }
.fm-t tr.off td { opacity:.5; } .fm-t td { white-space:nowrap; } .fm-t td:first-child { white-space:normal; }
.dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#555; margin-right:8px; vertical-align:middle; } .dot.on { background:var(--ok); box-shadow:0 0 6px var(--ok); }
.tag.y { background:rgba(255,210,31,.16); color:var(--y); }
.fm-ch { display:flex; align-items:flex-end; gap:3px; height:80px; margin-top:6px; } .fm-ch i { flex:1; background:rgba(255,210,31,.35); border-radius:2px 2px 0 0; } .fm-ch i.cur { background:var(--y); }
.fm-ax { display:flex; justify-content:space-between; font-size:11px; color:var(--mut); margin:4px 0 8px; }
.fm-kv { display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid var(--line); font-size:15px; } .fm-kv span { color:#ddd; }
.fm-mv { display:grid; grid-template-columns:26px 1fr auto; gap:8px; align-items:center; padding:7px 0; border-top:1px solid var(--line); font-size:14px; }
.fm-mv .st { text-align:center; padding:2px 0; } .fm-mv small { color:var(--mut); }
@media (max-width:1100px) { .fm-grid { grid-template-columns:1fr; } }

/* ---------------------------------------------------------------- Ex-Fraks & Leitungssperre (v27) */
.banner.bad { background:rgba(255,90,103,.1); border-color:rgba(255,90,103,.5); }
.lk-check { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; }
.lk-check > b { font-size:15px; } .lk-check .inp { width:260px; }
.lk-res { flex-basis:100%; line-height:2; font-size:14px; } .lk-res .st { margin-right:6px; }
.lk-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; margin-bottom:6px; }
.lk-card { background:var(--card); border:1px solid rgba(255,90,103,.35); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:7px; }
.lk-h { display:flex; align-items:center; justify-content:space-between; gap:8px; } .lk-h b { font-size:16px; }
.lk-card > small { color:var(--mut); }
.lk-ids { display:flex; flex-wrap:wrap; gap:5px; } .lk-ids .tag { cursor:pointer; border:0; }
.lk-card .bar { height:6px; border-radius:4px; background:rgba(255,255,255,.08); overflow:hidden; } .lk-card .bar i { display:block; height:100%; }
.lk-f { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:13px; }
.lk-f form { display:flex; gap:6px; } .lk-f .inp.sm { width:140px; padding:5px 8px; font-size:13px; }
#frak-t td small.bad { display:block; color:var(--bad); margin-top:3px; }
#frak-t td > small[title] { display:block; color:var(--mut); margin-top:2px; font-size:12px; }
