  :root{
    --bg:#F2F4EF;
    --surface:#FFFFFF;
    --surface-alt:#EAEDE7;
    --ink:#16262A;
    --ink-soft:#5B6B6E;
    --ink-faint:#8B9A9C;
    --line:#DAE0D9;
    --line-strong:#B9C2B8;
    --accent:#2F6F62;
    --accent-dark:#1E4F45;
    --accent-soft:#E1EEEA;
    --over:#A8721C;
    --over-soft:#F5EAD5;
    --under:#3A5A78;
    --under-soft:#E4EBF1;
    --danger:#B23A2E;
    --danger-soft:#F5E1DE;
    --radius:7px;
    --font-display:Arial, Helvetica, sans-serif;
    --font-mono:Arial, Helvetica, sans-serif;
  }
  *{box-sizing:border-box;}
  html{scrollbar-gutter:stable;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--font-display);
    font-size:14px;
    line-height:1.45;
    -webkit-font-smoothing:antialiased;
  }
  .app{max-width:100%;margin:0;padding:8px clamp(16px, 2.5vw, 56px) 40px;}

  /* ---------- Topbar ---------- */
  .topbar{
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:10px;
    padding:10px clamp(16px, 2.5vw, 56px) 6px;margin:0 calc(-1 * clamp(16px, 2.5vw, 56px)) 8px;
    border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:30;background:var(--bg);
  }
  .brand{display:flex;align-items:center;gap:8px;}
  .brand-mark{
    width:26px;height:26px;border-radius:6px;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    flex:0 0 auto;
  }
  .brand-mark img{width:100%;height:100%;object-fit:contain;display:block;}
  .brand h1{font-size:.95rem;font-weight:700;margin:0;letter-spacing:-.02em;line-height:1;}
  .brand .sub{display:none;}
  .month-nav{display:flex;align-items:center;gap:6px;}
  .month-nav button:not(.user-menu-btn){
    width:24px;height:24px;border-radius:5px;border:1px solid var(--line-strong);
    background:var(--surface);color:var(--ink);font-size:13px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  }
  .month-nav button:hover:not(.user-menu-btn){background:var(--accent-soft);border-color:var(--accent);}
  .topbar .month-nav .btn-today{width:auto;padding:0 9px;font-size:.7rem;font-weight:600;font-family:var(--font-display);}
  .month-nav input[type=month]{
    width:170px;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:5px;padding:3px 6px;font-family:var(--font-mono);
    background:var(--surface);color:var(--ink);font-size:.76rem;
  }
  .save-status{
    width:82px;flex:0 0 auto;box-sizing:border-box;text-align:center;font-size:.64rem;font-family:var(--font-mono);
    padding:3px 8px;border-radius:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .save-status:empty{padding:0;width:0;}
  .save-status.saving{color:var(--ink-soft);background:var(--surface-alt);}
  .save-status.saved{color:var(--accent-dark);background:var(--accent-soft);}
  .save-status.error{color:var(--danger);background:var(--danger-soft);}
  .save-status.unavailable{color:var(--ink-faint);background:var(--surface-alt);}
  .db-icon-btn{
    width:24px;height:24px;flex:0 0 auto;border-radius:6px;border:1px solid var(--line-strong);
    display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--surface);
  }
  .db-icon-btn.green{color:#1E7D46;background:#E5F6EC;border-color:#1E7D46;}
  .db-icon-btn.yellow{color:#8A6400;background:#FFF3D6;border-color:#C99A1F;}
  .db-icon-btn.red{color:#A3312B;background:#FBE6E4;border-color:#A3312B;}
  .lock-icon-btn{position:relative;}
  .lock-icon-btn.no-password{
    width:24px;height:24px;flex:0 0 auto;border-radius:6px;border:1px solid var(--line-strong);
    display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--surface);
    color:var(--ink-soft);font-size:.85rem;padding:0;
  }
  .lock-x{position:absolute;top:-4px;right:-5px;color:#fff;background:var(--danger);border-radius:50%;
    width:12px;height:12px;font-size:.55rem;font-weight:900;line-height:12px;text-align:center;}

  /* ---------- Tabs (inline in der Kopfzeile) ---------- */
  .tabs-inline{display:flex;gap:5px;flex-wrap:wrap;}
  .tabs-inline .tab{
    border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);
    padding:4px 10px;border-radius:13px;font-family:var(--font-display);
    font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;
  }
  .tabs-inline .tab:hover{border-color:var(--accent);color:var(--ink);}
  .tabs-inline .tab.active{background:var(--accent);border-color:var(--accent);color:#fff;}
  .tabs-inline .tab.tab-has-open{background:#FFF3D6;border-color:#C99A1F;color:#8A6400;box-shadow:0 0 0 2px rgba(201,154,31,0.35);}
  .tabs-inline .tab.tab-has-open.active{background:#C99A1F;border-color:#C99A1F;color:#fff;}
  .tab-settings-wrap{position:relative;display:inline-block;}
  .tab-settings-wrap .tab{font-size:.9rem;line-height:1;padding:7px 11px;}
  .tab-dropdown-menu{
    position:absolute;top:calc(100% + 4px);left:0;background:var(--surface);border:1px solid var(--line-strong);
    border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,0.14);z-index:50;display:flex;flex-direction:column;
    min-width:130px;overflow:hidden;
  }
  .tab-dropdown-menu button{
    border:none;background:none;padding:9px 14px;text-align:left;font-family:var(--font-display);
    font-size:.78rem;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;
  }
  .tab-dropdown-menu button:hover{background:var(--accent-soft);}
  .tab-dropdown-menu button.active{color:var(--accent-dark);}

  h2.section-title{font-size:1.05rem;font-weight:700;margin:0 0 4px;}
  p.section-hint{color:var(--ink-soft);font-size:.83rem;margin:0 0 18px;max-width:640px;}

  /* ---------- Cards / forms ---------- */
  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:20px;}

  /* ---------- Startseite ---------- */
  .home-row{display:grid;gap:14px;margin-bottom:14px;}
  .home-row-2{grid-template-columns:1fr 1fr;}
  .home-row-3{grid-template-columns:1fr 1fr 1fr;}
  .home-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;
    display:flex;flex-direction:column;height:clamp(140px, 20vh, 220px);}
  .home-card.home-card-auto{height:auto;min-height:140px;}
  .home-card.home-card-auto .home-card-body{overflow:visible;}
  .home-card.home-card-tall{height:clamp(200px, 32vh, 340px);}
  .home-card-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex:0 0 auto;}
  .home-card-head strong{font-size:.86rem;}
  .home-card-hint{margin-left:auto;font-size:.62rem;color:var(--ink-faint);}
  .home-card-body{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:7px;padding-right:2px;}
  .home-stat-row{display:flex;align-items:center;justify-content:space-between;border-radius:6px;padding:7px 10px;font-size:.78rem;font-weight:600;flex:0 0 auto;}
  .home-problem-row{border-radius:6px;padding:6px 9px;font-size:.72rem;display:flex;justify-content:space-between;gap:6px;flex:0 0 auto;background:var(--danger-soft);color:var(--danger);}
  .home-note-item{display:flex;align-items:flex-start;gap:6px;background:var(--surface-alt);border-radius:6px;padding:7px 9px;flex:0 0 auto;}
  .home-note-item-body{flex:1 1 auto;min-width:0;}
  .home-note-item-content{font-size:.78rem;line-height:1.4;color:var(--ink);word-break:break-word;white-space:pre-wrap;}
  .home-note-item-meta{font-size:.6rem;color:var(--ink-faint);margin-top:3px;}
  .home-note-delete{flex:0 0 auto;border:none;background:none;color:var(--ink-faint);font-size:.85rem;line-height:1;cursor:pointer;padding:2px 4px;border-radius:4px;}
  .home-note-delete:hover{color:var(--danger);background:var(--danger-soft);}
  .home-note-add-input{flex:1 1 auto;min-width:0;border:1px solid var(--line-strong);border-radius:6px;
    padding:8px 9px;font-family:var(--font-display);font-size:.78rem;background:var(--surface);color:var(--ink);}
  .home-note-add-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
  .home-note-edit-textarea{width:100%;min-height:60px;resize:vertical;border:1px solid var(--accent);border-radius:6px;
    padding:8px 9px;font-family:var(--font-display);font-size:.78rem;background:var(--surface);color:var(--ink);}
  .home-note-edit-textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
  @media (max-width:720px){ .home-row-2, .home-row-3{grid-template-columns:1fr;} .home-card{height:auto;min-height:160px;} }
  .ticket-list{display:flex;flex-direction:column;gap:10px;}
  .ticket-card{background:var(--surface);border:1px solid var(--line-strong);border-left:4px solid var(--over);border-radius:8px;padding:12px 16px;}
  .ticket-card.ticket-done{border-left-color:var(--accent);opacity:.75;}
  .ticket-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;}
  .ticket-text{margin:0 0 8px;font-size:.85rem;white-space:pre-wrap;}
  .ticket-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
  .ticket-meta{font-size:.7rem;margin:0 0 2px;}
  .ticket-notes-input{
    width:100%;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:6px;padding:6px 8px;
    font-family:var(--font-display);font-size:.8rem;resize:vertical;
  }
  .ticket-notes-input:disabled{background:var(--surface-alt);color:var(--ink-soft);}
  details.ticket-done-details summary{list-style:none;color:var(--ink-soft);}
  details.ticket-done-details summary::-webkit-details-marker{display:none;}
  details.ticket-done-details summary::before{content:'▸ ';}
  details.ticket-done-details[open] summary::before{content:'▾ ';}
  .stempel-cell{cursor:pointer;text-align:center;}
  .stempel-cell:hover{background:var(--surface-alt);}
  .stempel-incomplete{color:var(--danger);font-weight:600;}
  .vac-matrix-table{border-collapse:collapse;table-layout:fixed;}
  .vac-matrix-table th, .vac-matrix-table td{border:1px solid var(--line-strong);padding:0;}
  .vac-matrix-table th.vac-matrix-month, .vac-matrix-table td.vac-matrix-month{width:76px;min-width:76px;max-width:76px;padding:6px 8px;font-size:.72rem;color:var(--ink-soft);white-space:nowrap;}
  .vac-matrix-table th.vac-matrix-cell, .vac-matrix-table td.vac-matrix-cell{width:150px;min-width:150px;max-width:150px;padding:6px 10px;text-align:center;font-size:.78rem;}
  .vac-matrix-table th.vac-matrix-cell{font-weight:600;background:var(--surface-alt);}
  .vac-pill{display:block;max-width:calc(100% - 8px);box-sizing:border-box;margin:2px auto;padding:2px 8px;border-radius:9px;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;text-align:center;}
  .vac-pill-ok{background:rgba(58,150,90,.22);color:#3A965A;}
  .vac-pill-open{background:var(--over-soft);color:var(--over);}
  .vac-pill-no{background:var(--danger-soft);color:var(--danger);}
  .vac-pill-start{border-radius:9px 3px 3px 9px;}
  .vac-pill-end{border-radius:3px 9px 9px 3px;}
  .vac-pill-mid{border-radius:3px;}
  .inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}
  .field{display:flex;flex-direction:column;gap:4px;}
  .field label{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
  .field input, .field textarea, .field select{
    border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;font-size:.88rem;
    font-family:var(--font-display);background:var(--surface);color:var(--ink);min-width:160px;
  }
  .field textarea{width:100%;min-width:0;resize:vertical;line-height:1.4;}
  .field input:focus, .field textarea:focus, .field select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
  .field.small input{min-width:110px;}
.shift-tpl-form .field{width:120px;flex:0 0 120px;}
.shift-tpl-form .field input{width:100%;max-width:120px;box-sizing:border-box;min-width:0;}
.shift-tpl-form input[type="color"]{height:38px;padding:2px;cursor:pointer;max-width:120px;}
.staffing-weekday-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
.staffing-weekday-col{display:flex;flex-direction:column;gap:6px;width:92px;}
.staffing-weekday-label{font-size:.74rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:700;text-align:center;padding-bottom:2px;border-bottom:1px solid var(--line);margin-bottom:2px;}
.staffing-weekday-col .field{gap:2px;}
.staffing-weekday-col .field input{width:100%;box-sizing:border-box;min-width:0;padding:6px 7px;font-size:.8rem;}
  .field-select{
    border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;font-size:.85rem;
    font-family:var(--font-display);background:var(--surface);color:var(--ink);min-width:280px;
  }
  .field-select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
  .btn{
    border:none;border-radius:6px;padding:9px 16px;font-size:.83rem;font-weight:600;cursor:pointer;
    font-family:var(--font-display);display:inline-flex;align-items:center;gap:6px;
  }
  .btn-primary{background:var(--accent);color:#fff;}
  .btn-primary:hover{background:var(--accent-dark);}
  .btn-ghost{background:none;border:1px solid var(--line-strong);color:var(--ink);}
  .btn-ghost:hover{background:var(--surface-alt);}
  .btn-danger-text{background:none;border:none;color:var(--danger);font-size:.78rem;font-weight:600;cursor:pointer;padding:4px 6px;}
  .btn-danger-text:hover{text-decoration:underline;}
  .btn-small{padding:6px 11px;font-size:.76rem;}
  .btn-field-height{height:38px;box-sizing:border-box;display:inline-flex;align-items:center;}
  .lock-icon-btn{padding:6px 9px;font-size:.95rem;line-height:1;}

  /* ---------- Tables (general) ---------- */
  table{border-collapse:collapse;width:100%;font-size:.82rem;}
  .table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);}
  th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;}
  thead th{
    background:var(--surface-alt);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;
    color:var(--ink-soft);font-weight:700;position:sticky;top:0;
  }
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover{background:#FAFBF8;}
  .num{font-family:var(--font-mono);text-align:right;}
  .muted{color:var(--ink-faint);}

  /* ---------- Employees list ---------- */
  .emp-row td{vertical-align:middle;}
  .emp-color-input{width:28px;height:28px;padding:0;border:1px solid var(--line-strong);border-radius:5px;cursor:pointer;vertical-align:middle;margin-right:6px;background:none;}
  .emp-name-input, .emp-weekly-input, .emp-default-input, .emp-date-input, .emp-balance-input{
    border:1px solid transparent;background:transparent;border-radius:4px;padding:4px 6px;
    font-family:var(--font-display);font-size:.85rem;color:var(--ink);width:180px;
  }
  .emp-weekly-input{width:70px;font-family:var(--font-mono);text-align:right;}
  .emp-default-input{width:60px;font-family:var(--font-mono);text-align:right;}
  .emp-date-input{width:130px;font-family:var(--font-mono);}
  .emp-balance-input{width:60px;font-family:var(--font-mono);text-align:right;}
  .emp-name-input:hover,.emp-weekly-input:hover,.emp-default-input:hover,.emp-date-input:hover,.emp-balance-input:hover{background:var(--surface-alt);}
  .emp-name-input:focus,.emp-weekly-input:focus,.emp-default-input:focus,.emp-date-input:focus,.emp-balance-input:focus{outline:2px solid var(--accent);background:#fff;border-color:var(--accent);}
  .shift-tpl-von, .shift-tpl-bis{
    border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;padding:5px 7px;
    font-family:var(--font-display);font-size:.82rem;color:var(--ink);width:104px;
  }
  .shift-tpl-von:hover, .shift-tpl-bis:hover{border-color:var(--accent);}
  .shift-tpl-von:focus, .shift-tpl-bis:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
  .shift-staffing-input{
    border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;padding:5px 7px;
    font-family:var(--font-display);font-size:.82rem;color:var(--ink);width:56px;text-align:center;
  }
  .shift-staffing-input:hover{border-color:var(--accent);}
  .shift-staffing-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
  .swatch{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px;}

  /* ---------- Empty state ---------- */
  .empty-state{
    text-align:center;padding:50px 20px;border:1px dashed var(--line-strong);border-radius:var(--radius);
    background:var(--surface);color:var(--ink-soft);
  }
  .empty-state h3{color:var(--ink);margin:0 0 6px;font-size:1rem;}
  .empty-state p{margin:0 0 16px;font-size:.85rem;}

  /* ---------- Modal (Zeitraum ausfüllen) ---------- */
  .modal-backdrop{position:fixed;inset:0;background:rgba(20,30,32,0.5);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;}
  .modal-box{background:var(--surface);border-radius:10px;padding:24px;max-width:600px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 14px 44px rgba(0,0,0,0.28);}
  .modal-form{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
  .bulk-emp-list, .bulk-weekday-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
  .bulk-check{display:flex;align-items:center;gap:5px;font-size:.8rem;background:var(--surface-alt);padding:4px 10px 4px 7px;border-radius:14px;cursor:pointer;}
  .bulk-check input[type=checkbox]{
    appearance:none;-webkit-appearance:none;-moz-appearance:none;
    width:12px;height:12px;min-width:12px;min-height:12px;max-width:12px;max-height:12px;
    border:1.5px solid var(--line-strong);border-radius:3px;background:var(--surface);
    cursor:pointer;flex:0 0 auto;margin:0;padding:0;position:relative;display:inline-block;
  }
  .bulk-check input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent);}
  .bulk-check input[type=checkbox]:checked::after{
    content:'';position:absolute;left:3px;top:-1px;width:3px;height:6px;
    border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg);
  }
  .bulk-check .bulk-check-label{max-width:15ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;}

  /* ---------- Schedule grid (Tage untereinander, Mitarbeiter nebeneinander) ---------- */
  .grid-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-height:calc(100vh - 108px);overflow-y:auto;}
  table.schedule{font-size:.74rem;table-layout:fixed;}
  table.schedule th, table.schedule td{padding:4px 5px;text-align:center;border-bottom:1px solid var(--line);}
  table.schedule thead th{position:sticky;top:0;z-index:6;background:var(--surface-alt);}
  table.schedule th.date-col, table.schedule td.date-col{
    text-align:left;position:sticky;left:18px;background:var(--surface-alt);z-index:2;width:88px;min-width:88px;
    border-right:2px solid var(--line-strong);font-weight:600;vertical-align:top;
  }
  table.schedule thead th.date-col{z-index:8;top:0;}
  table.schedule th.kw-col, table.schedule td.kw-col{
    width:18px;min-width:18px;max-width:18px;padding:2px 1px;position:sticky;left:0;
    background:var(--surface-alt);z-index:3;border-right:1px solid var(--line-strong);vertical-align:middle;
  }
  table.schedule thead th.kw-col{z-index:9;top:0;}
  table.schedule td.kw-col{text-align:center;padding-top:4px;}
  .week-activate-cb{display:block;width:12px;height:12px;margin:0 auto 4px;cursor:pointer;}
  .kw-vertical{
    writing-mode:vertical-lr;text-orientation:upright;font-size:.62rem;color:var(--ink-faint);
    text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;
  }
  table.schedule th.emp-header, table.schedule td.emp-cell{width:235px;min-width:235px;max-width:235px;position:relative;border-right:1px solid var(--line-strong);}
  table.schedule th.emp-header:last-child, table.schedule td.emp-cell:last-child{border-right:none;}
  .week-corner-badge{
    position:absolute;bottom:1px;right:3px;font-size:.52rem;font-family:var(--font-mono);font-weight:700;
    line-height:1;pointer-events:none;color:var(--ink-soft);
  }
  .cell-comment-btn{
    position:absolute;top:2px;right:3px;border:none;background:none;cursor:pointer;
    line-height:1;padding:0;opacity:.5;color:var(--ink-faint);display:flex;
  }
  .cell-comment-btn:hover{opacity:.9;}
  .cell-comment-btn.has-comment-open{opacity:1;color:var(--danger);}
  .cell-comment-btn.has-comment-resolved{opacity:.85;color:#C99A1F;}
  .cell-comment-btn:disabled{cursor:default;opacity:.3;}
  tr.week-summary-row{background:var(--surface-alt);}
  tr.week-summary-row td{padding-top:2px;padding-bottom:2px;}
  tr.week-summary-row td.date-col{font-size:.66rem;color:var(--ink-soft);}
  .week-summary-cell{font-family:var(--font-mono);font-size:.7rem;font-weight:700;white-space:nowrap;}
  .week-summary-ist{color:var(--ink-soft);font-weight:600;}
  .week-summary-sep{color:var(--line-strong);margin:0 4px;font-weight:400;}
  .week-summary-cum{font-size:.66rem;font-weight:600;margin-left:3px;}
  .kw-report-table table{font-size:.76rem;}
  .kw-report-table .kw-report-col{width:52px;max-width:52px;padding:4px 3px;white-space:nowrap;}
  .emp-header-hours{font-size:.62rem;font-weight:400;white-space:nowrap;}
  tr.samstag td, tr.samstag th{background-color:rgba(230,140,20,0.10);}
  tr.sonntag td, tr.sonntag th{background-color:rgba(230,110,10,0.18);}
  tr.feiertag-row td, tr.feiertag-row th{background-color:rgba(180,80,10,0.26);}
  table.schedule tr.week-end-border td{border-bottom:2px solid var(--line-strong);}
  .date-col-row{display:flex;align-items:baseline;gap:0;}
  table.schedule .weekday-label{font-size:.62rem;color:var(--ink-faint);text-transform:uppercase;width:18px;flex:0 0 auto;}
  table.schedule .date-label{font-family:var(--font-mono);font-weight:600;width:38px;flex:0 0 auto;font-size:.72rem;}
  .day-count{font-size:.62rem;color:var(--ink-faint);font-family:var(--font-mono);width:24px;flex:0 0 auto;}

  .month-activate-bar{
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:14px;
    border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent);
  }
  .month-activate-bar.inactive{background:var(--danger-soft);border-color:var(--danger);}
  .month-activate-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;cursor:pointer;}
  .month-activate-toggle input{width:16px;height:16px;cursor:pointer;accent-color:var(--accent);}
  .month-activate-warning{font-size:.78rem;color:var(--danger);font-weight:600;}
  table.schedule tr.plan-row td{padding-top:4px;}
  table.schedule tr.plan-row:hover td.emp-cell{background:var(--accent-soft);}
  table.schedule tr.plan-row:hover td.date-col{background:var(--accent-soft);}
  table.schedule tr.ist-row td.emp-cell{padding-bottom:4px;background-color:rgba(47,111,98,0.04);}
  .row-label-tag{font-size:.6rem;color:var(--ink-faint);text-transform:uppercase;display:inline-block;width:28px;}

  .shift-row{display:flex;align-items:center;justify-content:flex-start;gap:3px;flex-wrap:nowrap;white-space:nowrap;}
  .cell-time{
    width:40px;flex:0 0 auto;border:1px solid transparent;border-radius:4px;text-align:center;
    font-family:var(--font-mono);font-size:.68rem;padding:1px 0;background:transparent;color:var(--ink);
  }
  .time-sep, .eq-sep{color:var(--ink-faint);font-size:.6rem;flex:0 0 auto;}
  .pause-tag{color:var(--ink-faint);font-size:.56rem;text-transform:uppercase;flex:0 0 auto;}
  .cell-pause{
    width:30px;flex:0 0 auto;border:1px solid transparent;border-radius:4px;
    text-align:center;font-family:var(--font-mono);font-size:.62rem;padding:1px 0;background:transparent;color:var(--ink-faint);
  }
  .cell-time:hover, .cell-pause:hover{background:var(--surface-alt);}
  .cell-time:focus, .cell-pause:focus{outline:2px solid var(--accent);background:#fff;color:var(--ink);}
  tr.ist-row .cell-time{color:var(--accent-dark);font-weight:600;}
  tr.ist-row .hours-label{color:var(--accent-dark);}
  .hours-label{font-size:.62rem;font-family:var(--font-mono);flex:0 0 auto;margin-left:auto;padding-right:14px;}

  .type-dd{position:relative;flex:0 0 auto;}
  .type-dd-toggle{
    width:22px;height:18px;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:4px;
    font-family:var(--font-display);font-size:.62rem;font-weight:700;padding:0;background:var(--surface-alt);color:var(--ink-soft);
    cursor:pointer;line-height:1;
  }
  .type-dd-toggle:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);}
  .type-dd-toggle:disabled{cursor:default;opacity:.5;}
  .type-dd-list{
    position:absolute;top:calc(100% + 2px);left:0;background:var(--surface);border:1px solid var(--line-strong);
    border-radius:7px;box-shadow:0 6px 16px rgba(0,0,0,0.16);z-index:60;display:flex;flex-direction:column;
    min-width:104px;overflow:hidden;
  }
  .type-dd-list.type-dd-list-up{top:auto;bottom:calc(100% + 2px);}
  .type-dd-item{
    border:none;background:none;padding:6px 10px;text-align:left;font-family:var(--font-display);
    font-size:.72rem;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;
  }
  .type-dd-item:hover{background:var(--accent-soft);}
  .type-dd-item.active{color:var(--accent-dark);background:var(--surface-alt);}
  .cell-abwesenheit-stunden{
    width:40px;flex:0 0 auto;border:1px solid transparent;border-radius:4px;
    text-align:center;font-family:var(--font-mono);font-size:.66rem;padding:1px 0;background:transparent;color:var(--ink);
  }
  .cell-abwesenheit-stunden:hover{background:var(--surface-alt);}
  .cell-abwesenheit-stunden:focus{outline:2px solid var(--accent);background:#fff;}
  .abwesenheit-cell{padding-top:4px;padding-bottom:4px;}
  .abwesenheit-label{font-weight:600;text-align:center;}
  .abwesenheit-urlaub{background-color:rgba(58,90,120,0.09);}
  .abwesenheit-krank{background-color:rgba(178,58,46,0.09);}
  .abwesenheit-dienstreise{background-color:rgba(122,92,140,0.09);}
  .abwesenheit-frei{background-color:rgba(0,0,0,0.045);}
  .abwesenheit-feiertag{background-color:rgba(180,80,10,0.22);}
  .besetzung-warnung{background-color:var(--danger)!important;color:#fff!important;font-weight:700;border-radius:4px;}
  .monatsplan-report table{table-layout:fixed;width:100%;}
  .monatsplan-report th, .monatsplan-report td{padding:4px 6px;font-size:.76rem;}
  .monatsplan-report th.report-narrow-col, .monatsplan-report td.report-narrow-col{white-space:nowrap;text-align:center;overflow:hidden;}
  .monatsplan-report th:not(.report-date-col):not(.report-narrow-col),
  .monatsplan-report td:not(.report-date-col):not(.report-narrow-col){text-align:center;overflow:hidden;text-overflow:ellipsis;}
  tr.feiertag-row td.date-col, td.feiertag-date{color:var(--over);font-weight:700;}

  /* week summary block under grid */
  .week-summary-title{margin:22px 0 8px;}
  .ledger-bar{
    position:relative;height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden;width:90px;display:inline-block;vertical-align:middle;margin-left:8px;
  }
  .ledger-bar .mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line-strong);}
  .ledger-bar .fill{position:absolute;top:0;bottom:0;}
  .fill.over{background:var(--over);}
  .fill.under{background:var(--under);}
  .val-over{color:var(--over);font-weight:700;}
  .val-under{color:var(--under);font-weight:700;}
  .val-zero{color:var(--ink-faint);}

  /* ---------- Reports subnav ---------- */
  .report-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
  .monatsplan-report table{table-layout:fixed;width:100%;}
  .monatsplan-report th, .monatsplan-report td{text-align:center;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--line-strong);}
  .monatsplan-report th:last-child, .monatsplan-report td:last-child{border-right:none;}
  .monatsplan-report th.report-date-col, .monatsplan-report td.report-date-col{text-align:left;white-space:nowrap;width:92px;font-size:.72rem;overflow:visible;}
  .monatsplan-report .report-staff-count{color:var(--ink-faint);font-weight:400;font-size:.68rem;}
  .monatsplan-report td.abwesenheit-urlaub{background-color:rgba(58,90,120,0.09);}
  .monatsplan-report td.abwesenheit-krank{background-color:rgba(178,58,46,0.09);}
  .monatsplan-report td.abwesenheit-dienstreise{background-color:rgba(122,92,140,0.09);}
  .monatsplan-report td.abwesenheit-frei{background-color:rgba(0,0,0,0.045);}
  .monatsplan-report td.abwesenheit-feiertag{background-color:rgba(180,80,10,0.22);}
  .monatsplan-report td.abwesenheit-schule{background-color:rgba(58,120,90,0.09);}
  .monatsplan-report td.abwesenheit-termin{background-color:rgba(120,100,58,0.09);}
  .monatsplan-report tr.week-summary-row td{background:var(--accent-soft);font-weight:700;border-top:2px solid var(--accent);}
  /* Wochenende/Feiertag hat in diesen Berichten IMMER Vorrang vor der Schicht-Typ-Farbe */
  .monatsplan-report tr.samstag td{background-color:rgba(230,140,20,0.10);}
  .monatsplan-report tr.sonntag td{background-color:rgba(230,110,10,0.18);}
  .monatsplan-report tr.feiertag-row td{background-color:rgba(180,80,10,0.26);}
  /* Unterbesetzt-Warnung steht ganz am Ende, damit sie auch Wochenende/Feiertag übersticht */
  .monatsplan-report tr.report-understaffed-row td{background:var(--danger-soft);}
  .monatsplan-report tr.report-understaffed-row td.report-date-col{color:var(--danger);font-weight:700;}
  .report-urlaub-scroll{overflow-x:auto;}
  .report-urlaub-table{table-layout:auto!important;width:auto!important;}
  .report-urlaub-table th.report-date-col, .report-urlaub-table td.report-date-col{position:sticky;left:0;background:var(--surface);z-index:2;width:110px;min-width:110px;}
  .report-urlaub-table th.report-day-col, .report-urlaub-table td.report-day-col{width:22px;min-width:22px;max-width:22px;padding:2px 0;border-right:1px solid var(--line);overflow:visible;}
  .report-urlaub-table th.report-month-end, .report-urlaub-table td.report-month-end{border-right:3px solid var(--ink-soft);}
  .report-urlaub-table tr.report-filiale-start td, .report-urlaub-table td.report-filiale-start{box-shadow:inset 0 3px 0 0 var(--accent);}
  .report-urlaub-table th.report-month-name-col{border-right:3px solid var(--ink-soft);font-size:.68rem;font-weight:700;background:var(--surface-alt);white-space:nowrap;overflow:visible;padding:4px 2px;}
  .report-urlaub-table thead tr:first-child th{position:sticky;top:0;z-index:5;}
  .report-urlaub-table thead tr:nth-child(2) th{position:sticky;top:24px;z-index:5;background:var(--surface-alt);}
  .report-urlaub-table th.report-day-col{height:60px;vertical-align:bottom;overflow:visible;position:relative;}
  .report-urlaub-table tbody td{border-bottom:1px solid var(--line-strong);}
  .report-day-col-label{display:inline-block;transform:rotate(-55deg);transform-origin:bottom left;font-size:.62rem;font-weight:400;white-space:nowrap;position:absolute;bottom:2px;left:50%;}
  .report-nav button{
    border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);
    padding:8px 14px;border-radius:20px;font-size:.78rem;font-weight:600;cursor:pointer;font-family:var(--font-display);
  }
  .report-nav button:hover{border-color:var(--accent);color:var(--ink);}
  .report-nav button.active{background:var(--accent);border-color:var(--accent);color:#fff;}
  .report-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
  .report-actions{display:flex;gap:8px;}
  tfoot td{font-weight:700;background:var(--surface-alt);border-top:2px solid var(--line-strong);}
  .time-range{font-family:var(--font-mono);font-weight:600;white-space:nowrap;text-align:center;}

  .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.76rem;color:var(--ink-soft);margin-bottom:14px;}
  .legend span{display:inline-flex;align-items:center;gap:5px;}
  .legend .dot{width:8px;height:8px;border-radius:50%;}

  @page{ size: landscape; margin: 9mm; }

  @media print{
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; color-adjust: exact !important; }
    .topbar, .report-nav, .report-actions, .card, #scheduleAddNote{display:none !important;}
    body{background:#fff;}
    .app{max-width:none;padding:0;}
    .table-wrap, .grid-scroll{border:none;}
    .print-fit{page-break-inside:avoid;}
    .print-fit table{font-size:.68rem;}
    .print-fit th, .print-fit td{padding:3px 5px;white-space:nowrap;}
    .print-fit tr{page-break-inside:avoid;}
  }

  @media (max-width:640px){
    .brand h1{font-size:1.1rem;}
    .tabs-inline .tab{padding:6px 10px;font-size:.7rem;}
  }

