/* Shared platform rules; values belong to system-standards.js. */
body{font-size:var(--font-size-body);line-height:1.6}
.workspace .work-heading h1,.workspace .admin-console h1{font:600 var(--work-h1)/1.35 var(--font)}
.workspace .work-panel>h2,.workspace .panel>h2,.workspace .preparation-panel h2{font:600 var(--work-h2)/1.4 var(--font)}
.workspace h3{font:600 var(--work-h3)/1.4 var(--font)}
.workspace :is(.work-panel,.panel,.account-welcome,.preparation-panel){padding:var(--panel-padding);border-radius:var(--radius);margin-block-end:var(--section-gap)}
.workspace-main>:is(div,section,form,article,nav,fieldset)+:is(div,section,form,article,nav,fieldset){margin-block-start:var(--section-gap)}
.quick-grid{margin-block-end:var(--section-gap)}
:is(.quick-grid,.admin-kpis,.admin-columns,.studio-dishes,.creator-management-grid,.editor-grid){gap:var(--card-gap)}
.quick-grid>a,.quick-grid>.stat-card{padding:var(--panel-padding);border-radius:var(--radius)}
:is(.form-columns,.operation-form,.profile-fields,.application-grid){gap:var(--field-gap)}
.operation-form .field,.profile-fields .field{gap:var(--label-gap)}
.workspace :is(.button,button:not(.text-button),input:not([type=checkbox]):not([type=radio]):not([type=range]),select){min-height:var(--control-height)}
.workspace :is(input,select,textarea){font-size:var(--font-size-body)}
.workspace label,.operation-form .field{font-size:var(--font-size-label)}
.workspace .quick-grid strong{font-size:var(--work-h3);font-weight:600}
.workspace :is(.prep-metrics strong,.prep-qty,.stat-card strong){font-variant-numeric:tabular-nums}
.status-label[data-status=approved],.status-label[data-status=active],.status-label[data-status=completed]{color:var(--status-success)}
.status-label[data-status=submitted],.status-label[data-status=changes_requested],.status-label[data-status=processing]{color:var(--status-warning)}
.status-label[data-status=rejected],.status-label[data-status=suspended],.status-label[data-status=failed]{color:var(--status-danger)}
.status-label[data-status=draft],.status-label[data-status=archived]{color:var(--status-neutral)}
.standards-intro{max-width:var(--container-narrow)}
.standards-toc{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block:var(--section-gap)}
.standards-toc a{display:flex;align-items:center;min-height:var(--control-height);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-small)}
.standards-handbook{display:grid;gap:var(--section-gap)}
.standards-handbook .work-panel{margin:0;scroll-margin-top:var(--space-6)}
.standard-rule{display:grid;grid-template-columns:minmax(120px,160px) minmax(0,1fr);gap:var(--space-6);padding-block:var(--space-4);border-top:1px solid var(--line)}
.standard-rule dt{font-weight:600}.standard-rule dd{margin:0;overflow-wrap:anywhere}
.standard-tokens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.standard-token{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);background:var(--bg);border-radius:var(--radius-small);overflow-wrap:anywhere}
.standard-token code{min-width:0}.standard-token span{min-width:0;text-align:right}
.standards-sources{display:grid;gap:var(--space-3)}
.standards-sources a{text-decoration:underline}
@media(max-width:768px){.standard-rule{grid-template-columns:1fr;gap:var(--space-2)}.standard-tokens{grid-template-columns:1fr}.workspace .button,.workspace button,.workspace-sidebar nav a{min-height:var(--touch-target)}.standards-toc{display:grid;grid-template-columns:1fr}.workspace :is(.form-columns,.editor-grid){grid-template-columns:1fr}}
@media print{body:has(.standards-handbook){background:white;color:black;font-size:11pt}body:has(.standards-handbook) :is(.site-header,.site-footer,.workspace-sidebar,.mobile-bottom-nav,.support-launcher,.operation-tools,.preview-ribbon,.standards-toc,.skip-link){display:none!important}body:has(.standards-handbook) .workspace{display:block;width:100%;max-width:none;padding:0}body:has(.standards-handbook) .work-panel{background:white;color:black;border:1px solid #888;padding:12pt;break-inside:auto}body:has(.standards-handbook) h2{break-after:avoid}body:has(.standards-handbook) .standard-rule{break-inside:avoid}body:has(.standards-handbook) :is(.eyebrow,.muted){color:#333}}

/* Staff permissions: independent panels and large checkbox labels on all screens. */
.staff-form,.staff-members{display:grid;gap:var(--section-gap)}
.staff-choices{margin:0;padding:var(--panel-padding);border:1px solid var(--line);border-radius:var(--radius);min-width:0;display:grid;gap:var(--field-gap)}
.staff-choices legend{padding:0 var(--space-2);font-weight:600}
.staff-choices p{margin:0}
.staff-option{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-target);cursor:pointer}
.staff-option input{width:20px;height:20px;flex:0 0 20px;accent-color:var(--copper)}
.staff-member{padding:var(--panel-padding);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow-wrap:anywhere}
.staff-member summary{cursor:pointer;min-height:var(--touch-target);display:flex;align-items:center;color:var(--copper)}
.staff-member details[open] summary{margin-bottom:var(--space-4)}
.staff-form textarea,.staff-form input:not([type=checkbox]):not([type=hidden]){width:100%;min-width:0}
.staff-form textarea{min-height:100px}
.staff-current{color:var(--status-info)}
.staff-form+.field{margin-top:var(--section-gap)}
/* Administration already has persistent message navigation. Avoid a second
   floating inbox entry covering permission controls on narrow screens. */
body:has(.admin-console) #support-widget .support-launcher{display:none}
body:has(.admin-workspace .order-delivery-facts) #support-widget .support-launcher{display:none}
.order-state-summary{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}
.order-state-summary>span{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-label)}
.order-delivery-notes ul{padding-left:var(--space-6);margin:var(--space-2) 0 var(--space-4)}
.order-delivery-facts{margin-top:var(--space-4)}
.user-search{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--field-gap);align-items:end}
.user-search .field{margin:0;min-width:0}
.user-search :is(input,select){width:100%;max-width:100%}
.user-search-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}
.user-search>p{grid-column:1/-1;margin:0}
.user-secondary{display:block;color:var(--muted);margin-top:var(--space-1);overflow-wrap:anywhere}
.user-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--field-gap);margin:0}
.user-facts div{min-width:0}
.user-facts dt{font-weight:600;color:var(--muted)}
.user-facts dd{margin:var(--space-1) 0 0;overflow-wrap:anywhere}
@media(max-width:768px){.user-search,.user-facts{grid-template-columns:minmax(0,1fr)}}

