/* Galaxy-Look: Weltraum-Hintergrund (CSS-Gradients), Glas-Karten, gruene Akzente. Mobile-first. */
:root{--fs-s:.82rem;--fs-xs:.78rem;--gap:8px;--r-s:10px;--ok:#25d366;--warn:#ffc94a;--info:#6aa8ff;--bg:#070a1c;--card:rgba(16,20,46,.62);--card2:rgba(26,32,70,.55);--bd:rgba(160,170,255,.17);--fg:#eaf0ff;--mut:#98a2c8;--acc:#25d366;--acc2:#7c5cff;--danger:#ff5d73;--r:18px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg);color-scheme:dark}
body{margin:0;min-height:100vh;color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
 background:radial-gradient(1100px 700px at 12% -8%,rgba(124,60,255,.40),transparent 62%),
 radial-gradient(900px 640px at 100% 8%,rgba(30,110,255,.32),transparent 62%),
 radial-gradient(1000px 760px at 55% 112%,rgba(196,60,200,.26),transparent 62%),
 radial-gradient(600px 400px at 0% 70%,rgba(20,160,200,.14),transparent 70%),var(--bg)}
#stars{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
a{color:var(--acc)}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
code{background:rgba(5,8,24,.7);padding:2px 7px;border-radius:7px;color:var(--acc);font-size:.9em;word-break:break-word}
small code,.muted small code{font-size:1em}
header.top{padding:26px 16px 18px;text-align:center}
.logo{width:58px;height:58px;margin:0 auto 8px;border-radius:50%;display:grid;place-items:center;font-size:30px;background:radial-gradient(circle at 35% 30%,#3df08c,#0f9d58 60%,#075e3a);box-shadow:0 0 28px rgba(37,211,102,.55),0 0 60px rgba(124,92,255,.35)}
header.top h1{margin:0;font-size:1.65rem;letter-spacing:.01em}
header.top p{margin:4px 0 0;color:var(--mut)}
.wrap{max-width:1100px;margin:0 auto;padding:0 14px 40px}
.card{background:var(--card);-webkit-backdrop-filter:blur(14px) saturate(130%);backdrop-filter:blur(14px) saturate(130%);border:1px solid var(--bd);border-radius:var(--r);box-shadow:0 8px 32px rgba(0,0,10,.35);padding:16px;margin:0 0 14px}
.card h2{margin:0 0 10px;font-size:1.05rem;display:flex;align-items:center;gap:8px}
.card h2 .n{font-size:.78rem;color:var(--mut);font-weight:400}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.cmd{background:var(--card2);border:1px solid var(--bd);border-radius:14px;padding:12px 14px}
.cmd p{margin:6px 0}.cmd small{color:var(--mut)}
.top2{display:flex;justify-content:space-between;gap:8px;align-items:center}
.badge{font-size:.75rem;padding:3px 9px;border-radius:99px;white-space:nowrap;background:rgba(124,92,255,.35)}
.badge.user{background:rgba(37,211,102,.28)}.badge.ga{background:rgba(60,120,255,.35)}.badge.ca{background:rgba(160,70,230,.4)}.badge.dev{background:rgba(255,80,100,.38)}
.status{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.status div{flex:1 1 140px;background:var(--card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--bd);border-radius:14px;padding:9px 13px}
.status b{display:block;color:var(--mut);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}
input[type=search],input[type=text],input[type=number],input[type=password],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=time],input[type=datetime-local],textarea,select{width:100%;padding:12px 14px;font:inherit;color:var(--fg);background:rgba(6,9,26,.65);border:1px solid var(--bd);border-radius:12px;outline:none}
textarea{min-height:90px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(37,211,102,.18)}
button,.btn{font:inherit;cursor:pointer;border:1px solid var(--bd);color:var(--fg);background:rgba(40,48,100,.55);padding:9px 14px;border-radius:12px;transition:transform .08s,background .15s}
button:active{transform:scale(.97)}
button.pri{background:linear-gradient(135deg,#25d366,#12a150);color:#04210f;border-color:transparent;font-weight:600}
button.dng{background:rgba(255,93,115,.18);border-color:rgba(255,93,115,.5);color:#ffb3be}
button.sm,.btn.sm{padding:5px 10px;font-size:.82rem;border-radius:9px}
button:disabled{opacity:.5;cursor:default}
.cp{padding:4px 10px;font-size:.78rem;border-radius:9px;color:var(--acc);border-color:rgba(37,211,102,.4);background:rgba(37,211,102,.08)}
.cp.done{background:var(--acc);color:#04210f}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid rgba(160,170,255,.09)}
.row:first-of-type{border-top:0}
.row .l{min-width:0}.row .l small{display:block;color:var(--mut);font-size:.8rem}
.row .r{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.stack{display:grid;gap:8px;padding:9px 0}
.sw{position:relative;display:inline-block;width:48px;height:28px;flex:none}
.sw input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.sw i{position:absolute;inset:0;border-radius:99px;background:rgba(120,130,190,.35);border:1px solid var(--bd);transition:.18s}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#dfe5ff;transition:.18s}
.sw input:checked+i{background:var(--acc);box-shadow:0 0 14px rgba(37,211,102,.6)}
.sw input:checked+i::after{transform:translateX(20px);background:#fff}
.sw input:disabled+i{opacity:.5}
.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 14px 12px;margin:0 -14px;scrollbar-width:none;position:sticky;top:0;z-index:5}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:none;text-decoration:none;color:var(--fg);padding:7px 14px;border-radius:99px;background:var(--card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--bd);font-size:.88rem}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;background:rgba(124,92,255,.22);border:1px solid var(--bd);font-size:.85rem}
.tag button{padding:0 4px;border:0;background:none;color:var(--mut);font-size:1rem;line-height:1}
.muted{color:var(--mut)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;max-width:92vw;background:rgba(14,18,44,.94);border:1px solid var(--acc);border-radius:14px;padding:11px 16px;z-index:50;transition:.2s;white-space:pre-wrap}
.toast.show{opacity:1;transform:translateX(-50%)}.toast.err{border-color:var(--danger)}
.modal{position:fixed;inset:0;z-index:60;display:none;place-items:center;background:rgba(3,5,18,.7);padding:18px}
.modal.show{display:grid}
.modal .box{max-width:380px;width:100%}
.sel{display:flex;gap:6px;flex-wrap:wrap}
.sel button.on{background:var(--acc);color:#04210f;border-color:transparent;font-weight:600}
.person{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid rgba(160,170,255,.09)}
.person .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pic{width:76px;height:76px;border-radius:50%;object-fit:cover;background:var(--card2);border:2px solid var(--acc2)}
.hide{display:none!important}
footer.ft{text-align:center;color:var(--mut);font-size:.82rem;padding:18px 0}
@media(min-width:760px){.wrap{padding:0 22px 50px}.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.dgrid .card{margin:0 0 0}.dgrid>div{display:grid;gap:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Uebersicht / Tabs */
.tabs{display:flex;gap:8px;margin:0 0 14px;position:sticky;top:0;z-index:6;padding:4px 0}
.tab{flex:1;padding:11px 10px;border-radius:14px;background:var(--card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-weight:500}
.tab.on{background:linear-gradient(135deg,rgba(37,211,102,.9),rgba(18,161,80,.9));color:#04210f;border-color:transparent;box-shadow:0 0 18px rgba(37,211,102,.35)}
.statgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 14px}
.stat{background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--bd);border-radius:16px;padding:12px 14px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;box-shadow:0 6px 24px rgba(0,0,10,.3)}
.stat .ic{grid-row:1/3;font-size:1.7rem;filter:drop-shadow(0 0 8px rgba(124,92,255,.7))}
.stat b{font-size:1.35rem;line-height:1.1}.stat small{color:var(--mut);font-size:.76rem}
.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid rgba(160,170,255,.09)}
.kv:first-of-type{border-top:0}.kv span{color:var(--mut)}.kv b{font-weight:500;text-align:right;word-break:break-word}
.feed{list-style:none;margin:0;padding:0}
.feed li{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid rgba(160,170,255,.09)}
.feed li:first-child{border-top:0}.feed .tx{flex:1;min-width:0;word-break:break-word}
.feed time{color:var(--mut);font-size:.78rem;white-space:nowrap}
.qa{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(160,170,255,.09)}
.qa:first-of-type{border-top:0}
.pane.hide{display:none}
@media(min-width:760px){.statgrid{grid-template-columns:repeat(4,1fr)}}
/* Tabellen / Formulare (Inhaber- & Nutzerbereich) */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl2{width:100%;border-collapse:collapse;font-size:.88rem}
.tbl2 th{text-align:left;color:var(--mut);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding:6px 8px;white-space:nowrap}
.tbl2 td{padding:8px;border-top:1px solid rgba(160,170,255,.09);vertical-align:middle}
.fld{display:grid;gap:4px;margin:0 0 10px}
.chips a.on{background:linear-gradient(135deg,rgba(37,211,102,.9),rgba(18,161,80,.9));color:#04210f;border-color:transparent}
a.btn{display:inline-block;text-decoration:none}
.wallet{font-weight:600;margin-bottom:10px}
.machine{display:flex;gap:10px;justify-content:center;margin:14px 0;padding:14px;border-radius:18px;background:rgba(6,9,26,.7);border:1px solid var(--bd);box-shadow:inset 0 0 30px rgba(124,92,255,.25)}
.reel{position:relative;width:min(26vw,96px);height:min(60vw,216px);border-radius:12px;background:rgba(255,255,255,.04);overflow:hidden}
.reel .strip{position:absolute;top:0;left:0;right:0;will-change:transform}
.reel .sym{height:min(20vw,72px);display:flex;align-items:center;justify-content:center;font-size:min(11vw,2.6rem);line-height:1;opacity:.7}
.reel .sym.mid{opacity:1;background:rgba(37,211,102,.12);border-block:1px solid rgba(37,211,102,.5)}
.reel.spin .sym{filter:blur(2.5px);opacity:.45}
.reel.spin .strip{filter:blur(1px)}
.slotres{text-align:center;font-weight:600;min-height:1.4em}.slotres.win{color:#7dffb0;text-shadow:0 0 12px rgba(37,211,102,.7)}
.quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pbar{margin-top:6px}.pbar small{color:var(--mut);font-size:.75rem}
.pb{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}.pb i{display:block;height:100%;border-radius:99px;background:#7c5cff}
.pb i.sat{background:#e6a14a}.pb i.joy{background:#e64a9b}.pb i.nrg{background:#25d366}
details summary{cursor:pointer;color:var(--mut);margin-top:10px}
@media (prefers-reduced-motion:reduce){.reel.spin .sym{filter:none}}

/* Cookie-Hinweis */
.cc{position:fixed;left:12px;right:12px;bottom:12px;max-width:560px;margin:0 auto;z-index:50;padding:14px 16px;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.cc p{margin:6px 0;font-size:.9rem}
.cc-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}

/* Fortschritt / Erfolge (Nutzerportal) */
.achgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px;margin-top:10px}
.ach{font-size:1.45rem;text-align:center;padding:7px 0;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--bd);cursor:help;user-select:none}
.ach.off{filter:grayscale(1);opacity:.32}
.ach.rare{border-color:#a78bfa;box-shadow:0 0 12px rgba(167,139,250,.45)}
.achfilter{gap:6px;flex-wrap:wrap}.achfilter select{flex:1 1 120px;min-width:0}
.ach.t-gold:not(.off){border-color:#facc15}.ach.t-platin:not(.off){border-color:#7dd3fc}.ach.t-diamant:not(.off){border-color:#c4b5fd}.ach.t-legendaer:not(.off){border-color:#fbbf24;box-shadow:0 0 10px rgba(251,191,36,.45)}
.statgrid.mini{margin:0 0 6px}.statgrid.mini .stat b{font-size:1.1rem}
.card h3{margin:14px 0 4px;font-size:.95rem}
/* Mobile-Feinschliff: schmale Bildschirme (Handys) */
@media(max-width:520px){
 .wrap{padding:0 10px 32px}
 header.top{padding:20px 12px 14px}header.top h1{font-size:1.4rem}
 .card{padding:13px;border-radius:16px}
 .row{flex-wrap:wrap}.row .l{flex:1 1 160px}.row .r{flex:0 1 auto;max-width:100%}
 .row .r select,.row .r input{max-width:100%}
 .kv{flex-wrap:wrap}.kv b{text-align:left}
 button.sm,.btn.sm{padding:8px 12px;min-height:40px}
 .chips{margin:0 -10px;padding:4px 10px 12px}
 .tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto}
 .stat{padding:10px 11px}.stat .ic{font-size:1.4rem}
 .cc-btns{flex-wrap:wrap}.cc-btns button{flex:1 1 auto}
}
/* Spieltische (Vier gewinnt u. a.) */
.tgrid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:5px;max-width:440px;margin:8px 0;padding:8px;border-radius:14px;background:rgba(40,70,170,.35)}
.tgrid .cell{aspect-ratio:1;border-radius:50%;border:0;padding:0;background:rgba(5,8,25,.65);display:flex;align-items:center;justify-content:center;font-size:clamp(1rem,6vw,1.7rem);line-height:1;color:inherit}
.tgrid.sq .cell{border-radius:10px}
.tgrid .cell.can{cursor:pointer}
.tgrid .cell.can:hover,.tgrid .cell.can:focus-visible{outline:2px solid rgba(255,255,255,.5)}
.tgrid .cell.last{box-shadow:0 0 0 2px rgba(255,255,255,.55)}
.tgrid .cell.win{box-shadow:0 0 0 3px #ffd54a}
.tgrid .cell:disabled{opacity:1;cursor:default}
/* Einzelspiele im Portal */
.play{margin:8px 0 10px;padding:10px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.play .playres{margin:8px 0 0;font-weight:600;min-height:1.2em}
/* LOTTO 6aus49 Schein (Portal) */
.schein{background:linear-gradient(180deg,#f5d547 0%,#e8c12e 100%);color:#1a1020;border-radius:14px;padding:12px;border:2px solid #c62828;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.schein-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px}
.schein-title{font-weight:800;font-size:1.15rem;color:#c62828;letter-spacing:.02em}
.schein-type{background:#c62828;color:#fff;border-radius:10px;padding:6px 10px;text-align:center;line-height:1.1;min-width:52px}
.schein-type b{display:block;font-size:1.35rem}.schein-type span{font-size:.72rem}
.schein-fields{display:flex;flex-direction:column;gap:8px;max-height:none;overflow:visible;padding:2px;margin:0 0 10px}
.tipfeld{background:#fff;border:2px solid #c62828;border-radius:10px;padding:6px;cursor:pointer}
.tipfeld.on{box-shadow:0 0 0 3px rgba(198,40,40,.35);cursor:default}
.tipfeld.compact{padding:8px 10px}
.tipfeld-h{font-size:.78rem;font-weight:700;color:#c62828;margin:0 0 4px}
.tipfeld-sum{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:22px}
.tipchip{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:#c62828;color:#fff;font-size:.72rem;font-weight:700}
.tipfeld-clear{margin-top:6px}
.tipgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.tipn{padding:0;margin:0;min-height:26px;font-size:.72rem;border-radius:4px;border:1px solid #f0c0c0;background:#fff8f0;color:#c62828;font-weight:600;line-height:1}
.tipn.sel{background:#c62828;color:#fff;border-color:#8e0000}
.schein-panel,.schein-opts,.schein-quick{background:rgba(255,255,255,.92);border:1px solid #e0a8a8;border-radius:10px;padding:8px 10px;margin:0 0 8px;color:#1a1020}
.schein-panel b,.schein-opts b,.schein-quick b{display:block;color:#c62828;font-size:.85rem;margin:0 0 4px}
.schein-los-num{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.15rem;font-weight:700;letter-spacing:.12em;color:#1a1020}
.schein-sz{font-size:.85rem;color:#c62828;font-weight:700;margin:2px 0 6px}
.schein-optbar{display:flex;flex-wrap:wrap;gap:6px}
.schein-optbar .sm.on,.schein-quick .sm.on{background:#c62828;color:#fff;border-color:#8e0000}
.schein-price{font-weight:800;color:#c62828;font-size:1.05rem;margin:4px 0 8px;text-align:right}
.schein .hint{color:#6a4050!important;font-size:.78rem;margin:6px 0 0}
.schein .bar{margin-top:4px}
.schein .bar button{background:linear-gradient(180deg,#e53935,#c62828);color:#fff;border-color:#8e0000;font-weight:600}
.schein .bar button.pri{background:linear-gradient(180deg,#43a047,#2e7d32);border-color:#1b5e20;color:#fff}
@media(max-width:520px){.tipn{min-height:24px;font-size:.68rem}}
.dice{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.dice .die{font-size:2.2rem;line-height:1;padding:6px 8px;border-radius:12px;background:rgba(255,255,255,.07);border:2px solid transparent;color:inherit}
.dice .die.sel{border-color:#ffd54a;transform:translateY(-3px)}
.dice .die:disabled{opacity:1;cursor:default}
/* Schiffe versenken: zwei Gewässer nebeneinander (mobil untereinander) */
.seas{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;max-width:900px}
.tgrid.dense{gap:3px;padding:6px}
.tgrid.dense .cell{font-size:clamp(.8rem,4vw,1.2rem);border-radius:6px}
/* Formulare an Spieltischen (Stadt-Land-Fluss, Wortkette, Wer bin ich?) */
.tform{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;max-width:640px}
.tform input{width:100%}
/* Kartenspiele (Spieltische) */
.cardtop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
.pcard{display:inline-flex;align-items:center;justify-content:center;min-width:2.6em;padding:8px 10px;border-radius:10px;background:#f4f1e8;color:#14182b;font-weight:700;font-size:1.05rem;border:2px solid transparent;line-height:1.1}
.cardtop .pcard{font-size:1.5rem;min-height:2.2em}
button.pcard.hand{cursor:pointer}
button.pcard.hand.pri{border-color:#ffd54a;transform:translateY(-3px)}
button.pcard.hand:disabled{opacity:.55;cursor:default;transform:none}

/* ---------- Responsiv (Patch 22): Handys 320–430 px, Tablets, Desktop, große Bildschirme ---------- */
img,video{max-width:100%;height:auto}
.wrap{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
.card p,.card li,.card small,.kv b,.row .l{overflow-wrap:anywhere}
input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--acc);vertical-align:middle;flex:none;margin:0 4px 0 0}
input[type=range]{accent-color:var(--acc)}
input[type=file]{max-width:100%;font:inherit;color:var(--mut)}
input[type=file]::file-selector-button{font:inherit;color:var(--fg);background:rgba(40,48,100,.55);border:1px solid var(--bd);border-radius:10px;padding:8px 12px;margin-right:10px;cursor:pointer}
progress{accent-color:var(--acc);height:12px}
a.btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;color:var(--fg)}
header.top .acts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:10px 0 0}
.chips{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 22px),transparent)}
.chips a{display:inline-flex;align-items:center;min-height:38px}
.legal-links a{display:inline-block;padding:6px 4px}
/* Login-Seiten (Nutzer, Inhaber, Menü-Code) */
.login{min-height:100vh;display:grid;place-items:center;padding:18px 12px}
.login>div,.login>form{width:min(100%,400px)}
.login form{text-align:center;width:100%}
.login input{margin-top:10px;text-align:center;font-size:1.1rem}
.login input.code{letter-spacing:.35em;font-size:1.6rem}
.login .err{color:#ff8b9b;margin-top:12px}.login .ok{color:#8bffb0;margin-top:12px}
.login small a{color:var(--mut)}.login details{text-align:center}
.login summary{cursor:pointer;color:var(--mut);font-size:.9rem;padding:6px 0}
/* Touch-Geräte & Tablets: Ziele mind. ~44 px, Schalter größer */
@media (pointer:coarse),(max-width:1024px){
 button,.btn,select,input[type=text],input[type=number],input[type=search],input[type=password],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=time],input[type=datetime-local]{min-height:44px}
 button.sm,.btn.sm{min-height:40px;padding:8px 12px}
 .chips a{min-height:42px}
 .sw{width:54px;height:32px}.sw i::after{width:24px;height:24px}.sw input:checked+i::after{transform:translateX(22px)}
 .legal-links a{padding:11px 6px}
 .tag button{min-width:32px;min-height:32px}
 .feed li{padding:10px 0}
 label:not(.sw):has(> input[type=checkbox]){min-height:40px;display:flex;align-items:center;gap:8px}
}
/* sehr schmale Handys (320–359 px) */
@media(max-width:359px){
 body{font-size:15px}
 .wrap{padding-left:8px;padding-right:8px}.chips{margin:0 -8px;padding:4px 8px 12px}
 .card{padding:11px}
 .statgrid{grid-template-columns:1fr 1fr;gap:8px}
 .stat{grid-template-columns:1fr;grid-template-rows:auto}.stat .ic{grid-row:auto;font-size:1.2rem}
 .grid{grid-template-columns:1fr}
}
/* Tablets/Desktop: Tabs umbrechen statt versteckt seitlich zu scrollen */
@media(min-width:900px){
 .chips{flex-wrap:wrap;overflow:visible;-webkit-mask-image:none;mask-image:none;margin:0;padding:6px 0 12px}
}
/* große Bildschirme: Profil-Karten zweispaltig */
@media(min-width:1400px){#app.cols{columns:2;column-gap:14px}#app.cols>.card{break-inside:avoid;display:inline-block;width:100%}}
@media(min-width:1600px){
 .wrap{max-width:1280px}
 body{font-size:17px}
 .grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
}

/* ---------- Design-System (Patch 23): einheitliche Bausteine für alle Portal-Tabs ---------- */
/* Leisten: Buttons/Felder nebeneinander, umbrechend */
.bar{display:flex;flex-wrap:wrap;gap:var(--gap);align-items:center}
.bar.end{align-items:flex-end}.bar.top{align-items:flex-start}.bar.stretch{align-items:stretch}
.bar.tight{gap:6px}.bar.wide{gap:14px}
.start{justify-content:flex-start;flex-wrap:wrap}
/* Hinweise, Fußnoten, Leerzustände */
.hint{font-size:var(--fs-s);line-height:1.45}
.muted.hint{color:var(--mut)}
.note{font-size:var(--fs-xs);color:var(--mut)}
.empty{color:var(--mut);font-style:italic;padding:6px 0}
/* Abstände */
.mt{margin-top:8px}.mt2{margin-top:14px}.my{margin-top:8px;margin-bottom:8px}.my-s{margin-top:4px;margin-bottom:4px}
.tr{text-align:right}.tc{text-align:center}
/* Feldbreiten (auf Handys immer volle Breite möglich) */
.w-auto{width:auto!important}.w-full{width:100%}
.w-xs{max-width:100px}.w-s{max-width:170px}.w-m{max-width:230px}.w-l{max-width:330px}
@media(max-width:359px){.w-m,.w-l{max-width:100%}}
/* Zustimmungs-Zeile (Checkbox + Text) */
.agree{display:flex;gap:8px;align-items:flex-start;margin:8px 0}
/* Status-Pillen */
.pill{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);padding:2px 9px;border-radius:99px;border:1px solid var(--bd);background:rgba(124,92,255,.18);white-space:nowrap}
.pill.ok{background:rgba(37,211,102,.16);border-color:rgba(37,211,102,.45);color:#9ff5c2}
.pill.warn{background:rgba(255,201,74,.14);border-color:rgba(255,201,74,.45);color:#ffe3a1}
.pill.bad{background:rgba(255,93,115,.15);border-color:rgba(255,93,115,.45);color:#ffb3be}
.pill.info{background:rgba(106,168,255,.15);border-color:rgba(106,168,255,.45);color:#bcd6ff}
/* Einheitliche Abschnittsüberschriften in Karten */
.card h3{font-size:.95rem;color:var(--fg);display:flex;align-items:center;gap:6px}
/* Fokus sichtbar (Tastatur) */
button:focus-visible,.btn:focus-visible,a:focus-visible,.chips a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

/* ---------- Sidebar-Navigation (Patch 25): Nutzerbereich "Meine Instanz" – Desktop feste Seitenleiste, mobil einklappbar ---------- */
.navtoggle{display:flex;align-items:center;width:100%;margin:4px 0 8px;padding:10px 14px;border-radius:12px;text-align:left;font-size:.95rem;background:var(--card);border:1px solid var(--bd);color:var(--fg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.chips.sidenav{display:none;flex-direction:column;overflow:visible;flex-wrap:nowrap;gap:4px;margin:0 0 12px;padding:10px;position:static;border-radius:14px;background:var(--card);border:1px solid var(--bd);box-shadow:0 0 22px rgba(124,140,255,.12);-webkit-mask-image:none;mask-image:none}
.chips.sidenav.open{display:flex}
.chips.sidenav a{display:flex;align-items:center;border-radius:10px;min-height:44px;padding:8px 12px;background:transparent;border-color:transparent}
.chips.sidenav a:hover{background:rgba(124,140,255,.12)}
.chips.sidenav a.on{background:linear-gradient(135deg,rgba(37,211,102,.9),rgba(18,161,80,.9));color:#04210f;box-shadow:0 0 14px rgba(37,211,102,.35)}
.navgrp{display:block;margin:8px 4px 2px;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;opacity:.65}
.navgrp:first-child{margin-top:0}
@media(min-width:900px){
 .shellx{display:grid;grid-template-columns:230px minmax(0,1fr);column-gap:18px;align-items:start}
 .shellx>.navtoggle{display:none}
 .chips.sidenav,.chips.sidenav.open{display:flex;position:sticky;top:12px;margin:6px 0 0;padding:10px;max-height:calc(100vh - 24px);overflow-y:auto;flex-wrap:nowrap}
 .mainx{min-width:0;padding-top:6px}
}
@media(min-width:1400px){.shellx #app.cols{columns:1}.shellx #app.cols>.card{display:block}}
.achstyle{font-weight:700;margin:0 0 8px}.achgrid .ach:not(.off){border-color:var(--ach-c,var(--bd))}
/* Web-App-Hinweis (pwa.js) */
.pwa-hint{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:10px;max-width:min(560px,calc(100vw - 20px));padding:10px 12px;border-radius:16px;background:rgba(14,16,48,.92);border:1px solid rgba(124,247,255,.45);box-shadow:0 0 22px rgba(124,247,255,.25),0 10px 30px rgba(0,0,0,.5);backdrop-filter:blur(10px)}
.pwa-hint .pwa-ic{font-size:1.4rem}.pwa-hint .pwa-tx{flex:1;font-size:.92rem}
html.pwa body{padding-top:env(safe-area-inset-top)}

/* V3: animiertes Haustier (Portal) */
.pet-stage{position:relative;height:150px;margin:-4px 0 6px;border-radius:14px;background:radial-gradient(circle at 50% 40%,rgba(120,110,255,.18),transparent 70%);overflow:hidden;user-select:none}
.pet-body{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);display:inline-block;animation:petHop 1.1s ease-in-out infinite}
.pet-ani{display:inline-block;font-size:72px;line-height:1;animation:petBreathe 2.2s ease-in-out infinite;transform-origin:50% 100%}
.pet-acc{position:absolute;font-size:34px;line-height:1;left:50%;transform:translateX(-50%);top:-20px}
.pet-acc.acc-brille{top:18px;font-size:36px}.pet-acc.acc-halsband{top:auto;bottom:-6px;font-size:22px}.pet-acc.acc-schleife{left:78%;top:-6px;font-size:26px}.pet-acc.acc-umhang{left:88%;top:auto;bottom:0;font-size:28px}
.pet-shadow{position:absolute;left:50%;bottom:26px;width:90px;height:12px;margin-left:-45px;border-radius:50%;background:rgba(0,0,0,.35);animation:petShadow 1.1s ease-in-out infinite}
.pet-fx{position:absolute;bottom:50px;font-size:24px;opacity:0;animation:petFloat 2.4s ease-in infinite}
.pet-fx.f1{left:24%}.pet-fx.f2{left:70%;animation-delay:1.2s}
.pet-mood{position:absolute;right:10px;top:8px;opacity:.75}
.mood-tired .pet-body,.mood-tired .pet-shadow{animation:none}.mood-tired .pet-ani{animation-duration:3.6s}
.mood-hungry .pet-body{animation:petWobble 1.6s ease-in-out infinite}
.mood-happy .pet-body{animation-duration:.8s}.mood-happy .pet-shadow{animation-duration:.8s}
.mood-bored .pet-body{animation:petSway 3s ease-in-out infinite}.mood-bored .pet-shadow{animation:none}
@keyframes petHop{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-18px)}}
@keyframes petShadow{0%,100%{transform:scaleX(1);opacity:.35}50%{transform:scaleX(.75);opacity:.2}}
@keyframes petBreathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.04,.96)}}
@keyframes petWobble{0%,100%{transform:translate(-50%,0) rotate(0)}25%{transform:translate(-50%,0) rotate(-6deg)}75%{transform:translate(-50%,0) rotate(6deg)}}
@keyframes petSway{0%,100%{transform:translate(-56%,0)}50%{transform:translate(-44%,0)}}
@keyframes petFloat{0%{opacity:0;transform:translateY(0) scale(.7)}20%{opacity:1}100%{opacity:0;transform:translateY(-90px) scale(1.1)}}
@media(prefers-reduced-motion:reduce){.pet-body,.pet-ani,.pet-fx,.pet-shadow{animation:none!important}.pet-fx.f1{opacity:1}}
