/* Fortsetzung von css/cloud.css – aufgeteilt wegen der Dateigröße (Verbesserungs-Backlog
   Punkt 8), wird direkt danach eingebunden; Reihenfolge der Regeln unverändert. */
/* Öffentliche Seite „Alle Events“ eines Veranstalters (?alle=…, siehe CloudViewer.bootOrg) */
.cOrg{max-width:760px;margin:0 auto;padding:22px 16px 40px;}
.cOrgHead{display:flex;align-items:center;gap:14px;margin:6px 0 22px;}
.cOrgHead h1{margin:0;font-size:24px;line-height:1.2;}
.cOrgLogo{width:52px;height:52px;border-radius:14px;overflow:hidden;flex:none;display:flex;align-items:center;justify-content:center;background:var(--surface-soft, #f4f3ee);}
.cOrgLogo img,.cOrgLogo svg{width:100%;height:100%;object-fit:contain;}
.cOrgList{display:flex;flex-direction:column;gap:10px;}
.cOrgEv{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"st go" "name go" "meta go";gap:2px 12px;align-items:center;padding:14px 16px;border:1px solid #e6e4dc;border-radius:14px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 1px 2px rgba(13,21,18,.05);}
.cOrgEv:hover{border-color:#0d6b5c;}
.cOrgEv b{grid-area:name;font-size:16px;}
.cOrgEv .cMuted{grid-area:meta;font-size:13px;}
.cOrgSt{grid-area:st;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6b7570;}
.cOrgEv.live{border-color:#0d6b5c;box-shadow:0 0 0 3px rgba(13,107,92,.12);}
.cOrgEv.live .cOrgSt{color:#0d6b5c;}
.cOrgSt i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.25);}
.cOrgEv.done{opacity:.8;}
.cOrgActs{grid-area:go;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;}
.cOrgGo{font-weight:700;font-size:13px;color:#0d6b5c;white-space:nowrap;text-decoration:none;}
.cOrgGo::after{content:"";position:absolute;inset:0;border-radius:14px;} /* ganze Karte klickbar */
.cOrgReg{position:relative;z-index:1;}
@media (max-width:520px){.cOrgEv{grid-template-columns:1fr;grid-template-areas:"st" "name" "meta" "go";}.cOrgActs{justify-content:flex-start;margin-top:6px;}}
/* Teilen-Dialog: Umschalter „Dieses Event“ / „Alle Events“ */
.cScope{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--line, #e6e4dc);border-radius:11px;background:var(--surface-soft, #f4f3ee);margin:0 0 12px;}
.cScope button{border:0;background:transparent;padding:6px 14px;border-radius:8px;font:inherit;font-size:13px;font-weight:700;color:var(--muted, #6b7570);cursor:pointer;}
.cScope button.on{background:#fff;color:var(--ink, #111);box-shadow:0 1px 2px rgba(0,0,0,.08);}

/* hidden-Attribut gilt immer, auch wenn eine Klasse display setzt */
.cCheck[hidden], .cRadio[hidden], .cRow[hidden] { display: none !important; }

/* Spielerprofile (Turnierleitung + Spieler-Bereich) */
.cPfAvatar{--s:44px;width:var(--s);height:var(--s);flex:0 0 var(--s);border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;background:var(--accent-soft, #e3efe9);color:var(--accent, #0d6b5c);font-weight:800;font-size:calc(var(--s) * .36);letter-spacing:.02em;}
.cPfForm label{display:block;margin-top:10px;}
.cPfForm h4.cGroupLabel{margin-top:18px;}
.cPfPhoto{display:flex;align-items:center;gap:14px;margin-bottom:6px;}
.cPfPhoto > div{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.cPfUpload{margin:0 !important;cursor:pointer;display:inline-flex !important;align-items:center;justify-content:center;}
.cPfGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
.cPfGrid label{margin-top:10px;}
.cPfGrid input,.cPfGrid select{width:100%;}
@media (max-width:560px){.cPfGrid{grid-template-columns:1fr;}}
.cPfSection{background:var(--card, #fff);border:1px solid var(--line, #e6e4dc);border-radius:16px;padding:16px 18px;margin-bottom:22px;}
.cPfHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.cPfHead h3{margin:0;font-size:16px;}
.cPfCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;}
.cPfCard{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line, #e6e4dc);background:#fff;border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;transition:border-color .15s, box-shadow .15s;}
.cPfCard:hover{border-color:var(--accent, #0d6b5c);box-shadow:0 2px 8px rgba(0,0,0,.06);}
.cPfCardTxt{flex:1;min-width:0;display:flex;flex-direction:column;}
.cPfCardTxt b,.cPfCardTxt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cPfCardTxt small{color:var(--muted, #6b7570);font-size:12px;}
.cPfBadge{flex:none;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:#fff4dc;color:#8a5a00;}
.cPfBadge.ok{background:#e3f4ea;color:#17663a;}
.cPfBadge.off{background:var(--surface-soft, #f1efe7);color:var(--muted, #6b7570);}
.cPfStatusRow{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.cPfStatsHead{font-size:16px;margin:4px 0 12px;}
.cPortal{max-width:620px;}
.cPortalHead{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.cPortalHead > div{flex:1;min-width:0;}
.cPortalHead h1{margin:0 !important;}
.cPortalHead .btn{margin-top:0 !important;}
.cPortalSoon h3{margin:0 0 6px;font-size:15px;}
.cPortalSoon ul{margin:0;padding-left:18px;color:var(--muted, #6b7570);line-height:1.7;}
.cOrgPlayer{text-align:center;margin:18px 0 0;font-size:13.5px;}
.cOrgPlayer a{font-weight:700;}

/* Spieler-Bereich: Meine Spiele, Anmeldung, Ergebnisse */
.cPhTabs{display:flex;flex-wrap:wrap;margin:0 0 16px;}
.cPhTabs button{display:inline-flex;align-items:center;gap:6px;}
.cPhCount{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--accent, #0d6b5c);color:#fff;font-size:11px;font-weight:800;}
.cPhEvent{max-width:none;padding:0;margin:0 0 18px;}
.cPhEvName{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 4px;font-size:16px;}
.cPhEvName .linkBtn{font-size:12.5px;}
.cPhEvent .cCtHead span + span{margin-left:auto;}
.cPhList{display:flex;flex-direction:column;gap:10px;margin-bottom:10px;}
.cPhReg{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--line, #e6e4dc);border-radius:14px;padding:12px 14px;background:#fff;}
.cPhReg .btn{margin:0 !important;}

/* Öffentliche Spielerprofile */
.cPbHead{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted, #6b7570);margin:26px 0 10px;}
.cPbCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;}
.cPbCards .cPfCard{text-decoration:none;color:inherit;}
.cPbCard{background:var(--card, #fff);border:1px solid var(--line, #e6e4dc);border-radius:18px;padding:18px;margin-bottom:14px;}
.cPbTop{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.cPbTop h2{margin:0 0 4px;font-size:24px;letter-spacing:-.02em;}
.cPbLinks{margin-top:10px;gap:8px;flex-wrap:wrap;}
.cPbBio{margin:14px 0 0;line-height:1.6;}
.cPb .cPlList a{color:inherit;text-decoration:none;}
.cPb .cPlList a:hover b{text-decoration:underline;}

/* Partner-Link nach einer Team-Anmeldung */
.cRegHint{margin:2px 0 4px;}
.cRegPartner h2{font-size:18px;text-transform:none;letter-spacing:-.01em;color:var(--text);margin:0 0 6px;}
.cRegPartner p{margin:0 0 10px;font-size:14px;line-height:1.5;}
.cRegShare{margin:10px 0 6px;gap:8px;flex-wrap:wrap;}
.cRegShare .btn{text-decoration:none;}

/* Bild zuschneiden/einpassen (js/image-crop.js) */
.icWrap{display:flex;justify-content:center;margin:4px 0 12px;}
.icFrame{position:relative;overflow:hidden;border-radius:14px;cursor:grab;touch-action:none;
  background:repeating-conic-gradient(#eceef2 0% 25%,#f7f8fa 0% 50%) 0 0/18px 18px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.icFrame.round{border-radius:50%;}
.icFrame:active{cursor:grabbing;}
.icImg{position:absolute;max-width:none;user-select:none;pointer-events:none;}
.icTools{display:flex;align-items:center;gap:10px;max-width:320px;margin:0 auto 10px;}
.icTools input{flex:1;accent-color:var(--accent, #5b4e9b);}
.icBtns{justify-content:center;gap:8px;margin-bottom:6px;}
.cPfPhoto .cPfAvatar{cursor:pointer;}

/* Regelwerk (js/rules-book.js) im Dialog */
.rulesBook section{margin:0 0 14px;}
.rulesBook h4{margin:0 0 6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.rulesBook ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px;font-size:14px;line-height:1.5;}

/* Event-Chat (js/cloud-chat.js) */
.cChatPage{max-width:640px;}
.cChatBox{background:var(--card,#fff);border:1px solid var(--line);border-radius:18px;padding:12px;height:min(60vh,520px);overflow-y:auto;display:flex;flex-direction:column;gap:6px;}
.cChatBox.admin{height:min(46vh,420px);margin-top:12px;}
.cChatEmpty{margin:auto;color:var(--muted);font-size:14px;}
.cChatDay{align-self:center;font-size:11px;font-weight:700;color:var(--muted);background:#ededf2;border-radius:99px;padding:2px 10px;margin:6px 0;}
.cChatMsg{display:flex;}
.cChatMsg.mine{justify-content:flex-end;}
.cChatBubble{max-width:78%;background:#f1f2f5;border-radius:14px 14px 14px 4px;padding:7px 11px;display:flex;flex-direction:column;gap:2px;font-size:14.5px;line-height:1.4;overflow-wrap:anywhere;}
.cChatBubble b{font-size:12px;color:var(--accent,#5b4e9b);}
.cChatBubble small{font-size:10.5px;color:var(--muted);align-self:flex-end;}
.cChatMsg.mine .cChatBubble{background:var(--accent,#5b4e9b);color:#fff;border-radius:14px 14px 4px 14px;}
.cChatMsg.mine .cChatBubble small,.cChatMsg.mine .cChatBubble .linkBtn{color:rgba(255,255,255,.8);}
.cChatMsg.org:not(.mine) .cChatBubble{background:var(--pink-soft, #fbe9ed);}
.cChatForm{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.cChatForm input,.cChatForm textarea{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid #dcdce4;border-radius:12px;background:#fff;box-sizing:border-box;}
.cChatSend{display:flex;gap:8px;align-items:flex-end;}
.cChatSend textarea{flex:1;resize:none;min-height:44px;max-height:140px;}
.cChatSend .btn{margin:0 !important;height:44px;}
.cPhLinks{display:inline-flex;gap:12px;}

/* Rangliste auf „Alle Turniere“ */
.cOrgTabs{margin:0 0 16px;}
.cRankTable td.pos{font-weight:800;color:var(--muted);width:36px;}
.cRankTable tr.top1 td.pos{color:#c9a227;}.cRankTable tr.top2 td.pos{color:#8e98a5;}.cRankTable tr.top3 td.pos{color:#b8733f;}
.cRankTable a{color:inherit;font-weight:700;}

/* Event-Auswertung (js/event-stats.js) */
.stGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:6px 0 14px;}
.stCard{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card,#fff);}
.stCard h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.stCard dl{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:0;font-size:13.5px;}
.stCard dt{color:var(--muted);}
.stCard dd{margin:0;font-weight:700;text-align:right;}

/* Einstellungen & Posteingang als eigene Seiten (cloud-mailbox.js) */
.cDashHeadR .cIconBtn.on { background: var(--pink, #f2b9c4); color: var(--on-pink, var(--ink)); }
.mbPage { max-width: 1100px; }
.mbHead { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.mbHead h2 { margin: 0 0 4px; font-family: var(--font-display); font-size: 22px; color: var(--ink); }
.mbHead p { margin: 0; }
.mbSubNav { display: inline-flex; gap: 4px; padding: 4px; border-radius: 12px; background: var(--surface, #ebe9e1); margin-bottom: 18px; }
.mbSubNav button { display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; padding: 8px 14px; border-radius: 9px; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--muted); cursor: pointer; }
.mbSubNav button.on { background: var(--pink, #f2b9c4); color: var(--on-pink, var(--ink)); }
.mbMsg { margin: 0 0 14px; }
.mbStatus { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--surface, #ebe9e1); color: var(--text); font-size: 13.5px; line-height: 1.5; margin-bottom: 16px; }
.mbStatus svg { flex: none; margin-top: 2px; }
.mbStatus.on { background: var(--accent-soft); color: var(--accent-strong); }
.mbCols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; align-items: start; }
.mbCols .cPanel { margin: 0; }
.cForm.cPanel > div, .mbCols .cForm > div { margin-bottom: 12px; }
.mbHostPort { display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 10px; }
.mbHostPort > div { min-width: 0; }
.mbActions { margin-top: 16px; }
.mbTest { margin-top: 16px; }
.mbTestList { list-style: none; margin: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font-size: 13.5px; }
.mbTestList li { display: flex; gap: 8px; align-items: center; padding: 3px 0; }
.mbTestList li.ok { color: var(--accent-strong); }
.mbTestList li.bad { color: var(--danger); }
.mbTpl { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 12px; }
.mbKinds, .mbList { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--card); }
.mbKinds li + li, .mbList li + li { border-top: 1px solid var(--line); }
.mbKinds button, .mbList button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 10px; border: 0; background: none; padding: 11px 14px; font: inherit; text-align: left; cursor: pointer; color: var(--text); }
.mbKinds button:hover, .mbList button:hover { background: #f7f6f2; }
.mbKinds button.on, .mbList button.on { background: var(--pink-soft, #fbe6ea); box-shadow: inset 3px 0 0 var(--pink, #f2b9c4); }
.mbKinds b { display: block; font-size: 13.5px; color: var(--ink); }
.mbKinds small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.mbEditor .cPanel { margin: 0; }
.mbEdHead { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.mbEdHead h3 { margin: 0 0 2px; font-family: var(--font-display); font-size: 17px; color: var(--ink); }
.mbEdHead p { margin: 0; }
.mbEditor textarea { width: 100%; font: inherit; font-size: 14px; line-height: 1.5; }
.mbVars { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0 8px; }
.mbVars .cChip { border: 0; cursor: pointer; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.mbVars .cChip:hover { background: var(--pink, #f2b9c4); color: var(--on-pink, var(--ink)); }
.mbPreview { margin-top: 16px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--card); }
.mbPrevSub { padding: 10px 14px; border-bottom: 1px solid var(--line); }
.mbPreview iframe { display: block; width: 100%; height: 560px; border: 0; background: #f6f7f9; }
.mbInboxTools { display: flex; gap: 8px; align-items: center; }
.mbInboxTools select { min-width: 200px; }
.mbInbox { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 16px; align-items: start; }
.mbCount { margin: 0 0 8px; }
.mbList button { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "from date" "subj ev"; row-gap: 3px; }
.mbList .mbFrom { grid-area: from; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mbList .mbDate { grid-area: date; color: var(--muted); font-size: 12px; }
.mbList .mbSubj { grid-area: subj; color: var(--muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mbList .mbEv { grid-area: ev; display: flex; justify-content: flex-end; }
.mbList button.unread { box-shadow: inset 3px 0 0 var(--accent, #5b4e9b); }
.mbList button.unread .mbFrom, .mbList button.unread .mbSubj { font-weight: 700; color: var(--ink); }
.mbAns { color: var(--accent-strong); }
.mbEmpty { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 40px 16px; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); }
.mbMsgView h3 { margin: 0 0 4px; font-family: var(--font-display); font-size: 18px; color: var(--ink); }
.mbRegs { margin: 8px 0 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.mbText { white-space: pre-wrap; word-break: break-word; font-size: 14.5px; line-height: 1.6; padding-top: 12px; border-top: 1px solid var(--line); }
.mbMsgCol .cPanel textarea { width: 100%; }
@media (max-width: 860px) {
  .mbTpl, .mbInbox { grid-template-columns: 1fr; }
  .mbInboxTools { width: 100%; }
  .mbInboxTools select { flex: 1; min-width: 0; }
}
.mbFilter { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.mbFilter button { border: 1px solid var(--line); background: var(--card); border-radius: 99px; padding: 5px 12px; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--muted); cursor: pointer; }
.mbFilter button.on { background: var(--pink, #f2b9c4); border-color: var(--pink, #f2b9c4); color: var(--on-pink, var(--ink)); }
.mbSt { display: inline-flex; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: var(--surface, #ebe9e1); color: var(--muted); white-space: nowrap; }
.mbSt.ok { background: var(--accent-soft); color: var(--accent-strong); }
.mbSt.bad { background: #fdecea; color: var(--danger); }
.mbStatus.bad { background: #fdecea; color: var(--danger); }
.mbMeta { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 4px 0 12px; font-size: 13.5px; }
.mbMeta dt { color: var(--muted); font-weight: 600; }
.mbMeta dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.mbSentFrame { display: block; width: 100%; height: 480px; border: 1px solid var(--line); border-radius: 12px; background: #f6f7f9; }
.mbResend { display: flex; gap: 8px; }
.mbResend input { flex: 1; min-width: 0; }
.mbDesign { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 12px; }
.mbDesign .cPanel { margin: 0; }
.mbColors { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.mbColor.off { opacity: .4; }
.mbColorIn { display: flex; gap: 8px; align-items: center; }
.mbColorIn input[type=color] { width: 42px; height: 38px; padding: 2px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); cursor: pointer; flex: none; }
.mbColorIn input[type=text] { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }
.mbDesignPrev { margin: 0; }
.mbDesignPrev iframe { height: 620px; }
@media (max-width: 860px) { .mbDesign { grid-template-columns: 1fr; } }
.mbDesign .cForm label.cCheck { display: flex; flex-wrap: nowrap; gap: 8px; align-items: flex-start; font-size: 13px; font-weight: 500; color: var(--text); margin: 2px 0 16px; line-height: 1.45; }
.mbDesign .cForm label.cCheck input { margin-top: 2px; flex: none; }
.mbDesign .cForm label.cCheck span { flex: 1; min-width: 0; }
/* Signatur-Bausteine und App & Marke (cloud-settings-extra.js) */
.mbSubNav { flex-wrap: wrap; }
.sgAdd { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.sgList { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sgBlock { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fbfbfc; display: flex; flex-direction: column; gap: 8px; }
.sgHead { display: flex; justify-content: space-between; align-items: center; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.sgHead span { display: flex; gap: 2px; }
.sgBlock textarea, .sgBlock input[type=text] { width: 100%; }
.sgOpts { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; font-size: 13px; color: var(--text); }
.sgOpts input[type=number] { width: 72px; }
.sgOpts .cCheck { display: inline-flex; gap: 6px; align-items: center; margin: 0; }
.sgColor { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.sgColor input[type=color] { width: 30px; height: 28px; padding: 1px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }
.sgImg { display: flex; gap: 12px; align-items: center; }
.sgImg img { max-height: 60px; object-fit: contain; }
.abRow { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.abLogoBox { width: 44px; height: 44px; border-radius: 12px; background: #22212c; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; }
.abLogoBox img, .abLogoBox svg, .abIcon img, .abIcon svg { width: 100%; height: 100%; object-fit: contain; display: block; }
.abIcon { width: 96px; height: 96px; border-radius: 22px; overflow: hidden; background: #22212c; box-shadow: var(--shadow); display: inline-flex; }
.abIcon.small { width: 32px; height: 32px; border-radius: 7px; }
.abIcons { margin-bottom: 12px; }
.abTune { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; margin: 12px 0 4px; }
.abTune input[type=range] { width: 100%; }
.abTune[hidden] { display: none; }
.abTune input[type=range] { accent-color: var(--accent); }
.ppDanger { margin-top: 24px; padding: 14px 16px; border: 1px solid #f5c2bd; border-radius: 12px; background: #fdf3f2; }
.ppDanger p { margin: 4px 0 10px; }
.ppDelList { margin: 0 0 10px 18px; padding: 0; line-height: 1.6; }
/* Clubs, Team, Plattform (cloud-org.js) */
.orgBanner { display: flex; gap: 10px; align-items: center; padding: 10px 14px; margin-bottom: 16px; border-radius: 12px; background: var(--pink-soft, #fbe6ea); color: var(--ink); font-size: 13.5px; }
.orgBanner.bad { background: #fdecea; color: var(--danger); }
.orgZip { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; }
.orgSubRow { display: flex; align-items: center; gap: 6px; }
.orgSubRow input { flex: 1; min-width: 0; }
.orgSubSt { margin: 6px 0; overflow-wrap: anywhere; }
.orgSubSt.ok { color: #1f7a3f; }
.orgSubSt.bad { color: var(--danger); }
.orgTeam { list-style: none; margin: 0; padding: 0; }
.orgTeam li { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.orgTeam li:first-child { border-top: 0; }
.orgWho { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 13.5px; }
.orgTeam select { max-width: 160px; }
.orgInvLink { margin-top: 10px; }
.orgInvLink input { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.orgNew { margin-bottom: 16px; }
.orgNewRow { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.orgTable { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: var(--card); }
.orgTable table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.orgTable th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--line); }
.orgTable td { padding: 10px 12px; border-top: 1px solid var(--line); vertical-align: top; }
.orgTable td input[type=text] { display: block; width: 100%; min-width: 140px; margin-bottom: 4px; }
.orgTable select.orgSt.ok { color: var(--accent-strong); }
.orgTable select.orgSt.bad { color: var(--danger); }
/* Rechtstexte (cloud-legal.js) */
.lgPage { max-width: 760px; margin: 0 auto; padding: 32px 16px 48px; }
.lgHead { margin-bottom: 8px; }
.lgClub { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lgText { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 24px 28px; line-height: 1.6; font-size: 15px; color: var(--text); overflow-wrap: anywhere; }
.lgText h2 { font-family: var(--font-display); font-size: 24px; color: var(--ink); margin: 0 0 12px; }
.lgText h3 { font-family: var(--font-display); font-size: 17px; color: var(--ink); margin: 22px 0 6px; }
.lgText h4 { font-size: 15px; margin: 16px 0 4px; }
.lgText p { margin: 0 0 10px; }
.lgText ul { margin: 0 0 10px 20px; padding: 0; }
.lgText a { color: var(--accent, #5b4e9b); }
.lgPreview { margin-top: 16px; }
.mbEditor textarea#lgBody { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; line-height: 1.5; }
@media (max-width: 600px) { .lgText { padding: 18px 16px; } }

/* Einbetten auf fremden Websites (embed.js, ?…&embed=1): die Höhe ergibt sich
   aus dem Inhalt, keine Vollbild-Hülle */
html.cEmbed body.cShellOpen { overflow: visible; }
html.cEmbed body { min-height: 0; }
html.cEmbed #cloudShell { position: static; overflow: visible; }
html.cEmbed .cCenter { min-height: 240px; }
html.cEmbed .cOrg { padding-top: 14px; padding-bottom: 14px; }
html.cEmbed .cCt { padding-bottom: 14px; }
.cRegBack { margin: 12px 0 0; font-size: 14px; }
.cRegBack a { color: var(--ctAccent, #0d6b5c); font-weight: 700; text-decoration: none; }
.cEmbedDetails { margin: 12px 0 4px; border: 1px solid var(--line, #e6e4dc); border-radius: 12px; padding: 10px 12px; }
.cEmbedDetails summary { cursor: pointer; font-size: 14px; }
.cEmbedBox textarea { width: 100%; box-sizing: border-box; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; resize: vertical; margin: 6px 0; }

/* Hex-Eingabe neben Farbwählern (js/color-hex.js) */
input.hexIn { width: 92px; flex: none; margin-left: 6px; padding: 6px 8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; text-transform: lowercase; }
.mbColorIn input.hexIn { flex: 1 1 0; width: 0; min-width: 0; max-width: none; margin-left: 0; }
input.hexIn.bad { border-color: var(--danger, #b42318); }

/* Eigener Farbwähler mit Logo-Farben (js/color-picker.js) */
.cpPop { position: fixed; z-index: 1000; width: 288px; max-height: calc(100vh - 16px); overflow-y: auto; background: var(--card, #fff); border: 1px solid var(--line, #e5e5ec); border-radius: 16px; box-shadow: var(--shadow-lg, 0 12px 40px rgba(0,0,0,.14)); padding: 12px; font-size: 13px; }
.cpHead { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.cpCur { width: 34px; height: 34px; border-radius: 10px; border: 1px solid var(--line, #e5e5ec); flex: none; }
.cpHex { flex: 1; min-width: 0; padding: 7px 9px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }
.cpHex.bad { border-color: var(--danger, #b42318); }
.cpX { border: 0; background: none; font-size: 20px; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px 6px; border-radius: 8px; }
.cpX:hover { background: var(--surface, #ededf2); }
.cpLabel { font-weight: 650; margin: 2px 0 8px; }
.cpLogo { margin-bottom: 12px; }
.cpCanvas { position: relative; display: flex; justify-content: center; padding: 8px; border-radius: 12px; background: repeating-conic-gradient(#f0f0f3 0% 25%, #fff 0% 50%) 50% / 14px 14px; border: 1px solid var(--line, #e5e5ec); }
.cpCanvas canvas { cursor: crosshair; display: block; max-width: 100%; }
.cpTip { position: absolute; right: 8px; bottom: 8px; padding: 3px 8px; border-radius: 99px; font: 600 11.5px ui-monospace, SFMono-Regular, Menlo, monospace; box-shadow: 0 1px 4px rgba(0,0,0,.2); pointer-events: none; }
.cpSw { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; min-height: 28px; align-items: center; }
.cpSwatch { width: 28px; height: 28px; border-radius: 8px; border: 1px solid rgba(0,0,0,.12); cursor: pointer; padding: 0; }
.cpSwatch:hover, .cpSwatch:focus-visible { transform: scale(1.12); outline: 2px solid var(--accent); outline-offset: 1px; }
.cpNone { margin: 4px 0 12px; }
.cpFoot { display: flex; gap: 8px; flex-wrap: nowrap; justify-content: space-between; border-top: 1px solid var(--line, #e5e5ec); padding-top: 10px; }

/* Lizenzschlüssel (v28) */
.cKeyIn { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; text-transform: uppercase; font-size: 15px; }
.cKeyCode { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; white-space: nowrap; background: var(--surface, #ededf2); padding: 2px 6px; border-radius: 6px; }
.orgKeyOpen { color: var(--danger, #b42318); font-weight: 600; }
.orgKeyActs { font-size: 12px; margin-top: 2px; }
.orgKeyActs .linkBtn { font-size: 12px; }

/* Farbfeld (ColorPicker.fieldHtml): Überschrift + Name, Farbfelder, Regenbogen für eigene Farbe, Hex-Wert */
.mbColor, .mbColorIn { min-width: 0; }
.mbColorIn input[type=text] { width: 0; }
.orgCols { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.orgMain { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
@media (max-width: 900px) { .orgCols { grid-template-columns: minmax(0, 1fr); } }
.cpFields { display: flex; flex-direction: column; gap: 22px; margin-bottom: 16px; }
.cpField { position: relative; min-width: 0; }
.cpTop { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.cpTop label { margin: 0; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--text); }
.cpCurrent { display: inline-flex; align-items: center; gap: 7px; padding: 3px 10px 3px 4px; border-radius: 99px; background: var(--surface, #ededf2); font-size: 12px; }
.cpDot { width: 16px; height: 16px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); flex: none; }
.cpName { font-weight: 600; color: var(--text); }
.cpCode { color: var(--muted); font-variant-numeric: tabular-nums; }
.cpPresets { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.cpPresets .cpSwatch { position: relative; width: 100%; height: auto; aspect-ratio: 1; border-radius: 10px; border: 0; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12); padding: 0; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.cpPresets .cpSwatch:hover:not(:disabled) { transform: translateY(-2px); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12), 0 4px 10px rgba(0, 0, 0, .12); }
.cpPresets .cpSwatch.on { transform: scale(1.06); box-shadow: 0 0 0 2px var(--card, #fff), 0 0 0 4px var(--ink), 0 6px 14px rgba(0, 0, 0, .18); }
.cpPresets .cpSwatch.on::after { content: ""; position: absolute; inset: 0; margin: auto; width: 46%; height: 46%; background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.cpPresets .cpSwatch.lt.on::after { background: #22212c; }
.cpPresets .cpSwatch:disabled { cursor: default; opacity: .6; }
.cpPresets .cpCustom { background: conic-gradient(from 180deg, #ff3b30, #ff9500, #ffcc00, #34c759, #00c7be, #007aff, #5856d6, #af52de, #ff2d55, #ff3b30); }
.cpPresets .cpCustom.on { background: linear-gradient(var(--cp-own), var(--cp-own)) padding-box, conic-gradient(from 180deg, #ff3b30, #ff9500, #ffcc00, #34c759, #00c7be, #007aff, #5856d6, #af52de, #ff2d55, #ff3b30) border-box; border: 3px solid transparent; }
/* kompakt (Club → CI-Farben): gewählte Farbe als Feld + Hex-Code daneben */
.cpField.compact { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 12px; align-items: center; }
.cpField.compact .cpTop { grid-column: 1 / -1; margin-bottom: 8px; }
.cpField.compact .cpCurrent { display: none; }
.cpField.compact .cpPresets { display: block; }
.cpField.compact .cpSwatch.cpCustom, .cpField.compact .cpSwatch.cpCustom.on { width: 48px; height: 42px; border-radius: 12px; transform: none; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.cpField.compact .cpSwatch.cpCustom:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 4px 10px rgba(0, 0, 0, .15); }
.cpField.compact .cpSwatch.cpCustom.on::after { display: none; }
.cpField.compact input.hexIn { margin: 0; max-width: none; }
.cpValue { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; left: 0; bottom: 0; }
.cpField input.hexIn { display: block; width: 100%; max-width: 230px; margin: 12px 0 0; font-family: inherit; font-size: inherit; font-weight: inherit; letter-spacing: normal; text-transform: uppercase; }
/* Einstellungen → Club: Lizenz als eigenes Feld über die ganze Breite */
.orgLic { margin: 0 0 16px; }
.orgBill { margin: 0 0 16px; }
.billNow { padding: 10px 12px; border-radius: 10px; background: var(--surface, #f4f4f7); margin: 0 0 12px; }
.billNow.bad { background: #fdecea; }
.billToggle { display: inline-flex; border: 1px solid var(--line, #ddd); border-radius: 99px; padding: 2px; margin: 0 0 12px; }
.billToggle button { border: 0; background: none; padding: 6px 14px; border-radius: 99px; font: inherit; font-size: 13px; cursor: pointer; color: var(--ink); }
.billToggle button.on { background: var(--ink); color: #fff; }
.billCards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 0 0 12px; }
.billCard { border: 1px solid var(--line, #ddd); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 6px; }
.billCard h5 { margin: 0; font-size: 15px; }
.billCard .btn { margin-top: auto; align-self: flex-start; }
.billPrice { font-size: 20px; font-weight: 700; }
.orgLicRow { display: flex; flex-wrap: wrap; gap: 14px 48px; margin: 0; }
.orgLicRow > div { min-width: 0; }
.orgLicRow dt { font-size: 12px; font-weight: 600; color: var(--muted); margin-bottom: 4px; }
.orgLicRow dd { margin: 0; font-weight: 600; }
.orgLicLinks { margin-left: auto; }
.orgLicLinks dd { font-weight: 500; }
@media (max-width: 700px) { .orgLicLinks { margin-left: 0; } }
.cpLogos:empty { min-height: 0; }
.cpCanvas img { display: block; max-width: 100%; object-fit: contain; }
.cpSwNote { margin: 6px 0 0; }
.evPrivate { margin: 0 0 14px; padding: 14px 18px; }
.payMethods { display: grid; gap: 6px; margin: 8px 0; }
/* WhatsApp-Kanal des Clubs auf der Anmeldeseite (v40) */
.cRegWa { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 4px; padding: 11px 14px; border-radius: 999px; background: #0a7d3e; color: #fff; font-weight: 700; font-size: 14px; text-decoration: none; }
.cRegWa:hover { filter: brightness(.95); }
/* Einstellungen → Mails & Newsletter → WhatsApp (v40) */
.waView label:not(.cCheck) { display: block; font-size: 13px; font-weight: 600; margin: 10px 0 0; }
.waView label:not(.cCheck) input, .waView label select { display: block; width: 100%; margin-top: 4px; }
.waView .cCheck { margin-top: 10px; }
.waView .btnRow { margin-top: 12px; flex-wrap: wrap; }
.waHelp { margin: 8px 0 4px; font-size: 13px; }
.waHelp summary { cursor: pointer; font-weight: 600; }
.waHelp ol { margin: 6px 0 0; padding-left: 20px; line-height: 1.5; }
.waCards { display: grid; gap: 12px; margin-top: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.waCard { border: 1px solid var(--line); border-radius: 14px; padding: 12px; background: var(--bg, transparent); min-width: 0; }
.waCardHead { margin-bottom: 6px; font-size: 14px; }
.waText { width: 100%; box-sizing: border-box; font: 13px/1.45 -apple-system, Segoe UI, Roboto, sans-serif; resize: vertical; }

/* AGB-Assistent (Einstellungen → Rechtstexte → AGB) */
.agbIntro, .agbHint { align-items: center; flex-wrap: wrap; }
.agbIntro span, .agbHint span { flex: 1 1 260px; }
.agbWarn { background: #fff4e0; color: #7a4b00; }
.agbHint { background: #fff4e0; color: #7a4b00; }
.agbBasis ul { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.agbBasis li { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; padding: 6px 0; border-top: 1px solid var(--line); }
.agbBasis li:first-child { border-top: 0; }
.agbBlocks { display: grid; gap: 12px; margin: 12px 0 16px; }
.agbBlock { margin: 0; }
.agbBlock.off textarea { display: none; }
.agbBlock.off .cSwitch b { color: var(--muted); }
.agbBlockHead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.agbBlockHead .agbNo { font-style: normal; }
.agbChips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cChip.warn { background: #fff4e0; color: #7a4b00; }
.agbBlock textarea { width: 100%; font: inherit; font-size: 14px; line-height: 1.5; }
.agbActions { position: sticky; bottom: 0; background: var(--bg, #f3f2ec); padding: 10px 0; z-index: 2; }
@media (max-width: 560px) { .agbBasis li { grid-template-columns: 1fr; gap: 2px; } }
/* WhatsApp Business (v42) */
.waGrid { display: grid; gap: 0 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.waCopy { display: flex; align-items: center; gap: 8px; margin: 4px 0 6px; min-width: 0; }
.waCopy code { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; font-size: 12.5px; background: var(--bg, #f3f2ec); border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; }
.waView .waCopy + label, .waView .waHelp + .waGrid { margin-top: 10px; }
.waTpls { display: grid; gap: 10px; margin: 10px 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.waTpl { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; min-width: 0; }
.waTpl .cMuted { display: block; }
.waTplBody { white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.45 -apple-system, Segoe UI, Roboto, sans-serif; background: var(--bg, #f3f2ec); border-radius: 10px; padding: 10px 12px; margin: 8px 0 0; }
.waPreview { margin: 10px 0; }
.waPeople li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
/* WhatsApp: KI-Assistent und Unterhaltungen (v43) */
#waAiInfo { width: 100%; box-sizing: border-box; font: inherit; font-size: 14px; }
.waChats { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.waChat { border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.waChatHead { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; width: 100%; background: none; border: 0; padding: 10px 12px; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.waChatWhen { margin-left: auto; }
.waThread { display: none; padding: 0 12px 12px; }
.waChat.open .waThread { display: grid; gap: 6px; }
.waMsg { max-width: 85%; padding: 8px 10px; border-radius: 12px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.4; background: var(--bg, #f3f2ec); }
.waMsg.out { justify-self: end; background: #dcf8c6; color: #1c1c1c; }
.waMsg small { display: block; margin-top: 3px; font-size: 11px; opacity: .7; }
.waReply { display: flex; gap: 8px; align-items: flex-end; margin-top: 4px; }
.waReply textarea { flex: 1 1 auto; min-width: 0; font: inherit; font-size: 14px; }
.orgFeat .cCheck { align-items: flex-start; margin-bottom: 8px; }

/* Einstellungen → Embeds (js/cloud-embeds.js) */
.ebSection { margin-top: 22px; }
.ebSection h3 { margin: 0 0 8px; font-size: 16px; }
.ebItem .cGroupLabel { margin-top: 12px; }
.ebNote { display: flex; gap: 6px; align-items: flex-start; background: var(--accent-soft, #f1eefb); border-radius: 10px; padding: 8px 10px; margin: 6px 0; }

/* Einstellungen → Instagram (v52, js/cloud-instagram.js) */
.igView .cPanel { margin: 0 0 16px; }
.igConn { margin: 0 0 6px; }
.igHelp, .igManual { margin: 0 0 10px; font-size: 14px; } .igManual[open] { margin-bottom: 14px; } .igHelp ol { margin: 8px 0 0; padding-left: 20px; } .igHelp li { margin: 4px 0; }
.igRow { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 12px; }
.igPrevGrid { display: grid; grid-template-columns: minmax(180px, 280px) 1fr; gap: 18px; margin-top: 14px; align-items: start; }
.igImg { width: 100%; border-radius: 12px; border: 1px solid var(--line, #ddd); }
.igPreview textarea { width: 100%; font: inherit; font-size: 14px; }
.igSub { margin: 20px 0 4px; }
.igQ { display: grid; grid-template-columns: 140px 1fr; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line, #ddd); }
.igQ:first-of-type { border-top: 0; }
.igQ textarea { width: 100%; font: inherit; font-size: 14px; margin-top: 8px; }
.igPosts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 14px; }
@media (max-width: 640px) { .igPrevGrid { grid-template-columns: 1fr; } .igImg { max-width: 320px; } }
