/* staff flow preview */
.flow{display:flex;flex-direction:column;gap:20px;max-width:980px;padding-top:36px}
.flow-step{display:flex;gap:24px;background:var(--panel);border-radius:28px;padding:clamp(22px,3vw,34px)}
.flow-num{flex:none;font:700 44px/1 var(--display);color:var(--gold);font-variant-numeric:tabular-nums}
.flow-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px}
.mail{background:var(--cream);color:var(--ink);border-radius:20px;padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.mail-head{display:flex;flex-direction:column;gap:4px;border-bottom:1px solid var(--line-cream);padding-bottom:12px;font-size:15px}
.mail-head span{display:inline-block;min-width:76px;color:var(--ink-2);font-style:italic}
.mail-head .subj{font:700 21px/1.25 var(--display);margin-top:6px}
.mail-intro{font-size:17px}
.mail-dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 24px}
.mail-dl div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line-cream);font-size:16px}
.mail-dl dt{color:var(--ink-2);font-style:italic;flex:none}
.mail-dl dd{margin:0;font-weight:700;text-align:right;min-width:0}
.sheet-wrap{overflow-x:auto;border-radius:16px;background:#fff}
.sheet{border-collapse:collapse;width:100%;min-width:860px;font:14px/1.3 system-ui,-apple-system,sans-serif;color:#1f2937}
.sheet th{background:#1D6F42;color:#fff;text-align:left;padding:9px 10px;font-weight:600;white-space:nowrap}
.sheet td{padding:10px;border-bottom:1px solid #e5e7eb;white-space:nowrap}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;background:#E5E7EB;color:#374151;font-weight:600}
.pill.prov{background:#FEF3C7;color:#92400E}
.pill.paid{background:#D1FAE5;color:#065F46}
.quote{background:var(--deep);border-radius:20px;padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.dep{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;color:var(--mist)}
.dep b{font:700 40px/1 var(--display);color:var(--gold)}
.quote .btn{align-self:flex-start}
.btn:disabled{opacity:.75;cursor:default;transform:none}
.notes{display:flex;flex-direction:column;gap:8px}
.note-item{background:var(--deep);border-radius:16px;padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.note-item b{color:var(--gold);font-size:15px}
@media (max-width:700px){.flow-step{flex-direction:column;gap:10px}.flow-num{font-size:34px}}
.legend-sm{font-weight:700;font-size:16px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.linkish{background:none;border:0;color:var(--gold);font:italic 400 15px var(--body);text-decoration:underline;cursor:pointer;min-height:44px;padding:0}
.picker{display:flex;flex-direction:column;gap:10px}
.pick-add{display:flex;gap:8px;flex-wrap:wrap}
.pick-add select{flex:1 1 240px;min-width:0;font:inherit;font-size:16px;color:var(--cream);background:var(--royal);border:1.5px solid rgba(244,238,228,.22);border-radius:14px;min-height:48px;padding:8px 12px}
.pick-add .btn{min-height:48px}
.pick-lines{display:flex;flex-direction:column;gap:6px}
.pick-line{display:grid;grid-template-columns:minmax(0,1fr) 76px 104px 96px 36px;align-items:center;gap:10px;background:var(--royal);border-radius:14px;padding:8px 10px 8px 14px;font-size:15px}
.pl-name{min-width:0;font-weight:700}
.pl-qty input{width:100%;font:inherit;color:var(--cream);background:var(--deep);border:1px solid rgba(244,238,228,.25);border-radius:10px;min-height:40px;padding:4px 8px;text-align:right;font-variant-numeric:tabular-nums}
.pl-unit{color:var(--mist);font-style:italic;white-space:nowrap}
.pl-tot{text-align:right;font-variant-numeric:tabular-nums}
.pl-rm{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--cream);font-size:20px;line-height:1;cursor:pointer}
.pick-empty{color:var(--mist);font-style:italic;font-size:15px}
.totals{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:8px}
.totals>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;color:var(--mist);font-variant-numeric:tabular-nums}
.totals>div b{color:var(--cream)}
.totals .big b{font-size:20px}
.totals .dep{border-top:1px solid var(--line);margin-top:6px;padding-top:12px}
.mail-dl div.strong dd,.mail-dl div.strong dt{font-weight:700;color:var(--ink)}
input:disabled{opacity:.6}
@media (max-width:620px){.pick-line{grid-template-columns:64px auto minmax(0,1fr) 36px;row-gap:6px}.pl-name{grid-column:1/-1}}
.fixed-due{background:var(--royal);border-radius:16px;min-height:50px;padding:10px 16px;font-weight:700;line-height:1.3}.fixed-due span{font-weight:400;font-style:italic;color:var(--mist);font-size:15px}

/* staff previews bar */
.staffbar{background:var(--amber);color:var(--ink)}
.staffbar .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-block:8px}
.staffbar nav{display:flex;gap:4px 18px;flex-wrap:wrap}
.staffbar a{color:var(--ink);font-weight:700;font-size:15px;text-decoration:none;min-height:36px;display:inline-flex;align-items:center}
.staffbar a[aria-current=page]{text-decoration:underline;text-underline-offset:5px}
.tag-preview{background:var(--ink);color:var(--cream);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}

/* customer booking page */
.portal{max-width:1040px;padding-top:44px;display:flex;flex-direction:column;gap:20px}
.portal-head{display:flex;flex-direction:column;gap:10px}
.progress-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;counter-reset:st}
.progress-steps li{counter-increment:st;background:var(--panel);border-radius:18px;padding:14px 16px 14px 48px;position:relative;display:flex;flex-direction:column;gap:2px}
.progress-steps li::before{content:counter(st);position:absolute;left:14px;top:14px;width:24px;height:24px;border-radius:999px;border:1.5px solid var(--mist-2);display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--mist)}
.progress-steps li.done::before{content:"✓";background:var(--gold);border-color:var(--gold);color:var(--ink)}
.progress-steps b{font-size:16px}
.progress-steps span{color:var(--mist);font-size:14px;font-style:italic}
.p-card{background:var(--panel);border-radius:26px;padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:14px;scroll-margin-top:calc(var(--header-h) + 16px)}
.p-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.p-count{color:var(--gold);font-style:italic;font-size:16px}
.share{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.share code{flex:1 1 260px;min-width:0;background:var(--deep);border:1px dashed var(--gold);border-radius:14px;padding:12px 16px;font:16px/1.3 ui-monospace,Menlo,monospace;color:var(--cream);user-select:all;overflow-wrap:anywhere}
.bar{height:10px;border-radius:999px;background:var(--deep);overflow:hidden}
.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--amber));border-radius:999px;transition:width .5s var(--ease)}
.tbl-wrap{overflow-x:auto;border-radius:16px;background:var(--deep)}
.tbl{border-collapse:collapse;width:100%;min-width:620px;font-size:15px}
.tbl th{text-align:left;padding:10px 12px;color:var(--gold);font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.pending td{color:var(--mist-2)}
.tbl .wait{font-style:italic;color:var(--amber)}
.tbl .up{font-size:12px;color:var(--gold);font-weight:700}
.tbl tr.grp td{color:var(--gold);font-weight:700;font-style:italic;padding-top:14px}
.tbl tr.warn td{color:var(--amber);font-weight:700}
.addg{display:flex;gap:8px;flex:1 1 280px}
.addg input{flex:1;min-width:0;font:inherit;color:var(--cream);background:var(--deep);border:1.5px solid rgba(244,238,228,.22);border-radius:999px;min-height:48px;padding:0 18px}
.dish-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.dish-sum ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:15px;color:var(--mist)}
.dish-sum li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--line);padding-bottom:4px}
.dish-sum b{color:var(--cream)}
.tl-edit{display:flex;flex-direction:column;gap:6px}
.tl-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px}
.tl-row input{font:inherit;font-size:16px;color:var(--cream);background:var(--deep);border:1.5px solid rgba(244,238,228,.18);border-radius:12px;min-height:46px;padding:6px 12px;min-width:0}
.p-card .list-card .li .p{font-variant-numeric:tabular-nums}