/* ==========================================================================
   Ergänzungen für den Server-Client (Login, Mitarbeiter-Auswahl, Einstellungen-
   Karten für Sammel-Konto/Benutzerverwaltung) — nutzen bewusst dieselben Design-
   Tokens und denselben Button-/Card-Stil wie oben, damit es sich nahtlos einfügt.
   ========================================================================== */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.auth-card{width:100%;max-width:420px;}
.auth-card .brand{margin-bottom:20px;}
.auth-card .brand-mark{width:34px;height:34px;}
.auth-version-tag{font-size:.68rem;color:var(--ink-faint);font-family:var(--font-mono);white-space:nowrap;flex:0 0 auto;}
.auth-card h1{font-size:1.2rem;}
.error-box{background:var(--danger-soft);color:var(--danger);border-radius:7px;padding:9px 11px;font-size:.83rem;margin-bottom:14px;}
.badge{display:inline-block;font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:20px;background:var(--accent-soft);color:var(--accent-dark);text-transform:uppercase;letter-spacing:.03em;}
.user-menu-wrap{position:relative;margin-left:10px;flex-shrink:0;}
.user-menu-btn{
  display:flex;align-items:center;gap:6px;box-sizing:border-box;
  border:1px solid var(--line-strong);border-radius:20px;background:var(--surface);color:var(--ink);
  padding:4px 10px;font-family:var(--font-display);font-size:.76rem;font-weight:600;cursor:pointer;
  width:max-content;flex-shrink:0;
}
.user-menu-btn:hover{border-color:var(--accent);}
.user-menu-btn .badge{flex:0 0 auto;white-space:nowrap;}
.user-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;width:15ch;flex:0 0 15ch;display:inline-block;}
.user-menu-wrap .tab-dropdown-menu{left:auto;right:0;min-width:150px;}
.user-menu-wrap .tab-dropdown-menu button{white-space:nowrap;width:100%;}
.perm-check{display:inline-flex;align-items:center;gap:6px;font-size:.83rem;margin:4px 12px 4px 0;}
.info-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--surface-alt);color:var(--ink-soft);font-size:.72rem;cursor:help;vertical-align:middle;margin-left:4px;}
.info-icon:hover{background:var(--accent-soft);color:var(--accent-dark);}

