:root{--ink:#20261d;--muted:#626b60;--yellow:#f2c934;--line:#e0e4db;--white:#fff;--danger:#a62c24;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#f5f6f0}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 90% 0,#fff4b5aa,transparent 55%),#f5f6f0}a{color:#364a2e;text-underline-offset:4px}a:hover{color:#151d12}header{padding:18px max(24px,calc((100vw - 1240px)/2));background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:850;font-size:1.2rem}.brand small{font-size:.78rem;font-weight:500;color:var(--muted)}small{display:block;font-size:.8rem;color:var(--muted);margin-top:4px}.mark{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--ink);color:var(--yellow);font-size:1.5rem}.account{display:flex;align-items:center;gap:18px;font-size:.85rem}.account form{margin:0}.account span{font-weight:700}main{width:min(1240px,calc(100% - 40px));margin:24px auto 64px;flex:1}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}nav a{padding:10px 17px;text-decoration:none;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:.9rem;font-weight:650}h1{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.12;letter-spacing:-.035em;margin:8px 0 16px}h2{font-size:1.25rem;letter-spacing:-.02em}p{line-height:1.65}.hero{padding:40px 48px;border-radius:22px;color:#fff;background:linear-gradient(115deg,#20261d,#414b38 80%,#626d4d);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-60px;top:-110px;width:400px;height:400px;border:1px solid #f2c93444;border-radius:50%;box-shadow:0 0 0 40px #f2c93408,0 0 0 80px #f2c93406}.hero h1{font-size:clamp(2rem,4.2vw,3.5rem)}.hero p{max-width:600px;color:#dce1d5}.eyebrow{font-size:.72rem;letter-spacing:.15em;font-weight:800;color:#727949;margin:0 0 14px}.hero .eyebrow{color:var(--yellow)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.tile{padding:28px;border-radius:18px;border:1px solid var(--line);background:#fff;text-decoration:none;box-shadow:0 8px 28px #20261d06;transition:transform .15s}.tile[href]:hover{transform:translateY(-3px);border-color:#bfaa42}.tileicon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff5c4;font-size:1.7rem}.tile p{color:var(--muted);font-size:.94rem;min-height:48px}.tile strong{font-size:.88rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stats a{border:1px solid var(--line);border-radius:15px;background:#ffffffb0;padding:20px;text-decoration:none;font-size:.85rem;color:var(--muted)}.stats strong{display:block;font-size:2rem;color:var(--ink);margin-bottom:3px}.danger{color:var(--danger)!important}.panel{background:#fff;padding:28px;border:1px solid var(--line);border-radius:18px;margin:20px 0;box-shadow:0 8px 32px #20261d04}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 20px}.heading h2{margin:0}.heading p{margin:0}.taskrow{display:grid;grid-template-columns:1fr 120px 100px;align-items:center;gap:16px;text-decoration:none;padding:18px 0;border-top:1px solid var(--line)}.badge{display:inline-block;white-space:nowrap;border-radius:7px;padding:6px 10px;font-size:.76rem;font-weight:700;background:#f0f1ed;color:#626b60}.badge.arbeit{background:#fff1bc;color:#775800}.badge.erledigt{background:#e5f3e6;color:#276131}.empty{text-align:center;padding:40px 16px;color:var(--muted)}button,.button{display:inline-block;background:var(--yellow);border:1px solid #dfb820;border-radius:10px;padding:13px 20px;font:inherit;font-size:.9rem;font-weight:750;color:var(--ink);cursor:pointer;text-decoration:none}button:hover,.button:hover{background:#e9bf27}.quiet{background:#f5f6f1;border-color:var(--line);padding:9px 12px}label{display:block;margin:0 0 7px;font-size:.85rem;font-weight:700}input,select,textarea{width:100%;font:inherit;padding:12px 13px;border-radius:9px;border:1px solid #bdc5b6;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #f2c93455;border-color:#9c8323}textarea{resize:vertical}.narrow{max-width:530px;margin:7vh auto;padding:38px}.narrow form p{margin-bottom:20px}.helptext,.helptext li{font-size:.8rem;color:var(--muted)}.errorlist{color:var(--danger);padding:12px 20px;background:#fff0ed;border-radius:9px}.notice{background:#e9f4e5;border:1px solid #c2d7ba;border-radius:10px;padding:14px 18px;margin-bottom:20px}.muted{color:var(--muted)}.small{font-size:.8rem}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filters div{flex:1;min-width:140px}.filters div:first-child{flex:2;min-width:220px}.filters>a{padding:12px 0;font-size:.8rem}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.87rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;background:#f5f6f0;color:var(--muted)}th,td{padding:16px 12px;border-bottom:1px solid var(--line);vertical-align:top}td a{text-decoration:none}td:first-child{white-space:nowrap}.excerpt{min-width:190px;max-width:300px;color:var(--muted)}tr:hover td{background:#fffdf2}.formpanel{max-width:900px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.full{grid-column:1/-1}.actions{display:flex;gap:20px;align-items:center;margin-top:28px}.details{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}dt{font-size:.8rem;color:var(--muted);margin-bottom:10px}dd{margin:0;font-weight:700}.description{line-height:1.8;overflow-wrap:anywhere}.history{padding:14px 0;border-top:1px solid var(--line);font-size:.9rem}hr{border:0;border-top:1px solid var(--line);margin:28px 0}footer{text-align:center;color:var(--muted);padding:24px;font-size:.75rem}a:focus-visible,button:focus-visible{outline:3px solid #887100;outline-offset:3px}@media(max-width:800px){header{align-items:flex-start;padding:16px 20px}.account{gap:8px;flex-wrap:wrap;justify-content:end}.account>span{width:100%;text-align:right}.account>a{font-size:.75rem}.tiles{grid-template-columns:1fr}.tile p{min-height:0}.stats{grid-template-columns:1fr 1fr}.hero{padding:30px}.details{grid-template-columns:1fr 1fr}.taskrow{grid-template-columns:1fr auto}.taskrow .badge{grid-column:1/-1;width:fit-content}.heading{flex-wrap:wrap}.panel{padding:20px}.formgrid{grid-template-columns:1fr}.full{grid-column:auto}.narrow{padding:26px}main{width:calc(100% - 28px)}nav a{font-size:.8rem;padding:9px 11px}}@media print{header,nav,footer,.filters,.button{display:none}main{width:100%;margin:0}.panel{box-shadow:none}}

.button-secondary{background:#fff;border:1px solid #b9c1b1;color:var(--ink)}.button-secondary:hover{background:#f1f3eb;border-color:#7b876e}.actions .button,.actions button{min-height:48px;text-align:center}

/* Wochenendtermine bleiben auch beim Überfahren erkennbar. */
tbody tr.weekend-saturday td{background:#f1f2f1}
tbody tr.weekend-sunday td{background:#dfe2df}
tbody tr.weekend-saturday:hover td{background:#e8ebe8}
tbody tr.weekend-sunday:hover td{background:#d4d9d4}

.month-heading th{padding:19px 12px 12px;background:#fff8d7;border-top:2px solid #e5d48a;border-bottom:1px solid #e5dfc6;text-transform:none;letter-spacing:normal;color:var(--ink)}
.month-heading h2{margin:0;font-size:1.05rem;font-weight:800}

.visit-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:5px solid var(--yellow)}.visit-summary h2{margin:0}.visit-summary p:last-child{margin-bottom:0}
[hidden]{display:none!important}
@media(max-width:800px){.visit-summary{align-items:flex-start;flex-direction:column}}

.extra-date-row{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.extra-date-row input{min-width:0;flex:1}
.extra-date-row button{padding:12px;font-size:.8rem}
#add-date{margin-top:3px;text-align:left}

.filters>a.filter-reset{padding:13px 20px;font-size:.9rem;min-height:48px;white-space:nowrap;text-align:center;text-decoration:none}
.export-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}

.user-dropdown{position:relative;flex-shrink:0;z-index:50;color:#12394f}
.user-dropdown summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:48px;padding:5px 14px 5px 5px;border:1px solid #b6d5e5;border-radius:28px;background:#f2f9fd;cursor:pointer;user-select:none}
.user-dropdown summary::-webkit-details-marker{display:none}
.user-avatar{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:#0d5278;color:#fff;font-size:.95rem;font-weight:800}
.user-firstname{font-size:.9rem;font-weight:800}
.user-chevron{width:7px;height:7px;margin-left:2px;border-right:2px solid #67808b;border-bottom:2px solid #67808b;transform:rotate(45deg);transition:transform .15s}
.user-dropdown[open] .user-chevron{transform:rotate(225deg)}
.user-dropdown-panel{position:absolute;right:0;top:calc(100% + 10px);min-width:210px;padding:8px;border:1px solid #d7e5ed;border-radius:16px;background:white;box-shadow:0 16px 35px #12394f26}
.user-dropdown-panel a,.user-dropdown-panel button{display:block;width:100%;padding:17px 13px;text-align:left;color:#12394f;font:inherit;font-size:.9rem;font-weight:750;background:none;border:0;border-radius:9px;text-decoration:none;cursor:pointer}
.user-dropdown-panel form{border-top:1px solid #dce8ed;margin:0;padding-top:3px}
.user-dropdown-panel a:hover,.user-dropdown-panel button:hover{background:#eef6fa}
.user-dropdown summary:focus-visible{outline:3px solid #0d5278;outline-offset:3px}
.profile-details{display:grid;gap:22px;margin:30px 0}.profile-details dd{overflow-wrap:anywhere}
@media(max-width:540px){.profile-details+.actions{align-items:stretch;flex-direction:column}.user-dropdown-panel{min-width:200px}}

body.admin-theme{--ink:#15394b;--muted:#6b8493;background:linear-gradient(145deg,transparent 25%,#d7eaf34d 25%,#d7eaf34d 29%,transparent 29%),radial-gradient(ellipse at top right,#dcecf5,transparent 70%),#edf7fc}
.admin-breadcrumb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.8rem;margin:4px 0 22px;color:var(--muted)}
.admin-breadcrumb a{color:#175774;text-decoration:none}
.admin-surface .panel{border-color:#dfebf1;border-radius:23px;box-shadow:0 18px 45px #13394c0b}
.admin-surface .eyebrow{color:#5b9ec2}
.admin-surface h1{font-size:clamp(2rem,4vw,3rem)}
.admin-intro>p:last-of-type{color:var(--muted);margin:0}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:26px}
.admin-stats>div{padding:18px 22px;background:#edf7fc;border:1px solid #dcebf2;border-radius:13px}
.admin-stats strong{display:block;font-size:1.7rem}.admin-stats span{font-size:.82rem;color:var(--muted)}
.admin-section-title{margin:32px 0 14px;font-size:1.25rem}
.admin-entry{display:flex;align-items:center;gap:24px;padding:30px;text-decoration:none}
.admin-entry:hover{border-color:#9bc5db;box-shadow:0 18px 45px #13394c15}
.entry-number{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;background:#63a9cf;border-radius:13px;color:white;font-size:.9rem;font-weight:850}
.entry-content{flex:1;text-align:center;display:grid;gap:12px}
.entry-content>strong{font-size:1.25rem}.entry-content>span{color:var(--muted);line-height:1.6}.entry-content>b{font-size:.85rem}
.entry-arrow{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#153e52;color:white;font-size:1.4rem}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.role-grid article{border:1px solid #dceaf1;background:#f8fcfe;padding:24px;border-radius:14px}.role-grid h3{font-size:1.05rem}.role-grid p{color:var(--muted);font-size:.9rem;margin-bottom:0}
.role-badge,.account-status{display:inline-block;padding:7px 10px;border-radius:8px;background:#e8f4fb;color:#185879;font-size:.76rem;font-weight:800;white-space:nowrap}.role-badge.admin{background:#153e52;color:white}
.account-status.active{background:#d9f4e8;color:#176948}.account-status.inactive{background:#f3e7e5;color:#97372d}
.admin-surface .button:not(.button-secondary):not(.button-light),.admin-surface button[type=submit]{background:#153e52;color:white;border-color:#153e52}
.admin-surface .button:not(.button-secondary):not(.button-light):hover,.admin-surface button[type=submit]:hover{background:#0d5278;border-color:#0d5278}
.admin-surface .button-secondary{background:#eaf6fc;border-color:#eaf6fc;color:#164e6e}
.admin-surface .button-secondary:hover{background:#dceef8;border-color:#c5e1ef}
.admin-surface .button-light{background:#0e5376;border-color:#0e5376;color:white}.admin-surface .button-light:hover{background:#124660}
.admin-surface th{background:#e8f5fc;color:#15516f}.admin-surface td,.admin-surface th{border-color:#dceaf2}
.admin-surface tr:hover td{background:#f8fcfe}
.admin-user-table{min-width:850px}.admin-user-table td{padding:20px 12px;vertical-align:middle;line-height:1.65}.admin-user-table td:first-child{white-space:normal;min-width:220px}.admin-user-table td small{line-height:1.7;overflow-wrap:anywhere}
.admin-row-actions{display:grid;gap:9px;min-width:165px;justify-items:stretch}.admin-row-actions .button{padding:12px 15px;text-align:center;font-size:.82rem}
.admin-search{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:26px 0}.admin-search>div{flex:1;min-width:230px}.admin-search button{min-height:48px}
.admin-account-form{max-width:900px}.admin-form-note{margin:25px 0;padding:18px 20px;border:1px solid #d6e8f2;background:#f0f8fd;border-radius:12px;font-size:.88rem;line-height:1.7}.admin-form-note p{margin:8px 0 0}
.admin-surface input[type=checkbox]{width:21px;height:21px;accent-color:#0d5278}
.admin-surface input:focus,.admin-surface select:focus{outline-color:#8dc6e94d;border-color:#4a8bab}
@media(max-width:700px){.admin-stats{grid-template-columns:1fr}.role-grid{grid-template-columns:1fr}.admin-entry{padding:24px 16px;gap:12px}.entry-content>strong{font-size:1.05rem}.entry-content>span{font-size:.8rem}.entry-number{width:34px;height:34px}.admin-surface .actions{flex-wrap:wrap}}

/* Einheitliche HallenKlar-Farben auch in der Administration. */
body.admin-theme{--ink:#20261d;--muted:#626b60;background:radial-gradient(ellipse at 90% 0,#fff4b5aa,transparent 55%),#f5f6f0}
.admin-breadcrumb a{color:#364a2e}
.admin-surface .panel{border-color:#e0e4db;box-shadow:0 18px 45px #20261d0b}
.admin-surface .eyebrow{color:#84701d}
.admin-stats>div{background:#fff8d7;border-color:#eee0a5}
.admin-entry:hover{border-color:#bfaa42;box-shadow:0 18px 45px #20261d15}
.entry-number{background:#f2c934;color:#20261d}
.entry-arrow{background:#20261d;color:#f2c934}
.role-grid article{border-color:#e6dfc7;background:#fffdf4}
.role-badge{background:#fff3bd;color:#6d5711}
.role-badge.admin{background:#20261d;color:#f2c934}
.admin-surface .button:not(.button-secondary):not(.button-light),.admin-surface button[type=submit]{background:#f2c934;color:#20261d;border-color:#dfb820}
.admin-surface .button:not(.button-secondary):not(.button-light):hover,.admin-surface button[type=submit]:hover{background:#e9bf27;border-color:#cfaa1e}
.admin-surface .button-secondary{background:#fff;border-color:#b9c1b1;color:#20261d}
.admin-surface .button-secondary:hover{background:#f1f3eb;border-color:#7b876e}
.admin-surface .button-light{background:#fff5c4;border-color:#e5d48a;color:#20261d}
.admin-surface .button-light:hover{background:#ffed9a}
.admin-surface th{background:#fff8d7;color:#626b60}
.admin-surface td,.admin-surface th{border-color:#e0e4db}
.admin-surface tr:hover td{background:#fffdf2}
.admin-form-note{border-color:#e5d48a;background:#fff8d7}
.admin-surface input[type=checkbox]{accent-color:#b29316}
.admin-surface input:focus,.admin-surface select:focus{outline-color:#f2c93455;border-color:#9c8323}

.completion-fields{margin:26px 0 10px;padding:24px;border:1px solid #e5d48a;border-radius:15px;background:#fffdf3;min-width:0}
.completion-fields legend{padding:0 9px;font-weight:800}
.completion-fields>p{margin-top:0;font-size:.88rem}
.completion-fields h3{font-size:1rem;margin-top:24px}
@media(max-width:600px){.completion-fields{padding:18px}}

.completion-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:14px 0}
.completion-work-date{max-width:360px;margin-bottom:22px}
.tiles-with-billing{grid-template-columns:repeat(4,minmax(0,1fr))}
.billing-hero h1{font-size:clamp(2rem,4vw,3rem)}
.billing-filters{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}
.billing-filters>.field{flex:1;min-width:210px}
.billing-filters button{min-height:48px}
.billing-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.billing-group h2{font-size:1.45rem;margin:0}
.billing-group td,.activity-report-table td{white-space:normal;overflow-wrap:anywhere}
.billing-metrics{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:12px 0 22px;font-size:.88rem}
.billing-metrics strong{font-size:1.08rem}
.billing-warning{border-left:5px solid #e5bd24}
.report-document-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:2px solid #e5d48a;margin-bottom:20px;padding-bottom:20px}
.report-document-header h1{font-size:2rem}
.report-document-header>div:last-child{text-align:right;min-width:160px}
.report-description{font-size:.87rem;line-height:1.7;margin:9px 0}
.activity-report-table{table-layout:fixed}
.activity-report-table th:first-child{width:20%}
.activity-report-table th:last-child{width:20%}
.report-total{display:flex;justify-content:space-between;gap:24px;padding:22px 12px;border-top:2px solid #e5d48a;background:#fffdf3}
.report-total>div:last-child{text-align:right;flex-shrink:0}
.report-disclaimer{font-size:.77rem;line-height:1.6;color:var(--muted);margin-top:30px}
@media(max-width:1100px){.tiles-with-billing{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.completion-time-grid{grid-template-columns:1fr 1fr}.tiles-with-billing{grid-template-columns:1fr}.report-document-header,.report-total{flex-direction:column}.report-document-header>div:last-child,.report-total>div:last-child{text-align:left}.billing-actions .button{font-size:.8rem}.billing-document{padding:16px}.activity-report-table{min-width:600px}}
@media print{
 @page{size:A4 portrait;margin:16mm}
 body{background:white!important;color:#111}
 .report-controls{display:none!important}
 .billing-document{border:0;box-shadow:none;padding:0;margin:0;border-radius:0}
 .billing-document h1{font-size:22pt}
 .billing-document p{line-height:1.5}
 .billing-document .eyebrow{font-size:8pt}
 .billing-document .tablewrap{overflow:visible}
 .activity-report-table{min-width:0!important;width:100%;font-size:9pt}
 .activity-report-table thead{display:table-header-group}
 .activity-report-table th,.activity-report-table td{padding:10px 6px}
 .activity-report-table tr{break-inside:avoid}
 .report-description{font-size:9pt}
 .report-document-header{display:flex;flex-direction:row}
 .report-document-header>div:last-child{text-align:right}
 .report-total{display:flex;flex-direction:row;break-inside:avoid}
 .report-total>div:last-child{text-align:right}
}
