
:root{--bg:#f4f6f7;--card:#fff;--text:#151515;--muted:#687078;--line:#e3e7e9;--accent:#f58220;--danger:#e5484d;--soft:#f0f2f3}
*{box-sizing:border-box} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
button,input,select,textarea{font:inherit}.app{min-height:100vh;display:grid;grid-template-columns:200px 1fr}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px 15px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:10px;align-items:center;margin-bottom:24px}.brandmark{width:34px;height:34px;border-radius:9px;background:#111;color:#fff;display:grid;place-items:center;font-weight:800}.brand b{display:block;letter-spacing:1.5px}.brand small{font-size:9px;letter-spacing:2px;color:#777}
nav{display:grid;gap:5px}.navbtn{border:0;background:transparent;text-align:left;padding:10px;border-radius:9px;color:#3f474d;cursor:pointer}.navbtn.active,.navbtn:hover{background:#eef0f1;color:#111}
.rolebox{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}.rolebox label{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.rolebox select{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}
main{padding:28px;max-width:1500px;width:100%;margin:auto}.eyebrow{font-size:12px;color:var(--muted);margin-bottom:4px}h1{margin:0 0 22px;font-size:27px}h2{font-size:17px;margin:0 0 14px}h3{font-size:15px;margin:0 0 8px}.toprow{display:flex;align-items:center;justify-content:space-between;gap:16px}.search{width:min(420px,100%);padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:0 8px 24px rgba(20,30,40,.035)}.objectcard{cursor:pointer;transition:.15s}.objectcard:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(20,30,40,.07)}
.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;background:#f0f2f3;color:#4b5358}.badge.orange{background:#fff0e3;color:#a34c00}.muted{color:var(--muted);font-size:13px}.meta{display:grid;gap:7px;margin-top:14px;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;cursor:pointer;text-decoration:none;color:#111;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:#f7f7f7}.btn.primary{background:#111;color:#fff;border-color:#111}.btn.orange{background:var(--accent);color:#fff;border-color:var(--accent)}
.detailgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.stack{display:grid;gap:14px}.map{height:270px;border-radius:12px;background:linear-gradient(135deg,#eceff0,#fafafa);border:1px solid var(--line);position:relative;overflow:hidden}.map:before,.map:after{content:"";position:absolute;inset:-30%;background:repeating-linear-gradient(28deg,transparent 0 38px,#dfe4e6 39px 42px,transparent 43px 78px);opacity:.65}.map:after{transform:rotate(82deg);opacity:.45}.pin{position:absolute;z-index:2;left:52%;top:45%;width:28px;height:28px;border-radius:50% 50% 50% 0;background:var(--accent);transform:rotate(-45deg);box-shadow:0 3px 8px #999}.pin:after{content:"";position:absolute;width:9px;height:9px;background:#fff;border-radius:50%;left:9px;top:9px}
.list{display:grid;gap:0}.row{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.row:last-child{border-bottom:0}.row strong{font-size:13px}.row small{display:block;color:var(--muted);margin-top:3px}.thumbs{display:flex;gap:8px}.thumb{width:80px;height:62px;border-radius:9px;background:#e9edef;display:grid;place-items:center;color:#7a8287;font-size:11px}
.back{border:0;background:transparent;padding:0;margin-bottom:14px;color:#555;cursor:pointer}.private{border-left:3px solid var(--accent)}.notice{background:#fff8f1;border:1px solid #ffe0c2;border-radius:10px;padding:12px;font-size:13px}.empty{padding:50px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;padding:20px;z-index:20}.modal.hidden{display:none}.modalcard{width:min(520px,100%);background:#fff;border-radius:15px;padding:22px;position:relative}.close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;cursor:pointer}.form{display:grid;gap:12px}.form label{font-size:12px;color:var(--muted)}.form input,.form textarea,.form select{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;margin-top:5px}.form textarea{min-height:90px}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px}.brand{margin-bottom:10px}nav{display:flex;overflow:auto}.navbtn{white-space:nowrap}.rolebox{margin-top:10px}.grid,.detailgrid{grid-template-columns:1fr}main{padding:18px}.toprow{align-items:flex-start;flex-direction:column}}
/* Modal scrollbar */
.modal {
  overflow-y: auto;
  align-items: start;
}

.modalcard {
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  margin: auto;
}
.toast {
  position: fixed;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: #f3f7f3;
  color: #2f5d3a;
  border: 1px solid #d8e7d8;
  border-radius: 12px;
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(4px);
}

/* --- HOPLA Team – erweiterte App-Komponenten --- */
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.pagehead h1{margin-bottom:0}.pagehead .eyebrow{margin-bottom:5px}
.fullsearch{width:100%;max-width:none;margin-bottom:16px}.clickable{cursor:pointer}.clickable:hover{background:#fafafa}.block{display:flex;width:100%;justify-content:center;margin-top:12px}.vertical{display:grid}.small{padding:6px 9px;font-size:12px}.btn.danger{border-color:#f0caca;color:#9b3636;background:#fff8f8}.btn.danger:hover{background:#fff0f0}
.badge.inactive{background:#fdecec;color:#9c4545}.badges{display:flex;gap:6px;flex-wrap:wrap}.badge.priority-hoch,.badge.priority-dringend{background:#fdecec;color:#9c4545}.badge.priority-niedrig{background:#eef5ef;color:#41704b}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:2px}.stat span,.stat small{color:var(--muted);font-size:11px}.stat strong{font-size:28px;line-height:1.1}
.two-col{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.quicklist{display:grid;gap:8px}.quicklist button{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#fafafa;border-radius:10px;padding:11px;cursor:pointer;text-align:left}.quicklist b{font-size:20px;min-width:28px}.quicklist span{color:var(--muted)}
.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;font-weight:600;padding:9px 10px;border-bottom:1px solid var(--line)}td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}
.cards-list{display:grid;gap:12px}.cards-list .card p{white-space:pre-line;line-height:1.5}.timeline{display:grid;gap:10px}.timelineitem{display:grid;grid-template-columns:70px 1fr auto;align-items:start;gap:14px}.timelineitem .time{font-size:18px;font-weight:700}.timelineitem h3{margin-top:2px}
.form-grid{grid-template-columns:1fr 1fr}.form-grid .span2{grid-column:1/-1}.checklist{display:grid;border:1px solid var(--line);border-radius:10px;margin-top:8px;max-height:250px;overflow:auto}.checklist label{display:flex;align-items:center;gap:10px;padding:10px 11px;border-bottom:1px solid var(--line);cursor:pointer;color:var(--text)}.checklist label:last-child{border-bottom:0}.checklist input{width:auto;margin:0}.checklist span{display:grid}.checklist small{color:var(--muted)}
.detail-list{display:grid;gap:0;margin:6px 0 12px}.detail-list>div{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}.detail-list span{font-size:11px;color:var(--muted)}.detail-list b{font-size:13px;white-space:pre-line}.sectiontitle{font-size:12px;color:var(--muted);font-weight:600;margin:16px 0 8px}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{padding:6px 9px;border-radius:999px;background:#f3f5f5;font-size:12px}
.modalcard.wide{width:min(760px,100%)}.loginwrap{min-height:calc(100vh - 56px);display:grid;place-items:center}.logincard{width:min(430px,100%);padding:26px}.loginbrand{margin-bottom:20px}.formerror{min-height:18px;color:#a23a3a;font-size:12px}.logoutbtn{width:100%;justify-content:center;margin-top:8px}
.toast{position:fixed;top:22px;left:50%;transform:translate(-50%,-8px);background:#f3f7f3;color:#2f5d3a;border:1px solid #d8e7d8;border-radius:12px;padding:11px 16px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.08);z-index:9999;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#fff3f3;color:#8e3a3a;border-color:#f0d2d2}
.notice.error{background:#fff5f5;border-color:#f1d1d1;color:#8e3a3a}
@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.timelineitem{grid-template-columns:55px 1fr}.timelineitem>.badge{grid-column:2}.pagehead{align-items:flex-start;flex-direction:column}.pagehead .btn{width:100%;justify-content:center}}

/* Mehrfachzuweisung in der Einsatzplanung */
.assignment-hint{margin:4px 0 8px}
.assignment-list{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;max-height:260px;overflow-y:auto}
.assignment-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;margin:0!important}
.assignment-row:last-child{border-bottom:0}
.assignment-row div{display:flex;flex-direction:column;gap:2px}
.assignment-row small{color:var(--muted)}
.assignment-row input{width:auto!important;margin:0}
.dashboard-einsatz small{display:block;margin-top:3px}

/* Einsatzplanung v3 – kompakte Auswahl + Kalender */
.field-label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.employee-dropdown{position:relative}
.employee-dropdown-toggle{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;color:var(--text)}
.employee-dropdown-toggle:hover{background:#fafafa}
.employee-dropdown-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:30;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px rgba(20,30,40,.12);max-height:260px;overflow:auto;padding:4px}
.employee-dropdown.open .employee-dropdown-menu{display:block}
.employee-option{display:flex!important;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;cursor:pointer;color:var(--text)!important;margin:0!important}
.employee-option:hover{background:#f5f6f6}
.employee-option input{width:auto!important;margin:0!important}
.employee-option span{display:grid;gap:2px}
.employee-option strong{font-size:13px}
.employee-option small{font-size:11px;color:var(--muted)}

.calendar-card{margin-bottom:16px;padding:14px}
.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:12px}
.calendar-toolbar>strong{text-align:center;font-size:14px;text-transform:capitalize}
.calendar-nav,.calendar-switch{display:flex;gap:6px;align-items:center}
.calendar-switch{justify-content:flex-end}
.calendar-switch .btn.active{background:#111;color:#fff;border-color:#111}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.calendar-day{min-height:145px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px;overflow:hidden}
.calendar-grid.month .calendar-day{min-height:118px}
.calendar-day.today{border-color:#c9ced1;box-shadow:inset 0 0 0 1px #c9ced1}
.calendar-day.outside{opacity:.42;background:#fafafa}
.calendar-date{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:var(--muted);font-size:11px}
.calendar-date b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;color:var(--text);font-size:12px}
.calendar-day.today .calendar-date b{background:#111;color:#fff}
.calendar-events{display:grid;gap:5px}
.calendar-event{border:0;background:#f3f5f5;border-radius:7px;padding:6px 7px;display:grid;grid-template-columns:auto 1fr;gap:3px 6px;text-align:left;cursor:pointer;min-width:0;color:var(--text)}
.calendar-event:hover{background:#ecefef}
.calendar-event b{font-size:11px}
.calendar-event span{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-event small{grid-column:1/-1;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-empty{color:#c2c7ca;font-size:11px}
.dashboard-lower{margin-top:16px}.schedule-table{margin-top:16px}

@media(max-width:900px){
  .calendar-toolbar{grid-template-columns:1fr;justify-items:stretch}.calendar-toolbar>strong{text-align:left;order:-1}.calendar-switch{justify-content:flex-start}
  .calendar-card{overflow:auto}.calendar-grid{min-width:760px}.calendar-grid.month{min-width:900px}
}

/* Kalender – interaktive Tage / Detail-Liste */
.calendar-day.clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.calendar-day.clickable:hover{border-color:#b8bec2;box-shadow:0 6px 18px rgba(20,30,35,.07)}
.calendar-day.selected{border-color:#8f989d;box-shadow:inset 0 0 0 1px #8f989d,0 6px 18px rgba(20,30,35,.06)}
.calendar-day.selected .calendar-date b{background:#e8ecee;color:#111}
.calendar-day.today.selected .calendar-date b{background:#111;color:#fff}
.selected-day-card{margin:-3px 0 16px}
.selected-day-card h2{font-size:18px;margin:3px 0 0;text-transform:capitalize}
.selected-day-row{width:100%;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}
.selected-day-row:hover{background:#f7f8f8}
.calendar-more{display:block;color:var(--muted);font-size:10px;padding:2px 4px}
.absence-event{background:#f5f2f0}
.section-title{display:flex;align-items:end;justify-content:space-between;margin:18px 0 10px}
.section-title h2{margin:0}
@media(max-width:900px){.selected-day-card .toprow{align-items:flex-start;gap:10px;flex-wrap:wrap}}


/* =========================================================
   HOPLA Design Refresh v5
   clean, warm, logo-oriented – based on the approved mockup
   ========================================================= */
:root{
  --bg:#f6f6f4;
  --card:#ffffff;
  --text:#161616;
  --muted:#6d7174;
  --line:#e7e6e2;
  --accent:#f58220;
  --accent-soft:#fff2e6;
  --accent-line:#f7c79e;
  --soft:#f2f2ef;
  --success-soft:#edf6ef;
  --success:#3f6f4a;
}
body{background:var(--bg);letter-spacing:-.005em}
.app{grid-template-columns:220px minmax(0,1fr)}
.sidebar{padding:22px 16px 18px;border-right:1px solid #e9e8e4;box-shadow:2px 0 18px rgba(25,25,20,.025);z-index:10}
.brand{padding:0 4px 18px;margin-bottom:12px;border-bottom:1px solid #f0efec}
.brandmark{width:36px;height:36px;border-radius:10px;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.brand b{font-size:15px;letter-spacing:2px}.brand small{margin-top:2px;color:#9a9a96}
nav{gap:4px}.navbtn{position:relative;display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 11px;border-radius:10px;font-weight:520;color:#414445}
.navbtn::before{width:19px;text-align:center;font-size:15px;opacity:.76}
.navbtn[data-page="dashboard"]::before{content:"⌂"}.navbtn[data-page="heute"]::before{content:"◷"}.navbtn[data-page="einsatzplanung"]::before{content:"▣"}.navbtn[data-page="mitarbeiter"]::before{content:"♙"}.navbtn[data-page="objects"]::before{content:"▤"}.navbtn[data-page="hinweise"]::before{content:"◌"}.navbtn[data-page="hausmeister"]::before{content:"⌁"}.navbtn[data-page="abwesenheit"]::before{content:"□"}.navbtn[data-page="schaeden"]::before{content:"!"}.navbtn[data-page="material"]::before{content:"◇"}
.navbtn.active{background:var(--accent-soft);color:#7b3b07;font-weight:650}.navbtn.active::after{content:"";position:absolute;left:-16px;top:8px;bottom:8px;width:3px;border-radius:0 4px 4px 0;background:var(--accent)}
.navbtn:hover{background:#f5f4f1;color:#111}.navbtn.active:hover{background:var(--accent-soft)}
.rolebox{border-top:1px solid #efeeea;padding-top:15px}.rolebox select{border-color:#deddd9;padding:10px}.preview-employee{min-height:18px;margin:7px 2px 0;font-size:11px;color:#9a5b24;line-height:1.35}.logoutbtn{background:#faf9f7}
main{padding:34px 40px 50px;max-width:1600px}.pagehead{margin-bottom:24px}.pagehead h1,h1{font-size:30px;letter-spacing:-.035em}.eyebrow{color:#8b8d8e;font-weight:550}
.card,.stat{border-color:var(--line);border-radius:16px;box-shadow:0 8px 26px rgba(37,34,28,.035)}
.card{padding:19px}.stat{padding:17px 18px}.stat strong{font-size:30px}.stat span{font-weight:600;color:#777a7b}
.btn{border-color:#deddd9;border-radius:10px;padding:9px 13px;font-weight:560;background:#fff;transition:.15s ease}.btn:hover{background:#f7f6f3;border-color:#cfcdc8}.btn.primary{background:#151515;border-color:#151515;box-shadow:0 3px 10px rgba(0,0,0,.1)}.btn.primary:hover{background:#292929}.btn.orange{background:var(--accent);border-color:var(--accent)}
.search,.form input,.form textarea,.form select,.employee-dropdown-toggle{border-color:#deddd9;border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}
.search:focus,.form input:focus,.form textarea:focus,.form select:focus,.employee-dropdown-toggle:focus{outline:0;border-color:#e8a268;box-shadow:0 0 0 3px rgba(245,130,32,.1)}
input[type="checkbox"]{accent-color:var(--accent)}
.badge{background:#f3f2ef;color:#555b5d;padding:5px 9px}.badge.inactive{background:#fff0ef;color:#a24e47}.badge.orange{background:var(--accent-soft);color:#9a4b09}
.modal{background:rgba(24,22,19,.38);backdrop-filter:blur(2px)}.modalcard{border:1px solid rgba(255,255,255,.8);box-shadow:0 24px 70px rgba(25,22,18,.22);border-radius:18px;padding:24px}
.employee-dropdown-toggle{padding:11px 13px}.employee-dropdown-menu{border-color:#dfddd8;box-shadow:0 18px 38px rgba(28,25,20,.16);border-radius:12px}.employee-option:hover{background:var(--accent-soft)}

/* Calendar refinement */
.calendar-card{padding:17px}.calendar-toolbar{margin-bottom:15px}.calendar-toolbar>strong{font-size:15px}.calendar-switch .btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.calendar-day{border-color:#e5e4e0;border-radius:12px;background:#fff}.calendar-day.clickable:hover{border-color:var(--accent-line);box-shadow:0 8px 20px rgba(85,55,30,.07)}.calendar-day.selected{border-color:#e49a5d;box-shadow:inset 0 0 0 1px #e49a5d,0 8px 20px rgba(90,55,25,.06)}
.calendar-day.today .calendar-date b{background:#151515}.calendar-day.selected .calendar-date b{background:var(--accent-soft);color:#9a4b09}.calendar-day.today.selected .calendar-date b{background:#151515;color:#fff}
.calendar-event{background:#f5f4f1;border-left:3px solid #d8d4ce;padding:7px 8px}.calendar-event:hover{background:var(--accent-soft);border-left-color:var(--accent)}.absence-event{background:#f6f1ed;border-left-color:#d8b89f}

/* Selected-day agenda replaces the duplicate global table */
.selected-day-card{padding:0;overflow:hidden;margin-top:0}.selected-day-head{padding:18px 19px 15px;border-bottom:1px solid var(--line)}.selected-day-head h2{font-size:19px}
.day-agenda{width:100%}.day-agenda-header,.day-agenda-row{display:grid;grid-template-columns:130px minmax(210px,1.45fr) minmax(180px,1fr) 110px 105px;gap:14px;align-items:center;padding:10px 18px}
.day-agenda-header{background:#faf9f7;color:#8a8b89;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.day-agenda-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:var(--text);cursor:pointer;font:inherit;transition:.12s}.day-agenda-row:last-child{border-bottom:0}.day-agenda-row:hover{background:#fffaf6}
.agenda-time{font-size:13px;font-weight:700;white-space:nowrap}.agenda-main{display:grid;gap:3px;min-width:0}.agenda-main strong{font-size:13px}.agenda-main small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-people{font-size:12px;color:#444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-action{font-size:11px;font-weight:650;color:#9a4b09;text-align:right}
.schedule-table{display:none!important}

/* Object cards closer to the approved HOPLA mockup */
.objectcard{padding:20px}.objectcard h3{font-size:17px}.objectcard .actions{padding-top:4px}.objectcard .actions .btn.primary{min-width:145px;justify-content:center}
.toast{background:#f4f8f3;color:#376343;border-color:#dbe8dc}.toast.show{box-shadow:0 12px 32px rgba(35,44,30,.12)}

@media(max-width:1100px){
  .day-agenda-header,.day-agenda-row{grid-template-columns:105px minmax(180px,1.3fr) minmax(140px,1fr) 90px}.day-agenda-header span:last-child,.agenda-action{display:none}
}
@media(max-width:900px){
  .app{grid-template-columns:1fr}.sidebar{box-shadow:none}.navbtn.active::after{display:none}main{padding:22px 18px 38px}
  .day-agenda-header{display:none}.day-agenda-row{grid-template-columns:88px 1fr auto;padding:13px 14px}.agenda-people{grid-column:2}.day-agenda-row>span:nth-child(4){grid-column:3;grid-row:1/3}.agenda-action{display:none}
}
@media(max-width:560px){.pagehead h1,h1{font-size:25px}.calendar-card{padding:12px}.selected-day-head{padding:15px}.day-agenda-row{grid-template-columns:1fr auto}.agenda-time{grid-column:1/-1}.agenda-main,.agenda-people{grid-column:1}.day-agenda-row>span:nth-child(4){grid-column:2;grid-row:2/4}}

/* =========================================================
   HOPLA Design v6 – nach freigegebenem Referenzdesign
   Farben: Blau #2CA7E0 · Grün #7DBE4B · Schwarz #111111
   ========================================================= */
:root{
  --hopla-blue:#2CA7E0;
  --hopla-green:#7DBE4B;
  --hopla-black:#111111;
  --hopla-light:#F2F2F2;
  --bg:#f5f6f7;
  --card:#fff;
  --text:#151515;
  --muted:#697177;
  --line:#e4e7e9;
  --accent:var(--hopla-blue);
  --accent-soft:#eaf7fd;
  --accent-line:#b9e5f7;
  --success:var(--hopla-green);
  --success-soft:#eff8e9;
}
body{background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text)}
body[data-role="hausmeister"]{--accent:var(--hopla-green);--accent-soft:#eff8e9;--accent-line:#cce8b9}
body[data-role="reinigung"]{--accent:var(--hopla-blue);--accent-soft:#eaf7fd;--accent-line:#b9e5f7}
.app{grid-template-columns:226px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--hopla-black);color:#fff;border:0;padding:18px 12px 14px;box-shadow:4px 0 24px rgba(0,0,0,.08)}
.brand{height:82px;padding:4px 9px 14px;margin:0 0 10px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;position:relative}
.brand-logo{display:block;max-width:170px;max-height:64px;width:auto;height:auto;object-fit:contain;filter:none}
.brand-team{position:absolute;right:12px;bottom:8px;font-size:8px;letter-spacing:2px;color:#bfc3c5;font-weight:700}
nav{gap:4px}.navbtn{color:#e8eaeb;background:transparent;border-radius:8px;min-height:40px;padding:9px 11px;font-size:13px;font-weight:550}
.navbtn::before{color:#fff;opacity:.9}.navbtn:hover{background:rgba(255,255,255,.08);color:#fff}.navbtn.active{background:var(--accent);color:#fff;font-weight:700}.navbtn.active::after{display:none}.navbtn.active::before{color:#fff}
.rolebox{border-top:1px solid rgba(255,255,255,.12);padding-top:14px;margin-top:14px}.rolebox label{color:#aaaeb0}.rolebox select,.logoutbtn{background:#202020;color:#fff;border-color:#383838}.rolebox select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.preview-employee{color:#cfd3d5}.logoutbtn:hover{background:#2d2d2d;border-color:#474747}
main{padding:28px 34px 48px;max-width:1700px}.pagehead{margin-bottom:19px}.pagehead h1,h1{font-size:28px}.eyebrow{font-size:11px;color:#747b80}
.card,.stat{border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 15px rgba(16,24,32,.035);background:#fff}.card{padding:16px}.stat{position:relative;overflow:hidden;padding:15px 16px}.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#d5dadd}.stat-blue::before{background:var(--hopla-blue)}.stat-green::before{background:var(--hopla-green)}.stat-red::before{background:#ef4d47}.stat-orange::before{background:#ff8a34}.stat strong{font-size:28px}.stat span{font-size:11px}.stat small{font-size:10px;color:#858b8e}
.btn{border-radius:8px;padding:9px 12px}.btn.primary{background:var(--hopla-black);border-color:var(--hopla-black);color:#fff}.btn.primary:hover{background:#292929}.btn.orange{background:var(--hopla-blue);border-color:var(--hopla-blue)}
.search,.form input,.form textarea,.form select,.employee-dropdown-toggle{border-radius:8px;border-color:#dce0e2}.search:focus,.form input:focus,.form textarea:focus,.form select:focus,.employee-dropdown-toggle:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
input[type="checkbox"]{accent-color:var(--accent)}
.employee-dropdown-menu{border-radius:9px}.employee-option:hover{background:var(--accent-soft)}
.badge{border-radius:999px}.badge.orange{background:#fff1e8;color:#b45b17}.badge.priority-dringend,.badge.priority-hoch{background:#ffeded;color:#c83732}.badge.priority-normal{background:#eef7fd;color:#287da4}.badge.priority-niedrig{background:#eff8e9;color:#4e7d34}
.calendar-card{border-radius:12px}.calendar-switch .btn.active{background:var(--accent);border-color:var(--accent)}.calendar-day{border-radius:8px}.calendar-day.clickable:hover{border-color:var(--accent-line)}.calendar-day.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-day.selected .calendar-date b{background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 75%,#111)}.calendar-event{border-left-color:var(--hopla-blue)}.calendar-event:hover{background:var(--accent-soft);border-left-color:var(--accent)}
.day-agenda-row:hover{background:var(--accent-soft)}.agenda-action{color:var(--accent)}
.subform{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:10px;padding:14px;display:grid;gap:11px}.subform.hidden{display:none}.subform-title{font-weight:750;font-size:13px}.inline-check{display:flex!important;align-items:flex-start;gap:9px;padding:8px 0}.inline-check input{width:auto!important;margin-top:2px}.inline-check span{font-size:12px;color:#4f565a}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);gap:16px;align-items:start}.dashboard-main{display:grid;gap:14px}.notification-card{position:sticky;top:18px}.notification-count{display:grid;place-items:center;min-width:27px;height:27px;border-radius:999px;background:var(--hopla-blue);color:#fff;font-size:11px;font-weight:750}.notification-list{display:grid;margin-top:8px}.notification-row{display:grid;grid-template-columns:9px 1fr 12px;gap:10px;align-items:start;width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px 3px;text-align:left;cursor:pointer;color:inherit}.notification-row:last-child{border-bottom:0}.notification-row:hover{background:#fafbfb}.notification-row span:nth-child(2){display:grid;gap:3px}.notification-row strong{font-size:12px}.notification-row small{font-size:10px;color:var(--muted)}.notification-dot{width:8px;height:8px;border-radius:999px;margin-top:4px;background:#aaa}.tone-red .notification-dot{background:#ef4d47}.tone-green .notification-dot{background:var(--hopla-green)}.tone-blue .notification-dot{background:var(--hopla-blue)}
.report-card{border-left:4px solid var(--hopla-blue)}
.loginbrand{background:#111;border-radius:12px;padding:14px!important;height:auto}.loginbrand .brand-logo{max-width:190px;max-height:80px}.loginbrand .brand-team{display:none}
@media(max-width:1180px){.dashboard-grid{grid-template-columns:1fr}.notification-card{position:static}}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{background:#111}.brand{height:70px}.brand-logo{max-height:52px;max-width:145px}main{padding:20px 16px 36px}}
/* Das angelieferte Original-Logo nutzt schwarze Schrift; auf der dunklen Sidebar sitzt es daher auf einer weißen Logo-Fläche. */
.sidebar .brand{background:#fff;border:1px solid rgba(255,255,255,.16);border-radius:10px;margin-bottom:12px;padding:8px 10px 13px}
.sidebar .brand-team{color:#7b8286}

/* =========================================================
   HOPLA v7 – Aufgaben, Fotos, Material & Termine
   ========================================================= */
.navbtn[data-page="hausmeister"]::before{content:"✓"}
.btn.success{background:var(--hopla-green);border-color:var(--hopla-green);color:#fff}.btn.success:hover{filter:brightness(.95)}
.badge.done{background:#edf8e7;color:#4a7a31}
.success-note{margin-top:14px;background:#eff8e9;border:1px solid #cce8b9;color:#4e7d34}
.field-help{display:block;margin-top:5px;font-size:10px;color:var(--muted);line-height:1.35}
.photo-input{padding:8px!important;background:#fafbfb!important}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:9px;margin:12px 0}
.photo-thumb{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f4f6f7;padding:0;aspect-ratio:4/3;cursor:pointer;color:#fff}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;background:#edf0f1}
.photo-thumb span{position:absolute;left:0;right:0;bottom:0;padding:5px 7px;background:linear-gradient(transparent,rgba(0,0,0,.72));font-size:10px;text-align:left}
.task-card{border-left:4px solid var(--hopla-green)}
.material-qty-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr);gap:12px;align-items:end}
.unit-static{display:grid;gap:6px}.unit-static span{font-size:11px;color:var(--muted)}.unit-static strong{height:40px;display:flex;align-items:center;padding:0 12px;border:1px solid #dce0e2;border-radius:8px;background:#f5f6f7;font-size:13px;font-weight:600}
.day-agenda-header,.day-agenda-row.no-status{grid-template-columns:130px minmax(240px,1.5fr) minmax(180px,1fr) 110px}
.day-agenda-row.no-status .agenda-action{text-align:right}
@media(max-width:1100px){.day-agenda-header,.day-agenda-row.no-status{grid-template-columns:105px minmax(190px,1.3fr) minmax(145px,1fr) 90px}.day-agenda-header span:last-child,.day-agenda-row.no-status .agenda-action{display:block}}
@media(max-width:700px){.material-qty-row{grid-template-columns:1fr 1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-agenda-row.no-status{grid-template-columns:88px 1fr}.day-agenda-row.no-status .agenda-people{grid-column:2}.day-agenda-row.no-status .agenda-action{grid-column:2;text-align:left}}

/* =========================================================
   HOPLA v8 – Feinschliff Logo, Terminserien, Fotos, Material
   ========================================================= */
.sidebar .brand{
  width:126px;height:126px;min-height:126px;margin:4px auto 18px;padding:0;
  border-radius:50%;background:#fff;border:0;overflow:hidden;
  display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.18)
}
.sidebar .brand-logo{width:114px;height:114px;max-width:none;max-height:none;object-fit:contain;transform:scale(1.08)}
.sidebar .brand-team{display:none}
@media(max-width:900px){.sidebar .brand{width:104px;height:104px;min-height:104px}.sidebar .brand-logo{width:94px;height:94px}}
.time-flex-check,.urgent-check{border:1px solid var(--line);border-radius:10px;padding:11px 12px!important;background:#fafbfb}
.time-flex-check span,.urgent-check span{display:grid;gap:2px}.time-flex-check small,.urgent-check small{font-size:10px;color:var(--muted)}
.photo-picker{display:grid;gap:7px}.photo-actions{display:flex;gap:8px;flex-wrap:wrap}.photo-action{position:relative;overflow:hidden;cursor:pointer}.photo-hidden{position:absolute!important;opacity:0;width:1px!important;height:1px!important;pointer-events:none}
.standard-material-list{margin:12px 0}.inline-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}.inline-add input{min-width:0}
.material-qty-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(100px,.7fr);gap:10px;align-items:end}.unit-static{display:grid;gap:6px}.unit-static span{font-size:11px;color:var(--muted)}.unit-static strong{height:39px;display:flex;align-items:center;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#f7f8f8;font-size:13px}
button:disabled{opacity:.55;cursor:not-allowed}


/* v9 workflow/dashboard */
.dashboard-side{display:grid;gap:16px;align-content:start}.notification-badge{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#eef3f6;color:#42515c;white-space:nowrap}.notification-badge.urgent{background:#ffe5e5;color:#c62828}.todo-card{margin:0}.employee-home-grid{margin-top:16px}.employee-stats{margin-bottom:16px}.request-list{display:grid;gap:8px;margin-top:10px}.request-row{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer}.request-row:hover{background:#f7fafb}.request-row span:first-child{display:grid;gap:4px}.request-row small{display:block;color:var(--muted)}.inline-actions{display:flex!important;gap:7px!important;align-items:center}.decision-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.btn.success{background:#edf8e8;border-color:#b9dfa7;color:#407a24}.btn.danger.ghost{background:#fff}.badge.warning{background:#fff2db;color:#a46000}.employee-calendar{margin-bottom:16px}.badges{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
@media(max-width:800px){.decision-actions{grid-template-columns:1fr}.employee-home-grid{grid-template-columns:1fr!important}.notification-badge{font-size:10px}}

.form label,.form .field-label{font-size:12px!important;font-weight:500;line-height:1.35;color:var(--muted)}

/* v10 refinements */
.hidden{display:none!important}
.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.notification-row{grid-template-columns:9px minmax(0,1fr) auto 12px;align-items:center}
.notification-row .notification-badge{justify-self:end;white-space:nowrap}
.notification-row>b{justify-self:end}
.status-section{display:grid;gap:10px;margin-bottom:24px}.status-section.done-section{margin-top:30px;padding-top:16px;border-top:1px solid var(--line)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading h2{margin:0;font-size:17px}
.absence-row{background:#f7fbef;border-left:3px solid var(--hopla-green)!important}.absence-row:hover{background:#f1f8e7!important}
.priority-dringend,.notification-badge.urgent{white-space:nowrap}
.form label,.field-label{font-size:12px!important;font-weight:500!important;color:var(--muted)!important}
.form label>b,.form label strong{color:var(--text)}
@media(max-width:700px){.header-actions{width:100%}.header-actions .btn{flex:1}.notification-row{grid-template-columns:8px minmax(0,1fr) auto}.notification-row>b{display:none}.status-section{margin-bottom:18px}}


/* v11 Bestand & Materialzuordnung */
.navbtn[data-page="bestand"]::before{content:"▦"}
.inventory-intro{margin:-8px 0 20px}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.inventory-card{border-left:4px solid var(--hopla-blue)}
.inventory-checklist{display:grid;gap:7px;max-height:360px;overflow:auto;padding:6px 2px}.inventory-checklist label{display:flex!important;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.inventory-checklist label:hover{background:var(--accent-soft)}.inventory-checklist input{width:auto!important;margin-top:3px}.inventory-checklist span{display:grid;gap:2px}.inventory-checklist small{color:var(--muted)}
.inventory-picker{border:1px solid var(--line);border-radius:10px;background:#fafbfb;padding:0}.inventory-picker summary{cursor:pointer;padding:11px 12px;font-weight:650;color:var(--text)}.inventory-picker[open] summary{border-bottom:1px solid var(--line)}.inventory-picker .inventory-checklist{padding:10px}
.detail-equipment{margin:14px 0}.detail-equipment .sectiontitle{margin-bottom:8px}

/* v12 Produktansicht & automatische Lagerbestellung */
.product-list{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.product-row{display:grid;grid-template-columns:74px minmax(220px,1fr) minmax(130px,.28fr) minmax(150px,.34fr);gap:16px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.product-row:last-child{border-bottom:0}.product-row:hover{background:#fcfdfd}.product-image{width:62px;height:62px;border-radius:9px;background:#f4f6f7;overflow:hidden;display:grid;place-items:center;border:1px solid #eef0f1}.product-image img{width:100%;height:100%;object-fit:contain}.product-image-placeholder{font-size:24px;color:#a8b0b5}.product-copy{min-width:0}.product-copy h3{font-size:14px;margin:2px 0 4px}.product-copy p{font-size:12px;margin:0 0 3px;color:#343b40}.product-copy small{font-size:10px;color:var(--muted)}.product-type{font-size:9px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}.product-stock{display:grid;gap:7px;justify-items:start;font-size:12px}.stock-level{display:grid;gap:2px}.stock-level b{font-size:14px}.stock-level span{font-size:10px;color:#208646;font-weight:700}.stock-level.low span{color:#c74432}.product-actions{display:grid;gap:8px;justify-items:stretch}.quick-order{display:grid;grid-template-columns:72px 1fr;gap:7px;align-items:end}.quick-order label{display:grid;gap:3px;font-size:9px;color:var(--muted)}.quick-order input{height:36px!important;padding:5px 8px!important}.quick-order small{grid-column:1/-1;color:var(--muted);font-size:9px}.bestand-edit-image{width:110px;height:110px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#f5f6f7}.bestand-edit-image img{width:100%;height:100%;object-fit:contain}.material-request-row .product-stock>.badge{width:max-content}
@media(max-width:800px){.product-row{grid-template-columns:58px minmax(0,1fr);gap:11px;padding:13px}.product-image{width:52px;height:52px}.product-stock,.product-actions{grid-column:2}.product-actions{justify-items:stretch}.quick-order{grid-template-columns:78px 1fr}}

/* v13: kompakte Produktlisten + Bestands-Kategorien */
.inventory-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 22px}.inventory-tab{border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px;font:inherit;font-weight:750;cursor:pointer;text-align:left}.inventory-tab:hover{border-color:#a8d8ee;background:#f9fdff}.inventory-tab.active{background:#eef9fe;border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.inventory-tab b{min-width:26px;height:26px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:#f0f2f3;font-size:11px}.inventory-tab.active b{background:var(--blue);color:#fff}.inventory-category{margin-top:0}.inventory-intro{margin-bottom:0}
.product-list{border-radius:10px}.product-row{grid-template-columns:82px minmax(280px,1fr) minmax(160px,.28fr) minmax(160px,.30fr);padding:18px 20px;min-height:104px}.product-image{width:68px;height:68px;background:#fff;border:0}.product-copy h3{font-size:15px;line-height:1.25;margin:3px 0 5px}.product-copy p{font-size:12px;line-height:1.4}.product-type{font-size:9px;letter-spacing:.08em}.product-stock{padding-left:8px}.stock-level b{font-size:16px}.stock-level span{font-size:11px}.quick-order .btn{min-height:38px}.badge.appointment{background:#eaf6fc;color:#167aa8}.appointment-task{border-left:3px solid var(--blue)}
@media(max-width:800px){.inventory-tabs{grid-template-columns:1fr}.product-row{grid-template-columns:64px minmax(0,1fr);min-height:0;padding:14px}.product-image{width:56px;height:56px}.product-stock,.product-actions{grid-column:2}.inventory-tab{padding:11px 13px}}
