:root{--sf-bg:#f6f7fb;--sf-surface:#fff;--sf-text:#0f172a;--sf-muted:#64748b;--sf-line:rgba(15,23,42,.08);--sf-primary:#4f46e5;--sf-danger:#ef4444;--sf-radius:18px;--sf-radius-sm:12px;--sf-shadow:0 10px 28px rgba(2,6,23,.08);--sf-shadow-soft:0 6px 16px rgba(2,6,23,.06)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--sf-bg);color:var(--sf-text)}a{color:inherit}a:hover{text-decoration:none}img{max-width:100%;display:block}.dash-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--sf-line)}.header-logo{font-weight:900;letter-spacing:.3px;text-decoration:none;color:var(--sf-text)}.dash-actions{display:flex;align-items:center;gap:10px}.dash-action{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.04);border:1px solid rgba(15,23,42,.06);font-size:.9rem;font-weight:700;color:#334155;text-decoration:none;transition:background .12s ease,border-color .12s ease,transform .12s ease}.dash-action:hover{background:rgba(15,23,42,.06);border-color:rgba(15,23,42,.1);transform:translateY(-1px)}.dash-action svg{width:18px;height:18px}.comp-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start;padding:18px}.comp-content{margin:0!important;min-width:0}.comp-sidebar{position:sticky;top:86px;align-self:start;margin:0!important;padding:14px;background:var(--sf-surface);border-radius:var(--sf-radius);box-shadow:var(--sf-shadow-soft);border:1px solid rgba(15,23,42,.04)}.sb-cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--sf-radius-sm);background:linear-gradient(135deg,#e7ecf5,#fbfcff)}.sb-cover[alt]{border:1px solid rgba(15,23,42,.04)}.sb-title{margin:14px 0 6px 0;font-size:1.25rem;line-height:1.2;letter-spacing:-.02em}.sb-meta{font-size:.92rem;color:var(--sf-muted)}.sb-meta a{color:var(--sf-text);font-weight:800;text-decoration:none}.sb-meta a:hover{text-decoration:underline}.sb-desc{margin-top:10px;padding:0;background:transparent;border:0;color:var(--sf-muted);font-size:.95rem;line-height:1.45}.sb-stats-box{margin-top:14px;display:grid;grid-template-columns:1fr;gap:10px}.sb-stat{padding:12px 12px;border-radius:var(--sf-radius-sm);background:rgba(15,23,42,.03);border:1px solid rgba(15,23,42,.05)}.sb-stat b{display:block;font-size:1.05rem;letter-spacing:-.02em}.sb-stat span{display:block;margin-top:2px;font-size:.85rem;color:var(--sf-muted)}.sb-actions{margin-top:14px}.sb-actions-icons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sb-icon-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border-radius:14px;background:rgba(15,23,42,.03);border:1px solid rgba(15,23,42,.06);font-size:.75rem;font-weight:800;color:#334155;text-decoration:none;transition:background .12s ease,border-color .12s ease,transform .12s ease}.sb-icon-btn svg{width:20px;height:20px;opacity:.9}.sb-icon-btn:hover{background:rgba(15,23,42,.05);border-color:rgba(15,23,42,.1);transform:translateY(-1px)}.sb-icon-btn.danger{color:#b91c1c;background:rgba(239,68,68,.06);border-color:rgba(239,68,68,.12)}.sb-icon-btn.danger:hover{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.18)}.comp-content-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:6px 0 16px 0}.comp-content-title{margin:0;font-size:1.45rem;font-weight:900;letter-spacing:-.02em}.comp-content-sub{font-size:.9rem;font-weight:700;color:var(--sf-muted)}.bookmarks-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.bookmarks-list>li{list-style:none;margin:0;padding:0}@media(max-width:1200px){.bookmarks-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.bookmarks-list{grid-template-columns:1fr}}.empty-state{padding:24px 18px;background:transparent;border:1px dashed rgba(15,23,42,.14);border-radius:var(--sf-radius);color:var(--sf-muted);text-align:center}.sf-card-canva{position:relative;overflow:hidden;background:var(--sf-surface);border-radius:var(--sf-radius);border:1px solid rgba(15,23,42,.04);box-shadow:var(--sf-shadow-soft);transition:transform .14s ease,box-shadow .14s ease}.sf-card-canva:hover{transform:translateY(-2px);box-shadow:var(--sf-shadow)}.sf-card-img-wrapper{display:block;position:relative;width:100%;aspect-ratio:16/10;background:linear-gradient(135deg,#e7ecf5,#fbfcff);text-decoration:none}.sf-card-img{width:100%;height:100%;object-fit:cover;display:block}.sf-card-body{padding:14px 14px 10px 14px}.sf-card-title{margin:0;font-size:1.02rem;line-height:1.25;letter-spacing:-.01em;font-weight:900;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sf-card-meta{margin-top:8px;display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--sf-muted)}.sf-card-meta svg{opacity:.65}.sf-hover-actions{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:5;opacity:0;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease}.sf-card-canva:hover .sf-hover-actions{opacity:1;transform:translateY(0)}.sf-action-bubble{width:38px;height:38px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);background:rgba(15,23,42,.55);color:#fff;cursor:pointer;transition:transform .12s ease,background .12s ease}.sf-action-bubble:hover{transform:scale(1.05);background:rgba(15,23,42,.65)}.sf-action-bubble.delete{background:rgba(239,68,68,.68)}.sf-action-bubble.delete:hover{background:rgba(239,68,68,.8)}.bookmarks-buttons{margin:10px 12px 12px 12px;display:flex;flex-wrap:wrap;gap:8px}.icon-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(15,23,42,.04);border:1px solid rgba(15,23,42,.06);color:var(--sf-muted);text-decoration:none;font-weight:700;font-size:.85rem;line-height:1;cursor:pointer;user-select:none;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.icon-link:hover{background:rgba(15,23,42,.06);border-color:rgba(15,23,42,.1);color:var(--sf-text);transform:translateY(-1px)}.icon-link svg{width:16px;height:16px;opacity:.9}.icon-link-heart:hover{color:#ef4444;border-color:rgba(239,68,68,.14);background:rgba(239,68,68,.06)}.icon-link-heart.is-active,.icon-link-heart svg[fill="white"]{color:#ef4444;border-color:rgba(239,68,68,.18);background:rgba(239,68,68,.08)}.icon-link-comment:hover{color:var(--sf-primary);border-color:rgba(79,70,229,.14);background:rgba(79,70,229,.06)}.icon-link-share:hover{color:#0f766e;border-color:rgba(15,118,110,.14);background:rgba(15,118,110,.06)}.bookmarks-comments{margin:10px 12px 12px 12px;padding:10px 12px;background:rgba(15,23,42,.03);border:1px solid rgba(15,23,42,.05);border-radius:12px;font-size:.9rem;line-height:1.45;color:var(--sf-text)}.bookmarks-comment-author{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.85rem;color:var(--sf-text)}.bookmarks-comment-author span{font-weight:600;color:var(--sf-muted)}.bookmarks-comment-text{margin-top:4px;color:var(--sf-text)}.bookmarks-box{background:#fff;border-radius:var(--sf-radius);border:1px solid rgba(15,23,42,.04);box-shadow:var(--sf-shadow-soft);overflow:hidden}.bookmarks-box .bookmarks-link{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;padding:14px;text-decoration:none;color:inherit}.bookmarks-box .bookmarks-image{width:100%;height:150px;object-fit:cover;border-radius:var(--sf-radius-sm);background:linear-gradient(135deg,#e7ecf5,#fbfcff)}.bookmarks-box .bookmarks-text h3{margin:0 0 6px 0;font-size:1.02rem;line-height:1.25;font-weight:900}.bookmarks-box .bookmarks-text p{margin:0;color:var(--sf-muted);line-height:1.45;font-size:.95rem}@media(max-width:720px){.bookmarks-box .bookmarks-link{grid-template-columns:1fr}.bookmarks-box .bookmarks-image{height:190px}}img[src=""],img:not([src]){display:none}img.is-broken{filter:grayscale(1);opacity:.65}@media(max-width:980px){.comp-layout{grid-template-columns:1fr;padding:14px}.comp-sidebar{position:relative;top:0}}.comp-content{left:auto!important;right:auto!important;float:none!important}.comp-sidebar{float:none!important}.bookmarks-comments{margin:10px 12px 12px 12px;padding:10px 12px 10px 12px;background:rgba(79,70,229,.045);border:1px solid rgba(79,70,229,.1);border-left:3px solid rgba(79,70,229,.35);border-radius:12px;color:var(--sf-text);font-size:.9rem;line-height:1.45}.bookmarks-comment-author{font-weight:900;font-size:.82rem;color:rgba(15,23,42,.85)}.bookmarks-comment-text{margin-top:4px;color:rgba(15,23,42,.8)}.bookmarks-comments:empty{display:none}.comp-layout{grid-template-columns:1fr}.comp-sidebar{display:none!important}.app-sidebar{display:none!important}.app-content{margin-left:0!important}.dash-header.is-collection{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:linear-gradient(135deg,rgba(79,70,229,.12),rgba(99,102,241,.06)),#fff;backdrop-filter:blur(10px);border-bottom:1px solid rgba(79,70,229,.18);box-shadow:0 6px 18px rgba(79,70,229,.12);transition:background .2s ease,box-shadow .2s ease}.dash-header.is-collection .header-collection-title{font-size:1.15rem;font-weight:900;letter-spacing:-.02em;color:#1e1b4b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65vw}.dash-header.is-collection .dash-action{background:rgba(79,70,229,.12);border:1px solid rgba(79,70,229,.22);color:#3730a3;font-weight:800}.dash-header.is-collection .dash-action:hover{background:rgba(79,70,229,.18);border-color:rgba(79,70,229,.35);transform:translateY(-1px)}<!--Aufbau der Detailansicht einer Sammlung mit plakativer Sidebar und allen Bookmarks. Passende CSS: Sammlungen.css --> <header class="dash-header is-collection"> <a href="/" class="header-logo" aria-label="Startseite">@compilationHeadline</a> <div class="dash-actions"> <a class="dash-action" href="/user/@compilationUsername/" title="Zurück zu Sammlungen" aria-label="Zurück zu Sammlungen"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M15 18l-6-6 6-6"></path> </svg> <span>Sammlungen</span> </a> </div> </header> <div class="comp-layout"> <aside class="comp-sidebar"> <img src="/img.ashx?scale=400&url=@compilationImage" class="sb-cover" alt="@compilationHeadline" onerror="this.onerror=null; this.src='https://images.siteface.net/siteface//CMS/56/Navi/collection.png';" /> <h1 class="sb-title">@compilationHeadline</h1> <div class="sb-meta"> von <a href="/user/@compilationUsername/">@compilationSubheadline</a> &bull;span style="opacity:0.8; font-weight:400;"> Öffentlich </span> </div> <div class="sb-desc"> @compilationDescription </div> <div class="sb-stats-box sb-stats-single"> <div class="sb-stat"><b>@compilationCountOfBookmarks</b><span>Bookmarks</span></div> </div> <div class="sb-actions sb-actions-icons"> <a href="javascript:void(0)" onclick="bookmarks.initActionLink(this, 'share-compilation', @compilationID)" class="sb-icon-btn" title="Teilen" aria-label="Teilen"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="18" cy="5" r="3"></circle> <circle cx="6" cy="12" r="3"></circle> <circle cx="18" cy="19" r="3"></circle> <line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line> <line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line> </svg> <span>Teilen</span> </a> </div> </aside> <main class="comp-content" id="collection-view"> <div class="comp-content-head"> <div> <h2 class="comp-content-title">Bookmarks</h2> <div class="comp-content-sub">@compilationCountOfBookmarks Bookmarks</div> </div> <!-- View Toggle --> <div class="view-toggle" role="group" aria-label="Ansicht umschalten"> <button type="button" class="view-btn is-active" data-view="grid" title="Mosaik" aria-label="Mosaik"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <rect x="3" y="3" width="8" height="8" rx="2"></rect> <rect x="13" y="3" width="8" height="8" rx="2"></rect> <rect x="3" y="13" width="8" height="8" rx="2"></rect> <rect x="13" y="13" width="8" height="8" rx="2"></rect> </svg> <span>Mosaik</span> </button> <button type="button" class="view-btn" data-view="list" title="Liste" aria-label="Liste"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M8 6h13"></path><path d="M8 12h13"></path><path d="M8 18h13"></path> <path d="M3 6h.01"></path><path d="M3 12h.01"></path><path d="M3 18h.01"></path> </svg> <span>Liste</span> </button> </div> </div> <div class="empty-state">Diese Sammlung ist noch leer.</div> </main> </div> <script>(function(){var root = document.documentElement;var container = document.getElementById("collection-view");if(!container) return;function setView(mode){root.classList.remove("view-grid","view-list");root.classList.add(mode === "list" ? "view-list" :"view-grid");var btns = container.querySelectorAll(".view-btn");for(var i=0;i<btns.length;i++){var isActive =(btns[i].getAttribute("data-view") ===(mode === "list" ? "list" :"grid"));btns[i].classList.toggle("is-active",isActive);}try{localStorage.setItem("sf_collection_view",mode);}catch(e){}}var saved = null;try{saved = localStorage.getItem("sf_collection_view");}catch(e){}setView(saved === "list" ? "list" :"grid");var buttons = container.querySelectorAll(".view-btn");for(var j=0;j<buttons.length;j++){buttons[j].addEventListener("click",function(){setView(this.getAttribute("data-view"));});}}script>