:root{--bg:#f3f5f8;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--brand:#111827;--accent:#ff245b;--danger:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text)}a{color:inherit;text-decoration:none}button{border:0;border-radius:14px;background:var(--brand);color:#fff;padding:12px 16px;font-weight:800;cursor:pointer}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff;font:inherit}textarea{min-height:120px;resize:vertical}label{display:block;margin:12px 0 6px;font-weight:800}.check{display:flex;gap:10px;align-items:flex-start;font-weight:600}.check input{width:auto;margin-top:4px}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.topbar nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.topbar a{color:var(--muted);font-weight:800}.feed{max-width:760px;margin:0 auto;padding:12px 0 90px}.post{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:12px 0;padding:14px}.post-head{display:flex;gap:12px;align-items:center}.post-head span,.comment span,small{display:block;color:var(--muted);font-size:12px}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#111827,#4b5563);color:#fff;font-weight:900;overflow:hidden;flex:0 0 auto}.avatar img,.profile-avatar img{width:100%;height:100%;object-fit:cover}.avatar.small{width:34px;height:34px;font-size:13px}.post-content{font-size:18px;line-height:1.45;margin:16px 0;white-space:pre-wrap}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions button{background:#f3f4f6;color:#111827;padding:10px 12px;border-radius:999px}.actions form{margin:0}.like-btn,.comment-like{color:var(--accent)!important}.comments{display:none;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.comments.open{display:block}.comment-form,.reply-form,.message-form,.inline{display:flex;gap:8px;align-items:flex-start}.comment-form input,.reply-form input,.inline input{flex:1}.comment{display:flex;gap:10px;padding:14px 0;border-bottom:1px solid #f1f5f9}.comment-body{flex:1}.comment p{margin:6px 0 10px}.compact button{font-size:12px;padding:7px 9px}.reply-form{display:none;margin-top:8px}.reply-form.open{display:flex}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#dbeafe,#f8fafc 45%,#f3f4f6)}.login-card,.card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 60px rgba(15,23,42,.08);padding:22px}.login-card{width:min(440px,100%)}.login-card h1{margin-top:0}.alert{background:#fee2e2;color:#991b1b;border-radius:16px;padding:12px;margin:10px 0}.alert.ok{background:#dcfce7;color:#166534}.textlink{display:block;margin-top:14px;color:#2563eb;font-weight:800}.page{max-width:980px;margin:0 auto;padding:18px 14px 100px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.group-card h2{margin-top:0}.fab-wrap{position:fixed;right:18px;bottom:18px;z-index:50}.fab-main{width:64px;height:64px;border-radius:50%;font-size:36px;line-height:1;background:#111827;box-shadow:0 16px 40px rgba(0,0,0,.35)}.fab-menu{position:absolute;right:0;bottom:78px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:10px;box-shadow:0 18px 60px rgba(0,0,0,.22);display:none;min-width:230px}.fab-menu.open{display:grid;gap:8px}.fab-menu button,.fab-menu a{display:block;text-align:left;background:#f8fafc;color:#111827;border-radius:16px;padding:13px 14px;font-weight:900}.modal{position:fixed;inset:0;background:rgba(15,23,42,.62);display:none;align-items:center;justify-content:center;z-index:60;padding:18px}.modal.open{display:flex}.modal-card{background:#fff;border-radius:26px;max-width:560px;width:100%;padding:22px;position:relative}.modal-close{position:absolute;right:12px;top:12px;border-radius:50%;width:42px;height:42px;padding:0}.mail-float{position:fixed;right:22px;top:78px;z-index:45;background:#fff;border:1px solid var(--line);border-radius:999px;width:58px;height:58px;display:grid;place-items:center;box-shadow:0 14px 40px rgba(0,0,0,.18);font-size:24px}.mail-float span{position:absolute;right:-3px;top:-5px;background:var(--accent);color:#fff;border-radius:999px;font-size:12px;font-weight:900;padding:4px 7px}.profile-hero{height:230px;border-radius:28px;background:linear-gradient(135deg,#111827,#93c5fd);background-size:cover;background-position:center;position:relative;margin-bottom:58px}.profile-avatar{position:absolute;left:24px;bottom:-54px;width:108px;height:108px;border-radius:50%;border:6px solid #fff;background:#111827;color:#fff;display:grid;place-items:center;font-size:42px;font-weight:900;overflow:hidden}.danger button{background:var(--danger)}.messages-layout{max-width:1100px;margin:0 auto;padding:18px 14px 100px;display:grid;grid-template-columns:290px 1fr;gap:14px}.user-row{display:flex;align-items:center;gap:9px;padding:10px;border-radius:16px;color:#111827}.user-row.active,.user-row:hover{background:#f3f4f6}.chat-box{height:55vh;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:10px;background:#f8fafc;border-radius:20px}.bubble{max-width:76%;padding:12px 14px;border-radius:18px;background:#fff;border:1px solid var(--line)}.bubble.me{align-self:flex-end;background:#111827;color:#fff}.bubble.me small{color:#d1d5db}.bubble.other{align-self:flex-start}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stats b{font-size:32px;display:block}.tabs{display:flex;gap:10px;flex-wrap:wrap}.tabs a{background:#f3f4f6;border-radius:999px;padding:10px 12px;font-weight:900}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}td select{min-width:110px}.heart{position:fixed;z-index:9999;color:#ef123f;font-size:30px;pointer-events:none;animation:flyHeart 2.2s ease-out forwards;text-shadow:0 10px 18px rgba(239,18,63,.35)}@keyframes flyHeart{0%{transform:translateY(0) scale(.7) rotate(0);opacity:0}12%{opacity:1}100%{transform:translateY(-260px) scale(1.9) rotate(28deg);opacity:0}}@media(max-width:760px){.topbar{align-items:flex-start;gap:8px;flex-direction:column}.topbar nav{font-size:14px}.feed{max-width:none;padding:0 0 90px}.post{border-left:0;border-right:0;border-radius:0;margin:0}.post-content{font-size:17px}.messages-layout{grid-template-columns:1fr}.user-list{max-height:190px;overflow:auto}.stats{grid-template-columns:repeat(2,1fr)}.comment-form,.reply-form,.message-form,.inline{flex-direction:column}.fab-main{width:68px;height:68px}.profile-hero{border-radius:0;margin-left:-14px;margin-right:-14px}}

.post-media{margin:12px -14px 14px;background:#000;overflow:hidden}.post-media img,.post-media video{display:block;width:100%;max-height:72vh;object-fit:contain;background:#000}.embed{position:relative;width:100%;padding-top:56.25%;margin:12px 0;border-radius:20px;overflow:hidden;background:#000}.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.link-card{display:block;margin:12px 0;padding:15px;border:1px solid var(--line);border-radius:20px;background:#f8fafc}.link-card span{display:block;color:var(--muted);font-weight:800;margin-bottom:5px}.link-card b{display:block;font-size:16px}.link-card small{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-card small{color:var(--muted);display:block;margin:6px 0 12px}
@media(max-width:760px){.post-media{margin-left:-14px;margin-right:-14px;border-radius:0}.embed{border-radius:0;margin-left:-14px;width:calc(100% + 28px)}}

.delete-post-form{display:inline-flex;margin:0}.danger{background:#ffe7e7!important;color:#b00020!important;border-color:#ffc5c5!important}.small-danger{font-size:.92rem}.settings-form input[type=number]{width:100%;max-width:260px;padding:12px;border-radius:14px;border:1px solid #ddd}.settings-form label{display:block;font-weight:700;margin:12px 0 6px}.settings-form small{display:block;color:#666;margin:8px 0 14px}

/* Version 1.1.0 Upload-Manager */
.upload-panel{position:fixed;left:18px;bottom:18px;z-index:55;width:min(360px,calc(100vw - 110px));background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 55px rgba(15,23,42,.22);overflow:hidden;display:none}.upload-panel.open{display:block}.upload-panel.minimized .upload-list{display:none}.upload-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#111827;color:#fff}.upload-panel-head button{width:32px;height:32px;border-radius:999px;padding:0;background:rgba(255,255,255,.16)}.upload-list{max-height:260px;overflow:auto;padding:10px}.upload-item{border:1px solid var(--line);border-radius:16px;padding:10px 11px;margin-bottom:8px;background:#f8fafc}.upload-title{display:flex;justify-content:space-between;gap:12px;font-weight:900}.upload-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-title strong{color:var(--accent)}.upload-bar{height:10px;border-radius:999px;background:#e5e7eb;margin:8px 0;overflow:hidden}.upload-bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .18s ease}.upload-item small{font-size:12px}.upload-error{background:#fff1f2;border-color:#fecdd3}.upload-error .upload-bar i{background:#b91c1c}@media(max-width:760px){.upload-panel{left:10px;bottom:96px;width:calc(100vw - 20px)}}

/* Version 1.2.4 Reaktionen */
.reaction-form{position:relative;display:inline-flex!important;align-items:center;z-index:20}.reaction-form:before{content:"";position:absolute;left:-14px;right:-14px;bottom:28px;height:34px;background:transparent}.reaction-picker{position:absolute;left:-8px;bottom:50px;display:flex;gap:8px;background:rgba(255,255,255,.96);border:1px solid rgba(226,232,240,.95);border-radius:999px;padding:8px 10px;box-shadow:0 22px 60px rgba(15,23,42,.26);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px) scale(.94);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;backdrop-filter:blur(12px)}.reaction-form.open .reaction-picker,.reaction-form.hovering .reaction-picker,.reaction-form:hover .reaction-picker{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition-delay:0s}.reaction-choice{background:#fff!important;color:#111!important;border-radius:999px!important;width:41px;height:41px;padding:0!important;font-size:24px!important;line-height:1;box-shadow:0 8px 22px rgba(15,23,42,.10);transition:transform .16s cubic-bezier(.2,1.6,.3,1),background .16s ease,box-shadow .16s ease;transform-origin:center}.reaction-choice:hover{transform:translateY(-8px) scale(1.32) rotate(-7deg);background:#fff7ed!important;box-shadow:0 16px 32px rgba(15,23,42,.20)}.reaction-choice:active{transform:translateY(-4px) scale(1.12)}.reaction-trigger{min-width:88px}.reaction-trigger.reacted{animation:reactionButtonPop .55s cubic-bezier(.2,1.7,.3,1)}.reaction-summary{font-size:13px;color:var(--muted);font-weight:800;margin:6px 0 10px}.floating-reaction{position:fixed;z-index:9999;font-size:24px;pointer-events:none;animation:floatReactionDelight var(--dur,3.8s) cubic-bezier(.16,.84,.27,1) forwards;filter:drop-shadow(0 12px 18px rgba(0,0,0,.18));will-change:transform,opacity}.reaction-spark{position:fixed;z-index:9998;width:8px;height:8px;border-radius:999px;background:radial-gradient(circle,#fff 0,#ffd166 38%,#ff4d6d 74%,transparent 75%);pointer-events:none;animation:sparkPop var(--dur,.9s) ease-out forwards;will-change:transform,opacity}@keyframes reactionButtonPop{0%{transform:scale(1)}38%{transform:scale(1.28) rotate(-3deg)}68%{transform:scale(.94) rotate(2deg)}100%{transform:scale(1)}}@keyframes floatReactionDelight{0%{transform:translate(0,0) scale(.45) rotate(0deg);opacity:0}10%{opacity:1;transform:translate(0,-22px) scale(1.08) rotate(var(--rot-start,-8deg))}34%{transform:translate(calc(var(--drift,60px)*.32),-105px) scale(1.35) rotate(calc(var(--rot,28deg)*.45));opacity:1}72%{opacity:.88}100%{transform:translate(var(--drift,60px),-390px) scale(1.85) rotate(var(--rot,28deg));opacity:0}}@keyframes sparkPop{0%{transform:translate(0,0) scale(.2);opacity:1}100%{transform:translate(var(--sx,20px),var(--sy,-35px)) scale(1.2);opacity:0}}@media(max-width:760px){.reaction-picker{bottom:48px;left:-18px}.reaction-choice{width:44px;height:44px;font-size:26px!important}.reaction-trigger{min-width:auto}}
/* Version 1.2.4: robuste Icon-Ausgabe ohne rohe Emoji-Zeichen im Quelltext */
.reaction-choice{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif!important;}
.actions button,.actions a,.reaction-trigger{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;}

/* Version 1.2.4: reine Emoji-Reaktionen und einheitliche Aktionsleiste */
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.actions button,.actions a,.actions .like-btn{min-height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 16px;font-weight:800}
.actions.compact button,.actions.compact a,.actions.compact .like-btn{min-height:36px;padding:0 12px;font-size:14px}
.reaction-trigger{min-width:64px!important;color:#111827!important}
.reaction-trigger .reaction-main{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif!important;font-size:22px;line-height:1}
.reaction-trigger .reaction-count{font-size:15px;font-weight:900;color:#111827}
.reaction-choice{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif!important;text-indent:0!important;overflow:hidden}
.reaction-summary{display:none!important}
.small-danger{background:#fee2e2!important;color:#b91c1c!important;min-width:48px!important;padding:0 14px!important}
@media(max-width:760px){.actions{gap:6px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.actions button,.actions a,.actions .like-btn{min-height:40px;padding:0 12px}.reaction-trigger{min-width:52px!important}.reaction-trigger .reaction-main{font-size:20px}.reaction-trigger .reaction-count{font-size:13px}.small-danger{min-width:42px!important}}

/* v1.2.5 reaction breakdown and user modal */
.reaction-breakdown{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0 2px;padding:0 2px}
.reaction-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(226,232,240,.95);background:rgba(255,255,255,.96);border-radius:999px;min-height:30px;padding:4px 9px;box-shadow:0 6px 18px rgba(15,23,42,.07);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}
.reaction-chip:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 25px rgba(15,23,42,.13);background:#fff7ed}
.reaction-chip-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:18px;line-height:1}
.reaction-chip-count{font-size:13px;font-weight:900;color:#111827}
.reaction-users-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:10000;display:none;align-items:flex-end;justify-content:center;backdrop-filter:blur(6px)}
.reaction-users-backdrop.open{display:flex}
.reaction-users-modal{width:min(480px,100%);max-height:78vh;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -20px 60px rgba(15,23,42,.28);overflow:hidden;animation:reactionSheetIn .24s ease-out}
.reaction-users-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e5e7eb;font-weight:900;color:#111827}
.reaction-users-head strong{display:flex;align-items:center;gap:8px;font-size:17px}.reaction-users-head .emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:24px}
.reaction-users-close{border:0;background:#f3f4f6;border-radius:999px;width:36px;height:36px;font-size:20px;cursor:pointer}
.reaction-users-list{padding:10px 12px 16px;overflow:auto;max-height:calc(78vh - 70px)}
.reaction-user-row{display:flex;align-items:center;gap:12px;padding:10px 6px;border-radius:14px}.reaction-user-row:hover{background:#f8fafc}
.reaction-user-row .avatar{width:42px;height:42px;min-width:42px}.reaction-user-row b{display:block;color:#111827}.reaction-user-row small{color:#64748b;font-weight:700}
.reaction-empty{padding:24px;text-align:center;color:#64748b;font-weight:800}
@keyframes reactionSheetIn{from{transform:translateY(24px);opacity:.35}to{transform:translateY(0);opacity:1}}
@media(min-width:761px){.reaction-users-backdrop{align-items:center}.reaction-users-modal{border-radius:24px;max-height:70vh}.reaction-users-list{max-height:calc(70vh - 70px)}}


/* v1.2.6 grouped reactions above action field */
.reaction-cluster{position:relative;display:inline-flex;align-items:center;margin:10px 0 8px;z-index:18}
.reaction-cluster-main{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(226,232,240,.95);background:rgba(255,255,255,.98);border-radius:999px;min-height:32px;padding:4px 10px;box-shadow:0 7px 20px rgba(15,23,42,.08);cursor:pointer;transition:transform .16s ease, box-shadow .16s ease;background-clip:padding-box}
.reaction-cluster-main:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.16)}
.reaction-cluster-detail{position:absolute;left:0;bottom:40px;display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.98);border:1px solid rgba(226,232,240,.95);border-radius:999px;padding:7px 9px;box-shadow:0 22px 60px rgba(15,23,42,.22);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px) scale(.94);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;white-space:nowrap;backdrop-filter:blur(12px)}
.reaction-cluster:hover .reaction-cluster-detail,.reaction-cluster:focus-within .reaction-cluster-detail,.reaction-cluster.open .reaction-cluster-detail{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition-delay:0s}
.reaction-cluster .reaction-chip{margin:0}.reaction-cluster .reaction-chip:hover{transform:translateY(-4px) scale(1.08)}
.reaction-breakdown{display:none!important}
.group-card.clickable{display:block;text-decoration:none;color:inherit;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.group-card.clickable:hover{transform:translateY(-3px);box-shadow:0 22px 60px rgba(15,23,42,.13);border-color:rgba(37,99,235,.25)}
.group-feed-head{margin-bottom:14px}.group-feed-head a{text-decoration:none;font-weight:900;color:var(--accent)}.group-feed-head h1{margin:10px 0 4px}
@media(max-width:760px){.reaction-cluster{margin-left:2px}.reaction-cluster-detail{bottom:38px;max-width:calc(100vw - 30px);overflow-x:auto}.group-feed-head{border-radius:0;margin-left:-14px;margin-right:-14px}}