/* Selling-state labels must wrap inside the menu card on narrow screens. */
.studio-dish > div:not(.food-photo):not(.studio-dish-actions){min-width:0;flex:1 1 0}
.studio-dish .status-label{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* One role accordion and one common settings entry; dense rows are continuous
   order content, not independent cards (the standard panel gaps still apply). */
.workspace-role-group>summary{min-height:var(--touch-target);cursor:pointer;display:flex;align-items:center;list-style:none}
.workspace-role-group>summary::-webkit-details-marker{display:none}
.workspace-role-group>summary::after{content:'+';margin-left:auto;font-size:20px;color:var(--copper)}
.workspace-role-group[open]>summary::after{content:'−'}
.workspace-common-links{display:grid;gap:var(--space-1);border-top:1px solid var(--line);padding-top:var(--space-3);margin-top:var(--space-3)}
.workspace-nav-group .admin-nav-group{margin:0;font-size:var(--font-size-body)}
.settings-sections{display:grid;gap:var(--section-gap)}
.settings-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
.settings-links a{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:var(--space-2);border-bottom:1px solid var(--line)}
.settings-links .icon{width:20px;height:20px}
.workspace-tabs{flex-wrap:wrap;gap:var(--space-2)}
.cook-filters{display:flex;align-items:end;flex-wrap:wrap;gap:var(--field-gap);margin-bottom:var(--section-gap)}
.cook-filters .field{display:flex;flex-direction:column;align-items:stretch;gap:var(--label-gap);margin:0;flex:1 1 160px;min-width:0;max-width:320px}
.cook-filters .field>span{display:block;line-height:1.5}
.cook-filters .field :is(select,input){box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);margin:0}
.cook-export-tools{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--section-gap)}
.cook-order-section,.cook-summary-section{margin-bottom:var(--section-gap)}
.cook-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.cook-section-heading h2{margin:0}
.cook-table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:var(--radius-small)}
.cook-table{width:100%;border-collapse:collapse;font-size:var(--font-size-label);line-height:1.5}
.cook-table :is(th,td){padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;overflow-wrap:anywhere}
.cook-table thead th{background:var(--surface-raised);font-weight:600;white-space:nowrap}
.cook-table tbody+tbody{border-top:2px solid var(--control-border)}
.cook-table small{display:block;color:var(--muted);font-weight:400;margin-top:var(--space-1)}
.cook-table .numeric{font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}
.cook-table .cook-total{background:var(--surface-raised);min-width:72px}
.cook-total strong{font-size:26px;color:var(--copper)}
.cook-total small{font-size:var(--font-size-caption)}
.cook-order-link{min-height:var(--touch-target);display:inline-flex;align-items:center;text-align:left;max-width:100%;overflow-wrap:anywhere;word-break:break-word;font-variant-numeric:tabular-nums}
.cook-order-group th{width:24%}.cook-summary th[scope=rowgroup]{width:15%}
.cook-own-item{background:var(--bg)}
.cook-preparation-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}
.mine-label{font-size:var(--font-size-caption);color:var(--copper);white-space:nowrap}
.cook-order-highlight{outline:3px solid var(--copper);outline-offset:-3px;background:var(--surface-raised)}
.whole-order-note td{color:var(--muted);background:var(--bg)}
.dish-note-field{margin-top:var(--space-3)}
.cook-print-area{display:none}
@media(max-width:768px){
 .workspace .workspace-sidebar nav{display:grid!important;grid-template-columns:1fr!important;gap:var(--space-2)}
 .workspace .workspace-sidebar{position:static;max-height:none;padding-bottom:var(--space-4)}
 .workspace-role-group{width:100%;min-width:0}
 .workspace-sidebar nav a{white-space:normal;min-width:0}
 .workspace-common-links{grid-template-columns:repeat(3,minmax(0,1fr))}
 .workspace-common-links a{font-size:var(--font-size-label);padding:var(--space-2);gap:var(--space-1);justify-content:center;flex-wrap:wrap}
 .workspace-common-links a .icon{width:18px;height:18px}
 .settings-links{grid-template-columns:1fr}
 .cook-filters .field{max-width:none;flex-basis:120px}
 .cook-table{min-width:720px}
 .cook-export-tools .button{flex:1 1 130px}
 .cook-table-scroll:focus-visible{outline:2px solid var(--focus-color)}
}
@media print{
 body:has(.cook-print-area)>*:not(.cook-print-area){display:none!important}
 .cook-print-area{display:block;color:black;font-size:10pt}
 .cook-print-area .work-panel{padding:0;border:0;margin-bottom:20pt;background:white}
 .cook-print-area .cook-table-scroll{overflow:visible;border:0}
 .cook-print-area .cook-table{min-width:0;font-size:9pt}
 .cook-print-area .cook-table thead{display:table-header-group}
 .cook-print-area .cook-table tr{break-inside:avoid}
 .cook-print-area .cook-order-link{min-height:0;color:black;padding:0;font-size:9pt}
 .cook-print-area .cook-total strong{font-size:16pt}
}

