
:root{
  --bg:#070707;--panel:#101010;--panel2:#151515;--line:#272727;--text:#f5f4f1;
  --muted:#9a9995;--bordeaux:#7b1832;--green:#36a269;--red:#d95f5f;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{margin:0;background:linear-gradient(180deg,#090909,#050505);min-height:100vh}
a{color:inherit}
.wrap{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:26px 0 46px}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:-.04em}
.x{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--bordeaux);font-size:21px}
.muted{color:var(--muted)}
.card{background:rgba(17,17,17,.94);border:1px solid var(--line);border-radius:18px;padding:18px}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.stat b{display:block;font-size:28px;line-height:1;margin-bottom:7px}
.filters{display:grid;grid-template-columns:2fr 1fr 1.2fr auto auto;gap:10px;margin-bottom:18px}
input,select,button,.btn{min-height:44px;border-radius:12px;border:1px solid var(--line);background:#0d0d0d;color:var(--text);padding:0 13px;font:inherit}
button,.btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800}
.primary{background:var(--bordeaux);border-color:var(--bordeaux)}
.secondary{background:#171717}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
table{border-collapse:collapse;width:100%;min-width:1100px;background:#0d0d0d}
th,td{text-align:left;padding:12px;border-bottom:1px solid #202020;vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);position:sticky;top:0;background:#111;z-index:1}
td{font-size:13px}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:26px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:900}
.yes{background:rgba(54,162,105,.18);color:#70d49c}
.no{background:#191919;color:#666}
.login{width:min(460px,calc(100% - 32px));margin:12vh auto 0}
.login .card{padding:28px}
.login h1{margin:0 0 8px;font-size:34px}
.login form{display:grid;gap:12px;margin-top:22px}
.login input{width:100%;font-size:16px}
.error{padding:12px;border-radius:12px;background:rgba(217,95,95,.12);color:#f19898;border:1px solid rgba(217,95,95,.3);margin-top:14px}
.note{font-size:12px;line-height:1.5;color:var(--muted)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.detail-grid .card b{display:block;margin-bottom:6px}
.events{display:grid;gap:10px}
.event{padding:14px;border:1px solid var(--line);border-radius:14px;background:#0e0e0e}
@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .filters{grid-template-columns:1fr}
  .top{align-items:flex-start;flex-direction:column}
  .detail-grid{grid-template-columns:1fr}
}

.revoked{background:rgba(123,24,50,.22);color:#e58aa2}

/* V5.86 Admin expansion */
.admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}.admin-nav-link{min-height:40px;display:inline-flex;align-items:center;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:#111;text-decoration:none;font-size:13px;font-weight:800;color:#d9d8d5}.admin-nav-link.active{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.kpi-card{background:linear-gradient(180deg,#141414,#0d0d0d);border:1px solid var(--line);border-radius:18px;padding:20px}.kpi-card strong{display:block;font-size:30px;letter-spacing:-.04em}.kpi-card span{display:block;margin-top:7px;color:var(--muted);font-size:12px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:28px 0 12px}.section-title h2{margin:0;font-size:22px}.section-title p{margin:0;color:var(--muted);font-size:12px}.mini-bars{display:grid;gap:10px}.mini-bar{display:grid;grid-template-columns:42px 1fr 54px;align-items:center;gap:10px}.mini-track{height:8px;background:#222;border-radius:999px;overflow:hidden}.mini-fill{height:100%;background:var(--bordeaux);border-radius:999px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .full{grid-column:1/-1}.field{display:grid;gap:7px}.field label{font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.field input,.field select,.field textarea{width:100%}.field textarea{min-height:150px;border-radius:12px;border:1px solid var(--line);background:#0d0d0d;color:var(--text);padding:12px;font:inherit;resize:vertical}.helper{font-size:11px;color:var(--muted);line-height:1.45}.okbox{padding:12px;border-radius:12px;background:rgba(54,162,105,.12);color:#79d7a2;border:1px solid rgba(54,162,105,.3)}.warnbox{padding:12px;border-radius:12px;background:rgba(214,164,72,.12);color:#e7c77b;border:1px solid rgba(214,164,72,.25)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.tab{border:1px solid var(--line);background:#111;color:#eee;padding:9px 12px;border-radius:999px;font-weight:800;font-size:12px;cursor:pointer}.tab.active{background:var(--bordeaux);border-color:var(--bordeaux)}.lang-panel{display:none}.lang-panel.active{display:block}.campaign-status{font-size:11px;font-weight:900;padding:6px 9px;border-radius:999px;background:#1a1a1a}.campaign-status.sent{background:rgba(54,162,105,.16);color:#70d49c}.campaign-status.scheduled{background:rgba(214,164,72,.15);color:#e7c77b}
.note-form{display:grid;gap:10px}.note-form textarea{min-height:100px;border-radius:12px;border:1px solid var(--line);background:#0d0d0d;color:#fff;padding:12px;font:inherit}.notes{display:grid;gap:10px}.note-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#0e0e0e}.note-card p{white-space:pre-wrap;margin:8px 0 0}.audit-line{font-size:12px;color:var(--muted)}
.content-preview{border:1px solid var(--line);border-radius:16px;padding:18px;background:#0a0a0a}.content-preview .preview-banner{padding:10px 14px;border-radius:10px;background:var(--bordeaux);font-weight:800;text-align:center}.recipient-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.recipient-stat{padding:12px;border:1px solid var(--line);border-radius:12px;background:#0e0e0e}.recipient-stat strong{font-size:22px;display:block}.recipient-stat span{font-size:11px;color:var(--muted)}
@media(max-width:1000px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3,.form-grid{grid-template-columns:1fr}.recipient-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.kpi-grid{grid-template-columns:1fr}.recipient-grid{grid-template-columns:1fr}.admin-nav{display:grid;grid-template-columns:repeat(2,1fr)}.admin-nav-link{justify-content:center}}
/* V5.87: account permissions and language selection */
.account-form{display:grid;gap:16px;max-width:900px}.account-form>label{display:grid;gap:8px}.permission{display:flex!important;align-items:center;gap:12px;padding:10px 0}.permission input{width:auto;min-width:20px;height:20px;flex:none}.account-form fieldset{border:1px solid #444;border-radius:12px;padding:16px}.language-menu{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.language-menu select{margin-left:8px}.wrap{overflow-wrap:anywhere}table{max-width:100%}.account-form input{max-width:100%;box-sizing:border-box}

/* Long translated labels remain readable at phone widths. */
.admin-nav-link{hyphens:auto}@media(max-width:600px){.admin-nav{display:flex;flex-wrap:wrap}.admin-nav-link{flex:1 1 145px;overflow-wrap:normal;min-width:0;text-align:center}}

.exercise-media-upload{grid-template-columns:minmax(0,1fr);}.exercise-media-upload label{min-width:0;}.exercise-media-upload input[type="file"]{width:100%;max-width:100%;min-width:0;box-sizing:border-box;}

/* EU-14-06: constrain only the internal referral program forms and snapshots. */
.referral-program pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
.referral-program fieldset{min-width:0}
.referral-program fieldset label{display:grid;gap:8px;margin:12px 0}
.referral-program textarea{width:100%;min-width:0;min-height:120px;resize:vertical;background:#0d0d0d;color:var(--text);font:inherit;padding:12px;border:1px solid var(--line);border-radius:12px}
.referral-program select,.referral-program input{min-width:0;max-width:100%}

/* EU-21-11: visible keyboard focus and identifiable enabled form controls. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #ffb1c8;outline-offset:3px}
input:not([type=hidden]),select,textarea{border-color:#777}
.no{color:#aaa}
@media(forced-colors:active){a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-color:Highlight}.badge{border:1px solid CanvasText}}

.contract-document-text {white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;}

/* Keyboard bypass for the shared administration navigation. */
.skip-link{position:absolute;top:8px;left:8px;transform:translateY(-200%);padding:12px 18px;background:#090909;color:#fff;z-index:1000}.skip-link:focus{transform:none}

/* Country retention choices stay separate from their manual date anchor. */
.privacy-review fieldset{min-width:0}
.privacy-review fieldset>label{display:grid;gap:8px;margin:12px 0}
.privacy-review fieldset>label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:10px}
.privacy-review fieldset input[type=checkbox]{flex:0 0 22px;width:22px;min-height:22px;height:22px;padding:0}

.panel-mail {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    box-sizing: border-box;
    border: 1px solid currentColor;
    border-radius: .5rem;
    padding: .35rem .55rem;
    text-decoration: none;
}
.panel-mail-new {
    color: #fff !important;
    background: #982740;
}
.panel-mail-new span { font-weight: 700; }

.booking-calendar {
    max-width: 36rem;
    margin: 1.5rem 0;
}
.booking-calendar-nav, .booking-calendar-grid {
    display: grid;
    gap: .3rem;
    text-align: center;
    align-items: center;
}
.booking-calendar-nav {
    grid-template-columns: 2.5rem 1fr 2.5rem;
    margin-bottom: .5rem;
}
.booking-calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}
.booking-calendar-grid > * {
    display: grid;
    place-items: center;
    min-height: 2.65rem;
}
.booking-calendar-grid a, .booking-calendar-nav a {
    border: 1px solid #9ca3af;
    border-radius: .4rem;
    text-decoration: none;
}
.booking-calendar-grid a[aria-current="date"] {
    background: #6e1230;
    border-color: #6e1230;
    color: #fff;
    font-weight: 700;
}
.booking-calendar-disabled {
    opacity: .6;
}
.booking-weekday {
    font-weight: 600;
}

.booking-calendar-grid a { align-content: center; }
.booking-calendar-count { font-size: .75rem; line-height: 1.1; }

.workforce-hour-table th[scope="row"] { white-space: nowrap; }
.workforce-hour-link { display: inline-block; padding: .55rem .8rem; }

/* Highlight scheduled days in the personal work calendar. */
#arbeitsplan .booking-calendar-grid a[href^="/admin/staff-work.php?"]:not([href*="view=cleaning"]):has(> .booking-calendar-count) {
    background: #166534;
    border-color: #4ade80;
    color: #fff;
}
#arbeitsplan .booking-calendar-grid a[href^="/admin/staff-work.php?"]:not([href*="view=cleaning"]):has(> .booking-calendar-count)[aria-current="date"] {
    box-shadow: inset 0 0 0 2px #fff;
}

.workforce-plan-actions { margin: .75rem 0; }
.workforce-plan-calendar { overflow-x: auto; }
.workforce-plan-calendar table { width: 100%; min-width: 44rem; table-layout: fixed; }
.workforce-plan-calendar th, .workforce-plan-calendar td { border: 1px solid #999; }
.workforce-plan-calendar td { padding: .45rem; height: 4.5rem; }
.workforce-plan-empty { opacity: .55; }
.workforce-plan-date { display: inline-block; font-weight: 800; }
.workforce-plan-shift {
    margin: .35rem 0 0;
    padding: .2rem .35rem;
    border-inline-start: 3px solid #36a269;
    overflow-wrap: anywhere;
    break-inside: avoid;
}
.workforce-plan-shift strong, .workforce-plan-shift span { display: block; }
@media print {
    @page workforce-month { size: A4 landscape; margin: 10mm; }
    .workforce-plan-page { page: workforce-month; }
    html:has(.workforce-plan-page), .workforce-plan-page, .workforce-plan-page table,
    .workforce-plan-page th, .workforce-plan-page td { background: #fff !important; color: #000 !important; }
    .workforce-plan-page .wrap { width: 100%; margin: 0; padding: 0; }
    .workforce-plan-page h1 { margin: 0 0 2mm; font-size: 15pt; }
    .workforce-plan-page p { margin: 0 0 3mm; }
    .workforce-plan-page .workforce-plan-actions { display: none !important; }
    .workforce-plan-calendar { overflow: visible; }
    .workforce-plan-calendar table { min-width: 0; }
    .workforce-plan-calendar th, .workforce-plan-calendar td { position: static; padding: 1mm 1.5mm; font-size: 9pt; }
    .workforce-plan-calendar td { height: 12mm; }
    .workforce-plan-calendar a { color: #000; text-decoration: none; }
}

.workforce-cleaning-editor { margin-block: 1rem; }
.workforce-cleaning-editor textarea {
    width: 100%; padding: .65rem; color: inherit; background: transparent;
    border: 1px solid #929b96; border-radius: .4rem; font: inherit;
}
.workforce-cleaning-checklist { margin-block: 1rem; }
.workforce-cleaning-progress { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.workforce-cleaning-progress progress { accent-color: #197348; }
.workforce-cleaning-list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.workforce-cleaning-task { border: 1px solid #9aa69d; border-inline-start-width: 4px; border-radius: .5rem; padding: .6rem .75rem; }
.workforce-cleaning-row { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.workforce-cleaning-row > div { flex: 1 1 16rem; overflow-wrap: anywhere; }
.workforce-cleaning-row small { display: block; margin-top: .15rem; }
.workforce-cleaning-icon { font-weight: 800; }
.workforce-cleaning-done { border-color: #438f62; background: #e6f5eb; color: #173c26; }
.workforce-cleaning-overdue { border-color: #b85656; background: #fff0ef; color: #682222; }
.workforce-cleaning-task details, .workforce-cleaning-actions { margin-block: .55rem; }
.workforce-cleaning-complete { margin: 0; }

.booking-calendar-grid a.booking-calendar-warning,
.booking-calendar-grid a.booking-calendar-warning[aria-current="date"],
.workforce-plan-calendar td.workforce-plan-warning,
.workforce-warning-key, .workforce-warning-detail {
    background: #ffe082;
    color: #322300;
    border-color: #b88410;
}
.booking-calendar-grid a.booking-calendar-warning[aria-current="date"] { box-shadow: inset 0 0 0 2px #8a5d00; }
.workforce-warning-key { display: inline-block; padding: .1rem .4rem; border-radius: .25rem; font-weight: 800; }
.workforce-warning-detail { padding: .55rem .75rem; border-radius: .35rem; }
.workforce-plan-warning-text { display: block; font-weight: 700; overflow-wrap: anywhere; }
