/* Team-only visual contract. Guest pages never load this layer. */
body.nu-concierge:is(.nu-home,.nu-tool){
  --team-font:'Open Sauce',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-display:var(--team-font);
  --font-primary:var(--team-font);
  --font-secondary:var(--team-font);
  --nu-body:var(--team-font);
  --team-raised:0 1px 2px #0000000c,0 7px 20px #00000010,0 18px 38px #00000008;
  --team-hover:0 2px 5px #00000014,0 13px 28px #00000015,0 24px 44px #0000000c;
  --team-control:0 1px 2px #00000018,0 4px 11px #00000013;
  --team-pressed:inset 0 2px 4px #00000024,0 1px 1px #0000000c;
  font-family:var(--team-font);
  -webkit-font-smoothing:antialiased;
}
/* Route and sheet rules contain older display faces with !important declarations. */
body.nu-concierge:is(.nu-home,.nu-tool) :is(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,label,legend,dt,dd,li,th,td,button,a,input,textarea,select,summary,div){font-family:var(--team-font)!important}
body.nu-concierge:is(.nu-home,.nu-tool) :is(h1,h2,h3,.sm-title,.pk-title,.wp-title,.mtitle,.ios-section-title,.sm-big,.ch-next-visit h2,.sec .t){font-weight:600!important;letter-spacing:-.045em!important}
body.nu-concierge:is(.nu-home,.nu-tool) :is(.sm-title,.pk-title,.wp-title,.mtitle,#quickFeeTitle,.sm-big,.bk-review-head h2,.nu-editor h2,.nu-welcome-copy h1,.wheel-head h2,.nu-profile-avatar){font-family:var(--team-font)!important}
body.nu-concierge:is(.nu-home,.nu-tool) #bookingOverlay .ios-section-title,
body.nu-concierge:is(.nu-home,.nu-tool) #notedSignIn h1,
body.nu-concierge:is(.nu-home,.nu-tool) #notedSignIn .nu-profile-avatar{font-family:var(--team-font)!important}
body.nu-concierge:is(.nu-home,.nu-tool) #notedSignIn{--font-display:var(--team-font)!important}
body.nu-concierge.nu-home #bookingOverlay>.sm-panel>.sm-sub{padding:10px 24px;border-bottom:1px solid #e9ebe4;color:#58624f;font-size:12px;line-height:1.5}
html[data-noted-platform="1"] body.nu-home [hidden]{display:none!important}
body.nu-concierge:is(.nu-home,.nu-tool) :is(.nu-shell .nu-nav,.nu-shell .nu-account button,.ch-next-visit,.tiles .tile,.home-tools .tile,.sys-app,.pcard,.swl,.grp,.bk-card,.ios-booking-section,.sm-group,.intake-choice){box-shadow:var(--team-raised)!important}
body.nu-concierge.nu-home .tiles .tile{border-color:#e2e8dc!important;box-shadow:var(--team-raised)!important}
body.nu-concierge.nu-home .tiles .tile-ico{box-shadow:inset 0 1px 1px #ffffffb8,0 2px 5px #00000012}
body.nu-concierge.nu-home .home-tools .tile{border-radius:14px;box-shadow:0 1px 2px #0000000b,0 5px 14px #0000000d!important}
body.nu-concierge.nu-home :is(.visit-filters button,.lrow),
body.nu-concierge.nu-tool :is(.ns-pill,.pmore){box-shadow:0 1px 3px #00000013!important}
body.nu-concierge.nu-tool.nu-floor .fp-toggle .ns-pill{box-shadow:0 1px 3px #00000013!important}
body.nu-concierge.nu-home .lrow{border-radius:12px}
body.nu-concierge:is(.nu-home,.nu-tool) :is(.nu-primary,.nu-secondary,.sm-btn,.ch-primary,.ns-btn-primary,.ns-btn-ghost,.svcbtn,.pbtn,.pnote-save,.savetag,.addwine,.btn,.sm-add,.bk-send,.qf-cta,.sys-app,.pk-item,.wp-item,.up-close,.refresh-btn,.sm-close,.pk-close,.wp-close,.mclose,.nu-icon-btn,.sm-pill.sel,.bk-tg.sel,.stp.on,.fee-step-btn,.qbtn,.rbtn,.synccal-nav,.synccal-day.sel,.fpmenu-item,.dock-new,.pin-keypad button){box-shadow:var(--team-control)!important}
body.nu-concierge:is(.nu-home,.nu-tool) :is(button,a,[role=button]){transition-property:background-color,border-color,box-shadow,transform;transition-duration:160ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
body.nu-concierge:is(.nu-home,.nu-tool) :is(button,a,[role=button]):focus-visible{outline:3px solid #242424!important;outline-offset:4px!important;position:relative;z-index:2}
body.nu-concierge:is(.nu-home,.nu-tool) :is(.tiles .tile,.home-tools .tile,.sys-app,.pcard,.swl,.grp,.bk-card,.sm-group,.pk-item,.wp-item){transition-property:background-color,border-color,box-shadow,transform;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
@media (hover:hover) and (pointer:fine){
  body.nu-concierge:is(.nu-home,.nu-tool) :is(.tiles .tile,.home-tools .tile,.sys-app,.pcard,.swl,.pk-item,.wp-item):hover{box-shadow:var(--team-hover)!important}
  body.nu-concierge:is(.nu-home,.nu-tool) :is(.nu-primary,.nu-secondary,.sm-btn,.ch-primary,.ns-btn-primary,.ns-btn-ghost,.svcbtn,.pbtn,.pnote-save,.savetag,.addwine,.btn,.sm-add,.bk-send,.qf-cta,.up-close,.refresh-btn,.sm-close,.pk-close,.wp-close,.mclose,.nu-icon-btn,.fee-step-btn,.qbtn,.rbtn,.fpmenu-item,.dock-new):not(:disabled):hover{box-shadow:0 2px 4px #0000001a,0 8px 18px #0000001c!important}
  body.nu-concierge.nu-home .tiles .tile:hover{transform:translateY(-2px)!important}
  body.nu-concierge.nu-home .lrow:hover{box-shadow:0 3px 9px #00000017!important}
}
body.nu-concierge:is(.nu-home,.nu-tool) :is(.nu-primary,.nu-secondary,.sm-btn,.ch-primary,.ns-btn-primary,.ns-btn-ghost,.svcbtn,.pbtn,.pnote-save,.savetag,.addwine,.btn,.sm-add,.bk-send,.qf-cta,.tiles .tile,.home-tools .tile,.sys-app,.pk-item,.wp-item):not(:disabled):active{box-shadow:var(--team-pressed)!important;transform:translateY(1px)!important}
body.nu-concierge:is(.nu-home,.nu-tool) :is(button,a,[role=button]):disabled{box-shadow:none!important;transform:none!important}
@media (prefers-reduced-motion:reduce){
  body.nu-concierge:is(.nu-home,.nu-tool) :is(button,a,[role=button],.tiles .tile,.home-tools .tile,.sys-app,.pcard,.swl,.grp,.bk-card,.sm-group,.pk-item,.wp-item){transition:none!important;animation:none!important}
  body.nu-concierge:is(.nu-home,.nu-tool) :is(button,a,[role=button]):active,
  body.nu-concierge:is(.nu-home,.nu-tool) :is(.tiles .tile,.home-tools .tile,.sys-app):hover{transform:none!important}
}

/* Desk is the shared staff surface. The digital order form does not load this file. */
/* Every Open Sauce weight the staff UI uses has a real face, so iPad Safari never fakes bold. */
@font-face{font-family:'Open Sauce';src:url('/fonts/open-sauce-regular.otf?v=448f69455450') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sauce';src:url('/fonts/open-sauce-medium.otf?v=9fa72e42d482') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sauce';src:url('/fonts/open-sauce-semibold.otf?v=7ed97972bdbc') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sauce';src:url('/fonts/open-sauce-bold.otf?v=2f23f909ffa4') format('opentype');font-weight:700;font-style:normal;font-display:swap}
body.noted-staff.nu-concierge{
  --desk-ink:#242424;--desk-muted:#676767;--desk-line:#e0e0e0;--desk-well:#f6f6f6;
  --desk-shadow:inset 0 1px 1px #fff,inset 0 -2px 2px #0000000d,0 0 0 1px #0000001c,0 5px 12px #00000012,0 16px 34px #0000000b;
  --desk-hover:inset 0 1px 1px #fff,inset 0 -2px 2px #0000000d,0 0 0 1px #00000026,0 12px 22px #00000017,0 27px 46px #0000000e;
  --desk-control:inset 0 1px 0 #fff,0 0 0 1px #d4d4d4,0 5px 12px #00000012;
  --team-font:'Open Sauce',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-display:var(--team-font);
  --font-primary:var(--team-font);--font-secondary:var(--team-font);--nu-body:var(--team-font);
  --paper:#fff;--card:#fff;--ink:var(--desk-ink);--soft:var(--desk-muted);--faint:#777;
  --line:var(--desk-line);--well:var(--desk-well);--well2:#ececec;--press:#e9e9e9;
  --accent:var(--desk-ink);--accent-ink:var(--desk-ink);--sage:#f5f5f5;--nu-olive:var(--desk-ink);--ios-olive:var(--desk-ink);
  --home-ink:var(--desk-ink);--home-muted:var(--desk-muted);--home-line:var(--desk-line);--home-olive:var(--desk-ink);
  background:#fff!important;color:var(--desk-ink)!important;font-family:var(--team-font)!important;
}
/* The older concierge sheet uses literal olive values for actions. Keep the
   shared staff actions monochrome on every route and at phone breakpoints. */
body.noted-staff.nu-concierge :is(.nu-primary,.sm-btn:not(.ghost),.bk-send,.qf-cta,.ns-btn-primary,.ch-primary,.home-new-visit){
  background:linear-gradient(155deg,#424242,#191919)!important;
  border-color:#424242!important;color:#fff!important;
}
body.noted-staff.nu-concierge :is(.nu-secondary,.sm-btn.ghost,.ns-btn-ghost){
  background:#f5f5f5!important;border-color:#dedede!important;color:var(--desk-ink)!important;
}
body.noted-staff.nu-concierge :is(.sm-pill.sel,.bk-tg.sel,.nu-nav a[aria-current=page]){
  background:#f1f1f1!important;border-color:#d4d4d4!important;color:var(--desk-ink)!important;
}
body.noted-staff.nu-concierge :is(.sm-check,.bk-drop-ico){
  background:#f1f1f1!important;color:var(--desk-ink)!important;
}
body.noted-staff.nu-concierge #bookingOverlay :is(.bk-drop,.ios-booking-section.is-active){
  border-color:#bdbdbd!important;background-color:#fafafa!important;
}
body.noted-staff.nu-concierge :is(.nu-primary,.sm-btn,.bk-send,.qf-cta,.ns-btn-primary,.ch-primary,.home-new-visit):focus-visible{
  outline:3px solid var(--desk-ink)!important;outline-offset:4px!important;
}
body.noted-staff.nu-concierge :is(h1,h2,h3,.sm-title,.pk-title,.wp-title,.sec .t,.home-tools-title,.wl-family h2){
  font-family:var(--font-display)!important;font-weight:600!important;letter-spacing:-.045em!important;color:var(--desk-ink)!important;
}
body.noted-staff :is(button,a,[role=button]):focus-visible,
body.noted-staff :is(input,select,textarea):focus-visible{outline:3px solid var(--desk-ink)!important;outline-offset:4px!important;z-index:2}
body.noted-staff button:not(:disabled):not(.tile){
  box-shadow:var(--desk-control)!important;transition:transform 170ms ease,box-shadow 170ms ease,background-color 170ms ease;
}
@media(hover:hover) and (pointer:fine){
  body.noted-staff button:not(:disabled):not(.tile):hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff,0 0 0 1px #c6c6c6,0 10px 19px #0000001b!important}
}
body.noted-staff button:not(:disabled):not(.tile):active{transform:translateY(1px) scale(.99);box-shadow:inset 0 3px 7px #00000024,0 0 0 1px #c8c8c8,0 1px 2px #00000012!important}
body.noted-staff button:disabled{box-shadow:none!important;transform:none!important}
body.noted-staff.nu-concierge .nu-shell{background:#fffffff5!important;border-bottom:1px solid var(--desk-line)!important;box-shadow:none!important;min-height:86px!important}
body.noted-staff.nu-concierge .nu-shell .nu-brand{display:flex!important;align-items:center;gap:16px!important;min-width:0!important}
body.noted-staff.nu-concierge .nu-shell .nu-brand img.nu-noted-wordmark{width:105px!important;height:auto!important;max-width:none!important;object-fit:contain}
body.noted-staff.nu-concierge .nu-shell .nu-brand img.nu-client-wordmark{width:140px!important;height:32px!important;max-width:none!important;object-fit:contain}
body.noted-staff.nu-concierge .nu-shell .nu-brand .nu-brand-separator{width:1px;height:28px;padding:0!important;border:0!important;background:var(--desk-line)!important;flex:none}
body.noted-staff.nu-home .page{display:flex!important;flex-direction:column;max-width:1280px!important;padding:54px 48px 105px!important}
body.noted-staff.nu-home .home-heading{order:0;margin-bottom:35px!important}
body.noted-staff.nu-home .home-actions{order:1;margin-bottom:44px!important}
body.noted-staff.nu-home .home-visits{order:2;margin-bottom:35px}
/* Today's Tock bookings: after Start here, before saved drafts (same order value, so the markup decides). */
body.noted-staff.nu-home .home-tock{order:2;margin-bottom:44px}
body.noted-staff.nu-home .tock-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--desk-line);border-radius:23px;box-shadow:0 2px 5px #00000008,0 10px 28px #0000000a;overflow:hidden}
body.noted-staff.nu-home .tock-row{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:baseline;gap:16px;padding:18px 23px;min-height:44px}
body.noted-staff.nu-home .tock-row+.tock-row{border-top:1px solid var(--desk-line)}
body.noted-staff.nu-home .tock-time{font:600 16px/1.4 var(--team-font)!important;color:var(--desk-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body.noted-staff.nu-home .tock-body{display:grid;gap:4px;min-width:0}
body.noted-staff.nu-home .tock-guest{font:600 16px/1.4 var(--team-font)!important;color:var(--desk-ink);letter-spacing:-.02em;overflow-wrap:anywhere}
body.noted-staff.nu-home .tock-meta{display:flex;flex-wrap:wrap;column-gap:10px;row-gap:2px;font:400 13px/1.5 var(--team-font)!important;color:var(--desk-muted)}
body.noted-staff.nu-home .tock-meta span{overflow-wrap:anywhere}
body.noted-staff.nu-home .tock-meta span+span::before{content:'\00b7';margin-right:10px;color:#9a9a9a}
body.noted-staff.nu-home .tock-empty{margin:0;padding:22px 23px;border:1px solid var(--desk-line);border-radius:23px;background:var(--desk-well);font:400 14px/1.5 var(--team-font)!important;color:var(--desk-muted)}
body.noted-staff.nu-home .tock-note{margin:0 0 12px;font:500 13px/1.5 var(--team-font)!important;color:var(--desk-ink)}
body.noted-staff.nu-home .tock-list+.tock-empty+.tock-note,body.noted-staff.nu-home .tock-empty+.tock-note{margin:12px 0 0;color:var(--desk-muted)}
@media(max-width:600px){
  body.noted-staff.nu-home .tock-row{grid-template-columns:minmax(0,1fr);gap:4px;padding:16px 18px}
}
body.noted-staff.nu-home .ch-estate{order:3;overflow:hidden;border-radius:24px}
body.noted-staff.nu-home .home-footer{order:4}
body.noted-staff.nu-home .desk-eyebrow{margin:0 0 12px;font:600 13px/1.4 var(--font-display)!important;color:var(--desk-muted);letter-spacing:0!important}
body.noted-staff.nu-home .hero h1{font:600 clamp(40px,5vw,66px)/1.05 var(--font-display)!important;letter-spacing:-.055em!important;max-width:660px;margin:0 0 15px!important}
body.noted-staff.nu-home .hero .date{color:var(--desk-muted)!important;font-size:13px!important;margin-bottom:14px!important}
body.noted-staff.nu-home .home-action-heading h2{font:600 23px/1.2 var(--font-display)!important;color:var(--desk-ink)!important}
body.noted-staff.nu-home .home-action-heading p{color:var(--desk-muted)!important}
body.noted-staff.nu-home .tiles{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}
body.noted-staff.nu-home .tiles .tile{min-height:255px!important;padding:28px!important;border:1px solid #fff!important;border-radius:25px!important;background:linear-gradient(154deg,#fff,#f6f6f6 72%,#eaeaea)!important;box-shadow:var(--desk-shadow)!important;justify-content:space-between!important;touch-action:pan-y!important}
body.noted-staff.nu-home .tiles .tile.lead{background:linear-gradient(154deg,#fff,#f6f6f6 72%,#eaeaea)!important}
body.noted-staff.nu-home .tiles .tile.muted{display:none!important}
body.noted-staff.nu-home .tiles .tile-ico{display:grid!important;place-items:center;width:49px!important;height:49px!important;margin:0 auto auto 0!important;border:1px solid #626262!important;border-radius:15px!important;background:linear-gradient(155deg,#454545,#1a1a1a 72%)!important;mix-blend-mode:normal!important;color:#fff!important;box-shadow:inset 0 1px 1px #ffffff66,inset 0 -2px 2px #00000047,0 0 0 1px #00000033,0 6px 12px #00000026!important}
body.noted-staff.nu-home .tiles .tile-ico .ico{display:block!important;width:25px!important;height:25px!important;margin:0!important;stroke:#fff!important;stroke-width:1.8!important}
body.noted-staff.nu-home .tiles .tile .ttl{font:600 27px/1.15 var(--font-display)!important;letter-spacing:-.045em!important;color:var(--desk-ink)!important}
body.noted-staff.nu-home .tiles .tile .ds{display:block!important;font:400 14px/1.55 var(--team-font)!important;color:var(--desk-muted)!important;margin-top:8px!important}
body.noted-staff.nu-home .tile-arrow{display:none!important}
@media(hover:hover) and (pointer:fine){
  body.noted-staff.nu-home .tiles .tile.active:hover{transform:translateY(-3px)!important;box-shadow:var(--desk-hover)!important;background:linear-gradient(154deg,#fff,#f3f3f3 72%,#e7e7e7)!important}
}
body.noted-staff.nu-home .tiles .tile.active:active{transform:translateY(1px) scale(.995)!important;box-shadow:inset 0 3px 7px #00000017,0 0 0 1px #c7c7c7,0 2px 5px #0000000f!important}
body.noted-staff.nu-home .nu-home-columns{gap:30px!important}
body.noted-staff.nu-home .list{background:#fff!important;border:1px solid var(--desk-line)!important;border-radius:23px!important;box-shadow:0 2px 5px #00000008,0 10px 28px #0000000a!important;overflow:hidden!important}
body.noted-staff.nu-home .lrow{padding:20px 23px!important}
body.noted-staff.nu-home :is(.visit-filters,.nu-empty,.home-weather){background:var(--desk-well)!important;border-color:var(--desk-line)!important}
body.noted-staff.nu-home .visit-filters button[aria-pressed=true]{background:#fff!important;color:var(--desk-ink)!important}
body.noted-staff.nu-home .visit-filters button{color:var(--desk-muted)!important}
body.noted-staff.nu-home :is(.ava,.ava.avatar-1,.ava.avatar-2){background:#ededed!important;color:var(--desk-ink)!important}
body.noted-staff.nu-home .lrow .visit-status{background:#f4f4f4!important;color:var(--desk-muted)!important}
body.noted-staff.nu-home .lrow.live .visit-status{background:#ededed!important;color:var(--desk-ink)!important}
body.noted-staff.nu-home .lrow.live .visit-status::before{background:var(--desk-ink)!important}
body.noted-staff.nu-home :is(.ch-visit-time,.ch-visit-time>span,.weather-toggle,.home-footer,.home-sales .srow-l){color:var(--desk-muted)!important}
body.noted-staff.nu-home :is(.home-sales,.nu-empty,.home-weather){background:#f7f7f7!important;border-color:var(--desk-line)!important}
body.noted-staff.nu-home .glance-dot{background:var(--desk-ink)!important}
body.noted-staff.nu-home :is(.sec .t,.home-tools-title){color:var(--desk-ink)!important}
body.noted-staff.nu-home :is(.ch-eyebrow,.nu-eyebrow,.home-text-link,.home-sales .srow-l){color:var(--desk-muted)!important}
body.noted-staff.nu-home .home-new-visit{background:linear-gradient(155deg,#424242,#191919)!important;color:#fff!important}
body.noted-staff.nu-wines{--wl-border:var(--desk-line);--wl-shadow:0 2px 5px #00000008,0 10px 28px #0000000a}
body.noted-staff.nu-wines .wl-main{margin-top:54px}
body.noted-staff.nu-wines :is(.wl-description,.wl-summary,.wl-notice,.wl-date,.wl-format-name,.wl-stock,.wl-subhead){color:var(--desk-muted)!important}
body.noted-staff.nu-wines :is(.wl-row,.wl-family){background:#fff!important;border-color:var(--desk-line)!important}
body.noted-staff.nu-wines .wl-row{background:linear-gradient(160deg,#fff,#fafafa)!important}
body.noted-staff.nu-wines .wl-toolbar button{background:linear-gradient(150deg,#fff,#eee)!important;color:var(--desk-ink)!important;border-color:#d9d9d9!important}
body.noted-staff.nu-concierge :is(.sm-close,.pk-close,.wp-close,.mclose,#qfClose,.nu-icon-btn,.sm-pills,.sm-toggle,.bk-toggle,.sm-qty,.smp-qty){
  background:#f5f5f5!important;border-color:var(--desk-line)!important;color:var(--desk-ink)!important;
}
body.noted-staff.nu-concierge :is(.sm-flabel,.bk-field label,.dossier-sec,.sm-sub,.sm-rev-row .k,.dossier-notes,.dn-lbl,.de-open,.sm-resume,.ios-section-name){color:var(--desk-muted)!important}
body.noted-staff.nu-concierge :is(.sys-app,.sm-group,.bk-review-group,.nu-editor-review){background:#fff!important;border-color:var(--desk-line)!important;color:var(--desk-ink)!important}
body.noted-staff.nu-concierge :is(.sm-overlay,.pk,.wp-overlay,.modal-overlay,.ov){background:#24242455!important}
@media(max-width:760px){
  body.noted-staff.nu-concierge .nu-shell .nu-brand{gap:10px!important}
  body.noted-staff.nu-concierge .nu-shell .nu-brand img.nu-noted-wordmark{width:82px!important}
  body.noted-staff.nu-concierge .nu-shell .nu-brand img.nu-client-wordmark{width:100px!important;height:27px!important}
  body.noted-staff.nu-concierge .nu-shell .nu-brand .nu-brand-separator{height:23px}
  body.noted-staff.nu-home .page{padding:35px 24px 115px!important}
  body.noted-staff.nu-home .tiles{gap:13px!important}
  body.noted-staff.nu-home .tiles .tile{min-height:225px!important;padding:23px!important}
  body.noted-staff.nu-home .tiles .tile .ttl{font-size:23px!important}
}
@media(max-width:560px){
  body.noted-staff.nu-home .tiles{grid-template-columns:1fr!important}
  body.noted-staff.nu-home .tiles .tile{min-height:212px!important;padding:22px!important}
  body.noted-staff.nu-home .tiles .tile .ttl{font-size:25px!important}
  body.noted-staff.nu-home .tiles .tile .ds{font-size:13px!important}
}
@media(prefers-reduced-motion:reduce){
  body.noted-staff *,body.noted-staff *::before,body.noted-staff *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  body.noted-staff button:hover,body.noted-staff button:active,body.noted-staff .tiles .tile:hover,body.noted-staff .tiles .tile:active{transform:none!important}
}
/* Touch feedback remains visible without relying on hover or extra motion. */
@media(hover:none) and (pointer:coarse){
  body.noted-staff.nu-concierge button:not(.tile):not(:disabled){touch-action:manipulation}
  body.noted-staff.nu-concierge :is(button:not(.tile),.tiles .tile.active:not(.tile-dragging)):not(:disabled){
    -webkit-tap-highlight-color:transparent;
    transition:transform 120ms cubic-bezier(.2,.7,.2,1),box-shadow 120ms cubic-bezier(.2,.7,.2,1),background-color 120ms ease!important;
  }
  body.noted-staff.nu-concierge :is(button:not(.tile),.tiles .tile.active:not(.tile-dragging)):not(:disabled):active{
    transform:scale(.96)!important;
    box-shadow:inset 0 3px 7px #00000029,0 0 0 1px #bdbdbd,0 1px 2px #0000000f!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.noted-staff.nu-concierge :is(button:not(.tile),.tiles .tile.active:not(.tile-dragging)):not(:disabled){transition:none!important}
  body.noted-staff.nu-concierge :is(button:not(.tile),.tiles .tile.active:not(.tile-dragging)):not(:disabled):active{transform:none!important}
}

/* Unified staff surface. One type family, one palette, one set of controls for every
   staff route. Values come from the Desk tokens above. */
html:has(body.noted-staff){background:#fff;scroll-padding-top:calc(112px + env(safe-area-inset-top))}
body.noted-staff{
  --desk-card:linear-gradient(160deg,#fff,#fbfbfb);
  --desk-card-shadow:inset 0 1px 0 #fff,0 0 0 1px #0000000d,0 2px 5px #00000008,0 10px 28px #0000000b;
  --desk-field-line:#d6d6d6;--desk-soft-well:#f8f8f8;
  --po-border:var(--desk-line);--po-shadow:var(--desk-card-shadow);--po-ink:var(--desk-ink);--po-soft:var(--desk-muted);
  --wl-border:var(--desk-line);--wl-shadow:var(--desk-card-shadow);
  background:transparent!important;font-synthesis:none;
}
body.noted-staff,body.noted-staff :is(input,select,textarea,button,option,legend,output,th,td,figcaption),
body.noted-staff #notedSignIn :is(h1,p,button,input,label,span,div){font-family:var(--team-font)!important}
body.noted-staff #notedSignIn{--access-font:var(--team-font)!important;font-synthesis:none}
body.noted-staff :is(b,strong){font-weight:600}

/* Tool page header: the Desk eyebrow, hero scale and description. */
body.noted-staff :is(.po-main,.wl-main){width:min(1180px,calc(100% - 96px));margin:54px auto calc(110px + env(safe-area-inset-bottom))}
body.noted-staff.nu-photo-orders .po-main{width:min(880px,calc(100% - 96px))}
body.noted-staff :is(.po-intro,.wl-intro){padding-bottom:30px;border-bottom:1px solid var(--desk-line)}
body.noted-staff :is(.po-intro,.wl-intro) .nu-eyebrow{margin:0 0 12px!important;font:600 13px/1.4 var(--team-font)!important;letter-spacing:0!important;text-transform:none!important;color:var(--desk-muted)!important}
body.noted-staff :is(.po-intro,.wl-intro) h1{margin:0 0 15px!important;font:600 clamp(40px,5vw,66px)/1.05 var(--team-font)!important;letter-spacing:-.055em!important;color:var(--desk-ink)!important;overflow-wrap:anywhere}
body.noted-staff :is(.po-description,.wl-description){color:var(--desk-muted)!important;font:400 15px/1.6 var(--team-font)!important;max-width:62ch}
body.noted-staff :is(.po-status,.wl-summary,.wl-notice){color:var(--desk-muted)!important}

/* Cards: lightly raised, fine reflective edge, layered soft shadow. */
body.noted-staff :is(.po-card,.wl-family){background:var(--desk-card)!important;border:1px solid #fff!important;border-radius:25px!important;box-shadow:var(--desk-card-shadow)!important}
body.noted-staff .po-card{padding:30px 32px 32px}
body.noted-staff :is(.po-card h2,.wl-family h2){font:600 clamp(23px,2.6vw,28px)/1.2 var(--team-font)!important;letter-spacing:-.045em!important;color:var(--desk-ink)!important}
body.noted-staff :is(.po-note,.po-shot-skipped,.po-comped,.rp-notes,.rp-fact,.rp-order-head span,.wl-date,.wl-family-count,.wl-row-sku,.wl-stock,.wl-empty){color:var(--desk-muted)!important}
body.noted-staff :is(.po-group legend,.rp-subhead,.wl-subhead,.of-form figcaption){font:600 11px/1.4 var(--team-font)!important;letter-spacing:.15em;text-transform:uppercase;color:var(--desk-muted)!important}
body.noted-staff :is(.po-shot,.po-line,.rp-order,.wl-row,.po-preview){background:var(--desk-soft-well)!important;border:1px solid #ebebeb!important;box-shadow:inset 0 1px 0 #fff}
body.noted-staff :is(.po-shot-label,.rp-order-head,.rp-order-who,.rp-order-wines,.rp-fact strong,.rp-table,.wl-row-title,.wl-price,.wl-format-name,.wl-date strong,.po-unmatched,.po-check,.po-drop-title){color:var(--desk-ink)!important}
body.noted-staff :is(.rp-table th,.rp-table td,.wl-family-head){border-color:#ececec!important}
body.noted-staff .wl-stock.wl-zero{color:#8b3029!important}
body.noted-staff .po-flag{color:var(--desk-ink)!important;background:#f5f5f5!important;border:1px solid #e2e2e2!important;border-left:3px solid var(--desk-ink)!important}
body.noted-staff .po-drop{border-color:#cfcfcf!important;background:var(--desk-soft-well)!important}
body.noted-staff .po-drop:is(:hover,:focus-within){border-color:#8a8a8a!important}
body.noted-staff .of-form img{border-color:var(--desk-line)!important;border-radius:16px}

/* Fields, choices and steppers share one control style. */
body.noted-staff :is(.po-field,.po-field>span){color:var(--desk-muted)}
body.noted-staff .po-field :is(input,select,textarea),
body.noted-staff :is(.po-choice,.po-stepper){border:1px solid var(--desk-field-line)!important;border-radius:13px!important;background:#fff!important;color:var(--desk-ink)!important;box-shadow:inset 0 1px 2px #0000000a}
body.noted-staff .po-field :is(input,select,textarea):focus-visible{outline:3px solid var(--desk-ink)!important;outline-offset:2px!important;border-color:var(--desk-ink)!important}
body.noted-staff .po-choice:has(input:checked){border-color:var(--desk-ink)!important;background:#f4f4f4!important;box-shadow:inset 0 0 0 1px var(--desk-ink)}
body.noted-staff .po-choice:has(input:focus-visible){outline:3px solid var(--desk-ink);outline-offset:3px}
body.noted-staff :is(.po-check,.po-choice) input{accent-color:var(--desk-ink)!important}
body.noted-staff .po-stepper output{color:var(--desk-ink)!important;font-weight:600}
body.noted-staff :is(.po-remove,.po-skip){color:var(--desk-muted)!important}
body.noted-staff .po-remove{border-color:var(--desk-line)!important}
body.noted-staff .nu-error{color:#8b3029}
body.noted-staff :is(.po-required,.po-field b){color:#8b3029!important}
body.noted-staff a.nu-primary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* Buttons: same primary and secondary as the Desk on every page. The camera panel keeps its own
   sizes so the capture stage geometry never changes. */
body.noted-staff main :is(.nu-primary,.nu-secondary){min-height:48px;border-radius:14px!important;font:600 14px/1.3 var(--team-font)!important;padding:12px 20px}
body.noted-staff main :is(.nu-primary,a.nu-primary){background:linear-gradient(155deg,#424242,#191919)!important;border:1px solid #424242!important;color:#fff!important}
body.noted-staff main .nu-secondary{background:linear-gradient(150deg,#fff,#f2f2f2)!important;border:1px solid #dedede!important;color:var(--desk-ink)!important}
body.noted-staff.nu-concierge:is(.nu-tool,.nu-home) main :is(.nu-primary,.nu-secondary):disabled,
body.noted-staff.nu-concierge:is(.nu-tool,.nu-home) main .po-step:disabled{background:#ededed!important;border-color:#dddddd!important;color:#666!important;opacity:1!important;box-shadow:none!important;cursor:not-allowed}
body.noted-staff .wl-toolbar button{min-height:44px}

/* Reservation sheet: neutral wells instead of the warm tint. */
body.noted-staff #bookingOverlay .bk-checkout-note{background:#f6f6f6!important;border-color:var(--desk-line)!important;color:var(--desk-ink)!important}

/* Phone: no floating tab bar any more (the header has no pills). The footer closes every page. */
@media(max-width:700px){
  body.noted-staff :is(.po-main,.wl-main){margin-bottom:24px}
}
@media(max-width:760px){
  body.noted-staff :is(.po-main,.wl-main),body.noted-staff.nu-photo-orders .po-main{width:calc(100% - 48px);margin-top:35px}
  body.noted-staff .po-card{padding:24px 20px 26px;border-radius:22px!important}
  body.noted-staff .wl-family{border-radius:22px!important}
}

/* Small targets on shared chrome reach 44px. Eyebrows use a real weight. */
body.noted-staff .nu-eyebrow{font-weight:600!important;color:var(--desk-muted)!important}
body.noted-staff.nu-concierge .nu-shell .nu-brand{min-height:44px}
body.noted-staff .refresh-btn{width:44px!important;min-width:44px!important;height:44px!important}
body.noted-staff :is(.rp-subhead,.wl-subhead){letter-spacing:.15em!important}
body.noted-staff .refresh-btn{color:var(--desk-ink)!important}
/* Every staff field and helper text uses the neutral palette, including the reservation sheet and staff access. */
body.noted-staff.nu-concierge :is(.sm-panel,.nu-dialog,.modal,main) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){color:var(--desk-ink)!important;border-color:var(--desk-field-line)!important}
body.noted-staff.nu-concierge #bookingOverlay :is(.sm-step-ind,.bk-review dt,.bk-review p,.bk-review-empty,.bk-field-help,.bk-help){color:var(--desk-muted)!important}
body.noted-staff.nu-concierge #bookingOverlay :is(.bk-review,.bk-review-head,.bk-review dd){color:var(--desk-ink)!important}

/* Quiet text button (uploader "Skip the back side"): no box, control radius, 44px target. */
body.noted-staff button.po-skip:not(:disabled){box-shadow:none!important;background:transparent;transform:none}
@media(hover:hover) and (pointer:fine){
  body.noted-staff button.po-skip:not(:disabled):hover{transform:none;background:#f2f2f2;box-shadow:none!important;color:var(--desk-ink)!important}
}
body.noted-staff.nu-concierge button.po-skip:not(:disabled):active{background:#e9e9e9!important;box-shadow:none!important}
/* The camera panel is dark: its step heading and quiet button stay light, pressed or not. */
body.noted-staff.nu-concierge .po-camera h2.po-camera-title{color:#fff!important;letter-spacing:0!important}
body.noted-staff .po-camera .po-skip{color:#e6e6e6!important}
body.noted-staff .po-camera button.po-skip:not(:disabled):is(:hover,:active){background:#ffffff1f!important;color:#fff!important}
/* Steppers: enabled halves are raised like Desk controls; at a limit they take the Desk disabled state. */
body.noted-staff .po-stepper{overflow:hidden}
body.noted-staff button.po-step:not(:disabled){box-shadow:inset 0 1px 0 #fff!important}
body.noted-staff button.po-step:not(:disabled):hover{transform:none;background:linear-gradient(150deg,#fff,#ececec)}
body.noted-staff .po-step:first-child{border-right:1px solid var(--desk-line)}
body.noted-staff .po-step:last-child{border-left:1px solid var(--desk-line)}
/* Selects and date fields: one control look, no browser-default chrome. */
body.noted-staff :is(input,textarea)::placeholder{color:#767676!important;opacity:1}
body.noted-staff.nu-concierge :is(main,.sm-panel,.nu-dialog) select:not([multiple]):not([size]){
  -webkit-appearance:none;appearance:none;padding-right:44px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23242424' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 16px center!important;background-size:12px 8px!important;
}
body.noted-staff input:is([type=date],[type=time]){text-align:left}
body.noted-staff input:is([type=date],[type=time])::-webkit-date-and-time-value{text-align:left}
body.noted-staff input:is([type=date],[type=time])::-webkit-calendar-picker-indicator{opacity:.55}
body.noted-staff.nu-concierge :is(main,.sm-panel,.nu-dialog) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea):focus-visible{outline:3px solid var(--desk-ink)!important;outline-offset:2px!important}
/* Reservation review groups: inner padding so text never touches the edge. */
body.noted-staff.nu-concierge #bookingOverlay .bk-review-group{padding:20px 22px!important;margin:0 0 12px;border-color:var(--desk-line)!important;background:#fff}

/* ===== One UI tokens. Last block in this file on purpose: it is the single winner for field, button, label
   and spacing geometry on every staff page. public/partner/partner.css :root carries the same names.
   Spacing: 12px inside a group, 24px between groups and cards, 48px between page sections. ===== */
body.noted-staff{
  --gap-in:12px;--gap-group:24px;--gap-section:48px;
  --card-pad:24px;--card-radius:22px;
  --field-h:48px;--field-pad:12px 16px;--field-pad-select:12px 44px 12px 16px;--field-radius:14px;
  --field-border:#d6d6d6;--field-bg:#fff;--field-shadow:inset 0 1px 2px #0000000a;
  --field-focus:#242424;--field-invalid:#8b3029;--textarea-min:96px;
  --btn-h:48px;--btn-compact-h:44px;--btn-pad:0 24px;--btn-radius:14px;
  --label-ink:#676767;--group-title-ink:#242424;
}

/* One field: every text, email, tel, number, search, password, date and time input, select and textarea.
   48px tall, 16px text (iOS never zooms), 12px 16px padding, radius 14, 1px border, charcoal focus ring. */
body.noted-staff.nu-concierge :is(input,select,textarea):where(:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],.po-sr-only,.po-camera *)):not(#staffPin){
  box-sizing:border-box!important;min-height:var(--field-h)!important;
  font:400 16px/22px var(--team-font)!important;letter-spacing:0!important;
  border:1px solid var(--field-border)!important;border-radius:var(--field-radius)!important;
  background-color:var(--field-bg)!important;box-shadow:var(--field-shadow)!important;color:var(--desk-ink,#242424)!important;
}
body.noted-staff.nu-concierge :is(input,textarea):where(:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],.po-sr-only,.ndp-field,.po-camera *)):not(#staffPin){padding:var(--field-pad)!important}
body.noted-staff.nu-concierge select:not([multiple]):not([size]):not(#staffPin){padding:var(--field-pad-select)!important;background-position:right 16px center!important}
body.noted-staff.nu-concierge .ndp>input.ndp-field:not(#staffPin){padding:12px 48px 12px 16px!important}
body.noted-staff.nu-concierge textarea:not(#staffPin){min-height:var(--textarea-min)!important;line-height:22px!important;height:auto}
body.noted-staff.nu-concierge :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea):not(#staffPin):focus{border-color:var(--field-focus)!important;box-shadow:var(--field-shadow)!important}
body.noted-staff.nu-concierge :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea):not(#staffPin):focus-visible{outline:3px solid var(--field-focus)!important;outline-offset:2px!important}
/* One error red for a field that needs fixing, the reservation sheet included. */
body.noted-staff.nu-concierge :is(input,select,textarea)[aria-invalid=true]:not(#staffPin),
body.noted-staff.nu-concierge #bookingOverlay [aria-invalid="true"]{border-color:var(--field-invalid)!important;box-shadow:0 0 0 1px var(--field-invalid)!important}
/* Steppers and choice chips are fields too: same height, border and radius. */
body.noted-staff.nu-concierge :is(.po-stepper,.po-choice){min-height:var(--field-h)!important;border-radius:var(--field-radius)!important}
body.noted-staff.nu-concierge .po-step{min-height:46px}
/* The date picker's open button keeps the charcoal focus ring, not olive. */
body.noted-staff.nu-concierge :is(.ndp,#ndp-lift)>.ndp-icon:focus-visible{outline:3px solid var(--field-focus)!important;outline-offset:-3px!important}

/* One label: 600 13px, muted, 12px above its field. Help and errors sit 12px under the field. */
body.noted-staff.nu-concierge :is(.po-field>span:first-child,.bk-field>label,.bk-field label:first-child,.fl-note>label,.bk-intake-label){
  font:600 13px/18px var(--team-font)!important;letter-spacing:0!important;text-transform:none!important;color:var(--label-ink)!important;
}
body.noted-staff .po-field{gap:var(--gap-in)!important}
body.noted-staff .po-field .po-field-error{margin:0!important}
body.noted-staff.nu-concierge :is(.bk-field>label,.bk-field label:first-child,.bk-intake-label){display:block;margin:0 0 var(--gap-in)!important}
body.noted-staff.nu-concierge #bookingOverlay :is(.bk-field-help,.bk-help){margin-top:var(--gap-in)!important}
/* Group titles ("Guest", "Visit", "Tasting type", "Billing address"): sentence case, 600 17px, ink. */
body.noted-staff.nu-concierge :is(.po-group>legend,.rp-subhead,.po-saved-title),
body.noted-staff.nu-concierge #bookingOverlay .sm-section>.sm-flabel{
  font:600 17px/24px var(--team-font)!important;letter-spacing:-.01em!important;text-transform:none!important;color:var(--group-title-ink)!important;
  margin:0 0 var(--gap-in)!important;padding:0!important;
}
body.noted-staff.nu-concierge .po-group>legend .po-required{font-size:13px}
body.noted-staff.nu-concierge .rp-subhead:not(:first-child){margin-top:var(--gap-group)!important}
body.noted-staff.nu-concierge #bookingOverlay .sm-section>.sm-flabel span{font-size:13px;font-weight:400;color:var(--label-ink)}

/* Spacing. Inside a group 12, between groups and fields in a grid 24 (rows) by 12 (columns). */
body.noted-staff .po-grid,body.noted-staff.nu-concierge #bookingOverlay .bk-grid{gap:var(--gap-group) var(--gap-in)!important}
body.noted-staff.nu-concierge :is(.sm-section,.grp){margin-bottom:var(--gap-group)!important}
body.noted-staff .po-lines{gap:var(--gap-in)}
body.noted-staff .po-actions{gap:var(--gap-in);margin-top:var(--gap-group)}
/* Cards: one radius, 24px padding at every width, 24px apart. */
body.noted-staff.nu-concierge .po-card{padding:var(--card-pad)!important;border-radius:var(--card-radius)!important;margin-top:var(--gap-group)}
/* Inside a card: 24px between its blocks, 12px from the card title to the line under it. Inside a group: 12px. */
body.noted-staff.nu-concierge :is(.po-card,.po-card>form:not(.po-grid))>:where(:not(.po-sr-only,.po-camera,[hidden])){margin-top:0!important;margin-bottom:0!important}
body.noted-staff.nu-concierge :is(.po-card,.po-card>form:not(.po-grid))>:where(:not(.po-sr-only,.po-camera,[hidden]))~:where(:not(.po-sr-only,.po-camera,[hidden],:empty)){margin-top:var(--gap-group)!important}
body.noted-staff.nu-concierge .po-card>:is(h2,.rp-club-head):first-child+*{margin-top:var(--gap-in)!important}
body.noted-staff.nu-concierge .po-group>:where(:not(legend,.po-sr-only)){margin-top:0!important;margin-bottom:0!important}
body.noted-staff.nu-concierge .po-group>:where(:not(legend,.po-sr-only))~:where(:not(legend,.po-sr-only,:empty)){margin-top:var(--gap-in)!important}
/* Page sections are 48px apart: the header's hairline sits 24px under its text and 48px over the content. */
body.noted-staff :is(.po-intro,.wl-intro){padding-bottom:var(--gap-group)!important;margin-bottom:var(--gap-section)!important}
body.noted-staff .po-status{margin-top:var(--gap-group)}
body.noted-staff .wl-toolbar{margin:0 0 var(--gap-in)!important}
body.noted-staff .wl-notice{margin:0 0 var(--gap-group)!important}
body.noted-staff .wl-notice:empty{display:none}
body.noted-staff .wl-families{gap:var(--gap-group)!important}
body.noted-staff.nu-home :is(.home-heading,.home-today,.home-actions,.home-visits,.home-tock){margin-bottom:var(--gap-section)!important}
body.noted-staff.nu-home .today-value{margin-top:var(--gap-in)}
body.noted-staff.nu-home #deskGlance>.today-label{margin-bottom:0}
body.noted-staff.nu-home #deskGlance>.today-label+*{margin-top:var(--gap-in)!important}
body.noted-staff.nu-home .home-today .home-action-heading{margin-bottom:var(--gap-in)}
body.noted-staff.nu-home .today-stats{gap:var(--gap-group)!important}
/* Empty status and error lines take no room (no blank band at the foot of a card). */
body.noted-staff .po-card :is(.po-note,.nu-error,.po-status,.po-flag):empty,
body.noted-staff :is(#poVisitError,#poCaptureError):empty{display:none!important}

/* One button: primary and secondary are both 48px, 600 15px, radius 14, 24px sides. The camera panel keeps its
   own sizes (the capture stage geometry never changes). 44px is only for icon buttons, chips and toggles. */
body.noted-staff.nu-concierge :is(.nu-primary,.nu-secondary,.sm-btn,.po-remove,.rp-form-link,.rp-club-mark,.po-shot-retake):not(.po-camera *):not(#notedSignIn *){
  min-height:var(--btn-h)!important;padding:0 24px!important;border-radius:var(--btn-radius)!important;
  font:600 15px/20px var(--team-font)!important;letter-spacing:0!important;text-transform:none!important;
}
body.noted-staff.nu-concierge :is(.nu-secondary,.sm-btn.ghost):not(.po-camera *):not(:disabled){background:linear-gradient(150deg,#fff,#f2f2f2)!important;border:1px solid #dedede!important;color:var(--desk-ink,#242424)!important}
body.noted-staff.nu-concierge .sm-btn:not(.ghost):not(:disabled){background:linear-gradient(155deg,#424242,#191919)!important;border:1px solid #424242!important;color:#fff!important}
body.noted-staff.nu-concierge .po-remove{color:var(--desk-muted,#676767)!important}
body.noted-staff.nu-concierge .po-shot .po-shot-retake{min-width:0}
body.noted-staff.nu-concierge a:is(.sm-btn,.nu-secondary):not(.po-camera *){display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
body.noted-staff.nu-concierge :is(.nu-icon-btn,.sm-close,.sheet-close,#bkClose,#sysClose){min-width:44px!important;min-height:44px!important}

/* ===== Responsive ===== */
/* Phones: focused fields scroll clear of the home indicator. */
@media(max-width:600px){
  html:has(body.noted-staff){scroll-padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}
/* Uploader wine lines: the wine picker gets the whole row, so vintage, bottle size and price stay readable.
   Bottles and Remove share the row under it. */
body.noted-staff .po-line{grid-template-columns:minmax(0,180px) auto!important;justify-content:space-between;align-items:end}
body.noted-staff .po-line>.po-line-wine{grid-column:1 / -1}
body.noted-staff .po-line>.po-remove{grid-column:auto!important;justify-self:end}
@media(max-width:760px){body.noted-staff .po-line{grid-template-columns:minmax(0,1fr) auto!important}}
/* Pages: Search Shopify sits under both fields at the row's end (full width on phones). */
body.noted-staff :is(#pgForm,#brForm)>.po-actions{grid-column:1 / -1;margin-top:0}
body.noted-staff #brForm>.po-field{grid-column:1 / -1}
@media(min-width:761px){body.noted-staff .po-actions{align-items:center}}
/* Reports and The Book: date field and day buttons are both 48px, so the day picker row lines up. */
body.noted-staff .rp-day{align-items:end}
/* Reports month: MTD Total stays in view at the right edge while the days scroll. */
body.noted-staff .rp-grid :is(th,td).rp-grid-mtd{position:sticky;right:0;z-index:1;box-shadow:-1px 0 0 #e0e0e0}
body.noted-staff .rp-grid thead th.rp-grid-mtd{z-index:2}
/* Phones: narrow report tables wrap their text between words instead of scrolling sideways. A word or an amount is
   never split ("Busin ess", "$9 60. 00"); a table still too wide scrolls inside its box (QI-6). */
@media(max-width:600px){
  body.noted-staff .rp-ref-table{width:100%!important;min-width:0!important;table-layout:auto}
  body.noted-staff .rp-ref-table :is(th,td){white-space:normal!important;padding:8px 6px!important;overflow-wrap:normal;word-break:normal}
  body.noted-staff .rp-ref-table td.rp-money{white-space:nowrap!important}
  body.noted-staff .rp-ref-table thead th{font-size:12px}
  /* Month grid: the sticky row labels and the sticky MTD Total filled the whole box, so no day ever showed. Both
     narrow so about two days show between them (QI-2). */
  body.noted-staff .rp-grid tbody th,body.noted-staff .rp-grid thead .rp-grid-corner{min-width:84px;max-width:96px;padding:8px 6px;font-size:12px}
  body.noted-staff .rp-grid :is(th,td).rp-grid-mtd{max-width:84px;white-space:normal;padding:8px 6px;font-size:12px}
  body.noted-staff .rp-grid :is(.rp-grid-cell,.rp-grid-off){min-width:44px;padding:8px 6px;font-size:12px}
}
/* Desk, At a glance: five cards never leave one alone on a second row (two, then three). */
@media(min-width:601px) and (max-width:1180px){
  body.noted-staff.nu-home .today-stats:has(>:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))!important}
  body.noted-staff.nu-home .today-stats:has(>:nth-child(5):last-child)>*{grid-column:span 2}
  body.noted-staff.nu-home .today-stats:has(>:nth-child(5):last-child)>:nth-child(-n+2){grid-column:span 3}
}
@media(max-width:600px){
  body.noted-staff.nu-home .today-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--gap-in)!important}
  body.noted-staff.nu-home .today-stats>:last-child:nth-child(odd){grid-column:1 / -1}
}
/* Samples: host chips wrap as chips on phones; a long name stays inside its chip. */
body.noted-staff #smHosts{display:flex!important;flex-wrap:wrap;gap:var(--gap-in)}
body.noted-staff #smHosts>*{min-width:0;max-width:100%}
/* One empty state: a grey well with one muted sentence. */
body.noted-staff.nu-concierge :is(.tock-empty,.nu-empty,#rpSamplesReasonsEmpty){border:0!important;border-radius:16px!important;background:var(--desk-well,#f6f6f6)!important;padding:16px 20px!important;font:400 14px/1.5 var(--team-font)!important;color:var(--desk-muted,#676767)!important}
/* Floor on short landscape screens (iPad mini, iPad 11): the room column is part of the page, not its own
   scroll box, so the last room is never cut at the screen edge. */
@media(min-width:1100px) and (max-height:860px){
  body.noted-staff .fl-room{position:static!important;max-height:none!important;overflow:visible!important}
}
/* Reservation sheet on phones: a compact header (title and close, then the hint and Share tasting link) so the
   form keeps most of the screen. */
@media(max-width:600px){
  body.noted-staff.nu-concierge #bookingOverlay .sm-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t x" "s sh";align-items:center;gap:4px 12px!important;padding:12px 16px!important}
  body.noted-staff.nu-concierge #bookingOverlay .sm-head>div:first-child,
  body.noted-staff.nu-concierge #bookingOverlay .sm-head>.bk-head-actions{display:contents}
  body.noted-staff.nu-concierge #bookingOverlay #bkOverlayTitle{grid-area:t;font-size:24px!important;line-height:1.15!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  body.noted-staff.nu-concierge #bookingOverlay #bkStepInd{grid-area:s;margin:0!important;font-size:13px!important;line-height:1.35!important;min-width:0}
  body.noted-staff.nu-concierge #bookingOverlay #bkShareLink{grid-area:sh;max-width:none!important;white-space:nowrap!important;font-size:13px!important;padding:0 14px!important;min-height:44px}
  body.noted-staff.nu-concierge #bookingOverlay #bkClose{grid-area:x;justify-self:end}
  body.noted-staff.nu-concierge #bookingOverlay>.sm-panel>.sm-sub{padding:8px 16px!important}
}
/* Phones: Previous day and Next day keep one line of text inside their half-width 48px buttons. */
@media(max-width:760px){
  body.noted-staff.nu-concierge :is(.rp-day,.rp-month-pick) .nu-secondary:not(.po-camera *):not(#notedSignIn *){padding:0 12px!important}
}

/* ===== Cross-page floor (qa-cross, night of 2026-10-11). Read on every staff page: no text under 12px, text at least
   4.5:1 against its ground, no olive left over, and one close button. Sizes and colours only; nothing moves. ===== */
/* 12px floor: the header's account name, the Desk's eyebrows, footer and Day at a glance hours, the Reports month
   weekday letters, Wine List small print, Floor labels and the order form captions. */
body.noted-staff.nu-concierge .nu-shell .nu-account-name,
body.noted-staff.nu-home.nu-concierge :is(.ch-eyebrow,.home-footer,.home-footer>span,.glance-tick),
body.noted-staff .rp-day-link span,
body.noted-staff :is(.wl-subhead,.wl-row-sku,.wl-stock,.fl-label,.of-form figcaption){font-size:12px!important}
/* Contrast: the Day at a glance hours (#767676 on #fbfbfb was 4.4:1) and the uploader's later steps (#8a8a8a was 3.5:1)
   take the shared muted ink (#676767, 5.7:1). The rail rule is not !important (night-final): the step you are on and the
   steps done keep their ink from photo-orders.css, which wins on specificity. */
body.noted-staff.nu-home.nu-concierge .glance-tick{color:var(--desk-muted)!important}
body.noted-staff .po-rail-step,body.noted-staff .po-rail-step .po-rail-num{color:var(--desk-muted)}
/* No olive: a free table on the Floor reads in ink, and a chosen Floor chip is the shared chosen chip (charcoal). */
body.noted-staff .fl-table-now.free{color:var(--desk-ink)!important}
body.noted-staff .fl-chip.on{background:#242424!important;color:#fff!important}
/* One close button: staff access closes with the same grey round button as every sheet and dialog. */
body.noted-staff.nu-concierge #notedSignIn.nu-access .nu-dialog-head .nu-icon-btn{background:#f5f5f5!important;color:var(--desk-ink)!important}
/* One error red. noted-concierge.css still forced the older #934b36 on .nu-error with !important, so form errors on the
   uploader and the reservation sheet read a different red from the field outline. Staff access keeps its own calm box. */
body.noted-staff.nu-concierge :is(.sm-errtxt,.nu-error,.ios-flow-error){color:var(--field-invalid)!important}
/* One load-error box: the uploader's matches the line Reports, The Book, Pages, Samples and Barolo show. */
body.noted-staff .po-load-error{border-color:var(--field-border)!important;border-left-color:var(--field-invalid)!important}
body.noted-staff .po-load-error .nu-error{font-size:14px!important;line-height:1.4!important}
/* One stepper: the uploader's guests and fees take the shared stepper's ends (white, 22px glyph, a pale glyph when
   it cannot go further) and both keep the field radius. */
body.noted-staff .nu-stepper:not(#nu-none){border-radius:var(--field-radius)!important}
body.noted-staff.nu-concierge:is(.nu-tool,.nu-home) main .po-stepper>.po-step{background:#fff!important;font:500 22px/1 var(--team-font)!important;color:var(--desk-ink)!important}
body.noted-staff.nu-concierge:is(.nu-tool,.nu-home) main .po-stepper>.po-step:disabled{background:#fff!important;color:#b8b8b8!important}
/* One empty state on the Desk: the Tock list's empty line sits centred like the others. */
body.noted-staff.nu-home #tockTodayEmpty{text-align:center}
/* The brand reads noted., lower case with the period: the Desk footer's "Skipstone · noted." is no longer set in capitals. */
body.noted-staff.nu-home.nu-concierge .home-footer>span:last-child{text-transform:none!important;letter-spacing:0!important}
/* No olive on Reports either: a club signup on another tier or not yet checked is marked with the muted rule, not olive.
   Done ones keep their pale rule; not in the club yet keeps amber. */
body.noted-staff :is(.rp-club-other_tier,.rp-club-unchecked):not(.rp-club-done *){border-left-color:var(--desk-muted)!important}
/* A card title that sits right over a field group gets the group gap (24px) under it, not the 12px inside a group
   (Sample Tracker "Log a Sample", decision 6.6; any page with the same shape). Additive, samples lane. */
body.noted-staff.nu-concierge .po-card>h2:first-child+fieldset.po-group{margin-top:var(--gap-group)!important}

/* ===== Shell (night 2, 2026-10-12). The header, the fade under it, the footer, page tops, heading weight and round
   pills on every staff page. public/shared/noted-ui.js builds the header and footer. Kept last on purpose. ===== */
html:has(body.noted-staff){scroll-padding-top:calc(var(--nu-header-h,88px) + 24px)}
/* The header sticks inside body. The Desk's own page style fixes html and body to the screen's height, which let the
   header scroll away after the first screen: body grows with the page instead. */
html:has(body.noted-staff.nu-home),body.noted-staff.nu-home{height:auto!important;min-height:100%}
body.noted-staff{--choice-radius:999px;--shell-line:#ebebe8;--shell-side:max(48px,calc((100% - 1180px) / 2))}

/* Header: solid white, a hairline under it, the noted. wordmark on the left and the person's photo on the right.
   88px on iPad and desktop, 64px on phones, plus the top safe area in a Home Screen app. */
body.noted-staff.nu-concierge .nu-shell{position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:65!important;
  box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important;
  width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;margin:0!important;
  padding:calc(20px + env(safe-area-inset-top)) max(var(--shell-side),env(safe-area-inset-right)) 19px max(var(--shell-side),env(safe-area-inset-left))!important;
  border:0!important;border-bottom:1px solid var(--shell-line)!important;border-radius:0!important;
  background:#fff!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
body.noted-staff.nu-concierge .nu-shell .nu-brand{display:inline-flex!important;align-items:center!important;gap:0!important;min-width:0!important;
  min-height:48px!important;margin:0!important;padding:0!important;border-radius:12px;text-decoration:none}
body.noted-staff.nu-concierge .nu-shell .nu-brand img.nu-noted-wordmark{display:block;width:105px!important;height:auto!important;max-width:none!important;opacity:1!important}
body.noted-staff.nu-concierge .nu-shell button.nu-avatar{position:relative;flex:none;display:inline-grid;place-items:center;box-sizing:border-box;
  width:44px;height:44px;min-width:44px;min-height:44px;margin:0 0 0 auto;padding:0;border:0;border-radius:50%;overflow:hidden;
  background:#242424!important;color:#fff!important;font:700 15px/1 var(--team-font)!important;letter-spacing:0;cursor:pointer;
  box-shadow:0 0 0 1px #00000014!important;transform:none!important}
body.noted-staff.nu-concierge .nu-shell button.nu-avatar[hidden]{display:none}
body.noted-staff.nu-concierge .nu-shell .nu-avatar-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
body.noted-staff.nu-concierge .nu-shell .nu-avatar-photo[hidden]{display:none}
body.noted-staff.nu-concierge .nu-shell .nu-avatar.has-photo .nu-avatar-initials{visibility:hidden}
/* Tapping the photo shows the name for a moment, inside the screen under the photo. */
body.noted-staff.nu-concierge .nu-shell .nu-avatar-name{position:absolute;top:calc(100% + 12px);right:max(var(--shell-side),env(safe-area-inset-right));
  max-width:calc(100vw - 48px);box-sizing:border-box;padding:12px 16px;border-radius:999px;background:#242424;color:#fff;
  font:600 14px/1.2 var(--team-font)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 6px 20px #00000026;
  opacity:0;transform:translateY(-4px);transition:opacity 160ms ease,transform 160ms ease;pointer-events:none}
body.noted-staff.nu-concierge .nu-shell .nu-avatar-name.is-shown{opacity:1;transform:none}
body.noted-staff.nu-concierge .nu-shell .nu-avatar-name[hidden]{display:none}
html.noted-staff-locked body.noted-staff .nu-shell :is(.nu-avatar,.nu-avatar-name){display:none!important}
@media(max-width:760px){
  body.noted-staff{--shell-side:24px}
  body.noted-staff.nu-concierge .nu-shell{padding-top:calc(8px + env(safe-area-inset-top))!important;padding-bottom:7px!important}
  body.noted-staff.nu-concierge .nu-shell .nu-brand img.nu-noted-wordmark{width:88px!important}
}

/* The fade under the header, as on notedstudio.io: two fixed bands that never take a tap. A short strong band over
   the content and a tall soft one under it, both white to clear. They show once the page has scrolled (noted-ui.js
   sets html.nu-scrolled), so a title at rest is never washed out. Sticky bars stay above them (z-index 30). */
body.noted-staff .nu-fade{position:fixed;left:0;right:0;top:var(--nu-header-h,88px);pointer-events:none;user-select:none;opacity:0;
  background:linear-gradient(#fff,rgba(255,255,255,.7) 40%,rgba(255,255,255,0));transition:opacity 180ms ease}
body.noted-staff .nu-fade-near{height:38px;z-index:25}
body.noted-staff .nu-fade-far{height:137px;z-index:3}
html.nu-scrolled body.noted-staff .nu-fade{opacity:1}
.nu-embedded :is(.nu-fade,.nu-footer){display:none!important}
@media(max-width:600px){body.noted-staff .nu-fade-far{height:96px}}
body.noted-staff #poCapture{z-index:30}
@media(min-width:1100px){body.noted-staff .fl-room{z-index:30}}

/* Footer: the client's logo on the left, Lock in the middle, the noted. icon on the right at full opacity. The page's
   last content sits 48px above it; the Barolo button's spacer (barolo-launcher.mjs) comes after it. */
body.noted-staff .nu-footer{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;
  width:min(1180px,calc(100% - 96px));margin:48px auto 0;padding:24px 0 calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--shell-line)}
body.noted-staff .nu-footer-client{grid-column:1;justify-self:start;display:block;height:28px;width:auto;max-width:100%}
body.noted-staff.nu-concierge .nu-footer .nu-footer-lock{grid-column:2;justify-self:center;min-width:120px;min-height:48px!important}
body.noted-staff .nu-footer-lock[hidden]{display:none!important}
body.noted-staff .nu-footer-noted{grid-column:3;justify-self:end;display:block;width:30px;height:auto;opacity:1}
@media(max-width:760px){body.noted-staff .nu-footer{width:calc(100% - 48px);gap:12px}body.noted-staff .nu-footer-client{height:22px}}
/* The page ends at its content; the footer brings its own 48px. */
body.noted-staff.nu-home .page{padding-bottom:0!important}
body.noted-staff :is(.po-main,.wl-main){margin-bottom:0}
@media(max-width:700px){body.noted-staff.nu-home .page{padding-bottom:0!important}body.noted-staff.nu-concierge.nu-tool{padding-bottom:0!important}}

/* Page tops: the title alone, no eyebrow and no line under it. A stray eyebrow from older markup stays hidden. */
body.noted-staff :is(.po-intro,.wl-intro,.hero,.nu-welcome-copy) :is(.nu-eyebrow,.desk-eyebrow){display:none!important}
body.noted-staff :is(.po-intro,.wl-intro) h1{margin:0!important}
/* The Desk: the client's logo above the date, about nine tenths of the date line's width, height in proportion. The
   date line sets the width; noted-ui.js measures it. */
body.noted-staff.nu-home .hero .hero-mark{display:inline-grid;justify-items:start;gap:12px;max-width:100%;margin:0 0 12px}
body.noted-staff.nu-home .hero .hero-mark .date{margin:0!important}
body.noted-staff.nu-home .hero .hero-logo{display:block;width:0;min-width:90%;height:auto;object-fit:contain;object-position:left center}
/* noted-ui.js measures the date line and sets the logo's width (min-width above is the first paint's guess). */
body.noted-staff.nu-home .hero .hero-logo[style*="width"]{min-width:0}
body.noted-staff.nu-home .hero .hero-logo:not([src]){display:none}

/* Headings, sheet titles, group titles and tile titles: bold 700, AP Title Case in the words (never text-transform).
   Labels stay 600. */
body.noted-staff.nu-concierge:is(.nu-home,.nu-tool) :is(h1,h2,h3,legend,.sm-title,.pk-title,.wp-title,.mtitle,.sec .t,.home-tools-title,.wl-family h2,
  .po-card h2,.po-group>legend,.rp-subhead,.po-saved-title,.brl-title,.ios-section-title,.sm-big,.nu-welcome-copy h1,.nu-pin-lockout-title):not(#nu-none){font-weight:700!important}
body.noted-staff.nu-concierge.nu-home .tiles .tile .ttl:not(#nu-none){font-weight:700!important}
/* No heading is set in capitals by CSS: the Wine List's group titles read as written (Standard Bottles, Large Format). */
body.noted-staff.nu-concierge:is(.nu-home,.nu-tool) :is(h1,h2,h3,legend,.wl-subhead,.po-saved-title):not(#nu-none){text-transform:none!important}
body.noted-staff.nu-concierge .wl-subhead:not(#nu-none){font-size:15px!important;line-height:1.3!important;letter-spacing:0!important;color:var(--desk-ink)!important}

/* Choice pills fully round, like the pickers: segmented controls, uploader and sample chips, reservation toggles,
   the design system pills and the Floor chips. */
body.noted-staff.nu-concierge :is(.po-choice,.sm-pill,.sm-pills,.bk-toggle,.bk-tg,.ns-pill,.ns-pill-well,.fl-chip,.nu-choice-segmented,
  .nu-choice-segmented .nu-choice-option):not(#nu-none){border-radius:var(--choice-radius)!important}

@media(prefers-reduced-motion:reduce){
  body.noted-staff .nu-fade,body.noted-staff.nu-concierge .nu-shell .nu-avatar-name{transition:none!important}
}
/* The PIN screen: a team member's photo covers their initials once this iPad has a copy (noted-access.js). */
body.noted-staff.nu-concierge #notedSignIn .nu-profile-avatar{position:relative;overflow:hidden}
body.noted-staff.nu-concierge #notedSignIn .nu-profile-avatar .nu-profile-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
body.noted-staff.nu-concierge #notedSignIn .nu-profile-avatar.has-photo{color:transparent!important}

/* Pull to refresh and swipe back (public/shared/noted-gestures.mjs). Once the module is in, the page no longer
   rubber-bands and the browser's own pull to refresh is off: ours asks before it reloads unsaved work. */
html.nu-gestures:has(body.noted-staff){overscroll-behavior-y:none;--nu-safe-left:env(safe-area-inset-left,0px)}
body.noted-staff .nu-pull{position:fixed;left:50%;top:calc(var(--nu-header-h,88px) + 12px);z-index:64;box-sizing:border-box;width:44px;height:44px;
  margin-left:-22px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--desk-ink,#242424);border:1px solid var(--desk-line,#e0e0e0);
  box-shadow:0 4px 14px #0000001a;pointer-events:none;opacity:0;transform:translateY(calc(-56px + 68px * var(--nu-pull,0)));
  transition:opacity 160ms ease,transform 160ms ease}
body.noted-staff .nu-pull.is-pulling{opacity:var(--nu-pull,0);transition:none}
body.noted-staff .nu-pull.is-armed,body.noted-staff .nu-pull.is-spinning{opacity:1;background:#242424;color:#fff;border-color:#242424}
body.noted-staff .nu-pull.is-spinning{transform:translateY(12px)}
body.noted-staff .nu-pull svg{display:block;width:22px;height:22px;transform:rotate(var(--nu-pull-turn,0deg))}
body.noted-staff .nu-pull.is-spinning svg{animation:nu-pull-spin .8s linear infinite}
@keyframes nu-pull-spin{to{transform:rotate(360deg)}}
body.noted-staff .nu-swipe-back{position:fixed;left:max(12px,env(safe-area-inset-left));top:50%;z-index:64;box-sizing:border-box;display:inline-flex;
  align-items:center;gap:4px;height:44px;margin-top:-22px;padding:0 16px 0 10px;border-radius:999px;background:#fff;color:var(--desk-ink,#242424);
  border:1px solid var(--desk-line,#e0e0e0);box-shadow:0 4px 14px #0000001a;font:600 15px/1 var(--team-font);pointer-events:none;
  opacity:0;transform:translateX(-24px)}
body.noted-staff .nu-swipe-back.is-shown{opacity:var(--nu-swipe,0);transform:translateX(calc(-24px + 24px * var(--nu-swipe,0)))}
body.noted-staff .nu-swipe-back.is-armed{opacity:1;background:#242424;color:#fff;border-color:#242424}
body.noted-staff .nu-swipe-back svg{display:block;width:18px;height:18px}
/* The unsaved-information question: one sentence and its buttons, full width, 12px apart. */
body.noted-staff.nu-concierge dialog.nu-shell-prompt{width:min(460px,calc(100% - 48px));box-sizing:border-box;padding:24px;border-radius:var(--card-radius,22px)}
body.noted-staff .nu-shell-prompt-text{margin:0 0 24px;font:700 20px/1.35 var(--team-font)!important;letter-spacing:-.02em;color:var(--desk-ink,#242424)}
body.noted-staff .nu-shell-prompt-actions{display:grid;gap:12px}
body.noted-staff.nu-concierge .nu-shell-prompt-actions button{width:100%}
@media(max-width:600px){body.noted-staff.nu-concierge dialog.nu-shell-prompt{width:100%;padding-bottom:calc(24px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){body.noted-staff .nu-pull,body.noted-staff .nu-swipe-back{transition:none!important}}
/* Staff access: no eyebrow under the logos, no label over the PIN dots and no line under the title where the screen
   speaks for itself (choosing a profile, entering a PIN). Errors and the setup steps keep their lines. */
body.noted-staff.nu-concierge #notedSignIn :is(.nu-original-lockup span,.nu-original-pin-label),
body.noted-staff.nu-concierge #notedSignIn:is([data-mode=profiles],[data-mode=pin]) #staffAccessIntro{display:none!important}
