:root{
  --bg:#FBFBF9; --surface:#FFFFFF; --surface-2:#F4F3EE;
  --petrol:#0E4D47; --petrol-tint:#E7F0EE;
  --ink:#1A211F; --muted:#6E7A76; --faint:#9AA39F; --line:#E7E4DD;
  --green:#2E7D32; --amber:#C77700;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);font-family:'Inter',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
.appbar{background:var(--petrol);color:#fff;padding:14px 20px}
.brand{font-family:'Space Grotesk';font-weight:600;font-size:17px;display:flex;align-items:center;gap:9px}
.brand .dot{width:9px;height:9px;border-radius:50%;background:#fff;opacity:.85}
.appbar .sub{font-size:12.5px;color:rgba(255,255,255,.72);margin-top:2px}
main{max-width:1180px;margin:0 auto;padding:18px}
.loading{color:var(--muted);padding:40px;text-align:center}

.weekhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.h1{font-family:'Space Grotesk';font-weight:600;font-size:20px}
.badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px}
.badge.draft{background:#FBF0DE;color:#8A5200}
.badge.free{background:#E6F1E6;color:#1E5C22}

.daytabs{display:flex;gap:7px;margin-bottom:14px;flex-wrap:wrap}
.daytab{padding:9px 16px;border:1.5px solid var(--line);background:var(--surface);border-radius:10px;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}
.daytab.active{background:var(--petrol);color:#fff;border-color:var(--petrol)}

.grid-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table.pgrid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.pgrid th,.pgrid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.g-corner{position:sticky;left:0;top:0;z-index:6;background:var(--surface-2);width:52px;min-width:52px}
.g-colh{position:sticky;top:0;z-index:4;background:var(--surface-2);min-width:60px;width:60px;padding:7px 3px;text-align:center;font-family:'Space Grotesk';font-weight:600;font-size:12px;color:var(--ink)}
.g-time{position:sticky;left:0;z-index:3;background:var(--surface-2);width:52px;min-width:52px;font-size:10px;color:var(--muted);text-align:right;padding:0 7px;height:24px}
.g-time.hour{color:var(--ink);font-weight:600}
.g-cell{min-width:60px;width:60px;height:24px;text-align:center;font-size:10px;font-weight:700;padding:0}
.g-pause{background:repeating-linear-gradient(45deg,#ECEAE3,#ECEAE3 3px,#E4E2DA 3px,#E4E2DA 6px);line-height:1.02;padding:1px 0}
.g-pause .pz{font-size:8px;font-weight:700;color:#6E7A76}
.g-pause .pm{font-size:7px;font-weight:600;color:#9AA39F}
.g-foot{position:sticky;bottom:0;z-index:3;background:var(--surface-2);font-size:10px;font-weight:700;text-align:center;color:var(--ink);height:24px;border-top:2px solid var(--petrol-tint)}
.g-footh{position:sticky;left:0;bottom:0;z-index:5;background:var(--surface-2);font-size:9.5px;font-weight:700;color:var(--petrol);text-align:right;padding:0 7px;border-top:2px solid var(--petrol-tint)}

.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lg{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--muted)}
.lg .sw{width:11px;height:11px;border-radius:3px}
.lg .sw.pause{background:repeating-linear-gradient(45deg,#ECEAE3,#ECEAE3 2px,#CFCDC6 2px,#CFCDC6 4px)}
.note{font-size:11.5px;color:var(--muted);line-height:1.55;margin-top:10px}

.weekpills{display:flex;gap:7px;margin-bottom:12px;flex-wrap:wrap}
.wpill{padding:8px 14px;border:1.5px solid var(--line);background:var(--surface);border-radius:10px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;font-family:'Inter'}
.wpill.active{background:var(--petrol);color:#fff;border-color:var(--petrol)}
.wpill.new{border-style:dashed;color:var(--petrol)}
.headactions{display:flex;align-items:center;gap:10px}
.btn{padding:10px 16px;border:none;border-radius:10px;background:var(--petrol);color:#fff;font-family:'Inter';font-size:13px;font-weight:600;cursor:pointer}
.btn:disabled{opacity:.6;cursor:wait}
.report{background:var(--petrol-tint);color:var(--petrol);border-radius:10px;padding:11px 14px;font-size:13px;font-weight:500;margin-bottom:12px}
.gapdot{display:inline-block;min-width:17px;padding:1px 5px;border-radius:9px;background:#FBF0DE;color:#8A5200;font-size:10.5px;font-weight:700;margin-left:4px}
.gaplist{font-size:12px;color:#8A5200;background:#FBF0DE;border-radius:9px;padding:9px 12px;margin-bottom:11px;line-height:1.6}

/* ---- Editor ---- */
.etoolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:9px 11px;margin-bottom:9px}
.tbtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 11px;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer;min-width:36px}
.tbtn.wide{font-size:12.5px;font-weight:600}
.tbtn:disabled{opacity:.4;cursor:default}
.tbtn:not(:disabled):hover{border-color:var(--petrol);color:var(--petrol)}
.tsep{width:1px;height:24px;background:var(--line)}
.tlabel{font-size:12px;font-weight:600;color:var(--muted)}
.palette{display:flex;gap:4px;flex-wrap:wrap}
.pchip{border:1px solid rgba(0,0,0,.08);border-radius:7px;padding:6px 9px;font-size:11.5px;font-weight:700;cursor:pointer;color:#fff}
.pchip.sel{outline:2.5px solid var(--petrol);outline-offset:1px}
.pchip.extra{background:#8A8F8C}
.pchip.add{background:var(--surface);color:var(--petrol);border:1.5px dashed var(--line)}
.tselect{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:'Inter';color:var(--ink);cursor:pointer}
.autosave{font-size:11.5px;color:var(--green);font-weight:600;margin-left:auto}
.hint{font-size:11.5px;color:var(--muted);margin-bottom:10px}
.hint b{color:var(--ink)}

.cal-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding-bottom:2px}
.cal{position:relative}
.cal-heads{display:flex;position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:2px solid var(--petrol-tint)}
.cal-corner{width:48px;flex:none}
.cal-chead{flex:none;text-align:center;font-family:'Space Grotesk';font-weight:600;font-size:12px;padding:6px 2px;color:var(--ink)}
.cal-body{display:flex;position:relative}
.cal-gutter{width:48px;flex:none;position:relative}
.cal-gt{position:absolute;right:6px;font-size:9.5px;color:var(--muted);transform:translateY(-50%);font-variant-numeric:tabular-nums}
.cal-area{position:relative;flex:none;background-image:linear-gradient(var(--line) 1px,transparent 1px);cursor:crosshair}
.cal-sep{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.tile{position:absolute;border-radius:6px;font-size:11px;font-weight:700;padding:2px 5px;cursor:grab;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.13);border:1px solid rgba(255,255,255,.25);user-select:none}
.tile .tt{line-height:1.15}
.tile .tm{font-size:8.5px;font-weight:600;opacity:.9}
.tile .rz{position:absolute;left:0;right:0;height:6px;cursor:ns-resize}
.tile .rz-top{top:0}.tile .rz-bot{bottom:0}
body.dragging{user-select:none;cursor:grabbing}
body.dragging .tile{cursor:grabbing}

.popover{position:absolute;z-index:100;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:0 8px 26px rgba(0,0,0,.16);padding:11px;width:210px}
.pop-h{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.pop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:9px}
.pop-t{border:none;border-radius:6px;padding:7px 2px;font-size:10.5px;font-weight:700;cursor:pointer;color:#fff}
.pop-del{width:100%;border:1px solid #E4C4C4;background:#FBEEEE;color:#B23A3A;border-radius:8px;padding:8px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:'Inter'}

/* ---- Navigation ---- */
.topnav{display:flex;gap:4px;margin-bottom:14px;border-bottom:2px solid var(--line);padding-bottom:0}
.navb{border:none;background:none;padding:10px 16px;font-family:'Space Grotesk';font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}
.navb.active{color:var(--petrol);border-bottom-color:var(--petrol)}
.navb:hover{color:var(--ink)}

/* ---- Jahreskalender ---- */
.ycal{border-collapse:separate;border-spacing:0;font-size:9px}
.ycal th,.ycal td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.yc-corner{position:sticky;left:0;top:0;z-index:6;background:var(--surface-2);width:26px;min-width:26px}
.yc-mh{position:sticky;top:0;z-index:4;background:var(--petrol);color:#fff;font-family:'Space Grotesk';font-weight:600;font-size:10.5px;padding:6px 3px;min-width:88px;width:88px;text-align:center}
.yc-day{position:sticky;left:0;z-index:3;background:var(--surface-2);width:26px;min-width:26px;text-align:center;font-weight:700;font-size:9.5px;color:var(--ink)}
.yc-cell{min-width:88px;width:88px;padding:2px 4px;vertical-align:top;line-height:1.3;background:var(--surface)}
.yc-cell .ywd{color:var(--faint);font-weight:600;margin-right:4px}
.yc-cell .ycds{font-weight:700;color:#123A35}
.yc-cell .yhn{color:#B23A3A;font-weight:600}
.yc-cell .yhn.cl{color:#9A7B12}
.yc-cell.we{background:#F1F0EB}
.yc-cell.hol{background:#FBE9E9}
.yc-cell.closed{background:#FEF4D6}
.yc-cell.blank{background:repeating-linear-gradient(45deg,#F7F6F2,#F7F6F2 4px,#F1F0EA 4px,#F1F0EA 8px)}

/* ---- Druck / PDF ---- */
@media print{
  .appbar,.topnav,.weekpills,.daytabs,.etoolbar,.hint,.headactions,.report,.weekhead .badge{display:none!important}
  .weekhead{margin:0 0 6px}
  body{background:#fff}
  main{max-width:none;padding:0}
  .grid-scroll,.cal-scroll{overflow:visible!important;border:none!important;max-height:none!important}
  .g-colh,.yc-mh{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .g-cell,.yc-cell,.tile{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ycal{font-size:7px}
  .yc-mh{font-size:8px;padding:3px 2px}
  .yc-cell{padding:1px 3px}
  .pgrid{font-size:8px}
}

/* ---- Alle MFAs: abwesende schmal+grau ---- */
.g-colh.narrow{min-width:16px;width:16px;background:#F1F0EB;border-bottom-color:var(--line)}
.g-cell.narrow{min-width:16px;width:16px;background:repeating-linear-gradient(45deg,#F5F4EF,#F5F4EF 3px,#ECEBE4 3px,#ECEBE4 6px)}

/* ---- Plan-Legende (auch im Druck) ---- */
.planlegend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;font-size:11.5px}
.planlegend .ll{font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:10.5px}
.planlegend .lg{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--ink)}
.planlegend .sw{width:12px;height:12px;border-radius:3px;flex:none}

/* ---- Jahreskalender: höher, Tag+KW je Zelle ---- */
.yc-idx{position:sticky;left:0;z-index:3;background:var(--surface-2);width:22px;min-width:22px;text-align:center;font-weight:700;font-size:9px;color:var(--faint)}
.ycal td.yc-cell{height:30px}
.yc-cell .yl1{white-space:nowrap;line-height:1.25}
.yc-cell .yl2{line-height:1.2;margin-top:1px}
.yc-cell .yd{font-weight:700;color:var(--ink);margin-right:3px}
.yc-cell .ywd{color:var(--faint);font-weight:600}
.yc-cell .ykw{color:var(--petrol);font-weight:700;font-size:7.5px;margin-left:5px}
.yc-cell .ycds{font-weight:700;color:#123A35}
.yc-cell .yhn{color:#B23A3A;font-weight:600}
.yc-cell .yhn.cl{color:#9A7B12}

/* ---- Druck: Legende sichtbar lassen ---- */
@media print{
  .planlegend{border:1px solid #ccc;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .planlegend .sw{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .g-colh.narrow,.g-cell.narrow{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ykw{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
