:root{
  color-scheme:dark;
  --bg:#0b0b0c;--surface:#141416;--surface-2:#1b1b1e;--line:#2b2b2f;
  --text:#f7f7f8;--muted:#a8a8b0;--accent:#ffd000;--accent-2:#f2b900;
  --ok:#36c978;--bad:#ff6877;--shadow:0 18px 50px rgba(0,0,0,.32);
  --radius:18px;--content:1120px;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -20%,#29230a 0,transparent 34rem),var(--bg);color:var(--text);font:16px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-underline-offset:3px}
img{max-width:100%}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;padding:12px max(20px,calc((100% - var(--content))/2));border-bottom:1px solid rgba(255,255,255,.08);background:rgba(11,11,12,.88);backdrop-filter:blur(16px)}
.brand{display:inline-flex;align-items:center;gap:12px;min-width:0;color:var(--text);text-decoration:none}
.site-logo,.brand-mark{width:48px;height:48px;flex:0 0 48px;border-radius:13px;object-fit:contain;background:#050505;border:1px solid var(--line);padding:3px}
.brand-mark{display:grid;place-items:center;padding:0;color:#111;background:var(--accent);font-size:.82rem;font-weight:950;letter-spacing:-.05em}
.brand-copy{display:flex;flex-direction:column;line-height:1.12;min-width:0}
.brand-copy strong{font-size:1.08rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-copy small{margin-top:4px;color:var(--muted);font-size:.76rem}
.desktop-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.desktop-nav a{padding:9px 11px;border-radius:10px;color:#ddd;text-decoration:none;font-size:.92rem;font-weight:650}
.desktop-nav a:hover{background:var(--surface-2);color:#fff}
.desktop-nav .nav-cta{background:var(--accent);color:#111}
.page-shell{width:min(var(--content),calc(100% - 40px));margin:38px auto 0;min-height:calc(100vh - 180px)}
.site-footer{width:min(var(--content),calc(100% - 40px));margin:52px auto 0;padding:22px 0 34px;color:var(--muted);border-top:1px solid var(--line);font-size:.85rem}
h1,h2,h3{line-height:1.14;letter-spacing:-.025em;margin-top:0}h1{font-size:clamp(2rem,5vw,3.2rem);margin-bottom:.55rem}h2{font-size:1.35rem}p{margin-top:.4rem}
.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px}
.card,.stat,.cover-card{background:linear-gradient(145deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
.card{padding:clamp(18px,3vw,28px)}
.card:hover{border-color:#3a3a40}
.progress{height:11px;background:#2b2b2f;border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--ok),#70e09d);border-radius:inherit}
button,.button,input,select,textarea{font:inherit}
button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:11px;padding:10px 16px;background:linear-gradient(180deg,var(--accent),var(--accent-2));color:#111;font-weight:800;text-decoration:none;cursor:pointer;transition:transform .15s ease,filter .15s ease}
button:hover,.button:hover{filter:brightness(1.05);transform:translateY(-1px)}
.secondary{background:#303035;color:#fff}.danger{background:var(--bad);color:#fff}
form.stack{display:grid;gap:16px;max-width:650px}label{display:grid;gap:7px;color:#ddd;font-size:.9rem;font-weight:700}
input,select,textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid #3c3c42;border-radius:11px;background:#101012;color:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
textarea{min-height:120px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(255,208,0,.13)}
.flash{padding:13px 15px;border-radius:12px;margin-bottom:20px;border:1px solid transparent}.flash.success{background:#123522;border-color:#246d46}.flash.error{background:#421d23;border-color:#76323c}
.admin-tabs,.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.button-row{margin:0}
.issue{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.issue img,.cover-placeholder{width:60px;height:80px;object-fit:cover;border-radius:9px;background:#292929}.missing{opacity:.58}
.cover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px}.cover-card{padding:12px;display:flex;flex-direction:column;gap:10px;overflow:hidden}.cover-card img,.cover-placeholder.big{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:#252529}.cover-card strong{line-height:1.3}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0 34px}.stat{padding:22px;text-align:left}.stat strong{display:block;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1}.stat span{display:block;margin-top:8px;color:var(--muted)}
.search-form{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end;max-width:none}.live-suggestions{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:min(580px,100%);max-height:390px;overflow:auto;border:1px solid #414148;border-radius:14px;background:#17171a;box-shadow:var(--shadow)}.live-suggestions a,.live-suggestions span{display:block;padding:12px 14px;color:inherit;text-decoration:none;border-bottom:1px solid #2d2d31}.live-suggestions a:hover{background:#222226}.live-suggestions small{display:block;color:var(--muted)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse}th,td{padding:11px 13px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#17171a;color:#ddd}
.avatar{width:44px;height:44px;object-fit:cover;border-radius:50%}.avatar.large{width:112px;height:112px;margin-bottom:16px}.site-logo-preview{display:block;max-width:240px;max-height:140px;object-fit:contain;background:#080808;padding:10px;border:1px solid var(--line);border-radius:14px}
.mobile-nav{display:none}
/* Login, Registrierung und Passwort-Reset */
.auth-page .topbar{position:relative;background:transparent;border-bottom:0}.auth-page .desktop-nav{display:none}.auth-page .page-shell{display:grid;place-items:center;width:min(100% - 32px,460px);margin:28px auto 0;min-height:calc(100vh - 220px)}.auth-page .page-shell>.card{width:100%;padding:clamp(24px,6vw,38px);box-shadow:var(--shadow)}.auth-page .page-shell>.card h1{text-align:center;font-size:2rem;margin-bottom:26px}.auth-page form.stack{max-width:none}.auth-page form.stack button{width:100%;margin-top:4px}.auth-page .site-footer{text-align:center;width:min(100% - 32px,460px);margin-top:30px}
@media(max-width:860px){.desktop-nav{display:none}.topbar{min-height:68px;padding:10px 16px}.site-logo,.brand-mark{width:44px;height:44px;flex-basis:44px}.page-shell{width:min(100% - 28px,var(--content));margin-top:24px;padding-bottom:86px}.site-footer{width:calc(100% - 28px);padding-bottom:100px}.mobile-nav{position:fixed;z-index:80;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);padding:7px;border:1px solid #333339;border-radius:18px;background:rgba(20,20,23,.96);box-shadow:0 14px 40px rgba(0,0,0,.55);backdrop-filter:blur(18px)}.mobile-nav a{display:flex;min-width:0;flex-direction:column;align-items:center;gap:2px;padding:5px 2px;border-radius:11px;color:#ddd;text-decoration:none}.mobile-nav a:active{background:#303035;color:var(--accent)}.mobile-nav span{font-size:1.22rem;line-height:1}.mobile-nav small{font-size:.65rem;white-space:nowrap}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-form{grid-template-columns:1fr}.issue{grid-template-columns:58px minmax(0,1fr)}.issue img,.cover-placeholder{width:50px;height:68px}.issue form,.issue>.button{grid-column:1/-1;width:100%}.auth-page .page-shell{padding-bottom:0}.auth-page .site-footer{padding-bottom:30px}}
@media(max-width:520px){body{font-size:15px}.brand-copy strong{font-size:1rem}.page-shell{width:calc(100% - 22px);margin-top:18px}.card{padding:18px;border-radius:16px}.cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cover-card{padding:8px;border-radius:14px}.cover-card .button{min-height:40px;padding:8px;font-size:.84rem}.stats-grid{gap:10px}.stat{padding:17px}.admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-tabs .button{width:100%;padding:9px;font-size:.86rem}.button-row>*{width:100%}.auth-page .topbar{justify-content:center}.auth-page .brand{flex-direction:column;text-align:center}.auth-page .site-logo,.auth-page .brand-mark{width:82px;height:82px;flex-basis:82px;border-radius:20px}.auth-page .brand-copy strong{font-size:1.3rem}.auth-page .brand-copy small{font-size:.8rem}.auth-page .page-shell{margin-top:8px}.auth-page .page-shell>.card{padding:22px}.auth-page .page-shell>.card h1{font-size:1.7rem}}
.invite-result{margin-top:1rem;padding:1rem;border:1px solid var(--border,#333);border-radius:14px;background:rgba(255,204,0,.06)}
.invite-result input{margin:.65rem 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.status-badge{display:inline-flex;padding:.3rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}
.status-badge.active{background:rgba(46,204,113,.16);color:#75e6a2}
.status-badge.inactive{background:rgba(255,255,255,.08);color:#bbb}
button.danger,.button.danger{background:#7d2323;color:#fff;border-color:#a43a3a}
.success-inline{padding:.7rem .85rem;border-radius:10px;background:rgba(46,204,113,.12);color:#83e5aa}
.admin-tabs{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem}
.admin-tabs .button{margin:0}
@media(max-width:720px){.table-wrap table{min-width:760px}.invite-result .secondary{width:100%}}
.nav-install,.footer-install{appearance:none;border:1px solid rgba(255,204,0,.45);background:rgba(255,204,0,.10);color:#ffcc00;border-radius:999px;padding:.55rem .85rem;font:inherit;font-weight:750;cursor:pointer}.nav-install:hover,.footer-install:hover{background:#ffcc00;color:#111}.site-footer{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.footer-install{font-size:.86rem}.pwa-installed [data-pwa-install]{display:none!important}

/* FanzineDB 0.8 – App UI */
:root{--accent-soft:rgba(255,208,0,.12);--accent-line:rgba(255,208,0,.32);--glass:rgba(20,20,23,.76)}
html[data-theme="light"]{color-scheme:light;--bg:#f4f4f0;--surface:#fff;--surface-2:#f8f8f5;--line:#deded7;--text:#171715;--muted:#686862;--shadow:0 18px 50px rgba(30,30,20,.12);--glass:rgba(255,255,255,.86)}
html[data-theme="light"] body{background:radial-gradient(circle at 50% -20%,#fff3b7 0,transparent 34rem),var(--bg)}
html[data-theme="light"] .topbar{background:var(--glass);border-color:rgba(0,0,0,.08)}
html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:#fff;color:#171715;border-color:#d5d5ce}
html[data-theme="light"] .live-suggestions,html[data-theme="light"] th{background:#fff}
html[data-theme="light"] .mobile-nav{background:rgba(255,255,255,.94);border-color:#d8d8d0}
html[data-theme="light"] .desktop-nav a{color:#4f4f49}
html[data-theme="light"] .secondary{background:#e8e8e2;color:#222}
body{background-attachment:fixed}
.topbar{box-shadow:0 8px 28px rgba(0,0,0,.12)}
.desktop-nav a.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-line)}
.icon-button{width:42px;height:42px;min-height:42px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:1.05rem;box-shadow:none}
.icon-button:hover{transform:none;background:var(--accent-soft);color:var(--accent)}
.page-shell{animation:fdb-enter .26s ease-out}
@keyframes fdb-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.page-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:4px 0 28px;padding:28px;border:1px solid var(--accent-line);border-radius:26px;background:linear-gradient(135deg,var(--accent-soft),transparent 58%),var(--surface);box-shadow:var(--shadow)}
.page-hero h1{margin:0}.page-hero p{margin:.6rem 0 0}.eyebrow{display:inline-flex;margin-bottom:10px;color:var(--accent);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.card,.stat,.cover-card{transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.card:hover,.cover-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent-line)}
.magazine-card{position:relative;overflow:hidden;min-height:245px;display:flex;flex-direction:column}.magazine-card:before{content:"";position:absolute;right:-70px;top:-70px;width:190px;height:190px;border-radius:50%;background:var(--accent-soft);filter:blur(2px)}.magazine-card>*{position:relative}.magazine-card .button{margin-top:auto;align-self:flex-start}.magazine-meta{display:flex;justify-content:space-between;gap:10px;margin:12px 0;color:var(--muted);font-size:.9rem}.progress{height:9px}.progress>span{background:linear-gradient(90deg,var(--accent-2),var(--accent))}
.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:76px;height:76px;border-radius:50%;right:-30px;bottom:-35px;background:var(--accent-soft)}.stat strong{color:var(--accent)}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:34px 0 15px}.section-heading h2{margin:0}
.cover-card{position:relative}.cover-card img,.cover-placeholder.big{transition:transform .25s ease}.cover-card:hover img{transform:scale(1.025)}.cover-card .cover-info{display:grid;gap:3px}.cover-card .cover-info small{color:var(--muted)}
.search-form{border-color:var(--accent-line);box-shadow:var(--shadow)}.search-form input[name="q"]{font-size:1.04rem}.live-suggestions{overflow:hidden}.live-suggestions a{transition:background .15s}.live-suggestions strong{display:block}.live-suggestions .suggestion-cover{width:36px;height:48px;border-radius:5px;object-fit:cover}.live-suggestions a{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}
.mobile-nav a.active{background:var(--accent-soft);color:var(--accent)}.mobile-nav a.active span{transform:translateY(-1px)}
.site-footer{justify-content:space-between}.footer-actions{display:flex;gap:8px;align-items:center}
.auth-page .page-shell>.card{border-color:var(--accent-line)}
.admin-tabs{position:sticky;top:88px;z-index:20;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--glass);backdrop-filter:blur(16px)}
.empty-state{text-align:center;padding:42px 22px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}
@media(max-width:860px){.page-hero{align-items:flex-start;flex-direction:column;padding:22px}.hero-actions{width:100%}.hero-actions .button{flex:1}.admin-tabs{top:76px}.site-footer{justify-content:center}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.page-hero{padding:19px;border-radius:20px}.page-hero h1{font-size:1.9rem}.magazine-card{min-height:220px}.mobile-nav{left:8px;right:8px}.mobile-nav a.active{box-shadow:inset 0 0 0 1px var(--accent-line)}.stat strong{font-size:1.85rem}}


/* FanzineDB 0.9 – Collection polish */
.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,.75fr);gap:18px;margin-top:22px}.section-heading.compact{margin:0 0 14px}.progress-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(120px,2fr) 48px;align-items:center;gap:14px;padding:12px 0;color:var(--text);border-bottom:1px solid var(--line)}.progress-row:last-child{border-bottom:0}.progress-row>span{display:grid}.progress-row small{color:var(--muted)}.progress-row b{text-align:right;color:var(--accent)}.quick-card{display:grid;align-content:start;gap:8px}.quick-card h2{margin-bottom:5px}.quick-card a{padding:12px;border-radius:12px;background:var(--surface-2);color:var(--text);border:1px solid transparent}.quick-card a:hover{border-color:var(--accent-line);background:var(--accent-soft)}
.polished-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px}.issue-tile{padding:10px}.cover-media{position:relative;overflow:hidden;border-radius:12px;aspect-ratio:3/4;background:var(--surface-2)}.cover-media img,.cover-media .cover-placeholder{width:100%;height:100%;object-fit:cover;border-radius:0}.cover-placeholder.big{display:grid;place-items:center;min-height:0;font-size:1.5rem;font-weight:900;color:var(--muted);background:linear-gradient(145deg,var(--surface-2),var(--accent-soft))}.owned-badge,.favorite-badge{position:absolute;z-index:2}.owned-badge{left:8px;bottom:8px;padding:5px 8px;border-radius:999px;background:rgba(11,11,12,.82);color:#8df0ae;font-size:.72rem;font-weight:800;backdrop-filter:blur(8px)}.favorite-badge{right:8px;top:8px;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:rgba(11,11,12,.78);color:var(--accent);font-size:1.05rem}.cover-info{padding:10px 2px 4px}.cover-info strong,.cover-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-actions{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:7px}.tile-actions form,.tile-actions button{width:100%;margin:0}.tile-actions .icon-only{width:43px;padding:8px;font-size:1.15rem}.issue-tile.is-owned{border-color:rgba(70,210,120,.35)}.issue-tile.is-owned .cover-media:after{content:"";position:absolute;inset:0;border:2px solid rgba(70,210,120,.28);border-radius:12px;pointer-events:none}
.magazine-hero{align-items:center}.magazine-progress{min-width:230px;padding:18px;border-radius:18px;background:var(--surface-2);border:1px solid var(--line)}.magazine-progress strong{display:block;font-size:2rem;color:var(--accent)}.magazine-progress span{display:block;color:var(--muted);margin:2px 0 12px}.view-toolbar{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px;color:var(--muted)}.view-toolbar>div{display:flex;gap:6px}.view-toolbar .active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}[data-issue-grid].list-view{display:grid;grid-template-columns:1fr;gap:10px}[data-issue-grid].list-view .issue-tile{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:13px}[data-issue-grid].list-view .cover-media{width:72px;aspect-ratio:3/4}[data-issue-grid].list-view .cover-info{min-width:0}[data-issue-grid].list-view .tile-actions{margin:0;min-width:180px}.recent-strip{display:flex;gap:10px;overflow:auto;padding-bottom:6px;scrollbar-width:thin}.recent-chip{min-width:190px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);display:grid}.recent-chip small{color:var(--muted)}.back-link{display:inline-flex;margin-bottom:14px;color:var(--muted)}.back-link:hover{color:var(--accent)}
.js-issue-action.is-loading{opacity:.6;pointer-events:none}
@media(max-width:800px){.dashboard-columns{grid-template-columns:1fr}.magazine-progress{width:100%;min-width:0}.polished-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.tile-actions{grid-template-columns:1fr auto}.tile-actions button{font-size:.78rem;padding:8px 6px}[data-issue-grid].list-view .issue-tile{grid-template-columns:58px minmax(0,1fr)}[data-issue-grid].list-view .cover-media{width:58px}[data-issue-grid].list-view .tile-actions{grid-column:1/-1;min-width:0}}
@media(max-width:420px){.polished-grid{gap:8px}.issue-tile{padding:7px}.cover-info strong{font-size:.88rem}.cover-info small{font-size:.75rem}.owned-badge{font-size:.64rem;padding:4px 6px}.progress-row{grid-template-columns:1fr 45px}.progress-row .progress{grid-column:1/-1;grid-row:2}}