.settings-subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;border-bottom:1px solid var(--line-strong);padding-bottom:10px;}
.settings-subnav button{border:1px solid transparent;background:none;color:var(--ink-soft);padding:6px 12px;border-radius:20px;font-size:.8rem;cursor:pointer;font-family:var(--font-display);}
.settings-subnav button:hover{background:var(--surface-alt);color:var(--ink);}
.settings-subnav button.active{background:var(--accent);color:#fff;font-weight:600;}
.emp-view-switcher{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.emp-view-switcher-name{font-size:.95rem;min-width:100px;text-align:center;}
.filiale-switcher{margin-left:10px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface-alt);color:var(--ink);padding:3px 10px;font-size:.72rem;font-family:var(--font-display);}
.filiale-switcher-fixed{display:inline-block;font-weight:600;}
.urlaub-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.emp-filiale-checks{display:flex;flex-direction:column;gap:2px;}
.emp-filiale-check{font-size:.74rem;padding:2px 6px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:5px;}
.emp-filiale-check.checked{background:var(--accent-soft);color:var(--accent-dark);font-weight:600;}
.urlaub-filter-label{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.urlaub-filter-row input[type="date"]{
  border:1px solid var(--line-strong);border-radius:6px;padding:6px 8px;font-size:.85rem;
  font-family:var(--font-display);background:var(--surface);color:var(--ink);height:32px;box-sizing:border-box;
}
.urlaub-filter-row .btn{height:32px;box-sizing:border-box;display:inline-flex;align-items:center;}

/* ---------- Mobile / Smartphone ---------- */
@media (max-width: 640px) {
  .topbar{padding:8px 10px 6px;gap:6px;}
  .brand h1{font-size:.95rem;}
  .brand .sub{display:none;}
  .brand-mark{width:26px;height:26px;}
  .tabs-inline{gap:2px;}
  .tabs-inline .tab{padding:5px 8px;font-size:.68rem;}
  .month-nav{gap:4px;flex-wrap:wrap;}
  .month-nav input[type="month"]{font-size:.72rem;max-width:110px;}
  .user-menu-name{width:9ch;}
  .btn-today{font-size:.62rem!important;padding:0 6px!important;}
  table.schedule th.emp-header, table.schedule td.emp-cell{width:150px;min-width:150px;max-width:150px;}
  .cell-time{width:34px;}
  .emp-view-switcher{justify-content:space-between;}
  .card{padding:12px;}
}
.comment-history{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;}
.comment-entry{background:var(--surface-alt);border-radius:8px;padding:8px 12px;}
.comment-entry-text{margin:0 0 4px;font-size:.85rem;white-space:pre-wrap;}
.comment-entry-meta{margin:0;font-size:.68rem;}
.comment-entry-actions{display:flex;justify-content:flex-end;margin-top:4px;}
.btn-link{border:none;background:none;color:var(--accent-dark);font-weight:600;font-size:.8rem;cursor:pointer;padding:0;text-decoration:underline;}
.corrected-mark{display:inline-block;color:var(--over);cursor:help;font-size:.85em;}
.vacation-pending-stripes{
  background-image: repeating-linear-gradient(135deg, var(--vp-color, #888) 0, var(--vp-color, #888) 4px, transparent 4px, transparent 8px);
  background-color: var(--surface-alt);
}
.emp-move-col{white-space:nowrap;width:32px;}
.emp-move-btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:4px;width:20px;height:16px;font-size:.6rem;line-height:1;cursor:pointer;padding:0;color:var(--ink-soft);}
.emp-move-btn:hover{border-color:var(--accent);color:var(--accent-dark);}
.emp-move-btn:disabled{opacity:.3;cursor:default;}
.tab-content{padding:8px 0 0;}
.tab-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.inline-edit{border:1px solid transparent;background:transparent;border-radius:4px;padding:4px 6px;font-family:var(--font-display);font-size:.85rem;color:var(--ink);}
.inline-edit:hover{background:var(--surface-alt);}
.inline-edit:focus{outline:2px solid var(--accent);background:#fff;border-color:var(--accent);}

/* --- Benutzerkonten (Einstellungen): Liste, Chips, Suche/Filter --- */
.acc-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;}
.acc-search{flex:1 1 240px;min-width:180px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;}
.acc-filter{height:38px;width:auto;min-width:150px;}
.acc-table{width:100%;border-collapse:collapse;}
.acc-table td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle;}
.acc-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.acc-sub{font-size:.76rem;color:var(--ink-soft);margin-top:3px;}
.acc-chip{display:inline-block;font-size:.72rem;padding:2px 8px;border-radius:20px;background:var(--accent-soft);color:var(--accent-dark);white-space:nowrap;}
.acc-chip-empty{background:transparent;border:1px dashed var(--line);color:var(--ink-soft);}
.acc-actions{text-align:right;white-space:nowrap;}
.acc-actions .btn-link{margin-left:10px;}
.acc-row-inactive{opacity:.6;}
.icon-btn{border:none;background:none;cursor:pointer;color:var(--ink-soft);font-size:1rem;line-height:1;padding:4px 6px;border-radius:6px;}
.icon-btn:hover{background:var(--accent-soft);color:var(--accent-dark);}
@media (max-width:640px){.acc-actions{white-space:normal;text-align:left;}.acc-actions .btn-link{margin-left:0;display:block;margin-top:6px;}}
/* Checkbox-Zeilen innerhalb von Formularfeldern (Rolle & Rechte): normale Schrift, links, kompakt */
.field label.perm-check{display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;text-transform:none;letter-spacing:0;font-size:.88rem;font-weight:400;color:var(--ink);margin:6px 0;}
.field label.perm-check input{margin-top:3px;flex:0 0 auto;}
.field label.perm-check input{width:auto;min-width:0;padding:0;margin:3px 0 0;}
.ue-field{margin-bottom:16px;}
.ue-hint{display:block;margin-top:5px;font-size:.76rem;color:var(--ink-soft);line-height:1.35;}

  /* Einsatz-Filiale / Gäste */
  .away-bar{position:absolute;left:0;top:0;bottom:0;width:5px;}
  .away-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:.78rem;margin:0 0 6px;}
  .away-legend-item{display:inline-flex;align-items:center;gap:5px;}
  .away-legend-item i{display:inline-block;width:10px;height:10px;border-radius:2px;}
  .cell-filiale-btn{position:absolute;left:0;top:0;bottom:0;width:4px;border:0;padding:0;background:var(--line-strong);opacity:.55;cursor:pointer;transition:width .12s;z-index:2;}
  .cell-filiale-btn.set{opacity:1;width:5px;}
  .cell-filiale-btn:hover{width:9px;opacity:1;}
  table.schedule th.guest-header{background:var(--under-soft);color:var(--under);}
  table.schedule td.guest-cell{background:var(--under-soft);vertical-align:middle;}
  .guest-chip{font-size:.74rem;color:var(--under);font-weight:600;padding:1px 0;}

  /* Stunden-Seite: eigene Akzentfarbe (Graphit), die keine Schichtart verwendet */
  :root{--stunden:#2F6DB5;--stunden-soft:#E2ECF8;}
  .stunden-mode table.schedule thead th{background:var(--stunden);color:#fff;border-bottom:2px solid var(--stunden);}
  .stunden-mode table.schedule thead th .muted, .stunden-mode table.schedule thead th .emp-header-hours{color:rgba(255,255,255,.72);}
  .stunden-mode table.schedule td.date-col, .stunden-mode table.schedule td.kw-col{background:var(--stunden-soft);}
  .stunden-mode table.schedule td.date-col .weekday-label, .stunden-mode table.schedule td.date-col .date-label{color:var(--stunden);}
  .title-with-legend{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;}
  .title-with-legend .away-legend{margin:0;}
  .stunden-mode table.schedule thead th .swatch{box-shadow:0 0 0 2px #fff;}
  .start-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
  .start-clock{font-size:.95rem;font-weight:600;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:4px;}

/* ---------- 3.6.82: einheitliche Seitenbreiten ---------- */
.page-w{margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box;}
.page-w-start{max-width:1100px;}
.page-w-wa{max-width:860px;}
.page-w-wide{max-width:1100px;}
.page-w-settings{max-width:960px;}
/* Start: alle Karten gleich hoch, Notizen scrollen in der Karte */
.start-page .home-card:not(.home-card-auto){height:clamp(220px, 34vh, 340px);}
.start-page .home-card.home-card-tall{height:clamp(220px, 34vh, 340px);}
@media (max-width:720px){
  .start-page .home-card:not(.home-card-auto), .start-page .home-card.home-card-tall{height:auto;min-height:160px;}
}
/* Feld-Designsprache: Textfelder außerhalb von .field */
.field-input{
  border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;font-size:.88rem;height:38px;box-sizing:border-box;
  font-family:var(--font-display);background:var(--surface);color:var(--ink);width:320px;max-width:100%;
}
.field-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
.field-input-sm{width:80px;}
.filialen-table .field-select{min-width:0;width:150px;}
.btn-danger-outline{color:var(--danger);border-color:var(--danger);}
.btn-danger-outline:hover{background:var(--danger-soft);}
/* Mitarbeiter-Tabelle & Popup */
.emp-table td:last-child{width:1%;}
.emp-modal{max-width:560px;}
.emp-modal .field{margin-top:10px;}
.emp-modal .field input{width:100%;min-width:0;box-sizing:border-box;text-align:left;font-family:var(--font-display);font-size:.88rem;padding:8px 10px;border:1px solid var(--line-strong);background:var(--surface);}
.emp-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.emp-modal-readonly{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface-alt);font-family:var(--font-mono);font-size:.88rem;}
.emp-filiale-checks-row{flex-direction:row;flex-wrap:wrap;gap:6px;}
.emp-modal .emp-filiale-check input{width:auto;min-width:0;padding:0;}
@media (max-width:520px){.emp-modal-row{grid-template-columns:1fr;}}
.monatsplan-report tr.report-partly-row td{background:var(--over-soft);}
.monatsplan-report tr.report-partly-row td.report-date-col{color:var(--over);font-weight:700;}

/* ---------- 3.6.87: Dienstplan-Freigabe (Auge) ---------- */
.pub-eye{display:inline-flex;align-items:center;justify-content:center;align-self:center;border-radius:6px;border:1px solid;padding:4px 7px;background:var(--surface);cursor:pointer;line-height:1;font:inherit}
.pub-eye.draft{color:var(--over);border-color:#E3CFA3;background:var(--over-soft)}
.pub-eye.live{color:var(--accent-dark);border-color:#BFD9D1;background:var(--accent-soft)}
.pub-eye:hover{filter:brightness(.96)}
.pub-eye-static{cursor:default}
.pub-empty{background:var(--surface);border:1px dashed var(--line-strong);border-radius:10px;padding:60px 20px;text-align:center;color:var(--ink-soft);margin-top:14px}
.pub-empty h3{margin:0 0 6px;color:var(--ink)}
