@font-face { font-family:"DM Sans"; src:url("assets/fonts/dm-sans-latin.woff2") format("woff2"); font-style:normal; font-weight:400 700; font-display:swap; }
@font-face { font-family:"DM Sans"; src:url("assets/fonts/dm-sans-latin-ext.woff2") format("woff2"); font-style:normal; font-weight:400 700; font-display:swap; unicode-range:U+0100-024F,U+1E00-1EFF; }
@font-face { font-family:"Manrope"; src:url("assets/fonts/manrope-latin.woff2") format("woff2"); font-style:normal; font-weight:600 800; font-display:swap; }
@font-face { font-family:"Manrope"; src:url("assets/fonts/manrope-latin-ext.woff2") format("woff2"); font-style:normal; font-weight:600 800; font-display:swap; unicode-range:U+0100-024F,U+1E00-1EFF; }
:root { --red:#d71920; --ink:#17191c; --muted:#72767c; --bg:#f3f2ef; --line:#e2e0dc; --paper:#fff; --green:#2f875f; --radius:16px; --shadow:0 12px 35px rgba(22,25,28,.08); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--bg); font-family:"DM Sans",sans-serif; }
body.auth-pending .admin-sidebar,body.auth-pending .admin-main { visibility:hidden; }
.login-screen { position:fixed; inset:0; z-index:100; display:none; place-items:center; padding:24px; background:radial-gradient(circle at 80% 15%,#5b1619 0,transparent 35%),#151719; }
body.auth-pending.needs-login .login-screen { display:grid; }
.login-card { width:min(430px,100%); padding:38px; background:white; border-radius:20px; box-shadow:0 28px 80px rgba(0,0,0,.28); }
.login-card img { width:92px; height:68px; object-fit:contain; margin-bottom:20px; }
.login-card p { margin:0 0 5px; color:var(--red); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.login-card h1 { margin:0 0 7px; font:800 30px "Manrope"; letter-spacing:-.04em; }
.login-card > span { display:block; margin-bottom:25px; color:var(--muted); }
.login-card label { margin-top:15px; }
.login-card .button { width:100%; margin-top:20px; }
.login-card > a { display:block; margin-top:18px; color:var(--muted); font-size:13px; text-align:center; }
.login-error { min-height:20px; margin-top:10px; color:var(--red); font-size:13px; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.admin-sidebar { position:fixed; inset:0 auto 0 0; z-index:20; width:250px; display:flex; flex-direction:column; padding:26px 18px; color:#d8dadd; background:#151719; }
.admin-brand { display:flex; align-items:center; gap:12px; margin:0 8px 34px; color:white; text-decoration:none; }
.admin-brand img { width:64px; height:46px; object-fit:contain; border-radius:8px; }
.admin-brand span { display:flex; flex-direction:column; }
.admin-brand strong { font:800 18px "Manrope"; }
.admin-brand small { color:#8d9298; }
.admin-sidebar nav { display:flex; flex-direction:column; gap:5px; }
.admin-nav { display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:10px; padding:12px 14px; color:#aaaeb3; background:transparent; border:0; border-radius:10px; text-align:left; cursor:pointer; }
.admin-nav:hover,.admin-nav.active { color:white; background:#282b2f; }
.admin-nav.active { box-shadow:inset 3px 0 var(--red); }
.admin-nav b { min-width:22px; padding:2px 6px; background:#3b3e42; border-radius:9px; font-size:11px; text-align:center; }
.sidebar-footer { display:flex; align-items:center; gap:10px; margin-top:auto; padding:16px 10px 0; border-top:1px solid #303337; }
.sidebar-footer div { display:flex; flex-direction:column; font-size:12px; }
.sidebar-footer small { color:#878c91; }
.status-dot { width:9px; height:9px; background:#e5aa42; border-radius:50%; box-shadow:0 0 0 4px rgba(229,170,66,.12); }
.admin-main { min-height:100vh; margin-left:250px; }
.admin-topbar { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:15px 34px; background:white; border-bottom:1px solid var(--line); }
.admin-topbar p,.panel-intro p,.card-head p,.welcome-card p { margin:0 0 3px; color:var(--red); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.admin-topbar h1 { margin:0; font:800 25px "Manrope"; letter-spacing:-.03em; }
.top-actions { display:flex; align-items:center; gap:10px; }
.current-user { max-width:150px; overflow:hidden; color:#55595e; font-size:12px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.save-state { margin-right:8px; color:#888c91; font-size:12px; }
.save-state.dirty { color:#b37400; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 16px; border:0; border-radius:9px; font-weight:700; text-decoration:none; cursor:pointer; }
.button.primary { color:white; background:var(--red); }
.button.secondary { color:var(--ink); background:white; border:1px solid var(--line); }
.prototype-notice { display:flex; gap:14px; align-items:center; padding:12px 34px; color:#225f45; background:#e9f4ee; border-bottom:1px solid #cbe5d7; font-size:13px; }
.prototype-notice strong { white-space:nowrap; }
.admin-content { padding:34px; }
.admin-panel { display:none; }
.admin-panel.active { display:block; }
.welcome-card { min-height:190px; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:34px 40px; color:white; background:linear-gradient(105deg,#1b1d20 0%,#23262a 60%,#5b1619 100%); border-radius:var(--radius); overflow:hidden; }
.welcome-card h2 { max-width:620px; margin:6px 0 8px; font:800 clamp(28px,4vw,42px)/1.08 "Manrope"; letter-spacing:-.04em; }
.welcome-card span { color:#aeb1b5; }
.welcome-card a { display:flex; gap:25px; align-items:center; padding:14px 18px; color:white; border:1px solid #55595e; border-radius:10px; text-decoration:none; white-space:nowrap; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:18px 0; }
.stats-grid article { display:flex; gap:16px; align-items:center; padding:22px; background:white; border:1px solid var(--line); border-radius:var(--radius); }
.stat-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; font-size:20px; }
.stat-icon.red { color:var(--red); background:#fce8e9; }.stat-icon.dark { color:white; background:#222528; }.stat-icon.beige { background:#eee8df; }.stat-icon.green { color:var(--green); background:#e4f2eb; }
.stats-grid div { display:grid; grid-template-columns:auto 1fr; gap:0 8px; align-items:end; }
.stats-grid small { grid-column:1/-1; color:var(--muted); }.stats-grid strong { font:800 30px/1 "Manrope"; }.stats-grid p { margin:0; color:#999da2; font-size:11px; }
.dashboard-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:18px; }
.admin-card { background:white; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 2px 3px rgba(0,0,0,.015); }
.dashboard-grid .admin-card { padding:26px; }
.card-head,.table-head { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.card-head h3,.table-head strong { margin:0; font:800 19px "Manrope"; }
.text-button { padding:0; color:var(--red); background:none; border:0; font-weight:700; cursor:pointer; }
.compact-list { margin-top:22px; }
.compact-item,.empty-admin { display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-top:1px solid var(--line); }
.compact-item strong,.compact-item span { display:block; }.compact-item span,.empty-admin { color:var(--muted); font-size:13px; }
.checklist-card { display:flex; flex-direction:column; gap:0; }.checklist-card .card-head { margin-bottom:12px; }.checklist-card label { padding:13px 0; border-top:1px solid var(--line); color:#55595e; }
.checklist-card input { accent-color:var(--red); }
.panel-intro { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:24px; }
.panel-intro h2 { margin:3px 0; font:800 35px "Manrope"; letter-spacing:-.04em; }.panel-intro span { color:var(--muted); }
.form-card { padding:0 28px; }
.form-section { padding:28px 0; border-bottom:1px solid var(--line); }.form-section:last-child { border:0; }.form-section h3 { margin:0 0 20px; font:800 19px "Manrope"; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
label { display:flex; flex-direction:column; gap:7px; color:#55595e; font-size:13px; font-weight:600; }
label.full { grid-column:1/-1; }
input,textarea,select { width:100%; padding:11px 12px; color:var(--ink); background:#fbfbfa; border:1px solid #d8d6d2; border-radius:8px; outline:none; }
input:focus,textarea:focus,select:focus { border-color:var(--red); box-shadow:0 0 0 3px rgba(215,25,32,.08); }
textarea { resize:vertical; }
.inline-editor { margin-bottom:18px; padding:22px; }
.inline-editor .form-grid { grid-template-columns:repeat(3,1fr); }
.toggle-label { flex-direction:row; align-items:center; align-self:end; min-height:42px; }.toggle-label input { width:auto; accent-color:var(--red); }
.editor-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.table-card { overflow:hidden; }.table-head { padding:19px 22px; border-bottom:1px solid var(--line); }.table-head span { color:var(--muted); font-size:12px; }
.admin-table-row { display:grid; grid-template-columns:1.1fr 1.5fr 1.4fr 110px; gap:18px; align-items:center; padding:15px 22px; border-bottom:1px solid var(--line); }.admin-table-row:last-child { border:0; }
.admin-table-row small,.admin-table-row span { color:var(--muted); }.admin-table-row strong { display:block; }
.row-actions { display:flex; justify-content:flex-end; gap:6px; }.icon-button { width:34px; height:34px; display:grid; place-items:center; color:#55595e; background:white; border:1px solid var(--line); border-radius:8px; cursor:pointer; }.icon-button.delete:hover { color:white; background:var(--red); }
.contact-admin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.contact-card { padding:22px; }.contact-card-head { display:flex; justify-content:space-between; align-items:start; gap:15px; }.avatar { width:44px; height:44px; display:grid; place-items:center; flex:0 0 auto; color:white; background:var(--ink); border-radius:50%; font-weight:800; }.contact-card h3 { margin:16px 0 2px; font:800 18px "Manrope"; }.contact-card > p { margin:0 0 15px; color:var(--red); font-size:12px; font-weight:700; }.contact-details { padding-top:14px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }.contact-details span { display:block; margin:4px 0; }.visibility { display:inline-flex!important; margin-top:8px!important; padding:3px 7px; background:#e9f4ee; color:var(--green); border-radius:6px; }
.image-assignment-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:18px; }.image-slot { overflow:hidden; }.image-slot img { width:100%; height:160px; object-fit:cover; }.image-slot div { padding:16px; }.image-slot h3 { margin:0 0 10px; font:800 16px "Manrope"; }.image-slot select { font-size:12px; }
.media-card { padding:24px; }.media-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:20px; }.media-item { overflow:hidden; border:1px solid var(--line); border-radius:10px; }.media-item img { width:100%; height:130px; object-fit:cover; background:#eee; }.media-item div { padding:10px; }.media-item strong { display:block; font-size:12px; }.media-item small { display:block; overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.add-media { display:grid; grid-template-columns:1fr 1.2fr 1.4fr auto; gap:12px; align-items:end; margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }.helper { margin-bottom:0; color:var(--muted); font-size:12px; }
.padded { padding:22px; }
.activity-row,.user-row { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:15px 22px; border-bottom:1px solid var(--line); }
.activity-row:last-child,.user-row:last-child { border-bottom:0; }
.activity-row strong,.activity-row small,.user-row strong,.user-row small { display:block; }
.activity-row small,.user-row small,.activity-row time,.user-row time { color:var(--muted); font-size:12px; }
.activity-mark { width:10px; height:10px; background:var(--green); border-radius:50%; box-shadow:0 0 0 4px #e4f2eb; }
.user-row { grid-template-columns:auto minmax(170px,1fr) auto minmax(210px,auto); }
.role-badge { padding:5px 9px; color:#55595e; background:#f1efeb; border-radius:7px; font-size:12px; font-weight:700; }
.settings-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.action-card { padding:28px; }.action-card > span { width:48px; height:48px; display:grid; place-items:center; background:#f1efeb; border-radius:12px; font-size:22px; }.action-card h3 { margin:20px 0 7px; font:800 19px "Manrope"; }.action-card p { min-height:48px; color:var(--muted); }.danger-button { color:var(--red); background:#fce8e9; }.file-button input { display:none; }
.toast { position:fixed; right:24px; bottom:24px; z-index:50; padding:13px 18px; color:white; background:#24272a; border-radius:9px; box-shadow:var(--shadow); opacity:0; transform:translateY(15px); pointer-events:none; transition:.25s; }.toast.show { opacity:1; transform:translateY(0); }
.mobile-admin-menu { display:none; }
@media(max-width:1180px){.add-media{grid-template-columns:1fr 1fr}.add-media .button{align-self:end}}
@media(max-width:1050px){.stats-grid{grid-template-columns:1fr 1fr}.image-assignment-grid,.media-grid{grid-template-columns:1fr 1fr}.contact-admin-grid{grid-template-columns:1fr 1fr}.save-state,.current-user{display:none}.user-row{grid-template-columns:auto 1fr auto}.user-row time{grid-column:2/4}}
@media(max-width:760px){.admin-sidebar{transform:translateX(-100%);transition:.25s}.admin-sidebar.open{transform:translateX(0)}.admin-main{margin-left:0}.mobile-admin-menu{display:block;border:0;background:none;font-size:22px}.admin-topbar{padding:14px 18px}.admin-topbar>div:first-of-type p{display:none}.top-actions .secondary{display:none}.admin-content{padding:20px 14px}.prototype-notice{padding:10px 16px;align-items:flex-start}.welcome-card,.panel-intro{align-items:flex-start;flex-direction:column}.welcome-card a{margin-top:15px}.stats-grid,.dashboard-grid,.contact-admin-grid,.settings-grid{grid-template-columns:1fr}.form-grid,.inline-editor .form-grid{grid-template-columns:1fr}label.full{grid-column:auto}.admin-table-row{grid-template-columns:1fr auto}.admin-table-row>div:nth-child(2),.admin-table-row>div:nth-child(3){grid-column:1/2}.row-actions{grid-column:2;grid-row:1/3}.image-assignment-grid,.media-grid{grid-template-columns:1fr 1fr}.add-media{grid-template-columns:1fr}.panel-intro .button{width:100%}}
@media(max-width:430px){.stats-grid,.image-assignment-grid,.media-grid{grid-template-columns:1fr}.top-actions .button.primary{font-size:0}.top-actions .button.primary::after{content:"Speichern";font-size:13px}}
