
/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root{
  /* Colour — neutrals */
  --c-ink:#2b2724; --c-ink-2:#5a534c; --c-ink-3:#6f675f;
  --c-paper:#ffffff; --c-sand-50:#f8f5ef; --c-sand-100:#efe9df; --c-sand-200:#e4dccd;
  --c-line:#e6e0d6; --c-line-strong:#cbc2b4;
  /* Colour — brand */
  --c-gold:#8f6d37;          /* eyebrow text, accents on white (4.7:1) */
  --c-gold-soft:#c9a86a;     /* decorative lines, icons, text on night */
  --c-primary:#33449b; --c-primary-hover:#27357f; --c-primary-tint:#eceefa; --c-primary-tint-hover:#dde1f5;
  --c-primary-ring:rgba(51,68,155,.28);
  --c-night:#1c2233; --c-night-2:#262e44; --c-night-3:#141927;
  --c-on-night:#efe9df; --c-on-night-2:#bdb7ab;
  /* Colour — semantic states */
  --c-success:#2f7a4f; --c-success-bg:#e8f3ec; --c-success-line:#b9dcc6;
  --c-warning:#8a5a00; --c-warning-bg:#fbf1dc; --c-warning-line:#ecd49c; --c-warning-icon:#b07a10;
  --c-danger:#b3261e;  --c-danger-bg:#fbe9e7;  --c-danger-line:#f0c4bf;
  --c-info:#33449b;    --c-info-bg:#eceefa;    --c-info-line:#c9cff0;
  --c-neutral:#5d554b; --c-neutral-bg:#f1eee9; --c-neutral-line:#d9d2c7;
  --c-focus:#33449b;
  /* Typography */
  --font-serif:"Iowan Old Style","Charter","Bitstream Charter","Sitka Text",Cambria,Georgia,serif;
  --font-sans:system-ui,-apple-system,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --fs-xs:12px; --fs-sm:14px; --fs-base:15px; --fs-md:16px; --fs-lg:18px;
  --fs-xl:22px; --fs-2xl:28px; --fs-3xl:32px; --fs-4xl:44px;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  --lh-tight:1.2; --lh-base:1.6;
  /* Spacing */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:72px; --sp-9:96px;
  /* Radius */
  --r-0:0; --r-1:2px; --r-2:4px; --r-pill:999px;
  /* Shadows */
  --sh-card:0 6px 24px rgba(28,34,51,.08);
  --sh-raised:0 14px 44px rgba(28,34,51,.16);
  --sh-inset:inset 0 0 0 1px var(--c-line);
  /* Content widths */
  --w-text:640px; --w-narrow:760px; --w-content:1140px; --w-wide:1240px;
  /* Breakpoints (reference values — CSS variables cannot be used inside queries;
     the same literals are repeated in the @container rules below) */
  --bp-sm:600px; --bp-md:960px; --bp-lg:1200px;
}

/* =========================================================
   2. BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--c-ink);background:#e9e7e3;-webkit-font-smoothing:antialiased}
a{color:var(--c-primary)} a:hover{color:var(--c-primary-hover)}
:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}
.on-dark :focus-visible,.header--overlay :focus-visible,.footer :focus-visible,.theme-night :focus-visible{outline-color:#fff}
h1,h2,h3,h4{text-wrap:balance}
p{text-wrap:pretty}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}

/* =========================================================
   3. SITE LAYOUT PRIMITIVES
   ========================================================= */
.site{container:site / inline-size;background:var(--c-paper);color:var(--c-ink);position:relative}
.container{width:100%;max-width:calc(var(--w-content) + 48px);margin-inline:auto;padding-inline:24px}
.container--wide{max-width:calc(var(--w-wide) + 48px)}
.container--narrow{max-width:calc(var(--w-narrow) + 48px)}
.section{padding-block:var(--sp-8)}
.section--tight{padding-block:var(--sp-7)}
.section--sand{background:var(--c-sand-50)}
.section--top0{padding-top:0}
.center{text-align:center}
.stack{display:flex;flex-direction:column;gap:var(--sp-4)}
.stack--lg{gap:var(--sp-5)}
.row{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}
.row--between{justify-content:space-between}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}
.muted{color:var(--c-ink-2)}
.small{font-size:var(--fs-sm)}
.xsmall{font-size:13px}
.mono,.ref{font-family:var(--font-mono)}
.ref{font-weight:600;letter-spacing:.02em}
.nowrap{white-space:nowrap}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-4{margin-top:var(--sp-4)}.mt-5{margin-top:var(--sp-5)}.mt-6{margin-top:var(--sp-6)}.mt-7{margin-top:var(--sp-7)}

/* Typography */
.eyebrow{display:block;font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold);margin:0 0 6px;line-height:1.4}
.eyebrow--lined{display:flex;align-items:center;justify-content:center;gap:18px;max-width:760px;margin:0 auto var(--sp-6);font-size:13px}
.eyebrow--lined::before,.eyebrow--lined::after{content:"";flex:1;height:1px;background:var(--c-gold-soft)}
.h-display{font-family:var(--font-serif);font-weight:var(--fw-regular);font-size:var(--fs-4xl);line-height:1.18;margin:0}
.h-section{font-family:var(--font-serif);font-weight:var(--fw-regular);font-size:var(--fs-3xl);line-height:1.25;margin:0 0 var(--sp-4)}
.h-sub{font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--fs-xl);line-height:1.3;margin:0 0 var(--sp-3)}
.h-small{font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:1.35;margin:0 0 var(--sp-2)}
.lead{max-width:740px;margin:0 auto;color:var(--c-ink-2);font-size:var(--fs-md)}
.prose p{margin:0 0 14px}
.prose a{text-decoration:underline;text-underline-offset:2px}
.prose h2{font-family:var(--font-serif);font-weight:400;font-size:var(--fs-2xl);margin:var(--sp-6) 0 var(--sp-3)}
.prose h3{font-size:var(--fs-lg);font-weight:600;margin:var(--sp-5) 0 var(--sp-2)}
.prose ul{padding-left:20px;margin:0 0 14px}

