:root{
  --bg:#F3F4EA; --bg-elevated:#FFFFFF; --bg-sunken:#EBEDDF;
  --ink:#1B2A22; --ink-muted:#5B6A5E; --border:#D9DBC5;
  --accent:#1F5C3F; --accent-strong:#123D28; --accent-tint:#E4EDE3;
  --gold:#A9781F; --gold-soft:#F1E6C8;
  --status-open:#8B8F7E; --status-open-bg:#EBEBE0;
  --status-progress:#B25A1E; --status-progress-bg:#F6E2CE;
  --status-done:#276E77; --status-done-bg:#DCECEC;
  --error:#B4432D; --error-bg:#FBE6E1;
  --shadow: 0 1px 2px rgba(20,30,20,0.06), 0 6px 20px rgba(20,30,20,0.06);
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#101C16; --bg-elevated:#17261E; --bg-sunken:#0C1712;
    --ink:#E8EDE6; --ink-muted:#9FB0A2; --border:#2B3D31;
    --accent:#4FAE7C; --accent-strong:#6FCB98; --accent-tint:#1B3327;
    --gold:#D9A93F; --gold-soft:#332912;
    --status-open:#8B9A8E; --status-open-bg:#20302A;
    --status-progress:#E08A4C; --status-progress-bg:#3A2A1B;
    --status-done:#5FC0CB; --status-done-bg:#173235;
    --error:#E08A78; --error-bg:#3A201B;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px rgba(0,0,0,0.35);
  }
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg); color:var(--ink); font-family:'Karla','Segoe UI',sans-serif; font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Fraunces','Georgia',serif; margin:0; color:var(--ink);}
a{color:var(--accent-strong);}
.eyebrow{font-family:'Karla',sans-serif; text-transform:uppercase; letter-spacing:0.09em; font-size:0.7rem; font-weight:600; color:var(--ink-muted);}