/* guest pre-order */
.pre{max-width:820px;padding-top:44px;display:flex;flex-direction:column;gap:24px}
.pre-form{display:flex;flex-direction:column;gap:22px;background:var(--panel);border-radius:26px;padding:clamp(20px,3vw,32px)}
.pre-step{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.pre-step legend{margin-bottom:10px}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:8px}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt>span{display:flex;flex-direction:column;gap:3px;height:100%;background:var(--deep);border:1.5px solid rgba(244,238,228,.18);border-radius:16px;padding:14px 16px;transition:border-color .2s,background-color .2s}
.opt b{font-size:17px}
.opt em{color:var(--mist);font-size:15px}
.opt i{color:var(--gold);font-style:normal;font-weight:700;font-size:14px}
.opt input:checked+span{border-color:var(--gold);background:rgba(217,185,119,.14)}
.opt input:focus-visible+span{outline:3px solid var(--amber);outline-offset:2px}

/* run sheets */
.kit{padding-top:40px;display:flex;flex-direction:column;gap:22px}
.kit-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.role{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--deep);border-radius:999px;padding:6px 6px 6px 16px}
.role button{min-height:40px;padding:0 16px;border-radius:999px;border:0;background:transparent;color:var(--cream);font:700 15px/1 var(--body);cursor:pointer}
.role button[aria-pressed=true]{background:var(--gold);color:var(--ink)}
.kit-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
.kit-list{display:flex;flex-direction:column;gap:8px;position:sticky;top:calc(var(--header-h) + 16px)}
.k-item{text-align:left;background:var(--panel);border:1.5px solid transparent;border-radius:18px;padding:14px 16px;color:var(--cream);font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.k-item.on{border-color:var(--gold);background:var(--deep)}
.k-date{color:var(--gold);font-size:14px;font-style:italic}
.k-title{font:700 19px/1.2 var(--display)}
.k-meta{color:var(--mist);font-size:14px}
.k-flag{margin-top:4px;align-self:flex-start;background:rgba(232,166,90,.2);color:var(--amber);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}
.sheet-doc{background:var(--cream);color:var(--ink);border-radius:26px;padding:clamp(20px,3vw,34px);display:flex;flex-direction:column;gap:22px;min-width:0}
.sheet-doc .eyebrow{color:var(--brass)}
.sheet-doc .muted{color:var(--ink-2)}
.sheet-doc .small{color:var(--ink-2)!important}
.sd-facts{margin:12px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.sd-facts div{background:#fff;border-radius:14px;padding:10px 14px}
.sd-facts dt{color:var(--brass);font-size:13px;font-style:italic}
.sd-facts dd{margin:0;font-weight:700;font-size:16px;line-height:1.3}
.sd-upd{margin-top:10px;font-size:14px;color:#2F6B45;font-style:italic}
.sd-sec{display:flex;flex-direction:column;gap:10px}
.sd-sec h3{font:700 24px/1.1 var(--display);border-bottom:2px solid var(--ink);padding-bottom:6px}
.sd-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sd-tl li{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px dashed var(--line-cream)}
.sd-tl b{font-variant-numeric:tabular-nums}
.sheet-doc .tbl-wrap{background:#fff}
.sheet-doc .tbl{color:var(--ink);min-width:520px}
.sheet-doc .tbl th{color:var(--brass);border-color:var(--line-cream)}
.sheet-doc .tbl td{border-color:var(--line-cream)}
.sheet-doc .tbl tr.grp td{color:var(--brass)}
.sheet-doc .tbl tr.warn td{color:#9A4A12}
.sd-alert h3{border-color:#B3261E;color:#8C1D18}
.sd-alert .tbl td b{color:#8C1D18}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ncard{background:#fff;border:1px solid var(--line-cream);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.ncard b{font:700 18px/1 var(--display)}
.ncard .nm{font-weight:700}
.ncard .dc{color:var(--ink-2);font-style:italic}
.ncard.al{border-color:#B3261E;box-shadow:inset 4px 0 0 #B3261E}
.ncard .nt{color:#8C1D18;font-weight:700;font-size:13px}
.sheet-doc .ticks li{color:var(--ink)}
.sheet-doc .ticks li::before{background:var(--brass)}
.sd-money{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.sd-money div{background:#fff;border-radius:14px;padding:10px 14px}
.sd-money dt{color:var(--brass);font-size:13px;font-style:italic}
.sd-money dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:900px){.kit-grid{grid-template-columns:1fr}.kit-list{position:static;flex-direction:row;overflow-x:auto;padding-bottom:4px}.k-item{flex:0 0 230px}}

/* ---------- staff area ---------- */
.st-head{background:var(--deep);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:30}
.st-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;flex-wrap:wrap}
.st-head img{height:34px;width:auto}
.st-nav{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;font-size:16px}
.st-nav a{text-decoration:none;min-height:40px;display:inline-flex;align-items:center}
.st-nav a[aria-current=page]{color:var(--gold);text-decoration:underline;text-underline-offset:6px}
.st-nav button{background:none;border:1px solid var(--line);color:var(--cream);border-radius:999px;min-height:38px;padding:0 14px;font:inherit;font-size:15px;cursor:pointer}
.st-main{padding-block:28px 80px;display:flex;flex-direction:column;gap:18px}
.st-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.tabs-row{display:flex;gap:6px;flex-wrap:wrap}
.tabs-row button{min-height:42px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:transparent;color:var(--cream);font:700 15px/1 var(--body);cursor:pointer}
.tabs-row button[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.blist{display:flex;flex-direction:column;gap:8px}
.bitem{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--panel);border-radius:18px;padding:14px 18px;text-decoration:none;color:var(--cream)}
.bitem:hover{color:var(--cream);background:#22397a}
.bitem .d{font:700 18px/1.15 var(--display)}
.bitem .d small{display:block;font:italic 400 14px var(--body);color:var(--mist)}
.bitem .t{font-weight:700}
.bitem .s{color:var(--mist);font-size:15px}
.bitem .r{text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.pill.st-enquiry{background:#E0E7FF;color:#1E3A8A}
.pill.st-provisional,.pill.st-balance_requested{background:#FEF3C7;color:#92400E}
.pill.st-confirmed,.pill.st-paid{background:#D1FAE5;color:#065F46}
.pill.st-cancelled{background:#FEE2E2;color:#991B1B}
.money{font-variant-numeric:tabular-nums}
.empty-state{background:var(--panel);border-radius:18px;padding:22px;color:var(--mist);font-style:italic}
.grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start}
.card{background:var(--panel);border-radius:22px;padding:clamp(18px,2.5vw,26px);display:flex;flex-direction:column;gap:14px;min-width:0}
.card h2{font:700 24px/1.15 var(--display);margin:0}
.card .sub{color:var(--mist);font-size:15px;font-style:italic;margin-top:-8px}
.row3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.field input[disabled],.field textarea[disabled],.field select[disabled]{opacity:.7}
.lines-tbl{width:100%;border-collapse:collapse;font-size:15px}
.lines-tbl th{text-align:left;color:var(--gold);font-weight:700;padding:6px 6px;border-bottom:1px solid var(--line);white-space:nowrap}
.lines-tbl td{padding:6px;border-bottom:1px solid var(--line);vertical-align:middle}
.lines-tbl input{width:100%;min-width:60px;font:inherit;color:var(--cream);background:var(--deep);border:1px solid rgba(244,238,228,.22);border-radius:10px;min-height:40px;padding:4px 8px;text-align:right}
.lines-tbl td:first-child{min-width:180px}
.xbtn{width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--cream);cursor:pointer;font-size:18px;line-height:1}
.sumrows{display:flex;flex-direction:column}
.sumrows div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line);font-variant-numeric:tabular-nums}
.sumrows div.big{font-weight:700;font-size:18px}
.sumrows div span:first-child{color:var(--mist)}
.paylist{display:flex;flex-direction:column;gap:6px}
.payrow{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;background:var(--deep);border-radius:12px;padding:10px 12px;font-size:15px}
.action{background:var(--deep);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}
.action h3{margin:0;font:700 19px var(--display)}
.note-ok{background:rgba(127,191,140,.18);border:1px solid rgba(127,191,140,.5);border-radius:14px;padding:12px 14px;font-size:15px}
.note-err{background:rgba(232,166,90,.16);border:1px solid var(--amber);border-radius:14px;padding:12px 14px;font-size:15px}
.linkbox{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.linkbox code{flex:1 1 220px;min-width:0;background:var(--deep);border:1px dashed var(--line);border-radius:12px;padding:10px 12px;font:14px/1.3 ui-monospace,Menlo,monospace;overflow-wrap:anywhere;user-select:all}
.logl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--mist)}
.logl b{color:var(--cream);font-weight:700}
.btn-sm{min-height:40px;padding:0 16px;font-size:15px}
.btn-danger{background:transparent;border-color:#E58A82;color:#F2B8B2}
.toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom,0px));translate:-50% 0;background:var(--cream);color:var(--ink);border-radius:999px;padding:12px 20px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.35);z-index:60}
.signin{max-width:460px;margin:8vh auto 0;display:flex;flex-direction:column;gap:16px}
.mailrow{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--panel);border-radius:14px;padding:12px 16px;font-size:15px;text-decoration:none;color:var(--cream)}
.mailrow .muted{font-size:13px}
.team-row{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;gap:10px;align-items:center;background:var(--panel);border-radius:14px;padding:12px 16px}
.team-row select{font:inherit;color:var(--cream);background:var(--deep);border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px}
.choose-box{display:flex;flex-direction:column;gap:8px}
.choose-box .chips .chip span{min-height:40px;font-size:15px}
@media (max-width:860px){.grid2{grid-template-columns:1fr}.bitem{grid-template-columns:90px minmax(0,1fr)}.bitem .r{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}.mailrow{grid-template-columns:1fr}.team-row{grid-template-columns:1fr}}
@media print{.st-head,.kit-list,.role,.no-print{display:none!important}body{background:#fff}.sheet-doc{box-shadow:none}}
@media (max-width:600px){
.lines-tbl thead{display:none}
.lines-tbl,.lines-tbl tbody{display:block}
.lines-tbl tr{display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(64px,auto) 34px;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.lines-tbl td{padding:0;border:0;min-width:0}
.lines-tbl td:first-child{grid-column:1/-1;min-width:0}
.lines-tbl input{min-width:0}
}
[hidden]{display:none!important}
.jump a{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-size:15px}
.card[id]{scroll-margin-top:80px}
@media (min-width:861px){.jump{display:none}}
.portal .li .p{white-space:nowrap;font-variant-numeric:tabular-nums}.portal .li>div:first-child{min-width:0}
.sheet-doc .tbl{min-width:0}.sheet-doc .tbl td:nth-child(2),.sheet-doc .tbl th:nth-child(2){white-space:nowrap}
/* director page */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.kpi{background:var(--panel);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi .kl{color:var(--mist);font-size:14px}
.kpi .kv{font:700 34px/1.1 var(--display);color:var(--cream);font-variant-numeric:tabular-nums}
.kpi .ks{color:var(--mist);font-size:13px;font-style:italic}
.kpi.warn{box-shadow:inset 4px 0 0 var(--amber)}
.kpi.warn .ks{color:var(--amber);font-style:normal;font-weight:700}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--mist)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:14px;height:10px;border-radius:3px}
.sw.bk{background:var(--gold)}.sw.hd{background:rgba(232,166,90,.55)}.sw.tg{height:2px;background:var(--cream);border-radius:1px}
.dchart{width:100%;min-width:560px;height:auto;display:block}
.dchart .gl{stroke:rgba(244,238,228,.1);stroke-width:1}
.dchart .ax{fill:var(--mist);font-size:12px;font-family:var(--body)}
.dchart .vl{fill:var(--cream);font-size:12px;font-weight:700;font-family:var(--body)}
.dchart .bk{fill:var(--gold)}.dchart .hd{fill:rgba(232,166,90,.55)}
.dchart .tg{stroke:var(--cream);stroke-width:2;stroke-linecap:round}
.dchart .mb:hover rect,.dchart .mb:focus rect{fill:rgba(244,238,228,.05)}
.dchart .mb:focus{outline:none}
.dtbl{min-width:0}
.dtbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.dtbl tr.cur td{background:rgba(217,185,119,.1)}
.dtbl tr.tot td{font-weight:700;border-top:2px solid var(--line)}
.dtbl td.up{color:#7FBF8C;font-weight:700}.dtbl td.down{color:var(--amber);font-weight:700}
.dtbl.set input{width:100%;min-width:70px;font:inherit;font-size:15px;color:var(--cream);background:var(--deep);border:1px solid rgba(244,238,228,.22);border-radius:8px;min-height:36px;padding:2px 8px;text-align:right}
.dh{font:700 17px var(--display);margin:6px 0 0}
details.card summary{cursor:pointer;list-style:none}
details.card summary::-webkit-details-marker{display:none}
details.card summary::after{content:" +";color:var(--gold);font:700 22px var(--display)}
details.card[open] summary::after{content:" −"}
/* staff area typeface: Jost for clear numbers, Didot kept for page titles */
@font-face{font-family:"Jost";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/jost-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jost";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/jost-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fonts/jost-latin-wght-italic.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
body.staff{--title:var(--display);--body:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;--display:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.5;font-variant-numeric:lining-nums tabular-nums}
body.staff h1{font-family:Didot,"Didot LT STD","Linotype Didot","Bodoni Moda Variable","Bodoni 72",Georgia,serif;font-variant-numeric:normal}
body.staff .card h2,body.staff .sd-sec h3{font-weight:600;letter-spacing:-.005em}
body.staff .kpi .kv{font-weight:600;letter-spacing:-.01em}
body.staff .bitem .d,body.staff .k-title,body.staff .ncard b,body.staff .dh,body.staff .action h3{font-weight:600}
body.staff .sd-head .h-lg{font-family:"Jost",system-ui,sans-serif;font-weight:600;font-size:clamp(28px,3.2vw,40px)}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;cursor:pointer}
.agree input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--gold)}
.agree a{color:var(--gold)}
/* meal choice grid */
.mgrid th.mg-co{text-align:center;border-left:1px solid var(--line)}
.mgrid th.mg-opt{white-space:normal;min-width:84px;max-width:130px;font-size:13px;text-align:center;vertical-align:bottom}
.mgrid .mg-first{border-left:1px solid var(--line)}
.mgrid td.mg-cell{text-align:center;vertical-align:middle;padding:4px}
.mgrid td{vertical-align:middle}
.mgrid input:not([type=radio]){min-width:150px;padding:8px 10px;font-size:15px}
.mg-tick{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;cursor:pointer;border-radius:10px}
.mg-tick:hover{background:rgba(255,255,255,.06)}
.mg-tick input{width:22px;height:22px;accent-color:var(--gold);cursor:pointer;margin:0}
.mgrid tfoot td{border-top:1px solid var(--line);color:var(--gold)}
.mg-course{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.tbl-wrap{position:relative}
.mgrid input:not([type=radio]){width:100%;font:inherit;color:var(--cream);background:var(--deep);border:1px solid rgba(244,238,228,.22);border-radius:10px;min-height:40px}
.mgrid tbody td:first-child,.mgrid tfoot td:first-child,.mgrid thead tr:first-child th:first-child{position:sticky;left:0;z-index:1;background:var(--deep)}
@media (max-width:600px){.mgrid input:not([type=radio]){min-width:120px}}
/* to-do list */
.sumrows span.down{color:var(--amber);font-weight:700}
.todo-card{margin-bottom:22px}
.td-badge{display:inline-flex;min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:var(--gold);color:var(--navy,#16285A);font-size:14px;font-weight:700;align-items:center;justify-content:center;vertical-align:middle}
.td-badge:empty{display:none}
.td-grp{margin-top:10px}
.td-h{margin:0 0 6px;font-weight:700;color:var(--gold);font-size:15px;display:flex;gap:8px;align-items:center}
.td-h span{color:var(--mist);font-weight:400}
.td-fold{background:none;border:0;padding:4px 0;cursor:pointer;font:inherit;font-weight:700;color:var(--gold)}
.td-fold::after{content:'▾';margin-left:4px;transition:transform .2s}.td-fold[aria-expanded="false"]::after{transform:rotate(-90deg)}
.td-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.td-row{display:flex;gap:12px;align-items:flex-start;background:var(--deep);border-radius:14px;padding:12px 14px;transition:opacity .25s}
.td-row.td-overdue{box-shadow:inset 3px 0 0 var(--amber)}
.td-row.td-going{opacity:.35}
.td-body{flex:1;min-width:0}
.td-t{margin:0;font-weight:600;line-height:1.35}
.td-d{margin:2px 0 0;font-size:14px;color:var(--mist)}
.td-m{margin:4px 0 0;font-size:13px;color:var(--mist)}
.td-m a{color:inherit}
.td-late{color:var(--amber);font-weight:700}
.td-tick{position:relative;flex:none;width:26px;height:26px;margin-top:1px;cursor:pointer}
.td-tick input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.td-tick span{display:block;width:26px;height:26px;border:2px solid var(--gold);border-radius:8px}
.td-tick input:checked+span{background:var(--gold)}
.td-tick input:focus-visible+span{outline:2px solid var(--cream);outline-offset:2px}
.td-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--gold);margin-top:7px}.td-dot.ok{background:#7FBF8C}
.td-act{display:flex;gap:6px;align-items:center;flex:none}
.td-act select{font:inherit;font-size:13px;color:var(--cream);background:transparent;border:1px solid rgba(244,238,228,.25);border-radius:999px;padding:6px 10px;max-width:110px}
.td-donebox{margin-top:14px}.td-donebox summary{cursor:pointer;color:var(--mist);font-size:14px}
.td-done .td-t{text-decoration:line-through;opacity:.7}
.td-add{margin-top:12px;display:flex;flex-direction:column;gap:10px}
@media (max-width:600px){.td-row{flex-wrap:wrap}.td-act{width:100%;padding-left:38px}}
.todo-card .btn-row{margin-top:14px}
/* calendar */
.sc-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 14px;font-size:14px;color:var(--mist)}
.sc-legend span{display:inline-flex;align-items:center;gap:6px}
.sc-sw{width:14px;height:14px;border-radius:4px;display:inline-block}
.sc-sw.sc-ok,.sc-ev.sc-ok,.sc-lrow.sc-ok{background:#D1FAE5;color:#065F46}
.sc-sw.sc-hold,.sc-ev.sc-hold,.sc-lrow.sc-hold{background:#FEF3C7;color:#92400E}
.sc-sw.sc-enq,.sc-ev.sc-enq,.sc-lrow.sc-enq{background:transparent;color:var(--cream);border:1px dashed rgba(244,238,228,.5)}
.sc-sw.sc-own,.sc-ev.sc-own,.sc-lrow.sc-own{background:#E0E7FF;color:#3730A3}
.sc-grid{border-radius:18px;overflow:hidden;background:var(--deep)}
.sc-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.sc-dow div{padding:10px 8px;font-weight:700;color:var(--gold);font-size:14px;text-align:center}
.sc-day{min-height:118px;padding:6px;border-top:1px solid var(--line);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:4px;position:relative;min-width:0}
.sc-row .sc-day:first-child{border-left:0}
.sc-wknd{background:rgba(255,255,255,.025)}
.sc-blank{background:rgba(0,0,0,.12)}
.sc-past{opacity:.55}
.sc-n{font-size:13px;font-weight:700;color:var(--mist);line-height:1;padding:2px 2px 4px}
.sc-today{box-shadow:inset 0 0 0 2px var(--gold)}
.sc-today .sc-n{color:var(--gold)}
.sc-ev{display:block;font-size:12.5px;line-height:1.25;padding:4px 6px;border-radius:7px;text-decoration:none;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-ev:hover,.sc-ev:focus-visible{filter:brightness(1.08);outline:2px solid var(--cream);outline-offset:1px}
.sc-more{font-size:12px;color:var(--mist)}
.sc-add{position:absolute;right:6px;top:4px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:var(--mist);text-decoration:none;opacity:0;font-weight:700}
.sc-day:hover .sc-add,.sc-add:focus-visible{opacity:1;background:rgba(255,255,255,.08)}
.sc-list{display:none}
@media (max-width:760px){
  .sc-grid{display:none}
  .sc-list{display:flex;flex-direction:column;gap:10px}
  .sc-li{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:start}
  .sc-li.sc-today .sc-ld{color:var(--gold)}
  .sc-ld{margin:6px 0 0;font-size:14px;line-height:1.2}
  .sc-li>div{display:flex;flex-direction:column;gap:6px}
  .sc-lrow{display:flex;flex-direction:column;padding:10px 12px;border-radius:12px;text-decoration:none}
  .sc-lrow .t{font-weight:700}.sc-lrow .s{font-size:13px;opacity:.85}
}
/* customer review page */
.rv-wrap{max-width:620px;padding-top:40px;padding-bottom:60px}
.rv-card{display:flex;flex-direction:column;gap:14px}
.rv-stars{display:flex;gap:6px;margin-top:6px}
.rv-star{font-size:44px;line-height:1;background:none;border:0;color:rgba(217,188,126,.35);cursor:pointer;padding:4px;border-radius:10px;transition:transform .12s,color .12s}
.rv-star.on{color:#D9BC7E}
.rv-star:hover{transform:scale(1.12);color:#D9BC7E}
.rv-star:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.rv-word{margin:0;font-weight:700;min-height:1.4em}
.rv-google{margin-top:8px;padding:16px 18px;border-radius:16px;background:rgba(217,188,126,.12);display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.rv-google.quiet{background:transparent;border:1px solid rgba(217,188,126,.3)}
.rv-google p{margin:0}
.rv-dist{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.rv-dist div{display:grid;grid-template-columns:34px 1fr 30px;gap:10px;align-items:center;font-size:14px}
.rv-dist .bar{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.rv-dist .bar i{display:block;height:100%;background:var(--gold);border-radius:99px}
.rv-dist div span:last-child{text-align:right;color:var(--mist)}