/* Image placeholders (replace with <img> — see asset manifest) */
.ph{position:relative;background:repeating-linear-gradient(135deg,#e9e4db 0 10px,#e1dbcf 10px 20px);min-height:80px;overflow:hidden}
.ph::after{content:attr(data-ph);position:absolute;left:10px;bottom:10px;font:11px/1.35 var(--font-mono);color:#4d463e;background:rgba(255,255,255,.88);padding:3px 7px;max-width:calc(100% - 20px)}
.ph--dark{background:repeating-linear-gradient(135deg,#2c3247 0 10px,#272c40 10px 20px)}
.ph--dark::after{background:rgba(10,12,20,.7);color:#e8e4dc}
.ph--top::after{left:auto;right:10px;bottom:10px}
.ph--nolabel::after{display:none}
.ratio-16x9{aspect-ratio:16/9}.ratio-3x2{aspect-ratio:3/2}.ratio-4x3{aspect-ratio:4/3}.ratio-1x1{aspect-ratio:1/1}.ratio-21x9{aspect-ratio:21/9}

/* =========================================================
   4. COMPONENTS
   ========================================================= */
/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border:1px solid transparent;border-radius:var(--r-1);font:var(--fw-semibold) var(--fs-base)/1.2 var(--font-sans);text-decoration:none;cursor:pointer;background:none;color:inherit;text-align:center}
.btn--primary{background:var(--c-primary);color:#fff}
.btn--primary:hover,.btn--primary.is-hover{background:var(--c-primary-hover);color:#fff}
.btn--tint{background:var(--c-primary-tint);color:var(--c-primary)}
.btn--tint:hover,.btn--tint.is-hover{background:var(--c-primary-tint-hover);color:var(--c-primary-hover)}
.btn--outline{background:#fff;border-color:var(--c-primary);color:var(--c-primary)}
.btn--outline:hover,.btn--outline.is-hover{background:var(--c-primary-tint);color:var(--c-primary-hover)}
.btn--ghost{color:var(--c-primary);padding-inline:6px;text-decoration:underline;text-underline-offset:3px}
.btn--ghost:hover{color:var(--c-primary-hover)}
.btn--light{background:#fff;color:var(--c-ink)}
.btn--light:hover{background:var(--c-sand-100);color:var(--c-ink)}
.btn--danger{background:var(--c-danger);color:#fff}
.btn--danger:hover{background:#921d17;color:#fff}
.btn--block{width:100%}
.btn--lg{min-height:52px;padding-inline:28px;font-size:var(--fs-md)}
.btn--sm{min-height:36px;padding:6px 14px;font-size:var(--fs-sm)}
.btn.is-focus{outline:2px solid var(--c-focus);outline-offset:2px}
.btn:disabled,.btn[aria-disabled="true"]{background:#e6e2db;color:#7c756c;border-color:transparent;cursor:not-allowed}
.btn.is-loading::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Form fields */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-ink)}
.field__label .opt{font-weight:400;color:var(--c-ink-2)}
.field__hint{font-size:13px;color:var(--c-ink-2);margin:0}
.field__error{display:none;align-items:flex-start;gap:6px;font-size:13px;font-weight:var(--fw-semibold);color:var(--c-danger);margin:0}
.field__error::before{content:"!";flex:none;display:grid;place-items:center;width:16px;height:16px;margin-top:1px;border-radius:50%;background:var(--c-danger);color:#fff;font-size:11px}
.field.is-error .field__error{display:flex}
.input,.select,.textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--c-line-strong);border-radius:var(--r-1);background:#fff;font:inherit;font-size:var(--fs-base);color:var(--c-ink)}
.input::placeholder,.textarea::placeholder{color:#857d73}
.input:hover,.select:hover,.textarea:hover,.input.is-hover{border-color:#9c9386}
.input:focus,.select:focus,.textarea:focus,.input.is-focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-ring)}
.field.is-error .input,.field.is-error .select,.field.is-error .textarea{border-color:var(--c-danger);box-shadow:inset 0 0 0 1px var(--c-danger)}
.input:disabled,.select:disabled,.textarea:disabled{background:#f3f1ed;color:#7c756c;border-color:var(--c-line);cursor:not-allowed}
.select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,var(--c-ink-2) 50%),linear-gradient(135deg,var(--c-ink-2) 50%,transparent 50%);background-position:calc(100% - 19px) 52%,calc(100% - 14px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.textarea{min-height:110px;resize:vertical}
.datefield{position:relative}
.datefield .input{padding-right:40px}
.datefield::after{content:"";position:absolute;right:14px;top:50%;width:14px;height:13px;border:1.5px solid var(--c-ink-2);border-top-width:3px;border-radius:2px;transform:translateY(-50%);pointer-events:none}
.phone{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form-grid .span-2{grid-column:1/-1}
.date-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);cursor:pointer;line-height:1.45}
.check input{width:20px;height:20px;accent-color:var(--c-primary);margin:0;flex:none}
.check input:disabled+span{color:#857d73}
.field.is-error .check input{outline:2px solid var(--c-danger);outline-offset:1px}
fieldset.fset{border:0;padding:0;margin:0 0 var(--sp-6);min-width:0}
fieldset.fset>legend{padding:0;margin-bottom:var(--sp-4)}

/* Guest stepper */
.stepper{display:inline-flex;align-items:center;border:1px solid var(--c-line-strong);border-radius:var(--r-1);background:#fff;flex:none}
.stepper button{width:44px;height:44px;border:0;background:none;font:400 22px/1 var(--font-sans);color:var(--c-primary);cursor:pointer}
.stepper button:hover{background:var(--c-primary-tint)}
.stepper button:disabled{color:#b9b2a7;background:none;cursor:not-allowed}
.stepper output{min-width:34px;text-align:center;font-weight:var(--fw-semibold)}
.guest-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--c-line)}
.guest-row:last-child{border-bottom:0}
.guest-row__label{font-size:var(--fs-sm);line-height:1.35}
.guest-row__label strong{display:block;font-size:var(--fs-base)}
.guest-row__label span{color:var(--c-ink-2)}
.field.is-error .stepper{border-color:var(--c-danger)}

/* Chips / filters */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border:1px solid var(--c-line-strong);background:#fff;border-radius:var(--r-pill);font:var(--fw-medium) var(--fs-sm)/1.2 var(--font-sans);color:var(--c-ink);cursor:pointer}
.chip:hover,.chip.is-hover{border-color:var(--c-primary);color:var(--c-primary)}
.chip[aria-pressed="true"]{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.chip[aria-pressed="true"]::before{content:"✓";font-size:12px}
.chip:disabled{border-style:dashed;color:#857d73;background:#faf8f5;cursor:not-allowed}
.filters{display:flex;flex-direction:column;gap:var(--sp-5)}
.filters fieldset{border:0;padding:0 0 var(--sp-5);margin:0;border-bottom:1px solid var(--c-line);min-width:0}
.filters legend{font-weight:var(--fw-semibold);font-size:var(--fs-md);margin-bottom:12px;padding:0}
.range{display:flex;flex-direction:column;gap:6px}
.range input{width:100%;accent-color:var(--c-primary)}
.range__vals{display:flex;justify-content:space-between;font-size:13px;color:var(--c-ink-2)}

/* Cards */
.card{background:#fff;box-shadow:var(--sh-card);padding:8px;display:flex;flex-direction:column;min-width:0}
.card__media{aspect-ratio:16/9}
.card__body{padding:20px 12px 12px;display:flex;flex-direction:column;flex:1}
.card__title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);margin:0 0 12px;line-height:1.3}
.card__title a{color:inherit;text-decoration:none}
.card__title a:hover{text-decoration:underline}
.card__text{margin:0 0 12px;color:var(--c-ink-2)}
.card__actions{margin-top:auto;padding-top:var(--sp-5)}
.card--sm .card__title{font-size:var(--fs-lg)}
.meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-sm);color:var(--c-ink-2);margin:0 0 12px;padding:0;list-style:none}
.meta li{display:flex;align-items:center;gap:6px}
.meta li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--c-gold-soft);margin-right:10px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none}
.tag{display:inline-flex;align-items:center;font-size:12.5px;padding:3px 9px;background:var(--c-sand-100);color:var(--c-ink);border-radius:var(--r-1)}
.price-from{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:14px;border-top:1px solid var(--c-line)}
.price-from small{font-size:13px;color:var(--c-ink-2)}
.price-from strong{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}

/* Gallery */
.gallery__main{position:relative;aspect-ratio:16/9}
.gallery__count{position:absolute;right:12px;top:12px;background:rgba(20,25,39,.78);color:#fff;font-size:13px;padding:3px 10px;border-radius:var(--r-pill);z-index:1}
.gallery__thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}
.gallery__thumbs button{display:block;padding:0;border:2px solid transparent;background:none;cursor:pointer;aspect-ratio:4/3}
.gallery__thumbs button .ph{height:100%;min-height:0}
.gallery__thumbs button:hover{border-color:var(--c-gold-soft)}
.gallery__thumbs button[aria-current="true"]{border-color:var(--c-primary)}

/* Price summary */
.psum{margin:0;font-size:var(--fs-sm)}
.psum__group{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-gold);font-weight:var(--fw-semibold);padding:14px 0 2px}
.psum__row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:9px 0;border-bottom:1px solid var(--c-line)}
.psum__row dt{margin:0}
.psum__calc{display:block;font-size:12.5px;color:var(--c-ink-2);margin-top:1px}
.psum__row dd{margin:0;font-weight:var(--fw-semibold);white-space:nowrap}
.psum__total{border-bottom:0;padding-top:14px;font-size:var(--fs-md);font-weight:var(--fw-semibold)}
.psum__total dd{font-size:var(--fs-xl)}
.psum__basis{font-size:12.5px;color:var(--c-ink-2);margin:2px 0 0}

/* Notices */
.notice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid;font-size:var(--fs-sm);line-height:1.5;color:var(--c-ink)}
.notice p{margin:0}
.notice ul{margin:4px 0 0;padding-left:18px}
.notice__icon{flex:none;width:20px;height:20px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 var(--font-sans);color:#fff}
.notice__title{font-weight:var(--fw-bold);display:block;margin-bottom:2px}
.notice--info{background:var(--c-info-bg);border-color:var(--c-info-line)} .notice--info .notice__icon{background:var(--c-info)}
.notice--warning{background:var(--c-warning-bg);border-color:var(--c-warning-line)} .notice--warning .notice__icon{background:var(--c-warning-icon)}
.notice--danger{background:var(--c-danger-bg);border-color:var(--c-danger-line)} .notice--danger .notice__icon{background:var(--c-danger)}
.notice--success{background:var(--c-success-bg);border-color:var(--c-success-line)} .notice--success .notice__icon{background:var(--c-success)}
.notice--plain{background:var(--c-sand-50);border-color:var(--c-line)} .notice--plain .notice__icon{background:var(--c-gold)}

/* Status badges — always text + colour + shape */
.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 8px;border-radius:var(--r-pill);font-size:12.5px;font-weight:var(--fw-semibold);line-height:1.5;border:1px solid;white-space:nowrap}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.badge--new{color:var(--c-info);background:var(--c-info-bg);border-color:var(--c-info-line)}
.badge--review{color:var(--c-warning);background:var(--c-warning-bg);border-color:var(--c-warning-line)}
.badge--confirmed{color:var(--c-success);background:var(--c-success-bg);border-color:var(--c-success-line)}
.badge--declined{color:var(--c-danger);background:var(--c-danger-bg);border-color:var(--c-danger-line)}
.badge--cancelled{color:var(--c-neutral);background:var(--c-neutral-bg);border-color:var(--c-neutral-line)}
.badge--cancelled::before{background:transparent;border:1.5px solid currentColor}
.badge--completed{color:var(--c-night);background:#e6e8ee;border-color:#c8ccd8}
.badge--pay{background:#fff}
.badge--pay::before{border-radius:1px}
.badge--unpaid{color:var(--c-warning);border-color:var(--c-warning-line)}
.badge--unpaid::before{background:transparent;border:1.5px solid currentColor}
.badge--partial{color:var(--c-info);border-color:var(--c-info-line)}
.badge--partial::before{background:linear-gradient(90deg,currentColor 50%,transparent 50%);border:1.5px solid currentColor;width:9px;height:9px}
.badge--paid{color:var(--c-success);border-color:var(--c-success-line)}
.badge--refunded{color:var(--c-neutral);border-color:var(--c-neutral-line)}

/* Request stepper */
.rstepper{display:flex;list-style:none;padding:0;margin:0 0 var(--sp-6);counter-reset:s}
.rstepper li{flex:1;display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--c-ink-2);padding:12px 8px 12px 0;border-bottom:3px solid var(--c-line);counter-increment:s;min-width:0}
.rstepper li::before{content:counter(s);width:28px;height:28px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-weight:700;flex:none;font-size:13px}
.rstepper li.is-done{color:var(--c-ink);border-bottom-color:var(--c-gold-soft)}
.rstepper li.is-done::before{content:"✓";background:var(--c-gold);border-color:var(--c-gold);color:#fff}
.rstepper li[aria-current="step"]{color:var(--c-primary);border-bottom-color:var(--c-primary);font-weight:var(--fw-semibold)}
.rstepper li[aria-current="step"]::before{background:var(--c-primary);border-color:var(--c-primary);color:#fff}

/* Tables & pagination */
.table-wrap{overflow-x:auto;border:1px solid var(--c-line);background:#fff}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.table th{text-align:left;font-weight:var(--fw-semibold);padding:10px 14px;border-bottom:1px solid var(--c-line-strong);background:var(--c-sand-50);white-space:nowrap}
.table td{padding:12px 14px;border-bottom:1px solid var(--c-line);vertical-align:top}
.table tbody tr:hover td{background:#fbfaf7}
.table tbody tr[aria-selected="true"] td{background:var(--c-primary-tint)}
.table .num{text-align:right;white-space:nowrap}
.pagination{display:flex;gap:4px;list-style:none;padding:0;margin:var(--sp-4) 0 0;align-items:center;flex-wrap:wrap}
.pagination a,.pagination span{min-width:40px;height:40px;padding:0 10px;display:grid;place-items:center;border:1px solid var(--c-line);color:var(--c-ink);text-decoration:none;font-size:var(--fs-sm);background:#fff}
.pagination a:hover{border-color:var(--c-primary);color:var(--c-primary)}
.pagination [aria-current="page"]{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.pagination .is-disabled{color:#9a9288;background:#f6f4f0}

/* Calendar cells (full calendar delivered with the staff panel) */
.cal-cell{min-height:44px;padding:6px 8px;font-size:12.5px;line-height:1.3;border:1px solid var(--c-line);background:#fff}
.cal-cell--confirmed{background:var(--c-success-bg);border-color:var(--c-success-line);color:#1f5a38;font-weight:600}
.cal-cell--request{background:repeating-linear-gradient(135deg,#fff 0 6px,var(--c-warning-bg) 6px 12px);border:1.5px dashed var(--c-warning-icon);color:var(--c-warning);font-weight:600}
.cal-cell--blocked{background:repeating-linear-gradient(45deg,#ece9e4 0 4px,#dcd7cf 4px 8px);color:var(--c-neutral);font-weight:600}
.cal-cell--conflict{background:var(--c-danger-bg);border:2px solid var(--c-danger);color:var(--c-danger);font-weight:700}

/* Key/value lists & checklists */
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 20px;font-size:var(--fs-sm);margin:0}
.kv dt{color:var(--c-ink-2)} .kv dd{margin:0;font-weight:var(--fw-semibold)}
.specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--c-line)}
.specs>div{padding:14px 16px 14px 0;border-bottom:1px solid var(--c-line)}
.specs dt{font-size:13px;color:var(--c-ink-2)} .specs dd{margin:2px 0 0;font-weight:var(--fw-semibold)}
.checklist,.xlist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.checklist--1,.xlist--1{grid-template-columns:1fr}
.checklist li,.xlist li{position:relative;padding-left:26px}
.checklist li::before{content:"";position:absolute;left:3px;top:.42em;width:11px;height:6px;border-left:2px solid var(--c-gold);border-bottom:2px solid var(--c-gold);transform:rotate(-45deg)}
.xlist li::before{content:"×";position:absolute;left:2px;top:-.1em;font-size:20px;color:var(--c-ink-2)}

/* =========================================================
   5. SITE CHROME — header, mobile menu, footer
   ========================================================= */
.header{position:relative;z-index:5}
.header a{color:inherit;text-decoration:none}
.header--overlay{color:#fff;background:linear-gradient(180deg,rgba(12,15,25,.55),rgba(12,15,25,0))}
.header--solid{background:#fff;color:var(--c-ink);border-bottom:1px solid var(--c-line)}
.header__inner{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"brand util" "nav nav";align-items:center;column-gap:24px;padding-block:14px 8px}
.header__util{grid-area:util;justify-self:end;display:flex;align-items:center;gap:20px;font-size:var(--fs-sm)}
.header__util a:not(.btn):hover{text-decoration:underline}
.header__nav{grid-area:nav;display:flex;flex-wrap:wrap;gap:2px 28px;margin-top:16px;font-size:var(--fs-md)}
.header__nav a{padding:6px 0 8px;border-bottom:2px solid transparent}
.header__nav a:hover{border-bottom-color:currentColor}
.header__nav a[aria-current="page"]{border-bottom-color:var(--c-gold-soft)}
.header--solid .header__nav a[aria-current="page"]{border-bottom-color:var(--c-primary);color:var(--c-primary)}
.brand{grid-area:brand;display:inline-flex;align-items:center;gap:14px;color:inherit;text-decoration:none}
.brand__mark{position:relative;width:24px;height:24px;margin:4px;border:1.5px solid currentColor;transform:rotate(45deg);flex:none}
.brand__mark::after{content:"";position:absolute;inset:6px;background:var(--c-gold-soft)}
.brand__text{display:flex;flex-direction:column;border-left:1px solid currentColor;padding-left:14px;line-height:1.05}
.brand__sub{font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.brand__name{font-size:22px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;margin-top:4px}
.brand--stacked{flex-direction:column;gap:16px}
.brand--stacked .brand__text{border-left:0;padding-left:0;align-items:center}
.langswitch{display:inline-flex;border:1px solid currentColor;border-radius:var(--r-1)}
.langswitch button{background:none;border:0;color:inherit;font:600 12px/1 var(--font-sans);padding:6px 9px;min-width:34px;min-height:28px;cursor:pointer}
.header--overlay .langswitch [aria-pressed="true"]{background:#fff;color:var(--c-ink)}
.header--solid .langswitch [aria-pressed="true"],.mobile-menu .langswitch [aria-pressed="true"]{background:var(--c-ink);color:#fff}
.burger{display:none;grid-area:util;justify-self:end;align-items:center;gap:10px;min-height:44px;padding:0 4px 0 12px;border:0;background:none;color:inherit;font:600 var(--fs-sm) var(--font-sans);cursor:pointer}
.burger__icon{width:20px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
.burger[aria-expanded="true"] .burger__icon{background:transparent;box-shadow:none;position:relative}
.burger[aria-expanded="true"] .burger__icon::before,.burger[aria-expanded="true"] .burger__icon::after{content:"";position:absolute;left:0;top:0;width:20px;height:2px;background:currentColor;transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger__icon::after{transform:rotate(-45deg)}
.mobile-menu{position:absolute;left:0;right:0;top:100%;background:#fff;color:var(--c-ink);padding:4px 24px 28px;box-shadow:var(--sh-raised);border-top:1px solid var(--c-line)}
.mobile-menu nav a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--c-line);font-family:var(--font-serif);font-size:20px}
.mobile-menu nav a::after{content:"›";color:var(--c-gold)}
.mobile-menu nav a[aria-current="page"]{color:var(--c-primary)}
.mobile-menu__foot{display:flex;flex-direction:column;gap:14px;margin-top:20px}
.mobile-menu__foot .row a{font-size:var(--fs-sm)}

.footer{background:var(--c-night);color:var(--c-on-night);position:relative}
.footer a{color:var(--c-on-night);text-decoration:none}
.footer a:hover{color:#fff;text-decoration:underline}
.footer__totop{position:absolute;left:24px;top:0;background:var(--c-night-2);color:var(--c-on-night);border:0;font:600 13px var(--font-sans);padding:8px 14px;border-radius:0 0 var(--r-1) var(--r-1);cursor:pointer}
.footer__top{padding:48px 0 28px;display:flex;justify-content:center;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__badges{display:flex;justify-content:center;gap:56px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__badge{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px;text-align:center}
.footer__badge i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--c-gold-soft)}
.footer__badge i::after{content:"";width:12px;height:12px;border:2px solid var(--c-night);transform:rotate(45deg)}
.footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;max-width:900px;margin:0 auto;padding:44px 0}
.footer h3{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin:0 0 14px;color:#fff}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:var(--fs-sm)}
.footer__contact p{margin:0 0 4px;font-size:13px;color:var(--c-on-night-2)}
.footer__contact .gold{color:var(--c-gold-soft)}
.footer__contact address{font-style:normal;font-size:var(--fs-sm);margin:6px 0 10px}
.footer__social{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 32px;padding:8px 0 32px;font-size:var(--fs-sm)}
.footer__legal{background:var(--c-night-3);padding:14px 0;font-size:12.5px;color:var(--c-on-night-2)}
.footer__legal .container{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;align-items:center}
.footer__legal ul{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px}
.footer__powered{color:var(--c-on-night-2)}
.footer__powered a{color:var(--c-on-night-2)}

/* =========================================================
   6. PAGE PATTERNS — public website
   ========================================================= */
.hero{position:relative;min-height:620px;display:flex;flex-direction:column;color:#fff;background:var(--c-night)}
.hero>.ph{position:absolute;inset:0}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,15,25,0) 45%,rgba(12,15,25,.6) 100%);pointer-events:none}
.hero>.header{z-index:6}
.hero__content{position:relative;z-index:2;margin-top:auto;padding-bottom:104px}
.hero__title{color:#fff;max-width:820px}
.hero__lead{max-width:620px;font-size:var(--fs-md);margin:14px 0 0;color:#f1ede6}
.hero--page{min-height:440px}
.hero--page .hero__content{padding-bottom:56px}

.searchbox{position:relative;z-index:3;background:#fff;box-shadow:var(--sh-raised);padding:16px;margin-top:-64px}
.searchbox__tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--c-line);overflow-x:auto}
.searchbox__tab{border:0;background:none;padding:6px 14px 10px;font:600 var(--fs-sm) var(--font-sans);color:var(--c-ink-2);border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.searchbox__tab:hover{color:var(--c-ink)}
.searchbox__tab[aria-selected="true"]{color:var(--c-primary);border-bottom-color:var(--c-primary)}
.searchbox__row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:stretch}
.searchbox__row--act{grid-template-columns:repeat(3,minmax(0,1fr)) auto}
.sfield{background:#f6f5f3;border:1px solid var(--c-line);padding:8px 14px;display:flex;flex-direction:column;justify-content:center;min-height:58px;margin-left:-1px;min-width:0}
.sfield:first-child{margin-left:0}
.sfield:focus-within{border-color:var(--c-primary);box-shadow:inset 0 0 0 1px var(--c-primary);position:relative;z-index:1}
.sfield label{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}
.sfield input,.sfield select{border:0;background:transparent;font:inherit;font-size:var(--fs-sm);color:var(--c-ink-2);padding:0;width:100%;outline:none}
.searchbox__row>.btn{min-height:58px;margin-left:16px}
.searchbox__note{display:flex;gap:8px;font-size:13px;color:var(--c-ink-2);margin:12px 0 0}

.reasons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;margin:var(--sp-7) 0 0;padding:0;list-style:none;text-align:center}
.reason__icon{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 12px;border:1.5px solid var(--c-gold-soft);border-radius:50%}
.reason__icon::after{content:"";width:14px;height:14px;border:1.5px solid var(--c-gold);transform:rotate(45deg)}
.reason__icon--circle::after{border-radius:50%;transform:none}
.reason__icon--square::after{transform:none}
.reasons strong{display:block;font-size:var(--fs-sm);margin-bottom:4px}
.reasons p{margin:0;font-size:13px;color:var(--c-ink-2)}

.statement{text-align:center;padding-top:var(--sp-8)}
.ornament{width:22px;height:22px;border:1.5px solid var(--c-gold-soft);transform:rotate(45deg);margin:0 auto 28px}
.statement__text{font-family:var(--font-serif);font-weight:400;font-size:var(--fs-2xl);line-height:1.35;max-width:780px;margin:0 auto}
.statement__text em{font-style:normal;color:var(--c-gold)}
.vline{width:1px;height:64px;background:var(--c-gold-soft);margin:32px auto 0}

.features{background:linear-gradient(180deg,#fff 0 260px,transparent 260px),repeating-linear-gradient(45deg,rgba(143,109,55,.06) 0 1px,transparent 1px 24px),repeating-linear-gradient(-45deg,rgba(143,109,55,.06) 0 1px,transparent 1px 24px),var(--c-sand-50);padding-bottom:var(--sp-8)}
.feature{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;padding-top:var(--sp-7)}
.feature__media{grid-column:4/13;grid-row:1;aspect-ratio:16/9.6}
.feature__panel{grid-column:1/6;grid-row:1;position:relative;z-index:1;background:#fff;box-shadow:var(--sh-card);padding:32px;margin-top:80px}
.feature--right .feature__media{grid-column:1/10}
.feature--right .feature__panel{grid-column:8/13;margin-top:-60px}
.feature__panel p{font-size:var(--fs-sm);margin:0 0 12px}
.feature__panel .btn{margin-top:10px}
.feature-full{position:relative;min-height:600px;display:flex;align-items:center;margin-top:var(--sp-8)}
.feature-full>.ph{position:absolute;inset:0}
.feature-full .feature__panel{max-width:460px;margin:0}

.process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:var(--sp-7) 0 0;padding:0;list-style:none;counter-reset:p}
.process li{counter-increment:p;text-align:center}
.process li::before{content:counter(p);display:grid;place-items:center;width:46px;height:46px;margin:0 auto 14px;border:1.5px solid var(--c-gold-soft);border-radius:50%;font-family:var(--font-serif);font-size:20px;color:var(--c-gold)}
.process h3{font-size:var(--fs-md);font-weight:700;margin:0 0 6px}
.process p{font-size:var(--fs-sm);color:var(--c-ink-2);margin:0}
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:150px;gap:8px;margin-top:var(--sp-7)}
.mosaic>:nth-child(1){grid-column:span 6;grid-row:span 2}
.mosaic>:nth-child(2){grid-column:span 4;grid-row:span 2}
.mosaic>:nth-child(3){grid-column:span 2;grid-row:span 2}
.mosaic>:nth-child(n+4){grid-column:span 3}

.quote{background:#fff;box-shadow:var(--sh-card);padding:28px;display:flex;flex-direction:column;gap:18px;margin:0}
.quote blockquote{margin:0;font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.5}
.quote figcaption{font-size:var(--fs-sm);color:var(--c-ink-2);margin-top:auto}
.quote figcaption strong{color:var(--c-ink);display:block}

.location{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:48px;align-items:center}
.location address{font-style:normal;margin:0 0 16px}

.page-head{background:var(--c-sand-50);padding:28px 0 36px;border-bottom:1px solid var(--c-line)}
.page-head .h-section{font-size:var(--fs-3xl);margin-bottom:8px}
.page-head .lead{margin:0;max-width:680px}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--c-ink-2);list-style:none;padding:0;margin:0 0 18px}
.breadcrumb li+li::before{content:"/";margin-right:8px;color:var(--c-line-strong)}
.breadcrumb a{color:var(--c-ink-2)}
.hero .breadcrumb,.hero .breadcrumb a{color:#ece7de}

.listing{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;align-items:start}
.listing__bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.listing__bar .select{width:auto;min-width:200px}
.listing__results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.listing__results--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.listing__empty{display:none}
.is-empty .listing__results{display:none}
.is-empty .listing__empty{display:block}
.empty{text-align:center;padding:56px 24px;border:1px dashed var(--c-line-strong);background:var(--c-sand-50)}
.empty .ornament{margin-bottom:22px}
.empty .row{justify-content:center;margin-top:18px}

.detail{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:48px;align-items:start}
.detail__aside{position:sticky;top:24px}
.dsection{padding:32px 0;border-top:1px solid var(--c-line)}
.dsection:first-child{border-top:0;padding-top:0}
.dsection>.h-sub{margin-bottom:16px}
.dtitle{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.dtitle .h-section{margin:0}
.reqcard{background:#fff;box-shadow:var(--sh-raised);padding:24px;display:flex;flex-direction:column;gap:16px}
.reqcard__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--c-line)}
.reqcard__head .h-small{margin:0}
.reqcard__price{font-size:13px;color:var(--c-ink-2)}
.reqcard__price strong{font-size:var(--fs-lg);color:var(--c-ink)}
.reqcard .over-msg{display:none}
.reqcard.is-invalid .over-msg{display:flex}
.reqcard.is-invalid .psum-wrap{opacity:.45}
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.policy-box{background:var(--c-sand-50);border:1px solid var(--c-line);padding:20px}
.policy-box ul{margin:0;padding-left:18px;font-size:var(--fs-sm)}
.policy-box li+li{margin-top:6px}

.programme{list-style:none;padding:0;margin:0}
.programme li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--c-line)}
.programme time{font-family:var(--font-serif);font-size:var(--fs-lg);color:var(--c-gold)}
.programme strong{display:block}
.programme span{font-size:var(--fs-sm);color:var(--c-ink-2)}
.programme__day{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--c-gold);padding:18px 0 4px;border-bottom:0!important;display:block!important}

/* Bivouac identity — same system, night palette */
.theme-night{background:var(--c-night);color:var(--c-on-night)}
.theme-night .eyebrow{color:var(--c-gold-soft)}
.theme-night .muted,.theme-night .lead{color:var(--c-on-night-2)}
.theme-night a:not(.btn){color:#fff}
.theme-night .programme li{border-bottom-color:rgba(255,255,255,.12)}
.theme-night .programme time{color:var(--c-gold-soft)}
.theme-night .programme span{color:var(--c-on-night-2)}
.theme-night .checklist li::before{border-color:var(--c-gold-soft)}
.theme-night .xlist li::before{color:var(--c-on-night-2)}
.dune-rule{height:14px;background:radial-gradient(ellipse 60px 14px at 30px 14px,var(--c-gold-soft) 98%,transparent 100%) 0 0/120px 14px repeat-x;opacity:.35}
.biv-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-block:1px solid rgba(255,255,255,.14)}
.biv-strip>div{padding:20px 20px 20px 0}
.biv-strip>div+div{padding-left:20px;border-left:1px solid rgba(255,255,255,.14)}
.biv-strip dt{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--c-gold-soft);font-weight:600}
.biv-strip dd{margin:4px 0 0;font-family:var(--font-serif);font-size:var(--fs-lg)}
.tent-card .card__body{padding-top:16px}
.label-night{display:inline-flex;gap:6px;align-items:center;background:var(--c-night);color:var(--c-on-night);font-size:12px;font-weight:600;padding:3px 9px;border-radius:var(--r-1);letter-spacing:.04em}

/* Request flow */
.flow{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:40px;align-items:start}
.panel-box{background:#fff;border:1px solid var(--c-line);padding:28px}
.summary-card{background:var(--c-sand-50);border:1px solid var(--c-line);padding:20px;display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}
.offer-mini{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center}
.offer-mini .ph{aspect-ratio:4/3;min-height:0}
.offer-mini strong{display:block;line-height:1.3}
.extra-opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px;border:1px solid var(--c-line);background:#fff;cursor:pointer}
.extra-opt:hover{border-color:var(--c-line-strong)}
.extra-opt:has(input:checked){border-color:var(--c-primary);background:var(--c-primary-tint)}
.extra-opt input{width:20px;height:20px;accent-color:var(--c-primary);margin:1px 0 0}
.extra-opt small{display:block;color:var(--c-ink-2);font-size:13px}
.extra-opt b{white-space:nowrap;font-size:var(--fs-sm)}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px;padding-top:24px;border-top:1px solid var(--c-line)}
.review-block{padding:18px 0;border-bottom:1px solid var(--c-line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px}
.review-block h3{font-size:var(--fs-md);margin:0 0 6px;grid-column:1}
.review-block .btn{grid-column:2;grid-row:1}
.review-block .kv{grid-column:1/-1}
.flow-sending,.flow-error{display:none}
.is-sending .flow-sending{display:flex}
.is-error .flow-error{display:flex}
.is-sending .submit-btn{pointer-events:none;opacity:.85}
.is-sending .submit-btn::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
.is-sending .submit-label{display:none}
.submit-label-sending{display:none}
.is-sending .submit-label-sending{display:inline}
.is-sending .flow-form{opacity:.6;pointer-events:none}
.success{text-align:center;max-width:680px;margin:0 auto}
.success__mark{width:64px;height:64px;margin:0 auto 22px;border-radius:50%;background:var(--c-success-bg);border:1.5px solid var(--c-success-line);display:grid;place-items:center}
.success__mark::after{content:"";width:22px;height:11px;border-left:3px solid var(--c-success);border-bottom:3px solid var(--c-success);transform:translateY(-3px) rotate(-45deg)}
.ref-box{display:inline-flex;flex-direction:column;gap:2px;padding:14px 28px;border:1px dashed var(--c-gold-soft);background:var(--c-sand-50);margin:8px 0 24px}
.ref-box .ref{font-size:var(--fs-xl)}
.next-steps{text-align:left;list-style:none;counter-reset:n;padding:0;margin:0;display:grid;gap:14px}
.next-steps li{counter-increment:n;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px}
.next-steps li::before{content:counter(n);width:28px;height:28px;border-radius:50%;border:1.5px solid var(--c-gold-soft);display:grid;place-items:center;font-family:var(--font-serif);color:var(--c-gold)}

/* Reservation lookup / detail */
.lookup{max-width:520px;margin:0 auto}
.status-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--c-line);margin-bottom:24px}
.status-head .h-section{margin:4px 0 6px}
.amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.amount{padding:16px;border:1px solid var(--c-line);background:#fff}
.amount__label{font-size:13px;color:var(--c-ink-2);display:block}
.amount__value{display:block;font-size:var(--fs-xl);font-weight:var(--fw-semibold);margin:2px 0}
.amount--muted .amount__value{color:var(--c-ink-2);text-decoration:line-through;text-decoration-thickness:1px}
.amount--agreed{border-color:var(--c-success-line);background:var(--c-success-bg)}
.amount--pending{border-style:dashed}
.staff-msg{background:var(--c-sand-50);border:1px solid var(--c-line);padding:20px}
.staff-msg__head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--c-ink-2);margin-bottom:8px}
.timeline{list-style:none;padding:0;margin:0 0 0 6px;border-left:2px solid var(--c-line)}
.timeline li{position:relative;padding:0 0 18px 22px;font-size:var(--fs-sm)}
.timeline li::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--c-line-strong)}
.timeline li.is-done::before{background:var(--c-gold);border-color:var(--c-gold)}
.timeline li.is-current::before{background:var(--c-primary);border-color:var(--c-primary)}
.timeline time{display:block;font-size:12.5px;color:var(--c-ink-2)}
.timeline li.is-future{color:var(--c-ink-2)}
.pay-table td:last-child{text-align:right}

/* Supporting pages */
.faq-item{border-bottom:1px solid var(--c-line)}
.faq-item summary{display:flex;justify-content:space-between;gap:16px;padding:18px 0;font-weight:var(--fw-semibold);font-size:var(--fs-md);cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:22px;line-height:1;color:var(--c-gold)}
.faq-item[open] summary::after{content:"−"}
.faq-item summary:hover{color:var(--c-primary)}
.faq-item>div{padding:0 0 18px;color:var(--c-ink-2);max-width:var(--w-text)}
.faq-item>div p{margin:0 0 10px}
.faq-group{margin-bottom:var(--sp-7)}
.legal{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.toc{position:sticky;top:24px;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}
.toc a{padding:8px 12px;color:var(--c-ink);text-decoration:none;border-left:2px solid var(--c-line)}
.toc a:hover{background:var(--c-sand-50)}
.toc a[aria-current="page"]{border-left-color:var(--c-primary);color:var(--c-primary);font-weight:600;background:var(--c-primary-tint)}
.legal .prose{max-width:720px}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:48px;align-items:start}
.info-list{list-style:none;padding:0;margin:0;display:grid;gap:18px;font-size:var(--fs-sm)}
.info-list strong{display:block;font-size:var(--fs-base)}
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.team figure{margin:0}
.team figcaption{padding-top:12px;font-size:var(--fs-sm)}
.team figcaption strong{display:block;font-size:var(--fs-base)}

/* =========================================================
   7. RESPONSIVE (container queries on .site — equivalent to
   media queries at the same breakpoints in production)
   ========================================================= */
@container site (max-width:1100px){
  .reasons{grid-template-columns:repeat(3,minmax(0,1fr))}
  .listing__results--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container site (max-width:960px){
  .header__nav,.header__util{display:none}
  .burger{display:inline-flex}
  .header__inner{padding-block:12px}
  .h-display{font-size:36px}
  .detail,.flow,.listing,.legal,.contact-grid,.location{grid-template-columns:minmax(0,1fr);gap:32px}
  .detail__aside,.summary-card,.toc{position:static}
  .flow .summary-card{order:-1}
  .feature{display:block;padding-top:var(--sp-6)}
  .feature__media{aspect-ratio:4/3}
  .feature__panel,.feature--right .feature__panel{margin:-48px 16px 0;padding:24px}
  .feature-full{display:block;min-height:0}
  .feature-full>.ph{position:relative;aspect-ratio:4/3}
  .feature-full .feature__panel{max-width:none}
  .searchbox__row,.searchbox__row--act{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sfield{margin:-1px 0 0 -1px}
  .searchbox__row>.btn{grid-column:1/-1;margin:12px 0 0}
  .process{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .related,.team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .specs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .biv-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .biv-strip>div:nth-child(3){padding-left:0;border-left:0}
  .filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
}
@container site (max-width:600px){
  .container{padding-inline:16px}
  .section{padding-block:var(--sp-7)}
  .h-display{font-size:30px}
  .h-section,.page-head .h-section{font-size:26px}
  .statement__text{font-size:22px}
  .hero{min-height:540px}
  .hero--page{min-height:380px}
  .hero__content{padding-bottom:88px}
  .brand__name{font-size:18px}
  .brand__sub{font-size:10.5px}
  .brand{gap:10px}
  .brand__text{padding-left:10px}
  .searchbox{margin-top:-56px;padding:12px}
  .searchbox__row,.searchbox__row--act{grid-template-columns:minmax(0,1fr)}
  .sfield{margin:-1px 0 0 0}
  .reasons{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
  .grid-2,.grid-3,.listing__results,.listing__results--3,.related,.team,.process,.amounts,.form-grid,.filters{grid-template-columns:minmax(0,1fr)}
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:120px}
  .mosaic>:nth-child(n){grid-column:span 1;grid-row:span 1}
  .mosaic>:nth-child(1){grid-column:span 2;grid-row:span 2}
  .footer__cols{grid-template-columns:minmax(0,1fr);text-align:left;padding:32px 0}
  .footer__badges{gap:24px}
  .footer__legal .container{flex-direction:column;align-items:flex-start}
  .checklist,.xlist{grid-template-columns:minmax(0,1fr)}
  .specs{grid-template-columns:minmax(0,1fr)}
  .rstepper li:not([aria-current]) .rstepper__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .rstepper li{flex:0 0 auto;padding-right:14px}
  .rstepper li[aria-current]{flex:1}
  .panel-box{padding:20px 16px}
  .reqcard{padding:18px}
  .gallery__thumbs{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .biv-strip{grid-template-columns:minmax(0,1fr)}
  .biv-strip>div,.biv-strip>div+div{padding:14px 0;border-left:0;border-top:1px solid rgba(255,255,255,.14)}
  .biv-strip>div:first-child{border-top:0}
  .review-block{grid-template-columns:minmax(0,1fr)}
  .review-block .btn{grid-column:1;grid-row:auto;justify-self:start}
  .listing__bar .select{min-width:0;width:100%}
  .phone{grid-template-columns:110px minmax(0,1fr)}
}

/* =========================================================
   7b. STAFF PANEL — same tokens, operational density
   ========================================================= */
.appwrap{container:app / inline-size}
.app{position:relative;display:grid;grid-template-columns:244px minmax(0,1fr);min-height:860px;background:var(--c-sand-50);color:var(--c-ink);font-size:var(--fs-sm)}
.app .input,.app .select{min-height:40px;padding:8px 10px;font-size:var(--fs-sm)}
.app .select{padding-right:34px}
.app .textarea{font-size:var(--fs-sm)}
.app .btn{min-height:40px;padding:8px 16px;font-size:var(--fs-sm)}
.app .btn--sm{min-height:34px;padding:5px 12px;font-size:13px}
.pside{background:var(--c-night);color:var(--c-on-night);display:flex;flex-direction:column;gap:2px;padding:18px 12px 20px}
.pside a{color:inherit;text-decoration:none}
.pside .brand{padding:6px 8px 22px;color:#fff;gap:12px}
.pside .brand__name{font-size:16px}
.pside .brand__sub{font-size:10.5px;color:var(--c-gold-soft)}
.pside .brand__mark{width:18px;height:18px}
.pside .brand__mark::after{inset:4px}
.pside__close{display:none;position:absolute;right:10px;top:12px;width:40px;height:40px;border:0;background:none;color:#fff;font-size:24px;cursor:pointer;place-items:center}
.pside__label{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-on-night-2);padding:16px 10px 6px}
.pnav{display:flex;flex-direction:column;gap:2px}
.pnav a{display:flex;align-items:center;gap:10px;min-height:38px;padding:7px 10px;border-radius:var(--r-1)}
.pnav a::before{content:"";width:7px;height:7px;border:1.5px solid var(--c-gold-soft);transform:rotate(45deg);flex:none}
.pnav a:hover{background:var(--c-night-2);color:#fff}
.pnav a[aria-current="page"]{background:var(--c-sand-50);color:var(--c-night);font-weight:600}
.pnav a[aria-current="page"]::before{background:var(--c-gold);border-color:var(--c-gold)}
.pnav__count{margin-left:auto;min-width:22px;text-align:center;background:var(--c-gold-soft);color:var(--c-night);font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:var(--r-pill)}
.pside__foot{margin-top:auto;padding:16px 10px 0;border-top:1px solid rgba(255,255,255,.12);font-size:13px;display:flex;flex-direction:column;gap:8px}
.pside__foot a:hover{text-decoration:underline}
.pbody{display:flex;flex-direction:column;min-width:0}
.ptop{display:flex;align-items:center;gap:16px;padding:14px 28px;background:#fff;border-bottom:1px solid var(--c-line);min-height:72px}
.ptop__title{min-width:0;flex:1}
.ptop__crumb{display:block;font-size:12.5px;color:var(--c-ink-2);text-decoration:none;margin-bottom:2px}
.ptop__crumb:hover{text-decoration:underline;color:var(--c-primary)}
.ptop__crumb::before{content:"‹ "}
.ptop h1{font-family:var(--font-serif);font-weight:400;font-size:24px;line-height:1.2;margin:0}
.ptop__right{display:flex;align-items:center;gap:18px}
.ptop__link{font-size:13px}
.puser{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.3}
.puser small{display:block;color:var(--c-ink-2);font-size:12px}
.puser__av{width:34px;height:34px;border-radius:50%;background:var(--c-sand-100);color:var(--c-gold);display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:none;border:1px solid var(--c-sand-200)}
.pburger{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-left:-8px;border:0;background:none;cursor:pointer;color:var(--c-ink)}
.pmain{padding:24px 28px 56px;display:flex;flex-direction:column;gap:20px;min-width:0}
.pcard{background:#fff;border:1px solid var(--c-line);padding:20px;min-width:0}
.pcard--flush{padding:0}
.pcard__head{display:flex;justify-content:space-between;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-bottom:14px}
.pcard--flush .pcard__head{padding:16px 20px 0}
.pcard__head h2{font-size:var(--fs-md);font-weight:600;margin:0}
.pcard__head p{margin:0}
.pcard--flush .table-wrap{border:0;border-top:1px solid var(--c-line)}
.pcard--flush>.ptoolbar{padding:16px 20px}
.pgrid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.pgrid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.pdetail{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
.pcol{display:flex;flex-direction:column;gap:20px;min-width:0}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.kpi{background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-gold-soft);padding:16px 18px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.kpi:hover{border-color:var(--c-line-strong);border-top-color:var(--c-primary);color:inherit}
.kpi--attn{border-top-color:var(--c-primary)}
.kpi__label{font-size:13px;font-weight:600}
.kpi__value{font-family:var(--font-serif);font-size:38px;line-height:1.1;margin:4px 0}
.kpi__def{font-size:12.5px;color:var(--c-ink-2)}
.plist{list-style:none;margin:0;padding:0}
.plist li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--c-line)}
.plist li:last-child{border-bottom:0}
.plist__when{font-family:var(--font-mono);font-size:12.5px;color:var(--c-ink-2);min-width:56px}
.plist strong{display:block;font-weight:600}
.ptoolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.ptoolbar .field{min-width:150px;flex:1}
.ptoolbar .field--search{flex:2;min-width:220px}
.search{position:relative}
.search .input{padding-left:34px}
.search::before{content:"";position:absolute;left:12px;top:50%;width:11px;height:11px;border:1.5px solid var(--c-ink-2);border-radius:50%;transform:translateY(-60%)}
.search::after{content:"";position:absolute;left:22px;top:calc(50% + 3px);width:6px;height:1.5px;background:var(--c-ink-2);transform:rotate(45deg)}
.ptabs{display:flex;gap:4px;border-bottom:1px solid var(--c-line-strong);overflow-x:auto}
.ptab{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:10px 14px;margin-bottom:-1px;border-bottom:3px solid transparent;font:600 var(--fs-sm) var(--font-sans);color:var(--c-ink-2);text-decoration:none;cursor:pointer;white-space:nowrap}
.ptab:hover{color:var(--c-ink)}
.ptab[aria-selected="true"],.ptab[aria-current="page"]{color:var(--c-primary);border-bottom-color:var(--c-primary)}
.ptab .pnav__count{margin:0;background:var(--c-primary-tint);color:var(--c-primary)}
.cellsub{display:block;font-size:12.5px;color:var(--c-ink-2);margin-top:1px;font-weight:400}
.stack-xs{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.listfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;font-size:13px;color:var(--c-ink-2);border-top:1px solid var(--c-line)}
.listfoot .pagination{margin:0}
.dhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}
.dhead h2{font-family:var(--font-serif);font-weight:400;font-size:24px;margin:2px 0 4px}
.pactions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.verify{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.verify>li{border:1px solid var(--c-line);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.verify>li.is-fail{border-color:var(--c-danger-line);background:#fffafa}
.verify__head{display:flex;align-items:center;gap:10px;font-weight:600}
.verify__n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--c-gold-soft);display:grid;place-items:center;font-size:12px;color:var(--c-gold);flex:none}
.verify__state{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:12.5px;font-weight:700}
.verify__state--ok{color:var(--c-success)}
.verify__state--ok::before{content:"✓"}
.verify__state--fail{color:var(--c-danger)}
.verify__state--fail::before{content:"✕"}
.verify__state--todo{color:var(--c-warning)}
.verify__state--todo::before{content:"○"}
.avail{width:100%;border-collapse:collapse;font-size:13px}
.avail th,.avail td{border:1px solid var(--c-line);padding:6px 8px;text-align:center}
.avail th{background:var(--c-sand-50);font-weight:600}
.avail th:first-child,.avail td:first-child{text-align:left}
.avail .ok{background:var(--c-success-bg);color:#1f5a38;font-weight:700}
.avail .full{background:var(--c-danger-bg);color:var(--c-danger);font-weight:700}
.priceedit{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:8px 12px;align-items:center;font-size:13px}
.priceedit .input{text-align:right}
.priceedit__total{font-weight:700;font-size:var(--fs-md);padding-top:10px;border-top:1px solid var(--c-line)}
.note{background:var(--c-warning-bg);border:1px solid var(--c-warning-line);padding:10px 12px;font-size:13px}
.note small{display:block;color:var(--c-ink-2);margin-top:4px}
.history{list-style:none;padding:0;margin:0;font-size:13px}
.history li{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--c-line)}
.history li:last-child{border-bottom:0}
.history time{font-family:var(--font-mono);font-size:12px;color:var(--c-ink-2)}
.paybar{height:8px;background:var(--c-sand-100);margin:6px 0}
.paybar i{display:block;height:100%;background:var(--c-info)}
.uploader{border:1.5px dashed var(--c-line-strong);background:var(--c-sand-50);padding:22px;text-align:center;font-size:13px;color:var(--c-ink-2)}
.uploader strong{color:var(--c-primary)}
.thumbs-edit{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.thumb-edit{border:1px solid var(--c-line);background:#fff;display:flex;flex-direction:column}
.thumb-edit .ph{aspect-ratio:4/3;min-height:0}
.thumb-edit__bar{display:flex;align-items:center;gap:4px;padding:6px 8px;font-size:12px}
.thumb-edit__n{font-family:var(--font-mono);font-weight:700;margin-right:auto}
.thumb-edit.is-uploading .ph{opacity:.55}
.thumb-edit .field__error{display:flex;padding:0 8px 8px}
.progress{height:4px;background:var(--c-sand-100)}
.progress i{display:block;height:100%;background:var(--c-primary)}
.ibtn{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--c-line-strong);background:#fff;border-radius:var(--r-1);cursor:pointer;font-size:14px;color:var(--c-ink);flex:none}
.ibtn:hover{border-color:var(--c-primary);color:var(--c-primary)}
.ibtn:disabled{color:#b3aca2;border-color:var(--c-line);cursor:not-allowed}
.ibtn--danger:hover{border-color:var(--c-danger);color:var(--c-danger)}
.langtabs{display:inline-flex;border:1px solid var(--c-line-strong);border-radius:var(--r-1);margin-left:auto;overflow:hidden}
.langtabs button{border:0;background:#fff;font:600 12px var(--font-sans);padding:4px 10px;cursor:pointer;color:var(--c-ink-2)}
.langtabs [aria-selected="true"]{background:var(--c-ink);color:#fff}
.field__top{display:flex;align-items:center;gap:8px}
.fsec{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;padding:24px 0;border-top:1px solid var(--c-line)}
.fsec:first-child{border-top:0;padding-top:4px}
.fsec__intro h2{font-size:var(--fs-md);font-weight:600;margin:0 0 4px}
.fsec__intro p{margin:0;font-size:13px;color:var(--c-ink-2)}
.fsec__body{display:flex;flex-direction:column;gap:16px;min-width:0}
.form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.inputgroup{display:flex}
.inputgroup .input,.inputgroup .select{min-width:0}
.inputgroup__add{display:flex;align-items:center;padding:0 12px;border:1px solid var(--c-line-strong);border-left:0;background:var(--c-sand-50);font-size:13px;white-space:nowrap;color:var(--c-ink-2)}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.choice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--c-line-strong);background:#fff;cursor:pointer;font-size:13px;line-height:1.4}
.choice:hover{border-color:var(--c-primary)}
.choice:has(input:checked){border-color:var(--c-primary);background:var(--c-primary-tint)}
.choice input{accent-color:var(--c-primary);width:18px;height:18px;margin:0;flex:none}
.choice strong{display:block;font-size:var(--fs-sm)}
.repeater{display:flex;flex-direction:column;gap:8px}
.repeater__row{display:grid;grid-template-columns:28px 90px minmax(0,1fr) minmax(0,1.3fr) 32px;gap:8px;align-items:center}
.repeater__row--2{grid-template-columns:28px minmax(0,1fr) 32px}
.handle{width:28px;height:32px;display:grid;place-items:center;cursor:grab;color:var(--c-ink-2);font-size:14px;letter-spacing:-1px}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--fs-sm)}
.switch input{appearance:none;-webkit-appearance:none;width:40px;height:22px;border-radius:999px;background:#a59c8f;position:relative;margin:0;cursor:pointer;flex:none}
.switch input::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked{background:var(--c-success)}
.switch input:checked::after{transform:translateX(18px)}
.switch input:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}
.savebar{position:sticky;bottom:0;z-index:15;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 28px;background:var(--c-night);color:#fff;box-shadow:0 -6px 20px rgba(20,25,39,.18)}
.savebar__msg{display:flex;align-items:center;gap:10px;font-weight:600}
.savebar__msg::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c-gold-soft);flex:none}
.savebar .btn--ghost{color:#fff}
.toast{position:absolute;right:28px;top:86px;z-index:16;max-width:380px;box-shadow:var(--sh-raised)}
.modal-wrap{display:none;position:absolute;inset:0;z-index:50;background:rgba(20,25,39,.55);padding:56px 24px;align-items:flex-start;justify-content:center}
.show-notify .modal-wrap--notify,.show-danger .modal-wrap--danger{display:flex}
.modal{background:#fff;width:100%;max-width:620px;box-shadow:var(--sh-raised)}
.modal--sm{max-width:500px}
.modal__head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--c-line)}
.modal__head h2{font-size:var(--fs-lg);margin:0;font-weight:600}
.modal__body{padding:20px 22px;display:flex;flex-direction:column;gap:16px}
.modal__foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--c-line);background:var(--c-sand-50);flex-wrap:wrap}
.msg-preview{border:1px solid var(--c-line);background:var(--c-sand-50);font-size:13.5px}
.msg-preview__meta{display:grid;grid-template-columns:72px minmax(0,1fr);gap:4px 10px;padding:12px 14px;border-bottom:1px solid var(--c-line);font-size:12.5px;margin:0}
.msg-preview__meta dt{color:var(--c-ink-2)}
.msg-preview__meta dd{margin:0;font-weight:600}
.msg-preview__body{padding:14px;background:#fff;margin:0;white-space:pre-line;line-height:1.55;font-family:var(--font-sans)}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:22px;height:14px;display:inline-block;min-height:0;padding:0}
.calnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calnav__range{font-family:var(--font-serif);font-size:var(--fs-lg);margin:0 8px}
.calx{overflow-x:auto;border:1px solid var(--c-line);background:#fff}
.calx__grid{min-width:1040px}
.calx__row{--lab:180px;display:grid;grid-template-columns:var(--lab) repeat(14,minmax(0,1fr));min-height:42px;border-bottom:1px solid var(--c-line);background-image:linear-gradient(90deg,var(--c-line) 1px,transparent 1px);background-size:calc((100% - var(--lab)) / 14) 100%;background-position:var(--lab) 0;background-repeat:repeat-x}
.calx__row>*{grid-row:1}
.calx__lab{grid-column:1;padding:8px 12px;font-size:12.5px;line-height:1.3;border-right:1px solid var(--c-line-strong);background:#fff;position:sticky;left:0;z-index:2}
.calx__lab small{display:block;color:var(--c-ink-2)}
.calx__row--head{background-color:var(--c-sand-50);min-height:48px}
.calx__row--head .calx__lab{background:var(--c-sand-50);font-weight:600}
.calx__day{padding:6px 2px;text-align:center;font-size:11.5px;line-height:1.25}
.calx__day b{display:block;font-size:14px}
.calx__day.is-we{background:rgba(201,168,106,.14)}
.calx__group{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;background:var(--c-sand-100);font-weight:700;font-size:13px;border-bottom:1px solid var(--c-line-strong)}
.calx__row--req .calx__lab{background:#fffbf1;color:var(--c-warning);font-weight:600}
.calx__row--free{min-height:30px}
.calx__row--free .calx__lab{color:var(--c-ink-2);padding-block:5px}
.calx__free{display:grid;place-items:center;font-size:12.5px;font-weight:600;color:var(--c-ink-2)}
.calx__free.is-zero{background:var(--c-danger-bg);color:var(--c-danger);font-weight:700}
.calx__bar{margin:5px 2px;padding:4px 8px;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:0;z-index:1;text-decoration:none;display:block}
a.calx__bar:hover{text-decoration:underline}
.d1{grid-column-start:2}.d2{grid-column-start:3}.d3{grid-column-start:4}.d4{grid-column-start:5}.d5{grid-column-start:6}.d6{grid-column-start:7}.d7{grid-column-start:8}.d8{grid-column-start:9}.d9{grid-column-start:10}.d10{grid-column-start:11}.d11{grid-column-start:12}.d12{grid-column-start:13}.d13{grid-column-start:14}.d14{grid-column-start:15}
.n1{grid-column-end:span 1}.n2{grid-column-end:span 2}.n3{grid-column-end:span 3}.n4{grid-column-end:span 4}.n5{grid-column-end:span 5}.n6{grid-column-end:span 6}.n7{grid-column-end:span 7}
.sched{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));border:1px solid var(--c-line);background:#fff;overflow-x:auto}
.sched__day{border-left:1px solid var(--c-line);min-height:300px;display:flex;flex-direction:column;gap:8px;padding:0 8px 12px}
.sched__day:first-child{border-left:0}
.sched__day>h3{margin:0 -8px;padding:8px 10px;background:var(--c-sand-50);border-bottom:1px solid var(--c-line);font-size:12.5px;font-weight:600}
.sched__day>h3 b{font-size:14px}
.sched__slot{font-size:12px;border:1px solid var(--c-line);padding:8px;display:flex;flex-direction:column;gap:6px}
.sched__slot time{font-family:var(--font-mono);font-weight:700}
.sched__slot .cal-cell{min-height:0;padding:4px 6px;font-size:12px;text-decoration:none;display:block}
.sched__cap{font-size:11.5px;color:var(--c-ink-2)}
.agenda{display:none}
.agenda__day{margin:0;padding:10px 0 6px;font-size:13px;font-weight:700;border-bottom:1px solid var(--c-line-strong)}
.agenda ul{list-style:none;padding:0;margin:8px 0 12px;display:flex;flex-direction:column;gap:6px}
.agenda li.cal-cell{min-height:0;padding:8px 10px;font-weight:400;font-size:13px}
.agenda li.cal-cell strong{font-weight:700}
.inbox{display:grid;grid-template-columns:340px minmax(0,1fr);border:1px solid var(--c-line);background:#fff;min-height:560px}
.inbox__list{border-right:1px solid var(--c-line);list-style:none;margin:0;padding:0}
.inbox__list a{display:block;padding:14px 16px;border-bottom:1px solid var(--c-line);color:inherit;text-decoration:none}
.inbox__list a:hover{background:#fbfaf7}
.inbox__list a[aria-current="true"]{background:var(--c-primary-tint);box-shadow:inset 3px 0 0 var(--c-primary)}
.inbox__list .row{justify-content:space-between;flex-wrap:nowrap}
.inbox__list .is-unread strong::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c-primary);margin-right:6px;vertical-align:1px}
.inbox__sub{display:block;font-size:13px;color:var(--c-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox__view{padding:22px;display:flex;flex-direction:column;gap:16px;min-width:0}
.msg{border:1px solid var(--c-line);padding:16px;font-size:var(--fs-sm)}
.msg p{margin:0 0 8px}
.msg--staff{background:var(--c-sand-50)}
.msg__head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--c-ink-2);margin-bottom:8px}
.cms{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}
.cms__nav{background:#fff;border:1px solid var(--c-line);padding:6px 0;position:static}
.cms__nav a{border-left-width:3px}
.cms__group{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-gold);font-weight:600;padding:12px 12px 4px}
.where{font-size:12.5px;color:var(--c-ink-2)}
.colorin{display:flex;gap:8px;align-items:center}
.colorin input[type="color"]{width:44px;height:40px;border:1px solid var(--c-line-strong);padding:2px;background:#fff;flex:none;cursor:pointer}
.logo-prev{min-height:84px;display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;border:1px solid var(--c-line);padding:16px}
.logo-prev__dark{background:var(--c-night);color:#fff;padding:12px 16px}
.logo-prev__light{color:var(--c-ink);padding:12px 16px}
.plogin{min-height:700px;background:var(--c-night);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px 80px;position:relative}
.plogin>.dune-rule{position:absolute;left:0;right:0;bottom:24px}
.plogin__card{background:#fff;width:100%;max-width:400px;padding:32px;box-shadow:var(--sh-raised);display:flex;flex-direction:column;gap:18px}
.plogin__card .brand{color:var(--c-ink);align-self:center}
.plogin__title{font-family:var(--font-serif);font-weight:400;font-size:22px;text-align:center;margin:0}
.plogin__foot{color:var(--c-on-night-2);font-size:12.5px;margin-top:20px;text-align:center}
.plogin__foot a{color:#fff}
.login-err{display:none}
.is-login-error .login-err{display:flex}
.is-login-error .lg-err .input{border-color:var(--c-danger);box-shadow:inset 0 0 0 1px var(--c-danger)}
.statesgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.statebox{position:relative;border:1px dashed var(--c-line-strong);background:var(--c-sand-50);padding:16px}
.statebox>.gd-label{margin-bottom:10px}
.statebox .modal{box-shadow:var(--sh-card)}
.statebox .savebar,.statebox .toast{position:static}
.app .empty{padding:40px 20px}
@container app (max-width:1100px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pdetail{grid-template-columns:minmax(0,1fr)}
  .fsec{grid-template-columns:minmax(0,1fr);gap:12px}
  .pgrid-3,.statesgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .statesgrid{grid-template-columns:minmax(0,1fr)}
}
@container app (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .pside{display:none}
  .nav-open .pside{display:flex;position:absolute;top:0;left:0;bottom:0;width:min(290px,86%);z-index:40;overflow:auto;box-shadow:var(--sh-raised)}
  .nav-open .pside__close{display:grid}
  .nav-open .pbody::before{content:"";position:absolute;inset:0;background:rgba(20,25,39,.5);z-index:35}
  .pburger{display:inline-flex}
  .ptop{padding:10px 16px;gap:10px;min-height:60px}
  .ptop h1{font-size:20px}
  .ptop__link,.puser>span:last-child,.ptop__right>.btn{display:none}
  .pmain{padding:16px 16px 40px;gap:16px}
  .pcard{padding:16px}
  .pcard--flush{padding:0}
  .pcard--flush .pcard__head{padding:14px 16px 0}
  .pcard--flush>.ptoolbar{padding:14px 16px}
  .pgrid-2,.pgrid-3,.form-grid,.form-grid--3,.inbox,.cms{grid-template-columns:minmax(0,1fr)}
  .kpi{padding:12px 14px}
  .kpi__value{font-size:30px}
  .calx,.sched{display:none}
  .agenda{display:block}
  .savebar,.listfoot{padding:12px 16px}
  .toast{left:16px;right:16px;top:70px}
  .history li{grid-template-columns:minmax(0,1fr);gap:2px}
  .inbox__list{border-right:0;border-bottom:1px solid var(--c-line)}
  .modal-wrap{padding:16px}
  .priceedit{grid-template-columns:minmax(0,1fr) 110px}
  .repeater__row{grid-template-columns:28px 76px minmax(0,1fr) 32px}
  .repeater__row>:nth-child(4){grid-column:2/4}
}
