:root{
  --table:#EBEDEA; --paper:#F4F5F2; --ink:#17181A; --ink-2:#222426;
  --line:#D7D9D4; --rebate:#6E726E; --rebate-light:#9A9E99; --chinagraph:#DD3A1F;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Spectral',Georgia,serif;background:var(--paper);color:var(--ink);
  -webkit-font-smoothing:antialiased;line-height:1.55}
a{color:inherit}
.mono{font-family:'Space Mono',ui-monospace,monospace}
.display{font-family:'Archivo',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.01em}

/* ---------- Topbar ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.7rem 1.1rem;background:var(--ink);color:var(--table);position:sticky;top:0;z-index:30}
.topbar .brand{display:flex;align-items:baseline;gap:1.0rem}
.topbar b{font-family:'Archivo',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:1rem}
.topbar .hint{font-family:'Space Mono',monospace;font-size:.64rem;letter-spacing:.06em;color:var(--rebate-light)}
.topbar a.navlink{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rebate-light);text-decoration:none}
.topbar a.navlink:hover{color:var(--table)}
.actions {display: flex; justify-content: space-between; align-items: center; width: 100%; }
.right-actions {display: flex; gap: 0.5rem; }
.account-actions {display: flex; gap: .5rem;}
.btn{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  border:1px solid #3a3c3e;background:transparent;color:var(--table);padding:.55rem .8rem;border-radius:3px;transition:.2s;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.btn:hover{border-color:var(--table)}
.btn.primary{background:var(--chinagraph);border-color:var(--chinagraph);color:#fff}
.btn.primary:hover{filter:brightness(1.08)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--table)}

/* ---------- Galerie (Startseite) ---------- */
.hero-head{padding:clamp(2.5rem,6vw,4.5rem) 1.1rem 1.5rem;max-width:1100px;margin:0 auto}
.hero-head .eyebrow{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rebate);margin-bottom:.9rem}
.hero-head h1{font-family:'Archivo',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(2rem,6vw,3.6rem);line-height:.98}
.hero-head p{margin-top:1rem;max-width:54ch;color:#3a3c3e;font-size:1.1rem}
.grid{max-width:1100px;margin:1.5rem auto 4rem;padding:0 1.1rem;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.3rem}
.card{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:.2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px -18px #0006;border-color:#c7c9c3}
.card .thumb{aspect-ratio:16/10;background:#17181A center/cover no-repeat;border-bottom:1px solid var(--line)}
.card .body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.card h3{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1.15rem}
.card p{font-size:.92rem;color:#54565a;flex:1}
.card .go{margin-top:.4rem}
.empty{max-width:1100px;margin:2rem auto;padding:2rem 1.1rem;text-align:center;color:var(--rebate);font-family:'Space Mono',monospace;font-size:.85rem}

/* ---------- Editor ---------- */
.shell{height:calc(100vh - 52px);display:grid;grid-template-columns:minmax(380px,460px) 1fr;min-height:0}
.controls{overflow-y:auto;padding:1.1rem 1.1rem 5rem;border-right:1px solid var(--line);background:#fff}
.preview{position:relative;background:#d9dbd6}
.preview iframe{width:100%;height:100%;border:0;background:var(--table)}
.preview .plabel{position:absolute;top:8px;left:10px;font-family:'Space Mono',monospace;font-size:.62rem;
  letter-spacing:.1em;color:#5a5c58;background:#ffffffcc;padding:.2rem .5rem;border-radius:3px;pointer-events:none}
.savebar{position:absolute;bottom:10px;left:10px;right:10px;display:none;align-items:center;gap:.6rem;
  background:#fffffff2;border:1px solid var(--line);border-radius:4px;padding:.5rem .7rem;
  font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.04em}
.savebar input{flex:1;font-family:'Space Mono',monospace;font-size:.66rem;border:1px solid var(--line);padding:.4rem;border-radius:3px}

fieldset{border:1px solid var(--line);border-radius:4px;padding:.9rem 1rem 1.1rem;margin-bottom:1rem}
legend{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rebate);padding:0 .4rem}
label.fld{display:block;margin:.55rem 0}
label.fld>span{display:block;font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rebate);margin-bottom:.25rem}
input[type=text],textarea,select.sel{width:100%;font-family:'Spectral',serif;font-size:.92rem;color:var(--ink);
  background:#fff;border:1px solid var(--line);padding:.5rem .6rem;border-radius:3px}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--chinagraph)}
textarea{resize:vertical;min-height:64px;line-height:1.45;font-family:'Spectral',serif}
select.sel{font-family:'Space Mono',monospace;font-size:.78rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}

.item{border:1px solid var(--line);border-radius:4px;padding:.7rem;margin-bottom:.7rem;background:#FBFBFA}
.item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.item-head .n{font-family:'Space Mono',monospace;font-size:.64rem;letter-spacing:.1em;color:var(--rebate)}
.mini{display:flex;gap:.25rem}
.mini button{font-family:'Space Mono',monospace;font-size:.62rem;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);width:26px;height:26px;border-radius:3px;line-height:1}
.mini button:hover{border-color:var(--chinagraph);color:var(--chinagraph)}
.mini button.del:hover{background:var(--chinagraph);color:#fff;border-color:var(--chinagraph)}

.dropzone{position:relative;aspect-ratio:4/3;border:1.5px dashed var(--line);border-radius:4px;display:grid;place-items:center;
  text-align:center;cursor:pointer;background:#fff center/cover no-repeat;color:var(--rebate);
  font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.06em;transition:.2s;overflow:hidden}
.dropzone:hover{border-color:var(--chinagraph)}
.dropzone.drag{border-color:var(--chinagraph);background-color:#fff4f1}
.dropzone.has-img{border-style:solid;color:transparent}
.dropzone .ph{padding:.6rem;line-height:1.5}
.dropzone .clear{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:3px;border:none;background:#000a;color:#fff;cursor:pointer;font-size:.7rem;display:none}
.dropzone.has-img .clear{display:block}
.dropzone input[type=file]{display:none}
.chk{display:flex;align-items:center;gap:.4rem;font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.06em;color:var(--ink);margin-top:.5rem;cursor:pointer}
.add{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:1px dashed var(--line);background:#fff;color:var(--ink);padding:.55rem;width:100%;border-radius:3px}
.add:hover{border-color:var(--chinagraph);color:var(--chinagraph)}

/* ---------- Admin ---------- */
.wrap-narrow{max-width:760px;margin:0 auto;padding:1.6rem 1.1rem 4rem}
.wrap-narrow h2{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1.5rem;margin-bottom:.4rem}
.wrap-narrow p.lead{color:#54565a;margin-bottom:1.4rem}
.note{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.04em;color:var(--rebate);margin-top:.4rem}
.callout{border:1px solid var(--line);border-left:3px solid var(--chinagraph);background:#fff;border-radius:4px;padding:.9rem 1rem;margin:1rem 0;font-size:.9rem;color:#444}
.status{font-family:'Space Mono',monospace;font-size:.72rem;letter-spacing:.04em;margin-top:1rem;min-height:1.2em}
.status.ok{color:#2e7d4f}.status.err{color:#c0563f}

@media(max-width:820px){
  .shell{height:auto;grid-template-columns:1fr}
  .preview{height:72vh}
}

/* ---------- Auth / Konto ---------- */
.auth-card{max-width:420px;margin:8vh auto;background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.6rem 1.5rem}
.auth-card h2{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1.4rem;margin-bottom:.3rem}
.auth-card p.sub{color:#54565a;font-size:.95rem;margin-bottom:1.2rem}
.auth-card label.fld input{font-size:1rem;padding:.6rem .7rem}
.tabs{display:flex;gap:.4rem;margin-bottom:1.2rem}
.tabs button{flex:1;font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--rebate);padding:.6rem;border-radius:3px}
.tabs button.active{background:var(--ink);color:var(--table);border-color:var(--ink)}
.btn-block{width:100%;justify-content:center;margin-top:.6rem}
.section-title{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rebate);margin:1.8rem 0 .8rem}
.owned-flag{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#2e7d4f;border:1px solid #bfe0cb;background:#f0f8f2;border-radius:3px;padding:.15rem .4rem}
.proj-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line);border-radius:4px;padding:.7rem .9rem;background:#fff;margin-bottom:.55rem}
.proj-row .meta b{font-family:'Archivo',sans-serif;text-transform:uppercase;font-size:.95rem}
.proj-row .meta span{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--rebate);margin-left:.5rem}
.lockbox{margin:2rem;padding:2rem;border:1px solid var(--line);border-radius:6px;background:#fff;text-align:center}
.lockbox h3{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;margin-bottom:.5rem}
.lockbox p{color:#54565a;margin-bottom:1.1rem}

/* ---------- Session / Auth ---------- */
.topbar #session{display:flex;gap:1rem;align-items:center}
.topbar .who{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:.04em;color:var(--rebate-light)}
.linkbtn{background:none;border:none;color:var(--rebate-light);font-family:'Space Mono',monospace;
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:0}
.linkbtn:hover{color:var(--table)}
.badge{font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:999px;padding:.15rem .55rem;color:var(--rebate)}
.badge.owned{color:#2e7d4f;border-color:#bfe0cb;background:#f2faf5}
.card .price{font-family:'Space Mono',monospace;font-size:.78rem;color:var(--ink)}
.card .foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.3rem}

/* Auth-Karte */
.auth-wrap{max-width:400px;margin:8vh auto;padding:0 1.1rem}
.auth-card{border:1px solid var(--line);border-radius:6px;background:#fff;padding:1.6rem 1.5rem}
.auth-card h2{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;font-size:1.3rem;margin-bottom:.3rem}
.auth-tabs{display:flex;gap:.4rem;margin:1rem 0 1.2rem}
.auth-tabs button{flex:1;font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;border:1px solid var(--line);background:#fff;padding:.55rem;border-radius:3px;color:var(--rebate)}
.auth-tabs button.active{background:var(--ink);color:var(--table);border-color:var(--ink)}
.auth-card label{display:block;margin:.6rem 0}
.auth-card label span{display:block;font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rebate);margin-bottom:.25rem}
.auth-card input{width:100%;font-family:'Spectral',serif;font-size:.95rem;border:1px solid var(--line);padding:.6rem;border-radius:3px}
.auth-card input:focus{outline:none;border-color:var(--chinagraph)}
.auth-card .btn.primary{width:100%;justify-content:center;margin-top:1rem;padding:.7rem}

/* Konto */
.section-title{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rebate);margin:1.6rem 0 .8rem}
.plist{display:flex;flex-direction:column;gap:.5rem}
.prow{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:1px solid var(--line);
  border-radius:4px;padding:.7rem .9rem;background:#fff}
.prow .meta b{font-family:'Archivo',sans-serif;text-transform:uppercase;font-size:.95rem}
.prow .meta span{font-family:'Space Mono',monospace;font-size:.64rem;color:var(--rebate);display:block;margin-top:.15rem}
