:root{--ink:#171717;--bg:#f4f1ed;--paper:#fff;--line:#ddd6ce;--accent:#ad825a;--danger:#8f2525}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.panel{background:var(--paper);border:1px solid var(--line);padding:28px}.login{width:min(420px,100%);display:grid;gap:14px}.logo{font-family:Georgia,serif;font-size:42px;color:var(--accent);letter-spacing:4px}.login input,.form-grid input,.form-grid textarea,.form-grid select,.slot-card input,.gallery-item input,.gallery-item select{width:100%;padding:13px;border:1px solid var(--line);background:#fff}.login button,.primary{background:#171717;color:#fff;border:0;padding:14px;cursor:pointer}.danger{background:var(--danger);color:#fff;border:0;padding:12px 15px;cursor:pointer}#appView{min-height:100vh;display:grid;grid-template-columns:240px 1fr}aside{position:sticky;top:0;height:100vh;background:#121212;color:#fff;padding:28px 18px;display:flex;flex-direction:column;gap:8px}aside .logo{margin-bottom:22px}aside button,aside a{border:0;background:transparent;color:#bbb;text-align:left;padding:12px;text-decoration:none;cursor:pointer;border-radius:5px}aside button.active,aside button:hover,aside a:hover{background:#292929;color:#fff}aside #logout{margin-top:auto}main{padding:34px 4vw}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}header h1{font-family:Georgia,serif;font-weight:400;font-size:42px;margin:4px 0}.page{display:none}.page.active{display:block}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.metric{background:#fff;border:1px solid var(--line);padding:25px}.metric span{display:block;color:#777;font-size:12px;text-transform:uppercase;letter-spacing:1px}.metric strong{display:block;font-size:32px;margin-top:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid h2,.form-grid .full{grid-column:1/-1}.form-grid label,.slot-card label,.gallery-item label{display:grid;gap:7px;font-size:13px}.hint{color:#777}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions button{padding:12px 17px;cursor:pointer}.drop{border:2px dashed var(--line);padding:24px}.slot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:18px}.slot-card{background:#fff;border:1px solid var(--line);padding:18px}.slot-card form{display:grid;gap:12px}.slot-preview{height:320px;background:#eee;display:grid;place-items:center;margin-bottom:16px;overflow:hidden}.slot-preview img{width:100%;height:100%;object-fit:cover}.admin-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:18px}.gallery-item{background:#fff;border:1px solid var(--line)}.gallery-item>img{width:100%;height:360px;object-fit:cover;display:block}.gallery-item form{padding:16px;display:grid;gap:12px}.inquiry{background:#fff;border:1px solid var(--line);padding:20px;margin-bottom:12px}.inquiry header{margin:0 0 10px}.inquiry p{white-space:pre-wrap;color:#555}.inquiry select{padding:9px}#saveStatus{color:#555}.error{color:#a11!important}@media(max-width:900px){#appView{grid-template-columns:1fr}aside{position:relative;height:auto;flex-direction:row;overflow:auto;padding:12px}aside .logo{display:none}aside #logout{margin:0 0 0 auto}main{padding:22px 16px}.cards,.form-grid,.admin-gallery,.slot-grid{grid-template-columns:1fr}.form-grid h2,.form-grid .full{grid-column:auto}header h1{font-size:32px}}
.user-list{display:grid;gap:16px;margin-top:18px}.user-card{background:#fff;border:1px solid var(--line);padding:20px}.user-card header{margin:0 0 16px;align-items:flex-start}.user-card header h3{margin:0 0 5px}.user-card form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.user-card .full{grid-column:1/-1}.badge{display:inline-block;padding:6px 9px;border:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.badge.off{opacity:.55}@media(max-width:700px){.user-card form{grid-template-columns:1fr}.user-card .full{grid-column:auto}}

/* Login-/App-Sichtbarkeit: bewusst mit ID-Spezifität und !important.
   Dadurch können weder #appView { display:grid } noch Browser-/Alt-CSS den Zustand überstimmen. */
#loginView[hidden],#appView[hidden]{display:none!important}
body.auth-logged-in #loginView{display:none!important;visibility:hidden!important;pointer-events:none!important}
body.auth-logged-in #appView{display:grid!important;visibility:visible!important}
body.auth-logged-out #loginView{display:grid!important;visibility:visible!important}
body.auth-logged-out #appView{display:none!important;visibility:hidden!important;pointer-events:none!important}

#loginButton:disabled{opacity:.65;cursor:wait}
#loginStatus{min-height:1.25em;margin:0}