header.masthead{background:linear-gradient(180deg, var(--accent-strong), var(--accent)); color:#F4F6EE; padding:28px clamp(16px,4vw,48px) 0;}
.masthead-inner{max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-bottom:22px;}
.masthead-brand{display:flex; align-items:center; gap:18px;}
.masthead-text h1{font-size:clamp(1.4rem,3vw,2.1rem); color:#fff; font-weight:600;}
.masthead-text p{margin:2px 0 0; color:rgba(244,246,238,0.78); font-size:0.9rem;}
.masthead-user{font-size:0.85rem; color:rgba(244,246,238,0.85); display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.masthead-user a{color:#fff; text-decoration:underline;}
.badge-role{background:rgba(244,246,238,0.16); padding:3px 10px; border-radius:999px; font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;}

nav.subtabs{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:24px; border-bottom:1px solid var(--border); padding-bottom:12px;}
nav.subtabs a{appearance:none; border:1px solid var(--border); background:var(--bg-elevated); color:var(--ink-muted); font-family:'Karla',sans-serif; font-weight:600; font-size:0.82rem; padding:7px 14px; border-radius:999px; cursor:pointer; text-decoration:none; display:inline-block;}
nav.subtabs a:hover{color:var(--ink); border-color:var(--accent);}
nav.subtabs a.active{background:var(--accent); color:#fff; border-color:var(--accent);}

nav.tabs{max-width:1180px; margin:0 auto; display:flex; gap:4px; border-top:1px solid rgba(244,246,238,0.18); overflow-x:auto;}
nav.tabs a{appearance:none; border:none; background:transparent; color:rgba(244,246,238,0.72); font-family:'Karla',sans-serif; font-weight:600; font-size:0.88rem; padding:14px 18px 12px; cursor:pointer; white-space:nowrap; border-bottom:3px solid transparent; letter-spacing:0.01em; text-decoration:none; display:inline-block;}
nav.tabs a:hover{color:#fff;}
nav.tabs a.active{color:#fff; border-bottom-color:var(--gold);}

main{max-width:1180px; margin:0 auto; padding:28px clamp(16px,4vw,48px) 80px;}
section{margin-bottom:36px;}
section > h2{font-size:1.3rem; font-weight:600; margin-bottom:4px;}
.section-rule{height:2px; width:46px; background:var(--gold); margin:10px 0 20px; border-radius:2px;}

.flash{padding:12px 16px; border-radius:10px; margin-bottom:20px; font-size:0.9rem; font-weight:600;}
.flash.error{background:var(--error-bg); color:var(--error);}
.flash.success{background:var(--accent-tint); color:var(--accent-strong);}

input[type="text"], input[type="password"], input[type="date"], input[type="time"], textarea, select{
  font-family:'Karla',sans-serif; font-size:0.88rem; color:var(--ink); background:var(--bg-sunken);
  border:1px solid var(--border); border-radius:6px; padding:6px 8px; width:100%;
}
input:focus, textarea:focus, select:focus{outline:none; box-shadow:0 0 0 2px var(--accent) inset; background:var(--accent-tint);}
textarea{resize:vertical;}
label{font-size:0.72rem; color:var(--ink-muted); display:block; margin-bottom:3px;}

.status-select{padding:5px 8px; font-weight:700; font-size:0.76rem; border-radius:999px; border:1px solid transparent; width:auto;}
.status-select.status-offen{background:var(--status-open-bg); color:var(--status-open);}
.status-select.status-in_arbeit{background:var(--status-progress-bg); color:var(--status-progress);}
.status-select.status-erledigt{background:var(--status-done-bg); color:var(--status-done);}

.status-pill{display:inline-block; border-radius:999px; font-weight:700; font-size:0.72rem; letter-spacing:0.03em; padding:5px 12px;}
.status-pill.status-offen{background:var(--status-open-bg); color:var(--status-open);}
.status-pill.status-in_arbeit{background:var(--status-progress-bg); color:var(--status-progress);}
.status-pill.status-erledigt{background:var(--status-done-bg); color:var(--status-done);}

table{border-collapse:collapse; width:100%; background:var(--bg-elevated); border-radius:10px; overflow:hidden;}
.table-scroll{overflow-x:auto; border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow);}
th,td{border-bottom:1px solid var(--border); border-right:1px solid var(--border); padding:8px 10px; text-align:left; vertical-align:middle; font-size:0.86rem;}
th{background:var(--accent); color:#fff; font-weight:600; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.03em; border-color:var(--accent-strong);}
td:last-child, th:last-child{border-right:none;}
tr:last-child td{border-bottom:none;}
tr.zebra td{background:var(--bg-sunken);}

.col-del{width:40px; text-align:center;}
.btn-del{appearance:none; border:none; background:none; color:var(--ink-muted); font-size:1.1rem; cursor:pointer; line-height:1; padding:2px 6px; border-radius:6px;}
.btn-del:hover{color:var(--error); background:var(--bg-sunken);}

.toolbar{display:flex; justify-content:flex-end; gap:10px; margin-bottom:10px; flex-wrap:wrap;}
.btn{appearance:none; border:1px solid var(--accent); background:var(--accent); color:#fff; font-family:'Karla',sans-serif; font-weight:700; font-size:0.82rem; padding:9px 16px; border-radius:8px; cursor:pointer;}
.btn:hover{background:var(--accent-strong); border-color:var(--accent-strong);}
.btn-add{background:var(--accent-tint); color:var(--accent-strong); border:1px dashed var(--accent);}
.btn-add:hover{background:var(--accent); color:#fff;}
.btn-danger{background:var(--error-bg); color:var(--error); border:1px solid var(--error);}
.btn-danger:hover{background:var(--error); color:#fff;}
.btn-ghost{background:transparent; color:var(--accent-strong); border:1px solid var(--border);}

.two-col-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:20px;}
@media (max-width:340px){ .two-col-grid{grid-template-columns:1fr;} }

.shift-table th.corner{background:var(--accent-strong);}
.shift-table th[scope="row"]{background:var(--gold-soft); color:var(--ink); font-family:'Fraunces',serif; font-weight:600; font-size:0.84rem; text-transform:none; letter-spacing:0; white-space:nowrap;}
.shift-table td{padding:6px 8px;}
.shift-table input{margin-bottom:4px;}
.shift-table input:last-child{margin-bottom:0;}
.helfer-sep{color:var(--ink-muted); margin:0 3px;}
.weekday-tag{display:inline-block; margin-left:6px; font-size:0.72rem; font-weight:700; color:var(--ink-muted);}

.dup-toggle{display:flex; align-items:center; gap:6px; font-size:0.84rem; color:var(--ink-muted); margin-bottom:10px; cursor:pointer; width:fit-content;}
.dup-toggle input{width:auto;}
.shift-table input.dup-name{background:var(--error-bg); border-color:var(--error); color:var(--error);}

.week-list th[scope="rowgroup"]{background:var(--gold-soft); color:var(--ink); font-family:'Fraunces',serif; font-weight:600; text-transform:none; letter-spacing:0; font-size:0.9rem; text-align:center;}
tr.add-row-tr td{background:var(--bg-sunken); text-align:center; border-right:none;}

.cal-scroll{overflow-x:auto; border-radius:12px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,minmax(120px,1fr)); border:1px solid var(--border); border-radius:12px; overflow:hidden; box-shadow:var(--shadow); background:var(--border); gap:1px;}
.cal-head{background:var(--accent); color:#fff; font-weight:600; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.03em; padding:9px 10px;}
.cal-cell{background:var(--bg-elevated); min-height:44px; padding:4px;}
.cal-cell.readonly{padding:8px 10px; font-size:0.82rem; min-height:auto;}

.cal-cell.month-blank{background:var(--bg-sunken);}
.cal-cell.month-day{min-height:88px; padding:6px 6px 8px; display:flex; flex-direction:column; gap:4px;}
.cal-cell .day-num{font-family:'Fraunces',serif; font-weight:600; font-size:0.78rem; color:var(--ink-muted);}
.cal-cell .day-entry{font-size:0.78rem; line-height:1.35; background:var(--accent-tint); color:var(--accent-strong); border-radius:5px; padding:2px 6px; word-break:break-word;}
.day-entry-row{display:flex; gap:4px; align-items:center;}
.day-entry-row input{font-size:0.78rem; padding:3px 6px;}
.day-entry-row .day-del-form{flex:none;}
.day-entry-row .btn-del{font-size:0.95rem; padding:0 4px;}
.day-add-form{display:flex; gap:3px;}
.day-add-form input{font-size:0.74rem; padding:3px 6px; background:transparent; border-style:dashed; min-width:0;}
.day-add-form button{appearance:none; border:1px dashed var(--accent); background:var(--accent-tint); color:var(--accent-strong); border-radius:5px; font-size:0.78rem; font-weight:700; line-height:1; padding:0 7px; cursor:pointer; flex:none;}
.day-add-form button:hover{background:var(--accent); color:#fff;}

.notes-block{white-space:pre-wrap; background:repeating-linear-gradient(var(--bg-elevated), var(--bg-elevated) 27px, var(--border) 28px); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); min-height:220px; padding:16px 20px; font-size:0.95rem; line-height:28px;}
textarea.notes-input{min-height:220px; line-height:1.6; font-size:0.95rem;}

.news-layout{display:grid; grid-template-columns:2fr 1fr; gap:24px; align-items:start;}
.news-feed{display:flex; flex-direction:column; gap:16px;}
.news-post{background:var(--bg-elevated); border:1px solid var(--border); border-radius:14px; padding:20px 22px; box-shadow:var(--shadow);}
.news-post h3{font-size:1.15rem; font-weight:600;}
.news-post .meta{font-size:0.76rem; color:var(--ink-muted); margin:4px 0 12px;}
.news-post .body{white-space:pre-wrap; font-size:0.92rem; line-height:1.6;}
.news-empty{color:var(--ink-muted); font-size:0.9rem;}

.pinboard{background:var(--bg-sunken); border:1px solid var(--border); border-radius:14px; padding:18px; box-shadow:var(--shadow); position:sticky; top:16px;}
.pinboard h2{font-size:1.05rem;}
.pinboard .section-rule{margin:8px 0 16px;}
.pin-day{margin-bottom:16px;}
.pin-day:last-child{margin-bottom:0;}
.pin-day-label{font-family:'Fraunces',serif; font-weight:600; font-size:0.88rem; color:var(--ink); margin-bottom:8px;}
.pin-card{background:var(--gold-soft); border:1px solid var(--border); border-radius:8px; padding:10px 12px; margin-bottom:8px; box-shadow:0 2px 6px rgba(20,30,20,0.08); position:relative;}
.pin-card:nth-child(even){transform:rotate(-0.6deg);}
.pin-card:nth-child(odd){transform:rotate(0.6deg);}
.pin-card::before{content:""; position:absolute; top:-5px; left:14px; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 1px 2px rgba(20,30,20,0.3);}
.pin-card .txt{font-size:0.84rem; line-height:1.4;}
.pin-card .sub{font-size:0.72rem; color:var(--ink-muted); margin-top:3px;}
.pin-card.note{background:var(--accent-tint);}
.pin-card.note::before{background:var(--accent);}
.pinboard-empty{color:var(--ink-muted); font-size:0.84rem;}
.pin-more{display:inline-block; font-size:0.78rem; font-weight:600; color:var(--accent-strong); text-decoration:none; margin-top:2px;}
.pin-more:hover{text-decoration:underline;}

@media (max-width:860px){ .news-layout{grid-template-columns:1fr;} .pinboard{position:static;} }

.auth-wrap{max-width:920px; margin:48px auto; padding:0 20px;}
.auth-intro{max-width:420px; margin:0 auto; text-align:center;}
.auth-intro .hint{margin-top:6px;}
.auth-card{background:var(--bg-elevated); border:1px solid var(--border); border-radius:14px; padding:24px; box-shadow:var(--shadow);}
.auth-card h2{font-size:1.15rem; margin-bottom:4px;}
.auth-card p.hint{font-size:0.82rem; color:var(--ink-muted); margin:4px 0 16px;}
.auth-card .field{margin-bottom:14px;}
.auth-collapse{max-width:420px; margin:20px auto 0;}
.auth-collapse summary{cursor:pointer; text-align:center; font-size:0.84rem; color:var(--ink-muted); list-style:none; padding:6px 0;}
.auth-collapse summary::-webkit-details-marker{display:none;}
.auth-collapse summary:hover{color:var(--accent-strong);}
.auth-collapse summary::after{content:" ▾"; font-size:0.7rem;}
.auth-collapse[open] summary::after{content:" ▴";}
.auth-collapse .auth-card{margin-top:12px;}

.auth-footer{text-align:center; margin-top:22px; font-size:0.88rem; color:var(--ink-muted);}
.setup-note{background:var(--gold-soft); border:1px solid var(--gold); color:var(--ink); padding:12px 16px; border-radius:10px; font-size:0.85rem; margin-top:20px;}

footer.site-footer{text-align:center; padding:24px; color:var(--ink-muted); font-size:0.78rem;}

@media (max-width:640px){ .cal-grid{grid-template-columns:repeat(7,minmax(96px,1fr));} }