@media(max-width:768px){.workspace .workspace-sidebar{display:block}.workspace .workspace-identity{margin-bottom:var(--space-3)}}

/* Order identifiers remain compact links with a full touch target. */
.workspace .cook-order-link{background:none;border:0;padding:0;color:var(--copper);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.workspace-role-group>summary .admin-nav-group{font-size:var(--font-size-body);font-weight:600;margin:0}
.cook-section-heading h2{font:600 var(--work-h2)/1.4 var(--font)}

.cook-scroll-hint{display:none}
@media(max-width:768px){.cook-scroll-hint{display:block}}
/* Common Messages and Help remain available; the floating desktop launcher
   would cover table totals at the viewport edge on this dense workbench. */
@media(min-width:769px){body:has(.cook-order-section) .support-launcher{display:none}}
@media print{.cook-print-area .cook-scroll-hint{display:none}}

/* A unified stream keeps type and read state visible without category tabs. */
.inbox-tools{margin-bottom:var(--section-gap)}
.inbox-record{display:flex;align-items:center;justify-content:space-between;gap:var(--field-gap);padding:var(--space-4);min-height:var(--touch-target)}
.inbox-record>div{min-width:0;overflow-wrap:anywhere}
.inbox-record p{margin:var(--space-2) 0 0}
.inbox-type{color:var(--copper);margin-right:var(--space-2)}
.inbox-read-state{flex-shrink:0;font-size:var(--font-size-label)}
.inbox-record.unread{border-left:3px solid var(--copper);background:var(--surface-raised)}
.refund-section{scroll-margin-top:120px}

.sales-insights{margin-block-start:var(--section-gap)}
.sales-insights>.work-panel>.field{max-width:20rem}

/* Daily registration data remains a separate block from account filters. */
.registration-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);min-width:0}
.registration-overview>*{min-width:0}
.registration-overview>p{margin:0}
.registration-daily summary{margin-block-end:var(--space-3)}

