*{box-sizing:border-box}body{margin:0;background:#f4f4f4;color:#151515;font-family:Arial,sans-serif}header{height:76px;background:#0b0b0c;color:#fff;padding:0 max(16px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between}header a,header button{color:#fff;text-decoration:none;background:none;border:1px solid #888;border-radius:8px;padding:9px 12px}.brand{border:0;display:flex;align-items:center;gap:12px}.brand span{border:1px solid #bbb;padding:10px;border-radius:8px;font-weight:900}.brand b{font-size:13px;letter-spacing:.08em}main{max-width:1120px;margin:auto;padding:30px 16px 70px}.hero{padding:40px 0}.hero small,.title small{letter-spacing:.18em;color:#777;font-weight:900}.hero h1{font-size:clamp(40px,7vw,70px);line-height:.96;margin:12px 0}.hero i{color:#777;font-style:normal}.hero p{max-width:680px;color:#666;font-size:17px;line-height:1.5}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cards button{background:#fff;border:1px solid #ddd;border-radius:14px;padding:24px;text-align:left;min-height:150px;cursor:pointer}.cards b{display:block}.cards small{display:block;color:#777;margin-top:10px}.panel{background:#fff;border:1px solid #ddd;border-radius:14px;padding:24px;margin-top:22px}.hidden{display:none!important}.panel h2{font-size:30px}.panel h3{border-top:1px solid #eee;padding-top:20px;margin-top:20px;font-size:15px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel label{font-size:12px;font-weight:bold;color:#444;display:block;margin:10px 0}.panel input,.panel select,.panel textarea{width:100%;padding:11px;margin-top:6px;border:1px solid #ccc;border-radius:8px;font:inherit}.panel textarea{min-height:90px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checks label{background:#f7f7f7;padding:10px;border-radius:8px}.checks input{width:auto}.notice{background:#eee;border-left:3px solid #777;padding:12px;color:#555;font-size:13px}.primary{background:#0b0b0c;color:#fff;border:0;border-radius:8px;padding:12px 18px;font-weight:900;cursor:pointer}.title{display:flex;justify-content:space-between;align-items:end}.title h1{font-size:40px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats div{background:#fff;border:1px solid #ddd;border-radius:12px;padding:18px}.stats b{display:block;font-size:30px}.stats small{color:#777}.head{display:flex;justify-content:space-between;border-bottom:1px solid #eee;padding-bottom:12px}.row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.4fr;gap:14px;padding:16px 0;border-bottom:1px solid #eee}.row small{display:block;color:#777;margin-top:5px}.row button{margin:6px 4px 0 0;padding:7px;border:1px solid #ccc;background:#fff;border-radius:6px}.badge{font-size:11px;background:#eee;padding:5px 8px;border-radius:20px;font-weight:bold}.login{max-width:520px;margin:50px auto}@media(max-width:800px){.cards{grid-template-columns:1fr 1fr}.row{grid-template-columns:1fr}}@media(max-width:560px){.grid,.checks,.cards,.stats{grid-template-columns:1fr}.hero{padding:20px 0}}
.request-row button{cursor:pointer}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal-card{background:#fff;border-radius:16px;max-width:900px;width:100%;max-height:90vh;overflow:auto;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #eee;padding-bottom:15px;margin-bottom:18px}
.modal-head h2{margin:7px 0 0;font-size:30px}
.modal-head small{letter-spacing:.16em;color:#777;font-weight:900}
.close{border:1px solid #ccc;background:#fff;border-radius:8px;font-size:28px;line-height:1;padding:3px 10px;cursor:pointer}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#eee;border:1px solid #eee;border-radius:10px;overflow:hidden}
.detail-field{background:#fff;padding:12px}
.detail-field small{display:block;color:#777;font-weight:700;font-size:11px;margin-bottom:5px}
.detail-text{margin-top:16px}
.detail-text .detail-field{border:1px solid #eee;border-radius:10px;min-height:80px}
.modal-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #eee;margin-top:20px;padding-top:18px}
.modal-actions button{padding:10px 14px;border:1px solid #ccc;background:#fff;border-radius:8px;font-weight:700;cursor:pointer}
@media(max-width:700px){.detail-grid{grid-template-columns:1fr}.modal-card{padding:16px}.modal-head h2{font-size:24px}}

.filter-panel{margin-top:16px}.filters{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:12px;align-items:end}.filters label{margin:0}.filters button{height:42px;padding:0 14px;border:1px solid #ccc;background:#fff;border-radius:8px;font-weight:700;cursor:pointer}.calendar-panel{margin-top:16px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav button{width:34px;height:34px;border:1px solid #ccc;background:#fff;border-radius:7px;font-size:22px;line-height:1;cursor:pointer}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:16px}.calendar-weekday{text-align:center;color:#777;font-size:11px;font-weight:800;padding:5px}.calendar-day{min-height:62px;border:1px solid #ddd;background:#fff;border-radius:9px;padding:8px;text-align:left;position:relative;cursor:pointer}.calendar-day.empty{border-color:transparent;background:transparent;cursor:default}.calendar-day span{font-weight:700}.calendar-day b{position:absolute;right:7px;bottom:7px;min-width:20px;text-align:center;background:#eee;border-radius:10px;padding:2px 5px;font-size:11px}.calendar-day.today{border:2px solid #111}.calendar-day.selected{background:#ececec;border-color:#111}.status-Bestätigt{background:#e5f1e7}.status-Abgelehnt{background:#f1e5e5}.status-Alternativtermin{background:#f2eee0}.status-In-Prüfung{background:#e8edf3}.status-Abgeschlossen{background:#e9e9e9}
@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}.filters button{width:100%}}@media(max-width:560px){.filters{grid-template-columns:1fr}.calendar{gap:3px}.calendar-day{min-height:50px;padding:6px}.calendar-day b{right:4px;bottom:4px}}
.appointment-panel{margin-top:16px}.appointment-panel .head>div:first-child small{display:block;color:#777;font-size:11px;margin-top:5px}.appointment-nav{display:flex;align-items:center;gap:7px}.appointment-nav button,.appointment-toolbar button{border:1px solid #ccc;background:#fff;border-radius:7px;padding:8px 11px;cursor:pointer;font-weight:700}.appointment-nav strong{min-width:170px;text-align:center}.appointment-toolbar{display:flex;gap:7px;margin:16px 0}.appointment-toolbar .active{background:#0b0b0c;color:#fff;border-color:#0b0b0c}.appointment-overview{display:flex;flex-direction:column;gap:8px}.appointment-card{display:grid;grid-template-columns:100px 1fr auto;gap:16px;align-items:center;border:1px solid #e1e1e1;border-radius:11px;padding:13px;background:#fff}.appointment-time{font-size:17px}.appointment-time small{display:block;color:#777;font-size:11px;margin-top:4px}.appointment-main span,.appointment-main small{display:block;color:#666;margin-top:4px}.appointment-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.appointment-actions button{border:1px solid #ccc;background:#fff;border-radius:7px;padding:7px 9px;cursor:pointer;font-size:12px}.appointment-day-group h3{margin:18px 0 8px;font-size:14px}.appointment-day-group:first-child h3{margin-top:0}.appointment-empty{padding:28px;text-align:center;color:#777;border:1px dashed #ccc;border-radius:10px;background:#fafafa}@media(max-width:760px){.appointment-card{grid-template-columns:1fr}.appointment-actions{justify-content:flex-start}.appointment-nav strong{min-width:120px;font-size:13px}}@media(max-width:560px){.appointment-nav strong{min-width:0}.appointment-toolbar{overflow:auto}}

.day-slot{display:grid;grid-template-columns:76px 1fr;min-height:68px;border-bottom:1px solid #eee}.day-slot-time{padding:13px 10px 0 0;color:#777;font-weight:800;font-size:13px;text-align:right;border-right:1px solid #eee}.day-slot-content{padding:7px 0 7px 12px;min-width:0}.day-slot-empty{display:block;color:#bbb;font-size:12px;padding:12px 0}.day-slot.has-appointments .day-slot-content{background:#fafafa;border-radius:8px}.day-slot .appointment-card{margin:0 0 6px;background:#fff}.day-slot .appointment-card:last-child{margin-bottom:0}.day-slot .appointment-time{display:none}.day-slot .appointment-main small{font-size:11px}.day-slot.no-time{margin-top:10px;border-top:1px solid #ddd}.day-slot-label{font-size:12px;font-weight:800;color:#777;margin:2px 0 7px}@media(max-width:760px){.day-slot{grid-template-columns:58px 1fr}.day-slot-time{font-size:12px}.day-slot-content{padding-left:8px}.day-slot .appointment-card{grid-template-columns:1fr}}
