/* Château La Châteline Operations Hub v4.11.0000
   MEGA PRODUCTION UX: readability, responsive forms, workflow guidance and
   accessibility guards. Loaded last on every Hub surface. */
:root{
  --hub-line-height:1.55;
  --hub-control-height:46px;
  --hub-card-padding:18px;
  --hub-table-font:13px;
  --hub-page-gutter:24px;
  --hub-focus-ring:0 0 0 3px color-mix(in srgb,var(--green) 24%,transparent);
  --hub-success:#177245;
  --hub-warning:#8a5a00;
  --hub-danger:#b42318;
  --hub-info:#1f5d8f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{line-height:var(--hub-line-height);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body :where(.card,.card-body,.card-head,.card-foot,.page-head,.actions,.form-grid,.grid-2,.grid-3,.v5-split,.v5-detail-grid,.business-grid,.table-wrap,.grow,.main,.page,.reception-main,.reception-page){min-width:0}
body :where(h1,h2,h3,h4,h5,p,span,strong,small,a,label,td,th,.muted,.small,.badge,.status,.btn){overflow-wrap:anywhere}
body :where(h1,h2,h3,h4){text-wrap:balance;line-height:1.16}
body :where(p,.muted,.small,.help-text){text-wrap:pretty}

/* Predictable readable surfaces */
.card,.metric,.list-card,.hero-card,.v5-panel,.settings-panel,.studio-panel,.reception-card{color:var(--ink)}
.card-body,.card-head,.card-foot{padding-inline:var(--hub-card-padding)}
.card-head{gap:12px;align-items:center;flex-wrap:wrap}
.card-head>div,.page-head>div{min-width:0}
.page-head{gap:18px;align-items:flex-start;flex-wrap:wrap}
.page-head h1{margin-bottom:6px;font-size:clamp(26px,2vw,38px)}
.page-head .muted{max-width:80ch}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.actions form{margin:0}

/* Inputs: large enough for mouse/touch and never hidden behind grid columns */
.input,.select,.textarea,input.input,select.input,textarea.input{
  min-height:var(--hub-control-height);max-width:100%;width:100%;font:inherit;line-height:1.35;
}
.textarea,textarea.input{min-height:110px;resize:vertical}
select.input,.select{padding-right:34px}
.label{display:block;margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.012em;color:var(--ink)}
.label .required-star,.required-star{color:var(--hub-danger);margin-left:3px}
.field-help{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:2px solid color-mix(in srgb,var(--green) 72%,#000);outline-offset:2px;box-shadow:var(--hub-focus-ring)!important
}
input:user-invalid,select:user-invalid,textarea:user-invalid,.input.is-invalid,.select.is-invalid,.textarea.is-invalid{border-color:var(--hub-danger)!important;background:color-mix(in srgb,#fff 96%,var(--hub-danger))!important}

/* Buttons: readable, consistent and clear action hierarchy */
.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;font-weight:800;line-height:1.2;text-align:center;white-space:normal}
.btn.sm{min-height:34px;padding:7px 10px;font-size:12px}
.btn.block{width:100%}
.btn.danger,.danger .btn{background:var(--hub-danger)!important;border-color:var(--hub-danger)!important;color:#fff!important}
.btn[disabled],button[disabled]{opacity:.52;cursor:not-allowed;filter:grayscale(.18)}

/* Statuses must stay readable even when custom colors are chosen. */
.alert{border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));line-height:1.5}
.alert.success{background:color-mix(in srgb,var(--hub-success) 10%,var(--card))!important;color:color-mix(in srgb,var(--hub-success) 88%,#000)!important;border-color:color-mix(in srgb,var(--hub-success) 28%,var(--line))!important}
.alert.error{background:color-mix(in srgb,var(--hub-danger) 9%,var(--card))!important;color:#86170f!important;border-color:color-mix(in srgb,var(--hub-danger) 30%,var(--line))!important}
.alert.warning{background:color-mix(in srgb,#f5a623 12%,var(--card))!important;color:#684100!important;border-color:color-mix(in srgb,#f5a623 34%,var(--line))!important}
.status,.badge{display:inline-flex;align-items:center;max-width:100%;line-height:1.25;white-space:normal;text-align:center}

/* Tables: no clipped names, invoices or dates. */
.table-wrap{width:100%;overflow:auto;overscroll-behavior-inline:contain;border-radius:calc(var(--radius) * .72)}
.table-wrap table,.table{width:100%;min-width:680px;border-collapse:separate;border-spacing:0;font-size:var(--hub-table-font)}
.table th,.table td,.table-wrap th,.table-wrap td{vertical-align:top;line-height:1.38;max-width:34rem}
.table td,.table-wrap td{white-space:normal;overflow-wrap:anywhere}
.table th,.table-wrap th{white-space:normal;font-size:11px;letter-spacing:.02em}
.table-wrap::-webkit-scrollbar{height:10px}.table-wrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:999px}

/* Forms and grids degrade gracefully instead of squeezing text between boxes. */
.form-grid,.form-grid.three,.grid-2,.grid-3,.v5-detail-grid{gap:14px}
.form-grid>* ,.grid-2>* ,.grid-3>* ,.v5-detail-grid>*{min-width:0}
@media(max-width:1180px){.form-grid.three,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}.business-grid,.v5-split{grid-template-columns:1fr!important}.v5-sticky-card{position:static!important}}
@media(max-width:760px){
  :root{--hub-page-gutter:14px;--hub-card-padding:14px;--hub-control-height:48px}
  .form-grid,.form-grid.three,.grid-2,.grid-3,.v5-detail-grid{grid-template-columns:1fr!important}
  .page,.reception-page{padding-left:var(--hub-page-gutter)!important;padding-right:var(--hub-page-gutter)!important}
  .page-head>.actions,.card-head>.actions{width:100%}.page-head>.actions .btn,.card-head>.actions .btn{flex:1 1 160px}
  .commercial-sticky-actions{position:static!important}
  .table-wrap table,.table{min-width:620px}
}

/* Easy/guided mode: designed for reception and infrequent users. */
body[data-hub-guidance="1"] .input,body[data-hub-guidance="1"] .select,body[data-hub-guidance="1"] .textarea{border-width:1.5px}
body[data-hub-guidance="1"] .card-head h3{font-size:16px}
body[data-hub-guidance="1"] .label{font-size:12.5px}
.workflow-guide{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;margin:0 0 18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:calc(var(--radius) * .8);background:linear-gradient(120deg,color-mix(in srgb,var(--green-3) 75%,var(--card)),var(--card));box-shadow:0 8px 24px rgba(15,45,36,.05)}
.workflow-guide-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--green);color:#fff;font-weight:900}
.workflow-guide strong{display:block;margin:1px 0 4px;color:var(--ink)}
.workflow-guide p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.workflow-guide ol{display:flex;flex-wrap:wrap;gap:7px 14px;margin:8px 0 0;padding:0;list-style:none;counter-reset:wf}
.workflow-guide li{counter-increment:wf;font-size:11px;font-weight:750;color:var(--ink)}
.workflow-guide li:before{content:counter(wf);display:inline-grid;place-items:center;width:20px;height:20px;margin-right:5px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--green);font-size:10px}

/* Inline validation helper injected by JS. */
.form-validation-summary{display:none;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--hub-danger) 8%,var(--card));border:1px solid color-mix(in srgb,var(--hub-danger) 28%,var(--line));color:#86170f;font-weight:750;font-size:12px}
.form-validation-summary.show{display:block}

/* Booking & reservation workflows */
.booking-request-guide,.reservation-guide,.finance-guide,.vik-guide{margin-bottom:16px}
.v5-detail-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.v5-detail-grid>div>span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.v5-detail-grid>div>strong{display:block;color:var(--ink);font-size:13px}
.dossier-steps{overflow:auto;scrollbar-width:thin;padding-bottom:4px}
.dossier-steps>div{min-width:104px}
.business-kpi,.vik-stat{min-width:0}.business-kpi strong,.vik-stat strong{overflow-wrap:anywhere}
.vik-bulk-toolbar{gap:10px;flex-wrap:wrap}.vik-bulk-actions{display:flex;flex-wrap:wrap;gap:8px}.vik-search{display:flex;flex-wrap:wrap;gap:8px}.vik-search .input{min-width:min(320px,100%)}
.vik-quality-summary{max-width:30ch}

/* Reception: reduce cognitive load and keep actions visible. */
.reception-page{width:min(100%,var(--hub-page-width,1600px));margin-inline:auto}
.reception-top{min-height:var(--hub-topbar-height,70px);height:auto!important;padding-block:8px}
.reception-top .actions{justify-content:flex-end}
.reception-side nav a{min-height:44px;line-height:1.25}
.reception-side nav a span{overflow-wrap:anywhere}
.reception-mobile-nav a{min-width:0}.reception-mobile-nav span{font-size:10px;line-height:1.15;text-align:center}

/* Color / contrast audit widgets */
.contrast-meter{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:10px;font-weight:800;color:var(--muted)}
.contrast-meter:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--hub-success)}
.contrast-meter.warn{color:#7a4c00}.contrast-meter.warn:before{background:#d28a00}
.contrast-meter.fail{color:#9b1c14}.contrast-meter.fail:before{background:var(--hub-danger)}
.design-safety-note{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:12px;color:var(--muted)}
.design-safety-note strong{color:var(--ink)}

/* Audit dashboard */
.production-score{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.production-score b{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--score,0)*1%),var(--line) 0);position:relative;font-size:0}.production-score b:after{content:attr(data-score) "%";display:grid;place-items:center;position:absolute;inset:8px;border-radius:50%;background:var(--card);font-size:18px;color:var(--ink)}
.audit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.audit-check{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.audit-check>i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:900;background:color-mix(in srgb,var(--hub-success) 12%,var(--card));color:var(--hub-success)}.audit-check.warn>i{background:color-mix(in srgb,#d28a00 12%,var(--card));color:#8a5a00}.audit-check.fail>i{background:color-mix(in srgb,var(--hub-danger) 10%,var(--card));color:var(--hub-danger)}.audit-check strong{display:block}.audit-check small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:800px){.audit-grid{grid-template-columns:1fr}.production-score{grid-template-columns:1fr;text-align:center}.production-score b{margin:auto}}

/* Print remains neutral regardless of the chosen admin palette. */
@media print{.workflow-guide,.form-validation-summary,.no-print{display:none!important}body{background:#fff!important;color:#111!important}.card{box-shadow:none!important;border-color:#ccc!important}}
/* Automatic foreground protection for custom primary colors. */
.btn:not(.secondary):not(.ghost):not(.danger),.mobile-top{color:var(--hub-on-primary,#fff)!important}


/* v4.11.0000 production-check screen */
.production-score{display:flex!important;align-items:center;gap:12px;min-width:190px;padding:12px 16px!important}
.production-score strong{font-size:28px;line-height:1;color:var(--green)}
.production-score span{font-size:11px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}
.production-score.warn strong{color:var(--hub-warning)}.production-score.bad strong{color:var(--hub-danger)}
.audit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.audit-kpi{padding:15px 17px;border:1px solid var(--line);border-radius:calc(var(--radius)*.8);background:var(--card);box-shadow:0 7px 22px rgba(15,45,36,.04)}
.audit-kpi strong{display:block;font-size:24px;color:var(--ink)}.audit-kpi span{display:block;color:var(--muted);font-size:11px;font-weight:750}
.audit-section{margin-bottom:14px}.audit-list{display:grid}.audit-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px var(--hub-card-padding);border-top:1px solid var(--line)}
.audit-row:first-child{border-top:0}.audit-state{width:10px;height:10px;border-radius:50%;background:var(--hub-success)}.audit-warn .audit-state{background:#d28a00}.audit-fail .audit-state{background:var(--hub-danger)}
.audit-copy{min-width:0}.audit-copy strong{display:block;color:var(--ink)}.audit-copy span{display:block;color:var(--muted);font-size:12px}.audit-copy small{display:block;margin-top:4px;color:var(--hub-warning);font-size:11px;font-weight:700}
@media(max-width:760px){.audit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-row{grid-template-columns:10px minmax(0,1fr)}.audit-row>.badge{grid-column:2;justify-self:start}.production-score{width:100%}}


/* v4.11.0000 — PWA launch, mobile office/admin, central customization and guest review */
.pwa-launch-screen{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:linear-gradient(145deg,#0d3026,#164d3c 58%,#b68a55);color:#fff;opacity:1;transition:opacity .32s ease,visibility .32s ease}.pwa-launch-screen.is-leaving{opacity:0;visibility:hidden}.pwa-launch-card{text-align:center;padding:34px;display:grid;justify-items:center;gap:12px}.pwa-launch-card img{width:min(190px,42vw);height:min(190px,42vw);object-fit:contain;border-radius:50%;filter:drop-shadow(0 20px 32px rgba(0,0,0,.22));animation:pwaLogoIn .55s cubic-bezier(.2,.85,.3,1)}.pwa-launch-card strong{font:600 clamp(22px,5vw,34px)/1.1 Georgia,serif}.pwa-launch-card span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78)}.pwa-launch-dot{width:42px;height:3px;border-radius:999px;background:rgba(255,255,255,.25);overflow:hidden;margin-top:7px}.pwa-launch-dot:after{content:"";display:block;width:45%;height:100%;background:#fff;border-radius:inherit;animation:pwaLoad 1s ease-in-out infinite alternate}@keyframes pwaLogoIn{from{opacity:0;transform:translateY(12px) scale(.9)}to{opacity:1;transform:none}}@keyframes pwaLoad{from{transform:translateX(-10%)}to{transform:translateX(135%)}}
.customize-hero{overflow:hidden;background:linear-gradient(120deg,color-mix(in srgb,var(--green) 94%,#081b15),color-mix(in srgb,var(--accent) 24%,var(--green)));color:#fff;border:0}.customize-hero .card-body{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:clamp(24px,4vw,44px)}.customize-hero h2{font:600 clamp(28px,4vw,46px)/1.05 Georgia,serif;margin:6px 0 12px}.customize-hero p{max-width:760px;color:rgba(255,255,255,.82);font-size:16px}.customize-hero img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 14px 24px rgba(0,0,0,.2))}.eyebrow-hub{font-size:11px;font-weight:900;letter-spacing:.14em;color:#efd5aa}.customize-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.customize-tile{display:flex;gap:15px;align-items:flex-start;padding:22px;border:1px solid var(--line);background:var(--card);border-radius:calc(var(--radius) + 4px);box-shadow:0 12px 30px rgba(9,35,27,.05);transition:.18s}.customize-tile:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(9,35,27,.09);border-color:color-mix(in srgb,var(--green) 28%,var(--line))}.customize-tile>svg{width:28px;height:28px;color:var(--green);flex:0 0 auto}.customize-tile strong{display:block;font-size:16px;color:var(--ink)}.customize-tile span{display:block;margin-top:4px;font-size:13px;color:var(--muted);line-height:1.5}.customize-tile.primary{background:linear-gradient(145deg,color-mix(in srgb,var(--green) 8%,#fff),#fff)}.customize-tile.language{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 12%,#fff),#fff)}
.translation-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.translation-stats span{padding:10px;border:1px solid var(--line);border-radius:12px;text-align:center;background:var(--surface)}.translation-stats strong{display:block;font-size:22px}.translation-list{display:grid}.translation-row{padding:18px;border-top:1px solid var(--line)}.translation-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.translation-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.translation-source{min-height:122px;padding:13px;border-radius:12px;background:color-mix(in srgb,var(--green) 4%,var(--surface));border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.translation-actions{display:flex;gap:8px;margin-top:8px}.translation-actions .select{max-width:190px}
.review-intro-card{padding:20px;margin:-4px -4px 18px;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 8%,#fff),color-mix(in srgb,var(--accent) 10%,#fff));border:1px solid color-mix(in srgb,var(--green) 10%,var(--line))}.review-intro-card h2{margin:4px 0 7px;font-size:26px}.review-intro-card p{margin:0;color:var(--muted)}.review-kicker{font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--green)}.review-rating-field{border:0;padding:0;margin:0}.review-rating-field legend{font-weight:850;margin-bottom:10px}.review-stars{display:grid!important;grid-template-columns:repeat(5,1fr);gap:8px!important;direction:ltr!important}.review-star-option{position:relative;cursor:pointer}.review-star-option input{position:absolute;opacity:0;pointer-events:none}.review-star-option span{display:grid!important;place-items:center;min-height:58px!important;border:1px solid var(--line)!important;border-radius:15px!important;background:var(--surface)!important;font-size:30px!important;color:#a9b1ad!important;padding:5px!important;transition:.15s}.review-star-option small{display:block;text-align:center;margin-top:4px;color:var(--muted);font-weight:800}.review-star-option:hover span,.review-star-option:has(input:checked) span{color:#c99231!important;background:#fff9ea!important;border-color:#e3bb73!important;transform:translateY(-1px);box-shadow:0 8px 18px rgba(124,85,22,.1)}.review-star-option input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--green) 25%,transparent);outline-offset:2px}.review-rating-help{font-size:12px;color:var(--muted);margin-top:8px}.review-submit{min-height:52px;font-size:16px}.review-submit-help{text-align:center;margin:8px 0 0}
.admin-mobile-dock{display:none}
@media(max-width:1100px){.customize-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.translation-grid{grid-template-columns:1fr}.translation-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){body[data-app-area="admin"] .page{padding-bottom:92px}.admin-mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:1600;background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:0 18px 50px rgba(8,30,23,.18);border-radius:18px;padding:6px;backdrop-filter:blur(14px)}.admin-mobile-dock a,.admin-mobile-dock button{border:0;background:transparent;display:grid;justify-items:center;gap:2px;padding:8px 3px;color:var(--muted);font-size:10px;font-weight:800}.admin-mobile-dock svg{width:22px;height:22px}.admin-mobile-dock .active{color:var(--green);background:var(--green-3);border-radius:12px}.sidebar .nav a,.nav-group-toggle{min-height:48px}.topbar{padding-inline:10px}.global-search{display:none}.customize-grid{grid-template-columns:1fr}.customize-hero .card-body{display:grid}.customize-hero img{width:110px;height:110px}.translation-stats{grid-template-columns:repeat(2,1fr)}.review-stars{gap:5px!important}.review-star-option span{min-height:52px!important;font-size:26px!important}.form-grid{grid-template-columns:1fr!important}.form-grid .span-2{grid-column:auto!important}}

/* v4.11.0000 — free local translation & atomic language site UI */
.translation-engine-status{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 92%,#fff),color-mix(in srgb,var(--green) 4%,#fff))}
.translation-engine-status.is-ready{border-color:color-mix(in srgb,var(--green) 24%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--green) 8%,#fff),#fff)}
.translation-engine-status p{margin:6px 0 0}.translation-release-card{padding:18px;border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 9%,#fff),color-mix(in srgb,var(--accent) 9%,#fff));border:1px solid color-mix(in srgb,var(--green) 12%,var(--line));margin-bottom:14px}.translation-release-card h3{margin:5px 0 4px;text-transform:capitalize}.translation-release-card p{margin:0 0 5px}.translation-release-card small{color:var(--muted)}
@media(max-width:760px){.translation-engine-status{display:grid}.translation-engine-status .badge{justify-self:start}.translation-actions{flex-wrap:wrap}.translation-actions .select{max-width:none;flex:1 1 180px}}

/* v4.11.0000 — bundled translator PHP installer */
.translator-installer .status-dot,.check-row .status-dot{width:12px;height:12px;flex:0 0 12px;margin:4px 0 0;border-radius:50%;background:#98a39e}.check-row .status-dot.ok{background:#177245;box-shadow:0 0 0 4px rgba(23,114,69,.10)}.check-row .status-dot.warn{background:#b7791f;box-shadow:0 0 0 4px rgba(183,121,31,.10)}.check-row .status-dot.bad{background:#b42318;box-shadow:0 0 0 4px rgba(180,35,24,.10)}
.check-list{display:grid;gap:12px}.check-list .check-row{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.check-list .check-row:last-child{border-bottom:0}.check-list .check-row small{display:block;color:var(--muted);margin-top:3px}
.mini-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mini-kpis>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.mini-kpis strong{display:block;font-size:20px;color:var(--green)}.mini-kpis span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-grid>div{padding:14px;border:1px solid var(--line);border-radius:14px}.info-grid strong{display:block}.info-grid span{display:block;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}@media(max-width:760px){.mini-kpis,.info-grid{grid-template-columns:1fr}}

/* ================================================================
   v4.11.0000 — NON-OVERLAPPING DESKTOP NAVIGATION
   Desktop uses a real grid column for navigation. The menu can never
   cover dashboard/content, regardless of configured sidebar width.
   ================================================================ */
@media (min-width:921px){
  body.backend-wa .admin-shell{
    display:grid!important;
    grid-template-columns:clamp(220px,var(--hub-sidebar-width,260px),360px) minmax(0,1fr)!important;
    align-items:start!important;
    width:100%!important;
    min-height:100dvh!important;
  }
  body.backend-wa .sidebar{
    position:sticky!important;
    inset:auto!important;
    top:0!important;
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    max-width:none!important;
    height:100dvh!important;
    min-height:100dvh!important;
    z-index:40!important;
    overflow:hidden!important;
  }
  body.backend-wa .sidebar .nav{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
  }
  body.backend-wa .main{
    grid-column:2!important;
    grid-row:1!important;
    margin-left:0!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    overflow:clip visible!important;
  }
  body.backend-wa .topbar{
    left:auto!important;
    width:100%!important;
    max-width:100%!important;
  }
  body.backend-wa .page{
    width:min(100%,var(--hub-page-width,1600px))!important;
    max-width:100%!important;
    min-width:0!important;
    margin-inline:auto!important;
  }
  body.backend-wa .ops-dashboard-head,
  body.backend-wa .metrics,
  body.backend-wa .ops-kpi-strip,
  body.backend-wa .dashboard-row,
  body.backend-wa .ops-dashboard-grid{
    max-width:100%!important;
    min-width:0!important;
  }
}

/* Tablet/phone: menu becomes a drawer, never a permanent overlay. */
@media (max-width:920px){
  body.backend-wa .admin-shell{display:block!important;width:100%!important}
  body.backend-wa .main{margin-left:0!important;width:100%!important;max-width:100%!important}
  body.backend-wa .sidebar{
    position:fixed!important;
    left:0!important;top:0!important;bottom:0!important;
    width:min(320px,88vw)!important;
    max-width:88vw!important;
    height:100dvh!important;
    z-index:1800!important;
    transform:translateX(-105%)!important;
    transition:transform .22s ease!important;
  }
  body.backend-wa .sidebar.open,
  body.backend-wa .sidebar.is-open{transform:translateX(0)!important}
  body.backend-wa .sidebar-scrim{z-index:1790!important}
}

/* Fresh-install translator visibility */
.fresh-translator-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 7%,#fff),#fff)}
.fresh-translator-banner code{overflow-wrap:anywhere}
@media(max-width:700px){.fresh-translator-banner{grid-template-columns:1fr}.fresh-translator-banner .btn{width:100%}}

/* v4.11.0000 — Translation control, VikBooking guest register & unified Studio UX */
.translation-master-switch{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:20px 22px;border:1px solid color-mix(in srgb,var(--line,#dce4df) 90%,transparent);border-radius:18px;background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--surface,#f4f7f5) 76%,#fff));box-shadow:0 12px 30px rgba(11,43,34,.06)}
.translation-master-switch h3{margin:0 0 5px}.translation-master-switch p{margin:0;color:var(--muted,#68776f)}
.switch-control{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:800}.switch-control input{position:absolute;opacity:0;pointer-events:none}.switch-control .switch-track{width:56px;height:32px;border-radius:999px;background:#cad4cf;position:relative;transition:.2s;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.switch-control .switch-track:after{content:"";position:absolute;width:24px;height:24px;left:4px;top:4px;border-radius:50%;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.18);transition:.2s}.switch-control input:checked+.switch-track{background:var(--brand,#0f654b)}.switch-control input:checked+.switch-track:after{transform:translateX(24px)}
.translated-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.translated-page-card{display:grid;gap:14px;padding:18px;border:1px solid var(--line,#dce4df);border-radius:18px;background:var(--card,#fff);box-shadow:0 10px 26px rgba(11,43,34,.05)}.translated-page-card:hover{border-color:color-mix(in srgb,var(--brand,#0f654b) 30%,var(--line,#dce4df));box-shadow:0 15px 32px rgba(11,43,34,.08)}.translated-page-card__head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.translated-page-card h3{margin:0;font-size:18px}.translated-page-card code{font-size:11px;color:var(--muted,#68776f);word-break:break-all}.translated-page-status{display:flex;gap:8px;flex-wrap:wrap}.translated-page-status span{padding:6px 9px;border-radius:999px;background:var(--surface,#f2f6f3);font-size:11px;font-weight:800}.translated-page-status .ready{background:#e7f5ec;color:#17663f}.translated-page-status .review{background:#fff3d9;color:#805300}.translated-page-status .open{background:#feecea;color:#a32b20}.translated-page-card__actions{display:flex;gap:8px;flex-wrap:wrap}
.vik-guest-list{display:grid;gap:14px}.vik-guest-card{border:1px solid var(--line,#dce4df);border-radius:18px;background:var(--card,#fff);overflow:hidden}.vik-guest-card>summary{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(180px,1fr) minmax(150px,.8fr) auto;gap:16px;align-items:center;padding:17px 18px;cursor:pointer;list-style:none}.vik-guest-card>summary::-webkit-details-marker{display:none}.vik-guest-card>summary:hover{background:var(--surface,#f5f7f6)}.vik-guest-card>summary strong{display:block}.vik-guest-card>summary small{display:block;margin-top:3px;color:var(--muted,#68776f)}.vik-guest-edit{border-top:1px solid var(--line,#dce4df);padding:18px;background:color-mix(in srgb,var(--surface,#f5f7f6) 55%,#fff)}.vik-guest-edit .form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.vik-guest-edit .form-grid .span-2{grid-column:span 2}.vik-guest-edit .form-grid .span-3{grid-column:1/-1}
.studio-save-all{position:relative}.studio-save-all.has-dirty{box-shadow:0 0 0 4px color-mix(in srgb,var(--warning,#b57800) 18%,transparent)}.studio-save-all.has-dirty:after{content:attr(data-dirty-count);display:grid;place-items:center;position:absolute;right:-7px;top:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#b42318;color:#fff;font-size:10px;font-weight:900}.studio-save-state{font-size:12px;color:var(--muted,#68776f)}
.design-contrast-note{padding:12px 14px;border-radius:12px;background:#eaf5ef;color:#174f39;border:1px solid #cce5d7}.design-footer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(max-width:900px){.translated-page-grid{grid-template-columns:1fr}.vik-guest-card>summary{grid-template-columns:1fr 1fr}.vik-guest-edit .form-grid{grid-template-columns:1fr 1fr}.translation-master-switch{grid-template-columns:1fr}}
@media(max-width:640px){.vik-guest-card>summary,.vik-guest-edit .form-grid,.design-footer-grid{grid-template-columns:1fr}.vik-guest-edit .form-grid .span-2,.vik-guest-edit .form-grid .span-3{grid-column:auto}.translated-page-card__head{display:grid}.translated-page-card__actions .btn{flex:1}}


/* =====================================================================
   v4.11.0000 — Fixed Navigation + Contrast Repair
   ===================================================================== */
@media (min-width:921px){
  body.backend-wa .admin-shell{
    display:grid!important;
    grid-template-columns:clamp(220px,var(--hub-sidebar-width,260px),360px) minmax(0,1fr)!important;
    width:100%!important;
    min-height:100dvh!important;
  }
  body.backend-wa .sidebar{
    position:fixed!important;
    left:0!important;top:0!important;bottom:0!important;
    width:clamp(220px,var(--hub-sidebar-width,260px),360px)!important;
    height:100dvh!important;
    min-height:100dvh!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    z-index:90!important;
  }
  body.backend-wa .sidebar .brand-lockup,
  body.backend-wa .sidebar>.brand,
  body.backend-wa .sidebar .sidebar-foot{flex:0 0 auto!important}
  body.backend-wa .sidebar .nav{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    scrollbar-gutter:stable!important;
    padding-right:5px!important;
    padding-bottom:14px!important;
  }
  body.backend-wa .sidebar .nav::-webkit-scrollbar{width:8px}
  body.backend-wa .sidebar .nav::-webkit-scrollbar-track{background:transparent}
  body.backend-wa .sidebar .nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.20);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
  body.backend-wa .sidebar .nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.34);border:2px solid transparent;background-clip:padding-box}
  body.backend-wa .main{
    grid-column:2!important;
    min-width:0!important;
    width:auto!important;
    margin-left:0!important;
    overflow:visible!important;
  }
}

/* Centraal beheer is deliberately a light information panel. Text is always
   explicit so a stale/incorrect global colour cannot turn it white-on-white. */
body.backend-wa .customize-hero.card{
  background:#ffffff!important;
  color:var(--ink,#17211c)!important;
  border:1px solid var(--line,#e6e9e7)!important;
  box-shadow:0 14px 38px rgba(9,35,27,.06)!important;
}
body.backend-wa .customize-hero .card-body{color:var(--ink,#17211c)!important}
body.backend-wa .customize-hero h1,
body.backend-wa .customize-hero h2,
body.backend-wa .customize-hero h3,
body.backend-wa .customize-hero strong{color:var(--ink,#17211c)!important}
body.backend-wa .customize-hero p,
body.backend-wa .customize-hero small{color:var(--muted,#6b746f)!important}
body.backend-wa .customize-hero .eyebrow-hub{color:#8a612c!important}
body.backend-wa .customize-hero img{filter:drop-shadow(0 12px 24px rgba(9,35,27,.10))!important}

/* Defensive readable text for the main light management surfaces. */
body.backend-wa :is(.customize-tile,.translation-master-switch,.translation-engine-status,.translation-release-card,.fresh-translator-banner,.production-score,.audit-check,.audit-kpi){
  color:var(--ink,#17211c);
}
body.backend-wa :is(.customize-tile,.translation-master-switch,.translation-engine-status,.translation-release-card,.fresh-translator-banner,.production-score,.audit-check,.audit-kpi) :is(h1,h2,h3,h4,strong){color:var(--ink,#17211c)}
body.backend-wa :is(.customize-tile,.translation-master-switch,.translation-engine-status,.translation-release-card,.fresh-translator-banner,.production-score,.audit-check,.audit-kpi) :is(p,small,.muted){color:var(--muted,#6b746f)}


/* =====================================================================
   v4.11.0000 — PRO ENTERPRISE CONTROL LAYER
   Final runtime authority for desktop navigation, contrast, responsive UI
   and maintainable enterprise behaviour. Loaded after all compatibility CSS.
   ===================================================================== */
:root{
  --pro-content-max:1760px;
  --pro-focus:0 0 0 3px color-mix(in srgb,var(--green,#0f5136) 24%,transparent);
  --pro-sidebar-separator:color-mix(in srgb,var(--sidebar-text,#edf8f3) 15%,transparent);
}
html{min-height:100%;overflow-y:auto;scrollbar-gutter:stable}
body{min-height:100%;overflow-x:hidden}
body.backend-wa{background:var(--bg,#f5f7f6);color:var(--ink,#17211c)}
body.backend-wa :where(.card,.customize-tile,.translation-master-switch,.vik-guest-card,.studio-shell,.studio-panel,.live-panel,.settings-panel){color:var(--ink,#17211c)}
body.backend-wa :where(.card,.customize-tile,.translation-master-switch,.vik-guest-card,.studio-shell,.studio-panel,.live-panel,.settings-panel) :where(h1,h2,h3,h4,h5,h6,strong,label){color:inherit}
body.backend-wa :where(.card,.customize-tile,.translation-master-switch,.vik-guest-card,.studio-shell,.studio-panel,.live-panel,.settings-panel) :where(p,small,.muted){color:var(--muted,#6b746f)}

/* Desktop: the sidebar owns its column; the document itself remains the main
   scroll container, so the wheel works naturally over the complete workspace. */
@media (min-width:921px){
  body.backend-wa .admin-shell{
    display:grid!important;
    grid-template-columns:clamp(220px,var(--hub-sidebar-width,260px),360px) minmax(0,1fr)!important;
    width:100%!important;min-height:100vh!important;align-items:start!important;
  }
  body.backend-wa .sidebar{
    position:fixed!important;left:0!important;top:0!important;bottom:0!important;
    width:clamp(220px,var(--hub-sidebar-width,260px),360px)!important;height:100vh!important;
    display:flex!important;flex-direction:column!important;overflow:hidden!important;
    background:var(--sidebar-bg,#102a24)!important;color:var(--sidebar-text,#edf8f3)!important;
    border-right:1px solid var(--pro-sidebar-separator)!important;z-index:100!important;
  }
  body.backend-wa .sidebar .brand-lockup,
  body.backend-wa .sidebar .sidebar-foot{
    flex:0 0 auto!important;background:var(--sidebar-bg,#102a24)!important;color:var(--sidebar-text,#edf8f3)!important;
  }
  body.backend-wa .sidebar .nav{
    flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;scrollbar-gutter:stable!important;padding-bottom:20px!important;
  }
  body.backend-wa .sidebar .nav a,
  body.backend-wa .sidebar .nav-group-toggle,
  body.backend-wa .sidebar .sidebar-logout,
  body.backend-wa .sidebar .user-mini strong,
  body.backend-wa .sidebar .user-mini span{color:var(--sidebar-text,#edf8f3)!important}
  body.backend-wa .sidebar .nav a{opacity:.88}
  body.backend-wa .sidebar .nav a:hover{opacity:1;background:color-mix(in srgb,var(--sidebar-text,#edf8f3) 10%,transparent)!important}
  body.backend-wa .sidebar .nav a.active{opacity:1;background:var(--sidebar-active,#1d6b4d)!important;color:#fff!important}
  body.backend-wa .main{grid-column:2!important;min-width:0!important;width:auto!important;margin:0!important;overflow:visible!important;min-height:100vh!important}
  body.backend-wa .page{width:min(100%,var(--hub-page-width,var(--pro-content-max)))!important;max-width:var(--pro-content-max)!important;margin-inline:auto!important}
}

/* Mobile/tablet drawer: no white strip underneath the menu, and no hidden
   page scroll lock after the drawer closes. */
@media (max-width:920px){
  body.backend-wa .sidebar{background:var(--sidebar-bg,#102a24)!important;color:var(--sidebar-text,#edf8f3)!important;overflow:hidden!important}
  body.backend-wa .sidebar .nav{overflow-y:auto!important;min-height:0!important;overscroll-behavior:contain!important}
  body.backend-wa .sidebar .sidebar-foot{background:var(--sidebar-bg,#102a24)!important;color:var(--sidebar-text,#edf8f3)!important}
  body.backend-wa.sidebar-open{overflow:hidden}
}

/* Enterprise surface and control consistency. */
body.backend-wa .topbar{background:var(--topbar-bg,#fff)!important;color:var(--ink,#17211c)!important;border-bottom:1px solid var(--line,#e6e9e7)!important}
body.backend-wa .topbar :where(strong,span,input,button,a){color:inherit}
body.backend-wa .global-search{background:var(--surface,#fff)!important;color:var(--ink,#17211c)!important}
body.backend-wa .global-search input{color:var(--ink,#17211c)!important}
body.backend-wa .global-search input::placeholder{color:var(--muted,#6b746f)!important;opacity:1}
body.backend-wa .card,
body.backend-wa .customize-tile,
body.backend-wa .translation-master-switch,
body.backend-wa .vik-guest-card{background:var(--card,#fff)!important;border-color:var(--line,#e6e9e7)!important}
body.backend-wa .table-wrap{background:var(--card,#fff)}
body.backend-wa .table :where(th,td),body.backend-wa .table-wrap :where(th,td){color:var(--ink,#17211c)}
body.backend-wa .table :where(th),body.backend-wa .table-wrap :where(th){background:color-mix(in srgb,var(--surface,#fff) 92%,var(--green,#0f5136) 8%)}
body.backend-wa :where(input,select,textarea,.input,.select,.textarea){color:var(--ink,#17211c);background:var(--surface,#fff);border-color:var(--line,#dce4df)}
body.backend-wa :where(input,select,textarea,.input,.select,.textarea)::placeholder{color:var(--muted,#6b746f);opacity:1}
body.backend-wa :where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--green,#0f5136)!important;outline-offset:2px;box-shadow:var(--pro-focus)!important}

/* Website Studio / design centre should never inherit white text onto light
   editor panels, including live preview metadata and agenda controls. */
body.backend-wa :where(.studio-shell,.studio-panel,.studio-sidebar,.studio-workspace,.studio-properties,.design-footer-grid,.translation-list,.vik-guest-edit){color:var(--ink,#17211c)}
body.backend-wa :where(.studio-shell,.studio-panel,.studio-sidebar,.studio-workspace,.studio-properties,.design-footer-grid,.translation-list,.vik-guest-edit) :where(h1,h2,h3,h4,strong,label,summary){color:var(--ink,#17211c)}
body.backend-wa :where(.studio-shell,.studio-panel,.studio-sidebar,.studio-workspace,.studio-properties,.design-footer-grid,.translation-list,.vik-guest-edit) :where(p,small,.muted){color:var(--muted,#6b746f)}

/* Large displays get breathing room; small displays stack without horizontal
   clipping. */
@media (min-width:1500px){body.backend-wa .page{padding-inline:clamp(22px,2.1vw,40px)!important}}
@media (max-width:760px){
  body.backend-wa .page{padding-inline:14px!important}
  body.backend-wa .page-head{gap:12px!important}
  body.backend-wa .page-head .actions{width:100%}
  body.backend-wa .page-head .actions>.btn{flex:1 1 150px}
  body.backend-wa .customize-grid{grid-template-columns:1fr!important}
  body.backend-wa .table-wrap{margin-inline:0;max-width:100%}
}

/* Reduced motion is respected globally. */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