.registration-overview .admin-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.registration-daily th{white-space:normal}
@media(max-width:1100px){.registration-overview .admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.staff-driver-details{display:grid;gap:var(--field-gap)}
.staff-driver-details[hidden]{display:none}

.staff-driver-details [hidden]{display:none}

/* Keep task content above the fold on phones; desktop retains the full sidebar. */
.workspace-menu-toggle { display:none; }
@media(max-width:768px) {
 .workspace .workspace-sidebar { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3); }
 .workspace .workspace-identity { margin:0;min-width:0;overflow-wrap:anywhere; }
 .workspace-menu-toggle { display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--font-size-label); }
 .workspace-menu-content { display:none;grid-column:1/-1;min-width:0; }
 .workspace-menu-open>.workspace-menu-content { display:block; }
}

/* Staff page has dense administrative forms, while retaining shared 48px targets
   and separate surfaces. Scope density here rather than shrinking other pages. */
.staff-access-page .staff-form{gap:var(--space-3)}
.staff-access-page .work-panel{padding:var(--space-4)}
.staff-access-page .work-panel :is(h2,h3,p){margin-block:0 var(--space-3)}
.staff-access-page .staff-choices{gap:var(--space-1);padding:var(--space-3)}
.staff-access-page .staff-members{gap:var(--space-3)}
.staff-access-page .staff-member{padding:var(--space-3)}
.staff-access-page .driver-create{margin-top:var(--space-4);border-top:1px solid var(--line);padding-top:var(--space-4)}
.staff-access-page .driver-create form>button[type=submit]{background:var(--copper);color:var(--surface);font-weight:600}
.staff-access-page .staff-invite-panel>summary{cursor:pointer;min-height:var(--touch-target);display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--copper)}
.staff-access-page .staff-invite-panel>summary::before{content:'+'}
.staff-access-page .staff-invite-panel[open]>summary::before{content:'−'}
.staff-access-page .staff-invite-panel[open]>summary{margin-bottom:var(--space-3)}
@media(min-width:700px){
 .staff-access-page .driver-create .staff-form{grid-template-columns:repeat(2,minmax(0,1fr))}
 .staff-access-page .driver-create .staff-form>p,.staff-access-page .driver-create .staff-form>section{grid-column:1/-1}
 .staff-access-page .staff-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
 .staff-access-page .staff-choices>p{grid-column:1/-1}
 .staff-access-page .staff-members{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Hidden postcode fields must override the shared field grid display. */
[data-managed-postcodes][hidden]{display:none}

.driver-credentials-dialog{width:min(560px,calc(100vw - 32px));max-height:85dvh;overflow:auto;margin:auto;border:1px solid var(--line);border-radius:12px}.driver-credentials-dialog::backdrop{background:#0008}

/* All business forms, including those outside a workspace, avoid iOS focus zoom. */
@media(max-width:768px){
 body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),textarea,select){font-size:16px}
 dialog :is(.button,button){min-height:var(--touch-target)}
}
