:root{--main-w:1520px;--bg:#121416;--bg2:#1e2124;--card:rgba(30,33,36,.85);--line:#2d3237;--text:#ffffff;--muted:#9aa1a8;--acc:#44d62c;--acc-glow:rgba(68,214,44,.25);--ok:#44d62c;--bad:#ef4f4f;--warn:#e8b33c;--info:#4a9eff}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 30%,var(--bg2) 0%,var(--bg) 70%) fixed;background-color:var(--bg);color:var(--text);font:15px/1.5 "Montserrat",system-ui,sans-serif}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.6rem;margin:.2em 0 .6em;font-weight:900;text-transform:uppercase;letter-spacing:2px}h1 span.g{color:var(--acc)}h2{font-size:1rem;margin:0 0 .7em;font-weight:700;text-transform:uppercase;letter-spacing:1px}
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.3rem 1.2rem;background:rgba(14,15,17,.9);border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--acc-glow)}
.brand{display:flex;align-items:center;gap:.4rem;font-weight:900;text-transform:uppercase;letter-spacing:1.5px;color:var(--text)}.brand:hover{text-decoration:none}.brand img{height:58px;margin:-6px -4px;filter:drop-shadow(0 0 8px var(--acc-glow))}.brand span{color:var(--acc)}
.top nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap;font-weight:700;font-size:.9rem}.top nav a{color:var(--text)}.top nav a:hover{color:var(--acc);text-decoration:none}
main{max-width:var(--main-w);margin:0 auto;padding:1.2rem 16px 3rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.2rem;margin-bottom:1rem;box-shadow:0 4px 18px rgba(0,0,0,.25)}
.card.narrow{max-width:420px;margin:3rem auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.card.server{color:var(--text);display:block;transition:border-color .2s,box-shadow .2s,transform .2s}.card.server:hover{border-color:var(--acc);box-shadow:0 0 18px var(--acc-glow);transform:translateY(-2px);text-decoration:none}
.row{display:flex;align-items:center;gap:.7rem}.row.wrap{flex-wrap:wrap}.row h1,.row h2{margin:0}
.head{margin-bottom:.8rem;flex-wrap:wrap}
.muted{color:var(--muted)}.small{font-size:.85rem}.r{text-align:right}.nowrap{white-space:nowrap}.break{word-break:break-all}
label{display:block;margin:.6rem 0;color:var(--muted);font-size:.9rem}label input{display:block;width:100%;margin-top:.25rem}
label.check{display:flex;align-items:center;gap:.35rem;margin:0}label.check input{width:auto;margin:0}
input,select,textarea{background:#0f1114;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.45rem .6rem;font:inherit;max-width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);outline-offset:-1px}
.btn{display:inline-block;font-weight:700;background:#2a2e36;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.45rem .9rem;font:inherit;cursor:pointer}
.btn:hover{background:#343944;text-decoration:none}.btn:disabled{opacity:.5;cursor:wait}
.btn.primary{background:var(--acc);border-color:var(--acc);color:#121416}.btn.primary:hover{box-shadow:0 0 12px var(--acc);filter:brightness(1.05)}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}.btn.danger:hover{background:var(--bad);color:#fff}
.btn.tiny{padding:.15rem .5rem;font-size:.85rem}
button.link{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0}
form.inline{display:inline}
.actions{display:flex;gap:.6rem;flex-wrap:wrap}
.badge{display:inline-block;padding:.1rem .55rem;border-radius:99px;font-size:.8rem;background:#2a2e36;color:var(--muted)}
.badge.on,.badge.ok{background:rgba(68,214,44,.15);color:var(--ok);box-shadow:0 0 8px var(--acc-glow)}.badge.off,.badge.fehler,.badge.abgebrochen{background:rgba(239,79,79,.15);color:var(--bad)}
.badge.maint,.badge.laeuft{background:rgba(232,179,60,.15);color:var(--warn)}
.stats{font-size:.85rem}
.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1rem;overflow-x:auto}
.tabs a{padding:.5rem .9rem;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tabs a.on{color:var(--text);border-color:var(--acc)}
.flash{padding:.6rem .9rem;border-radius:8px;margin-bottom:1rem;border:1px solid}
.flash.ok{border-color:var(--ok);background:rgba(68,214,44,.08)}.flash.error{border-color:var(--bad);background:rgba(239,79,79,.08)}.flash.info{border-color:var(--info);background:rgba(74,158,255,.08)}
pre.log{background:#0a0b0d;border:1px solid var(--line);border-radius:6px;padding:.7rem;margin:.8rem 0;overflow:auto;white-space:pre-wrap;word-break:break-all;font:12.5px/1.4 ui-monospace,Menlo,Consolas,monospace}
pre.log.tall{height:65vh}pre.log.small{max-height:40vh}
textarea.editor{width:100%;height:65vh;margin:.8rem 0;font:13px/1.4 ui-monospace,Menlo,Consolas,monospace;white-space:pre;tab-size:4}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-weight:500;font-size:.85rem}
.card{overflow-x:auto}
table.perms td,table.perms th{text-align:center}table.perms td:first-child,table.perms th:first-child{text-align:left}
.crumbs{margin-bottom:.8rem;word-break:break-all}.tools{margin-bottom:.4rem;gap:1.2rem}
#conform input{flex:1;font-family:ui-monospace,Menlo,Consolas,monospace}
@media (max-width:600px){.top{padding:.6rem 16px}th:nth-child(3),td:nth-child(3){display:none}}

/* Login im Stil der Startseite */
.login-wrap{text-align:center;max-width:420px;margin:2rem auto;animation:fadeIn 1s ease-out}
.login-wrap .logo{width:100%;max-width:300px;filter:drop-shadow(0 0 15px rgba(68,214,44,.2));margin-bottom:-1rem}
.login-wrap .card{text-align:left;margin:0}
.login-wrap h1{text-align:center;font-size:1.8rem}
.glowbar{height:3px;border-radius:2px;background:#333;overflow:hidden;margin:1.2rem 0 0}.glowbar div{height:100%;width:40%;background:var(--acc);box-shadow:0 0 10px var(--acc);animation:loading 2.5s infinite ease-in-out}
.footer{text-align:center;color:#666;font-size:.8rem;margin-top:2rem}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes loading{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
@media (prefers-reduced-motion:reduce){.login-wrap,.glowbar div{animation:none}}
@media (max-width:600px){.brand b{display:none}.brand img{height:48px}}
table.pl td,table.pl th{padding:.35rem .5rem}
details summary{cursor:pointer;font-weight:700;padding:.3rem 0}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:.4rem 0}.chip{background:#2a2e36;border:1px solid var(--line);border-radius:99px;padding:.1rem .6rem;font-size:.85rem}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--acc);box-shadow:0 0 14px var(--acc-glow);padding:.6rem 1rem;border-radius:8px;z-index:10;max-width:90vw}
.card.create{display:block;color:var(--text);border-style:dashed;border-color:var(--acc);text-align:center}.card.create:hover{box-shadow:0 0 18px var(--acc-glow);text-decoration:none}
.gamepick{margin-bottom:1rem}label.card.game{display:block;cursor:pointer;margin:0;color:var(--text)}label.card.game input{position:absolute;opacity:0}
label.card.game.sel{border-color:var(--acc);box-shadow:0 0 16px var(--acc-glow)}label.card.game:hover{border-color:var(--acc)}
.warn{color:var(--warn)}code.addr{font-size:1.15rem;color:var(--acc);background:#0a0b0d;padding:.3rem .6rem;border-radius:6px}
.danger-zone summary{color:var(--bad)}
[hidden]{display:none !important}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 1rem;align-items:end}
.settings-grid label.check{margin:.9rem 0}
fieldset.gamesettings{border:1px solid var(--line);border-radius:8px;padding:.4rem 1rem .6rem;margin:1rem 0}
fieldset.gamesettings legend{font-weight:700;padding:0 .4rem}
.flash.warnbox{border-color:var(--warn);background:rgba(232,179,60,.08);justify-content:space-between}
/* Kacheln mit Spielbild: Bild rechts eingeblendet, nach links in die Karte auslaufend */
.card.server[style*="--img"],label.card.game[style*="--img"]{position:relative;overflow:hidden;isolation:isolate;min-height:120px}
.card.server[style*="--img"]::before,label.card.game[style*="--img"]::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(24,27,30,.97) 30%,rgba(24,27,30,.75) 60%,rgba(24,27,30,.35)),var(--img) right center/cover no-repeat;
  transition:transform .4s ease,filter .4s ease;filter:saturate(.85)}
.card.server[style*="--img"]:hover::before,label.card.game[style*="--img"]:hover::before,label.card.game.sel::before{transform:scale(1.06);filter:saturate(1.1)}
label.card.game[style*="--img"]{display:flex;flex-direction:column;justify-content:flex-end;min-height:150px}
@media (prefers-reduced-motion:reduce){.card.server::before,label.card.game::before{transition:none}}
/* Statusuebersicht */
.status-list{display:grid;gap:.8rem}
.card.status-row{position:relative;overflow:hidden;isolation:isolate;margin:0}
.card.status-row[style*="--img"]::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(24,27,30,.97) 60%,rgba(24,27,30,.9) 72%,rgba(24,27,30,.45)),var(--img) right 35%/auto 115% no-repeat}
.card.status-row[style*="mc_dragon"]::before{background-position:center,right 35% !important}
.status-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.status-head h2{margin:0 0 .3rem}
code.small-addr{font-size:.9rem;padding:.15rem .5rem}
.histbar{display:flex;gap:2px;margin:.9rem 0 .7rem;height:22px}
.histbar span{flex:1;border-radius:2px;background:#3a3f46}
.histbar .ok{background:var(--ok);box-shadow:0 0 6px var(--acc-glow)}.histbar .part{background:var(--warn)}.histbar .bad{background:var(--bad)}
.status-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem}
.status-stats div{display:flex;flex-direction:column}.status-stats b{font-size:1.1rem}.status-stats span{color:var(--muted);font-size:.78rem}
@media (max-width:600px){.histbar{height:16px;gap:1px}}
/* Netz-Hintergrund (Startseite, Status) */
canvas.netbg{position:fixed;inset:0;z-index:0;pointer-events:none}
body:has(canvas.netbg) .top,body:has(canvas.netbg) main{position:relative;z-index:1}
/* Discord-Uebersicht */
aside.discord{position:fixed;top:84px;right:0;z-index:5;display:flex;align-items:flex-start;max-height:calc(100vh - 100px);pointer-events:none}
aside.discord>*{pointer-events:auto}
.dc-tab{display:flex;align-items:center;gap:.45rem;writing-mode:vertical-rl;transform:rotate(180deg);background:#5865f2;color:#fff;border:0;border-radius:0 8px 8px 0;
  padding:.8rem .45rem;font:700 .8rem Montserrat,sans-serif;cursor:pointer;box-shadow:0 0 14px rgba(88,101,242,.4)}
.dc-tab:hover{filter:brightness(1.1)}
.dc-logo{width:18px;height:18px;transform:rotate(90deg);background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127 96'%3E%3Cpath fill='%23fff' d='M107.7 8.1A105 105 0 0 0 81.5 0a72 72 0 0 0-3.4 6.8 97.7 97.7 0 0 0-29.1 0A72 72 0 0 0 45.6 0a105.9 105.9 0 0 0-26.3 8.1C2.8 32.6-1.7 56.6.6 80.2a105.7 105.7 0 0 0 32.2 16.2 77.7 77.7 0 0 0 6.9-11.1 68.4 68.4 0 0 1-10.9-5.2c.9-.7 1.8-1.4 2.6-2.1a75.6 75.6 0 0 0 64.3 0l2.6 2.1a68.7 68.7 0 0 1-10.9 5.2 77 77 0 0 0 6.9 11.1 105.3 105.3 0 0 0 32.2-16.2c2.7-27.4-4.7-51.2-19.8-72.1ZM42.5 65.7c-6.3 0-11.5-5.7-11.5-12.8s5-12.8 11.5-12.8S54 45.9 54 52.9s-5.1 12.8-11.5 12.8Zm42.4 0c-6.3 0-11.5-5.7-11.5-12.8s5-12.8 11.5-12.8 11.5 5.8 11.4 12.8-5 12.8-11.4 12.8Z'/%3E%3C/svg%3E")}
.dc-body{display:none;width:260px;max-height:calc(100vh - 100px);overflow-y:auto;background:rgba(24,27,30,.94);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-right:0;border-radius:10px 0 0 10px;padding:.9rem;box-shadow:0 6px 24px rgba(0,0,0,.4)}
aside.discord.open .dc-body{display:block}
aside.discord.open .dc-tab{order:-1}
.dc-head{display:flex;gap:.6rem;align-items:center;margin-bottom:.7rem}.dc-head img{width:42px;height:42px;border-radius:12px}
.dc-head b{display:block;font-size:.95rem}.dc-head span{font-size:.78rem;color:var(--muted)}
.dc-join{display:block;text-align:center;background:#5865f2;border-color:#5865f2;color:#fff;margin-bottom:.4rem}.dc-join:hover{box-shadow:0 0 12px rgba(88,101,242,.6)}
aside.discord h3{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:.9rem 0 .4rem}
aside.discord ul{list-style:none;margin:0;padding:0}
aside.discord li{display:flex;align-items:center;gap:.5rem;padding:.22rem 0;font-size:.84rem;min-width:0}
.dc-av{position:relative;flex:none}.dc-av img,.dc-noav{width:26px;height:26px;border-radius:50%;display:block;background:#3a3f46}
.dc-av .st{position:absolute;right:-2px;bottom:-2px;border:2px solid #1c1f23}
.st{display:inline-block;width:9px;height:9px;border-radius:50%;background:#3ba55d;margin-right:.3rem;vertical-align:middle}
.dc-av .st{margin:0}.st.idle{background:#faa61a}.st.dnd{background:#ed4245}
.dc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dc-name small{display:block;color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis}
.dc-voice{font-size:.84rem;margin-bottom:.4rem}.dc-voice ul{padding-left:.6rem;margin-top:.2rem}
@media (max-width:700px){aside.discord{top:auto;bottom:16px}.dc-body{width:min(260px,80vw);max-height:60vh}}
.footer a{color:#888}.footer a:hover{color:var(--acc)}
.legal{max-width:760px}.legal h2{margin-top:1.4rem}.legal p{margin:.3rem 0 .8rem;line-height:1.6}
/* Login mit Bild */
.login-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,420px);gap:2.5rem;align-items:center;margin:1.5rem auto;max-width:1200px}
.login-split .login-wrap{margin:0;max-width:none}
.login-art img{width:100%;height:auto;display:block;filter:drop-shadow(0 0 30px rgba(68,214,44,.18));animation:fadeIn 1.2s ease-out}
@media (max-width:899px){.login-split{grid-template-columns:1fr;gap:1rem;margin-top:.5rem}.login-art img{max-width:520px;margin:0 auto}}
/* Fehlerseite */
.error-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:center;max-width:1000px;margin:2rem auto}
.error-art{width:100%;height:auto;filter:drop-shadow(0 0 24px rgba(68,214,44,.15))}
@media (max-width:760px){.error-split{grid-template-columns:1fr}.error-art{max-width:420px;margin:0 auto}}
@media (prefers-reduced-motion:reduce){.login-art img{animation:none}}
/* Drachen-Bild: Kopf nicht oben abschneiden */
.card[style*="mc_dragon"]::before{background-position:center,right 35% !important}
/* Varo: freigestellte Figur rechts statt Hintergrundfoto, mit gruenem Schein dahinter */
.card[style*="varo_knight"]::before{background:
  radial-gradient(ellipse 160px 120% at calc(100% - 80px) 55%,rgba(68,214,44,.28),transparent 70%),
  var(--img) right 8px bottom -14px/auto 118% no-repeat !important;filter:none !important}
.card[style*="varo_knight"]:hover::before{transform:scale(1.04) translateY(-2px)}
/* Drache_Dev: freigestellter Feuer-Drache mit orangem Schein */
.card[style*="dev_fire"]::before{background:
  radial-gradient(ellipse 160px 120% at calc(100% - 80px) 55%,rgba(255,140,40,.26),transparent 70%),
  var(--img) right 8px bottom -14px/auto 118% no-repeat !important;filter:none !important}
.card[style*="dev_fire"]:hover::before{transform:scale(1.04) translateY(-2px)}
/* Drache: freigestellter Koenigs-Drache mit goldenem Schein */
.card[style*="drache_king"]::before{background:
  radial-gradient(ellipse 160px 120% at calc(100% - 80px) 55%,rgba(255,200,60,.24),transparent 70%),
  var(--img) right 8px bottom -14px/auto 118% no-repeat !important;filter:none !important}
.card[style*="drache_king"]:hover::before{transform:scale(1.04) translateY(-2px)}
/* ---- Lesbarkeit auf Bildkacheln ---- */
.badge{font-weight:700;border:1px solid transparent;white-space:nowrap}
.badge.on,.badge.ok{background:#163a11;color:#8dff6a;border-color:rgba(68,214,44,.55);box-shadow:none}
.badge.off,.badge.fehler,.badge.abgebrochen{background:#4a1616;color:#ffb3b3;border-color:rgba(239,79,79,.6)}
.badge.maint,.badge.laeuft{background:#45360d;color:#ffe08a;border-color:rgba(232,179,60,.6)}
.card[style*="--img"] h2,.card[style*="--img"] .muted,.card[style*="--img"] .stats,.card[style*="--img"] code,
.status-row h2,.status-stats b{text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.6)}
.card[style*="--img"] .muted,.card[style*="--img"] .stats{color:#b4bcc5}
.card.server .row{align-items:flex-start;justify-content:space-between}
.card.server .row h2{word-break:break-word}
/* Freigestellte Figuren: nach links in die Karte ausblenden, damit der Text frei bleibt */
.card.cutout::before{-webkit-mask-image:linear-gradient(90deg,transparent 28%,rgba(0,0,0,.25) 48%,#000 72%);
  mask-image:linear-gradient(90deg,transparent 28%,rgba(0,0,0,.25) 48%,#000 72%)}
/* Statusseite: Figur als Avatar neben dem Namen statt hinter den Werten */
.status-head .status-title{flex:1;min-width:0}
.status-avatar{width:64px;height:64px;object-fit:contain;flex:none;margin:-6px 0 -6px -4px;
  filter:drop-shadow(0 0 10px rgba(68,214,44,.35))}
.status-row.has-avatar .status-head{align-items:center}
.status-row.has-avatar .badge{align-self:flex-start}
@media (max-width:600px){.status-avatar{width:52px;height:52px}}
/* DayZ: Drache in der Truhe mit warmem Holz-Schein */
.card[style*="dayz_chest"]::before{background:
  radial-gradient(ellipse 170px 120% at calc(100% - 90px) 55%,rgba(220,150,60,.24),transparent 70%),
  var(--img) right 8px bottom -10px/auto 108% no-repeat !important;filter:none !important}
.card[style*="dayz_chest"]:hover::before{transform:scale(1.04) translateY(-2px)}
/* The Isle: rennender Drache mit Dschungel-Schein */
.card[style*="isle_runner"]::before{background:
  radial-gradient(ellipse 170px 120% at calc(100% - 90px) 55%,rgba(60,200,140,.24),transparent 70%),
  var(--img) right 8px bottom -10px/auto 112% no-repeat !important;filter:none !important}
.card[style*="isle_runner"]:hover::before{transform:scale(1.04) translate(3px,-2px)}
/* Valheim: XP-Drache mit eisblauem Schein */
.card[style*="valheim_xp"]::before{background:
  radial-gradient(ellipse 170px 120% at calc(100% - 90px) 55%,rgba(90,170,255,.24),transparent 70%),
  var(--img) right 8px bottom -10px/auto 110% no-repeat !important;filter:none !important}
.card[style*="valheim_xp"]:hover::before{transform:scale(1.04) translateY(-2px)}
label.official-check{align-items:flex-start;gap:.6rem;margin:1rem 0;padding:.7rem .9rem;border:1px solid rgba(68,214,44,.4);border-radius:8px;background:rgba(68,214,44,.06);color:var(--text)}
label.official-check input{margin-top:.25rem}
/* Server-Auslastung */
.hostload{margin-bottom:1.2rem}
.hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-top:.9rem}
.hl-item{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.hl-top{display:flex;justify-content:space-between;align-items:baseline}.hl-top span{color:var(--muted);font-size:.85rem}.hl-top b{font-size:1.2rem}
.meter{height:8px;border-radius:99px;background:#2a2e36;overflow:hidden}
.meter i{display:block;height:100%;width:0;border-radius:99px;transition:width .6s ease,background .3s}
.meter i.ok{background:var(--ok);box-shadow:0 0 8px var(--acc-glow)}.meter i.part{background:var(--warn)}.meter i.bad{background:var(--bad)}
svg.spark{width:100%;height:24px;color:var(--acc);opacity:.7}
.hl-item small{font-size:.76rem}

/* Statusseite: grosses Logo */
.status-hero{text-align:center;margin:0 0 1.5rem}
.status-hero .status-logo{width:min(340px,80vw);height:auto;margin:-2.5rem 0 -3rem;filter:drop-shadow(0 0 18px rgba(68,214,44,.25))}
.status-hero h1{margin:0}

/* Chat / Wuensche: linke Seitenleiste */
aside.chat{position:fixed;top:84px;left:0;z-index:5;display:flex;align-items:flex-start;pointer-events:none}
aside.chat>*{pointer-events:auto}
.ch-tab{position:relative;display:flex;align-items:center;gap:.45rem;writing-mode:vertical-rl;background:var(--acc);color:#0d1a0a;border:0;border-radius:0 8px 8px 0;
  padding:.8rem .45rem;font:600 .82rem "Montserrat",sans-serif;cursor:pointer;box-shadow:0 0 12px var(--acc-glow)}
.ch-tab:hover{filter:brightness(1.1)}
.ch-new{position:absolute;top:-4px;right:-4px;width:12px;height:12px;border-radius:50%;background:var(--bad);border:2px solid var(--bg)}
.ch-body{display:none;flex-direction:column;width:280px;height:calc(100vh - 110px);max-height:640px;background:rgba(24,27,30,.94);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-left:0;border-radius:0 0 10px 0;padding:.8rem}
aside.chat.open .ch-body{display:flex}
aside.chat.open .ch-tab{order:2}
.ch-head b{display:block;font-size:.95rem}.ch-head{margin-bottom:.5rem}
.ch-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.45rem;padding-right:.2rem;margin-bottom:.5rem}
.ch-msg{position:relative;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:8px;padding:.35rem .5rem;font-size:.84rem}
.ch-msg.mine{border-color:rgba(68,214,44,.35);background:rgba(68,214,44,.06)}
.ch-msg.done{opacity:.6}
.ch-meta{display:flex;align-items:center;gap:.35rem;font-size:.72rem;color:var(--muted)}.ch-meta b{color:var(--text);font-size:.78rem}
.ch-admin{background:var(--acc);color:#0d1a0a;border-radius:4px;padding:0 .3rem;font-weight:700;font-size:.62rem;text-transform:uppercase}
.ch-act{margin-left:auto;display:flex;gap:.15rem;opacity:0;transition:opacity .15s}.ch-msg:hover .ch-act,.ch-act:focus-within{opacity:1}
.ch-act button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.8rem;padding:0 .2rem}.ch-act button:hover{color:var(--text)}
.ch-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:.1rem}
.ch-donebadge{display:inline-block;margin-top:.2rem;font-size:.66rem;color:var(--ok);border:1px solid var(--ok);border-radius:4px;padding:0 .3rem}
.ch-form textarea{width:100%;resize:vertical;min-height:2.6rem;max-height:9rem;font:inherit;font-size:.85rem}
.ch-form .row{justify-content:space-between;gap:.4rem;margin-top:.3rem}
@media (hover:none){.ch-act{opacity:1}}
@media (max-width:700px){aside.chat{top:auto;bottom:16px}.ch-body{width:min(280px,82vw);height:60vh}}
/* Garry's Mod TTT: cooler Drache mit gruenem Schein */
.card[style*="ttt_cool"]::before{background:
  radial-gradient(ellipse 170px 120% at calc(100% - 90px) 55%,rgba(68,214,44,.26),transparent 70%),
  var(--img) right 8px bottom -10px/auto 110% no-repeat !important;filter:none !important}
.card[style*="ttt_cool"]:hover::before{transform:scale(1.04) translateY(-2px)}

/* Hinweise (Wartung etc.) oben auf allen Seiten */
.notices{position:relative;z-index:2;max-width:var(--main-w);margin:.8rem auto 0;padding:0 16px;display:grid;gap:.5rem}
.notice{display:flex;gap:.7rem;align-items:flex-start;padding:.7rem 1rem;border-radius:8px;border:1px solid;font-weight:600}
.notice.yellow{background:#3a2e0a;border-color:var(--warn);color:#ffe08a}
.notice.red{background:#3d1212;border-color:var(--bad);color:#ffc4c4;box-shadow:0 0 14px rgba(239,79,79,.25)}
.notice-icon{flex:none;font-size:1.1rem;line-height:1.35}
.notice-text{white-space:pre-line;overflow-wrap:anywhere;flex:1}
.notice-text small{display:block;font-weight:400;opacity:.8;margin-top:.15rem}
.notice.mini{padding:.35rem .6rem;font-size:.85rem}
.levelpick{border:0;padding:0;margin:0;display:flex;gap:.5rem;flex-wrap:wrap}.levelpick legend{padding:0;margin-bottom:.3rem;color:var(--muted);font-size:.85rem}
.notice.pick{padding:.4rem .7rem;cursor:pointer;font-size:.88rem;align-items:center}
.notice-server{font-weight:800}
.notice.in-status{margin-top:.7rem;position:relative}
.status-row:has(.notice.red) {border-color:rgba(239,79,79,.55)}
.status-row:has(.notice.yellow):not(:has(.notice.red)){border-color:rgba(232,179,60,.5)}
/* Statusseite: Spielerzahl */
.status-badges{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.badge.players{background:#16263a;color:#a9d1ff;border-color:rgba(74,158,255,.55);font-variant-numeric:tabular-nums}
.status-row.has-avatar .status-badges{align-self:flex-start}
.wipe-box{margin-top:1rem;padding:.8rem 1rem;border:1px solid rgba(239,79,79,.45);border-radius:8px;background:rgba(239,79,79,.05)}
.wipe-box h3{margin:0 0 .5rem}.wipe-box p{margin:.6rem 0 0}
/* News */
.news-edit{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.8rem}
.news-edit textarea{width:100%;font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;resize:vertical}
.news-preview{border:1px solid var(--line);border-radius:8px;padding:.6rem .9rem;min-height:12rem;background:rgba(0,0,0,.2);font-size:.92rem}
.news-preview h4{margin:.6rem 0 .2rem;color:var(--acc)}.news-preview p{margin:.3rem 0}.news-preview ul{margin:.3rem 0;padding-left:1.2rem}
@media (max-width:800px){.news-edit{grid-template-columns:1fr}}
.badge.news-cat.announcement{background:#16263a;color:#a9d1ff;border-color:rgba(74,158,255,.55)}
.badge.news-cat.changelog{background:#163a11;color:#8dff6a;border-color:rgba(68,214,44,.55)}
.badge.news-cat.event{background:#3a1a3a;color:#f3b0ff;border-color:rgba(210,110,240,.55)}
.badge.news-cat.maintenance{background:#45360d;color:#ffe08a;border-color:rgba(232,179,60,.6)}
.news-tpl{gap:.4rem;margin:.6rem 0 0}
.news-preview h4.new,.news-preview ul.new li::marker{color:#8dff6a}
.news-preview h4.changed,.news-preview ul.changed li::marker{color:#a9d1ff}
.news-preview h4.removed,.news-preview ul.removed li::marker{color:#ffb3b3}
.news-preview h4.fixed,.news-preview ul.fixed li::marker{color:#ffe08a}
/* Zwei-Faktor */
input.otp{font:700 1.3rem ui-monospace,Menlo,Consolas,monospace;letter-spacing:.25em;text-align:center;max-width:12rem}
.qr-row{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.qr{background:#fff;border-radius:10px;padding:6px;width:200px;height:200px;flex:none}
.qr svg{width:100%;height:100%;display:block}
code.secret{display:inline-block;font-size:1rem;letter-spacing:.08em;padding:.4rem .6rem;word-break:break-all}
ol.recovery{columns:2;font-size:1.05rem;padding-left:1.4rem}ol.recovery li{margin:.25rem 0}
@media print{header.top,.footer,aside,canvas.netbg,.btn{display:none!important}}
.navbadge{display:inline-block;min-width:1.2rem;padding:0 .35rem;border-radius:999px;background:var(--bad);color:#fff;font-size:.72rem;font-weight:700;text-align:center;line-height:1.2rem}
/* Plugins & Mods */
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem;margin:.8rem 0}
.mod-card{border:1px solid var(--line);border-radius:10px;padding:.8rem;background:rgba(0,0,0,.2);display:flex;flex-direction:column}
.mod-card p{flex:1;margin:.5rem 0 .7rem;color:#c3c9ce}
.mod-card .btn{align-self:flex-start}
.mod-icon{width:36px;height:36px;border-radius:8px;object-fit:cover;flex:none;background:#2a2f34;display:inline-block}
.mods-table td{vertical-align:middle}
.dc-opts{display:grid;gap:.45rem;margin:.6rem 0}.dc-opts label{gap:.5rem;margin:0;flex-wrap:wrap}

/* ---- Aufgaben-Boards ---- */
.boards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:1rem}
.board-tile{display:block;color:var(--text);border-left:5px solid var(--bc);transition:transform .2s,box-shadow .2s}
.board-tile:hover{text-decoration:none;transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.35),0 0 14px color-mix(in srgb,var(--bc) 30%,transparent)}
.board-tile h2{margin:0 0 .3rem}.board-tile.archived{opacity:.55}
.dotc{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.4rem;vertical-align:middle}
.prio{display:inline-block;padding:0 .45rem;border-radius:999px;font-size:.72rem;font-weight:700;border:1px solid var(--line)}
.prio.p0{color:var(--muted)}.prio.p1{color:#cdd2d6}.prio.p2{color:#ffe08a;border-color:rgba(232,179,60,.6);background:#45360d}.prio.p3{color:#ffb3b3;border-color:rgba(239,79,79,.6);background:#4a1616}
.overdue{color:#ff8a8a;font-weight:700}
.colorpick{border:0;padding:0;margin:0;display:flex;gap:.35rem;flex-wrap:wrap}.colorpick legend{padding:0;margin-bottom:.25rem}
.colorpick label{margin:0;cursor:pointer;position:relative}.colorpick input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.colorpick i{display:block;width:26px;height:26px;border-radius:50%;border:3px solid transparent}
.colorpick input:checked+i{border-color:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.5)}
.colorpick input:focus-visible+i{outline:2px solid var(--acc)}
.board-head{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between;margin:0 0 1rem;padding-left:.8rem;border-left:5px solid var(--bc)}
.board-head select{font-size:1.25rem;font-weight:800;padding:.35rem .6rem;max-width:100%}
.board-filter{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.kanban{display:flex;gap:.9rem;align-items:flex-start;overflow-x:auto;padding-bottom:1rem;min-height:60vh;scroll-snap-type:x proximity}
.kcol{flex:0 0 290px;max-width:85vw;background:rgba(24,27,30,.88);border:1px solid var(--line);border-radius:12px;padding:.6rem;scroll-snap-align:start;display:flex;flex-direction:column;max-height:calc(100vh - 210px)}
.kcol header{display:flex;align-items:center;gap:.4rem;padding:.2rem .3rem .6rem}
.kcol header b{font-size:.92rem;text-transform:uppercase;letter-spacing:.8px}
.kcol .cnt{font-size:.75rem;color:var(--muted);background:rgba(255,255,255,.06);border-radius:999px;padding:0 .45rem}
.kcol.donecol header b{color:var(--acc)}
.colmenu{margin-left:auto;background:none;border:0;color:var(--muted);font-size:1.1rem;cursor:pointer;padding:0 .3rem}.colmenu:hover{color:#fff}
.kcards{display:flex;flex-direction:column;gap:.5rem;min-height:2.5rem;overflow-y:auto;padding:2px}
.kcard{background:#1f2327;border:1px solid #30363c;border-left:4px solid #3a4047;border-radius:8px;padding:.55rem .65rem;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}
.kcard:hover,.kcard:focus-visible{border-color:rgba(68,214,44,.55);outline:none;box-shadow:0 3px 10px rgba(0,0,0,.35)}
.kcard.p2{border-left-color:var(--warn)}.kcard.p3{border-left-color:var(--bad)}.kcard.p0{border-left-color:#2a2f34}
.kcard.done .kt{text-decoration:line-through;color:var(--muted)}
.kcard[draggable=true]{cursor:grab}.kcard.dragging{opacity:.35}
.kph{border:2px dashed rgba(68,214,44,.55);border-radius:8px;background:rgba(68,214,44,.06)}
.kt{font-weight:600;font-size:.92rem;overflow-wrap:anywhere}
.km{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-top:.4rem;font-size:.75rem}
.chip{padding:0 .4rem;border-radius:5px;background:rgba(255,255,255,.06);color:#c3c9ce}
.chip.over{background:#4a1616;color:#ffb3b3}.chip.soon{background:#45360d;color:#ffe08a}
.avs{display:flex;margin-left:auto}.avs .av{margin-left:-6px;border:2px solid #1f2327}
.av{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:.62rem;font-weight:800;color:#fff;flex:none}
.av.big{width:32px;height:32px;font-size:.75rem}
.kadd input{width:100%;margin-top:.5rem;background:transparent;border:1px dashed var(--line);font-size:.88rem}
.kadd input:focus{background:#0f1114;border-style:solid}
.kcol.addcol{flex:0 0 160px;align-items:center;justify-content:center;min-height:80px;color:var(--muted);font:inherit;font-weight:700;cursor:pointer;border-style:dashed}
.kcol.addcol:hover{color:var(--acc);border-color:var(--acc)}
.card-dlg{width:min(720px,94vw);max-height:90vh;overflow:auto;background:#1b1e21;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.4rem}
.card-dlg::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(2px)}
.dlg-close{position:sticky;top:0;float:right;margin:-.4rem -.6rem 0 0;z-index:2}
.dlg-close button{background:none;border:0;color:var(--muted);font-size:1.2rem;cursor:pointer}
.cd-title{width:100%;font-size:1.25rem;font-weight:800;background:transparent;border:1px solid transparent;padding:.25rem .4rem;margin-left:-.4rem}
.cd-title:hover,.cd-title:focus{border-color:var(--line);background:#0f1114}
.cd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.cd-grid label{margin:0}
@media (max-width:560px){.cd-grid{grid-template-columns:1fr}}
.cd-sec{margin:1rem 0}.cd-sec>b{display:block;margin-bottom:.4rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.cd-sec textarea{width:100%;margin-bottom:.5rem}
.cd-assign{display:flex;flex-wrap:wrap;gap:.35rem;max-height:9.5rem;overflow:auto;margin-bottom:.4rem}
.achip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem .15rem .2rem;border-radius:999px;border:1px solid var(--line);font-size:.82rem;margin:0;cursor:pointer;user-select:none}
.achip{position:relative}.achip input{position:absolute;inset:0;opacity:0;margin:0;pointer-events:none}
.achip.on{border-color:var(--acc);background:rgba(68,214,44,.12)}
.achip[hidden]{display:none}
.cmt{display:flex;gap:.6rem;margin:.6rem 0}.ctext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem}
.linkbtn{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.75rem;padding:0 .3rem}.linkbtn:hover{color:var(--bad)}
/* Admin-Menue */
.navmenu{position:relative}
.navmenu summary{list-style:none;cursor:pointer;font-weight:600;color:inherit;user-select:none}
.navmenu summary::-webkit-details-marker{display:none}
.navmenu[open] summary{color:var(--acc)}
.navdrop{position:absolute;right:0;top:calc(100% + .6rem);z-index:30;min-width:220px;display:flex;flex-direction:column;padding:.4rem;
  background:#1b1e21;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.navdrop a{padding:.45rem .7rem;border-radius:6px;white-space:nowrap;margin:0!important}
.navdrop a:hover{background:rgba(68,214,44,.1);text-decoration:none}
.navdrop hr{border:0;border-top:1px solid var(--line);margin:.3rem 0}
@media (max-width:700px){.navdrop{right:auto;left:0}}
/* Board-Seite nutzt die volle Breite */
main:has(.kanban){max-width:none;padding-left:24px;padding-right:24px}
main:has(.kanban) .notices,main:has(.kanban)>.flash{max-width:var(--main-w);margin-left:auto;margin-right:auto}
body:has(canvas.netbg) .top{z-index:25}

/* Team-Abzeichen (wie Discord-Rollen: farbiges Sechseck mit Symbol) */
.kteams{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.3rem}
.tbadge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;color:#e6e9eb;line-height:1.3}
.tbadge.full{padding:.05rem .45rem .05rem .1rem;border-radius:999px;background:color-mix(in srgb,var(--tc) 18%,transparent);border:1px solid color-mix(in srgb,var(--tc) 55%,transparent)}
.tbadge i{position:relative;isolation:isolate;font-style:normal;display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;flex:none;background:var(--tc);
  color:color-mix(in srgb,var(--tc) 55%,#fff);font-size:.62rem;font-weight:800;line-height:1;
  clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);font-family:ui-monospace,monospace}
/* dunkle Fuellung mit farbigem Rand, damit Symbole in Teamfarbe (z. B. gelber Stift bei Creation) sichtbar bleiben */
.tbadge i::before{content:"";position:absolute;inset:2px;z-index:-1;background:color-mix(in srgb,var(--tc) 22%,#14171a);
  clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%)}
.tbadge.mini i{width:1.05rem;height:1.05rem;font-size:.55rem}.tbadge.mini i::before{inset:1.5px}
.ubadges{display:inline-flex;gap:.12rem;vertical-align:middle;margin-left:.25rem;position:relative;top:-.08em}
.ubadges .tbadge{font-weight:600}
.cd-teams{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}
.achip.tchip.on{border-color:var(--tc);background:color-mix(in srgb,var(--tc) 18%,transparent)}
.board-head #f-team,.board-head #f-ms{width:auto;font-size:.9rem;font-weight:400;padding:.4rem .5rem}

/* E-Mail */
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:0 1rem}
.mailperks{margin:.3rem 0 1rem;padding-left:0;list-style:none}.mailperks li{margin:.3rem 0}
.mailprefs input[type=checkbox]{width:auto}
label.chk{display:flex;align-items:flex-start;gap:.55rem;margin:.3rem 0;cursor:pointer}label.chk input{width:auto;margin:.2rem 0 0;flex:none}
.achip .tbadge i{width:1.05rem;height:1.05rem;font-size:.55rem}.cd-assign .achip .tbadge{margin-left:-.1rem}
#cd-teamfill{color:var(--acc);margin-top:.35rem}

/* Profil */
.profile-card .prof-top{display:flex;gap:1rem;align-items:center;margin:.4rem 0 1rem}
.prof-pic{position:relative;flex:none;width:96px;height:96px;border-radius:50%;cursor:pointer;margin:0;
  box-shadow:0 0 0 3px #44d62c55,0 4px 14px rgba(0,0,0,.4)}
.prof-pic img,.prof-initials{width:96px;height:96px;border-radius:50%;object-fit:cover;display:grid;place-items:center;
  background:#24302a;font-size:1.8rem;font-weight:800;color:#bfe9b5}
.prof-pic input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.prof-edit{position:absolute;right:-2px;bottom:-2px;background:#1f2327;border:1px solid var(--line);border-radius:50%;width:30px;height:30px;
  display:grid;place-items:center;font-size:.9rem;pointer-events:none}
.prof-name{font-size:1.2rem}
img.av{object-fit:cover;padding:0}
.navme{display:inline-flex;align-items:center;gap:.4rem}.navme img{border-radius:50%;object-fit:cover}
label textarea{display:block;width:100%;margin-top:.25rem}
.bs-access{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem .8rem;margin:1rem 0 0}
.bs-access legend{padding:0 .3rem;color:var(--muted);font-size:.9rem}
#bs-users{max-height:11rem;overflow-y:auto}
.board-head .badge{align-self:center}

/* Ansicht Board / Roadmap */
.viewtabs{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.viewtabs .vt{background:none;border:0;color:var(--muted);padding:.4rem .8rem;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}
.viewtabs .vt.on{background:rgba(68,214,44,.14);color:#fff}
.board-filter.dim{opacity:.35;pointer-events:none}
.chip.ms{background:rgba(74,158,255,.14);color:#b9d8ff}
/* Roadmap */
.roadmap{max-width:860px;margin:0 auto}
.rm-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:.4rem 0 1.2rem;color:var(--muted)}
.rm-head b{color:#fff}
.rm-line{list-style:none;margin:0;padding:0 0 0 1.6rem;position:relative}
.rm-line::before{content:"";position:absolute;left:.62rem;top:.6rem;bottom:.6rem;width:2px;background:linear-gradient(var(--acc),#3a4047)}
.rm-ms{position:relative;margin:0 0 1.1rem}
.rm-dot{position:absolute;left:-1.6rem;top:1.05rem;width:1.3rem;height:1.3rem;border-radius:50%;display:grid;place-items:center;
  font-size:.75rem;font-weight:900;background:#1b1f22;border:2px solid #4a5058;color:#0b0d0e}
.st-active .rm-dot{border-color:var(--warn);box-shadow:0 0 0 4px rgba(232,179,60,.18)}
.st-done .rm-dot{background:var(--acc);border-color:var(--acc)}
.rm-card{background:#1f2327;border:1px solid #30363c;border-radius:12px;padding:.9rem 1.1rem}
.st-active .rm-card{border-color:rgba(232,179,60,.45)}
.st-done .rm-card{opacity:.82}
.rm-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8rem}
.rm-target{font-weight:700;color:#d6dade;background:rgba(255,255,255,.06);padding:.05rem .5rem;border-radius:5px}
.rm-st{color:var(--muted)}.st-active .rm-st{color:var(--warn)}.st-done .rm-st{color:var(--acc)}
.rm-tools{margin-left:auto;display:flex;gap:.4rem}.rm-tools button[disabled]{opacity:.3}
.rm-card h3{margin:.35rem 0 .3rem;font-size:1.1rem}
.rm-desc{color:#c3c9ce;font-size:.92rem}.rm-desc p{margin:.2rem 0}
.rm-prog{display:flex;align-items:center;gap:.7rem;margin:.6rem 0 .2rem;font-size:.8rem;color:var(--muted)}
.rm-bar{flex:1;height:7px;border-radius:9px;background:#2a2f34;overflow:hidden}.rm-bar i{display:block;height:100%;background:linear-gradient(90deg,#2fa51c,var(--acc))}
.rm-cards{list-style:none;margin:.5rem 0 0;padding:0;columns:2 16rem;column-gap:1.2rem;font-size:.88rem}
.rm-cards li{padding:.15rem 0;cursor:pointer;color:#d2d6da;break-inside:avoid}.rm-cards li:hover{color:var(--acc)}
.rm-cards li.done{color:var(--muted);text-decoration:line-through}

/* Changelog-Generator */
.clgen{border:1px dashed rgba(68,214,44,.45);border-radius:10px;padding:.6rem .9rem;margin:.6rem 0 1rem;background:rgba(68,214,44,.04)}
.clgen summary{cursor:pointer;font-weight:700}
.clgen[open] summary{margin-bottom:.4rem}
.cl-list{margin:.8rem 0;max-height:24rem;overflow:auto}
.cl-list table{width:100%}.cl-list td{vertical-align:middle;padding:.25rem .4rem}
.cl-list .cl-title{width:100%}.cl-list td:first-child input{width:auto}

/* Gesperrte Boards / Zugriffsantraege */
.board-tile.locked{border-left-style:dashed;background:linear-gradient(135deg,rgba(255,255,255,.02),transparent)}
.board-tile.locked h2{color:#c8cdd2}
.req-state{margin:.5rem 0 0;font-size:.85rem;color:var(--warn)}.req-state.bad{color:#ffb3b3}
.req-form{margin-top:.6rem}.req-form summary{list-style:none;display:inline-block}.req-form summary::-webkit-details-marker{display:none}
.req-form[open] summary{opacity:.6}.req-form form{margin-top:.5rem}
/* Updates vom Dev-Server */
.pr-groups{margin-top:.8rem;max-height:28rem;overflow:auto}
.pr-kind{margin:.8rem 0 .3rem;font-size:.95rem}
.pr-group summary{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;cursor:pointer;padding:.25rem 0}
.pr-group summary label{display:flex;gap:.35rem;align-items:center;margin:0}
.pr-files{margin:.2rem 0 .6rem 1.6rem;padding:0;list-style:none;font-family:monospace;word-break:break-all}
.pr-neu{color:#44d62c}.pr-geloescht{color:#ef4f4f}
/* Dokumente */
.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:1rem 0}
.doc-tile{display:block;color:var(--text);margin:0}.doc-tile:hover{border-color:var(--acc);text-decoration:none}.doc-tile h2{margin:.1rem 0 .4rem;font-size:1.1rem}
.doc-head{margin-bottom:.6rem}
.doc-present{display:inline-flex;align-items:center;gap:.25rem}
.doc-layout{display:flex;gap:1rem;align-items:flex-start}
.doc{flex:1;min-width:0;padding:1.2rem 1.6rem}
.doc-history{width:320px;flex:none;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}
@media (max-width:900px){.doc-layout{flex-direction:column}.doc-history{width:auto;position:static;max-height:none}.doc{padding:1rem}}
.dsec{position:relative;border:1px solid transparent;border-radius:8px;padding:.3rem .7rem .4rem;margin:0 -.7rem .4rem}
.dsec:hover{border-color:var(--line)}
.dsec.locked{border-color:rgba(232,179,60,.45);background:rgba(232,179,60,.04)}
.dsec.editing{border-color:var(--acc);background:rgba(68,214,44,.03)}
.dsec-tools{position:absolute;top:.35rem;right:.5rem;display:flex;gap:.3rem;align-items:center;opacity:0;transition:opacity .15s;z-index:2}
.dsec:hover .dsec-tools,.dsec.locked .dsec-tools,.dsec-tools:focus-within{opacity:1}
.dsec-lock{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--warn);background:#1b1e21;border:1px solid rgba(232,179,60,.45);border-radius:99px;padding:.1rem .6rem .1rem .2rem}
.dsec-more{position:relative}.dsec-more summary{list-style:none}.dsec-more summary::-webkit-details-marker{display:none}
.dsec-menu{position:absolute;right:0;top:110%;background:#1b1e21;border:1px solid var(--line);border-radius:8px;padding:.3rem;display:flex;flex-direction:column;min-width:210px;box-shadow:0 6px 24px rgba(0,0,0,.4)}
.dsec-menu button{background:none;border:0;color:var(--text);text-align:left;padding:.35rem .6rem;border-radius:6px;cursor:pointer;font:inherit;font-size:.88rem}
.dsec-menu button:hover{background:#2a2e36}.dsec-menu button.bad{color:var(--bad)}
.dsec-meta{display:flex;align-items:center;gap:.35rem;min-height:1.2rem;opacity:.75}
.dsec-meta .av{width:18px;height:18px;font-size:.5rem}
.dsec-edbar{gap:.4rem;margin:.3rem 0 .5rem}
.dsec-ta{width:100%;min-height:160px;resize:vertical;font:13.5px/1.55 ui-monospace,Menlo,Consolas,monospace;tab-size:2}
.dsec-add{text-align:center;margin-top:.8rem}
.md{line-height:1.6;overflow-wrap:anywhere}
.md h2{margin:1.1rem 0 .5rem;font-size:1.3rem}.md h3{margin:1rem 0 .4rem;font-size:1.1rem}.md h4{margin:.8rem 0 .3rem}
.md p{margin:.4rem 0 .7rem}.md ul,.md ol{margin:.3rem 0 .7rem;padding-left:1.4rem}.md li{margin:.15rem 0}
.md li.task{list-style:none;margin-left:-1.2rem}
.md code{background:#0f1114;border:1px solid var(--line);border-radius:4px;padding:0 .3rem;font-size:.88em}
.md pre{background:#0a0b0d;border:1px solid var(--line);border-radius:6px;padding:.7rem;overflow:auto}.md pre code{border:0;padding:0;background:none}
.md blockquote{border-left:3px solid var(--acc);margin:.5rem 0;padding:.2rem .8rem;color:var(--muted)}
.md img{max-width:100%;border-radius:6px;background:#fff;margin:.3rem 0}
.md .md-table{overflow-x:auto;margin:.5rem 0 .9rem}.md table{font-size:.9rem}.md th{color:var(--text);font-weight:700;background:#1b1e21}
.md hr{border:0;border-top:1px solid var(--line);margin:1rem 0}
.hist-row{padding:.5rem .3rem;border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}.hist-row:hover{background:#2a2e36}
.hist-row .av{width:20px;height:20px;font-size:.55rem}
.hist-n{margin-left:.3rem;font-family:monospace}.hist-n .plus{color:var(--ok)}.hist-n .minus{color:var(--bad)}
pre.diff{background:#0a0b0d;border:1px solid var(--line);border-radius:6px;padding:.6rem;max-height:60vh;overflow:auto;white-space:pre-wrap;font:12.5px/1.45 ui-monospace,Menlo,Consolas,monospace}
pre.diff .dadd{color:var(--ok);background:rgba(68,214,44,.08);display:inline-block;width:100%}
pre.diff .ddel{color:var(--bad);background:rgba(239,79,79,.08);display:inline-block;width:100%}
/* Linksammlung */
.links-tools{gap:.6rem;align-items:center;margin:.6rem 0 1rem}.links-tools input[type=search]{flex:1;min-width:14rem;max-width:26rem}
.link-cat h2{margin:1.4rem 0 .6rem}
.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.link-card{margin:0;display:flex;flex-direction:column;gap:.3rem}.link-card[hidden],.link-cat[hidden]{display:none}
.link-card p{margin:.2rem 0}.link-head h3{margin:0;font-size:1.05rem}.link-head h3 a{color:var(--text)}.link-head h3 a:hover{color:var(--acc)}
.link-versions{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}
.link-card .chips{padding:.2rem 0 0}.link-card .chip{color:var(--text)}.link-card .chip:hover{border-color:var(--acc);text-decoration:none}
.link-edit{margin-top:auto;padding-top:.4rem}.link-edit summary{cursor:pointer}
.link-form textarea{width:100%}.link-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 .6rem}
@media (max-width:520px){.links-grid{grid-template-columns:1fr}}
/* Bereichsrechte */
.areas-table th.c,.areas-table td.c{text-align:center;min-width:5.2rem}.areas-table input[type=checkbox]{width:1.1rem;height:1.1rem}
/* Meeting-Protokolle */
.mt-table td.c,.mt-table th.c{text-align:center}
.mt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 1rem}
.mt-att{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.35rem 0}
.mt-person{padding:.05rem .5rem;border-radius:5px;background:rgba(255,255,255,.06);font-size:.9rem}
.mt-sum{margin:.3rem 0 0;padding-left:0;list-style:none}.mt-sum li{margin:.2rem 0}.mt-sum a{color:var(--text)}
.mt-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:.3rem 0 0 1.8rem;color:#d5dade}
.card>.mt-text{margin-left:0}
.mt-item{padding:.7rem 0;border-bottom:1px solid var(--line);scroll-margin-top:1rem}.mt-item:last-child{border-bottom:0}
.mt-item:target{background:rgba(68,214,44,.06);border-radius:6px}
.mt-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.mt-num{color:var(--muted);font-variant-numeric:tabular-nums;min-width:1.4rem}
.mt-title{font-size:1rem}
.mt-item.done .mt-title{text-decoration:line-through;color:var(--muted)}
.mt-item.kind-beschluss .mt-kind{background:#163a11;color:#8dff6a;border-color:rgba(68,214,44,.55)}
.mt-item.kind-aufgabe .mt-kind{background:#16263a;color:#a9d1ff;border-color:rgba(74,158,255,.55)}
.mt-item.kind-frage .mt-kind{background:#45360d;color:#ffe08a;border-color:rgba(232,179,60,.6)}
.mt-item-tools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.45rem 0 0 1.8rem}
.mt-item-tools .row{gap:.3rem}.mt-item-tools select{padding:.15rem .4rem;font-size:.85rem}
.mt-delete{margin-top:1.5rem;text-align:right}
.mt-attgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(390px,100%),1fr));gap:.3rem 1.2rem}
.mt-attrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.2rem 0;border-bottom:1px solid var(--line)}
.mt-attname{font-weight:700;font-size:.92rem}
.mt-seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;flex:none}
.mt-seg label{margin:0;cursor:pointer}.mt-seg input{position:absolute;opacity:0;pointer-events:none}
.mt-seg span{display:block;padding:.15rem .5rem;font-size:.8rem;color:var(--muted);border-left:1px solid var(--line)}
.mt-seg label:first-child span{border-left:0}
.mt-seg input:focus-visible+span{outline:2px solid var(--acc);outline-offset:-2px}
.mt-seg input:checked+span{background:#2a2e36;color:var(--text)}
.mt-seg label.ok input:checked+span{background:#163a11;color:#8dff6a}
.mt-seg label.maint input:checked+span{background:#45360d;color:#ffe08a}
.mt-seg label.off input:checked+span{background:#4a1616;color:#ffb3b3}
.mt-erow{border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;margin-bottom:.6rem;background:rgba(0,0,0,.15)}
.mt-erow-top{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.mt-etitle{flex:1;min-width:12rem}
.mt-eopt{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.mt-eopt select{max-width:11rem}
.mt-edone{font-size:.85rem}
.mt-emove{display:flex;gap:.2rem;margin-left:auto}
.mt-erow textarea{width:100%;margin-top:.4rem;resize:vertical}
@media (max-width:520px){.mt-seg{width:100%}.mt-seg label{flex:1;text-align:center}.mt-seg span{padding:.25rem .2rem}.mt-text,.mt-item-tools{margin-left:0}.mt-emove{margin-left:0}}
@media print{.mt-item-tools,.mt-delete{display:none!important}.card{box-shadow:none}}
/* Datenbank */
.db-note{display:block}
.db-tables td,.db-tables th{padding:.35rem .5rem}.db-tables tr[hidden]{display:none}
#db-tsearch{max-width:16rem}
.db-filter{gap:.4rem;margin:.4rem 0 .8rem}.db-filter input[type=search]{flex:1;min-width:12rem;max-width:24rem}
.db-grid-wrap{padding:0;overflow-x:auto}
.db-grid{font-size:.82rem;white-space:nowrap}.db-grid th a{color:var(--muted)}.db-grid th a:hover{color:var(--acc)}
.db-grid td,.db-grid th{padding:.3rem .5rem;max-width:28rem;overflow:hidden;text-overflow:ellipsis}
.db-grid tr:hover td{background:rgba(255,255,255,.03)}
.db-pages{gap:.4rem;justify-content:center}
.db-field{padding:.5rem 0;border-bottom:1px solid var(--line)}.db-field:last-of-type{border-bottom:0}
.db-flabel{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.3rem}
.db-field input:not([type=checkbox]){width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88rem}
.db-ta{width:100%;resize:vertical;font:12.5px/1.45 ui-monospace,Menlo,Consolas,monospace;tab-size:2}
.db-ro{padding:.3rem 0;overflow-wrap:anywhere}
.db-form input[readonly],.db-form textarea[readonly]{opacity:.85;background:#0b0c0e}
.db-delete{text-align:right;margin:-.4rem 0 1rem}
.db-change{padding:.55rem 0;border-bottom:1px solid var(--line)}.db-change:last-child{border-bottom:0}
.db-change.undone{opacity:.55}.db-change:target{background:rgba(68,214,44,.06);border-radius:6px}
.db-change-head{gap:.5rem}
.db-act.update{background:#16263a;color:#a9d1ff;border-color:rgba(74,158,255,.55)}
.db-act.insert{background:#163a11;color:#8dff6a;border-color:rgba(68,214,44,.55)}
.db-act.delete{background:#4a1616;color:#ffb3b3;border-color:rgba(239,79,79,.6)}
.db-act.undo{background:#45360d;color:#ffe08a;border-color:rgba(232,179,60,.6)}
table.db-diff{width:auto;max-width:100%;margin:.35rem 0 0;font-size:.85rem}
table.db-diff td{padding:.15rem .5rem;border:0;vertical-align:top;overflow-wrap:anywhere}
.db-old code{color:#ffb3b3}.db-new code{color:#8dff6a}
.db-long summary{cursor:pointer;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem}
.db-long pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:40vh;overflow:auto;background:#0a0b0d;border:1px solid var(--line);border-radius:6px;padding:.5rem;font-size:.8rem}
table.db-diff td:first-child{white-space:nowrap}
/* Kosten */
.cost-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:0 1rem}
.cost-stat b{display:block;font-size:1.25rem;margin-top:.2rem;font-variant-numeric:tabular-nums}
.cost-table-wrap{overflow-x:auto}.cost-table td{vertical-align:top}.cost-table .r{font-variant-numeric:tabular-nums}
.cost-table tr.cost-off td{opacity:.5}.cost-table tr:target td{background:rgba(68,214,44,.06)}
.cost-refund{padding:.4rem 0;border-bottom:1px solid var(--line)}.cost-refund:last-child{border-bottom:0}
.cost-refund ul{margin:.3rem 0 0;padding-left:1.2rem}.cost-refund li{margin:.2rem 0}
.cost-form [hidden]{display:none!important}
.cost-kind{display:flex;gap:1.2rem;margin-bottom:.4rem}.cost-kind label{font-weight:700;color:var(--text)}
.cost-refunded{align-self:end;margin:0 0 .9rem}
.cost-file{gap:.6rem;padding:.3rem 0;border-bottom:1px solid var(--line)}.cost-file:last-child{border-bottom:0}
.cost-form label select{display:block;width:100%;margin-top:.25rem}
.cost-note{margin-top:.15rem}
.cost-contribs td{padding:.3rem .5rem}
.cost-split{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;align-items:baseline;margin:.6rem 0;padding:.5rem .7rem;border-radius:8px;background:rgba(255,255,255,.04)}
.cost-split b{font-variant-numeric:tabular-nums}.cost-neg{color:var(--bad)}
.cost-contrib-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:0 .6rem;align-items:end;margin-top:.6rem}
.cost-contrib-form [hidden]{display:none!important}.cost-contrib-form .cz-note{grid-column:span 2}
.cost-contrib-form label select{display:block;width:100%;margin-top:.25rem}
.cost-contrib-form button{margin:.6rem 0}
@media (max-width:520px){.cost-contrib-form .cz-note{grid-column:auto}}
.cost-form span[hidden],.cost-form p[hidden]{display:none!important}
.cost-planned{border-color:rgba(232,179,60,.45)}
.cost-plan{padding:.6rem 0;border-bottom:1px solid var(--line)}.cost-plan:last-of-type{border-bottom:0}.cost-plan:target{background:rgba(232,179,60,.07);border-radius:6px}
.cost-plan-head{gap:.5rem}.cost-plan-amount{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}
.cost-plan-note{white-space:pre-wrap;margin:.3rem 0 0;font-size:.92rem}
.cost-plan-actions{gap:.5rem;margin-top:.45rem;align-items:flex-start}
.cost-decide>summary{list-style:none;cursor:pointer}.cost-decide>summary::-webkit-details-marker{display:none}
.cost-decide[open]{flex-basis:100%}
.cost-decide-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:0 .6rem;align-items:end;margin-top:.4rem;padding:.4rem .7rem;border:1px solid var(--line);border-radius:8px}
.cost-decide-form label select{display:block;width:100%;margin-top:.25rem}.cost-decide-form .cz-note{grid-column:span 2}.cost-decide-form button{margin:.6rem 0}
.cost-rejected{margin-top:.6rem}.cost-rejected summary{cursor:pointer}
@media (max-width:520px){.cost-decide-form .cz-note{grid-column:auto}.cost-plan-amount{margin-left:0}}
/* Kosten: Seitenleiste "Wer zahlt was" (nutzt die Chat-Styles) */
aside.costside .ch-tab{background:var(--warn);box-shadow:0 0 12px rgba(232,179,60,.35)}
.ks-person{display:flex;flex-direction:column;gap:.1rem}
.ks-row{display:flex;justify-content:space-between;gap:.5rem}.ks-row span{color:var(--muted)}.ks-row b{font-variant-numeric:tabular-nums;text-align:right}
.ks-n{margin-left:auto}
.ks-project{border-style:dashed}
.ks-foot{margin:0;font-size:.72rem}
/* Rang ausgeschrieben (Chat auf der Startseite) */
.ch-meta{flex-wrap:wrap;row-gap:.2rem}
.ubadges.full{gap:.25rem;flex-wrap:wrap;top:0}
.tbadge.mini.full{font-size:.66rem;padding:0 .4rem 0 .05rem}
/* Nach-oben-Knopf */
.totop{position:fixed;right:20px;bottom:20px;z-index:6;width:44px;height:44px;border-radius:50%;border:1px solid var(--acc);background:rgba(24,27,30,.92);
  color:var(--acc);font:700 1.25rem/1 Montserrat,sans-serif;cursor:pointer;display:grid;place-items:center;box-shadow:0 0 12px var(--acc-glow);
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,visibility .2s}
.totop.on{opacity:1;visibility:visible;transform:none}
.totop:hover{background:var(--acc);color:#121416}
.totop:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
@media (max-width:700px){.totop{right:52px;bottom:16px;width:40px;height:40px}}
@media print{.totop{display:none!important}}
/* Dokument-Editor (sieht aus wie die gespeicherte Ansicht) */
.wys{border:1px solid var(--line);border-radius:8px;background:rgba(0,0,0,.18)}
.wys-bar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;padding:.35rem .4rem;border-bottom:1px solid var(--line);
  background:#1b1e21;border-radius:8px 8px 0 0}
.wys-bar button,.wys-bar select{background:transparent;border:1px solid transparent;color:var(--text);border-radius:5px;padding:.2rem .45rem;font:inherit;font-size:.82rem;cursor:pointer;line-height:1.3}
.wys-bar select{border-color:var(--line);background:#0f1114;padding:.2rem .3rem}
.wys-bar button:hover:not(:disabled){background:#2a2e36}.wys-bar button.on{background:rgba(68,214,44,.15);border-color:rgba(68,214,44,.5)}
.wys-bar button:disabled,.wys-bar select:disabled{opacity:.35;cursor:default}
.wys-bar button.bad{color:var(--bad)}.wys-bar code{background:none;border:0;padding:0;font-size:.78rem}
.wys-sep{width:1px;align-self:stretch;background:var(--line);margin:0 .2rem}.wys-grow{flex:1}
.wys-tbl{display:inline-flex;flex-wrap:wrap;gap:.2rem;align-items:center}.wys-tbl[hidden]{display:none}
.wys-area{min-height:160px;padding:.6rem .8rem;outline:none;cursor:text}
.wys-area:focus{box-shadow:inset 0 0 0 1px rgba(68,214,44,.35)}
.wys-area[hidden],.wys-src[hidden]{display:none}
.wys-area table td,.wys-area table th{min-width:4rem;border:1px solid var(--line)}
.wys-area td:focus-within,.wys-area th:focus-within{outline:2px solid rgba(68,214,44,.5);outline-offset:-2px}
.wys-area li.task input{cursor:pointer}
.wys-area a{cursor:text}
.wys-src{display:block;border:0;border-radius:0 0 8px 8px;margin:0}
@media (max-width:520px){.wys-bar button{padding:.25rem .35rem}}
.wys-area table td,.wys-area table th{height:2.2em}
/* Platz fuer die Seitenleisten: Hauptspalte bleibt mittig, weicht aber offenen Leisten aus */
:root{--side-l:0px;--side-r:0px}
main,.notices{margin-left:max(calc(var(--side-l) + 8px),calc((100% - var(--main-w)) / 2));margin-right:max(calc(var(--side-r) + 8px),calc((100% - var(--main-w)) / 2))}
main:has(.kanban){margin-left:var(--side-l);margin-right:var(--side-r)}
main,.notices{transition:margin .2s ease}
@media (max-width:700px){main,.notices,main:has(.kanban){margin-left:auto;margin-right:auto}}
/* Kartennummern im Board */
.knum{font:600 .72rem/1.6 ui-monospace,Menlo,Consolas,monospace;color:var(--muted);margin-right:.15rem}
.cd-num{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--text)}
/* Inhaltsverzeichnis im Dokument */
.doc-toc{width:250px;flex:none;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;padding:.8rem .9rem;font-size:.86rem}
.doc-toc summary{cursor:pointer;list-style:none;margin-bottom:.4rem}.doc-toc summary::-webkit-details-marker{display:none}
.doc-toc ol{list-style:none;margin:0;padding:0}
.doc-toc li{margin:.1rem 0}
.doc-toc ol ol{margin:.1rem 0 .3rem .7rem;padding-left:.5rem;border-left:1px solid var(--line);font-size:.82rem}
.doc-toc a{display:block;color:var(--muted);padding:.15rem .4rem;border-radius:5px;line-height:1.35}
.doc-toc a:hover{color:var(--text);background:#2a2e36;text-decoration:none}
.doc-toc a.on{color:var(--acc);background:rgba(68,214,44,.08)}
.dsec,.dsec-body h3{scroll-margin-top:1rem}
@media (max-width:900px){.doc-toc{width:auto;position:static;max-height:none}.doc-toc summary::after{content:" ▾";color:var(--muted)}}
/* Verweise auf Board-Karten in Dokumenten (#167) */
.md a.cardref{display:inline-block;padding:0 .35rem;border-radius:5px;background:rgba(74,158,255,.14);color:#b9d8ff;font:600 .88em ui-monospace,Menlo,Consolas,monospace;text-decoration:none}
.md a.cardref:hover{background:rgba(74,158,255,.28);color:#fff}
.cost-contrib-form .cz-rec{align-self:end;margin:0 0 .9rem}
.wish-monthly{margin:.2rem 0 .6rem;color:var(--text)}
/* Kategorien (Dokumente, Protokolle) */
.cat-chips{gap:.4rem;margin:.6rem 0 .2rem}
.cat-chip{color:var(--text);text-decoration:none;white-space:nowrap}
.cat-chip:hover{border-color:var(--acc);text-decoration:none}
.cat-chip.on{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 18%,transparent)}
.cat-head{margin:1.4rem 0 -.3rem;scroll-margin-top:5rem}
/* Rollen-Sync */
.rs-map td,.rs-links td{vertical-align:middle}
.rs-map select,.rs-map input{min-width:12rem}
.rs-linkform{gap:.4rem;margin:0}.rs-linkform input{width:11rem}
@media (max-width:760px){.rs-links,.rs-map{display:block;overflow-x:auto}}
.rs-map tr.rs-pos td:first-child{padding-left:1.6rem}.rs-indent{color:var(--muted)}
.rs-map tr.rs-team td,.rs-map tr.rs-all td{border-top:1px solid var(--line,#2a2e36)}
.rs-sug{outline:2px dashed var(--acc);outline-offset:1px}
.rs-posadd{gap:.5rem;align-items:center}
.ut-pos{margin:.6rem 0}.ut-posrow{gap:.35rem;margin:.3rem 0;align-items:center}.ut-posteam{min-width:9.5rem}
/* Beta-Tester */
.bt-table td{vertical-align:middle}.bt-dc{gap:.3rem;margin:0}.bt-dc input{width:10rem}
@media (max-width:760px){.bt-table{display:block;overflow-x:auto}}
/* Rechte (LuckPerms) */
.lp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem}.lp-grid .card{margin:0}
.lp-groups td,.lp-nodes td{vertical-align:middle}.lp-nodes{width:100%}.lp-nodes td:last-child{width:1%;white-space:nowrap}
.lp-inline{gap:.4rem;align-items:flex-end;margin:.4rem 0}.lp-inline label{margin:0}
.lp-addperm{gap:.4rem;align-items:flex-start;margin:.6rem 0}.lp-more summary{padding:.45rem 0}
.mc-prev{font-family:ui-monospace,Menlo,Consolas,monospace;white-space:pre}.mc-dark{display:inline-block;background:#1b1b1b;padding:.15rem .5rem;border-radius:4px;min-height:1.4em}
.mc-glyph{height:1.15em;vertical-align:-.2em;image-rendering:pixelated}
.lp-glyphs{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin:.4rem 0}
.lp-glyphbtn{background:#1b1b1b;border:1px solid var(--line,#2a2e36);border-radius:4px;padding:.2rem .35rem;cursor:pointer}.lp-glyphbtn img{height:16px;image-rendering:pixelated;display:block}
.lp-glyphbtn:hover{border-color:var(--acc)}
.btn.lp-true{color:#55d655}.btn.lp-false{color:#ef4f4f}
.lp-hist{padding:.2rem 0;border-bottom:1px solid var(--line,#2a2e36)}
.lp-danger{border-color:#ef4f4f55}
@media (max-width:760px){.lp-groups{display:block;overflow-x:auto}}
/* Sprung aus dem Inhaltsverzeichnis: Ziel kurz hervorheben, nicht unter dem Rand landen */
.dsec,.dsec-body h3{scroll-margin-top:1rem}
.dsec.toc-hit{animation:tocHit 1.6s ease-out}
@keyframes tocHit{0%,30%{background:rgba(68,214,44,.12);border-color:var(--acc)}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){.dsec.toc-hit{animation:none;border-color:var(--acc)}}
/* Git */
.git-head .badge{margin-left:.4rem}
.git-files{display:flex;flex-direction:column;gap:.15rem;margin:.6rem 0 1rem}
.git-file{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.25rem 0;border-bottom:1px solid var(--line,#2a2e36)}
.git-file label{flex:1;min-width:0;margin:0;word-break:break-all}
.git-diff{flex-basis:100%;max-height:460px;overflow:auto;background:#121417;border:1px solid var(--line,#2a2e36);border-radius:6px;padding:.5rem .7rem;font:12.5px/1.45 ui-monospace,Menlo,Consolas,monospace;margin:.3rem 0 .5rem;white-space:pre}
.git-diff .add{color:#6ee36e}.git-diff .del{color:#ff7373}.git-diff .hunk{color:#7aa7ff}
.badge.git-M,.badge.git-T{background:#2b4a6b;color:#cfe3ff}.badge.git-A,.badge.git-\?{background:#244d24;color:#c9f5c9}.badge.git-D{background:#5a2424;color:#ffd0d0}.badge.git-R{background:#4d3f1f;color:#ffe9b3}
.git-log td{vertical-align:top}
.git-guide summary{cursor:pointer}
.git-guide h3{margin:1rem 0 .3rem;font-size:1rem}
.git-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.2rem}
.git-guide ol,.git-guide ul{padding-left:1.3rem}.git-guide li{margin:.25rem 0}
.git-cmd{background:#121417;border:1px solid var(--line,#2a2e36);border-radius:6px;padding:.45rem .65rem;margin:.35rem 0;font:12.5px/1.5 ui-monospace,Menlo,Consolas,monospace;white-space:pre;overflow-x:auto}
/* Dokument-Uebersicht: anheften, Farbe, Reihenfolge */
.docs-tools{justify-content:space-between;align-items:center;gap:.6rem}
.docs-sort{display:flex;align-items:center;gap:.4rem;margin:0}.docs-sort select{width:auto}
.doc-tile{position:relative;padding:0;overflow:visible}
.doc-tile-link{display:block;color:var(--text);padding:1rem 2.6rem 1rem 1.1rem}.doc-tile-link:hover{text-decoration:none}
.doc-tile.colored{border-left:5px solid var(--dc);background:linear-gradient(90deg,color-mix(in srgb,var(--dc) 9%,transparent),transparent 60%)}
.doc-tile.pinned{border-color:color-mix(in srgb,var(--dc,var(--acc)) 55%,var(--line,#2a2e36))}
.doc-tile[draggable=true]{cursor:grab}.doc-tile.dragging{opacity:.45;outline:2px dashed var(--acc)}
.doc-menu{position:absolute;top:.5rem;right:.5rem}
.doc-menu summary{list-style:none;cursor:pointer;padding:.1rem .45rem;border-radius:6px;color:var(--muted);font-weight:700;line-height:1}
.doc-menu summary::-webkit-details-marker{display:none}
.doc-menu summary:hover,.doc-menu[open] summary{background:#2a2e36;color:var(--text)}
.doc-menu-pop{position:absolute;right:0;top:120%;z-index:20;background:#1b1e21;border:1px solid var(--line,#2a2e36);border-radius:8px;padding:.5rem;min-width:210px;box-shadow:0 6px 24px rgba(0,0,0,.45);display:flex;flex-direction:column;gap:.5rem}
.doc-menu-pop>button{background:none;border:0;color:var(--text);text-align:left;padding:.35rem .5rem;border-radius:6px;cursor:pointer;font:inherit;font-size:.9rem}
.doc-menu-pop>button:hover{background:#2a2e36}
.doc-colors{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 .3rem}
.doc-color{width:22px;height:22px;border-radius:50%;border:2px solid transparent;background:var(--sw);cursor:pointer;padding:0}
.doc-color.on{border-color:#fff}.doc-color.none{background:#2a2e36;color:var(--muted);font-size:.7rem;line-height:1}
.doc-pin{font-size:.95em}
.git-cmd-wrap{position:relative}.git-cmd-wrap .git-cmd{padding-right:5.5rem}
.git-copy{position:absolute;top:.4rem;right:.4rem}

/* Bug-Reports */
.bug-public{max-width:760px;margin:0 auto}
.bug-form label{display:block;margin-bottom:.8rem}
.bug-form textarea,.bug-form input:not([type=file]):not([type=checkbox]),.bug-form select{width:100%}
.bug-row{gap:1rem}.bug-row>label{flex:1;min-width:12rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.bug-text{white-space:pre-wrap;word-break:break-word}
.bug-thumb{max-width:180px;max-height:120px;border-radius:6px;border:1px solid var(--line,#2a2e36)}
.bug-event{padding:.5rem 0;border-bottom:1px solid var(--line,#2a2e36)}
.bug-event.bug-melder{border-left:3px solid #e8b33c;padding-left:.6rem}
.bug-event.bug-antwort{border-left:3px solid #44d62c;padding-left:.6rem}
.bug-event.bug-notiz{opacity:.9}
.bug-comment{margin-top:.8rem}.bug-comment textarea{width:100%}
.bug-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1rem}
@media (max-width:900px){.bug-grid{grid-template-columns:1fr}}
.bug-grid form label{display:block;margin-bottom:.6rem}.bug-grid select,.bug-grid input[name=title]{width:100%}
.bug-filter{gap:.6rem;align-items:center}
.bug-row-link{cursor:pointer}.bug-row-link:hover td{background:rgba(255,255,255,.03)}
.bug-table tr.prio-kritisch td:first-child{box-shadow:inset 3px 0 #ef4f4f}
.bug-table tr.prio-hoch td:first-child{box-shadow:inset 3px 0 #e8b33c}
.bug-cats input[type=text],.bug-cats input:not([type]){width:100%}
.bug-event.bug-discord{border-left:3px solid #5865f2;padding-left:.6rem}
.bug-event.bug-system{opacity:.75}

/* NPCs (DracheNPCs: Liste, Editor, Skins; Entwurf notes/dashboard/mockup.html) */
.npc-page input{accent-color:var(--acc)}
.npc-mono{font-family:ui-monospace,Menlo,Consolas,monospace}.npc-tnum{font-variant-numeric:tabular-nums}
.npc-status{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:center;font-size:.85rem;color:var(--muted);margin:-.3rem 0 1rem}
.npc-status b{color:var(--text)}
.npc-errs{margin:.3rem 0 0;padding-left:1.2rem}
.npc-tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:0 0 1rem}
.npc-tools input[type=search]{flex:1;min-width:14rem;max-width:24rem}
.npc-tools .chips{padding:0}
.npc-tools .chip{cursor:pointer;color:var(--text);font:inherit;font-size:.85rem}
.npc-tools .chip:hover:not(:disabled){border-color:var(--acc)}
.npc-tools .chip.on{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 18%,transparent)}
.npc-tools .chip:disabled{opacity:.45;cursor:not-allowed}
.npc-tools .chip:focus-visible,.npc-skin:focus-visible,.npc-way:focus-visible,.npc-colors button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.npc-tools .grow{flex:1}
.npc-page .btn:disabled{cursor:not-allowed}
.npc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1rem}
.npc-card{margin:0;display:flex;gap:.9rem;color:var(--text);transition:border-color .2s,box-shadow .2s,transform .2s}
a.npc-card:hover{text-decoration:none}
.npc-card:hover,.npc-card:focus-visible,.npc-card.sel{border-color:var(--acc);box-shadow:0 0 18px var(--acc-glow);transform:translateY(-2px);outline:none}
.npc-fig{flex:none;width:78px;height:136px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(ellipse 80% 60% at 50% 70%,rgba(68,214,44,.1),transparent 70%),#0f1114}
.npc-fig img{height:116px;width:auto;image-rendering:pixelated}
.npc-ph{padding:.3rem;text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);line-height:1.3;hyphens:auto;overflow-wrap:anywhere}
.npc-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:.3rem}
.npc-info .chips{padding:0}
.npc-plate{align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#1b1b1b;border-radius:4px;padding:.1rem .45rem;font:600 14px/1.4 ui-monospace,Menlo,Consolas,monospace}
.npc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.npc-bad-text{color:var(--bad)}
.npc-id{font:12px ui-monospace,Menlo,Consolas,monospace;color:var(--muted)}
.npc-meta{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;font-size:.8rem;color:var(--muted)}
.npc-stand{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:auto}
.npc-pill{font-size:.72rem;font-weight:700;padding:.05rem .45rem;border-radius:99px;border:1px solid transparent;white-space:nowrap}
.npc-pill.ok{background:#163a11;color:#8dff6a;border-color:rgba(68,214,44,.55)}
.npc-pill.warn{background:#45360d;color:#ffe08a;border-color:rgba(232,179,60,.6)}
.npc-pill.bad{background:#4a1616;color:#ffb3b3;border-color:rgba(239,79,79,.6)}
.npc-pill.off{background:#2a2e36;color:var(--muted);border-color:var(--line)}
a.npc-pill{text-decoration:underline;text-underline-offset:2px}a.npc-pill:hover{box-shadow:0 0 10px var(--acc-glow)}
.card.npc-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:160px;margin:0;cursor:pointer;font:inherit;font-weight:700}
.card.npc-new span{font-weight:400}
/* Editor */
.npc-crumbs{margin-bottom:.4rem;font-size:.9rem}.npc-crumbs a{color:var(--muted)}
.npc-head{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between;margin-bottom:.9rem}
.npc-head h1{margin:0;min-width:0;overflow-wrap:anywhere}
.npc-headmeta{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.npc-headmeta .npc-stand{margin:0}
.npc-cmd{display:inline-flex;align-items:center;gap:.4rem;background:#0a0b0d;border:1px solid var(--line);border-radius:6px;padding:.2rem .3rem .2rem .6rem;font:13px ui-monospace,Menlo,Consolas,monospace}
.npc-edit{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start}
@media (max-width:900px){.npc-edit{grid-template-columns:minmax(0,1fr)}.npc-preview{position:static!important}}
.npc-preview{position:sticky;top:1rem;margin:0}
.npc-stage{height:340px;border-radius:8px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.45rem;padding:1rem .5rem .9rem;overflow:hidden;
  background:radial-gradient(ellipse 55% 50% at 50% 74%,rgba(68,214,44,.13),transparent 70%),linear-gradient(#0d0f11,#171a1d)}
.npc-nameplate{display:flex;flex-direction:column;align-items:center;gap:.15rem;max-width:100%;font:14px/1.3 ui-monospace,Menlo,Consolas,monospace;text-align:center}
.npc-nameplate>span{background:rgba(0,0,0,.5);padding:.05rem .45rem;overflow-wrap:anywhere}
.npc-pvfig{display:grid;place-items:end center}
.npc-pvfig img{height:130px;width:auto;image-rendering:pixelated;transition:height .2s}
.npc-pvfig .npc-ph{font-size:.85rem;max-width:14rem;padding:2.5rem .5rem}
.npc-say{margin-top:.7rem;background:#1b1b1b;border-radius:4px;padding:.4rem .6rem;font:13px/1.45 ui-monospace,Menlo,Consolas,monospace;overflow-wrap:anywhere}
.npc-note{margin:.6rem 0 0}
.npc-tabs a.soon{opacity:.6}
.npc-pane{display:none}.npc-pane.on{display:block}
.npc-pane>.card{margin-bottom:1rem}
.npc-fs{border:0;margin:0;padding:0;min-width:0}
.npc-ro{margin:0 0 .8rem}
.npc-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0 1rem}
.npc-form label input:not([type=checkbox]):not([type=range]):not([type=color]),.npc-form label select,.npc-form label textarea{display:block;width:100%;margin-top:.25rem}
.npc-form input[type=range]{display:block;width:100%;margin-top:.5rem}
.npc-form .wide{grid-column:1/-1}
.npc-checkrow{align-self:center;margin:.6rem 0}
.npc-num{max-width:7rem}
.npc-lbl{display:block;color:var(--muted);font-size:.9rem;margin-top:.6rem}
.npc-mcprev{display:inline-block;margin-top:.35rem;background:#1b1b1b;border-radius:4px;padding:.15rem .5rem;font:13px ui-monospace,Menlo,Consolas,monospace;min-height:1.6em}
.npc-colors{display:flex;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 .2rem}
.npc-colors button{width:30px;height:30px;border-radius:6px;border:2px solid transparent;cursor:pointer;font:700 13px ui-monospace,monospace;color:#121416;padding:0}
.npc-colors button.on{border-color:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.6)}
.npc-colors button:disabled{cursor:not-allowed}
.npc-seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:.3rem 0 .6rem}
.npc-seg button{background:none;border:0;border-left:1px solid var(--line);color:var(--muted);padding:.4rem .9rem;font:inherit;font-size:.88rem;cursor:pointer}
.npc-seg button:first-child{border-left:0}.npc-seg button.on{background:rgba(68,214,44,.14);color:#fff}
.npc-seg button:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.npc-seg button:disabled{opacity:.45;cursor:not-allowed}
/* NPCs: Portraet im Dialogkasten (Phase 14). Die Karte wie im Spiel auf dem hellen Holz der Tafel, doppelt so gross */
.npc-portrait{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:flex-start}
.npc-pcard{width:120px;height:138px;padding:8px;background:#c5bca9;border-radius:6px;image-rendering:pixelated;flex:none}
.npc-pcard[hidden]{display:none}
.npc-pinfo{flex:1;min-width:14rem}.npc-pinfo p{margin:.1rem 0 .5rem}
.npc-pupload{display:flex;flex-wrap:wrap;gap:.35rem .7rem;align-items:center;margin:0 0 .5rem}
.npc-pfile{position:relative;overflow:hidden;cursor:pointer}
.npc-pfile input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.npc-pfile:focus-within{outline:2px solid var(--acc);outline-offset:1px}
.npc-pstate.ok{color:#8dff6a}.npc-pstate.warn{color:#ffe08a}.npc-pstate.bad{color:#ffb3b3}.npc-pstate.note{color:var(--muted)}
.npc-skintools{gap:.6rem}.npc-skintools input{flex:1;min-width:12rem;max-width:22rem}
.npc-skinpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.6rem;max-height:380px;overflow:auto;padding:2px;margin-top:.6rem}
.npc-skinpick>p{grid-column:1/-1;margin:.3rem 0}
.npc-skin{border:1px solid var(--line);border-radius:8px;padding:.5rem .4rem;cursor:pointer;background:rgba(0,0,0,.2);display:flex;flex-direction:column;align-items:center;gap:.2rem;font:inherit;font-size:.8rem;color:var(--text);min-width:0}
.npc-skin img{height:86px;width:auto;image-rendering:pixelated}
.npc-skin .npc-ph{height:86px;display:grid;place-items:center}
.npc-skinname{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.npc-skin small{color:var(--muted);font-size:.72rem}
.npc-skin:hover:not(:disabled){border-color:var(--acc)}
.npc-skin.sel{border-color:var(--acc);box-shadow:0 0 12px var(--acc-glow)}
.npc-skin.add{border-style:dashed;color:var(--acc);justify-content:center;font-weight:700;min-height:140px}
.npc-skin:disabled{cursor:not-allowed;opacity:.6}
.npc-warnline{margin:.2rem 0 .6rem;padding:.45rem .7rem;border:1px solid rgba(232,179,60,.6);border-radius:8px;background:#45360d;color:#ffe08a;font-size:.85rem}
.npc-outfithead{justify-content:space-between;margin-bottom:.6rem}.npc-outfithead h2{margin:0}.npc-outfithead label{margin:0}
.npc-outfithead select{margin-left:.4rem}
.npc-doll{display:grid;grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr);gap:.8rem;align-items:center}
@media (max-width:640px){.npc-doll{grid-template-columns:1fr}.npc-dollfig{order:-1;height:220px}.npc-dollfig img{height:190px}}
.npc-dollcol{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.npc-dollfig{display:grid;place-items:center;height:310px;border-radius:8px;background:#0f1114;border:1px solid var(--line)}
.npc-dollfig img{height:270px;width:auto;image-rendering:pixelated}
.npc-slotwrap{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.npc-slot{display:flex;align-items:center;gap:.6rem;width:100%;border:1px dashed #3a3f46;border-radius:8px;padding:.45rem .55rem;cursor:pointer;background:rgba(0,0,0,.2);color:var(--text);font:inherit;text-align:left}
.npc-slot:hover:not(:disabled),.npc-slot:focus-visible{border-color:var(--acc);outline:none}
.npc-slot:disabled{cursor:default}
.npc-slot.filled{border-style:solid;border-color:var(--line)}
.npc-slot i{width:34px;height:34px;border-radius:6px;background:#2a2e36;flex:none;display:grid;place-items:center;font-style:normal;color:var(--muted);font-size:.72rem;font-weight:700}
.npc-slot div{min-width:0;flex:1}.npc-slot b{display:block;font-size:.85rem}
.npc-slot small{display:block;color:var(--muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.npc-src{display:inline-block;font-size:.72rem;font-weight:700;padding:0 .35rem;border-radius:4px;background:#2a2e36;color:var(--muted);margin-left:.3rem;vertical-align:1px}
.npc-dye{display:flex;align-items:center;gap:.5rem;padding-left:.2rem}
.npc-fieldmsg{display:block;margin-top:.25rem;font-size:.8rem;line-height:1.35}
.npc-fieldmsg.bad{color:#ffb3b3}.npc-fieldmsg.warn{color:#ffe08a}
.npc-bad input,.npc-bad select,.npc-bad textarea,.npc-bad .npc-skinpick{border-color:var(--bad)!important}
.npc-codes{display:grid;gap:.1rem;margin-top:.3rem}.npc-codes .git-cmd{margin:.1rem 0 .4rem}
.npc-code{margin:.5rem 0 .2rem}.npc-code summary{font-weight:400;padding:.2rem 0}
.npc-names{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:0 1rem}
.npc-field label{margin:.6rem 0 0}
.npc-ctext{position:relative;display:flex;gap:.4rem;margin-top:.25rem}
.npc-ctext input{flex:1;min-width:0;font-weight:700;background:#1b1b1b}
.npc-swatch{flex:none;width:40px;border-radius:6px;border:1px solid var(--line);cursor:pointer;position:relative;padding:0}
.npc-swatch::after{content:"▾";position:absolute;right:4px;bottom:2px;font-size:.72rem;color:rgba(0,0,0,.65)}
.npc-swatch:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.npc-swatch:disabled{cursor:not-allowed}.npc-swatch:disabled::after{content:none}
.npc-palette{position:absolute;right:0;top:calc(100% + .35rem);z-index:40;display:grid;grid-template-columns:repeat(5,30px);gap:.35rem;padding:.5rem;
  background:#1b1e21;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.npc-palette button{width:30px;height:30px;border-radius:6px;border:2px solid transparent;cursor:pointer;font:700 13px ui-monospace,monospace;color:#121416;padding:0}
.npc-palette button:hover,.npc-palette button:focus-visible{border-color:#fff;outline:none}
.npc-newprev{margin:.9rem 0 0}
.npc-cmdwrap{max-width:420px}
.npc-places td{vertical-align:middle}
/* Reiten (Phase 8c): Zeile unter der Platzierung, ohne eigene Trennlinie */
.npc-places tr.npc-placeride td{border-top:0;padding-top:0}
.npc-placeride>td{color:var(--muted)}.npc-placeride>td>span{margin-right:.8rem}
.npc-rideform{gap:.5rem;align-items:center}.npc-rideform select{max-width:min(420px,100%);min-width:0}
.npc-placeride .npc-rideform{display:inline-flex;flex-wrap:wrap;margin:.2rem 0}
.npc-subhead{margin:1.2rem 0 .3rem;font-size:.95rem}
/* Zustaende einer Figur: Schalter als Haken, Auswahl als Liste */
.npc-stateflags{display:flex;flex-wrap:wrap;gap:.2rem 1.4rem;margin-top:.7rem}.npc-stateflags .check{margin:0}
.npc-states .npc-blockpick{display:flex;gap:.4rem;align-items:center;margin-top:.25rem}
.npc-pvstack{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}.npc-pvstack select{flex:1;min-width:0}
.npc-removeall{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:.8rem}
.npc-wip{border-style:dashed}
.npc-hist{padding:.45rem 0;border-bottom:1px solid var(--line)}.npc-hist:last-of-type{border-bottom:0}
.npc-savebar{position:sticky;bottom:12px;z-index:8;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin-top:1rem;padding:.6rem .9rem;
  border:1px solid var(--warn);border-radius:10px;background:rgba(27,30,33,.97);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.npc-savebar b{color:#ffe08a}
/* Dialoge: Gegenstand, Skin hinzufuegen, Skin-Details */
dialog.npc-dlg-sm{width:min(560px,94vw)}
.card-dlg h2 .npc-id{text-transform:none;letter-spacing:0;font-weight:400}
.npc-itools{gap:.6rem;margin:.2rem 0 0}.npc-itools input[type=search]{flex:1;min-width:12rem}
.npc-picklist{display:flex;flex-direction:column;gap:.3rem;max-height:330px;overflow:auto;margin:.6rem 0}
.npc-pick{display:flex;align-items:center;gap:.6rem;width:100%;padding:.4rem .55rem;border:1px solid var(--line);border-radius:6px;cursor:pointer;background:rgba(0,0,0,.2);color:var(--text);font:inherit;font-size:.9rem;text-align:left}
.npc-pick:hover,.npc-pick:focus-visible{border-color:var(--acc);outline:none}
.npc-pick.sel{border-color:var(--acc);box-shadow:0 0 10px var(--acc-glow)}
.npc-pickname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.npc-pick code{margin-left:auto;font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%}
.npc-manual{margin:0 0 .8rem}.npc-manual .row{gap:.5rem}.npc-manual input{flex:1;min-width:12rem}
.npc-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem;margin:.6rem 0 1rem}
.npc-way{border:1px solid var(--line);border-radius:8px;padding:.7rem;background:rgba(0,0,0,.2);cursor:pointer;color:var(--text);font:inherit;text-align:left}
.npc-way:hover{border-color:var(--acc)}
.npc-way.on{border-color:var(--acc);box-shadow:0 0 12px var(--acc-glow)}
.npc-way b{display:block}.npc-way span{font-size:.8rem;color:var(--muted)}
.npc-drop{display:block;position:relative;border:2px dashed #3a3f46;border-radius:10px;padding:1.4rem;text-align:center;color:var(--muted);margin:.4rem 0 .6rem;cursor:pointer}
.npc-drop:hover,.npc-drop.over,.npc-drop:focus-within{border-color:var(--acc);color:var(--text)}
.npc-file{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.npc-searchsites{gap:.5rem}.npc-searchsites input{flex:1;min-width:10rem}
.npc-sprev{display:flex;align-items:center;gap:.8rem;margin:.2rem 0 .4rem}
.npc-sprev img{width:128px;height:auto;image-rendering:pixelated;background:repeating-conic-gradient(#2a2e36 0 25%,#1b1e21 0 50%) 0 0/16px 16px;border:1px solid var(--line);border-radius:6px}
.npc-key{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;align-items:flex-start}
.npc-keyedit{flex-basis:100%}.npc-keyedit summary{font-weight:700}
.npc-keyform{gap:.5rem;margin:.4rem 0}.npc-keyform input{flex:1;min-width:14rem;max-width:30rem}
.npc-skindetail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.2rem;align-items:start}
@media (max-width:600px){.npc-skindetail{grid-template-columns:1fr}}
.npc-bigfig{display:flex;gap:.6rem;align-items:flex-end;padding:.8rem;border-radius:8px;border:1px solid var(--line);
  background:radial-gradient(ellipse 80% 60% at 50% 70%,rgba(68,214,44,.1),transparent 70%),#0f1114}
.npc-bigfig img{image-rendering:pixelated}
.npc-skininfo .npc-form{margin-bottom:.4rem}
.npc-more{margin-top:.6rem}.npc-moreform{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.4rem 0}
@media (max-width:600px){.npc-tools input[type=search]{min-width:100%}.npc-headmeta{width:100%}}
@media (prefers-reduced-motion:reduce){.npc-card,.npc-pvfig img{transition:none}.npc-card:hover,.npc-card:focus-visible,.npc-card.sel{transform:none}}
/* NPCs: 3D-Vorschau (npc3d.js) */
.npc-stage.is-3d{padding:0;position:relative;justify-content:stretch}
.npc-stage.is-3d .npc-pvfig{display:none}
.npc-stage.is-3d.has-font .npc-nameplate{display:none}
.npc-stage.is-3d:not(.has-font) .npc-nameplate{position:absolute;top:.7rem;left:.5rem;right:.5rem;z-index:1;pointer-events:none}
.npc-3d{flex:1;min-height:0;width:100%;display:flex}
.npc-3dcanvas{display:block;width:100%;height:100%;min-height:0;cursor:grab;touch-action:none;border-radius:8px}
.npc-3dcanvas:active{cursor:grabbing}
.npc-3dcanvas:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.npc-3dbar{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .8rem;margin-top:.4rem}
.npc-3dbar .npc-seg{margin:0}.npc-3dbar .npc-seg button{padding:.3rem .6rem;font-size:.82rem}
.npc-dollfig .npc-3dcanvas{position:static}
.npc-fieldmsg.note{color:var(--muted)}
.npc-assets{margin-top:1rem}.npc-assetlist{margin:.3rem 0 .6rem;padding-left:1.1rem}.npc-assetlist li{margin:.15rem 0}
.npc-assetform{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;margin:.5rem 0}
.npc-assetform .npc-num{width:9rem;margin-left:.4rem}
/* NPCs: Symbole wie im Inventar (Item-Auswahl, Ausruestungs-Plaetze) und Karten-Bilder (npc3d.js) */
.npc-ico{width:32px;height:32px;flex:none;border-radius:6px;background:#2a2e36;display:grid;place-items:center;overflow:hidden}
.npc-ico img,.npc-slot i img{width:32px;height:32px;display:block;image-rendering:pixelated}
.npc-fig img.npc-card3d{width:100%;height:100%;object-fit:contain;image-rendering:auto}
.bug-baustein{border:1px solid var(--line,#2a2f34);border-radius:8px;padding:.6rem;margin:.5rem 0;display:grid;gap:.4rem}
.bug-baustein textarea{width:100%}

/* Wiki für die Website */
.wiki-kat{margin-bottom:1rem}
.wiki-list{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:.35rem}
.wiki-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:8px;background:rgba(255,255,255,.03)}
.wiki-list li a{flex:1;min-width:12rem}
.wiki-move{display:inline-flex;gap:.25rem}
.wiki-move form,.wiki-kat .row form{display:inline}
.wiki-katform{display:grid;gap:.6rem;margin-top:.8rem}
.wiki-edit{margin-top:.6rem}

/* Ticket erstellen: Übersicht der Themen */
.bp-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem;margin-top:1rem}
.bp-tile{display:flex;flex-direction:column;gap:.35rem;color:inherit;text-decoration:none;transition:transform .15s,border-color .15s}
.bp-tile:hover{transform:translateY(-3px);border-color:var(--acc,#44d62c)}
.bp-tile b{font-size:1.1rem}
.bp-ico{font-size:2rem;line-height:1}

/* Ticket-Formular: Bild-Vorschau */
.bp-vorschau{display:flex;flex-wrap:wrap;gap:.6rem;margin:-.3rem 0 1rem}
.bp-vorschau p{flex-basis:100%;margin:0}
.bp-bild{position:relative;width:110px;display:flex;flex-direction:column;gap:.2rem}
.bp-bild img{width:110px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--line,#333)}
.bp-bild span{font-size:.72rem;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bp-bild button{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;cursor:pointer;background:rgba(0,0,0,.7);color:#fff;font-size:.8rem;line-height:1}
/* Farbwaehler (static/farbwahl.js): Knopf mit Farbe und Hex-Wert, Popover mit Flaeche, Farbton-Leiste und Feldern */
.fw-knopf{display:inline-flex;align-items:center;gap:.45rem;background:#0f1114;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.25rem .55rem .25rem .3rem;font:.85rem ui-monospace,Menlo,Consolas,monospace;cursor:pointer;vertical-align:middle}
.fw-knopf:hover,.fw-knopf[aria-expanded=true]{border-color:var(--acc)}
.fw-knopf:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.fw-knopf:disabled{cursor:not-allowed;opacity:.6}
.fw-knopf i{width:22px;height:22px;border-radius:4px;border:1px solid rgba(255,255,255,.3);flex:none}
label:not(.check)>.fw-knopf{display:flex;width:100%;margin-top:.25rem;padding:.4rem .6rem .4rem .4rem}
.fw-pop{position:fixed;inset:auto;margin:0;z-index:1000;width:340px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;padding:.8rem;background:#1b1e21;color:var(--text);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.fw-pop:not(.fw-offen){display:none}
.fw-pop:focus{outline:none}
.fw-pop::backdrop{background:transparent}
.fw-flaeche{position:relative;height:150px;border-radius:6px;cursor:crosshair;touch-action:none}
.fw-punkt,.fw-griff{position:absolute;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.6),inset 0 0 0 1px rgba(0,0,0,.3);pointer-events:none}
.fw-punkt{width:16px;height:16px;margin:-8px 0 0 -8px}
.fw-ton{position:relative;height:14px;margin:.75rem 0;border-radius:99px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);cursor:pointer;touch-action:none}
.fw-griff{top:50%;width:18px;height:18px;margin:-9px 0 0 -9px}
.fw-flaeche:focus-visible,.fw-ton:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.fw-zeile{display:flex;gap:.6rem;align-items:flex-end}.fw-zeile label{flex:1}
.fw-vergleich{display:flex;flex:none;height:2.15rem;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.fw-vergleich>*{width:2rem;border:0;padding:0}
.fw-alt{cursor:pointer}.fw-alt:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.fw-pop label{margin:0;font-size:.72rem;font-weight:700;color:var(--muted)}
.fw-pop label input{margin-top:.15rem;padding:.3rem .45rem;font:.85rem ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.fw-felder{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.5rem}
.fw-pop input.fw-falsch{border-color:var(--bad);outline-color:var(--bad)}
.fw-hinweis{margin:.45rem 0 0;font-size:.8rem;line-height:1.35;color:#ffb3b3}
.fw-zuletzt{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:.7rem}
.fw-zuletzt button{width:22px;height:22px;border-radius:4px;border:1px solid rgba(255,255,255,.3);padding:0;cursor:pointer}
.fw-zuletzt button:hover,.fw-zuletzt button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.fw-fuss{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.8rem}.fw-fuss .fw-kopie{margin-right:auto}
@media (max-width:600px){.fw-pop{width:min(340px,calc(100vw - 32px))}.fw-pop::backdrop{background:rgba(0,0,0,.6)}}

/* Loottabellen (templates/loot.html, static/loot.js) */
.loot-head{display:flex;align-items:flex-start;gap:1rem;justify-content:space-between}.loot-head h1{margin:.2rem 0}
.loot-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.4rem 0 1rem}.loot-tools .grow{flex:1}
.loot-tools a.chip{color:var(--text)}.loot-tools a.chip.on{background:var(--acc);border-color:var(--acc);color:#121416;font-weight:700}
.loot-tools input[type=search]{min-width:240px}
.loot-main{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:1rem;align-items:start}
.loot-list{max-height:75vh;overflow-y:auto;padding:.5rem;position:sticky;top:.5rem}
.loot-li{display:flex;flex-direction:column;padding:.45rem .6rem;border-radius:7px;color:var(--text)}
.loot-li:hover{background:rgba(255,255,255,.05);text-decoration:none}.loot-li.on{background:rgba(68,214,44,.12);outline:1px solid var(--acc)}
.loot-li small{color:var(--muted);font-size:.78rem}
.loot-edit h2{margin-top:0}.loot-h{margin:1rem 0 .2rem}
.loot-row{display:flex;flex-wrap:wrap;gap:.8rem}.loot-row label{margin:.3rem 0}.loot-row label:first-child{flex:1;min-width:220px}
.loot-edit textarea{width:100%;font:13px/1.4 ui-monospace,Menlo,Consolas,monospace}
.loot-drops td{padding:.3rem .3rem}.loot-drops input{width:100%}.loot-drops td:nth-child(2){min-width:220px}
.loot-drops .l-name{display:block;font-size:.75rem;margin-top:.15rem}
.loot-drops td:nth-child(3) input,.loot-drops td:nth-child(4) input{width:5.5rem}
.loot-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:1rem}.loot-actions .grow{flex:1}
.loot-src{white-space:pre;overflow-x:auto;font-size:.8rem;background:#0f1114;padding:.6rem;border-radius:6px}
@media (max-width:820px){.loot-main{grid-template-columns:1fr}.loot-list{position:static;max-height:40vh}}
/* Quest-Editor (templates/quests.html, static/quests.js) */
.qe-head{display:flex;align-items:flex-start;gap:1rem;justify-content:space-between}.qe-head h1{margin:.2rem 0}
.qe-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin:.4rem 0 .8rem}.qe-tools .grow{flex:1}.qe-tools input[type=search]{min-width:260px}
.qe-legende span{display:inline-block;vertical-align:middle}.qe-l-vor,.qe-l-auto{width:26px;border-top:2px solid var(--muted);margin:0 .2rem 0 .6rem}.qe-l-auto{border-top-style:dashed;border-color:var(--info)}
.qe-l-sonder{color:var(--warn);margin-left:.6rem}
.qe-main{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:1rem;align-items:start}
@media (max-width:1100px){.qe-main{grid-template-columns:1fr}}
.qe-baum{overflow:auto;max-height:78vh;padding:0;position:relative}
.qe-flaeche{position:relative}
.qe-kanten{position:absolute;left:0;top:0;pointer-events:none;color:var(--muted)}
.qe-kante{fill:none;stroke:currentColor;stroke-width:1.6;opacity:.55}.qe-kante.auto{stroke-dasharray:6 4;color:var(--info);stroke:var(--info)}
.qe-kante.quer{opacity:.75}.qe-kante.hl{stroke:var(--acc);opacity:1;stroke-width:2.4}
.qe-reihen{display:flex;flex-wrap:wrap;gap:.35rem;margin:.1rem 0 .6rem}
.qe-spalte{position:absolute;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.9rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}
.qe-spalte .btn{margin-left:auto}
.qe-spalte.blink{animation:qe-blink 1.2s}@keyframes qe-blink{0%,60%{color:var(--acc);border-color:var(--acc)}}
.qe-knoten{position:absolute;background:#1b1e22;border:1px solid var(--line);border-radius:8px;padding:.35rem .55rem;cursor:pointer;user-select:none;overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;transition:border-color .15s,box-shadow .15s;touch-action:none}
.qe-knoten b{font-size:.86rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qe-knoten small{color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qe-knoten:hover,.qe-knoten:focus{border-color:var(--acc);outline:none}.qe-knoten.on{border-color:var(--acc);box-shadow:0 0 12px var(--acc-glow)}
.qe-knoten.sonder{border-left:3px solid var(--warn)}.qe-knoten.aus{opacity:.25}.qe-knoten.drop{border-color:var(--info);box-shadow:0 0 14px rgba(74,158,255,.5)}
.qe-marken{position:absolute;right:.4rem;top:.25rem;font-size:.75rem;font-style:normal}.qe-marken i{font-style:normal;margin-left:.15rem}.qe-marken .bad{color:var(--bad)}
.qe-geist{position:fixed;z-index:1000;pointer-events:none;background:var(--acc);color:#121416;font-weight:700;padding:.3rem .6rem;border-radius:6px;font-size:.85rem;box-shadow:0 4px 14px rgba(0,0,0,.4)}
body.qe-zieht{cursor:grabbing}body.qe-zieht .qe-knoten{cursor:copy}
.qe-edit{position:sticky;top:.5rem;max-height:86vh;overflow:auto}
.qe-ekopf{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}.qe-ekopf h2{margin:0 0 .1rem;text-transform:none;letter-spacing:0;font-size:1.1rem}
.qe-form label{margin:.45rem 0}.qe-form input:not([type=checkbox]):not([type=radio]),.qe-form select,.qe-form textarea{width:100%}
.qe-form fieldset{border:1px solid var(--line);border-radius:8px;margin:.7rem 0;padding:.5rem .8rem}.qe-form legend{color:var(--muted);font-size:.85rem;padding:0 .3rem}
.qe-form .row{margin:.3rem 0}.qe-form .row input,.qe-form .row select{width:auto;flex:1}
.qe-orte input{width:100%!important}.qe-orte td{padding:.2rem .25rem}
.qe-bel td{padding:.25rem}.qe-bel input,.qe-bel select{width:auto!important}
.qe-roh{display:grid;grid-template-columns:minmax(110px,30%) 1fr auto;gap:.4rem;align-items:start;margin:.3rem 0}.qe-roh code{font-size:.8rem;word-break:break-all;padding-top:.4rem}
.qe-roh input,.qe-roh textarea{font:12.5px/1.4 ui-monospace,Menlo,Consolas,monospace}.qe-roh.weg{opacity:.35;text-decoration:line-through}
.qe-dlg{max-width:960px;width:calc(100% - 32px)}.qe-dlg label{margin:.4rem 0}.qe-dlg input:not([type=checkbox]):not([type=radio]),.qe-dlg select,.qe-dlg textarea{width:100%}
.qe-dlg fieldset{border:1px solid var(--line);border-radius:8px;margin:.6rem 0;padding:.4rem .8rem}.qe-dlg legend{color:var(--muted);font-size:.85rem}
.qe-2sp{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}@media (max-width:600px){.qe-2sp{grid-template-columns:1fr}}
.qe-verlauf{margin-top:1rem}
/* Spieler-Support */
.sp-main{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:900px){.sp-main{grid-template-columns:1fr}}
.sp-liste{position:sticky;top:.5rem;max-height:86vh;overflow:auto}.sp-liste input{width:100%}
.sp-treffer{display:flex;flex-direction:column;gap:.3rem;margin-top:.6rem}
.sp-treffer-k{display:grid;grid-template-columns:auto 1fr;column-gap:.5rem;text-align:left;background:#1b1e22;border:1px solid var(--line);border-radius:8px;padding:.4rem .6rem;color:var(--text);font:inherit;cursor:pointer}
.sp-treffer-k:hover{border-color:var(--muted)}.sp-treffer-k.on{border-color:var(--acc)}
.sp-treffer-k small{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-punkt{width:.6rem;height:.6rem;border-radius:50%;background:#555;align-self:center}.sp-punkt.an{background:var(--ok);box-shadow:0 0 6px var(--acc-glow)}
.sp-kopf{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem}
.sp-kopf-name{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.sp-kopf-name h2{margin:0}
.sp-knoepfe{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.sp-chars{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .8rem}
.sp-char{position:relative;display:flex;flex-direction:column;text-align:left;background:#1b1e22;border:1px solid var(--line);border-radius:8px;padding:.35rem .7rem;color:var(--text);font:inherit;cursor:pointer}
.sp-char small{color:var(--muted);font-size:.78rem}.sp-char.on{border-color:var(--acc);box-shadow:0 0 8px var(--acc-glow)}
.sp-vm{position:absolute;top:-.4rem;right:-.4rem;background:var(--warn);color:#121416;border-radius:99px;font-size:.7rem;font-style:normal;font-weight:700;padding:0 .35rem}
.sp-grid{display:grid;grid-template-columns:minmax(0,auto) minmax(260px,1fr);gap:1rem;align-items:start}
@media (max-width:1200px){.sp-grid{grid-template-columns:1fr}}
.sp-inv-kopf{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.7rem}.sp-inv-kopf .sp-knoepfe{margin-left:auto}
.sp-tabs{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.sp-tabs button{background:transparent;border:0;color:var(--muted);padding:.25rem .7rem;font:inherit;cursor:pointer}.sp-tabs button.on{background:#2a2e36;color:var(--text)}
.sp-inv{--s:46px;display:inline-flex;flex-direction:column;gap:6px;background:#c6c6c6;padding:8px;border-radius:4px;max-width:100%;overflow:auto}
.sp-oben{display:flex;gap:8px;align-items:flex-end;margin-bottom:6px}.sp-ruest{display:grid;grid-template-columns:var(--s);gap:2px}
.sp-reihe-9{display:grid;grid-template-columns:repeat(9,var(--s));gap:2px}.sp-hotbar{margin-top:6px}
.sp-slot{position:relative;width:var(--s);height:var(--s);background:#8b8b8b;border:2px solid;border-color:#373737 #fff #fff #373737;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#222;font:700 .75rem/1 monospace}
.sp-slot img{width:100%;height:100%;image-rendering:pixelated;pointer-events:none}
.sp-slot.voll[style]{box-shadow:inset 0 -3px 0 var(--tier)}
.sp-slot:hover{background:#a0a0a0}.sp-slot.on{outline:2px solid var(--acc);outline-offset:-2px;z-index:1}
.sp-slot i{position:absolute;right:2px;bottom:1px;color:#fff;font-style:normal;font-size:.85rem;text-shadow:1px 1px 0 #3f3f3f;pointer-events:none}
.sp-slot.r:not(.voll)::after,.sp-slot.n:not(.voll)::after{color:#6b6b6b;font-size:1.1rem}
.sp-slot.r0:not(.voll)::after{content:"⛑"}.sp-slot.r1:not(.voll)::after{content:"👕"}.sp-slot.r2:not(.voll)::after{content:"👖"}.sp-slot.r3:not(.voll)::after{content:"👢"}.sp-slot.n:not(.voll)::after{content:"🛡"}
.sp-seite{display:flex;flex-direction:column;gap:1rem}.sp-seite .card{margin:0}.sp-seite h3{margin:.1rem 0 .4rem}
.sp-lore{background:#14161a;border:1px solid var(--line);border-radius:6px;padding:.4rem .6rem;font-size:.82rem;color:#c8c8ff;margin:.4rem 0}
.sp-werte{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:0}.sp-werte dt{color:var(--muted)}.sp-werte dd{margin:0}
.sp-liste-vm,.sp-prot{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem;font-size:.88rem}
.sp-dlg{background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;min-width:min(420px,92vw)}
.sp-dlg::backdrop{background:rgba(0,0,0,.6)}.sp-dlg label{display:block;margin:.5rem 0}.sp-dlg input,.sp-dlg select{width:100%}
.sp-dlg-knoepfe{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.8rem}
.sp-karte-kopf{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem}
.sp-tags{list-style:none;padding:0;margin:.3rem 0 0;display:flex;flex-direction:column;gap:.2rem;max-height:260px;overflow:auto;font-size:.85rem}
.sp-tags li{display:flex;justify-content:space-between;gap:.4rem;align-items:center}.sp-tagfilter{width:100%;margin:.3rem 0}
.sp-erfolge{list-style:none;padding:0;margin:.3rem 0 0;display:flex;flex-direction:column;gap:.25rem;max-height:420px;overflow:auto;font-size:.86rem}
.sp-erfolge li{display:grid;grid-template-columns:1.6rem 1fr auto;gap:.4rem;align-items:center;opacity:.65}.sp-erfolge li.ja{opacity:1}
.sp-erfolg-sym{font-size:1.1rem;text-align:center}.sp-erfolg-st{white-space:nowrap;color:var(--ok)}

/* ---- Hauptnavigation: Gruppen (oben als Aufklappmenü, ab 1280 px als Seitenleiste) ---- */
.navlink.on,.navgrp.on>summary{color:var(--acc)}
.navdrop a.on{background:rgba(68,214,44,.12);color:var(--acc)}
.navgrp>summary::after{content:" ▾";font-size:.75em;opacity:.7}
@media (min-width:1280px){
  :root{--nav-w:228px}
  body{padding-left:var(--nav-w)}
  header.top{position:fixed;left:0;top:0;bottom:0;width:var(--nav-w);z-index:40;flex-direction:column;align-items:stretch;
    justify-content:flex-start;flex-wrap:nowrap;gap:.6rem;padding:.6rem .7rem 1rem;overflow-y:auto;border-bottom:0;
    border-right:1px solid var(--line);box-shadow:none}
  header.top .brand{padding:.2rem .3rem .6rem;border-bottom:1px solid var(--line)}
  header.top nav{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:.1rem;font-size:.92rem}
  header.top nav>a,header.top nav>details>summary{display:block;padding:.4rem .55rem;border-radius:6px}
  header.top nav>a:hover,header.top nav>details>summary:hover{background:rgba(255,255,255,.04);text-decoration:none}
  .navgrp>summary{color:var(--muted);font-size:.8rem;font-weight:700;margin-top:.5rem}
  .navgrp>summary::after{content:""}
  .navgrp .navdrop{position:static;min-width:0;padding:.1rem 0 .3rem;background:none;border:0;box-shadow:none}
  .navgrp .navdrop a{padding:.35rem .55rem .35rem 1rem;font-weight:600}
  header.top .navme{margin-top:auto;border-top:1px solid var(--line);padding-top:.7rem!important}
  aside.chat{left:var(--nav-w)}
}
/* ---- Ruhigere Arbeitsfläche: Zwischenüberschriften normal geschrieben, Leuchten nur für Fokus und Hauptknopf ---- */
h2{text-transform:none;letter-spacing:0;font-size:1.05rem}
.card.server:hover{box-shadow:none;transform:none}
/* ---- Gemeinsamer Kartenkopf: Titel links, Aktionen/Status rechts ---- */
.kopf{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem}
.kopf>h2,.kopf>h3{margin:0}
.kopf .kopf-aktionen{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.badge.info{background:#16263a;color:#a9d1ff;border-color:rgba(74,158,255,.55)}
