body{margin:0;font-family:Arial,sans-serif;background:#f4f6f8;color:#1f2937}header{background:#1f4e78;color:white;padding:14px 24px}header h1{margin:0 0 8px 0}nav a{color:white;margin-right:18px;text-decoration:none;font-weight:bold}main{padding:18px}.card{background:white;border-radius:10px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.08)}table{width:100%;border-collapse:collapse}th{background:#d9eaf7;text-align:left}th,td{padding:9px;border:1px solid #cbd5e1;vertical-align:middle}input,select,button{padding:9px;border:1px solid #94a3b8;border-radius:6px}button,.button-link{background:#1f4e78;color:white;font-weight:bold;cursor:pointer}button.danger{background:#b91c1c}.inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.busy{background:#fee2e2;font-weight:bold}.free{background:#dcfce7;font-weight:bold}.error{background:#fee2e2;border:1px solid #ef4444;padding:12px;margin-bottom:12px;border-radius:8px;font-weight:bold}.button-link{display:inline-block;padding:9px 12px;border-radius:6px;text-decoration:none;margin-left:8px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.hint{color:#475569;margin:8px 0 0 0}.wide{overflow:hidden}.calendar-scroll{overflow-x:auto;border:1px solid #cbd5e1}.planner{table-layout:fixed;min-width:2100px}.planner th,.planner td{text-align:center;padding:6px;border:1px solid #b7c0cc}.sticky-left{position:sticky;left:0;z-index:3}.title-col{width:260px;background:#d9eaf7}.employee-cell{width:260px;background:#d9eaf7;text-align:left!important;font-size:13px}.day-head,.day-num,.weekday{width:76px;font-size:12px;background:#eaf4fb;font-weight:bold}.weekend{background:#e7e6e6!important}.holiday-cell{background:#ff0000!important;color:white}.plan-cell{height:78px;width:76px;font-size:12px;white-space:normal;overflow-wrap:break-word}.today-cell{outline:3px solid #10b981;outline-offset:-3px}.count-col,.count-cell{width:90px;background:#f8fafc;font-weight:bold}.count-cell{font-size:14px}.colorbox{display:inline-block;width:32px;height:20px;border:1px solid #999;border-radius:4px}.legend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.legend-item{border:1px solid #cbd5e1;padding:10px;border-radius:8px;background:#f8fafc}.legend-color{display:inline-block;width:36px;height:18px;border:1px solid #777;border-radius:4px;margin-right:8px;vertical-align:middle}.cell-add{display:block;color:#94a3b8;text-decoration:none;font-weight:bold;font-size:18px;line-height:70px}.cell-add:hover{background:#dcfce7;color:#166534}
.warning-box{background:#fff2cc;border:1px solid #d6b656;padding:12px;margin:10px 0;border-radius:8px;font-weight:bold}.ok-box{background:#dcfce7;border:1px solid #16a34a;padding:12px;border-radius:8px;font-weight:bold}.conflict-cell{box-shadow:inset 0 0 0 4px #fffb00!important;animation:pulseConflict 1.2s infinite}@keyframes pulseConflict{0%{box-shadow:inset 0 0 0 4px #fffb00}50%{box-shadow:inset 0 0 0 4px #ff0000}100%{box-shadow:inset 0 0 0 4px #fffb00}}

.conflict-cell{
    position:relative!important;
}

.conflict-cell::before{
    content:"⚠";
    position:absolute;
    top:2px;
    left:4px;
    font-size:18px;
    font-weight:bold;
    color:#ffff00;
    text-shadow:
        -1px -1px 0 #000,
         1px -1px 0 #000,
        -1px  1px 0 #000,
         1px  1px 0 #000;
    z-index:9999;
    line-height:1;
    pointer-events:none;
}


.drag-item{cursor:grab;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.drag-item:active{cursor:grabbing}
.drop-target{outline:4px solid #22c55e!important;outline-offset:-4px;background:#dcfce7!important}
.print-btn{margin-left:8px}
.crew-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}
.checklist{display:grid;gap:8px}
.checkrow{display:flex;gap:10px;align-items:center;border:1px solid #cbd5e1;padding:10px;border-radius:8px;background:#f8fafc}
.checkrow input{width:18px;height:18px}
.crew-form label{display:block;margin-bottom:12px}
@media (max-width:900px){
  header nav{display:flex;flex-wrap:wrap;gap:8px}
  nav a{margin-right:8px}
  main{padding:8px}
  .calendar-head{display:block}
  .planner{min-width:1600px}
  .title-col,.employee-cell{width:190px}
  .day-head,.day-num,.weekday,.plan-cell{width:62px}
  .plan-cell{height:64px;font-size:11px}
  .crew-grid,.grid{grid-template-columns:1fr}
  .button-link,.print-btn{margin-top:6px}
}
@media print{
  header, .button-link, .print-btn, .cell-add, .hint{display:none!important}
  main{padding:0}
  .card{box-shadow:none;border-radius:0;margin:0;padding:6px}
  body{background:white}
}



/* V3.2.1 Druck-/PDF-Fix */
@media print {
  @page {
    size: A3 landscape;
    margin: 8mm;
  }

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  body {
    background: white !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 9px !important;
  }

  header,
  nav,
  .button-link,
  .print-btn,
  .cell-add,
  .hint,
  .warning-box a {
    display: none !important;
  }

  main {
    padding: 0 !important;
    margin: 0 !important;
  }

  .card {
    box-shadow: none !important;
    border-radius: 0 !important;
    margin: 0 0 4px 0 !important;
    padding: 4px !important;
    page-break-inside: avoid !important;
  }

  .calendar-scroll {
    overflow: visible !important;
    border: none !important;
    width: 100% !important;
  }

  .planner {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    font-size: 7px !important;
  }

  .planner th,
  .planner td {
    padding: 1px !important;
    border: 1px solid #999 !important;
    text-align: center !important;
  }

  .title-col,
  .employee-cell {
    width: 95px !important;
    min-width: 95px !important;
    max-width: 95px !important;
    font-size: 6.5px !important;
    background: #d9eaf7 !important;
  }

  .day-head,
  .day-num,
  .weekday,
  .plan-cell {
    width: 23px !important;
    min-width: 23px !important;
    max-width: 23px !important;
    font-size: 6px !important;
  }

  .plan-cell {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    overflow: hidden !important;
  }

  .count-col,
  .count-cell {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    font-size: 6px !important;
  }

  .drag-item {
    font-size: 6px !important;
    line-height: 1.1 !important;
    color: white !important;
  }

  .weekend {
    background: #e7e6e6 !important;
  }

  .holiday-cell {
    background: #ff0000 !important;
    color: white !important;
  }

  .today-cell {
    outline: 2px solid #00b050 !important;
    outline-offset: -2px !important;
  }

  .conflict-cell {
    border: 2px solid #ffff00 !important;
    box-shadow: inset 0 0 0 2px #ff0000 !important;
    animation: none !important;
  }

  .conflict-cell::before {
    content: "⚠" !important;
    position: absolute !important;
    top: 0 !important;
    left: 1px !important;
    font-size: 8px !important;
    color: #ffff00 !important;
    text-shadow: 1px 1px 1px #000 !important;
  }

  .legend-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 4px !important;
  }

  .legend-item {
    font-size: 7px !important;
    padding: 3px !important;
    border: 1px solid #999 !important;
    background: #f8fafc !important;
  }

  .legend-color,
  .colorbox {
    width: 16px !important;
    height: 8px !important;
    display: inline-block !important;
    border: 1px solid #555 !important;
  }

  h1, h2, h3 {
    font-size: 12px !important;
    margin: 2px 0 4px 0 !important;
  }
}


/* V3.2.2 Drag-&-Drop Fix */
.plan-cell.is-draggable {
  cursor: grab !important;
  user-select: none;
}
.plan-cell.is-draggable:active,
.plan-cell.dragging {
  cursor: grabbing !important;
  opacity: 0.75;
}
.drop-target {
  outline: 4px solid #22c55e !important;
  outline-offset: -4px !important;
  background: #dcfce7 !important;
}


/* V3.2.3 Drag-Save-Fix */
.plan-cell.can-drag{
  cursor: grab !important;
  user-select: none !important;
}
.plan-cell.dragging{
  opacity: .6 !important;
  cursor: grabbing !important;
}
.drop-target{
  outline: 5px solid #22c55e !important;
  outline-offset: -5px !important;
  background: #dcfce7 !important;
}


/* V3.3 Kolonnen */
.crew-box{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:12px;margin:12px 0}
.pill{display:inline-block;background:#e0f2fe;border:1px solid #38bdf8;border-radius:999px;padding:5px 9px;margin:3px;font-size:12px}


/* V3.4 Leistungsmodul */
.card table td div{margin:2px 0}


/* V3.5 Verfügbarkeit */
.partial{background:#fff2cc;font-weight:bold}
.status-free{color:#166534;font-weight:bold}
.status-busy{color:#991b1b;font-weight:bold}


/* V3.6 Print global + Mitarbeiter DragSort */
.global-print{float:right;margin-left:14px;background:#1f4e78;color:white;border:1px solid #fff;border-radius:6px;padding:7px 10px;font-weight:bold}
.sortable-row{cursor:grab}
.sortable-row:active,.dragging-row{cursor:grabbing;opacity:.65}
.drag-handle{font-size:20px;text-align:center;font-weight:bold;color:#1f4e78}
@media print{
  .global-print{display:none!important}
}

/* V3.6.2 Mitarbeiter sicher */
.sortable-row{cursor:grab}.sortable-row:active,.dragging-row{cursor:grabbing;opacity:.65}.drag-handle{font-size:20px;text-align:center;font-weight:bold;color:#1f4e78}

/* V3.6.3 Kolonnen-Routen-Fix */
.crew-box{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:12px;margin:12px 0}
.pill{display:inline-block;background:#e0f2fe;border:1px solid #38bdf8;border-radius:999px;padding:5px 9px;margin:3px;font-size:12px}
.checklist{display:grid;gap:8px}
.checkrow{display:flex;gap:10px;align-items:center;border:1px solid #cbd5e1;padding:10px;border-radius:8px;background:#f8fafc}
.checkrow input{width:18px;height:18px}


/* V3.6.8 Baustellen-Löschschutz */
.disabled-btn{opacity:.45;cursor:not-allowed!important}
.small-note{font-size:11px;color:#64748b;margin-top:4px}


/* V3.7.0 Baustellenarchiv */
.disabled-btn{opacity:.45;cursor:not-allowed!important}


/* V3.8.0 Stabilität */
.status-free{color:#166534;font-weight:bold}
.status-busy{color:#991b1b;font-weight:bold}

/* V4.6.0 Systemprüfung */
.status-free{color:#166534;font-weight:bold}.status-busy{color:#991b1b;font-weight:bold}

/* V4.6.2/V4.6.7 Monatsplanung: belegten Einsatztag per Klick bearbeiten/löschen */
.plan-cell.assignment-cell{
  position: relative !important;
}
.plan-cell.assignment-cell:hover{
  filter: brightness(.94);
}
.plan-cell.assignment-cell::after{
  content: "✎";
  position: absolute;
  top: 3px;
  right: 4px;
  width: 16px;
  height: 16px;
  line-height: 15px;
  border-radius: 999px;
  background: rgba(31,78,120,.95);
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  opacity: 0;
  pointer-events: none;
}
.plan-cell.assignment-cell:hover::after{
  opacity: 1;
}
@media print{
  .plan-cell.assignment-cell::after{display:none!important;content:""!important}
  .plan-cell.assignment-cell:hover{filter:none!important}
}

/* V4.6.3 Urlaubsantrag / Krankmeldung */
.public-form-page{
  background:#eef3f8;
  margin:0;
  font-family:Arial, sans-serif;
  color:#0f172a;
}
.public-form-wrap{
  min-height:100vh;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:32px 14px;
}
.public-form-card{
  width:min(720px, 100%);
  background:white;
  border:1px solid #cbd5e1;
  border-radius:12px;
  box-shadow:0 10px 28px rgba(15,23,42,.10);
  padding:22px;
}
.public-form-card h1{margin-top:0;color:#0f2f4f}
.public-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.public-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:bold}
.public-form-grid input,.public-form-grid select,.public-form-grid textarea{
  border:1px solid #94a3b8;
  border-radius:8px;
  padding:10px;
  font:inherit;
}
.public-form-grid .full{grid-column:1/-1}
.public-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
button.secondary{
  background:#e2e8f0;
  color:#0f172a;
  border:1px solid #94a3b8;
  border-radius:6px;
  padding:8px 11px;
  text-decoration:none;
  display:inline-block;
  font-weight:bold;
}
.copy-message{font-size:13px;color:#166534;font-weight:bold;min-height:18px}
.success-box{background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:8px;padding:10px;margin:10px 0;font-weight:bold}
.status-pill{display:inline-block;border-radius:999px;padding:4px 8px;font-weight:bold;background:#e2e8f0;color:#0f172a}
.status-offen,.status-erfasst{background:#fef3c7;color:#92400e}
.status-genehmigt,.status-gelesen{background:#dcfce7;color:#166534}
.status-abgelehnt{background:#fee2e2;color:#991b1b}
@media(max-width:700px){.public-form-grid{grid-template-columns:1fr}.public-actions{flex-direction:column;align-items:stretch}.public-actions button{width:100%}}
@media print{.public-actions,.copy-message{display:none!important}}


/* V4.6.4 Glocke / Benachrichtigungen */
header{position:relative; padding-right:92px;}
.notification-widget{
  position:absolute;
  top:14px;
  right:18px;
  z-index:99999;
}
.notification-bell{
  position:relative;
  border:0;
  border-radius:999px;
  background:#0b56b7;
  color:#fff;
  font-size:22px;
  width:54px;
  height:54px;
  box-shadow:0 8px 22px rgba(15,23,42,.24);
  cursor:pointer;
}
.notification-count{
  position:absolute;
  top:-5px;
  right:-5px;
  min-width:22px;
  height:22px;
  padding:0 5px;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:12px;
  font-weight:900;
  align-items:center;
  justify-content:center;
  border:2px solid #fff;
}
.notification-panel{
  position:absolute;
  top:64px;
  right:0;
  width:380px;
  max-height:70vh;
  overflow:auto;
  background:#fff;
  border:1px solid #cbd5e1;
  border-radius:14px;
  box-shadow:0 16px 36px rgba(15,23,42,.24);
  padding:12px;
  color:#0f172a;
}
.notification-panel>b{display:block;font-size:18px;margin:2px 4px 10px;}
.notification-item{border:1px solid #e2e8f0;border-radius:10px;padding:10px;margin:8px 0;background:#f8fafc;}
.notification-item-sick{border-color:#fecaca;background:#fff7f7;}
.notification-item strong{display:block;font-size:15px;}
.notification-item small{color:#64748b;font-size:12px;}
.notification-item p{margin:6px 0 8px;}
.notification-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.notification-actions a,.notification-actions button{border:0;border-radius:8px;padding:7px 9px;font-weight:800;font-size:12px;cursor:pointer;text-decoration:none;}
.notification-actions a{background:#e0ecff;color:#0b56b7!important;}
.notification-actions button{background:#16a34a;color:#fff;}
.notification-actions button.danger{background:#dc2626;color:#fff;}
.notification-empty{padding:12px;color:#64748b;}
.no-print{ }

/* V4.6.4 Urlaubsantrag / Krankmeldung mit QR-Code */
.public-form-wrap{justify-content:center;align-items:flex-start;padding:32px 16px;}
.public-form-card.public-form-wide{width:min(1120px,100%);padding:0;border-radius:18px;overflow:hidden;}
.public-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:28px;padding:28px 32px;align-items:start;}
.public-form-main h1{font-size:34px;margin:0 0 14px;color:#06142e;}
.public-form-main .hint{font-size:16px;color:#334155;margin-bottom:24px;}
.public-form-main .public-form-grid{grid-template-columns:minmax(220px,290px) 190px 190px;column-gap:30px;row-gap:74px;align-items:start;}
.public-form-main .public-form-grid label{font-size:18px;color:#06142e;}
.public-form-main .public-form-grid input,.public-form-main .public-form-grid select,.public-form-main .public-form-grid textarea{font-size:16px;border:1px solid #c8d7ea;border-radius:10px;padding:12px;background:#fff;}
.public-form-main .public-form-grid .full{grid-column:1/-1;}
.public-form-main textarea{min-height:56px;}
.public-form-main .public-actions{margin-top:0;}
.public-form-main .public-actions button{font-size:17px;border-radius:9px;background:#2563eb;padding:13px 18px;border:0;}
.public-qr-card{background:#f8fafc;border:1px solid #d7e3f3;border-radius:16px;padding:14px;text-align:center;box-shadow:0 10px 28px rgba(15,23,42,.06);}
.public-qr-card h2{font-size:17px;margin:0 0 12px;color:#06142e;}
.public-qr-img{display:block;width:148px;height:148px;object-fit:contain;background:#fff;border:1px solid #d7e3f3;border-radius:9px;padding:10px;margin:0 auto 14px;}
.public-qr-card .secondary,.public-qr-card .share-link{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#00315f;border:1px solid #bcd0ea;border-radius:9px;padding:10px 12px;font-weight:800;text-decoration:none;margin:5px;box-shadow:none;}
.public-qr-card .public-copy-btn{font-size:18px;display:flex;width:max-content;margin:6px auto;}
.public-share-row{display:flex;justify-content:center;gap:4px;flex-wrap:wrap;margin-top:6px;}
.public-share-row .share-link{font-size:13px;}
@media(max-width:900px){
  header{padding-right:24px;}
  .notification-widget{position:static;margin-top:10px;}
  .notification-panel{left:0;right:auto;width:min(92vw,380px);}
  .public-form-layout{grid-template-columns:1fr;gap:18px;padding:22px;}
  .public-form-main .public-form-grid{grid-template-columns:1fr;row-gap:14px;}
  .public-qr-card{max-width:280px;margin:0 auto;}
}
@media print{.notification-widget,.public-qr-card{display:none!important}}


/* V4.6.6 Statusfarben Monatsplanung / automatische Baustellenfarben */
.color-readonly{
  padding:9px;
  border:1px solid #cbd5e1;
  border-radius:8px;
  background:#f8fafc;
  color:#475569;
  font-weight:bold;
}
.color-readonly small{font-weight:normal;color:#64748b;}
.assignment-cell.status-urlaub{background:#00b050!important;color:#fff!important;}
.assignment-cell.status-krank{background:#000!important;color:#fff!important;}
.assignment-cell.status-urlaub,
.assignment-cell.status-krank{letter-spacing:.2px;}


/* V4.6.7 Einsatz direkt aus Monatsplanung bearbeiten */
.assignment-modal{display:none;position:fixed;inset:0;z-index:9999;}
.assignment-modal.show{display:block;}
.assignment-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);}
.assignment-modal-box{position:relative;margin:6vh auto;background:#fff;width:min(760px, calc(100% - 28px));border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.28);border:1px solid #cbd5e1;overflow:hidden;}
.assignment-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#1f4e78;color:#fff;padding:13px 16px;}
.assignment-modal-head h2{margin:0;font-size:20px;}
.modal-close{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.45);color:#fff;border-radius:8px;font-size:22px;line-height:22px;padding:5px 10px;}
.assignment-modal-info{background:#eef6ff;border-bottom:1px solid #cbd5e1;padding:12px 16px;color:#0f172a;line-height:1.45;}
.assignment-modal-form{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;padding:16px;}
.assignment-modal-form label{display:flex;flex-direction:column;gap:6px;font-weight:bold;}
.assignment-modal-form input,.assignment-modal-form select{width:100%;box-sizing:border-box;}
.modal-note-field{grid-column:1 / -1;}
.assignment-modal-actions{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end;border-top:1px solid #e2e8f0;padding-top:12px;}
.assignment-modal-error{grid-column:1 / -1;background:#fee2e2;border:1px solid #ef4444;color:#7f1d1d;border-radius:8px;padding:10px;font-weight:bold;}
@media(max-width:760px){.assignment-modal-box{margin:2vh auto;max-height:96vh;overflow:auto}.assignment-modal-form{grid-template-columns:1fr}.assignment-modal-actions{justify-content:stretch}.assignment-modal-actions button{width:100%;}}
@media print{.assignment-modal{display:none!important;}}


/* V4.6.8 Baustelleninfo + Bauleiter-/Polier-Stammdaten */
.project-form-v468{
  display:grid;
  grid-template-columns:repeat(3,minmax(220px,1fr));
  gap:12px;
  align-items:start;
}
.project-form-v468 label{display:flex;flex-direction:column;gap:6px;font-weight:bold;}
.project-form-v468 textarea{min-height:70px;padding:9px;border:1px solid #94a3b8;border-radius:6px;font-family:Arial,sans-serif;resize:vertical;}
.project-form-v468 .full{grid-column:1/-1;}
.form-section-title{grid-column:1/-1;font-size:18px;font-weight:900;color:#1f4e78;border-bottom:1px solid #cbd5e1;padding-bottom:6px;}
.coordinates-field small,.project-form-v468 small{font-weight:normal;color:#64748b;}
.coordinate-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px;}
button.secondary,.button-link.secondary{background:#e2e8f0!important;color:#0f172a!important;border:1px solid #94a3b8!important;}
.projects-table-v468 td{vertical-align:top;}
.project-edit-row td{background:#f8fafc;}
.edit-form-v468{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:12px;}
.form-actions-v468{display:flex;gap:10px;justify-content:flex-end;}
.action-cell-v468 form{margin-top:6px;}
.small-link{display:inline-block;margin-top:4px;color:#1f4e78;font-weight:bold;text-decoration:none;}
.master-form-v468 input{min-width:240px;}
@media(max-width:900px){
  .project-form-v468{grid-template-columns:1fr;}
  .form-section-title,.project-form-v468 .full{grid-column:1;}
  .form-actions-v468{justify-content:stretch;flex-direction:column;}
  .coordinate-actions button{width:100%;}
}
@media print{.project-edit-row,.master-form-v468,.coordinate-actions,.small-link{display:none!important}}


/* V4.6.9 Menü umorganisiert */
.main-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:relative;}
.main-nav a{margin-right:0;}
.nav-more{position:relative;display:inline-flex;align-items:center;}
.nav-more-btn{background:#17466e;color:#fff;border:1px solid rgba(255,255,255,.75);border-radius:7px;padding:6px 10px;font-size:20px;line-height:1;font-weight:900;min-width:42px;height:34px;}
.nav-more-menu{position:absolute;right:0;top:40px;min-width:210px;background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 28px rgba(15,23,42,.22);padding:8px;z-index:99990;}
.nav-more-menu a{display:block;color:#0f172a!important;margin:0;padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:800;white-space:nowrap;}
.nav-more-menu a:hover{background:#eaf4fb;color:#1f4e78!important;}
@media(max-width:900px){.main-nav{gap:8px}.nav-more-menu{left:0;right:auto;}}
@media print{.nav-more{display:none!important}}
.main-nav .global-print{margin-left:auto;}

/* V4.7.0/4.7.2 Mein Einsatzplan / Wetter-Fix */
.portal-cell-v470{min-width:260px;vertical-align:top;}
.portal-link-row-v470{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:4px 0;}
.portal-link-input-v470{width:100%;box-sizing:border-box;font-size:12px;background:#f8fafc;color:#334155;margin:5px 0;}
.portal-link-row-v470 .button-link{margin-left:0;padding:7px 9px;font-size:12px;}
.portal-link-row-v470 button{padding:7px 9px;font-size:12px;}

.employee-portal-page-v470{margin:0;background:#eef3f8;color:#0f172a;font-family:Arial,sans-serif;}
.employee-portal-wrap-v470{width:min(1120px,100%);margin:0 auto;padding:18px 12px 34px;box-sizing:border-box;}
.employee-portal-hero-v470{background:linear-gradient(135deg,#1f4e78,#0f2f4f);color:white;border-radius:20px;padding:22px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:end;box-shadow:0 16px 36px rgba(15,23,42,.22);}
.employee-portal-kicker-v470{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:900;opacity:.85;}
.employee-portal-hero-v470 h1{font-size:38px;line-height:1.05;margin:8px 0 6px;}
.employee-portal-hero-v470 p{font-size:19px;margin:0;opacity:.95;}
.employee-portal-linkbox-v470{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:12px;}
.employee-portal-linkbox-v470 small{display:block;font-weight:800;margin-bottom:6px;}
.employee-portal-linkbox-v470 input{width:100%;box-sizing:border-box;border:0;border-radius:9px;padding:10px;color:#0f172a;background:#fff;font-size:12px;margin-bottom:8px;}
.employee-portal-linkbox-v470 button{width:100%;border:1px solid rgba(255,255,255,.5);background:#fff;color:#1f4e78;border-radius:9px;}
.employee-portal-alert-v470{border-radius:12px;padding:12px 14px;margin:14px 0;font-weight:900;}
.employee-portal-alert-v470.success-v470{background:#dcfce7;border:1px solid #86efac;color:#166534;}
.employee-portal-alert-v470.error-v470{background:#fee2e2;border:1px solid #fecaca;color:#991b1b;}
.employee-portal-section-v470,.employee-portal-forms-v470{margin-top:16px;}
.employee-portal-section-v470>h2,.employee-portal-forms-v470 h2{color:#0f2f4f;margin:0 0 12px;}
.employee-portal-empty-v470{background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:16px;color:#64748b;}
.employee-assignment-card-v470{background:#fff;border:1px solid #cbd5e1;border-radius:18px;padding:16px;margin:14px 0;box-shadow:0 8px 22px rgba(15,23,42,.08);overflow:hidden;}
.employee-assignment-card-v470.status-vacation-v470{border-left:9px solid #00b050;}
.employee-assignment-card-v470.status-sick-v470{border-left:9px solid #000;}
.employee-assignment-head-v470{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-bottom:1px solid #e2e8f0;padding-bottom:12px;margin-bottom:14px;}
.employee-assignment-head-v470 h3{font-size:25px;margin:8px 0 5px;color:#06142e;}
.employee-assignment-head-v470 p{margin:0;color:#334155;}
.status-pill-v470{display:inline-block;background:#e0ecff;color:#1f4e78;border-radius:999px;padding:5px 10px;font-weight:900;font-size:13px;}
.employee-assignment-grid-v470{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px;}
.employee-info-block-v470{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:13px;}
.employee-info-block-v470 h4{margin:0 0 8px;color:#1f4e78;font-size:17px;}
.employee-info-block-v470 p{margin:7px 0;line-height:1.4;}
.employee-info-block-v470 a{color:#0b56b7;font-weight:900;text-decoration:none;}
.full-v470{grid-column:1/-1;}
.employee-map-actions-v470{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;}
.employee-map-actions-v470 a{display:inline-flex;background:#1f4e78;color:#fff!important;border-radius:9px;padding:9px 11px;text-decoration:none;font-weight:900;}
.employee-map-v470{width:100%;height:220px;border:0;border-radius:12px;background:#e2e8f0;}
.weather-output-v470{display:grid;gap:7px;}
.weather-day-v470{background:#fff;border:1px solid #dbeafe;border-radius:10px;padding:9px;color:#0f172a;}
.coworker-list-v470{display:flex;flex-wrap:wrap;gap:8px;}
.coworker-list-v470 span{display:inline-flex;background:#e0f2fe;border:1px solid #38bdf8;color:#075985;border-radius:999px;padding:7px 10px;font-weight:900;}
.muted-v470{color:#64748b;}
.employee-portal-forms-v470{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.employee-form-card-v470{background:#fff;border:1px solid #cbd5e1;border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(15,23,42,.08);}
.employee-form-card-v470 form{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.employee-form-card-v470 label{display:flex;flex-direction:column;gap:6px;font-weight:900;}
.employee-form-card-v470 input,.employee-form-card-v470 textarea{box-sizing:border-box;width:100%;border:1px solid #94a3b8;border-radius:9px;padding:10px;font:inherit;}
.employee-form-card-v470 button{grid-column:1/-1;border-radius:10px;padding:12px;background:#1f4e78;color:#fff;border:0;font-weight:900;}
@media(max-width:820px){
  .employee-portal-wrap-v470{padding:10px 8px 28px;}
  .employee-portal-hero-v470{grid-template-columns:1fr;padding:18px;border-radius:16px;}
  .employee-portal-hero-v470 h1{font-size:31px;}
  .employee-portal-linkbox-v470{display:none;}
  .employee-assignment-grid-v470,.employee-portal-forms-v470,.employee-form-card-v470 form{grid-template-columns:1fr;}
  .full-v470{grid-column:1;}
  .employee-map-v470{height:190px;}
  .employee-map-actions-v470 a,.employee-form-card-v470 button{width:100%;box-sizing:border-box;justify-content:center;text-align:center;}
}
@media print{.employee-portal-linkbox-v470,.employee-portal-forms-v470,.employee-map-actions-v470{display:none!important}.employee-portal-page-v470{background:#fff}.employee-assignment-card-v470{box-shadow:none;page-break-inside:avoid}}

/* V4.7.1/V4.7.2 Wetter-Fallback Mitarbeiterportal */
.weather-retry-v471{
  margin-top:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:10px;
  background:#1f4e79;
  color:#fff;
  font-weight:800;
  padding:9px 12px;
  cursor:pointer;
}
.weather-retry-v471:hover{filter:brightness(0.95);}

/* V4.7.7 Gelesen-/Bestätigt-Logik Mitarbeiterportal */
.employee-notice-list-v477{display:grid;gap:10px;}
.employee-notice-card-v477{background:#fff7ed;border:1px solid #fdba74;border-radius:14px;padding:13px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;box-shadow:0 6px 18px rgba(124,45,18,.08);}
.employee-notice-card-v477 strong{display:block;color:#9a3412;font-size:17px;margin-bottom:3px;}
.employee-notice-card-v477 small{display:block;color:#7c2d12;font-weight:800;margin-bottom:6px;}
.employee-notice-card-v477 p{margin:0;color:#431407;line-height:1.38;}
.employee-notice-card-v477 button,.employee-notice-readall-v477 button{border:0;border-radius:10px;background:#1f4e78;color:#fff;font-weight:900;padding:10px 13px;cursor:pointer;}
.employee-notice-readall-v477{margin-top:10px;}
.confirm-badge-v477{display:inline-flex;border-radius:999px;padding:5px 9px;font-weight:900;font-size:12px;white-space:nowrap;}
.confirm-badge-v477.offen{background:#fef3c7;color:#92400e;border:1px solid #f59e0b;}
.confirm-badge-v477.read{background:#dcfce7;color:#166534;border:1px solid #86efac;}
.confirm-badge-v477.none{background:#e5e7eb;color:#475569;border:1px solid #cbd5e1;}
@media(max-width:820px){.employee-notice-card-v477{grid-template-columns:1fr}.employee-notice-card-v477 button,.employee-notice-readall-v477 button{width:100%;}}


/* V4.7.9: Kollegenstatus im Mitarbeiterportal */
.coworker-status-block-v479 {
  overflow: visible;
}
.coworker-list-v479 {
  display: grid;
  gap: 10px;
}
.coworker-card-v479 {
  border: 1px solid #bfdbfe;
  background: #f8fbff;
  border-radius: 12px;
  padding: 10px 12px;
}
.coworker-card-warning-v479 {
  border-color: #facc15;
  background: #fffbeb;
}
.coworker-card-absent-v479 {
  border-color: #111827;
  background: #f3f4f6;
}
.coworker-main-v479 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.coworker-name-v479 {
  font-weight: 800;
  color: #0b457f;
}
.coworker-badge-v479 {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 800;
}
.badge-ok-v479 {
  background: #dcfce7;
  color: #166534;
}
.badge-warning-v479 {
  background: #fef3c7;
  color: #92400e;
}
.badge-absent-v479 {
  background: #111827;
  color: #ffffff;
}
.coworker-detail-v479 {
  color: #1f2937;
  font-size: 14px;
  margin-top: 2px;
}
.coworker-absence-v479 {
  color: #111827;
  background: rgba(0,0,0,0.04);
  border-radius: 8px;
  padding: 6px 8px;
  margin-top: 6px;
  font-size: 14px;
}

/* V4.8.0 Live-Meldungen */
.bauleiter-live-toast-v480{position:fixed;right:18px;top:76px;z-index:9999;background:#fff7ed;border:2px solid #fb923c;color:#7c2d12;border-radius:14px;padding:12px 16px;font-weight:900;box-shadow:0 14px 34px rgba(15,23,42,.22);}
.notification-bell-pulse-v480{animation:bellPulseV480 1s ease-in-out infinite;box-shadow:0 0 0 5px rgba(251,191,36,.32)!important;}
@keyframes bellPulseV480{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.employee-live-alert-v480{position:sticky;top:8px;z-index:30;margin:12px 0 14px;background:#fee2e2;border:2px solid #ef4444;color:#7f1d1d;border-radius:16px;padding:16px 18px;font-size:18px;font-weight:800;box-shadow:0 14px 34px rgba(127,29,29,.16);}
.employee-live-alert-v480 b{font-size:21px;}
.employee-live-alert-v480.pulse-v480{animation:noticePulseV480 1.4s ease-in-out 3;}
@keyframes noticePulseV480{0%,100%{box-shadow:0 14px 34px rgba(127,29,29,.16)}50%{box-shadow:0 0 0 8px rgba(239,68,68,.25),0 18px 36px rgba(127,29,29,.18)}}
.employee-notice-section-v480.has-open-notices-v480{background:#fff7ed;border:2px solid #fb923c;border-radius:16px;padding:12px;}
.employee-notice-title-row-v480{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.employee-notice-title-row-v480 h2{margin-right:auto;}
.employee-notice-badge-v480{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:999px;background:#dc2626;color:#fff;font-weight:900;font-size:15px;padding:0 8px;}
.employee-notice-refresh-v480{border:0;border-radius:10px;background:#e0ecff;color:#0b3b69;font-weight:900;padding:9px 12px;cursor:pointer;}
.employee-notice-card-v478{background:#fff7ed;border:2px solid #fb923c;border-radius:14px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;box-shadow:0 8px 22px rgba(124,45,18,.10);}
.employee-notice-card-v478 strong{display:block;color:#9a3412;font-size:18px;margin-bottom:4px;}
.employee-notice-card-v478 small{display:block;color:#7c2d12;font-weight:800;margin-bottom:6px;}
.employee-notice-card-v478 p{margin:0;color:#431407;line-height:1.42;font-size:16px;}
.employee-notice-card-v478 button,.employee-notice-readall-btn-v480,.employee-notice-readall-v478 button{border:0;border-radius:10px;background:#1f4e78;color:#fff;font-weight:900;padding:11px 14px;cursor:pointer;}
.employee-notice-readall-btn-v480{margin-top:10px;}
.employee-assignment-card-v470.assignment-notice-open-v480{border:3px solid #ef4444;box-shadow:0 0 0 6px rgba(239,68,68,.12),0 12px 28px rgba(15,23,42,.10);}
.assignment-confirm-hint-v480{display:inline-flex;align-items:center;margin:6px 0 8px;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:999px;padding:7px 11px;font-weight:900;}
@media(max-width:820px){.employee-notice-card-v478{grid-template-columns:1fr}.employee-notice-card-v478 button,.employee-notice-readall-btn-v480,.employee-notice-readall-v478 button{width:100%;}.bauleiter-live-toast-v480{left:12px;right:12px;top:70px}.employee-live-alert-v480{font-size:16px}.employee-live-alert-v480 b{font-size:18px}}


/* V4.8.2 Offene Bestätigungen */
.confirm-stats-v482{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.confirmation-filter-v482{margin-top:12px;align-items:end;}
.confirmation-filter-v482 label{display:flex;flex-direction:column;gap:5px;font-weight:bold;}
.confirmations-table-v482{min-width:1180px;}
.confirmations-table-v482 th{white-space:nowrap;}
.confirmations-table-v482 td{vertical-align:top;}
.confirmation-open-row-v482{background:#fff7ed;}
.confirmation-read-row-v482{background:#f8fafc;}
.confirmation-actions-v482{min-width:250px;display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.confirmation-actions-v482 .button-link,.confirmation-actions-v482 button{margin:0;padding:7px 9px;font-size:12px;text-decoration:none;}
.confirmation-actions-v482 .whatsapp-link-v482{background:#16a34a;color:#fff!important;}
.secondary-link-v482{background:#e2e8f0!important;color:#0f172a!important;border:1px solid #94a3b8;}
.small-note{color:#64748b;font-size:12px;line-height:1.35;}
@media(max-width:800px){.confirm-stats-v482{justify-content:flex-start}.confirmation-filter-v482{display:grid;grid-template-columns:1fr}.confirmation-filter-v482 button,.confirmation-filter-v482 a{width:100%;box-sizing:border-box;text-align:center}.confirmation-actions-v482{min-width:200px}}


/* V4.8.4 Pflasterbedarf */
.need-stats-v484{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.need-badge-v484,.need-status-pill-v484,.need-priority-v484{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-weight:900;font-size:12px;white-space:nowrap;border:1px solid #cbd5e1;}
.need-open-v484,.need-status-offen{background:#fef3c7;color:#92400e;border-color:#f59e0b;}
.need-site-v484,.need-status-baustelle_noch_anzulegen{background:#fee2e2;color:#991b1b;border-color:#fca5a5;}
.need-active-v484,.need-status-in_pruefung{background:#dbeafe;color:#1e40af;border-color:#93c5fd;}
.need-done-v484,.need-status-eingeplant,.need-status-erledigt{background:#dcfce7;color:#166534;border-color:#86efac;}
.need-done-v484{background:#e5e7eb;color:#475569;}
.need-priority-normal{background:#e5e7eb;color:#334155;}
.need-priority-wichtig{background:#fef3c7;color:#92400e;border-color:#f59e0b;}
.need-priority-dringend{background:#fee2e2;color:#991b1b;border-color:#ef4444;}
.paving-need-form-v484{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;align-items:start;}
.paving-need-form-v484 label{display:flex;flex-direction:column;gap:5px;font-weight:800;}
.paving-need-form-v484 input,.paving-need-form-v484 select,.paving-need-form-v484 textarea{width:100%;box-sizing:border-box;}
.paving-need-form-v484 textarea{min-height:70px;resize:vertical;}
.paving-need-form-v484 .full{grid-column:1/-1;}
.need-new-project-v484{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;padding:12px;}
.need-check-v484{flex-direction:row!important;align-items:center;gap:9px!important;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px;}
.need-check-v484 input{width:auto!important;}
.need-filter-v484{margin:12px 0;align-items:end;}
.need-filter-v484 label{display:flex;flex-direction:column;gap:5px;font-weight:800;}
.paving-needs-table-v484{min-width:1220px;}
.paving-needs-table-v484 th{white-space:nowrap;}
.paving-needs-table-v484 td{vertical-align:top;}
.need-row-v484.need-status-baustelle_noch_anzulegen{background:#fff7ed;}
.need-row-v484.need-status-offen{background:#fffbeb;}
.need-row-v484.need-status-erledigt{background:#f8fafc;color:#475569;}
.need-actions-v484{display:flex;gap:7px;flex-wrap:wrap;min-width:230px;}
.need-actions-v484 form{display:inline;}
.need-actions-v484 button{padding:7px 9px;font-size:12px;}
.need-edit-row-v484>td{background:#eef6ff!important;}
@media(max-width:900px){.need-stats-v484{justify-content:flex-start}.paving-need-form-v484,.need-new-project-v484,.need-filter-v484{grid-template-columns:1fr;display:grid}.paving-need-form-v484 .full{grid-column:1}.need-actions-v484{min-width:180px}.need-filter-v484 button,.need-filter-v484 a{width:100%;box-sizing:border-box;text-align:center}}
@media print{.paving-need-form-v484,.need-filter-v484,.need-actions-v484,.need-edit-row-v484{display:none!important}}

/* V4.8.5 Pflasterbedarf: automatische Status-/Deckungsprüfung */
.need-auto-status-box-v485{display:flex;flex-direction:column;gap:5px;background:#eef6ff;border:1px solid #bfdbfe;border-radius:10px;padding:10px;color:#1e3a8a;font-weight:700;}
.need-auto-status-box-v485 span{font-weight:600;color:#334155;}
.need-coverage-cell-v485{min-width:230px;}
.need-coverage-pill-v485{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-weight:900;font-size:12px;white-space:nowrap;border:1px solid #cbd5e1;margin-bottom:4px;}
.coverage-ok-v485{background:#dcfce7;color:#166534;border-color:#86efac;}
.coverage-partial-v485{background:#ffedd5;color:#9a3412;border-color:#fdba74;}
.coverage-open-v485{background:#fee2e2;color:#991b1b;border-color:#fca5a5;}
.coverage-over-v485{background:#fef3c7;color:#92400e;border-color:#f59e0b;}
.coverage-site-v485,.coverage-neutral-v485{background:#e5e7eb;color:#334155;border-color:#cbd5e1;}
.need-coverage-details-v485{margin-top:4px;font-size:12px;}
.need-coverage-details-v485 summary{cursor:pointer;color:#1f4e78;font-weight:800;}
.need-day-line-v485{padding:2px 0;border-bottom:1px dashed #e2e8f0;}
.need-day-missing-v485{color:#991b1b;font-weight:800;}
.need-day-over-v485{color:#92400e;font-weight:800;}
.need-day-ok-v485{color:#166534;}
.need-row-v484.need-status-in_pruefung{background:#eff6ff;}
.need-row-v484.need-status-eingeplant{background:#f0fdf4;}


/* V4.17.1r Einsatzplan-3M-Menübutton: kompakter Premium-Button */
.main-nav a.nav-calendar-primary-v4171r{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  min-width:164px;
  height:52px;
  padding:0 16px!important;
  margin:0 4px!important;
  border-radius:18px!important;
  border:2px solid rgba(214,249,255,.92)!important;
  color:#fff!important;
  text-decoration:none!important;
  font-size:15px!important;
  font-weight:950!important;
  letter-spacing:.1px;
  white-space:nowrap;
  line-height:1!important;
  text-shadow:0 2px 3px rgba(0,0,0,.55);
  background:
    linear-gradient(180deg, rgba(255,255,255,.42) 0%, rgba(255,255,255,.12) 14%, rgba(6,153,165,.96) 15%, rgba(3,106,118,.98) 58%, rgba(1,65,77,.98) 100%)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.75),
    inset 0 -6px 12px rgba(0,0,0,.28),
    0 0 0 1px rgba(255,255,255,.22),
    0 7px 16px rgba(0,0,0,.28),
    0 0 16px rgba(45,212,230,.22)!important;
  position:relative;
  overflow:hidden;
}
.main-nav a.nav-calendar-primary-v4171r::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  top:6px;
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(255,255,255,.60), rgba(255,255,255,.20), rgba(255,255,255,.08));
  pointer-events:none;
}
.main-nav a.nav-calendar-primary-v4171r:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}
.nav-calendar-icon-v4171r{
  width:29px;
  height:29px;
  min-width:29px;
  border:3px solid #fff;
  border-radius:7px;
  position:relative;
  display:inline-block;
  box-sizing:border-box;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));
}
.nav-calendar-icon-v4171r::before{
  content:"";
  position:absolute;
  left:3px;
  right:3px;
  top:7px;
  border-top:3px solid #fff;
  box-shadow:
    4px -10px 0 -1px #fff,
    15px -10px 0 -1px #fff;
}
.nav-calendar-icon-v4171r::after{
  content:"";
  position:absolute;
  left:5px;
  top:13px;
  width:4px;
  height:4px;
  background:#fff;
  border-radius:1px;
  box-shadow:
    8px 0 #fff, 16px 0 #fff,
    0 7px #fff, 8px 7px #fff, 16px 7px #fff;
}
@media (max-width: 560px){
  .main-nav a.nav-calendar-primary-v4171r{
    min-width:148px;
    height:50px;
    padding:0 12px!important;
    gap:8px!important;
    font-size:14px!important;
    border-radius:17px!important;
  }
  .nav-calendar-icon-v4171r{
    width:26px;
    height:26px;
    min-width:26px;
    border-width:3px;
  }
  .nav-calendar-icon-v4171r::after{
    left:4px;
    top:12px;
    width:4px;
    height:4px;
    box-shadow:7px 0 #fff, 14px 0 #fff, 0 6px #fff, 7px 6px #fff, 14px 6px #fff;
  }
}

/* V4.17.1k Bedarf-Menübutton: echtes Gold-Badge-Bild statt CSS-Imitation */
.main-nav .nav-need-button-v486{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:78px;
  min-width:78px;
  height:78px;
  padding:0;
  border-radius:50%!important;
  margin:0 4px;
  color:transparent!important;
  font-size:0!important;
  text-indent:-9999px;
  text-decoration:none;
  border:0!important;
  background:transparent url('/static/bedarf_gold_badge_v4171k.png') center/contain no-repeat!important;
  box-shadow:none!important;
  position:relative;
  overflow:visible;
}
.main-nav .nav-need-button-v486::before,
.main-nav .nav-need-button-v486::after{
  content:none!important;
  display:none!important;
}
.main-nav .nav-need-button-v486:hover{
  filter:brightness(1.04);
  transform:translateY(-1px) scale(1.02);
}
.need-auto-create-box-v486{display:flex;flex-direction:column;gap:5px;background:#ecfdf5;border:1px solid #86efac;border-radius:10px;padding:10px;color:#14532d;font-weight:800;}
.need-auto-create-box-v486 span{font-weight:600;color:#166534;line-height:1.35;}
.paving-need-form-v484 label:has([required])::after,.project-form-v468 label:has([required])::after{content:" Pflicht";font-size:11px;color:#991b1b;font-weight:900;}

/* V4.8.7 – freie eigene Pflasterer zum Bedarf anzeigen */
.need-availability-cell-v487{min-width:260px;}
.need-availability-pill-v487{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-weight:900;font-size:12px;white-space:nowrap;border:1px solid #cbd5e1;margin-bottom:4px;}
.availability-ok-v487{background:#dcfce7;color:#166534;border-color:#86efac;}
.availability-partial-v487{background:#ffedd5;color:#9a3412;border-color:#fdba74;}
.availability-open-v487{background:#fee2e2;color:#991b1b;border-color:#fca5a5;}
.availability-neutral-v487{background:#e5e7eb;color:#334155;border-color:#cbd5e1;}
.need-availability-details-v487{margin-top:5px;font-size:12px;}
.need-availability-details-v487 summary{cursor:pointer;color:#1f4e78;font-weight:800;}
.need-free-list-v487{margin-top:4px;line-height:1.45;color:#0f172a;}


/* V4.8.8 Teamlogik fuer Bedarfsvorschlaege */
.need-team-suggestion-v488{margin-top:6px;padding:7px 8px;border:1px solid #7dd3fc;border-radius:10px;background:#eff6ff;color:#0b2f5b;line-height:1.35}
.need-team-names-v488{display:inline-block;margin-top:2px;font-weight:800;color:#075985}
.need-team-warning-v488{margin-top:5px;padding:4px 6px;border:1px solid #f59e0b;border-radius:8px;background:#fff7ed;color:#9a3412;font-weight:700}
.need-team-mixed-v488{background:#fff7ed;color:#9a3412}

/* V4.8.9 – Bedarfsvorschlag direkt in Monatsplanung übernehmen */
.need-assign-form-v489{margin-top:8px;}
.need-assign-btn-v489{background:#0b5ed7;border-color:#0b5ed7;color:#fff;font-weight:800;border-radius:8px;padding:7px 10px;}
.need-assign-btn-v489:hover{filter:brightness(.95);}

/* V4.9.1 – Änderungswunsch an App prüfen */
.need-change-row-v491>td{background:#f8fbff!important;border-top:2px solid #bfdbfe;}
.need-change-form-v491{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start;}
.need-change-form-v491 label{display:flex;flex-direction:column;gap:5px;font-weight:800;}
.need-change-form-v491 .full{grid-column:1/-1;}
.need-change-result-v491{margin:12px 0;padding:12px 14px;border-radius:12px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;line-height:1.45;}
.need-change-result-v491 b{font-size:15px;}
.need-change-result-v491 span{display:block;margin-top:4px;}
.need-change-possible{background:#ecfdf5;border-color:#86efac;color:#14532d;}
.need-change-blocked{background:#fff7ed;border-color:#fdba74;color:#9a3412;}
.need-change-error{background:#fee2e2;border-color:#fca5a5;color:#991b1b;}
@media(max-width:900px){.need-change-form-v491{grid-template-columns:1fr;}.need-change-form-v491 .full{grid-column:1;}}
@media print{.need-change-row-v491,.need-change-result-v491{display:none!important}}

/* V4.9.4 Alternativen bei blockiertem Änderungswunsch */
.need-change-alternatives-v494{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;}
.need-change-alternatives-v494 ul{margin:6px 0 4px 18px;padding:0;}
.need-change-alternatives-v494 li{margin:4px 0;}

/* V4.9.5 Alternative annehmen */
.need-alt-actions-v495 {
  margin-top: 10px;
  padding: 10px;
  border-radius: 10px;
  background: #ecfdf5;
  border: 1px solid #86efac;
  display: grid;
  gap: 8px;
}
.need-alt-actions-v495 form {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0;
}
.need-alt-actions-v495 small {
  color: #14532d;
}


/* V4.9.6 Interne Freigaben */
.need-release-actions-v496{margin-top:10px;padding:10px;border:1px solid #f59e0b;background:#fffbeb;border-radius:10px}
.need-release-actions-v496 form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.need-release-btn-v496{background:#f59e0b;color:#111827;border:0;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}
.release-requests-page-v496 textarea{width:100%;max-width:320px;border:1px solid #cbd5e1;border-radius:8px;padding:6px;font-family:inherit}
.release-requests-table-v496{width:100%;border-collapse:collapse;font-size:14px}
.release-requests-table-v496 th,.release-requests-table-v496 td{border:1px solid #dbe4ef;padding:8px;vertical-align:top}
.release-requests-table-v496 th{background:#eef4fb;text-align:left}
.release-requests-table-v496 form{margin:0 0 8px 0}

/* V4.9.8 automatische Eigenplanung / Restbedarf */
.need-auto-info-v497 {
  margin-top: 8px;
  padding: 7px 9px;
  border-radius: 10px;
  background: #ecfdf5;
  border: 1px solid #86efac;
  color: #166534;
  font-size: 0.86rem;
  font-weight: 700;
}
.need-rest-box-v497 {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #7c2d12;
  font-size: 0.85rem;
}
.release-mode-box-v497 {
  display: grid;
  gap: 6px;
  margin-bottom: 8px;
  padding: 8px;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: #f8fbff;
}
.release-mode-box-v497 label {
  display: block;
  font-size: 0.86rem;
  font-weight: 700;
}
.release-partial-fields-v497 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 6px;
}
.release-partial-fields-v497 input[type="date"] {
  width: 100%;
}

/* V4.10.2 Restbedarf-Bauleiterentscheidung */
.need-rest-decision-form-v4102 {
  margin-top: 8px;
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(220px, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.need-rest-decision-form-v4102 label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-weight: 700;
}
.need-rest-decision-form-v4102 select,
.need-rest-decision-form-v4102 input {
  min-height: 30px;
}
.need-rest-decision-saved-v4102 {
  margin-top: 6px;
  padding: 6px 8px;
  border-radius: 8px;
  background: #ecfeff;
  border: 1px solid #67e8f9;
  color: #164e63;
}

/* V4.10.3 Bauleiter-Kalender 3 Monate, schreibgeschützt */
.calendar-3month-section-v4103 h2{margin-top:0;color:#1f4e78;}
.planner-readonly-v4103{table-layout:fixed;min-width:2100px;}
.planner-readonly-v4103 .plan-cell{height:54px;font-size:11px;cursor:default;}
.planner-readonly-v4103 .employee-cell{font-size:12px;}
.readonly-plan-cell-v4103{user-select:none;}
.readonly-free-v4103{color:#cbd5e1;font-weight:bold;}
.calendar-3month-scroll-v4103{max-height:none;}


/* V4.10.4 Feiertage Bayern + Brückentage */
.holiday-cell{background:#dbeafe!important;}
.bridge-day-cell-v4104{background:#fef3c7!important;border:1px solid #f59e0b!important;}
.holiday-label-v4104,.bridge-label-v4104{display:inline-block;font-size:10px;font-weight:800;border-radius:4px;padding:1px 3px;}
.holiday-label-v4104{background:#bfdbfe;color:#1e3a8a;}
.bridge-label-v4104{background:#fde68a;color:#92400e;}
.bridge-need-note-v4104{margin-top:4px;padding:4px 6px;border-left:3px solid #f59e0b;background:#fffbeb;border-radius:4px;font-size:11px;}


/* V4.10.6 Bauleiter-Aktionen im 3-Monats-Kalender */
.calendar3-action-cell-v4106 { cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.calendar3-action-cell-v4106:hover { filter: brightness(0.92); }
.calendar3-actions-v4106 { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

/* V4.11.0 Bedarf-Zeitleiste */
.need-timeline-row-v4110 td{background:#f8fafc;border-top:none;}
.need-timeline-v4110{border:1px solid #d7dee8;border-radius:10px;background:#fff;padding:8px 10px;}
.need-timeline-v4110 summary{cursor:pointer;font-weight:700;color:#1f4e78;}
.need-timeline-list-v4110{display:grid;gap:6px;margin-top:8px;}
.need-timeline-item-v4110{border-left:5px solid #9ca3af;background:#f9fafb;border-radius:8px;padding:7px 9px;}
.need-timeline-item-v4110.timeline-ok-v4110{border-left-color:#16a34a;background:#f0fdf4;}
.need-timeline-item-v4110.timeline-info-v4110{border-left-color:#2563eb;background:#eff6ff;}
.need-timeline-item-v4110.timeline-warn-v4110{border-left-color:#f59e0b;background:#fffbeb;}
.need-timeline-meta-v4110{font-size:.85rem;color:#475569;margin-bottom:2px;}

/* V4.11.1 Nachunternehmer-Portal */
.nu-card-list-v4111{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.nu-request-card-v4111{border:1px solid #d7dee8;border-radius:12px;padding:14px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.nu-request-card-v4111 h3{margin-top:0;color:#1f4e78}.nu-overdue-v4111{border-color:#c0392b;background:#fff6f4}.nu-request-form-v4111{margin-top:10px;border-top:1px dashed #ccd;padding-top:10px}

/* V4.11.1b NU-Portal Glocke */
.nu-bell-v4111b{position:absolute;right:18px;top:18px;font-size:28px}
.nu-bell-v4111b a{text-decoration:none}
.nu-bell-v4111b .badge{position:relative;top:-14px;right:8px;background:#ef4444;color:#fff;border-radius:999px;padding:2px 7px;font-size:13px;font-weight:bold}
.nu-bell-v4111b .badge.danger{background:#b91c1c}

/* V4.11.1c – NU-Kalender und NU-Bedarfsstatus */
.nu-calendar-grid-v4111c .plan-cell{min-width:78px;height:58px;vertical-align:middle;text-align:center;}
.nu-calendar-assignment-v4111c{border-radius:4px;padding:8px 4px;margin:2px 0;font-weight:900;font-size:12px;}
.need-status-nu_gedeckt{background:#dcfce7;color:#166534;border-color:#86efac;}
.need-status-nu_teilweise_gedeckt{background:#fef3c7;color:#92400e;border-color:#f59e0b;}
.need-status-nu_angefragt{background:#e0f2fe;color:#075985;border-color:#7dd3fc;}

/* V4.11.1g NU-Verfügbarkeit */
.nu-availability-block-v4111g { line-height: 1.35; font-size: 0.95em; }
.nu-availability-block-v4111g ul,
.nu-availability-select-info-v4111g ul { margin: 4px 0 0 18px; padding: 0; }
.nu-availability-block-v4111g li,
.nu-availability-select-info-v4111g li { margin: 2px 0; }
.nu-availability-block-v4111g.available { color: #075c1f; }
.nu-availability-block-v4111g.empty { color: #555; }
.nu-availability-block-v4111g.locked { color: #555; }
.nu-availability-select-info-v4111g { margin-top: 6px; font-size: 0.9em; color: #123; }
.nu-availability-select-info-v4111g > div { margin-top: 4px; padding: 5px 7px; border-radius: 6px; background: #f3fff5; border: 1px solid #b8e8c0; }

.need-focus-v4113o td{outline:3px solid #ffb300; background:#fff8d6 !important;}

/* V4.11.3u: Auswahlfenster für Einsatzaktionen im 3-Monats-Kalender */
.calendar3-choice-panel {
  border-top: 1px solid #c8d5e3;
  padding: 12px 14px;
  background: #f8fbff;
}
.calendar3-choice-panel h3 {
  margin: 0 0 6px 0;
  color: #0f3a5f;
}
.calendar3-choice-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.calendar3-choice-actions.vertical {
  flex-direction: column;
  align-items: stretch;
}
.calendar3-choice-actions.vertical button {
  text-align: left;
  line-height: 1.25;
}
.calendar3-choice-actions button span {
  font-size: 0.9em;
  font-weight: normal;
}

/* V4.12.0 UX: Bedarf-Historie übersichtlicher, neueste Einträge oben */
.timeline-order-note-v4120{margin-left:10px;font-size:12px;color:#666;font-weight:500;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;padding:2px 8px;}
.timeline-group-v4120{font-weight:700;color:#374151;margin:10px 0 6px 2px;padding-top:4px;border-top:1px solid #e5e7eb;}
.timeline-group-v4120:first-child{border-top:0;margin-top:2px;}
.timeline-newest-v4120{border-left-width:6px !important;box-shadow:0 1px 3px rgba(0,0,0,.08);}
.timeline-event-label-v4120{font-weight:700;color:#111827;}
.timeline-mode-v4120{display:inline-block;margin-left:7px;font-size:12px;color:#4b5563;background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;padding:1px 7px;}
.timeline-new-badge-v4120{display:inline-block;margin-left:7px;font-size:12px;color:#065f46;background:#d1fae5;border:1px solid #a7f3d0;border-radius:999px;padding:1px 7px;font-weight:700;}
.timeline-message-v4120{margin-top:4px;line-height:1.35;color:#1f2937;}

/* V4.12.0a UX: Bedarf-Historie kompakt, letzte Aktion sofort sichtbar */
.latest-action-card-v4120a{
  border-left:6px solid #16a34a;
  background:#f0fdf4;
  border-radius:10px;
  padding:10px 12px;
  margin:6px 0 6px 0;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.latest-action-card-v4120a.timeline-info-v4110{border-left-color:#2563eb;background:#eff6ff;}
.latest-action-card-v4120a.timeline-warn-v4110{border-left-color:#f59e0b;background:#fffbeb;}
.latest-action-head-v4120a{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px;}
.latest-action-pin-v4120a{font-weight:800;color:#0f172a;background:#fff;border:1px solid #d7dee8;border-radius:999px;padding:2px 9px;}
.latest-action-time-v4120a{font-size:.85rem;color:#475569;font-weight:700;}
.latest-action-title-v4120a{font-size:1rem;font-weight:800;color:#0f172a;margin:3px 0;}
.latest-action-message-v4120a{font-size:.95rem;line-height:1.35;color:#1f2937;}
.latest-action-empty-v4120a{border-left-color:#9ca3af;background:#f9fafb;}
.compact-history-v4120a{margin-top:4px;background:#fff;}
.compact-history-v4120a summary{font-size:.9rem;}

/* V4.12.0b Bedarf-Übersicht: letzte Aktivitäten + offene Probleme */
.need-dashboard-v4120b{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 12px 0;}
.need-dashboard-box-v4120b{border:1px solid #cbd8e6;border-radius:10px;background:#f7fbff;padding:10px;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.need-dashboard-title-v4120b{font-weight:800;color:#073763;margin-bottom:8px;font-size:15px;}
.need-activity-list-v4120b,.need-problem-list-v4120b{display:flex;flex-direction:column;gap:6px;}
.need-activity-item-v4120b,.need-problem-item-v4120b{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;text-decoration:none;color:#001f3f;border:1px solid #d9e5f2;background:#fff;border-radius:8px;padding:7px 8px;}
.need-activity-item-v4120b:hover,.need-problem-item-v4120b:hover{background:#eef6ff;}
.need-activity-time-v4120b{font-weight:700;color:#0b5394;white-space:nowrap;}
.need-activity-main-v4120b{font-weight:600;}
.need-activity-message-v4120b{grid-column:2;color:#52627a;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.need-problem-kind-v4120b{font-weight:800;white-space:nowrap;}
.need-problem-main-v4120b{font-weight:600;}
.problem-rest-v4120b{border-left:5px solid #ff9900;}
.problem-warn-v4120b{border-left:5px solid #cc0000;}
.problem-info-v4120b{border-left:5px solid #3c78d8;}
.need-dashboard-empty-v4120b{color:#4d5f73;background:#fff;border:1px dashed #cbd8e6;border-radius:8px;padding:8px;}
.need-sort-hint-v4120b{font-size:12px;color:#52627a;margin:0 0 8px 2px;}
@media(max-width:900px){.need-dashboard-v4120b{grid-template-columns:1fr}.need-activity-message-v4120b{white-space:normal}}

/* V4.12.0d UX: Bedarfsübersicht verschlankt */
.paving-needs-table-v4120d{font-size:.92rem;}
.paving-needs-table-v4120d th,.paving-needs-table-v4120d td{padding:6px 7px;vertical-align:top;}
.paving-needs-table-v4120d .need-secondary-col-v4120d{display:none;}
.need-project-main-v4120d{min-width:190px;}
.need-secondary-details-v4120d{margin-top:6px;font-size:.86rem;color:#475569;background:#f8fafc;border:1px solid #dbe5f0;border-radius:8px;padding:4px 7px;max-width:520px;}
.need-secondary-details-v4120d summary{cursor:pointer;font-weight:700;color:#0f3a5f;}
.need-secondary-details-v4120d div{margin-top:4px;line-height:1.25;}
.paving-needs-table-v4120d .need-actions-v484{white-space:nowrap;min-width:125px;}
@media(max-width:1000px){.paving-needs-table-v4120d{font-size:.85rem}.paving-needs-table-v4120d th,.paving-needs-table-v4120d td{padding:5px}}
/* V4.12.0e: Bedarfsübersicht weiter verdichtet */
.paving-needs-table-v4120e{font-size:.92rem;min-width:980px;table-layout:auto;width:100%;}
.paving-needs-table-v4120e th,.paving-needs-table-v4120e td{padding:6px 8px;vertical-align:top;}
.paving-needs-table-v4120e th:nth-child(1),.paving-needs-table-v4120e td:nth-child(1){width:92px;max-width:105px;}
.paving-needs-table-v4120e th:nth-child(2),.paving-needs-table-v4120e td:nth-child(2){width:260px;max-width:310px;}
.paving-needs-table-v4120e th:nth-child(3),.paving-needs-table-v4120e td:nth-child(3){width:150px;max-width:170px;}
.paving-needs-table-v4120e th:nth-child(4),.paving-needs-table-v4120e td:nth-child(4){width:82px;max-width:95px;}
.paving-needs-table-v4120e th:nth-child(6),.paving-needs-table-v4120e td:nth-child(6){width:132px;max-width:145px;}
.need-status-cell-v4120e{white-space:normal;}
.need-project-cell-v4120e b{color:#065f46;}
.need-inline-details-v4120e{margin-top:4px;max-width:100%;background:transparent;border:0;padding:0;color:#334155;}
.need-inline-details-v4120e summary{font-size:.86rem;}
.need-period-cell-v4120e{white-space:nowrap;}
.need-workers-cell-v4120e{text-align:left;white-space:nowrap;}
.need-coverage-compact-v4120e{min-width:260px;}
.need-planned-workers-v4120e{margin-top:6px;font-size:.86rem;line-height:1.25;}
.need-planned-workers-v4120e ul{margin:3px 0 0 18px;padding:0;}
.need-actions-vertical-v4120e{white-space:normal!important;min-width:120px!important;}
.need-actions-vertical-v4120e button,.need-actions-vertical-v4120e form{display:block;margin:0 0 5px 0;}
.need-actions-vertical-v4120e button{width:118px;text-align:left;padding:6px 8px;}
@media(max-width:1000px){.paving-needs-table-v4120e{font-size:.85rem;min-width:900px}.paving-needs-table-v4120e th,.paving-needs-table-v4120e td{padding:5px}}

/* V4.12.0f: Bedarfsliste nochmals verdichten, Eigene frei wieder als eigene Spalte */
.paving-needs-table-v4120f{font-size:.9rem;min-width:1120px;width:auto;table-layout:fixed;}
.paving-needs-table-v4120f th,.paving-needs-table-v4120f td{padding:5px 7px;vertical-align:top;}
.paving-needs-table-v4120f th:nth-child(1),.paving-needs-table-v4120f td:nth-child(1){width:78px;max-width:78px;}
.paving-needs-table-v4120f th:nth-child(2),.paving-needs-table-v4120f td:nth-child(2){width:205px;max-width:205px;}
.paving-needs-table-v4120f th:nth-child(3),.paving-needs-table-v4120f td:nth-child(3){width:175px;max-width:175px;}
.paving-needs-table-v4120f th:nth-child(4),.paving-needs-table-v4120f td:nth-child(4){width:135px;max-width:135px;white-space:normal;}
.paving-needs-table-v4120f th:nth-child(5),.paving-needs-table-v4120f td:nth-child(5){width:72px;max-width:72px;}
.paving-needs-table-v4120f th:nth-child(6),.paving-needs-table-v4120f td:nth-child(6){width:330px;max-width:330px;}
.paving-needs-table-v4120f th:nth-child(7),.paving-needs-table-v4120f td:nth-child(7){width:125px;max-width:125px;}
.paving-needs-table-v4120f .need-project-cell-v4120e b{display:block;line-height:1.18;}
.paving-needs-table-v4120f .need-inline-details-v4120e{font-size:.84rem;line-height:1.25;}
.need-free-cell-v4120f{font-size:.86rem;line-height:1.25;}
.need-availability-pill-v4120f{display:inline-block;background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:999px;padding:2px 7px;font-weight:700;font-size:.82rem;margin-bottom:3px;}
.need-free-list-v4120f{margin-top:4px;color:#334155;}
.paving-needs-table-v4120f .need-coverage-compact-v4120e{min-width:0;}
.paving-needs-table-v4120f .need-planned-workers-v4120e{font-size:.84rem;line-height:1.2;}
.paving-needs-table-v4120f .need-actions-vertical-v4120e{min-width:112px!important;}
.paving-needs-table-v4120f .need-actions-vertical-v4120e button{width:108px;padding:5px 7px;}
@media(max-width:1000px){.paving-needs-table-v4120f{font-size:.84rem;min-width:1040px}.paving-needs-table-v4120f th,.paving-needs-table-v4120f td{padding:5px}}

/* V4.12.0g: Bedarfsliste wieder volle Breite; nur Spaltenbreiten korrigiert */
.paving-needs-table-v4120f{
  width:100% !important;
  min-width:1120px;
  table-layout:fixed;
}
.paving-needs-table-v4120f th:nth-child(1),.paving-needs-table-v4120f td:nth-child(1){width:105px!important;max-width:none!important;}
.paving-needs-table-v4120f th:nth-child(2),.paving-needs-table-v4120f td:nth-child(2){width:210px!important;max-width:none!important;}
.paving-needs-table-v4120f th:nth-child(3),.paving-needs-table-v4120f td:nth-child(3){width:185px!important;max-width:none!important;}
.paving-needs-table-v4120f th:nth-child(4),.paving-needs-table-v4120f td:nth-child(4){width:175px!important;max-width:none!important;white-space:normal;}
.paving-needs-table-v4120f th:nth-child(5),.paving-needs-table-v4120f td:nth-child(5){width:120px!important;max-width:none!important;white-space:nowrap;}
.paving-needs-table-v4120f th:nth-child(6),.paving-needs-table-v4120f td:nth-child(6){width:auto!important;max-width:none!important;}
.paving-needs-table-v4120f th:nth-child(7),.paving-needs-table-v4120f td:nth-child(7){width:145px!important;max-width:none!important;}
.paving-needs-table-v4120f .need-workers-cell-v4120e{white-space:nowrap;}
.paving-needs-table-v4120f .need-actions-vertical-v4120e{min-width:135px!important;}
.paving-needs-table-v4120f .need-actions-vertical-v4120e button{width:132px!important;padding:6px 8px;}
@media(max-width:1000px){.paving-needs-table-v4120f{width:auto!important;min-width:1120px}}

/* V4.12.1: Kalender-Symbole für Status/Konflikt/Freigabe/Restbedarf */
.calendar-status-icons-v4121 {
  display: inline-block;
  margin-left: 2px;
  font-size: 13px;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
}
.plan-cell .calendar-status-icons-v4121 {
  text-shadow: 0 1px 2px rgba(0,0,0,.25);
}


/* V4.12.1a: Kalender ruhiger – alte gelbe Konflikt-Umrandung und Eck-Warndreieck entfernt, Statussymbole größer */
.plan-cell.conflict-cell,
.readonly-plan-cell-v4103.conflict-cell {
  box-shadow: none !important;
  animation: none !important;
  outline: none !important;
}
.plan-cell.conflict-cell::before,
.readonly-plan-cell-v4103.conflict-cell::before {
  content: none !important;
  display: none !important;
}
.calendar-status-icons-v4121 {
  font-size: 18px !important;
  line-height: 1.05 !important;
  margin-left: 4px !important;
  vertical-align: -2px !important;
  letter-spacing: 1px;
}
.plan-cell .calendar-status-icons-v4121 {
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}


/* V4.12.1b: Urlaubssymbol besser erkennbar (Sonnenbrille + Palme), kein Logikwechsel */
.calendar-status-icons-v4121 { font-size: 18px !important; }

/* V4.12.2 Menüfreigaben */
.nav-view-note{padding:8px 12px;font-size:12px;color:#64748b;border-bottom:1px solid #e5e7eb;background:#f8fafc;}
.menu-settings-table-v4122 th:nth-child(1), .menu-settings-table-v4122 td:nth-child(1){width:260px;}
.menu-settings-table-v4122 th:nth-child(2), .menu-settings-table-v4122 td:nth-child(2){width:260px;color:#475569;}
.toggle-row-v4122{display:inline-flex;align-items:center;gap:8px;font-weight:700;}
.toggle-row-v4122 input{width:20px;height:20px;}

/* V4.13.0 Leistungsarten / strukturierte Bedarf-Leistungen */
.need-work-items-v4130 { display: flex; flex-direction: column; gap: 6px; padding: 8px; border: 1px solid #b9d2e8; border-radius: 8px; background: #f8fbff; }
.need-work-items-list-v4130 { display: flex; flex-direction: column; gap: 6px; }
.need-work-item-row-v4130 { display: grid; grid-template-columns: minmax(220px, 1.4fr) 120px 60px auto; gap: 8px; align-items: center; }
.need-work-item-row-v4130 select,
.need-work-item-row-v4130 input { width: 100%; box-sizing: border-box; }
.work-unit-v4130 { font-weight: 700; color: #0b4f84; }
.inline-form-v4130 { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.inline-form-v4130 label { display: flex; flex-direction: column; gap: 4px; }
.inline-form-v4130.compact-v4130 { display: inline; }
.actions-v4130 form { margin-right: 6px; }
@media (max-width: 900px) {
  .need-work-item-row-v4130 { grid-template-columns: 1fr; }
}


/* V4.14.2 – Zusatzbedarf-Buttons im 3-Monats-Kalender mit sichtbarer Auswahl */
.calendar3-choice-group-v4142{
  margin-top:10px;
}
.calendar3-choice-label-v4142{
  font-weight:800;
  color:#0f3a5f;
  margin-top:6px;
}
.calendar3-choice-actions button.selected-v4142{
  background:#0f3a5f !important;
  color:#fff !important;
  border-color:#0b2c48 !important;
  box-shadow:0 0 0 3px rgba(15,58,95,.20);
}
.calendar3-choice-actions button.selected-v4142::after{
  content:" ✓";
  font-weight:900;
}
.calendar3-selection-summary-v4142{
  margin-top:12px;
  padding:10px 12px;
  border:1px solid #9fb8d2;
  border-radius:8px;
  background:#eef6ff;
  color:#10233a;
  font-weight:700;
}
.calendar3-confirm-actions-v4142{
  align-items:center;
}
.calendar3-confirm-actions-v4142 button:disabled{
  opacity:.45;
  cursor:not-allowed;
  filter:grayscale(.25);
}

/* V4.14.3 – Lernsignale beim Baustellenabschluss */
.learning-close-box-v4143{
  margin-top:18px;
  padding:14px;
  border:1px solid #d7dde8;
  border-radius:12px;
  background:#f8fafc;
}
.learning-question-v4143{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:center;
  margin:12px 0;
  padding:10px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:white;
}
.learning-question-v4143 b{
  flex:0 0 260px;
}
.learning-question-v4143 label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  padding:7px 10px;
  border:1px solid #cbd5e1;
  border-radius:999px;
  background:#fff;
  cursor:pointer;
}
.learning-question-v4143 label:has(input:checked){
  border-color:#1f4e78;
  box-shadow:0 0 0 2px rgba(31,78,120,.12);
  font-weight:700;
}

/* V4.14.4 – Lernprofile / Vertrauensgrad */
.compact-list-v4144{
  margin:0;
  padding-left:18px;
}
.compact-list-v4144 li{
  margin:2px 0;
}

/* V4.14.7 – sichtbare Bedarfseinschätzung erst ab 1000 Lernpunkten */
.need-estimate-box-v4147{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #99b7d8;
  border-radius:10px;
  background:#eef6ff;
  color:#10233a;
}
.need-estimate-title-v4147{
  font-weight:800;
  margin-bottom:6px;
  color:#0f3a5f;
}
.need-estimate-verdict-v4147{
  margin-bottom:8px;
}
.need-estimate-box-v4147 ul{
  margin:8px 0 4px 20px;
}
.need-estimate-box-v4147 small{
  display:block;
  margin-top:6px;
  color:#475569;
}

/* V4.14.9 – App-Vorschlag: Bis-Datum anpassen / eigenen Wunsch prüfen */
.need-estimate-box-v4148{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #99b7d8;
  border-radius:10px;
  background:#eef6ff;
  color:#10233a;
}
.need-estimate-box-v4148 ul{
  margin:8px 0 4px 20px;
}
.need-estimate-box-v4148 small{
  display:block;
  margin-top:6px;
  color:#475569;
}
.need-estimate-actions-v4148{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.need-estimate-action-v4148{
  border:1px solid #2563eb;
  background:#2563eb;
  color:white;
  border-radius:8px;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
}
.need-estimate-action-v4148.secondary{
  background:white;
  color:#1d4ed8;
}
.need-estimate-action-v4148.active-v4148{
  outline:3px solid rgba(37,99,235,.25);
  box-shadow:0 0 0 2px rgba(37,99,235,.15) inset;
}
.need-estimate-choice-v4148{
  margin-top:8px;
  font-weight:700;
  color:#1e3a8a;
}


/* V4.15.0 – Admin-Schalter Lern-/Vorschlags-/Automatikmodus */
.mode-status-v4150{margin:10px 0 16px 0;padding:10px 12px;background:#eef6ff;border:1px solid #bfd7ef;border-radius:8px;}
.mode-form-v4150{display:flex;flex-direction:column;gap:12px;}
.mode-card-v4150{display:block;border:1px solid #cbd6e2;border-radius:10px;background:#fff;padding:12px;cursor:pointer;}
.mode-card-v4150.active{border-width:2px;background:#eef6ff;}
.mode-card-v4150 input{margin-right:8px;}
.mode-card-v4150.disabled-v4150{cursor:default;background:#f7f7f7;color:#444;}
.mode-form-v4150 textarea{width:100%;max-width:900px;}

/* =========================================================
   V4.16.0 – Grunddesign / optische Vereinheitlichung Desktop
   Fachlogik unverändert. Nur globale Optik, Lesbarkeit, Buttons,
   Tabellen, Karten, Navigation und Statusboxen.
   ========================================================= */
:root{
  --v4160-bg:#f3f6fa;
  --v4160-panel:#ffffff;
  --v4160-panel-soft:#f8fafc;
  --v4160-text:#172033;
  --v4160-muted:#64748b;
  --v4160-border:#d8e1ec;
  --v4160-border-strong:#b9c8d8;
  --v4160-primary:#1f4e78;
  --v4160-primary-2:#163b5c;
  --v4160-primary-soft:#e8f2fb;
  --v4160-accent:#2563eb;
  --v4160-success:#15803d;
  --v4160-success-bg:#dcfce7;
  --v4160-warning:#b45309;
  --v4160-warning-bg:#fff7ed;
  --v4160-danger:#b91c1c;
  --v4160-danger-bg:#fee2e2;
  --v4160-shadow:0 10px 28px rgba(15,23,42,.08);
  --v4160-shadow-soft:0 4px 14px rgba(15,23,42,.06);
  --v4160-radius:14px;
  --v4160-radius-sm:10px;
}
html{scroll-behavior:smooth;}
body{
  background:linear-gradient(180deg,#edf4fb 0,#f6f8fb 220px,var(--v4160-bg) 100%)!important;
  color:var(--v4160-text)!important;
  font-family:Arial,"Helvetica Neue",Helvetica,sans-serif!important;
  font-size:14px;
  line-height:1.45;
}
header{
  background:linear-gradient(135deg,#163b5c 0%,#1f4e78 55%,#2b6f9e 100%)!important;
  padding:16px 24px 18px!important;
  box-shadow:0 8px 22px rgba(15,23,42,.20);
  position:relative;
  z-index:10;
}
header h1{
  margin:0 0 12px 0!important;
  font-size:24px;
  font-weight:800;
  letter-spacing:.2px;
}
main{
  width:min(100%,1680px);
  margin:0 auto;
  padding:22px!important;
  box-sizing:border-box;
}
.main-nav,
header nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
nav a,
.global-print,
.nav-more-btn{
  border:1px solid rgba(255,255,255,.18)!important;
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:8px 12px!important;
  line-height:1.1;
  margin:0!important;
  text-decoration:none!important;
  font-weight:700!important;
  transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
}
nav a:hover,
.global-print:hover,
.nav-more-btn:hover{
  background:rgba(255,255,255,.20)!important;
  transform:translateY(-1px);
}
.nav-need-button-v486{
  color:transparent!important;
}
.nav-more{position:relative;display:inline-flex;align-items:center;}
.nav-more-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:245px;
  background:var(--v4160-panel)!important;
  border:1px solid var(--v4160-border)!important;
  border-radius:14px!important;
  box-shadow:var(--v4160-shadow)!important;
  padding:8px!important;
  z-index:9999;
}
.nav-more-menu a{
  display:block!important;
  color:var(--v4160-text)!important;
  background:transparent!important;
  border:0!important;
  border-radius:10px!important;
  padding:9px 10px!important;
  margin:0 0 2px 0!important;
}
.nav-more-menu a:hover{background:var(--v4160-primary-soft)!important;transform:none!important;}
.nav-view-note{
  color:var(--v4160-muted)!important;
  background:var(--v4160-panel-soft)!important;
  border-radius:10px;
  padding:8px 10px;
  margin-bottom:6px;
  font-size:12px;
  font-weight:700;
}
.notification-widget{position:absolute;right:22px;top:14px;}
.notification-bell{
  border-radius:999px!important;
  min-width:44px;
  height:40px;
  box-shadow:0 3px 12px rgba(0,0,0,.18);
}
.notification-panel{
  border-radius:14px!important;
  border:1px solid var(--v4160-border)!important;
  box-shadow:var(--v4160-shadow)!important;
}
.card,
section.card{
  background:rgba(255,255,255,.96)!important;
  border:1px solid var(--v4160-border)!important;
  border-radius:var(--v4160-radius)!important;
  padding:18px!important;
  margin-bottom:18px!important;
  box-shadow:var(--v4160-shadow-soft)!important;
}
.card > h2:first-child,
.card > h3:first-child,
main > h2:first-child,
main > h3:first-child{
  margin-top:0;
}
h2{font-size:22px;margin:0 0 14px;color:#0f2437;}
h3{font-size:18px;margin:18px 0 10px;color:#172033;}
h4{font-size:15px;margin:14px 0 8px;color:#172033;}
.hint,
small,
.help-text{
  color:var(--v4160-muted)!important;
}
table{
  width:100%;
  border-collapse:separate!important;
  border-spacing:0!important;
  background:#fff;
  border:1px solid var(--v4160-border)!important;
  border-radius:12px;
  overflow:hidden;
}
th{
  background:#e8f2fb!important;
  color:#17324d!important;
  font-weight:800!important;
  border-color:var(--v4160-border)!important;
}
th,td{
  padding:10px 11px!important;
  border:0!important;
  border-bottom:1px solid var(--v4160-border)!important;
  border-right:1px solid var(--v4160-border)!important;
  vertical-align:top!important;
}
tr:last-child td{border-bottom:0!important;}
th:last-child,td:last-child{border-right:0!important;}
tbody tr:nth-child(even):not(.weekend):not(.holiday-cell):not(.busy):not(.free){background:#fbfdff;}
tbody tr:hover{background:#f7fbff;}
input,select,textarea{
  border:1px solid var(--v4160-border-strong)!important;
  border-radius:10px!important;
  padding:9px 10px!important;
  background:#fff!important;
  color:var(--v4160-text)!important;
  box-sizing:border-box;
}
textarea{min-height:80px;resize:vertical;}
input:focus,select:focus,textarea:focus{
  outline:3px solid rgba(37,99,235,.18)!important;
  border-color:#2563eb!important;
}
button,
.button-link,
input[type="submit"]{
  border:1px solid transparent!important;
  border-radius:10px!important;
  padding:9px 13px!important;
  background:var(--v4160-primary)!important;
  color:#fff!important;
  font-weight:800!important;
  text-decoration:none!important;
  cursor:pointer;
  box-shadow:0 2px 7px rgba(31,78,120,.18);
  transition:background .15s ease, transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
button:hover,
.button-link:hover,
input[type="submit"]:hover{
  background:var(--v4160-primary-2)!important;
  transform:translateY(-1px);
  box-shadow:0 5px 12px rgba(31,78,120,.22);
}
button:disabled,
button[disabled]{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important;}
button.danger,
.danger,
.button-link.danger{background:var(--v4160-danger)!important;color:#fff!important;}
button.danger:hover,
.button-link.danger:hover{background:#991b1b!important;}
.inline{
  gap:12px!important;
  align-items:flex-end!important;
}
.grid{
  gap:14px!important;
}
.warning-box,
.error,
.ok-box{
  border-radius:12px!important;
  padding:13px 14px!important;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.warning-box{
  background:var(--v4160-warning-bg)!important;
  border:1px solid #fdba74!important;
  color:#7c2d12!important;
}
.error{
  background:var(--v4160-danger-bg)!important;
  border:1px solid #fca5a5!important;
  color:#7f1d1d!important;
}
.ok-box{
  background:var(--v4160-success-bg)!important;
  border:1px solid #86efac!important;
  color:#14532d!important;
}
.busy{background:#fee2e2!important;color:#7f1d1d!important;}
.free{background:#dcfce7!important;color:#14532d!important;}
.calendar-head{
  background:var(--v4160-panel)!important;
  border:1px solid var(--v4160-border)!important;
  border-radius:14px!important;
  padding:12px 14px!important;
  margin-bottom:14px!important;
  box-shadow:var(--v4160-shadow-soft);
}
.calendar-scroll{
  border:1px solid var(--v4160-border)!important;
  border-radius:14px!important;
  background:#fff;
  box-shadow:var(--v4160-shadow-soft);
}
.planner th,.planner td{border:1px solid #c8d5e2!important;vertical-align:middle!important;}
.title-col,.employee-cell,.day-head,.day-num,.weekday{background:#e8f2fb!important;}
.employee-cell{font-weight:700;}
.count-col,.count-cell{background:#f8fafc!important;}
.legend-item{
  border-color:var(--v4160-border)!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 2px 8px rgba(15,23,42,.035);
}
.colorbox,.legend-color{box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
/* Status-/Badge-Grundlagen für bestehende und zukünftige Seiten
   V4.16.3 Fix: keine generischen [class*="status-"]/[class*="badge-"] Selektoren mehr.
   Diese hatten Kalenderzellen wie <td class="... status-arbeit"> zu Inline-Flex gemacht
   und dadurch Einsätze fachlich falsch/gestapelt dargestellt. */
.badge,
.status-badge,
.badge-ok,.badge-warn,.badge-danger,.badge-info,
.status-ok,.status-success,.status-warning,.status-danger,.status-info{
  border-radius:999px;
  padding:3px 8px;
  font-size:12px;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.badge-ok,.status-ok,.status-success{background:#dcfce7;color:#14532d;}
.badge-warn,.status-warning{background:#fef3c7;color:#92400e;}
.badge-danger,.status-danger{background:#fee2e2;color:#991b1b;}
.badge-info,.status-info{background:#dbeafe;color:#1e3a8a;}
/* Admin-/Lernseiten etwas ruhiger */
.dryrun-card-v4152,
.learning-card,
.profile-card{
  border-left:5px solid #93c5fd!important;
}
/* Kleine Bildschirme noch nicht final mobil optimiert, aber Grundlayout stabilisieren */
@media (max-width:900px){
  header{padding:14px 12px!important;}
  header h1{font-size:20px;max-width:calc(100% - 58px);}
  main{padding:12px!important;}
  .notification-widget{right:12px;top:12px;}
  nav a,.global-print,.nav-more-btn{padding:8px 10px!important;font-size:13px;}
  .card,section.card{padding:14px!important;}
  th,td{padding:8px!important;}
}
@media print{
  body{background:white!important;}
  header, .notification-widget, .nav-more, .global-print{display:none!important;}
  .card,section.card{box-shadow:none!important;border-radius:0!important;}
}


/* =========================================================
   V4.16.1 – Kalenderdarstellung kompakt korrigiert
   Nur Bauleiter-Kalender 3 Monate und Monatsplanung.
   Ziel: weniger Leerraum, mehr Tage/Mitarbeiter gleichzeitig sichtbar,
   restliches V4.16.0-Grunddesign unverändert.
   ========================================================= */
.calendar-wide-v4161{
  width:calc(100vw - 44px)!important;
  max-width:calc(100vw - 44px)!important;
  margin-left:50%!important;
  transform:translateX(-50%)!important;
  padding:14px!important;
}
.calendar-compact-scroll-v4161{
  overflow:auto!important;
  border-radius:12px!important;
  max-width:100%!important;
}
.planner-month-v4161,
.calendar-3month-section-v4103 .planner-readonly-v4103{
  width:max-content!important;
  min-width:100%!important;
  table-layout:fixed!important;
  font-size:12px!important;
}
.planner-month-v4161 th,
.planner-month-v4161 td,
.calendar-3month-section-v4103 .planner-readonly-v4103 th,
.calendar-3month-section-v4103 .planner-readonly-v4103 td{
  padding:4px 5px!important;
  vertical-align:middle!important;
  line-height:1.18!important;
}
.planner-month-v4161 .title-col,
.planner-month-v4161 .employee-cell,
.calendar-3month-section-v4103 .title-col,
.calendar-3month-section-v4103 .employee-cell{
  width:225px!important;
  min-width:225px!important;
  max-width:225px!important;
  font-size:12px!important;
  line-height:1.15!important;
  padding:6px 8px!important;
}
.planner-month-v4161 .employee-cell small,
.calendar-3month-section-v4103 .employee-cell small{
  font-size:10px!important;
  line-height:1.1!important;
}
.planner-month-v4161 .day-head,
.planner-month-v4161 .day-num,
.planner-month-v4161 .weekday,
.planner-month-v4161 .plan-cell,
.calendar-3month-section-v4103 .day-head,
.calendar-3month-section-v4103 .day-num,
.calendar-3month-section-v4103 .weekday,
.calendar-3month-section-v4103 .plan-cell{
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  font-size:11px!important;
}
.planner-month-v4161 .day-head,
.planner-month-v4161 .day-num,
.planner-month-v4161 .weekday,
.calendar-3month-section-v4103 .day-head,
.calendar-3month-section-v4103 .day-num,
.calendar-3month-section-v4103 .weekday{
  height:24px!important;
  padding:3px 4px!important;
}
.planner-month-v4161 .plan-cell,
.calendar-3month-section-v4103 .plan-cell{
  height:34px!important;
  min-height:34px!important;
  max-height:60px!important;
  padding:3px 4px!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.planner-month-v4161 .cell-add{
  line-height:24px!important;
  height:24px!important;
  min-height:24px!important;
  font-size:14px!important;
  display:block!important;
}
.planner-month-v4161 .count-col,
.planner-month-v4161 .count-cell,
.calendar-3month-section-v4103 .count-col,
.calendar-3month-section-v4103 .count-cell{
  width:60px!important;
  min-width:60px!important;
  max-width:60px!important;
  font-size:12px!important;
  padding:4px 5px!important;
}
.calendar-3month-section-v4103 h2{
  margin-bottom:10px!important;
}
.calendar-wide-v4161 .calendar-status-icons-v4121{
  font-size:13px!important;
}
@media (max-width:900px){
  .calendar-wide-v4161{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    padding:10px!important;
  }
  .planner-month-v4161 .title-col,
  .planner-month-v4161 .employee-cell,
  .calendar-3month-section-v4103 .title-col,
  .calendar-3month-section-v4103 .employee-cell{
    width:175px!important;min-width:175px!important;max-width:175px!important;
  }
  .planner-month-v4161 .day-head,
  .planner-month-v4161 .day-num,
  .planner-month-v4161 .weekday,
  .planner-month-v4161 .plan-cell,
  .calendar-3month-section-v4103 .day-head,
  .calendar-3month-section-v4103 .day-num,
  .calendar-3month-section-v4103 .weekday,
  .calendar-3month-section-v4103 .plan-cell{
    width:42px!important;min-width:42px!important;max-width:42px!important;
  }
}


/* =========================================================
   V4.16.3 – Navigation/Startseite/Kalenderkopf
   - Dispo ist nicht mehr Hauptstartseite.
   - Kalenderkopf 3 Monate: Buttons wie Monatsplanung sauber nebeneinander.
   ========================================================= */
.calendar-nav-actions-v4162{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
  margin-left:auto!important;
}
.calendar-nav-actions-v4162 .button-link{
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  padding:8px 12px!important;
  line-height:1.1!important;
}
.calendar-head > div:first-child{
  min-width:0!important;
  flex:1 1 auto!important;
}
.calendar-head > .calendar-nav-actions-v4162{
  flex:0 0 auto!important;
}
@media (max-width:1000px){
  .calendar-head{
    align-items:flex-start!important;
  }
  .calendar-nav-actions-v4162{
    flex-wrap:wrap!important;
  }
}


/* =========================================================
   V4.16.3 – Kalenderdarstellung fachlich korrigiert
   Ursache: globale Badge-/Status-Selektoren aus V4.16.0 trafen auch
   Kalenderzellen mit Klassen wie status-arbeit/status-urlaub.
   Ergebnis war eine falsche Inline-Flex-/Badge-Darstellung.
   Fix: Kalenderzellen bleiben echte Tabellenzellen; Einsätze werden wieder
   wie in V4.15.2 pro Pflasterer und Tag in der richtigen Tageszelle gezeigt.
   ========================================================= */
.planner td.plan-cell,
.planner td.assignment-cell,
.planner-readonly-v4103 td.plan-cell,
.planner-readonly-v4103 td.assignment-cell,
.planner-month-v4161 td.plan-cell,
.calendar-3month-section-v4103 td.plan-cell{
  display:table-cell!important;
  border-radius:0!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
.planner td.assignment-cell,
.planner-readonly-v4103 td.assignment-cell,
.planner-month-v4161 td.assignment-cell,
.calendar-3month-section-v4103 td.assignment-cell{
  font-weight:800!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
}
.planner-month-v4161 .assignment-cell,
.calendar-3month-section-v4103 .assignment-cell{
  min-height:34px!important;
  line-height:1.15!important;
}

/* V4.16.4: Login / Passwort / Benutzer-Sicherheit */
.auth-page-v4164{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f4f6f8;
  padding:24px;
}
.auth-card-v4164{
  width:min(460px, 100%);
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:16px;
  box-shadow:0 14px 40px rgba(15,23,42,.12);
  padding:28px;
}
.auth-card-v4164 h1{ margin:0 0 6px; font-size:28px; }
.auth-card-v4164 h2{ margin:0 0 18px; font-size:20px; color:#334155; }
.auth-form-v4164{ display:grid; gap:10px; }
.auth-form-v4164 label{ font-weight:700; color:#334155; }
.auth-form-v4164 input{ width:100%; padding:11px 12px; border:1px solid #cbd5e1; border-radius:10px; font-size:15px; }
.auth-form-v4164 button{ margin-top:8px; padding:11px 16px; border-radius:10px; }
.auth-user-box{ display:flex; align-items:center; gap:10px; margin-left:auto; font-size:13px; color:#fff; }
.auth-user-box a{ padding:6px 8px; }
.auth-inline-card-v4164{ max-width:560px; }
.auth-form-inline-v4164{ max-width:440px; }
.startpass-box-v4164 code{ font-size:16px; padding:2px 6px; background:#eef2ff; border-radius:6px; }
.check-inline-v4164{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.check-inline-v4164 input{ width:auto; }
.warn-badge{ display:inline-block; padding:3px 8px; border-radius:999px; background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; font-size:12px; }

/* V4.16.4b: Öffentliche Monatsübersicht ohne Login */
.public-calendar-page-v4164b{
  margin:0;
  background:linear-gradient(180deg,#f8fbff 0,#eef5fb 100%);
  color:#102033;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.public-topbar-v4164b{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 22px;
  background:linear-gradient(135deg,#17496e,#256d9d);
  color:#fff;
  box-shadow:0 4px 14px rgba(15,40,70,.18);
}
.public-topbar-v4164b h1{ margin:0; font-size:26px; letter-spacing:.2px; }
.public-topbar-v4164b p{ margin:3px 0 0; color:#dbeafe; font-size:13px; }
.public-login-btn-v4164b{
  background:#fff !important;
  color:#17496e !important;
  border:1px solid rgba(255,255,255,.4) !important;
  box-shadow:0 2px 8px rgba(0,0,0,.12);
  white-space:nowrap;
}
.public-main-v4164b{ padding:14px 12px 28px; }
.public-calendar-head-v4164b{
  max-width:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.public-calendar-head-v4164b h2{ margin:0 0 4px; }
.public-nav-v4164b{ flex-wrap:wrap; justify-content:flex-end; }
.public-calendar-card-v4164b{ max-width:none; }
.public-planner-v4164b .emp-name{ min-width:210px; }
.public-planner-v4164b .plan-cell{ cursor:default; }
.public-planner-v4164b td.assignment-cell{ text-align:center; vertical-align:middle; font-size:12px; }
.public-note-v4164b{ max-width:none; border-left:5px solid #256d9d; }
.public-legend-v4164b{ max-width:none; }
@media (max-width: 800px){
  .public-topbar-v4164b{ align-items:flex-start; flex-direction:column; }
  .public-calendar-head-v4164b{ align-items:flex-start; flex-direction:column; }
  .public-nav-v4164b{ justify-content:flex-start; }
}

/* V4.16.4b: öffentliche Monatsübersicht - Datum, Namen und Kontrast verbessert */
.public-calendar-page-v4164b{
  background:linear-gradient(180deg,#eef5fb 0,#d9e8f3 100%);
  color:#071d33;
}
.public-topbar-v4164b{
  background:linear-gradient(135deg,#0d3a5b,#1c668f);
  box-shadow:0 5px 18px rgba(7,29,51,.24);
}
.public-topbar-v4164b h1{font-size:28px;font-weight:900;}
.public-topbar-v4164b p{color:#eef6ff;font-weight:700;}
.public-login-btn-v4164b{font-weight:900;}
.public-calendar-head-v4164b,
.public-calendar-card-v4164b,
.public-note-v4164b,
.public-legend-v4164b{
  border-color:#b6cadc;
  box-shadow:0 8px 26px rgba(7,29,51,.12);
}
.public-planner-v4164b{
  border-color:#9eb7ce;
  color:#051a2f;
}
.public-planner-v4164b th,
.public-planner-v4164b td{
  border-color:#abc1d6;
}
.public-planner-v4164b thead th{
  background:#d3e5f4;
  color:#071d33;
  font-weight:900;
}
.public-planner-v4164b .day-date{
  font-size:13px;
  line-height:1.15;
  padding:7px 4px 4px;
  white-space:nowrap;
}
.public-planner-v4164b .day-name{
  font-size:12px;
  line-height:1.15;
  padding:4px;
}
.public-planner-v4164b .emp-name{
  min-width:220px;
  background:#d7e8f6;
  color:#06172b;
  font-size:13px;
  font-weight:900;
  line-height:1.2;
  text-align:left;
  padding-left:12px;
}
.public-planner-v4164b .emp-name small{
  display:block;
  margin-top:3px;
  color:#143c5e;
  font-weight:800;
  font-size:11px;
}
.public-planner-v4164b .plan-cell{
  background:#f8fbfe;
  color:#0b2b47;
}
.public-planner-v4164b .plan-cell.weekend,
.public-planner-v4164b th.weekend{
  background:#d5d5d5 !important;
}
.public-planner-v4164b .readonly-free-v4103{
  color:#315c7c;
  opacity:.75;
  font-weight:900;
}
.public-planner-v4164b td.assignment-cell{
  font-size:12px;
  letter-spacing:.2px;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.45);
}
.public-planner-v4164b .today-cell{
  outline:3px solid #00a76f !important;
  outline-offset:-3px;
}
.public-note-v4164b{
  background:#f2f8ff;
  color:#08213b;
  font-size:15px;
}
.public-legend-v4164b h2{color:#071d33;}
.public-legend-v4164b .legend-item{
  background:#f8fbfe;
  border-color:#b6cadc;
  font-weight:750;
}


/* V4.16.4c: öffentliche Monatsübersicht - KW wiederhergestellt und Kontrast stärker */
.public-calendar-page-v4164b,
.public-calendar-page-v4164c{
  background:linear-gradient(180deg,#dfeaf3 0,#cfddea 100%);
  color:#02162b;
}
.public-calendar-head-v4164b,
.public-calendar-head-v4164c,
.public-calendar-card-v4164b,
.public-calendar-card-v4164c,
.public-note-v4164b,
.public-note-v4164c,
.public-legend-v4164b,
.public-legend-v4164c{
  border:1px solid #8ea9c1;
  box-shadow:0 8px 24px rgba(2,22,43,.16);
  background:#ffffff;
}
.public-planner-v4164b,
.public-planner-v4164c{
  border:2px solid #7f9bb5;
  color:#02162b;
}
.public-planner-v4164b th,
.public-planner-v4164b td,
.public-planner-v4164c th,
.public-planner-v4164c td{
  border-color:#8faac2 !important;
}
.public-planner-v4164b thead th,
.public-planner-v4164c thead th{
  background:#bfd8ed !important;
  color:#00172c !important;
  font-weight:950;
}
.public-planner-v4164b .day-week,
.public-planner-v4164c .day-week{
  font-size:12px;
  line-height:1.05;
  padding:5px 3px 3px;
  white-space:nowrap;
  background:#b7d1e8 !important;
}
.public-planner-v4164b .day-date,
.public-planner-v4164c .day-date{
  font-size:13px;
  line-height:1.1;
  padding:5px 3px 3px;
  white-space:nowrap;
  background:#c7ddf0 !important;
}
.public-planner-v4164b .day-name,
.public-planner-v4164c .day-name{
  font-size:12px;
  line-height:1.1;
  padding:4px 3px;
  background:#d3e4f2 !important;
}
.public-planner-v4164b .emp-name,
.public-planner-v4164c .emp-name,
.public-planner-v4164b .title-col,
.public-planner-v4164c .title-col{
  background:#c2d9eb !important;
  color:#00172c !important;
  font-weight:950;
}
.public-planner-v4164b .emp-name small,
.public-planner-v4164c .emp-name small{
  color:#073456 !important;
  font-weight:850;
}
.public-planner-v4164b .plan-cell,
.public-planner-v4164c .plan-cell{
  background:#f3f8fc;
}
.public-planner-v4164b .plan-cell.weekend,
.public-planner-v4164b th.weekend,
.public-planner-v4164c .plan-cell.weekend,
.public-planner-v4164c th.weekend{
  background:#c8c8c8 !important;
}
.public-planner-v4164b .readonly-free-v4103,
.public-planner-v4164c .readonly-free-v4103{
  color:#0b3d60;
  opacity:.9;
  font-weight:950;
}
.public-planner-v4164b td.assignment-cell,
.public-planner-v4164c td.assignment-cell{
  font-size:12px;
  letter-spacing:.25px;
  text-shadow:0 1px 1px rgba(0,0,0,.35);
  border:1px solid #ffffff !important;
}
.public-planner-v4164b .holiday-label-v4104,
.public-planner-v4164c .holiday-label-v4104{
  background:#bfd7ff;
  color:#063b82;
  border:1px solid #2b6fd6;
  font-weight:950;
}
.public-planner-v4164b .bridge-label-v4104,
.public-planner-v4164c .bridge-label-v4104{
  background:#ffd75a;
  color:#6b3b00;
  border:1px solid #d88900;
  font-weight:950;
}
.public-planner-v4164b .today-cell,
.public-planner-v4164c .today-cell{
  outline:4px solid #00a66a !important;
  outline-offset:-4px;
}
.public-note-v4164b,
.public-note-v4164c{
  background:#e8f3ff;
  color:#02162b;
  border-left:6px solid #0f5f91;
  font-weight:650;
}
.public-legend-v4164b .legend-item,
.public-legend-v4164c .legend-item{
  background:#f5f9fd;
  border:1px solid #8ea9c1;
  color:#02162b;
  font-weight:850;
}

/* =========================================================
   V4.17.0a – Mobile-/Handy-Optimierung fuer Browser-Handy-Ansicht
   Fokus: oeffentliche Monatsuebersicht, Login/Setup, Bauleiter-Grundseiten,
   Kalender-Scroll und Bedarfsmeldung. Fachlogik unveraendert.
   ========================================================= */
@media (max-width: 760px){
  html{font-size:16px;}
  body{font-size:15px!important;line-height:1.38!important;overflow-x:hidden;}
  header{padding:12px 10px!important;}
  header h1{font-size:20px!important;margin-bottom:9px!important;}
  main{padding:10px!important;width:100%!important;}
  .card{border-radius:12px!important;padding:12px!important;margin-bottom:12px!important;overflow-x:auto;box-shadow:0 5px 18px rgba(15,23,42,.08)!important;}
  .card.wide{overflow:hidden!important;padding:10px!important;}
  h2{font-size:19px!important;line-height:1.2;margin-top:0;}
  h3{font-size:17px!important;}
  .hint{font-size:13px!important;line-height:1.35!important;}

  input,select,textarea,button,.button-link{font-size:16px!important;min-height:42px;box-sizing:border-box;}
  input,select,textarea{width:100%!important;max-width:100%;}
  textarea{min-height:86px;}
  button,.button-link{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;}
  .inline{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important;}
  .inline label{display:flex;flex-direction:column;gap:5px;}
  .grid{grid-template-columns:1fr!important;gap:10px!important;}

  .main-nav,header nav{display:flex!important;gap:7px!important;align-items:flex-start!important;overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:3px;-webkit-overflow-scrolling:touch;}
  .main-nav a,header nav a,.global-print,.nav-more-btn{flex:0 0 auto;padding:9px 11px!important;font-size:14px!important;white-space:nowrap;}
  .main-nav .nav-need-button-v486,header nav .nav-need-button-v486{
    width:66px!important;
    min-width:66px!important;
    height:66px!important;
    padding:0!important;
    font-size:0!important;
  }
  .auth-user-box{width:100%;margin-left:0!important;justify-content:flex-start;flex-wrap:wrap;gap:7px;}
  .nav-more-menu{right:auto!important;left:0!important;max-width:92vw;}

  .notification-widget{position:absolute;right:10px;top:10px;}
  .notification-panel{position:fixed!important;right:8px!important;left:8px!important;top:58px!important;width:auto!important;max-width:none!important;z-index:99999!important;}

  .calendar-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;}
  .calendar-nav-actions-v4162,.public-nav-v4164b{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%;justify-content:stretch!important;}
  .calendar-nav-actions-v4162 .button-link,.public-nav-v4164b .button-link{width:100%;margin-left:0!important;}
  .calendar-scroll{overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;border:1px solid #9fb3c8!important;border-radius:10px;max-width:100%;}
  .calendar-scroll::before{content:"Seitlich wischen/scrollen für weitere Tage";display:block;position:sticky;left:0;background:#f8fafc;color:#334155;font-size:12px;font-weight:800;padding:6px 8px;border-bottom:1px solid #cbd5e1;z-index:5;}
  .planner{min-width:1450px!important;font-size:11px!important;}
  .title-col,.employee-cell{width:150px!important;min-width:150px!important;max-width:150px!important;font-size:12px!important;}
  .day-head,.day-num,.weekday,.plan-cell{width:46px!important;min-width:46px!important;max-width:46px!important;font-size:10px!important;padding:3px 2px!important;}
  .plan-cell{height:54px!important;line-height:1.12!important;}
  .count-col,.count-cell{width:54px!important;min-width:54px!important;max-width:54px!important;font-size:11px!important;}
  .sticky-left{left:0!important;z-index:8!important;}
  .today-cell{outline-width:3px!important;outline-offset:-3px!important;}
  .calendar-status-icons-v4121{font-size:14px!important;margin-left:1px!important;letter-spacing:0!important;}

  .public-topbar-v4164b{padding:12px 10px!important;gap:10px!important;}
  .public-topbar-v4164b h1{font-size:22px!important;}
  .public-topbar-v4164b p{font-size:12px!important;}
  .public-login-btn-v4164b{width:100%;margin-left:0!important;}
  .public-main-v4164b{padding:9px 6px 18px!important;}
  .public-calendar-head-v4164b{gap:10px!important;}
  .public-calendar-head-v4164b h2{font-size:18px!important;}
  .public-calendar-card-v4164b{padding:7px!important;}
  .public-planner-v4164b{min-width:1320px!important;}
  .public-planner-v4164b .title-col,.public-planner-v4164b .emp-name{width:138px!important;min-width:138px!important;max-width:138px!important;font-size:11px!important;padding-left:7px!important;}
  .public-planner-v4164b .emp-name small{font-size:10px!important;}
  .public-planner-v4164b .day-week,.public-planner-v4164b .day-date,.public-planner-v4164b .day-name,.public-planner-v4164b .plan-cell{width:40px!important;min-width:40px!important;max-width:40px!important;}
  .public-planner-v4164b .day-week{font-size:9px!important;padding:3px 1px!important;}
  .public-planner-v4164b .day-date{font-size:10px!important;padding:4px 1px!important;}
  .public-planner-v4164b .day-name{font-size:10px!important;padding:3px 1px!important;}
  .public-planner-v4164b .plan-cell{height:48px!important;font-size:10px!important;line-height:1.1!important;}
  .public-planner-v4164b td.assignment-cell{font-size:10px!important;letter-spacing:0!important;text-shadow:0 1px 1px rgba(0,0,0,.38);}
  .public-note-v4164b,.public-legend-v4164b{font-size:13px!important;}
  .legend-grid{grid-template-columns:1fr!important;gap:7px!important;}
  .legend-item{padding:8px!important;font-size:13px!important;}

  .auth-page-v4164{align-items:flex-start!important;padding:14px 10px!important;background:linear-gradient(180deg,#eaf3fb,#f6f8fb)!important;}
  .auth-card-v4164{width:100%!important;border-radius:14px!important;padding:18px!important;margin-top:18px;box-shadow:0 9px 25px rgba(15,23,42,.10)!important;}
  .auth-card-v4164 h1{font-size:25px!important;}
  .auth-card-v4164 h2{font-size:18px!important;margin-bottom:14px!important;}
  .auth-form-v4164{gap:9px!important;}
  .auth-form-v4164 button{width:100%;}

  .paving-need-form-v484,.need-new-project-v484,.need-change-form-v491,.need-filter-v484{grid-template-columns:1fr!important;display:grid!important;gap:10px!important;}
  .paving-need-form-v484 .full,.need-change-form-v491 .full{grid-column:1!important;}
  .need-stats-v484{justify-content:flex-start!important;gap:6px!important;}
  .need-badge-v484,.need-status-pill-v484,.need-priority-v484{font-size:11px!important;padding:5px 8px!important;}
  .need-work-item-row-v4130{grid-template-columns:1fr!important;gap:7px!important;}
  .need-estimate-actions-v4148{display:grid!important;grid-template-columns:1fr!important;}
  .need-estimate-action-v4148{width:100%;}
  .need-actions-v484,.need-actions-vertical-v4120e{display:grid!important;grid-template-columns:1fr!important;min-width:0!important;width:100%!important;}
  .need-actions-v484 button,.need-actions-vertical-v4120e button{width:100%!important;min-width:0!important;}
  .paving-needs-table-v4120f,.menu-settings-table-v4122,table{font-size:12px;}
  .paving-needs-table-v4120f{min-width:1060px!important;}

  .assignment-modal-box{width:calc(100vw - 18px)!important;max-width:none!important;max-height:92vh!important;overflow:auto!important;margin:8px!important;}
  .assignment-modal-head{gap:8px;}
  .calendar3-actions-v4106,.calendar3-choice-actions,.calendar3-confirm-actions-v4142{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .calendar3-actions-v4106 button,.calendar3-choice-actions button,.calendar3-confirm-actions-v4142 button{width:100%;}
}

@media (min-width: 761px) and (max-width: 1100px){
  main{padding:14px!important;}
  .calendar-nav-actions-v4162{flex-wrap:wrap!important;justify-content:flex-start!important;}
  .planner{min-width:1600px!important;}
  .title-col,.employee-cell{width:190px!important;}
  .day-head,.day-num,.weekday,.plan-cell{width:58px!important;}
  .public-planner-v4164b{min-width:1500px!important;}
  .paving-need-form-v484,.need-new-project-v484{grid-template-columns:repeat(2,minmax(220px,1fr))!important;}
  .paving-need-form-v484 .full{grid-column:1/-1!important;}
}

/* =========================================================
   V4.17.0a – Mobile-Korrekturen
   Heute-Scroll, Pflasterer-Stepper, Stammdaten-Karten
   ========================================================= */
.worker-stepper-v4170a{display:grid;grid-template-columns:44px minmax(80px,1fr) 44px;gap:6px;align-items:center;margin-top:4px;}
.worker-stepper-v4170a input{text-align:center;font-weight:800;}
.worker-step-btn-v4170a{padding:8px 10px!important;min-width:44px;}
.worker-choice-v4170a{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.worker-choice-v4170a button{padding:7px 10px!important;min-height:34px!important;border-radius:999px;}
.worker-choice-v4170a button.active-worker-v4170a{outline:3px solid #93c5fd;outline-offset:1px;background:#0f3d66;}

@media (max-width:760px){
  .worker-stepper-v4170a{grid-template-columns:52px minmax(90px,1fr) 52px;gap:8px;}
  .worker-stepper-v4170a input{height:48px!important;font-size:19px!important;}
  .worker-step-btn-v4170a{height:48px!important;font-size:22px!important;}
  .worker-choice-v4170a{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
  .worker-choice-v4170a button{width:100%;min-height:40px!important;font-size:14px!important;}

  table.master-table-v4170a{display:block!important;width:100%!important;min-width:0!important;border-collapse:separate!important;border-spacing:0!important;border:0!important;background:transparent!important;}
  table.master-table-v4170a thead{display:none!important;}
  table.master-table-v4170a tbody{display:block!important;width:100%!important;}
  table.master-table-v4170a tr{display:block!important;background:#ffffff!important;border:1px solid #cbd5e1!important;border-radius:12px!important;padding:10px!important;margin:0 0 12px 0!important;box-shadow:0 3px 12px rgba(15,23,42,.06)!important;}
  table.master-table-v4170a td{display:grid!important;grid-template-columns:112px minmax(0,1fr)!important;gap:8px!important;align-items:center!important;border:0!important;border-bottom:1px solid #e2e8f0!important;padding:8px 0!important;width:100%!important;min-width:0!important;box-sizing:border-box!important;}
  table.master-table-v4170a td:last-child{border-bottom:0!important;}
  table.master-table-v4170a td::before{content:attr(data-label);font-weight:800;color:#0f2d4a;font-size:12px;line-height:1.2;}
  table.master-table-v4170a td input{width:100%!important;min-width:0!important;}
  table.master-table-v4170a td button{width:100%!important;min-width:0!important;}
  table.master-table-v4170a td form{margin:0!important;}
}

/* ===== V4.17.0e Fixes ===== */
.readonly-note-v4170d{display:inline-block;padding:6px 10px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#64748b;font-weight:800;white-space:nowrap;}
.need-new-project-v484[hidden], .need-existing-v484[hidden]{display:none!important;}
.print-calendar-v4170d{display:none;}
@media print{
  @page{size:landscape;margin:8mm;}
  header,.main-nav,.calendar-head,.screen-calendar-v4170d,.calendar-month-section-v4161,.assignment-modal,.no-print,.global-print{display:none!important;}
  main{padding:0!important;margin:0!important;max-width:none!important;}
  body{background:#fff!important;color:#0f172a!important;}
  .print-calendar-a4-v4170d{display:block!important;}
  .print-calendar-full-v4170d{display:none!important;}
  .print-calendar-v4170d h1{font-size:13px;margin:0 0 8px 0;color:#0f172a;}
  .print-calendar-page-v4170d{page-break-after:always;break-after:page;margin:0 0 8mm 0;}
  .print-calendar-page-v4170d:last-child{page-break-after:auto;break-after:auto;}
  .print-calendar-page-v4170d h2{font-size:12px;margin:0 0 5px 0;color:#1f4e78;}
  .print-planner-v4170d{width:100%;border-collapse:collapse;table-layout:fixed;line-height:1.08;box-shadow:none!important;}
  .print-planner-v4170d th,.print-planner-v4170d td{border:1px solid #cbd5e1;padding:3px 2px;text-align:center;vertical-align:middle;height:18px;overflow:hidden;}
  .print-planner-v4170d th{background:#e6f1fb;font-weight:900;color:#102a43;}
  .print-planner-v4170d .weekend{background:#ddd!important;color:#334155;}
  .print-name-col-v4170d,.print-employee-v4170d{text-align:left!important;background:#e6f1fb!important;}
  .print-count-col-v4170d{width:9mm!important;}
  .print-planner-a4-v4170d{font-size:7.8px;}
  .print-planner-a4-v4170d .print-name-col-v4170d,.print-planner-a4-v4170d .print-employee-v4170d{width:43mm!important;}
  .print-planner-a4-v4170d .print-employee-v4170d b{font-size:8px;}
  .print-planner-a4-v4170d .print-employee-v4170d small{font-size:6.5px;color:#475569;}
  .print-planner-full-v4170d{font-size:6.2px;}
  .print-planner-full-v4170d th,.print-planner-full-v4170d td{padding:2px 1px;height:15px;}
  .print-planner-full-v4170d .print-name-col-v4170d,.print-planner-full-v4170d .print-employee-v4170d{width:38mm!important;}
  .print-planner-full-v4170d .print-employee-v4170d b{font-size:6.4px;}
  .print-planner-full-v4170d .print-employee-v4170d small{font-size:5.5px;color:#475569;}
  .legend-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;font-size:8px!important;gap:3px!important;}
}
@media print and (min-width: 350mm){
  .print-calendar-a4-v4170d{display:none!important;}
  .print-calendar-full-v4170d{display:block!important;}
}

/* V4.17.1a: NU-Anfrageblock in der Bedarfsübersicht */
.nu-request-box-v4171a{
  margin-top:10px;
  padding:10px;
  border:1px solid #7dd3fc;
  border-radius:10px;
  background:#eff6ff;
}
.nu-request-existing-v4171a{
  margin-top:6px;
  padding:8px;
  border:1px dashed #93c5fd;
  border-radius:8px;
  background:#fff;
}
.nu-request-existing-v4171a ul{margin:6px 0 0 18px; padding:0;}
.nu-request-form-v4171a{
  margin-top:8px;
  display:grid;
  gap:8px;
}
.nu-request-form-title-v4171a{font-weight:700; color:#075985;}
.nu-sub-list-v4171a{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:6px;
}
.nu-sub-option-v4171a{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px;
  border:1px solid #bfdbfe;
  border-radius:8px;
  background:#ffffff;
}
.nu-sub-option-v4171a input{margin-right:6px;}
.nu-sub-option-v4171a span{font-weight:700; color:#0f172a;}
.nu-sub-option-v4171a small{color:#475569;}
.nu-request-empty-v4171a{
  margin-top:8px;
  padding:8px;
  border:1px solid #fed7aa;
  border-radius:8px;
  background:#fff7ed;
  color:#9a3412;
}

/* V4.17.1e: Bedarfsübersicht Status-Spalte optisch verbreitert */
.paving-needs-table-v4120f{
  min-width:1160px!important;
}
.paving-needs-table-v4120f th:nth-child(1),
.paving-needs-table-v4120f td:nth-child(1){
  width:145px!important;
  min-width:145px!important;
  max-width:none!important;
}
.paving-needs-table-v4120f .need-status-cell-v4120e{
  white-space:normal!important;
}
.paving-needs-table-v4120f .need-status-cell-v4120e .need-status-pill-v484{
  box-sizing:border-box;
  max-width:100%;
}
@media(max-width:1000px){
  .paving-needs-table-v4120f{min-width:1160px!important;}
}

/* V4.17.1h – Bedarfsmeldung: Formularlayout nach Skizze, keine Logikänderung */
.paving-need-form-v4171h{
  display:grid!important;
  grid-template-columns:minmax(170px,1.05fr) minmax(130px,.72fr) minmax(230px,1.18fr) minmax(260px,1.45fr)!important;
  gap:16px 14px!important;
  align-items:start!important;
}
.paving-need-form-v4171h .need-field-project-mode-v4171h{grid-column:1 / 3;grid-row:1;}
.paving-need-form-v4171h .need-field-project-v4171h{grid-column:3;grid-row:1;}
.paving-need-form-v4171h .need-field-priority-v4171h{grid-column:4;grid-row:1;}
.paving-need-form-v4171h .need-field-start-v4171h{grid-column:1;grid-row:2;}
.paving-need-form-v4171h .need-field-end-v4171h{grid-column:2;grid-row:2;}
.paving-need-form-v4171h .need-field-workers-v4171h{grid-column:3;grid-row:2;}
.paving-need-form-v4171h .need-field-requester-v4171h{grid-column:4;grid-row:2;}
.paving-need-form-v4171h .need-new-project-v484,
.paving-need-form-v4171h .bridge-decision-box-v4107a,
.paving-need-form-v4171h .need-auto-status-box-v485,
.paving-need-form-v4171h .full{grid-column:1 / -1!important;}
.paving-need-form-v4171h .need-auto-status-box-v485{margin-top:2px;}
.paving-need-form-v4171h .need-work-items-v4130{margin-top:0;}
.paving-need-form-v4171h .need-work-item-row-v4130{
  grid-template-columns:minmax(260px,38%) minmax(170px,220px) 64px auto!important;
  gap:8px!important;
}
.paving-need-form-v4171h .need-work-item-row-v4130 input[name="work_quantity"]{min-width:170px;}

@media (min-width:761px) and (max-width:1100px){
  .paving-need-form-v4171h{
    grid-template-columns:minmax(180px,1fr) minmax(180px,1fr)!important;
  }
  .paving-need-form-v4171h .need-field-project-mode-v4171h,
  .paving-need-form-v4171h .need-field-project-v4171h,
  .paving-need-form-v4171h .need-field-priority-v4171h,
  .paving-need-form-v4171h .need-field-start-v4171h,
  .paving-need-form-v4171h .need-field-end-v4171h,
  .paving-need-form-v4171h .need-field-workers-v4171h,
  .paving-need-form-v4171h .need-field-requester-v4171h{grid-row:auto!important;}
  .paving-need-form-v4171h .need-field-project-mode-v4171h{grid-column:1!important;}
  .paving-need-form-v4171h .need-field-project-v4171h{grid-column:2!important;}
  .paving-need-form-v4171h .need-field-priority-v4171h{grid-column:1!important;}
  .paving-need-form-v4171h .need-field-start-v4171h{grid-column:1!important;}
  .paving-need-form-v4171h .need-field-end-v4171h{grid-column:2!important;}
  .paving-need-form-v4171h .need-field-workers-v4171h{grid-column:1!important;}
  .paving-need-form-v4171h .need-field-requester-v4171h{grid-column:2!important;}
}

@media (max-width:760px){
  .paving-need-form-v4171h{grid-template-columns:1fr!important;}
  .paving-need-form-v4171h .need-field-project-mode-v4171h,
  .paving-need-form-v4171h .need-field-project-v4171h,
  .paving-need-form-v4171h .need-field-priority-v4171h,
  .paving-need-form-v4171h .need-field-start-v4171h,
  .paving-need-form-v4171h .need-field-end-v4171h,
  .paving-need-form-v4171h .need-field-workers-v4171h,
  .paving-need-form-v4171h .need-field-requester-v4171h,
  .paving-need-form-v4171h .need-new-project-v484,
  .paving-need-form-v4171h .bridge-decision-box-v4107a,
  .paving-need-form-v4171h .need-auto-status-box-v485,
  .paving-need-form-v4171h .full{grid-column:1!important;grid-row:auto!important;}
  .paving-need-form-v4171h .need-work-item-row-v4130{grid-template-columns:1fr!important;}
}


/* V4.17.1l – Bauleiter-Bedarf-Filter: feste Anzeige fuer Sichtbarkeit/Bauleiter */
.readonly-filter-v4171l{
  min-width:150px;
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#f8fafc;
  color:#334155;
  font-weight:700;
  line-height:1.1;
}

/* V4.17.1n: Mobile Einsatzdetails - readonly darf keine Aktionsbuttons anzeigen */
.assignment-modal.calendar3-readonly-v4171n .calendar3-actions-v4106,
.assignment-modal.calendar3-readonly-v4171n .calendar3-choice-panel{
  display:none!important;
}

/* V4.17.1o Header Benutzertext weiss */
header .auth-user-box{color:#fff!important;}

/* V4.17.8c: Eigene-frei-Hinweis kompakter/leichter lesbar */
.need-availability-pill-v4120f{
  font-weight: 600;
  font-size: 0.86rem;
  line-height: 1.28;
  white-space: normal;
}

/* V4.17.8g: Restbedarf-Entscheidung auf Laptop besser platzieren
   Zeile 1: Entscheidung Restbedarf + Entscheidung speichern
   Zeile 2: Bemerkung optional */
.need-rest-box-v497 form{
  display: grid;
  grid-template-columns: minmax(210px, 320px) auto;
  gap: 8px 10px;
  align-items: end;
  max-width: 560px;
  margin-top: 10px;
}

.need-rest-box-v497 form label{
  margin: 0;
  min-width: 0;
}

.need-rest-box-v497 form label:first-of-type{
  grid-column: 1;
  grid-row: 1;
}

.need-rest-box-v497 form button{
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-self: start;
  min-height: 40px;
  min-width: 132px;
  max-width: 170px;
  white-space: normal;
  line-height: 1.12;
  padding: 8px 12px;
}

.need-rest-box-v497 form label:nth-of-type(2){
  grid-column: 1 / -1;
  grid-row: 2;
}

.need-rest-box-v497 form label:nth-of-type(2) input{
  width: 100%;
  max-width: 460px;
}

@media (max-width: 820px){
  .need-rest-box-v497 form{
    grid-template-columns: 1fr;
    max-width: 100%;
  }

  .need-rest-box-v497 form label:first-of-type,
  .need-rest-box-v497 form label:nth-of-type(2),
  .need-rest-box-v497 form button{
    grid-column: 1;
    grid-row: auto;
  }

  .need-rest-box-v497 form button{
    justify-self: stretch;
    max-width: none;
  }

  .need-rest-box-v497 form label:nth-of-type(2) input{
    max-width: none;
  }
}

/* V4.17.8h: Restbedarf-Zeitraumverschiebung mit echten Datumsfeldern */
.need-rest-box-v497 form.need-rest-decision-form-v4102 > .need-rest-shift-fields-v4178h{
  grid-column: 1 / -1;
  grid-row: 2;
  display: none;
  grid-template-columns: minmax(170px, 230px) minmax(170px, 230px);
  gap: 8px 10px;
  align-items: end;
}

.need-rest-box-v497 form.need-rest-decision-form-v4102.is-shift-v4178h > .need-rest-shift-fields-v4178h{
  display: grid;
}

.need-rest-box-v497 form.need-rest-decision-form-v4102 > label.need-rest-note-v4178h{
  grid-column: 1 / -1;
  grid-row: 3;
}

.need-rest-box-v497 form.need-rest-decision-form-v4102 > label.need-rest-note-v4178h input{
  width: 100%;
  max-width: 460px;
}

@media (max-width: 820px){
  .need-rest-box-v497 form.need-rest-decision-form-v4102 > .need-rest-shift-fields-v4178h{
    grid-column: 1;
    grid-row: auto;
    grid-template-columns: 1fr;
  }

  .need-rest-box-v497 form.need-rest-decision-form-v4102 > label.need-rest-note-v4178h{
    grid-column: 1;
    grid-row: auto;
  }

  .need-rest-box-v497 form.need-rest-decision-form-v4102 > label.need-rest-note-v4178h input{
    max-width: none;
  }
}
