/* The staff workspace at /admin (app.js admin(), staff-dashboard.js). The public site's world (DESIGN.md: paper,
   cream, wine, the gold current-state line, square corners, no shadows) at a working density: Manrope for everything
   people read and operate, figures lining and equal width, the serif only for page titles. The older staff tools
   (staff-tools.css, support.css, features.css) are restyled here, inside .staff-app, so customers' pages are untouched. */
.is-staff .demo-bar,.is-staff .site-header,.is-staff .site-footer{display:none}
.is-staff{background:var(--paper)}
.staff-app{min-height:100vh;color:var(--ink);font:400 15px/1.5 var(--sans);font-variant-numeric:lining-nums tabular-nums}
.staff-app ::selection{background:var(--wine);color:var(--paper)}
.staff-app :focus-visible{outline:2px solid var(--wine);outline-offset:2px}
.staff-app p{color:inherit}
.staff-app h1,.staff-app h2,.staff-app h3{letter-spacing:0}
.staff-app .eyebrow{display:none}
.staff-app .loading{padding:40px;color:var(--muted)}

/* Buttons: wine for the main action, white with a hairline for the rest, red only for removing. 44px everywhere. */
.sbtn,.staff-app .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--wine);font:600 14px/1.2 var(--sans);letter-spacing:0;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease}
.sbtn svg,.staff-app .button svg{flex:none}
.sbtn-primary,.staff-app .button:not(.button-outline){background:var(--wine);border-color:var(--wine);color:#fff}
.sbtn-quiet{border-color:var(--line);color:var(--ink-soft)}
.sbtn-icon{width:44px;padding:0}
.sbtn-danger,.staff-app .link-danger,.staff-app .button.button-danger{background:#fff;border:1px solid #d9b8b8;color:#8a2c2c}
.staff-app .link-danger{min-height:44px;padding:0 16px;font:600 14px var(--sans);text-decoration:none}
.sbtn:disabled,.staff-app .button:disabled{opacity:.5;cursor:not-allowed}
.sbtn[aria-pressed="true"]{background:var(--cream);border-color:var(--wine);color:var(--wine)}
@media (hover:hover) and (pointer:fine){
  .sbtn:hover,.staff-app .button-outline:hover{border-color:var(--wine);color:var(--wine);background:#fff;transform:none}
  .sbtn-primary:hover,.staff-app .button:not(.button-outline):not(.button-danger):hover{background:var(--wine-dark);border-color:var(--wine-dark);color:#fff;transform:none}
  .sbtn-danger:hover,.staff-app .link-danger:hover{background:#8a2c2c;border-color:#8a2c2c;color:#fff}
}
.staff-app input:not([type=checkbox]):not([type=radio]),.staff-app select,.staff-app textarea{min-height:44px;border:1px solid #cfc6b8;border-radius:0;background:#fff;color:var(--ink);font:400 15px/1.4 var(--sans);padding:9px 12px}
.staff-app label,.staff-app .field-label,.staff-app .field label{font:600 14px/1.3 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink)}
.staff-app .help-text,.staff-app .small-note{font-size:13px;color:var(--muted)}

/* Sign-in */
.staff-login{display:grid;gap:10px;width:min(420px,calc(100% - 32px));margin:12vh auto 40px;padding:32px;background:#fff;border:1px solid var(--line)}
.staff-login img{width:110px;height:auto;margin-bottom:8px}
.staff-login h1{font:500 34px/1.1 var(--serif)}
.staff-login p{color:var(--ink-soft);margin-bottom:8px}
.staff-login .sbtn{margin-top:6px;width:100%}
.staff-login-back{justify-self:center;display:inline-flex;align-items:center;min-height:44px;color:var(--wine);font-weight:600;text-decoration:underline;text-underline-offset:.25em}

/* Shell: the side rail and the work area */
.staff-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.staff-rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:14px;padding:18px 12px;background:#fff;border-right:1px solid var(--line)}
.staff-brand{display:flex;align-items:flex-end;gap:10px;padding:0 6px;color:var(--ink-soft);text-decoration:none;font-weight:700;font-size:14px}
.staff-brand img{width:84px;height:auto}
.staff-app .staff-tabs{display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px;margin:0;border:0}
.staff-app .staff-tab{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;margin:0;padding:0 12px;border:0;background:none;color:var(--ink);font:600 15px/1.2 var(--sans);text-align:left;cursor:pointer}
.staff-app .staff-tab[aria-selected="true"]{background:var(--cream);color:var(--wine)}
@media (hover:hover) and (pointer:fine){.staff-app .staff-tab:hover{background:var(--paper);color:var(--wine)}.staff-app .staff-tab[aria-selected="true"]:hover{background:var(--cream)}}
.staff-app .tab-count{display:inline-grid;place-items:center;min-width:22px;height:22px;margin:0;padding:0 6px;border-radius:0;background:var(--wine);color:#fff;font:700 12px/1 var(--sans)}
.staff-rail-foot{margin-top:auto;display:grid;gap:8px;padding:0 6px}
.staff-preview{font-size:13px;color:var(--muted)}
.staff-main{min-width:0;padding:22px 32px 56px}
.staff-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:12px}
/* Notifications on this device (staff-push.js), beside the heading. */
.staff-head-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.staff-push{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.staff-push-note{margin:0;font-size:13px;color:var(--muted)}
.staff-push-actions{display:flex;gap:6px}
.staff-head h1{margin:0;font:500 36px/1.1 var(--serif);color:var(--ink)}

/* Enquiries: tools, status filter, list or calendar, and the details panel beside them */
.enq-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.enq-search{display:flex;align-items:center;gap:8px;flex:1 1 260px;max-width:420px;min-height:44px;padding:0 12px;border:1px solid #cfc6b8;background:#fff;color:var(--muted)}
.staff-app .enq-search input:not([type=checkbox]):not([type=radio]){flex:1;min-width:0;min-height:42px;border:0;padding:0;outline:0;background:none}
.enq-search:focus-within{outline:2px solid var(--wine);outline-offset:2px}
.staff-app #enquiry-staff{width:auto;min-width:150px}
.enq-views{display:inline-flex}
.enq-views .sbtn+.sbtn{margin-left:-1px}
.enq-filters{display:flex;gap:22px;margin:4px 0 10px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.enq-filter{position:relative;flex:none;min-height:44px;padding:0;border:0;background:none;color:var(--ink-soft);font:600 15px/1 var(--sans);cursor:pointer}
.enq-filter span{margin-left:2px;font-weight:500;color:var(--muted)}
.enq-filter[aria-pressed="true"]{color:var(--wine)}
.enq-filter[aria-pressed="true"]::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold)}
@media (hover:hover) and (pointer:fine){.enq-filter:hover{color:var(--wine)}}
.enq-split{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.enq-split.has-panel{grid-template-columns:minmax(0,1fr) minmax(380px,460px)}
.enq-group{margin-top:10px}
.enq-group-title{display:flex;gap:8px;margin:0;padding:12px 0 6px;font:700 14px/1.3 var(--sans);color:var(--ink-soft)}
.enq-group-title span{font-weight:500;color:var(--muted)}
.enq-rows{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.enq-row{display:grid;grid-template-columns:104px minmax(0,1fr) 150px 84px;gap:14px;align-items:center;width:100%;padding:11px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.enq-row.is-selected{background:var(--cream);box-shadow:inset 0 0 0 2px var(--wine)}
@media (hover:hover) and (pointer:fine){.enq-row:hover{background:var(--paper)}.enq-row.is-selected:hover{background:var(--cream)}}
.enq-when b,.enq-who b{display:block;font-weight:700}
.enq-when span,.enq-who span{display:block;font-size:14px;color:var(--ink-soft)}
.enq-who em{display:block;font-style:normal;font-size:14px;font-weight:600;color:var(--wine)}
.enq-state{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.enq-owner{font-size:14px;color:var(--ink-soft)}
.enq-owner.is-none{color:var(--wine);font-weight:600}
.enq-age{font-size:14px;color:var(--muted);text-align:right}
.enq-pill{display:inline-block;padding:2px 9px;border:1px solid transparent;font-size:13px;font-weight:700;line-height:1.4;white-space:nowrap}
.enq-pill-new{background:var(--wine);color:#fff}
.enq-pill-contacted{border-color:var(--wine);color:var(--wine);background:#fff}
.enq-pill-quoted{background:#f3e6c8;color:#5b4520}
.enq-pill-confirmed{background:#e1ebe2;color:#2b5638}
.enq-pill-closed{background:var(--cream);color:var(--ink-soft)}
.enq-empty{padding:40px 0;max-width:52ch}
.enq-empty h2{font:500 28px/1.15 var(--serif);margin-bottom:6px}
.enq-empty p{color:var(--ink-soft);margin-bottom:14px}

.enq-panel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:18px 20px 20px;background:#fff;border:1px solid var(--line)}
.enq-panel-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.enq-back{display:none}
.enq-ref{font-size:13px;color:var(--muted)}
.staff-app .enq-panel h2{margin:2px 0 2px;font:700 22px/1.25 var(--sans);color:var(--ink);outline-offset:4px}
.enq-sub{font-size:14px;color:var(--ink-soft)}
.enq-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer}
.enq-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:14px 0 0;padding:14px 0;border-top:1px solid var(--line)}
.enq-field{display:grid;gap:4px}
.staff-app .enq-field span{font-size:13px;font-weight:600;color:var(--ink-soft)}
.staff-app .enq-field select{min-width:150px;font-weight:600}
.enq-plan{font-size:13px;color:var(--muted);margin:2px 0 4px}
.staff-app .assign-form{max-width:none;margin:0;padding:12px 0;border-top:1px solid var(--line)}
.staff-app .assign-form>div{gap:8px;margin-top:6px}
.staff-app .assign-form input{flex:1 1 160px}
.enq-section{padding:12px 0;border-top:1px solid var(--line)}
.staff-app .enq-section h3{margin:0 0 6px;font:700 14px/1.3 var(--sans);color:var(--wine)}
.enq-section dl{display:grid;grid-template-columns:132px minmax(0,1fr);gap:5px 14px;margin:0;font-size:15px;align-content:start}
.enq-section dt{color:var(--ink-soft)}
.enq-section dd{margin:0;overflow-wrap:anywhere}
.enq-section a{display:inline-flex;align-items:center;gap:6px;min-height:28px;color:var(--wine);font-weight:600;text-decoration:none}
@media (hover:hover) and (pointer:fine){.enq-section a:hover{text-decoration:underline;text-underline-offset:.2em}}
.enq-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:4px}
.enq-muted{color:var(--muted);font-weight:400}
.enq-foot{padding:12px 0 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.enq-remove{margin-top:12px}
.enq-meals{margin:4px 0 0;padding:0;list-style:none}
.enq-meals>li{padding:8px 0;border-top:1px dashed var(--line)}
.enq-meals>li:first-child{border-top:0;padding-top:2px}
.enq-meals ul{margin:4px 0 0;padding-left:18px}
.enq-meals ul li{padding:1px 0}
.enq-meals p{margin:4px 0 0}
.enq-section a,.staff-app .order-changes summary{min-height:44px}
.staff-app .order-changes{margin:12px 0 0;padding:12px 14px;background:var(--paper);font-size:14px}
.staff-app .order-changes summary{font-size:14px}
.staff-app .order-changes th,.staff-app .order-changes td,.staff-app .edit-history{font-size:13px}
.staff-app .order-changes thead th{font-size:13px;letter-spacing:0;text-transform:none}

/* The calendar: one month as a table on wide screens, a day-by-day agenda on phones */
.enq-cal{background:#fff;border:1px solid var(--line);padding:14px}
.enq-cal-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px}
.staff-app .enq-cal-head h2{margin:0;font:700 18px/1.3 var(--sans)}
.enq-cal-nav{display:flex;margin-left:auto}
.enq-cal-nav .sbtn+.sbtn{margin-left:-1px}
.enq-month{width:100%;table-layout:fixed;border-collapse:collapse}
.enq-month th{padding:6px 8px;border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink-soft);text-align:left}
.enq-month td{height:104px;padding:5px;border:1px solid var(--line);vertical-align:top}
.enq-month td.is-blank{background:var(--paper)}
.enq-month td.is-past .enq-daynum{color:var(--muted)}
.enq-month td.is-today{box-shadow:inset 0 0 0 2px var(--gold)}
.enq-month td.is-booked,.enq-legend .enq-booked{background:repeating-linear-gradient(135deg,var(--cream) 0 6px,#fff 6px 12px)}
.enq-daynum{display:block;margin-bottom:3px;font-size:14px;font-weight:700}
.enq-booked{display:block;font-size:13px;font-weight:600;color:var(--ink-soft)}
.enq-chip{display:block;width:100%;margin:0 0 3px;padding:3px 6px;border:1px solid transparent;font:600 13px/1.35 var(--sans);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.enq-chip-new{background:var(--wine);color:#fff}
.enq-chip-contacted{background:#fff;border-color:var(--wine);color:var(--wine)}
.enq-chip-quoted{background:#f3e6c8;color:#5b4520}
.enq-chip-confirmed{background:#e1ebe2;color:#2b5638}
.enq-chip-closed{background:var(--cream);color:var(--ink-soft)}
.enq-chip.is-selected{outline:2px solid var(--ink);outline-offset:1px}
.enq-agenda{display:none;margin:0;padding:0;list-style:none}
.enq-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;font-size:13px}
.enq-legend .enq-chip{display:inline-block;width:auto;margin:0;cursor:default}
.enq-legend .enq-booked{display:inline-block;padding:3px 8px;border:1px solid var(--line)}

/* The other staff tools, brought to the same type, size and corners */
.staff-app .staff-intro,.staff-app .staff-intro p,.staff-app .staff-intro .text-link{font-size:15px;color:var(--ink-soft)}
.staff-app .staff-intro{margin-bottom:18px}
.staff-app .staff-inline-form{padding:16px;background:var(--cream)}
.staff-app .staff-list{gap:0;border-top:1px solid var(--line)}
.staff-app .staff-row{padding:14px 12px;border:0;border-bottom:1px solid var(--line);background:#fff}
.staff-app .staff-row strong{font-size:15px;font-weight:700}
.staff-app .staff-row>div:first-child span,.staff-app .staff-row .small-note{font-size:14px}
.staff-app .empty-state{padding:28px 0;background:none;text-align:left}
.staff-app .empty-state h3{font:500 26px/1.2 var(--serif)}
.staff-app .form-subtitle{font:700 17px/1.3 var(--sans);letter-spacing:0;text-transform:none}
.staff-app .stat strong,.staff-app .draft-facts strong{font-family:var(--sans);font-weight:700;font-variant-numeric:lining-nums tabular-nums}
.staff-app .dashboard-summary{display:flex;flex-wrap:wrap;gap:8px 32px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.staff-app .stat{display:flex;align-items:baseline;gap:8px;padding:0;background:none}
.staff-app .stat strong{display:inline;font-size:24px;line-height:1;color:var(--ink)}
.staff-app .stat span{font-size:14px;color:var(--ink-soft)}
.staff-app .draft-facts{font-size:15px}
.staff-app .draft-facts strong{font-size:22px}
.staff-app .visit-periods{border:0}
.staff-app .visit-period{min-height:44px;padding:0 16px;border:1px solid var(--line);font-size:14px;color:var(--ink-soft)}
.staff-app .visit-period+.visit-period{margin-left:-1px}
.staff-app .visit-period[aria-pressed="true"]{background:var(--cream);border-color:var(--wine);color:var(--wine)}
.staff-app .visit-table{font-size:14px}
.staff-app .visit-table thead th{font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink-soft)}
.staff-app .visit-bar{opacity:1}
.staff-app .status-badge,.staff-app .staff-badge,.staff-app .chat-state{font-size:13px;letter-spacing:0;text-transform:none;border-radius:0}
.staff-app .reset-link-box,.staff-app .team-panel{font-size:14px;background:#fff}
.staff-app .reset-link-row input{font-size:14px}
/* Support inbox */
.staff-app .support-tools{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.staff-app .filter-bar{display:inline-flex;flex-wrap:wrap;margin:0}
.staff-app .filter-button{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink-soft);font:600 14px/1.2 var(--sans)}
.staff-app .filter-button+.filter-button{margin-left:-1px}
.staff-app .filter-button[aria-pressed="true"]{background:var(--cream);border-color:var(--wine);color:var(--wine)}
.staff-app .inbox-thread .planning-empty{padding:24px 0;border:0;background:none;color:var(--muted);font-size:15px}
.staff-app .unread-badge{min-width:22px;height:22px;border-radius:0;font-size:12px}
.staff-app .support-item{padding:12px 14px;border-radius:0;background:#fff}
.staff-app .support-item.is-current{border-color:var(--wine);background:var(--cream)}
.staff-app .support-item-top strong{font-size:15px;font-weight:700}
.staff-app .support-item-ref,.staff-app .support-item-meta,.staff-app .support-item-preview{font-size:13px;letter-spacing:0;color:var(--ink-soft)}
.staff-app .support-chat{border-radius:0}
.staff-app .chat-who strong{font-size:16px;font-weight:700}
.staff-app .chat-who span:not(.chat-avatar){font-size:14px}
.staff-app .bubble{font-size:15px;border-radius:0}
.staff-app .bubble-meta{font-size:13px;opacity:.85}
.staff-app .quick-option{min-height:44px;border-radius:0;font-size:14px}
.staff-app .office-hours,.staff-app .office-notice,.staff-app .office-contact{font-size:14px}

/* Edit order and Advanced editing windows: the same wine, square corners and Manrope, no shadow */
.is-staff .ep-dialog{border-radius:0;box-shadow:none;background:var(--paper);color:var(--ink);font:400 15px/1.5 var(--sans)}
.is-staff .ep-dialog::backdrop{background:rgba(48,45,40,.55);backdrop-filter:none}
.is-staff .ep-dialog h2{font:500 32px/1.15 var(--serif);color:var(--ink)}
.is-staff .ep-dialog h3{font:700 16px/1.3 var(--sans);color:var(--wine)}
.is-staff .ep-dialog button,.is-staff .ep-dialog .ep-button{min-height:44px;border-radius:0;font:600 14px/1.2 var(--sans);filter:none}
.is-staff .ep-dialog .ep-button.ep-primary{background:var(--wine);border-color:var(--wine);color:#fff}
.is-staff .ep-dialog .ep-button.ep-secondary{background:#fff;border-color:var(--line);color:var(--wine)}
.is-staff .ep-dialog .ep-button.ep-danger-button{background:#8a2c2c;border-color:#8a2c2c}
.is-staff .ep-dialog .ep-text-button{font-size:14px}
.is-staff .ep-dialog .ep-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:0;background:#fff;color:var(--ink-soft)}
.is-staff .ep-dialog :is(input,textarea,select,button):focus-visible{outline:2px solid var(--wine);outline-offset:2px}
.is-staff .ep-dialog .ep-field :is(input,select,textarea),.is-staff .ep-dialog #ep-copy{min-height:44px;border-color:#cfc6b8;border-radius:0;color:var(--ink);font-size:15px}
.is-staff .ep-panel{background:#fff;border-color:var(--line)}
.is-staff .ep-dialog label,.is-staff .ep-dialog .ep-field label{font-size:14px;letter-spacing:0;text-transform:none}
.is-staff .ep-dialog small,.is-staff .ep-header p,.is-staff .ep-dialog .ep-field small,.is-staff .ep-dialog .ep-panel-title p,.is-staff .ep-savebar,.is-staff #ep-save-status{font-size:13px}
.is-staff .ep-dialog #ep-copy{width:auto;min-width:12ch}
/* The Print copy box is as wide as "Kitchen", so the word never wraps (found while recording the staff guide, 17 Oct 2026). */
.is-staff .ep-print-actions{grid-template-columns:auto minmax(87px,max-content) auto}
.is-staff .ep-ref{font-size:13px;color:var(--muted);margin-bottom:4px}
.is-staff .ep-eyebrow{font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--muted)}
.is-staff .ep-header,.is-staff .ep-savebar,.is-staff .ep-footer{background:#fff}
.is-staff .ep-dialog .ep-panel{border-radius:0;box-shadow:none}
.is-staff .ep-state{border-radius:0;font-size:13px}
.is-staff .order-editor .oe-meal{border-color:var(--line)}
.is-staff .order-editor .oe-meal legend{font-size:14px}
.is-staff .ep-footer{position:sticky;bottom:0;z-index:2;border-top:1px solid var(--line)}

@media (max-width:1180px){
  .enq-split.has-panel{grid-template-columns:minmax(0,1fr) 380px}
  .enq-row{grid-template-columns:86px minmax(0,1fr) 130px}
  .enq-age{display:none}
}
/* Phones and narrow tablets: the rail becomes a top strip of tabs; an open enquiry takes the screen */
@media (max-width:900px){
  .staff-shell{display:block}
  .staff-rail{position:sticky;top:0;z-index:30;height:auto;flex-direction:row;align-items:center;gap:8px;padding:6px 12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
  .staff-brand,.staff-app .staff-tabs,.staff-rail-foot{flex:none}
  .staff-brand span{display:none}
  .staff-brand img{width:56px}
  .staff-app .staff-tabs{flex-direction:row}
  .staff-app .staff-tab{width:auto;white-space:nowrap}
  .staff-rail-foot{margin:0;display:flex;align-items:center}
  .staff-preview{display:none}
  .staff-main{padding:16px 16px 48px}
  .staff-head h1{font-size:30px}
  .enq-split.has-panel{display:block}
  .enq-split.has-panel .enq-main,#staff-panel:has(.enq-split.has-panel) :is(.enq-toolbar,.enq-filters){display:none}
  .enq-panel{position:static;max-height:none;overflow:visible;padding:4px 0 0;border:0;background:none}
  .enq-back{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0;margin:0 0 6px -4px;border:0;background:none;color:var(--wine);font:600 15px var(--sans);grid-column:1/-1;cursor:pointer}
  .enq-close{display:none}
  .enq-section dl{grid-template-columns:118px minmax(0,1fr)}
}
@media (max-width:720px){
  .enq-search{max-width:none;flex-basis:100%}
  .enq-toolbar>a.sbtn{display:none}
  .enq-filters{gap:16px}
  .enq-row{grid-template-columns:70px minmax(0,1fr);gap:10px;padding:10px 4px}
  .enq-row .enq-state{grid-column:2;flex-direction:row;align-items:center;gap:8px}
  .enq-month{display:none}
  .enq-agenda{display:block}
  .enq-agenda li{padding:10px 0;border-top:1px solid var(--line)}
  .staff-app .enq-agenda h3{margin:0 0 6px;font:700 15px/1.3 var(--sans)}
  .enq-agenda .enq-chip{white-space:normal;min-height:44px;padding:10px 12px}
  .enq-agenda .enq-booked{display:inline-block;margin-bottom:6px;padding:4px 8px;background:repeating-linear-gradient(135deg,var(--cream) 0 6px,#fff 6px 12px)}
  .enq-cal{padding:12px}
  .enq-cal-nav{margin-left:0}
  .staff-login{margin-top:8vh;padding:24px}
}
@media (prefers-reduced-motion:reduce){.sbtn,.staff-app .button{transition:none}}
/* Section numbers in the planner add nothing a heading does not say. */
.is-staff .ep-panel-title>span{display:none}

/* Staff motion (staff-motion.js). Quick and quiet, because staff use this all day: a press answers at once, colours
   ease instead of snapping, and only content someone asked for comes in, once (never while they type or read).
   Movement is transform and opacity on the site's two curves, 160 to 260ms. Under reduced motion only fades stay. */
@keyframes staff-rise{from{opacity:0;transform:translateY(8px)}}
@keyframes staff-from-right{from{opacity:0;transform:translateX(16px)}}
@keyframes staff-from-left{from{opacity:0;transform:translateX(-16px)}}
@keyframes staff-fade{from{opacity:0}}
@keyframes staff-line{from{transform:scaleX(0)}}
@keyframes staff-pop{0%{opacity:.4;transform:scale(.86)}60%{opacity:1;transform:scale(1.06)}100%{transform:none}}
@keyframes staff-dialog{from{opacity:0;transform:translateY(10px) scale(.98)}}

/* Everything pressable: colours ease, and a press shrinks it a touch at once. */
.sbtn,.staff-app .button,.staff-app .staff-tab,.enq-filter,.staff-app .filter-button,.staff-app .visit-period,.enq-close,.enq-back,.staff-app .quick-option,.enq-chip,.staff-app .support-item,.enq-row,.is-staff .ep-dialog button,.staff-login-back{transition:transform 160ms var(--ease-out),background-color 160ms ease,border-color 160ms ease,color 160ms ease,box-shadow 160ms ease}
:is(.sbtn,.staff-app .button,.enq-filter,.staff-app .filter-button,.staff-app .visit-period,.enq-close,.enq-back,.staff-app .quick-option,.enq-chip,.is-staff .ep-dialog button):active:not(:disabled){transform:scale(.97)}
:is(.staff-app .staff-tab,.staff-app .support-item):active{transform:scale(.98)}
.enq-row:active{background:var(--cream)}
.staff-app :is(input:not([type=checkbox]):not([type=radio]),select,textarea){transition:border-color 160ms ease}
.staff-app :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus{border-color:var(--wine)}

/* The side rail: one highlight with the gold current-state line slides to the chosen tab (along the strip on phones). */
.staff-app .staff-tabs{position:relative}
.staff-tab-ink{position:absolute;left:0;top:0;z-index:0;background:var(--cream);box-shadow:inset 3px 0 0 var(--gold);pointer-events:none;transition:transform 260ms var(--ease-in-out),width 260ms var(--ease-in-out),height 260ms var(--ease-in-out)}
.staff-app .staff-tabs.has-ink .staff-tab{position:relative;z-index:1}
.staff-app .staff-tabs.has-ink .staff-tab[aria-selected="true"]{background:none}
@media (max-width:900px){.staff-tab-ink{box-shadow:inset 0 -2px 0 var(--gold)}}

/* Messages along the bottom rise in and sink away instead of popping. */
#toast{display:block;visibility:hidden;opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity 160ms ease,transform 160ms var(--ease-out),visibility 0s linear 160ms}
#toast.visible{visibility:visible;opacity:1;transform:translate(-50%,0);pointer-events:auto;transition:opacity 220ms ease,transform 260ms var(--ease-out)}
/* Phones: above the floating dock (dashboard-polish.css), not over its buttons. */
@media(max-width:900px),(max-width:1100px) and (pointer:coarse){.is-staff #toast{bottom:calc(126px + env(safe-area-inset-bottom))}}

@media (prefers-reduced-motion:no-preference){
  /* Arriving: the sign-in card rises; after signing in the rail slides in and the work area follows. */
  .staff-login{animation:staff-rise 360ms var(--ease-out) backwards}
  .staff-shell .staff-rail{animation:staff-from-left 360ms var(--ease-out) backwards}
  .staff-shell .staff-head{animation:staff-rise 360ms var(--ease-out) 80ms backwards}
  /* A new tab: its heading and contents come in, a beat apart. */
  #staff-heading.is-entering{animation:staff-rise 240ms var(--ease-out) backwards}
  #staff-panel.is-entering>*{animation:staff-rise 260ms var(--ease-out) backwards}
  #staff-panel.is-entering>:nth-child(2){animation-delay:40ms}
  #staff-panel.is-entering>:nth-child(n+3){animation-delay:80ms}
  #staff-panel.is-back>*{animation:staff-from-left 260ms var(--ease-out) backwards}
  /* Enquiries: after a filter, a view or a refresh the rows rise in one after another; the chosen filter's gold line draws. */
  #enquiry-list.is-entering :is(.enq-group-title,.enq-empty,.enq-cal){animation:staff-rise 240ms var(--ease-out) backwards}
  #enquiry-list.is-entering .enq-rows>li{animation:staff-rise 240ms var(--ease-out) backwards}
  #enquiry-list.is-entering .enq-rows>li:nth-child(2){animation-delay:25ms}
  #enquiry-list.is-entering .enq-rows>li:nth-child(3){animation-delay:50ms}
  #enquiry-list.is-entering .enq-rows>li:nth-child(4){animation-delay:75ms}
  #enquiry-list.is-entering .enq-rows>li:nth-child(5){animation-delay:100ms}
  #enquiry-list.is-entering .enq-rows>li:nth-child(6){animation-delay:125ms}
  #enquiry-list.is-entering .enq-rows>li:nth-child(n+7){animation-delay:150ms}
  #enq-filters.is-entering .enq-filter[aria-pressed="true"]::after{transform-origin:left;animation:staff-line 280ms var(--ease-out)}
  /* The calendar's month slides the way it was moved. */
  #enquiry-list.is-next :is(.enq-month tbody,.enq-agenda,.enq-cal-head h2){animation:staff-from-right 240ms var(--ease-out)}
  #enquiry-list.is-prev :is(.enq-month tbody,.enq-agenda,.enq-cal-head h2){animation:staff-from-left 240ms var(--ease-out)}
  /* An enquiry opens: its panel slides in from the side and its sections follow. */
  #enquiry-panel.is-entering{animation:staff-from-right 260ms var(--ease-out)}
  #enquiry-panel.is-entering>:nth-child(n+2){animation:staff-rise 260ms var(--ease-out) 60ms backwards}
  /* A status change: the new status label pops into place. */
  :is(#enquiry-panel,#enquiry-list).is-updated .enq-pill{animation:staff-pop 360ms var(--ease-out)}
  /* Support: a filtered list rises in, an opened conversation fades up, and a reply just sent slides in on its side. */
  #inbox-list.is-entering>*{animation:staff-rise 220ms var(--ease-out) backwards}
  #inbox-list.is-entering>:nth-child(2){animation-delay:25ms}
  #inbox-list.is-entering>:nth-child(3){animation-delay:50ms}
  #inbox-list.is-entering>:nth-child(n+4){animation-delay:75ms}
  #inbox-thread.is-entering>*{animation:staff-rise 240ms var(--ease-out) backwards}
  .staff-app .bubble.is-new{animation:staff-from-right 300ms var(--ease-out)}
  /* Windows (remove an enquiry, edit an order, the event planner) rise and settle; the page behind dims in. */
  .is-staff dialog[open]{animation:staff-dialog 240ms var(--ease-out)}
  .is-staff dialog[open]::backdrop{animation:staff-fade 240ms ease}
}
/* Fewer, gentler: no shrinking or sliding, but new content still fades in (marked !important to come through the
   styles.css rule that switches every animation off under reduced motion). */
@media (prefers-reduced-motion:reduce){
  :is(.sbtn,.staff-app .button,.enq-filter,.staff-app .filter-button,.staff-app .visit-period,.enq-close,.enq-back,.staff-app .quick-option,.enq-chip,.is-staff .ep-dialog button,.staff-app .staff-tab,.staff-app .support-item):active{transform:none}
  :is(#staff-heading.is-entering,#staff-panel.is-entering>*,#staff-panel.is-back>*,#enquiry-panel.is-entering,#enquiry-list.is-entering :is(.enq-rows>li,.enq-group-title,.enq-empty,.enq-cal),#enquiry-list:is(.is-next,.is-prev) :is(.enq-month tbody,.enq-agenda,.enq-cal-head h2),:is(#enquiry-panel,#enquiry-list).is-updated .enq-pill,#inbox-list.is-entering>*,#inbox-thread.is-entering>*,.is-staff dialog[open],.is-staff .staff-app .staff-tabs.more-open .dock-more-item){animation:staff-fade 200ms ease backwards!important}
  /* Arriving: kept out of the list above so its lower weight still lets the phone rail (the dock) stay still. */
  .staff-login,.staff-shell :is(.staff-rail,.staff-head),.is-staff dialog[open]::backdrop,#enq-filters.is-entering .enq-filter[aria-pressed="true"]::after{animation:staff-fade 200ms ease backwards!important}
  #toast{transition:opacity 200ms ease,visibility 0s linear 200ms!important;transform:translate(-50%,0)}
  #toast.visible{transition:opacity 200ms ease!important}
}

/* Copy for CaterEase (caterease-copy.js): the enquiry in CaterEase's order, a Copy button on every line. */
/* The location slip uses a local, black-on-white QR with its four-module quiet zone. */
.location-card{display:grid;grid-template-columns:176px minmax(0,1fr);align-items:center;gap:24px;padding:18px;border:1px solid var(--line);background:#fff}
.location-code{width:176px;max-width:100%}
.location-code svg{display:block;width:100%;height:auto}
.location-copy{min-width:0}
.location-copy p{margin:0 0 12px}
.location-actions{display:flex;flex-wrap:wrap;gap:8px}
.location-actions .sbtn{white-space:normal;text-align:center}
#location-print-sheet{display:none}
@media(max-width:600px){.location-card{grid-template-columns:1fr;gap:16px}.location-code{justify-self:center}.location-actions{flex-direction:column}}
@media print{
  body:has(#location-print-sheet){background:#fff!important;overflow:visible!important;height:auto!important}
  body:has(#location-print-sheet)>:not(#location-print-sheet){display:none!important}
  #location-print-sheet{display:block!important;position:static!important;max-width:160mm;margin:0 auto;padding:10mm;background:#fff;color:#000;font:11pt/1.5 Arial,Helvetica,sans-serif;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  #location-print-sheet *{box-sizing:border-box;color:#000}
  #location-print-sheet .location-print-logo{display:block;width:32mm;height:auto;margin-bottom:2mm}
  #location-print-sheet header{border-bottom:1px solid #000;padding-bottom:4mm;margin-bottom:5mm}
  #location-print-sheet h1{font:bold 24pt/1.2 Georgia,serif;margin:2mm 0}
  #location-print-sheet h2{font:bold 14pt/1.4 Arial,sans-serif;margin:0;overflow-wrap:anywhere}
  #location-print-sheet p{margin:3mm 0;overflow-wrap:anywhere}
  .location-print-code{width:58mm;height:58mm;margin:5mm auto}
  .location-print-code svg{display:block;width:100%;height:100%}
  .location-print-scan{text-align:center;font-weight:bold}
  .location-print-access{border-top:1px solid #aaa;margin-top:6mm;padding-top:4mm}
  .location-print-access p{white-space:pre-wrap}
}

.ce-dialog{width:min(720px,calc(100% - 24px));max-height:calc(100vh - 32px);padding:0;border:0;background:var(--paper);color:var(--ink);font:400 15px/1.5 var(--sans)}
.ce-dialog::backdrop{background:rgba(48,45,40,.55)}
.ce-head{position:relative;display:grid;gap:6px;padding:22px 72px 14px 22px;border-bottom:1px solid var(--line);background:#fff}
.ce-head h2{margin:0;font:500 30px/1.1 var(--serif);color:var(--ink)}
.ce-head p{margin:0;font-size:14px;color:var(--ink-soft)}
.ce-head .enq-close{position:absolute;top:16px;right:16px}
.ce-rows{margin:0;padding:6px 22px;max-height:60vh;overflow:auto}
.ce-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:4px 14px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line)}
.ce-row dt{font-weight:700;font-size:14px;color:var(--ink-soft)}
.ce-row dd{margin:0;overflow-wrap:anywhere}
.ce-copy{min-height:36px;padding:0 12px;font-size:13px}
.ce-copy.is-copied,.ce-actions .is-copied{background:var(--cream);border-color:var(--wine);color:var(--wine)}
.ce-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 22px 20px}
@media (max-width:560px){.ce-row{grid-template-columns:minmax(0,1fr) auto}.ce-row dt{grid-column:1/-1}}
.staff-login-switch{min-height:44px;border:0;background:none;color:var(--wine);font:inherit;text-decoration:underline;cursor:pointer}
.staff-team,.staff-activity{max-width:1000px;margin:auto;padding:16px}
.staff-person-form{padding:20px;border:1px solid var(--line);background:#fff;margin:20px 0}
.staff-person,.staff-activity-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.staff-person h3,.staff-person p,.staff-activity-list p{margin:0 0 6px}
.staff-person-actions{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.staff-person-actions label{display:grid;gap:6px}
.staff-activity-list{list-style:none;padding:0;margin:16px 0}
.staff-activity-list span{display:block;margin:6px 0}
.staff-activity-list time{font-size:13px;color:var(--muted)}
.staff-team .reset-link-row input{min-width:0;width:100%}
@media(min-width:720px){.staff-team,.staff-activity{padding:24px}.staff-team .reset-link-row input{width:auto;flex:1}}

@media print {
  #location-print-sheet {font-size:12.1pt;background:#fff}
  #location-print-sheet header {display:grid;grid-template-columns:36.5mm auto;column-gap:5mm;align-items:center;border-color:#702b3d}
  #location-print-sheet .location-print-logo {width:36.5mm;margin:0;grid-row:1/3}
  #location-print-sheet h1 {font:normal 26.4pt/1.2 "Times New Roman",Times,serif;color:#702b3d;margin:0}
  #location-print-sheet header p {grid-column:2;font-size:9.9pt}
  #location-print-sheet h2 {font:normal 15.4pt/1.3 "Times New Roman",Times,serif;color:#702b3d;text-transform:capitalize}
}

/* Request rows (14 Oct 2026): who, the two labelled dates, then the 48-hour reply clock, status and owner. */
.staff-app .enq-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(160px,auto);align-items:center}
.enq-dates{display:grid;gap:4px;font-size:14px;color:var(--ink)}
.enq-dates small{display:inline-block;min-width:66px;margin-right:6px;font-size:12px;font-weight:700;color:var(--muted)}
.staff-app .enq-row .enq-state{align-items:flex-end}
.enq-clock{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.4;background:#f3eee4;color:var(--ink);white-space:nowrap}
.enq-clock.is-under24{background:#fbf0d9;color:#6e4400}
.enq-clock.is-under8{background:#fde3cf;color:#7d3300}
.enq-clock.is-overdue{background:#a31d2b;color:#fff}
.enq-group-note{margin:-2px 0 10px;font-size:13px;color:var(--muted)}
.enq-group+.enq-group{margin-top:18px}
.enq-filter.is-urgent span{padding:0 7px;border-radius:999px;background:#a31d2b;color:#fff}
.reply-alert{margin:0 0 16px;padding:14px 16px;border:1px solid #e8b4b8;border-radius:16px;background:#fff3f3;color:#4d1219}
.reply-alert-head{display:grid;gap:2px;margin-bottom:10px;font-size:14px}
.reply-alert-head strong{font-size:16px;color:#8f1a27}
.reply-alert ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.reply-alert-item{display:inline-grid;gap:1px;min-height:44px;padding:6px 12px;border:1px solid #e3a7ad;border-radius:12px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer}
.reply-alert-item span{font-size:13px;color:#8f1a27}
@media (hover:hover) and (pointer:fine){.reply-alert-item:hover{border-color:#a31d2b}}
.reply-alert p{margin:8px 0 0;font-size:13px}
.viewing-days{margin-top:28px}
@media (max-width:900px){.staff-app .enq-row{grid-template-columns:minmax(0,1fr) auto}.staff-app .enq-row .enq-dates{grid-column:1/-1;grid-row:2}}
@media (max-width:600px){.staff-app .enq-row{grid-template-columns:minmax(0,1fr)}.staff-app .enq-row .enq-state{grid-column:1;grid-row:3;flex-direction:row;flex-wrap:wrap;align-items:center}}
.reply-alert-all{margin-top:10px}
@media (max-width:600px){.reply-alert li:nth-child(n+4){display:none}.reply-alert-item{min-width:0}}

/* What's new (staff-updates.js) */
.staff-whatsnew{width:100%;justify-content:center;font-size:12px}
/* Its own light card with fixed colours: inheriting the dashboard's let it draw dark-on-dark (owner, 18 Oct 2026). */
.staff-updates{box-sizing:border-box;color-scheme:light;display:block;width:min(560px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:auto;max-height:min(85dvh,760px);margin:auto;overflow:auto;border:1px solid #dfd2c9;border-radius:14px;padding:26px 24px 20px;background:#fffcf8;color:#302d28;box-shadow:0 24px 60px #1c050b40;font:400 15px/1.55 var(--sans,Arial,sans-serif)}
.staff-updates::backdrop{background:#1c050b8c}
.staff-updates h2{outline:0;margin:0 0 4px;font:600 24px/1.2 var(--serif,Georgia,serif);color:#702b3d}
.staff-updates h2::after{content:"Changes to the staff dashboard, newest first.";display:block;margin-top:6px;font:400 14px/1.4 var(--sans,Arial,sans-serif);color:#6b655c}
.staff-updates section{margin-top:16px;padding:14px 16px;border:1px solid #ece3da;border-left:4px solid #d4b073;border-radius:10px;background:#fff}
.staff-updates section:first-of-type{border-left-color:#702b3d}
.staff-updates h3{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 8px;font:700 15px/1.3 var(--sans,Arial,sans-serif);color:#302d28}
.staff-updates section:first-of-type h3::after{content:"Latest";padding:2px 8px;border-radius:999px;background:#702b3d;color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.staff-updates h3 span{font-weight:600;font-size:13px;color:#6b655c}
.staff-updates ul{margin:0;padding-left:20px;color:#302d28}
.staff-updates li{margin:4px 0}
.staff-updates li::marker{color:#b08d4f}
.staff-updates-close{position:sticky;top:0;float:right;z-index:1;width:44px;height:44px;margin:-8px -8px 0 12px;border:1px solid #dfd2c9;border-radius:999px;background:#fff;color:#702b3d;font:400 28px/1 var(--sans,Arial,sans-serif);cursor:pointer;box-shadow:0 2px 8px #0000001a}
.staff-updates-close:hover{background:#f6ecee}
.staff-updates-close:focus-visible{outline:3px solid #d4b073;outline-offset:2px}
.staff-updates form{margin-top:18px;text-align:right}
.staff-updates form .sbtn{position:static;min-height:44px;padding:0 22px;border:0;border-radius:8px;background:#702b3d;color:#fff;font-weight:700}
.staff-updates form .sbtn:focus-visible{outline:3px solid #d4b073;outline-offset:2px}
