.event-staffing-plan{--esp-ink:var(--navy-dark);--esp-blue:var(--navy);--esp-page:var(--bg);--esp-paper:var(--paper);--esp-stone:var(--muted);--esp-gold-light:var(--brand-gold-light);--esp-gold-mid:var(--gold);--esp-gold-dark:var(--gold-dark);--esp-wash:var(--wash);--esp-muted:var(--mute-fg);--esp-rule:var(--rule-soft);--esp-gold:var(--focus-ring);--esp-warn:var(--warn-fg);--esp-warnwash:var(--warn-bg);--esp-server:var(--navy);--esp-setup:color-mix(in srgb,var(--navy) 90%,var(--paper));--esp-bar:var(--navy-dark);--esp-dish:var(--esp-setup);--esp-close:color-mix(in srgb,var(--navy) 12%,var(--paper));background:transparent;color:var(--ink);font:400 var(--t-body)/1.5 Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;max-width:100%;color-scheme:light}
/* Staff Plan event identity; secondary routes remain in Event planning. */
.headwrap:has(.readiness-header--staff-plan){padding-top:var(--s-2)}
#app:has(.readiness-header--staff-plan)>.toolbar{margin-bottom:0}
.readiness-header--staff-plan{position:relative;margin:0 0 var(--s-2);padding:0 var(--s-4);border-bottom:1px solid var(--line);color:var(--ink)}
.readiness-header--staff-plan .readiness-plan-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}
.readiness-header--staff-plan .readiness-plan-title{min-width:0}
.readiness-header--staff-plan .readiness-plan-kicker{display:block;margin:0 0 var(--s-1);color:var(--mute-fg);font-size:var(--t-sub);line-height:1.5}
.readiness-header--staff-plan .readiness-plan-event-title{color:var(--text-heading);margin:0;font-size:var(--t-title);line-height:1.25;font-weight:600;overflow-wrap:anywhere}
.readiness-header--staff-plan .readiness-plan-facts{margin:var(--s-1) 0 0;font-size:var(--t-sub);line-height:1.5;color:var(--mute-fg)}
.readiness-header--staff-plan .readiness-plan-actions{display:flex;align-items:center;gap:var(--s-2);flex:none}
.readiness-header--staff-plan .readiness-plan-actions .btn{display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--control-height-touch);font-size:var(--t-sub)}
.readiness-header--staff-plan .readiness-plan-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2)}
.readiness-header--staff-plan .readiness-plan-tabs{overflow-x:auto;display:flex;align-items:center;gap:var(--s-4);min-width:0;margin:0;padding:0;border:0}
.readiness-header--staff-plan .readiness-plan-tab{appearance:none;margin-bottom:-1px;display:flex;align-items:center;gap:var(--s-2);min-height:var(--control-height-touch);padding:var(--s-2) 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;font:inherit;font-size:var(--t-sub);color:var(--mute-fg);white-space:nowrap;cursor:pointer}
.readiness-header--staff-plan .readiness-plan-tab:hover{color:var(--ink)}
.readiness-header--staff-plan .readiness-plan-tab[aria-selected=true]{border-bottom-color:var(--gold);color:var(--ink);font-weight:600}
.readiness-header--staff-plan .readiness-plan-context{position:relative;flex:none;color:var(--mute-fg);font-size:var(--t-sub)}
.readiness-header--staff-plan .readiness-plan-context>summary{display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--control-height-touch);padding:0 var(--s-2);cursor:pointer;list-style:none;color:var(--navy)}
.readiness-header--staff-plan .readiness-plan-context>summary::-webkit-details-marker{display:none}
.readiness-header--staff-plan .readiness-plan-context>summary::marker{content:""}
.readiness-header--staff-plan .readiness-plan-context[open]>summary{color:var(--navy);box-shadow:inset 0 -2px var(--gold)}
.readiness-header--staff-plan #readinessAllEvents{margin-bottom:var(--s-3);min-height:var(--control-height-touch)}
.readiness-header--staff-plan .readiness-plan-context-body{position:absolute;right:0;top:calc(100% + var(--s-1));z-index:20;width:min(32rem,calc(100vw - var(--s-5)));padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-m);background:var(--paper);box-shadow:0 var(--s-2) var(--s-5) color-mix(in srgb,var(--navy-dark) 15%,transparent)}
.readiness-header--staff-plan .readiness-plan-picker.pgh{display:flex;flex-direction:column;gap:var(--s-3);margin:0;padding:0;border:0;border-radius:0;background:transparent}
.readiness-header--staff-plan .readiness-plan-picker.pgh>*{width:100%;margin:0;order:initial}
.readiness-header--staff-plan .readiness-plan-picker .pgh-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}
.readiness-header--staff-plan .readiness-plan-picker .pgh-tile{min-height:var(--control-height-touch);padding:var(--s-2);gap:var(--s-2)}
.readiness-header--staff-plan .readiness-plan-picker .pgh-scope,.readiness-header--staff-plan .readiness-plan-picker .pgh-nav{display:block;min-width:0}
.readiness-header--staff-plan .readiness-plan-picker .pgh-navfield{min-width:0}
.readiness-header--staff-plan .readiness-plan-picker .pgh-picker-trigger,.readiness-header--staff-plan .readiness-plan-picker select{width:100%;min-height:var(--control-height-touch)}
.readiness-header--staff-plan #readinessPlanContextClose{display:block;min-height:var(--control-height-touch);margin:var(--s-3) 0 0 auto}
.readiness-header--staff-plan button:focus-visible,.readiness-header--staff-plan summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media(max-width:640px){.readiness-header--staff-plan{padding:0 0 var(--s-1)}.readiness-header--staff-plan .readiness-plan-heading{align-items:flex-start;flex-direction:column;gap:var(--s-2)}.readiness-header--staff-plan .readiness-plan-event-title{font-size:var(--t-section)}.readiness-header--staff-plan .readiness-plan-actions{gap:var(--s-2)}.readiness-header--staff-plan .readiness-plan-navigation{flex-wrap:wrap;gap:0;margin-top:var(--s-2)}.readiness-header--staff-plan .readiness-plan-tabs{flex-wrap:wrap;gap:var(--s-3);width:100%}.readiness-header--staff-plan .readiness-plan-tab{gap:var(--s-1);flex:1;justify-content:center;white-space:normal}.readiness-header--staff-plan .readiness-plan-tab .ci{flex:none}.readiness-header--staff-plan .readiness-plan-context{margin-left:auto}.readiness-header--staff-plan .readiness-plan-context-body{width:min(32rem,calc(100vw - var(--s-5)));max-height:70dvh;overflow:auto}.readiness-header--staff-plan .readiness-plan-picker .pgh-tile strong{font-size:var(--t-sub)}}
    .event-staffing-plan *{box-sizing:border-box}.event-staffing-plan [hidden]{display:none!important}
    .event-staffing-plan h1,.event-staffing-plan h2,.event-staffing-plan h3,.event-staffing-plan p{margin:0}
    .event-staffing-plan button,.event-staffing-plan input,.event-staffing-plan select{font:inherit;color:inherit}
    .event-staffing-plan button{border:1px solid var(--esp-rule);background:var(--esp-paper);border-radius:6px;min-height:var(--control-height-touch);padding:8px 13px;touch-action:manipulation}
    .event-staffing-plan button:hover{border-color:var(--esp-blue);background:var(--esp-wash)}
    .event-staffing-plan button:disabled{opacity:.55}.event-staffing-plan .esp-primary{background:var(--esp-blue);color:var(--paper);border-color:var(--esp-blue)}
    .event-staffing-plan .esp-primary:hover{background:var(--esp-ink)}
    .event-staffing-plan .esp-muted{color:var(--esp-muted)}.event-staffing-plan .esp-small{font-size:.75rem;line-height:1.5}
    .event-staffing-plan .esp-top{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--esp-blue);color:var(--paper);padding:14px 24px}
    .event-staffing-plan .esp-brand{font-weight:650;letter-spacing:.045em}.event-staffing-plan .esp-brand span{font-weight:400;letter-spacing:0;opacity:.85;margin-left:16px}
    .event-staffing-plan .esp-demo{font-size:.75rem;background:rgba(255,255,255,.12);border-radius:4px;padding:4px 9px}
    .event-staffing-plan .esp-event{padding:20px 24px 0}.event-staffing-plan .esp-crumb{font-size:.75rem;color:var(--esp-muted);margin-bottom:7px}
    .event-staffing-plan .esp-event h1{font-size:1.4rem;font-weight:600;letter-spacing:-.035em}
    .event-staffing-plan .esp-facts{display:flex;gap:6px 18px;flex-wrap:wrap;margin-top:6px;color:var(--esp-muted)}
    .event-staffing-plan .esp-eventnav{display:flex;gap:24px;margin-top:18px;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}
    .event-staffing-plan .esp-eventnav span{padding:0 0 10px;color:var(--esp-muted)}.event-staffing-plan .esp-eventnav .esp-current{color:var(--esp-ink);border-bottom:2px solid var(--esp-gold);font-weight:600}
    .event-staffing-plan .esp-workspace{padding:22px 24px 24px}
    .event-staffing-plan h2{font-size:1.25rem;font-weight:600;letter-spacing:-.025em}.event-staffing-plan h3{font-size:1rem;font-weight:600}
    .event-staffing-plan .esp-steps{display:flex;align-items:center;gap:10px;color:var(--esp-muted);font-size:.75rem}.event-staffing-plan .esp-steps strong{color:var(--esp-ink);font-weight:600}
    .event-staffing-plan .esp-stepnum{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--esp-blue);color:var(--paper);margin-right:5px}

    .event-staffing-plan .esp-metric-label{font-size:.75rem;color:var(--esp-muted);display:block}


    .event-staffing-plan .esp-linkbutton{padding:5px 2px;border-color:transparent;background:transparent;font-size:.75rem;text-decoration:underline;text-underline-offset:3px}

    .event-staffing-plan .esp-ticks{position:relative;container-type:inline-size;min-height:36px;line-height:1.4}.event-staffing-plan .esp-ticks>span{position:absolute;top:0;display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center;transform:translateX(-50%)}.event-staffing-plan .esp-ticks>span:first-child{left:0;align-items:flex-start;text-align:left;transform:none}.event-staffing-plan .esp-ticks>span:last-child{right:0;align-items:flex-end;text-align:right;transform:none}.event-staffing-plan .esp-ticks strong{display:block;width:max-content;font-weight:500;white-space:nowrap}.event-staffing-plan .esp-tick-day{display:block;width:max-content;font-size:var(--t-sub);color:var(--esp-muted);font-weight:400;margin-top:2px;white-space:nowrap}

    .event-staffing-plan .esp-shift button{border:0;background:transparent;color:inherit;border-radius:var(--r-s);min-height:var(--control-height-touch);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}

    .event-staffing-plan .esp-block strong{font-weight:650}
    .event-staffing-plan .esp-shift .esp-resize{position:absolute;z-index:2;top:0;bottom:0;width:var(--control-height-touch);padding:0;display:block;cursor:ew-resize;background:transparent;border:0;border-radius:var(--r-s)}
    .event-staffing-plan .esp-resize:first-child{left:calc(var(--control-height-touch) * -.5)}.event-staffing-plan .esp-resize:last-child{right:calc(var(--control-height-touch) * -.5)}

    .event-staffing-plan .esp-shift .esp-resize:hover{background:transparent}
    .event-staffing-plan .esp-shift[data-edge-start=true] .esp-resize:first-child{left:0}
    .event-staffing-plan .esp-shift[data-edge-end=true] .esp-resize:last-child{right:0}
    .event-staffing-plan .esp-shift[data-readonly=true] .esp-resize,.event-staffing-plan .esp-shift[data-compact=true] .esp-resize{display:none}
    .event-staffing-plan .esp-shift[data-readonly=true] .esp-block{cursor:default;touch-action:auto}
    .event-staffing-plan[data-dragging=move],.event-staffing-plan[data-dragging=move] .esp-block{cursor:grabbing}
    .event-staffing-plan[data-dragging=start],.event-staffing-plan[data-dragging=end]{cursor:ew-resize}
    .event-staffing-plan[data-dragging] .esp-shift{user-select:none}

    .event-staffing-plan .esp-touch-rail{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--s-1);margin:var(--s-1) 0 var(--s-3);padding:var(--s-1);border:1px solid var(--esp-rule);border-radius:var(--r-m);background:var(--esp-wash)}
    .event-staffing-plan .esp-touch-rail button{min-height:52px;min-width:0;padding:var(--s-1);background:var(--esp-paper);border-color:transparent;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:ew-resize;font-size:var(--t-sub)}
    .event-staffing-plan .esp-touch-rail button[data-esp-drag=move]{cursor:grab}.event-staffing-plan .esp-touch-rail button:hover{border-color:var(--esp-rule);background:var(--esp-paper)}
    .event-staffing-plan .esp-touch-rail span,.event-staffing-plan .esp-touch-rail strong{display:block}.event-staffing-plan .esp-touch-rail strong{font-weight:600;margin-top:2px}
    .event-staffing-plan .esp-touch-rail span{color:var(--esp-muted)}
    @container(max-width:150px){.event-staffing-plan .esp-block span{display:none}}
    @media(any-pointer:coarse),(max-width:550px){@container(max-width:200px){.event-staffing-plan .esp-block span{display:none}}}
    .event-staffing-plan .esp-momentrow{display:grid;grid-template-columns:120px minmax(0,1fr);padding:12px 0 18px;color:var(--esp-muted);font-size:.75rem}
    .event-staffing-plan .esp-moments{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:0}.event-staffing-plan .esp-moments span{border-left:2px solid var(--esp-gold);padding-left:5px;line-height:1.4}
    .event-staffing-plan .esp-coverage{display:flex;gap:6px 14px;flex-wrap:wrap;border-top:1px solid var(--esp-rule);padding-top:12px;font-size:.75rem}
    .event-staffing-plan .esp-gap{color:var(--esp-warn)}.event-staffing-plan .esp-note{border-left:2px solid var(--esp-gold);padding-left:12px;margin-top:16px;color:var(--esp-muted);font-size:.8125rem}

    .event-staffing-plan .esp-kicker{font-size:.6875rem;text-transform:uppercase;letter-spacing:.07em;color:var(--esp-muted);margin-bottom:5px}
    .event-staffing-plan .esp-field{display:block;margin-top:17px;font-size:.75rem;font-weight:500}.event-staffing-plan .esp-field input,.event-staffing-plan .esp-field select{display:block;width:100%;margin-top:6px;border:1px solid var(--esp-rule);background:var(--esp-paper);border-radius:6px;padding:8px;min-height:var(--control-height-touch);font-size:.875rem}
    .event-staffing-plan .esp-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.event-staffing-plan .esp-counter{display:flex;align-items:center;justify-content:space-between;margin-top:7px;border:1px solid var(--esp-rule);border-radius:6px;background:var(--esp-paper)}
    .event-staffing-plan .esp-counter button{border:0;font-size:1.2rem;min-width:var(--control-height-touch);background:transparent}.event-staffing-plan .esp-counter output{font-size:1.2rem;font-weight:600}
    .event-staffing-plan .esp-rowcost{padding-top:16px;margin-top:20px;border-top:1px solid var(--esp-rule);display:flex;justify-content:space-between;gap:10px}.event-staffing-plan .esp-rowcost strong{font-size:1.1rem}
    .event-staffing-plan .esp-consequence{font-size:.8125rem;margin-top:14px!important}.event-staffing-plan .esp-error{font-size:.8125rem;color:var(--esp-warn);margin-top:12px}
    .event-staffing-plan .esp-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}.event-staffing-plan .esp-bottom p{max-width:510px}
    .event-staffing-plan .esp-disclosure{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px;font-size:.75rem;color:var(--esp-muted)}.event-staffing-plan summary{min-height:32px;padding:5px 0}
    .event-staffing-plan .esp-disclosure p{padding:7px 0;max-width:76ch}.event-staffing-plan .esp-comparison,.event-staffing-plan .esp-review{margin-top:16px;background:var(--esp-paper);border-radius:10px;padding:20px}
    .event-staffing-plan .esp-comparegrid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:0 15px;font-size:.8125rem}.event-staffing-plan .esp-comparegrid>*{padding:9px 0;border-bottom:1px solid var(--esp-rule)}
    .event-staffing-plan .esp-reviewrow{display:grid;grid-template-columns:1.4fr 1.4fr .8fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--esp-rule);font-size:.8125rem}
    .event-staffing-plan .esp-slot{padding:10px 0;border-bottom:1px solid var(--esp-rule);font-size:.75rem}.event-staffing-plan .esp-slot strong{display:block;margin-bottom:7px;font-size:.8125rem}
    .event-staffing-plan .esp-tables{display:flex;flex-wrap:wrap;gap:5px}.event-staffing-plan .esp-table{background:var(--esp-server);width:30px;height:30px;border-radius:50%;display:grid;place-items:center}
    .event-staffing-plan .esp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

    @media(max-width:900px){.event-staffing-plan .esp-inspector .esp-kicker,.event-staffing-plan .esp-inspector h3,.event-staffing-plan .esp-consequence,.event-staffing-plan .esp-error{grid-column:1/-1}.event-staffing-plan .esp-rowcost{grid-column:1/-1}.event-staffing-plan .esp-field{margin-top:14px}}
    @media(max-width:550px){.event-staffing-plan .esp-top{padding:12px 14px}.event-staffing-plan .esp-brand span{display:none}.event-staffing-plan .esp-event{padding:17px 14px 0}.event-staffing-plan .esp-event h1{font-size:1.2rem}.event-staffing-plan .esp-eventnav{gap:16px;font-size:.8125rem}.event-staffing-plan .esp-eventnav .esp-lastnav{display:none}.event-staffing-plan .esp-workspace{padding:18px 12px}.event-staffing-plan .esp-momentrow{display:none}.event-staffing-plan .esp-field input,.event-staffing-plan .esp-field select{font-size:1rem}.event-staffing-plan button{min-height:44px}.event-staffing-plan .esp-bottom button{width:100%}.event-staffing-plan .esp-reviewrow{grid-template-columns:1fr 1fr}.event-staffing-plan .esp-reviewrow>*:last-child{grid-column:1/-1}.event-staffing-plan .esp-comparegrid{gap:0 10px;font-size:.75rem}}
    @media(prefers-reduced-motion:reduce){.event-staffing-plan *{transition:none!important}}
/* The event shell supplies the identity and section navigation. */
.event-staffing-plan .esp-workspace{padding:var(--s-3) 0}.event-staffing-plan .esp-loading,.event-staffing-plan .esp-empty{padding:var(--s-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m)}
.event-staffing-plan .esp-notice{padding:var(--s-3) var(--s-4);margin-bottom:var(--s-3);border-left:3px solid var(--navy);background:var(--paper);color:var(--navy);font-size:var(--t-sub)}
.event-staffing-plan .esp-notice--warn{border-color:var(--warn-fg);background:var(--warn-bg);color:var(--warn-fg)}.event-staffing-plan .esp-notice--bad{border-color:var(--bad-fg);background:var(--bad-bg);color:var(--bad-fg)}
.event-staffing-plan .esp-notice p+p{margin-top:var(--s-2)}.event-staffing-plan .esp-actions{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.event-staffing-plan .esp-actions--spaced{margin-top:var(--s-3)}
.event-staffing-plan .esp-moments{grid-template-columns:repeat(var(--esp-columns,48),minmax(0,1fr))}.event-staffing-plan .esp-moments span{grid-column:var(--esp-moment)/span 3;overflow:hidden}.event-staffing-plan .esp-milestone-list{display:flex;gap:var(--s-2) var(--s-4);flex-wrap:wrap;font-size:var(--t-sub);color:var(--muted);margin-top:var(--s-3)}

.event-staffing-plan .esp-unplaced{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);background:var(--wash);border:1px dashed var(--rule);border-radius:var(--r-s);font-size:var(--t-sub)}.event-staffing-plan .esp-daysection+.esp-daysection{margin-top:var(--s-5)}.event-staffing-plan .esp-dayhead{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--s-1) var(--s-3);font-size:var(--t-body);font-weight:600;color:var(--navy-dark);padding:var(--s-3) 0 var(--s-2)}.event-staffing-plan .esp-dayhead strong{font-weight:600}.event-staffing-plan .esp-dayhead span{font-size:var(--t-sub);font-weight:400;color:var(--esp-muted)}.event-staffing-plan .esp-unpriced{color:var(--warn-fg)}
.event-staffing-plan progress{display:block;width:100%;height:6px;border:0;border-radius:var(--r-s);margin-top:var(--s-2);background:var(--hair)}.event-staffing-plan progress::-webkit-progress-bar{background:var(--hair)}.event-staffing-plan progress::-webkit-progress-value{background:var(--navy)}.event-staffing-plan progress::-moz-progress-bar{background:var(--navy)}
.event-staffing-plan .esp-review label{display:flex;align-items:flex-start;gap:var(--s-2);margin-top:var(--s-4)}.event-staffing-plan .esp-review input[type=checkbox],.event-staffing-plan .esp-ack input{width:22px;height:22px;flex:none;accent-color:var(--navy)}.event-staffing-plan .esp-ack{display:flex;align-items:flex-start;gap:var(--s-2);font-size:var(--t-sub);margin-top:var(--s-3)}.event-staffing-plan .esp-ack span{display:block}.event-staffing-plan .esp-field--full{grid-column:1/-1}.event-staffing-plan .esp-field input[type=number]{appearance:textfield}
.event-staffing-plan .esp-wage-list{max-height:18rem;overflow:auto;margin-top:var(--s-3)}.event-staffing-plan .esp-wage-row{display:flex;justify-content:space-between;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}.event-staffing-plan .esp-wage-list input{width:100%;padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-s);min-height:var(--control-height-touch)}.event-staffing-plan details summary{min-height:var(--control-height-touch);cursor:pointer}.event-staffing-plan .esp-danger{color:var(--bad-fg)}
.event-staffing-plan .esp-inspector input,.event-staffing-plan .esp-inspector select{min-height:var(--control-height-touch)}.event-staffing-plan button:focus-visible,.event-staffing-plan input:focus-visible,.event-staffing-plan select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.event-staffing-plan .esp-rowcost,.event-staffing-plan .esp-source-note{font-size:var(--t-sub)}.event-staffing-plan .esp-source-note{margin-top:var(--s-2);color:var(--muted)}.event-staffing-plan .esp-inspector-title{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2)}.event-staffing-plan .esp-grid-note{grid-column:1/-1}.event-staffing-plan .esp-count-input{width:4rem!important;text-align:center;border:0!important;margin:0!important}.event-staffing-plan .esp-edit-notes{width:100%;min-height:5rem;border:1px solid var(--line);padding:var(--s-2);border-radius:var(--r-s);font:inherit}.event-staffing-plan .esp-fieldset{border:0;padding:0;margin:0;min-width:0}.event-staffing-plan .esp-fieldset:disabled{opacity:.65}
.event-staffing-plan .esp-time-summary{margin-top:var(--s-2);padding:var(--s-2) var(--s-3);border-left:2px solid var(--esp-rule);background:var(--esp-paper);color:var(--esp-muted);font-size:var(--t-sub);line-height:1.5}
@container(max-width:270px){.event-staffing-plan .esp-fieldset .esp-pair{grid-template-columns:minmax(0,1fr)}}
@media(max-width:550px){.event-staffing-plan .esp-workspace{padding:var(--s-2) 0}.event-staffing-plan .esp-reviewrow{grid-template-columns:1fr}.event-staffing-plan .esp-comparegrid{grid-template-columns:1.2fr 1fr 1fr;gap:var(--s-2)}.event-staffing-plan .esp-count-input{width:3rem!important}.event-staffing-plan .esp-milestone-list{display:none}.event-staffing-plan .esp-bottom .esp-actions{width:100%}.event-staffing-plan .esp-bottom .esp-primary{flex:1}}

/* fetch-1233: one typed range and native searchable role choices. */
.event-staffing-plan .esp-add-role{flex:1 1 16rem;min-width:0;max-width:28rem}
.event-staffing-plan .esp-field input[list]{min-height:var(--control-height-touch);width:100%;box-sizing:border-box}
.event-staffing-plan #esp-times{font-variant-numeric:tabular-nums}
/* fetch-1238: named buckets and explicit estimate diagnostics. */
.event-staffing-plan .esp-bucket{border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-bucket-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--esp-rule);background:var(--esp-wash);font-size:var(--t-body)}
.event-staffing-plan .esp-bucket+.esp-bucket{margin-top:var(--s-5)}
.event-staffing-plan .esp-bucket-head strong{font-weight:650}
.event-staffing-plan .esp-optional{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-2) 0;font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-cost-split{display:flex;justify-content:space-between;gap:var(--s-2);font-size:var(--t-sub);margin-top:var(--s-2)}
.event-staffing-plan .esp-cost-split strong{font-weight:600}
.event-staffing-plan .esp-cost-issues{margin-bottom:var(--s-3);padding:0 var(--s-3);border-left:2px solid var(--esp-warn);font-size:var(--t-sub)}
.event-staffing-plan .esp-cost-issues ul{margin:0 0 var(--s-2);padding-left:var(--s-4)}
.event-staffing-plan .esp-cost-issues button{text-align:left;white-space:normal;overflow-wrap:anywhere;color:var(--esp-ink)}
.event-staffing-plan .esp-add-bucket{flex:1 1 12rem;min-width:0;max-width:20rem}

.event-staffing-plan .esp-inspector>.esp-source-note{grid-column:1/-1}
@media(max-width:550px){.event-staffing-plan .esp-add-bucket{flex-basis:100%;max-width:none}.event-staffing-plan .esp-bucket-head{gap:var(--s-2)}.event-staffing-plan .esp-optional{flex-wrap:wrap}.event-staffing-plan .esp-cost-split{justify-content:flex-start;gap:var(--s-3)}}
.event-staffing-plan .esp-review .esp-actions{justify-content:flex-end}
@media(max-width:550px){.event-staffing-plan .esp-add-role{flex-basis:100%;max-width:none}.event-staffing-plan .esp-review .esp-actions{width:100%}.event-staffing-plan .esp-review .esp-actions button{width:100%}}
/* fetch-1243: editable names and an event-owned staffing rule review. */
.event-staffing-plan .esp-bucket-name{display:flex;align-items:baseline;gap:var(--s-2);min-width:0;max-width:100%;padding:var(--s-1) 0;border-color:transparent;background:transparent;text-align:left;font-size:var(--t-body);font-weight:650;white-space:normal;overflow-wrap:anywhere}
.event-staffing-plan .esp-bucket-name:hover{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.event-staffing-plan .esp-bucket-name small,.event-staffing-plan .esp-row-name small{font-size:var(--t-sub);font-weight:400;color:var(--esp-muted)}
.event-staffing-plan .esp-bucket-head>div{min-width:0;flex:1}
.event-staffing-plan .esp-name-hint{font-size:var(--t-sub);font-weight:400;color:var(--esp-muted)}
.event-staffing-plan .esp-bucket-meta{display:block;font-size:var(--t-sub);font-weight:400;color:var(--esp-muted)}
.event-staffing-plan .esp-bucket-head>.esp-linkbutton{flex:none;font-size:var(--t-sub)}
.event-staffing-plan .esp-row-name{display:block;max-width:100%;width:100%;min-width:0;padding:var(--s-1) 0;border-color:transparent;background:transparent;text-align:left;font-size:var(--t-sub);font-weight:600;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.event-staffing-plan .esp-row-name:hover{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.event-staffing-plan .esp-name-editor{display:flex;align-items:end;gap:var(--s-2);flex-wrap:wrap;padding:var(--s-3);margin-bottom:var(--s-4);border:1px solid var(--esp-blue);border-radius:var(--r-m);background:var(--esp-paper)}
.event-staffing-plan .esp-name-editor label{flex:1 1 14rem;min-width:0;font-size:var(--t-sub)}
.event-staffing-plan .esp-name-editor input{display:block;min-height:var(--control-height-touch);width:100%;padding:var(--s-2);margin-top:var(--s-1);border:1px solid var(--esp-rule);border-radius:var(--r-s);background:var(--esp-paper)}
.event-staffing-plan .esp-name-editor .esp-error{flex-basis:100%;margin:0}
.event-staffing-plan .esp-template-panel{margin:var(--s-4) 0;padding:var(--s-4);border:1px solid var(--esp-rule);border-top:2px solid var(--esp-blue);border-radius:var(--r-m);background:var(--esp-paper)}
.event-staffing-plan .esp-template-panel>p{max-width:76ch;margin-top:var(--s-2);font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-template-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-4)}
.event-staffing-plan .esp-template-rule{min-width:0;margin-top:var(--s-4)}
.event-staffing-plan .esp-template-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-4)}
.event-staffing-plan .esp-template-fields .esp-field{min-width:0;margin-top:var(--s-3)}
.event-staffing-plan .esp-template-fields input,.event-staffing-plan .esp-template-fields select{min-width:0;max-width:100%;font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-template-preview{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-template-preview>p{font-size:var(--t-sub);color:var(--esp-muted);margin-top:var(--s-2)}
.event-staffing-plan .esp-template-change{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,2fr);gap:var(--s-2) var(--s-4);padding:var(--s-3) 0;border-bottom:1px solid var(--esp-rule);font-size:var(--t-sub);overflow-wrap:anywhere}
.event-staffing-plan .esp-template-change p,.event-staffing-plan .esp-template-change small{grid-column:1/-1;font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-template-actions{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-4)}
.event-staffing-plan .esp-template-panel>.esp-actions{margin-top:var(--s-4)}
@media(max-width:550px){.event-staffing-plan .esp-bucket-head{padding:var(--s-2);align-items:flex-start;flex-wrap:wrap}.event-staffing-plan .esp-bucket-name{flex:1 1 8rem;flex-wrap:wrap}.event-staffing-plan .esp-role .esp-row-name{width:auto;flex:1 1 8rem}.event-staffing-plan .esp-template-panel{padding:var(--s-3)}.event-staffing-plan .esp-template-grid{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-template-fields{gap:0 var(--s-2)}.event-staffing-plan .esp-template-change{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-name-editor{padding:var(--s-3)}.event-staffing-plan .esp-template-actions>button{flex:1 1 10rem}}
@media(max-width:360px){.event-staffing-plan .esp-template-fields{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-name-editor>button{flex:1 1 6rem}}
/* fetch-1244: compact facts inside the two optional planning references. */
.event-staffing-plan .esp-reference-facts,.event-staffing-plan .esp-reference-averages{margin:var(--s-2) 0 var(--s-3);font-size:var(--t-sub)}
.event-staffing-plan .esp-reference-facts>div{display:grid;grid-template-columns:minmax(7rem,10rem) minmax(0,1fr);gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--esp-rule)}
.event-staffing-plan .esp-reference dt{font-weight:600;color:var(--esp-ink)}
.event-staffing-plan .esp-reference dd{margin:0;min-width:0;overflow-wrap:anywhere}
.event-staffing-plan .esp-reference-heading{margin:var(--s-3) 0 var(--s-1);font-size:var(--t-sub);font-weight:600;color:var(--esp-ink)}
.event-staffing-plan .esp-reference-averages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-5)}
.event-staffing-plan .esp-reference-averages>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--esp-rule)}
.event-staffing-plan .esp-reference-averages dt{text-transform:capitalize}
.event-staffing-plan .esp-reference-averages dd{text-align:right;font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-reference-averages dd span{display:block;color:var(--esp-muted)}
.event-staffing-plan .esp-reference .esp-reference-note{padding:var(--s-2) 0;font-size:var(--t-sub);max-width:76ch}
.event-staffing-plan .esp-reference-alert{margin:var(--s-3) 0;color:var(--esp-warn)}
.event-staffing-plan .esp-reference-alert ul{margin:var(--s-1) 0 0;padding-left:var(--s-4)}
@media(max-width:550px){.event-staffing-plan .esp-reference-facts>div{grid-template-columns:minmax(0,6.5rem) minmax(0,1fr);gap:var(--s-2)}.event-staffing-plan .esp-reference-averages{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-reference [data-esp-apply-averages]{width:100%}}
/* fetch-1244: compact estimate fixes and an explicitly temporary budget sandbox. */
.event-staffing-plan .esp-cost-issues summary{color:var(--esp-warn);font-weight:600;align-content:center}
.event-staffing-plan .esp-remove-icon{width:var(--control-height-touch);min-width:var(--control-height-touch);height:var(--control-height-touch);padding:0;display:inline-grid;place-items:center;flex:none}
.event-staffing-plan .esp-budget-editor{padding-top:var(--s-2);border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-budget-editor .esp-field{margin:0}
.event-staffing-plan .esp-budget-actions{display:flex;gap:var(--s-1);flex-wrap:wrap;margin-top:var(--s-2)}
.event-staffing-plan .esp-budget-actions button{min-height:var(--control-height-touch);padding:var(--s-1) var(--s-2)}
.event-staffing-plan [data-esp-budget-result]>.esp-small{display:block}
.event-staffing-plan [data-esp-budget-input]{font-variant-numeric:tabular-nums;font-size:var(--t-body)}
/* Group controls preserve their existing field layout and touch targets. */

.event-staffing-plan .esp-bucket-head>div{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}
.event-staffing-plan .esp-bucket-meta{display:inline-flex;align-items:center;gap:var(--s-1);white-space:nowrap;font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-bucket-meta svg{flex:none}

.event-staffing-plan .esp-inline-fields .esp-field{min-width:0;margin:0;font-size:var(--t-sub)}
.event-staffing-plan .esp-inline-fields input,.event-staffing-plan .esp-inline-fields select{min-width:0;max-width:100%;font-size:var(--t-body)}
.event-staffing-plan .esp-inline-fields .esp-counter{margin-top:6px;min-height:var(--control-height-touch)}
.event-staffing-plan .esp-inline-fields .esp-counter button{padding:var(--s-1);min-width:var(--control-height-touch);border:0;background:transparent}
.event-staffing-plan .esp-inline-fields .esp-count-input{flex:1;min-width:0}
.event-staffing-plan .esp-inline-fields [id="esp-position-help"]{display:none}

.event-staffing-plan [data-esp-row] .esp-name-editor,.event-staffing-plan .esp-bucket>.esp-name-editor{margin:var(--s-2) 0}
@media(max-width:550px){.event-staffing-plan .esp-inline-fields input,.event-staffing-plan .esp-inline-fields select{font-size:1rem}.event-staffing-plan .esp-bucket-head>div{gap:var(--s-2)}.event-staffing-plan .esp-bucket-name{flex:none}}
/* fetch-1246.1: useful inputs first, dormant groups stay in their heading. */
.event-staffing-plan .esp-bucket+.esp-bucket{margin-top:var(--s-2)}
.event-staffing-plan .esp-bucket-head{padding:0 var(--s-2);gap:var(--s-2)}
.event-staffing-plan .esp-bucket-head>.esp-bucket-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-1);flex:0 1 auto;flex-wrap:wrap}
.event-staffing-plan .esp-add-inline{padding:var(--s-1) var(--s-2);font-size:var(--t-sub);white-space:nowrap}
.event-staffing-plan .esp-optional{padding:0 var(--s-2)}

.event-staffing-plan .esp-inline-fields input,.event-staffing-plan .esp-inline-fields select{padding:var(--s-1) var(--s-2);margin-top:var(--s-1)}
.event-staffing-plan .esp-inline-fields .esp-counter{margin-top:var(--s-1)}

.event-staffing-plan .esp-secondary-fields .esp-field{margin:0;min-width:0}
.event-staffing-plan .esp-secondary-fields input{min-width:0}

.event-staffing-plan .esp-ticks>.esp-tick{width:max-content;left:var(--esp-tick-offset);right:auto;display:flex;transform:translateX(-50%)}
.event-staffing-plan .esp-ticks>.esp-tick:first-child{transform:none}
.event-staffing-plan .esp-ticks>.esp-tick:last-child{transform:translateX(-100%)}
.event-staffing-plan .esp-tick-day{margin:0}

.event-staffing-plan .esp-dayhead{padding:var(--s-2) 0 var(--s-1)}
@media(max-width:550px){.event-staffing-plan .esp-bucket-head{flex-wrap:nowrap;align-items:center}.event-staffing-plan .esp-bucket-head>div:first-child{gap:var(--s-1)}.event-staffing-plan .esp-bucket-name{font-size:var(--t-sub)}.event-staffing-plan .esp-bucket-name .esp-name-hint{display:none}.event-staffing-plan .esp-inline-fields input,.event-staffing-plan .esp-inline-fields select{font-size:1rem}}

/* fetch-1248: the plan stays visible; editors and rules open only on intent. */

.event-staffing-plan .esp-rules-gear{display:grid;place-items:center;width:var(--control-height-touch);height:var(--control-height-touch);padding:0;border-color:transparent;background:transparent;cursor:pointer}
.event-staffing-plan .esp-rules-gear:hover,.event-staffing-plan .esp-rules-gear:focus-visible,.event-staffing-plan .esp-rules-gear[aria-expanded=true]{background:var(--esp-wash);border-color:var(--esp-rule)}

.event-staffing-plan .esp-cost-split{display:inline-block;margin-right:var(--s-2)}

.event-staffing-plan .esp-bucket-head{border-top:0;border-bottom:1px solid var(--esp-rule);background:transparent}
.event-staffing-plan .esp-bucket-meta .ci{color:var(--gold)}
.event-staffing-plan .esp-bucket-name{font-weight:600}
.event-staffing-plan .esp-remove-icon{color:var(--esp-muted);opacity:.7}
.event-staffing-plan .esp-remove-icon:hover,.event-staffing-plan .esp-remove-icon:focus-visible{color:var(--bad-fg);opacity:1}

.event-staffing-plan .esp-editor-close{font-size:var(--t-sub);border-color:transparent;background:transparent}

.event-staffing-plan .esp-template-panel{margin:var(--s-2) 0;padding:var(--s-3);border:1px solid var(--esp-rule);border-radius:var(--r-s)}
.event-staffing-plan .esp-template-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--s-3)}
.event-staffing-plan .esp-flip-context{grid-column:1/-1}
.event-staffing-plan .esp-view-date{white-space:nowrap}
.event-staffing-plan .esp-help{position:relative;font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-help summary{display:grid;place-items:center;width:var(--control-height-touch);height:var(--control-height-touch);padding:0;cursor:pointer;list-style:none}
.event-staffing-plan .esp-help summary::-webkit-details-marker{display:none}
.event-staffing-plan .esp-help summary span{display:grid;place-items:center;width:1rem;height:1rem;border:1px solid currentColor;border-radius:50%;line-height:1}
.event-staffing-plan .esp-help p{position:absolute;right:0;top:100%;z-index:5;width:min(22rem,calc(100vw - var(--s-6)));margin:0;padding:var(--s-3);border:1px solid var(--esp-rule);border-radius:var(--r-s);background:var(--esp-paper);box-shadow:0 var(--s-1) var(--s-3) color-mix(in srgb,var(--esp-ink) 10%,transparent)}
.event-staffing-plan .esp-note:empty{display:none}
@media(max-width:900px){.event-staffing-plan .esp-template-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.event-staffing-plan .esp-template-fields{grid-template-columns:minmax(0,1fr)}}

.event-staffing-plan .esp-paid-hours,.event-staffing-plan .esp-cost-breakdown>.esp-small{display:block}



/* fetch-1249: one budget equation, one name per bucket, feedback at the active shift. */

.event-staffing-plan .esp-row-impact{display:block;padding:var(--s-1) var(--s-2);margin:0 0 var(--s-1);border-left:2px solid var(--gold);background:var(--esp-wash);font-size:var(--t-sub);line-height:1.5;color:var(--esp-ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-bucket{border:0}
.event-staffing-plan .esp-bucket-head{border:0;padding-inline:0}
.event-staffing-plan .esp-bucket+.esp-bucket{margin-top:0}

/* Staff Plan workspace: boxed budget rail, a compact plan, and a temporary editor. */
.event-staffing-plan .esp-workspace-grid{--esp-label-width:8.5rem;--esp-estimate-width:5rem;display:grid;grid-template-columns:11.5rem minmax(0,1fr);gap:var(--s-4);align-items:start}
.event-staffing-plan .esp-workspace-main{min-width:0;border:1px solid var(--esp-rule);border-radius:var(--r-m);background:var(--esp-paper);box-shadow:0 2px 5px color-mix(in srgb,var(--esp-ink) 3%,transparent)}
.event-staffing-plan .esp-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3);flex-wrap:wrap;padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--esp-gold-mid);border-radius:var(--r-m) var(--r-m) 0 0;background:var(--esp-ink);color:var(--esp-paper)}
.event-staffing-plan .esp-heading h2{color:var(--esp-paper);font-size:var(--t-section);font-weight:600;letter-spacing:normal}
.event-staffing-plan .esp-heading-actions,.event-staffing-plan .esp-editor-actions{display:flex;align-items:center;gap:var(--s-1);flex-wrap:wrap}
.event-staffing-plan .esp-heading-actions{margin-left:auto}
.event-staffing-plan .esp-heading-actions button{font-size:var(--t-sub)}
.event-staffing-plan .esp-editor-close{display:grid;place-items:center;width:var(--control-height-touch);height:var(--control-height-touch);padding:0;border-color:transparent;background:transparent}
.event-staffing-plan .esp-heading-actions #esp-undo{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--control-height-touch);padding:var(--s-2) var(--s-3);border-color:color-mix(in srgb,var(--esp-paper) 45%,transparent);background:var(--esp-blue);color:var(--esp-paper);font-weight:600}
.event-staffing-plan .esp-heading-actions #esp-undo svg{flex:none}
.event-staffing-plan .esp-heading-actions #esp-save{background:var(--esp-paper);border-color:var(--esp-paper);color:var(--esp-ink);font-weight:600}
.event-staffing-plan .esp-heading-actions>.esp-rules-gear,.event-staffing-plan .esp-heading-actions>.esp-tools-menu>summary{color:var(--esp-paper)}
.event-staffing-plan .esp-heading-actions>.esp-rules-gear:hover,.event-staffing-plan .esp-heading-actions>.esp-tools-menu>summary:hover,.event-staffing-plan .esp-heading-actions>.esp-tools-menu[open]>summary{background:var(--esp-blue);border-color:var(--esp-blue)}
.event-staffing-plan .esp-heading .esp-tools-menu>button{color:var(--esp-ink)}
.event-staffing-plan .esp-heading-actions>.esp-rules-gear:focus-visible,.event-staffing-plan .esp-heading-actions>.esp-rules-gear[aria-expanded=true]{background:var(--esp-blue);color:var(--esp-paper);border-color:var(--esp-blue)}
.event-staffing-plan .esp-heading-actions>#esp-view-diagram{color:var(--esp-paper)}
.event-staffing-plan .esp-heading-actions>#esp-view-diagram:hover,.event-staffing-plan .esp-heading-actions>#esp-view-diagram:focus-visible{background:var(--esp-blue);border-color:var(--esp-blue)}
.event-staffing-plan .esp-tools-menu{position:relative}
.event-staffing-plan .esp-tools-menu>summary{display:grid;place-items:center;width:var(--control-height-touch);height:var(--control-height-touch);padding:0;list-style:none;border:1px solid transparent;border-radius:var(--r-s);cursor:pointer}
.event-staffing-plan .esp-tools-menu>summary::-webkit-details-marker{display:none}
.event-staffing-plan .esp-tools-menu[open]>summary,.event-staffing-plan .esp-tools-menu>summary:hover{background:var(--esp-wash);border-color:var(--esp-rule)}
.event-staffing-plan .esp-tools-menu>button{position:absolute;right:0;top:calc(100% + var(--s-1));z-index:5;width:12rem;padding:var(--s-2) var(--s-3);border:1px solid var(--esp-rule);background:var(--esp-paper);box-shadow:0 var(--s-2) var(--s-4) color-mix(in srgb,var(--esp-ink) 14%,transparent);text-align:left;text-decoration:none}
/* fetch-1500: ONE Rules & tools menu (this plan's rules, company rules, compare). The list is a stacked panel under the gear; an
   unapplied rule edit is a gold dot on the gear and words on its item. */
.event-staffing-plan .esp-tools-menu>.esp-tools-list{position:absolute;right:0;top:calc(100% + var(--s-1));z-index:5;display:grid;min-width:15rem;padding:var(--s-1);border:1px solid var(--esp-rule);border-radius:var(--r-s);background:var(--esp-paper);box-shadow:0 var(--s-2) var(--s-4) color-mix(in srgb,var(--esp-ink) 14%,transparent)}
.event-staffing-plan .esp-tools-list>button{display:flex;flex-direction:column;align-items:flex-start;gap:0;min-height:var(--control-height-touch);padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-s);background:transparent;color:var(--esp-ink);font-size:var(--t-sub);text-align:left;text-decoration:none;white-space:nowrap}
.event-staffing-plan .esp-tools-list>button:hover,.event-staffing-plan .esp-tools-list>button:focus-visible{background:var(--esp-wash)}
.event-staffing-plan .esp-tools-list>button>small{color:var(--esp-gold-dark,var(--esp-gold-mid));font-size:var(--t-subx,var(--t-sub));font-weight:600}
.event-staffing-plan .esp-tools-menu[data-esp-pending]>summary::after{content:"";position:absolute;top:var(--s-1);right:var(--s-1);width:8px;height:8px;border-radius:50%;background:var(--esp-gold-mid)}
.event-staffing-plan .esp-tools-menu>summary{position:relative}
/* fetch-1500: the event crew and Company staffing rules over the plan; both wide, both scroll inside, the heading stays. */
.event-staffing-plan .esp-inspector.esp-floating-editor.esp-crew-dialog,.event-staffing-plan .esp-inspector.esp-floating-editor.esp-csp-dialog{width:min(72rem,100%);padding-top:0}
.event-staffing-plan .esp-crew-dialog>.esp-inline-heading,.event-staffing-plan .esp-csp-dialog>.esp-inline-heading{position:sticky;top:0;z-index:1;padding-top:var(--s-5);padding-bottom:var(--s-3);background:var(--esp-paper)}
.event-staffing-plan .esp-crew-dialog .esp-editor-actions{gap:var(--s-2)}
.event-staffing-plan .esp-crew-views button{display:inline-flex;align-items:center;gap:var(--s-1);min-height:var(--control-height-sm)}
.event-staffing-plan .esp-crew-dialog .event-readiness-crew.erc-embedded{padding:0;border:0;background:transparent}
.event-staffing-plan .esp-crew-dialog .erc-heading h2{font-size:var(--t-body)}
.event-staffing-plan .esp-crew-list{width:100%;border-collapse:collapse;font-size:var(--t-sub);font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-crew-list th,.event-staffing-plan .esp-crew-list td{padding:var(--s-2) var(--s-2);border-bottom:1px solid var(--esp-rule);text-align:left;vertical-align:top}
.event-staffing-plan .esp-crew-list thead th{color:var(--esp-muted);font-weight:600}
.event-staffing-plan .esp-crew-list tbody th{font-weight:600;white-space:nowrap}
.event-staffing-plan .esp-crew-list-status{display:inline-block;padding:0 var(--s-2);border-radius:var(--r-s);background:var(--ok-bg,var(--esp-wash));color:var(--ok-fg,inherit);white-space:nowrap}
.event-staffing-plan .esp-crew-list-status--warn{background:var(--warn-bg,var(--esp-wash));color:var(--warn-fg,inherit)}
.event-staffing-plan .esp-csp-dialog .csp-body{padding:0}
@media(max-width:640px){.event-staffing-plan .esp-crew-dialog>.esp-inline-heading{flex-wrap:wrap}.event-staffing-plan .esp-crew-dialog>.esp-inline-heading>.esp-editor-actions{width:100%;justify-content:space-between}.event-staffing-plan .esp-crew-views{flex-wrap:nowrap}.event-staffing-plan .esp-crew-list thead{display:none}.event-staffing-plan .esp-crew-list tr{display:grid;gap:var(--s-1);padding:var(--s-2) 0}.event-staffing-plan .esp-crew-list th,.event-staffing-plan .esp-crew-list td{padding:0;border:0}.event-staffing-plan .esp-crew-list tbody tr{border-bottom:1px solid var(--esp-rule)}}
.event-staffing-plan .esp-icon-button{display:inline-grid;place-items:center;width:var(--control-height-touch);height:var(--control-height-touch);padding:0;background:transparent;border-color:transparent;flex:none}
.event-staffing-plan .esp-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3);padding:0;min-width:0;align-content:start;background:transparent}
.event-staffing-plan [data-esp-summary]>.esp-metric{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:6.75rem;padding:var(--s-4);border:1px solid var(--esp-rule);border-radius:var(--r-m);background:var(--esp-paper);box-shadow:0 2px 5px color-mix(in srgb,var(--esp-ink) 3%,transparent)}
.event-staffing-plan [data-esp-summary]>.esp-metric:nth-of-type(3){border-top:2px solid var(--esp-gold-mid);background:var(--esp-wash)}
.event-staffing-plan .esp-value{display:block;overflow-wrap:anywhere;margin:var(--s-2) 0 0;font-size:1.75rem;font-weight:500;line-height:1.25;letter-spacing:-.035em;color:var(--esp-ink);font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-value.esp-gap{color:var(--esp-warn)}
.event-staffing-plan [data-esp-summary]>.esp-metric .esp-small:empty{display:none}
.event-staffing-plan .esp-summary-footer{display:flex;flex-direction:column;align-items:stretch;gap:var(--s-2);min-width:0;font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-summary-footer>span{min-width:0;padding-inline:var(--s-1);overflow-wrap:anywhere}
.event-staffing-plan .esp-summary-footer button{order:-1;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--s-1);text-align:left;text-decoration:none}
.event-staffing-plan .esp-summary-details{min-width:0;padding:var(--s-3);border:1px solid var(--esp-rule);border-radius:var(--r-s);background:var(--esp-paper);font-size:var(--t-sub)}
.event-staffing-plan .esp-summary-hours{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);margin-bottom:var(--s-3);color:var(--esp-muted)}
.event-staffing-plan .esp-summary-details .esp-field{min-width:0;margin-top:var(--s-2)}
.event-staffing-plan .esp-statusline{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s-1) var(--s-3);padding:var(--s-2) var(--s-4);background:var(--esp-wash);border-bottom:1px solid var(--esp-rule);font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-statusline>span{min-width:0;overflow-wrap:anywhere}
.event-staffing-plan .esp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;margin:0;padding:var(--s-2) var(--s-4)}
.event-staffing-plan .esp-toolbar-actions{display:flex;align-items:center;gap:var(--s-2)}
.event-staffing-plan .esp-scenarios{display:flex;gap:var(--s-1);flex-wrap:wrap;padding:var(--s-1);border:1px solid var(--esp-rule);border-radius:var(--r-s);background:var(--esp-wash)}
.event-staffing-plan .esp-scenarios button{font-size:var(--t-sub);padding:var(--s-1) var(--s-2);background:transparent;border-color:transparent}
.event-staffing-plan .esp-scenarios button[aria-pressed=true]{background:var(--esp-paper);border-color:var(--esp-rule);box-shadow:0 1px 3px color-mix(in srgb,var(--esp-ink) 6%,transparent);font-weight:600}
.event-staffing-plan .esp-heading>.esp-scenarios{background:var(--esp-blue);border-color:var(--esp-blue)}
.event-staffing-plan .esp-heading>.esp-scenarios button:not([aria-pressed=true]){color:var(--esp-paper)}
.event-staffing-plan .esp-heading>.esp-scenarios button[aria-pressed=true]{color:var(--esp-ink)}
.event-staffing-plan .esp-body{display:block;min-width:0;background:var(--esp-paper);border-radius:var(--r-m)}
.event-staffing-plan .esp-plan{min-width:0;padding:var(--s-2) var(--s-4) 0}
.event-staffing-plan .esp-axis{display:grid;grid-template-columns:var(--esp-label-width) minmax(0,1fr) var(--esp-estimate-width);gap:var(--s-3);align-items:start;padding:var(--s-2) 0;font-size:var(--t-sub);color:var(--esp-muted);border-bottom:1px solid var(--esp-rule)}
.event-staffing-plan .esp-estimate-heading{text-align:right}
.event-staffing-plan .esp-lane{display:grid;grid-template-columns:var(--esp-label-width) minmax(0,1fr) var(--esp-estimate-width);gap:0 var(--s-3);align-items:center;min-height:4.5rem;padding-block:var(--s-2);border-bottom:1px solid var(--esp-rule)}
.event-staffing-plan .esp-role{min-width:0;padding:var(--s-1) 0;font-weight:600;line-height:1.4;color:var(--esp-ink);overflow-wrap:anywhere}
.event-staffing-plan .esp-role small{display:block;margin-top:var(--s-1);font-size:var(--t-sub);font-weight:400;color:var(--esp-muted)}
.event-staffing-plan .esp-lane[data-name-in-heading=true] .esp-role small{margin:0}
.event-staffing-plan .esp-row-estimate{min-width:0;text-align:right;font-size:var(--t-sub);color:var(--esp-muted);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.event-staffing-plan .esp-row-estimate strong{display:block;color:var(--esp-gold-dark);font-size:var(--t-body);font-weight:600}
.event-staffing-plan .esp-row-estimate small{display:block;margin-top:var(--s-1);font-size:var(--t-sub)}
.event-staffing-plan .esp-track{position:relative;display:grid;grid-template-columns:repeat(var(--esp-columns,48),minmax(0,1fr));align-items:center;min-width:0;min-height:var(--control-height-touch);background:repeating-linear-gradient(to right,color-mix(in srgb,var(--esp-rule) 55%,transparent),color-mix(in srgb,var(--esp-rule) 55%,transparent) 1px,transparent 1px,transparent var(--esp-hour-width,5%))}
.event-staffing-plan .esp-shift{--lane-color:var(--esp-server);color:var(--esp-paper);position:relative;grid-column:1/-1;display:flex;align-items:stretch;align-self:center;margin-left:var(--esp-offset,0%);width:var(--esp-width,100%);min-width:0;height:var(--control-height-touch);min-height:var(--control-height-touch);border:0;background:transparent;container-type:inline-size}
.event-staffing-plan .esp-shift::before{content:'';position:absolute;inset-inline:0;top:50%;height:24px;transform:translateY(-50%);border:1px solid color-mix(in srgb,var(--esp-blue) 16%,transparent);border-radius:var(--r-s);background:var(--lane-color);pointer-events:none}
.event-staffing-plan .esp-shift--bartender,.event-staffing-plan .esp-shift--barback{--lane-color:var(--esp-bar)}
.event-staffing-plan .esp-shift--setup,.event-staffing-plan .esp-shift--dish,.event-staffing-plan .esp-shift--other,.event-staffing-plan .esp-shift--salary{--lane-color:var(--esp-setup)}
/* Movable plan bars carry the gold cue; the read-only suggestion keeps its blue role colors. */
.event-staffing-plan .esp-shift[data-readonly=false]{--lane-color:var(--esp-gold-mid);color:var(--esp-ink)}
.event-staffing-plan .esp-shift[data-selected=true]{color:var(--esp-paper)}
.event-staffing-plan .esp-shift[data-selected=true]::before{background:var(--esp-ink);border-color:var(--esp-ink);box-shadow:0 0 0 2px var(--esp-paper),0 0 0 3px color-mix(in srgb,var(--esp-blue) 30%,transparent)}
.event-staffing-plan[data-dragging] .esp-shift[data-selected=true]::before{box-shadow:0 0 0 2px var(--esp-paper),0 0 0 3px var(--esp-gold)}
.event-staffing-plan .esp-shift[data-readonly=false][data-selected=true]{color:var(--esp-ink)}
.event-staffing-plan .esp-shift[data-readonly=false][data-selected=true]::before{background:var(--esp-gold-light);border-color:var(--esp-gold-dark)}
.event-staffing-plan[data-dragging] .esp-shift[data-readonly=false][data-selected=true]::before{box-shadow:0 0 0 2px var(--esp-paper),0 0 0 3px var(--esp-ink)}
.event-staffing-plan .esp-block{position:relative;z-index:1;flex:1;min-width:0;padding:0 var(--s-1);text-align:center;font-size:var(--t-sub);white-space:nowrap;overflow:hidden;cursor:grab}
.event-staffing-plan .esp-shift button:hover{background:transparent}
.event-staffing-plan .esp-resize::before{content:'';position:absolute;top:50%;left:calc(50% + var(--s-2));width:4px;height:9px;transform:translateY(-50%);border-left:1px solid currentColor;border-right:1px solid currentColor;opacity:.55;pointer-events:none}
.event-staffing-plan .esp-resize:last-child::before{left:auto;right:calc(50% + var(--s-2))}
.event-staffing-plan .esp-shift[data-edge-start=true] .esp-resize:first-child::before{left:var(--s-2)}
.event-staffing-plan .esp-shift[data-edge-end=true] .esp-resize:last-child::before{right:var(--s-2)}
.event-staffing-plan .esp-editor-backdrop{position:fixed;inset:0;z-index:620;display:flex;align-items:center;justify-content:center;padding:var(--s-4);background:color-mix(in srgb,var(--esp-ink) 22%,transparent);backdrop-filter:blur(1px);overscroll-behavior:contain}
.event-staffing-plan .esp-inspector.esp-floating-editor{display:block;position:relative;min-width:0;width:min(34rem,100%);max-height:calc(100dvh - var(--s-6));overflow:auto;overscroll-behavior:contain;padding:var(--s-5);background:var(--esp-paper);border:1px solid var(--esp-rule);border-radius:var(--r-l);box-shadow:0 var(--s-5) 4rem color-mix(in srgb,var(--esp-ink) 23%,transparent);container-type:normal}
.event-staffing-plan .esp-inline-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding-bottom:var(--s-3);margin-bottom:var(--s-4);border-bottom:1px solid var(--esp-rule);font-size:var(--t-sub)}
.event-staffing-plan .esp-inline-heading strong,.event-staffing-plan .esp-editor-title{min-width:0;overflow-wrap:anywhere;font-size:var(--t-section);font-weight:600;color:var(--esp-ink)}
.event-staffing-plan .esp-inline-heading>.esp-small{font-weight:500}
.event-staffing-plan .esp-inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}
.event-staffing-plan .esp-inline-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--s-1) var(--s-3);margin-top:var(--s-4);padding:var(--s-3);border-radius:var(--r-s);background:var(--esp-wash);font-size:var(--t-sub)}
.event-staffing-plan .esp-inline-summary .esp-time-summary{padding:0;border:0;background:transparent;margin:0}
.event-staffing-plan .esp-inline-summary>strong{white-space:nowrap;color:var(--esp-gold-dark)}
.event-staffing-plan .esp-inline-summary>.esp-source-note{grid-column:1/-1;margin:0}
.event-staffing-plan .esp-group-details{margin-top:var(--s-3);font-size:var(--t-sub)}
.event-staffing-plan .esp-group-details summary{display:list-item;align-content:center;padding:0;color:var(--esp-muted)}
.event-staffing-plan .esp-secondary-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(5rem,1fr);gap:var(--s-3);margin-top:var(--s-2)}
.event-staffing-plan .esp-floating-editor .esp-error{margin-top:var(--s-2);color:var(--bad-fg);font-size:var(--t-sub)}
.event-staffing-plan .esp-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-editor-footer p{max-width:19rem;font-size:var(--t-sub);color:var(--esp-muted)}
.event-staffing-plan .esp-editor-footer button{min-width:5.5rem;flex:none}
.event-staffing-plan .esp-workspace-main>.esp-bottom{margin:0;padding:var(--s-3) var(--s-4);border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-plan-footer{gap:var(--s-2)}
.event-staffing-plan .esp-plan-footer>.esp-add-group{margin-right:auto;padding-inline:var(--s-2);border-color:transparent;background:transparent;font-size:var(--t-sub)}
.event-staffing-plan .esp-plan-footer>p{margin-left:auto}
.event-staffing-plan .esp-plan-footer [data-esp-review]{font-size:var(--t-sub);background:var(--esp-wash)}
.event-staffing-plan .esp-summary-details .esp-reference-facts>div{grid-template-columns:minmax(0,1fr);gap:var(--s-1)}
.event-staffing-plan .esp-summary-details .esp-reference-averages{grid-template-columns:minmax(0,1fr)}
.event-staffing-plan .esp-summary-details button{max-width:100%;white-space:normal}
.event-staffing-plan .esp-empty-planning,.event-staffing-plan .esp-empty-prompt{font-size:var(--t-sub);font-weight:400;color:var(--esp-muted)}
.event-staffing-plan .esp-empty-planning{display:block;white-space:normal}
.event-staffing-plan .esp-empty-prompt{min-width:0}
.event-staffing-plan .esp-add-inline{border-color:transparent;background:transparent}
.event-staffing-plan .esp-add-icon{width:var(--control-height-touch);min-width:var(--control-height-touch);height:var(--control-height-touch);padding:0;display:inline-grid;place-items:center;color:var(--esp-muted)}
@media(hover:hover) and (pointer:fine){.event-staffing-plan .esp-bucket:not(:hover):not(:focus-within) .esp-remove-icon{opacity:.25}}

.event-staffing-plan .esp-workspace-main>.esp-template-panel{margin:var(--s-3) var(--s-4)}
@media(min-width:641px){
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]{display:grid;grid-template-columns:var(--esp-label-width) minmax(0,1fr) var(--esp-estimate-width);gap:0 var(--s-3)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head{grid-column:1;grid-row:1;align-self:start;z-index:1;min-width:0;gap:0;flex-wrap:nowrap;pointer-events:none}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head button{pointer-events:auto}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head>div:first-child{min-width:0;display:block}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head .esp-bucket-name{font-size:var(--t-sub)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>[data-esp-row]{grid-column:1/-1;grid-row:1;min-width:0}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-name-editor{grid-column:1/-1;grid-row:2}
  .event-staffing-plan .esp-lane[data-name-in-heading=true]>.esp-role{align-self:end;padding:0}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty]>.esp-bucket-head{display:grid;grid-template-columns:var(--esp-label-width) minmax(0,1fr) auto;gap:var(--s-3);min-height:4.5rem;border-bottom:1px solid var(--esp-rule)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty]>.esp-bucket-head>div:first-child{display:block;grid-column:1;grid-row:1}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty]>.esp-bucket-head>.esp-bucket-actions{grid-column:1;grid-row:1;align-self:start;justify-self:end}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-empty-prompt{grid-column:2;grid-row:1}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-bucket-name{font-size:var(--t-sub)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-empty-planning{padding-bottom:var(--s-2)}
  .event-staffing-plan .esp-bucket:not([data-esp-bucket-layout=multiple]) .esp-bucket-meta{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}
@media(min-width:1280px){.event-staffing-plan .esp-workspace-grid{--esp-label-width:10rem;grid-template-columns:12.5rem minmax(0,1fr);gap:var(--s-5)}}
@media(max-width:900px){.event-staffing-plan .esp-workspace-grid{--esp-label-width:6.5rem;--esp-estimate-width:4.5rem;grid-template-columns:9.5rem minmax(0,1fr);gap:var(--s-3)}.event-staffing-plan [data-esp-summary]>.esp-metric{padding:var(--s-3)}.event-staffing-plan .esp-value{font-size:1.6rem}.event-staffing-plan .esp-axis,.event-staffing-plan .esp-lane{column-gap:var(--s-2)}}
@media(max-width:640px){
  .event-staffing-plan .esp-workspace-grid{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}
  .event-staffing-plan .esp-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
  .event-staffing-plan [data-esp-summary]>.esp-metric{min-height:5.5rem;padding:var(--s-3) var(--s-2);border-radius:var(--r-s)}
  .event-staffing-plan .esp-value{font-size:1.35rem}
  .event-staffing-plan .esp-metric-label{font-size:var(--t-sub)}
  .event-staffing-plan .esp-summary-footer{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--s-2)}
  .event-staffing-plan .esp-summary-footer>span{padding:0;flex:1}
  .event-staffing-plan .esp-summary-footer button{order:0;padding:0;flex:none}
  .event-staffing-plan .esp-summary-details{grid-column:1/-1}
  .event-staffing-plan .esp-heading{padding:var(--s-2)}
  .event-staffing-plan .esp-heading h2{font-size:var(--t-body)}
  .event-staffing-plan .esp-heading>.esp-scenarios{order:3;width:100%}
  .event-staffing-plan .esp-heading>.esp-scenarios button{flex:1}
  .event-staffing-plan .esp-statusline{padding:var(--s-2) var(--s-3)}
  .event-staffing-plan .esp-toolbar{padding:var(--s-2)}
  .event-staffing-plan .esp-toolbar .esp-scenarios{width:100%}
  .event-staffing-plan .esp-toolbar .esp-scenarios button{flex:1}
  .event-staffing-plan .esp-toolbar-actions{margin-left:auto}
  .event-staffing-plan .esp-plan{padding:var(--s-2) var(--s-3) var(--s-3)}
  .event-staffing-plan .esp-view-date{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]{display:grid;grid-template-columns:minmax(0,1fr)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head{grid-column:1;grid-row:1;align-self:start;z-index:1;width:calc(100% - 6rem);min-width:0;pointer-events:none}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head button{pointer-events:auto}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head>div:first-child{display:block}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-bucket-head .esp-bucket-meta{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>[data-esp-row]{grid-column:1;grid-row:1;min-width:0}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single]>.esp-name-editor{grid-column:1;grid-row:2}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single] .esp-role{padding-top:calc(var(--control-height-touch) - var(--s-2))}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=single] .esp-row-estimate{align-self:start;padding-top:var(--s-3)}
  .event-staffing-plan .esp-empty-prompt{display:none}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-bucket-head>div:first-child{display:block}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-bucket-meta{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-bucket-head{display:grid;grid-template-columns:calc(100% - 6rem) minmax(0,1fr);min-height:4.5rem;border-bottom:1px solid var(--esp-rule)}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-bucket-head>div:first-child{grid-column:1;grid-row:1}
  .event-staffing-plan .esp-bucket[data-esp-bucket-layout=empty] .esp-bucket-head>.esp-bucket-actions{grid-column:1;grid-row:1;align-self:start;justify-self:end}
  .event-staffing-plan .esp-plan-footer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-2)}
  .event-staffing-plan .esp-plan-footer>.esp-add-group{width:auto;margin:0;padding-inline:0;text-align:left}
  .event-staffing-plan .esp-plan-footer>p{margin:0;text-align:right}
  .event-staffing-plan .esp-plan-footer>.esp-actions{grid-column:1/-1;width:100%}
  .event-staffing-plan .esp-plan-footer>.esp-actions button{width:100%}
  .event-staffing-plan .esp-axis{grid-template-columns:minmax(0,1fr);padding-bottom:var(--s-1)}
  .event-staffing-plan .esp-axis>span{display:none}
  .event-staffing-plan .esp-lane{grid-template-columns:minmax(0,1fr) auto;gap:var(--s-1) var(--s-2);min-height:0;padding:0 0 var(--s-2)}
  .event-staffing-plan .esp-role{grid-column:1;grid-row:1;display:block;padding:0;min-width:0}
  .event-staffing-plan .esp-role small{margin:0}
  .event-staffing-plan .esp-row-estimate{grid-column:2;grid-row:1;max-width:8rem}
  .event-staffing-plan .esp-row-estimate small{margin:0}
  .event-staffing-plan .esp-track{grid-column:1/-1;grid-row:2;width:100%;margin-top:var(--s-1)}
  .event-staffing-plan .esp-block{padding-inline:0}
  .event-staffing-plan .esp-editor-backdrop{padding:var(--s-3)}
  .event-staffing-plan .esp-inspector.esp-floating-editor{padding:var(--s-4);max-height:calc(100dvh - var(--s-5));border-radius:var(--r-m)}
  .event-staffing-plan .esp-inline-fields{gap:var(--s-3)}
  .event-staffing-plan .esp-inline-fields input,.event-staffing-plan .esp-inline-fields select{font-size:1rem}
  .event-staffing-plan .esp-inline-heading{margin-bottom:var(--s-3);padding-bottom:var(--s-2)}
  .event-staffing-plan .esp-editor-actions{gap:0;flex-wrap:nowrap}
  .event-staffing-plan .esp-editor-footer{gap:var(--s-2)}
}
@media(max-width:360px){.event-staffing-plan .esp-heading-actions{gap:0}.event-staffing-plan .esp-heading-actions #esp-save{padding-inline:var(--s-2)}.event-staffing-plan .esp-inline-fields,.event-staffing-plan .esp-secondary-fields{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-inline-summary{flex-wrap:wrap}}

/* Bucket details and crew rules are temporary editors over the working board. */
.event-staffing-plan .esp-bucket-name[data-esp-bucket-date]{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;min-height:var(--control-height-touch)}
.event-staffing-plan .esp-bucket-date{display:block;color:var(--esp-muted);font-size:var(--t-sub);font-weight:400;line-height:1.3}
.event-staffing-plan .esp-bucket-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
.event-staffing-plan .esp-bucket-fields .esp-field{min-width:0}
.event-staffing-plan .esp-bucket-fields input{display:block;width:100%;min-height:var(--control-height-touch);margin-top:var(--s-1)}
.event-staffing-plan .esp-bucket-dialog>.esp-source-note{margin-top:var(--s-3)}
.event-staffing-plan .esp-rules-dialog{width:min(48rem,100%)}
.event-staffing-plan .esp-rules-dialog .esp-template-panel{margin:0;padding:0;border:0;background:transparent}
.event-staffing-plan .esp-rules-dialog .esp-inline-heading h3{margin:0;font-size:var(--t-section)}
.event-staffing-plan .esp-rules-dialog .esp-template-panel>.esp-inline-heading{margin-bottom:var(--s-3)}
@media(max-width:550px){.event-staffing-plan .esp-bucket-fields{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-bucket-dialog .esp-editor-footer{align-items:stretch;flex-direction:column}.event-staffing-plan .esp-bucket-dialog .esp-editor-footer>.esp-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

/* The crew jump keeps its accessible name while the header shows only people/count. */
.event-staffing-plan .esp-heading .esp-existing-jump{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-width:var(--control-height-touch)}
.event-staffing-plan .esp-existing-jump .ci{flex-shrink:0}
.event-staffing-plan .esp-crew-count{font-variant-numeric:tabular-nums}
/* Live labor figures belong to the navy planning header; the board uses full width. */
.event-staffing-plan .esp-workspace-grid{grid-template-columns:minmax(0,1fr);gap:0}
.event-staffing-plan .esp-heading>[data-esp-summary]{flex:1 1 100%;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)} /* fetch-1500 R6: three figures; Details moved into the Rules & tools menu */
.event-staffing-plan .esp-metric-label>.esp-overhead{font-weight:400} /* fetch-1500 R6: the Salary overhead note rides the Planned labor tile's label line */
.event-staffing-plan .esp-metric-label>.esp-overhead>strong{font-weight:600;color:var(--esp-ink)}
.event-staffing-plan .esp-heading [data-esp-summary]>.esp-metric{min-height:4.5rem;padding:var(--s-2) var(--s-3);border-radius:var(--r-s);box-shadow:none}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-value{margin-top:var(--s-1);font-size:var(--t-title)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer{justify-content:center;gap:var(--s-1);color:var(--esp-paper)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer>span{padding:0;color:var(--esp-paper)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer .esp-muted{color:var(--esp-paper)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer button{min-height:var(--control-height-touch);padding:var(--s-1) var(--s-2);border:1px solid color-mix(in srgb,var(--esp-paper) 55%,transparent);border-radius:var(--r-s);color:var(--esp-paper)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer button:hover{background:var(--esp-blue);color:var(--esp-paper)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-details{grid-column:1/-1;color:var(--esp-ink)}
/* Keep the full action labels on one row at laptop widths, including wider font metrics. */
@media(min-width:901px) and (max-width:1100px){.event-staffing-plan .esp-heading{column-gap:var(--s-2)}.event-staffing-plan .esp-heading>.esp-scenarios button{padding-inline:var(--s-1)}.event-staffing-plan .esp-heading .esp-existing-jump{padding-inline:var(--s-1)}.event-staffing-plan .esp-heading-actions #esp-undo{gap:var(--s-1);padding-inline:var(--s-2)}.event-staffing-plan .esp-heading-actions #esp-save{padding-inline:var(--s-2)}}
@media(max-width:640px){.event-staffing-plan .esp-heading>[data-esp-summary]{grid-template-columns:repeat(2,minmax(0,1fr))}.event-staffing-plan .esp-heading [data-esp-summary]>[data-esp-budget-result],.event-staffing-plan .esp-heading [data-esp-summary]>.esp-summary-footer{grid-column:1/-1}.event-staffing-plan .esp-heading [data-esp-summary]>.esp-summary-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.event-staffing-plan .esp-heading [data-esp-summary]>.esp-summary-footer button{order:0}}

/* Live named-crew read follows draft creation; planning assumptions stay in the summary above. */
.event-staffing-plan .esp-crew-panel{margin:var(--s-4) 0;padding:var(--s-4);border:1px solid var(--esp-rule);border-radius:var(--r-m);background:var(--esp-paper)}
.event-staffing-plan .esp-crew-header{display:flex;align-items:start;justify-content:space-between;gap:var(--s-3)}
.event-staffing-plan .esp-crew-header h3{margin:0;color:var(--esp-ink);font-size:var(--t-section)}
.event-staffing-plan .esp-crew-header p{margin:var(--s-1) 0 var(--s-3);color:var(--esp-muted);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-header button{flex:none}
.event-staffing-plan .esp-crew-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3);margin:var(--s-2) 0;padding:var(--s-3);border-left:2px solid var(--esp-gold-mid);background:var(--esp-wash);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-summary>*{min-width:0;overflow-wrap:anywhere}
.event-staffing-plan .esp-crew-summary strong{color:var(--esp-ink)}
.event-staffing-plan .esp-crew-basis{margin:var(--s-2) 0 var(--s-4);color:var(--esp-muted);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-shifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:var(--s-3)}
.event-staffing-plan .esp-crew-shift{min-width:0;padding:var(--s-3);border:1px solid var(--esp-rule);border-radius:var(--r-s)}
.event-staffing-plan .esp-crew-shift--missing{border-color:var(--warn-fg);background:var(--warn-bg)}
.event-staffing-plan .esp-crew-shift-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2)}
.event-staffing-plan .esp-crew-shift h4{margin:0;color:var(--esp-ink);font-size:var(--t-body)}
.event-staffing-plan .esp-crew-shift-head>span{flex:none;color:var(--esp-muted);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-meta{margin:var(--s-1) 0 var(--s-3);color:var(--esp-muted);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-list{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}
.event-staffing-plan .esp-crew-list li{min-width:0;padding-top:var(--s-2);border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-crew-person{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2)}
.event-staffing-plan .esp-crew-person strong{overflow-wrap:anywhere}
.event-staffing-plan .esp-crew-person span{color:var(--esp-muted);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-list p,.event-staffing-plan .esp-crew-vacancy{margin:var(--s-1) 0;color:var(--esp-muted);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-map{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s-1) var(--s-2);font-size:var(--t-sub)}
.event-staffing-plan .esp-crew-map span{overflow-wrap:anywhere}
.event-staffing-plan .esp-crew-error{margin:var(--s-2) 0;color:var(--bad-fg);font-size:var(--t-sub)}
@media(max-width:640px){.event-staffing-plan .esp-crew-panel{padding:var(--s-3)}.event-staffing-plan .esp-crew-header{align-items:stretch;flex-direction:column}.event-staffing-plan .esp-crew-summary{grid-template-columns:minmax(0,1fr)}.event-staffing-plan .esp-crew-shifts{grid-template-columns:minmax(0,1fr)}}

/* Budget provenance and temporary comparisons stay visibly distinct. */
.event-staffing-plan .esp-detail-section+.esp-detail-section{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--esp-rule)}
.event-staffing-plan .esp-detail-section>.esp-detail-title{margin-bottom:var(--s-2);font-size:var(--t-sub);font-weight:650;color:var(--esp-blue)}
.event-staffing-plan .esp-detail-section p{line-height:1.6;overflow-wrap:anywhere}
.event-staffing-plan .esp-budget-formula{padding:var(--s-2);border-left:2px solid var(--esp-gold-mid);background:var(--esp-wash);color:var(--esp-ink)}
.event-staffing-plan .esp-detail-facts{margin:var(--s-3) 0}
.event-staffing-plan .esp-detail-facts>div{padding:var(--s-2) 0;border-bottom:1px solid var(--esp-rule)}
.event-staffing-plan .esp-detail-facts dt{color:var(--esp-muted)}
.event-staffing-plan .esp-detail-facts dd{margin:var(--s-1) 0 0;color:var(--esp-ink);font-weight:600;overflow-wrap:anywhere}
.event-staffing-plan .esp-summary-details .esp-summary-hours{display:grid;gap:var(--s-2);margin-bottom:var(--s-3)}
.event-staffing-plan .esp-summary-details .esp-budget-editor{border-top:1px solid var(--esp-rule);padding-top:var(--s-4)}
.event-staffing-plan .esp-summary-details .esp-disclosure{margin-top:var(--s-2);padding-top:0;border:0}
.event-staffing-plan .esp-budget-source{margin-top:var(--s-2)}
.event-staffing-plan .esp-budget-source p+p{margin-top:var(--s-2)}

/* fetch-1332: the Staff Plan fits the screen (Jack's Staff Plan item 2). */
/* The service date sits on the time axis; the Table load strip is retired. */
.event-staffing-plan .esp-axis-lead{display:flex;align-items:center;gap:var(--s-1);min-width:0}
.event-staffing-plan .esp-axis-lead>span{min-width:0;overflow-wrap:anywhere}
/* One status row: floor coverage, missing inputs beside it, save status, then the edit help. The mounts still repaint separately. */
.event-staffing-plan .esp-statusline{position:relative;justify-content:flex-start;min-height:var(--control-height-icon);padding-block:0}
.event-staffing-plan .esp-statusline>.esp-status{display:contents}
.event-staffing-plan .esp-statusline .esp-planned-coverage{order:1}
.event-staffing-plan .esp-statusline>.esp-diagnostics{order:2;position:relative;min-width:0}
.event-staffing-plan .esp-statusline>.esp-diagnostics:empty{display:none}
.event-staffing-plan .esp-statusline .esp-save-status{order:3;margin-left:auto}
.event-staffing-plan .esp-statusline>.esp-help{order:4;flex:none;margin-right:calc(-1 * var(--s-2))}
.event-staffing-plan .esp-diagnostics .esp-cost-issues{margin:0;padding:0 0 0 var(--s-2)}
.event-staffing-plan .esp-diagnostics .esp-cost-issues>ul{position:absolute;left:0;top:100%;z-index:6;width:min(28rem,calc(100vw - var(--s-5)));max-height:min(20rem,60dvh);overflow:auto;margin:var(--s-1) 0 0;padding:var(--s-2) var(--s-3) var(--s-2) var(--s-5);border:1px solid var(--esp-rule);border-radius:var(--r-s);background:var(--esp-paper);box-shadow:0 var(--s-2) var(--s-4) color-mix(in srgb,var(--esp-ink) 14%,transparent)}
/* Near the foot of the screen (espCostIssuesUp) the list opens upward, over the header's figures. */
.event-staffing-plan .esp-diagnostics .esp-cost-issues[data-esp-up]>ul{top:auto;bottom:100%;margin:0 0 var(--s-1)}
/* Where 28rem from the summary would pass the row's right edge (espCostIssuesEnd), the list hangs from the row's right edge. */
.event-staffing-plan .esp-statusline>.esp-diagnostics:has(>[data-esp-end]){position:static}
.event-staffing-plan .esp-diagnostics .esp-cost-issues[data-esp-end]>ul{left:auto;right:0;width:min(28rem,100%)}
/* BEO reference and Coverage are 44px icons in the navy header, like the gear and the diagram. */
.event-staffing-plan .esp-heading-actions>.esp-readiness-tool{width:var(--control-height-touch);min-width:var(--control-height-touch);height:var(--control-height-touch);min-height:var(--control-height-touch);padding:0;border-color:transparent;border-radius:var(--r-s);background:transparent;color:var(--esp-paper)}
.event-staffing-plan .esp-heading-actions>.esp-readiness-tool[aria-pressed=true]{background:var(--esp-blue);border-color:var(--esp-blue);box-shadow:inset 0 -2px var(--esp-gold-mid)}
/* Every control on the navy header shows a pointer and a visible hover on the navy surface (the generic light hover washed out its paper text). */
.event-staffing-plan .esp-heading :is(button,summary){cursor:pointer}
.event-staffing-plan .esp-heading button:disabled{cursor:default}
.event-staffing-plan .esp-heading-actions>.esp-readiness-tool:hover,.event-staffing-plan .esp-heading-actions>.esp-readiness-tool:focus-visible{background:var(--esp-blue);border-color:color-mix(in srgb,var(--esp-paper) 45%,transparent);color:var(--esp-paper)}
.event-staffing-plan .esp-heading-actions>.esp-rules-gear:hover,.event-staffing-plan .esp-heading-actions>#esp-view-diagram:hover,.event-staffing-plan .esp-heading-actions>.esp-tools-menu>summary:hover{border-color:color-mix(in srgb,var(--esp-paper) 45%,transparent)}
.event-staffing-plan .esp-heading-actions #esp-undo:not(:disabled):hover{background:color-mix(in srgb,var(--esp-blue) 82%,var(--esp-paper));border-color:var(--esp-paper);color:var(--esp-paper)}
.event-staffing-plan .esp-heading-actions #esp-undo:disabled:hover{background:var(--esp-blue);border-color:color-mix(in srgb,var(--esp-paper) 45%,transparent)}
.event-staffing-plan .esp-heading-actions #esp-save:not(:disabled):hover{background:var(--esp-wash);border-color:var(--esp-gold-mid);color:var(--esp-ink)}
.event-staffing-plan .esp-heading-actions #esp-save:disabled:hover{background:var(--esp-paper);border-color:var(--esp-paper)}
.event-staffing-plan .esp-heading>.esp-scenarios button:not([aria-pressed=true]):hover{background:color-mix(in srgb,var(--esp-paper) 16%,transparent);border-color:color-mix(in srgb,var(--esp-paper) 45%,transparent);color:var(--esp-paper)}
.event-staffing-plan .esp-heading>.esp-scenarios button[aria-pressed=true]:hover{background:var(--esp-paper);border-color:var(--esp-gold-mid)}
.event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer button:hover{border-color:var(--esp-paper)}
/* Budget details open over the plan; the what-if result sits beside its input. */
.event-staffing-plan .esp-inspector.esp-budget-dialog{width:min(40rem,100%);padding-top:0}
/* The title and its close control stay in view however far the dialog scrolls (a phone has no Escape key). */
.event-staffing-plan .esp-budget-dialog>.esp-inline-heading{position:sticky;top:0;z-index:1;padding-top:var(--s-5);background:var(--esp-paper)}
.event-staffing-plan .esp-budget-dialog .esp-summary-details{padding:0;border:0;background:transparent}
.event-staffing-plan .esp-budget-dialog-result{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s-1) var(--s-3);margin-top:var(--s-3);padding:var(--s-2) var(--s-3);border-left:2px solid var(--esp-gold-mid);background:var(--esp-wash)}
.event-staffing-plan .esp-budget-dialog-result .esp-value{margin:0;font-size:var(--t-title)}
.event-staffing-plan .esp-budget-dialog-result .esp-small:empty{display:none}
/* Wide screens: basis on the left, the what-if and planned work beside it, references across the foot. */
@media(min-width:900px){
  .event-staffing-plan .esp-inspector.esp-budget-dialog{width:min(58rem,100%)}
  .event-staffing-plan .esp-budget-dialog .esp-summary-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 var(--s-5);align-items:start}
  .event-staffing-plan .esp-budget-dialog [data-esp-budget-explanation]{grid-column:1;grid-row:1 / span 2}
  .event-staffing-plan .esp-budget-dialog .esp-budget-editor{grid-column:2;grid-row:1;margin-top:0;padding-top:0;border-top:0}
  .event-staffing-plan .esp-budget-dialog [aria-labelledby="esp-planned-work-title"]{grid-column:2;grid-row:2}
  .event-staffing-plan .esp-budget-dialog [aria-labelledby="esp-references-title"]{grid-column:1 / -1;grid-row:3}
}
/* Coverage opens over the plan as a temporary dialog (Readiness owns it; outside the planner mount). */
.readiness-coverage-backdrop{position:fixed;inset:0;z-index:610;display:flex;align-items:center;justify-content:center;padding:var(--s-4);background:color-mix(in srgb,var(--navy-dark) 22%,transparent);backdrop-filter:blur(1px);overscroll-behavior:contain}
.readiness-coverage-dialog{position:relative;width:min(40rem,100%);max-height:calc(100dvh - var(--s-6));overflow:auto;overscroll-behavior:contain;padding:var(--s-4) var(--s-5) var(--s-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:0 var(--s-5) 4rem color-mix(in srgb,var(--navy-dark) 23%,transparent)}
.readiness-coverage-dialog #readinessCoveragePanel{margin-top:0}
.readiness-coverage-dialog #readinessCoveragePanel>.card{margin:0}
.readiness-dialog-head,.readiness-reference-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding-bottom:var(--s-2);margin-bottom:var(--s-3);border-bottom:1px solid var(--line)}
.readiness-dialog-head h2,.readiness-reference-head h2{margin:0;font:600 var(--t-section)/1.3 Inter,sans-serif;color:var(--text-heading)}
.readiness-dialog-close{display:grid;place-items:center;flex:none;width:var(--control-height-touch);height:var(--control-height-touch);padding:0;border:1px solid transparent;border-radius:var(--r-s);background:transparent;color:var(--ink);font-size:var(--t-section);line-height:1;cursor:pointer}
.readiness-dialog-close:hover{background:var(--wash);border-color:var(--line)}
.readiness-dialog-close:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
/* The rail sits beside the plan only from 1100px. From 641 to 1099px the Staff Plan's BEO reference is a side sheet down the
   right edge (under the app bar, full height, no backdrop), so the plan beside it stays readable and usable while planning;
   a phone gets a modal bottom sheet over the plan (index.html readinessReferenceModal). The sheet sits at z-index 610; the
   plan's own dialogs (.esp-editor-backdrop) sit at 620 so one opened beside the sheet draws above it, never under it. */
.readiness-reference-head{display:none}
@media(max-width:1099px){
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel{position:fixed;z-index:610;display:grid;overscroll-behavior:contain}
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel>.readiness-reference-head{display:flex;margin:0;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);background:var(--paper)}
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel>.tlb-rail{min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--paper)}
}
@media(min-width:641px) and (max-width:1099px){
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel{top:var(--app-sticky-top,0px);right:0;bottom:0;width:min(24rem,100%);grid-template-rows:auto minmax(0,1fr);background:var(--paper);border-left:1px solid var(--line);box-shadow:0 0 var(--s-5) color-mix(in srgb,var(--navy-dark) 18%,transparent)}
}
@media(max-width:640px){
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel{inset:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:end;background:color-mix(in srgb,var(--navy-dark) 22%,transparent)}
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel>.readiness-reference-head{border-radius:var(--r-l) var(--r-l) 0 0}
  .readiness-workspace[data-readiness-part="staffing"] #readinessReferencePanel>.tlb-rail{max-height:75dvh}
  .readiness-coverage-backdrop{padding:var(--s-3)}
  .readiness-coverage-dialog{padding:var(--s-3) var(--s-4) var(--s-4);max-height:calc(100dvh - var(--s-5));border-radius:var(--r-m)}
  /* The ticks keep the full track width (they align with the shift grid); the date stays for screen readers. */
  .event-staffing-plan .esp-axis-lead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .event-staffing-plan .esp-diagnostics{position:static}
  .event-staffing-plan .esp-diagnostics .esp-cost-issues>ul{right:0;width:auto}
}
/* fetch-1332 stage 2: the first shift row sits right under the header and the status row (the plan's top padding, the
   workspace's top padding and half the axis padding go); a laptop shows three rows at 900px. */
.readiness-workspace--embedded .event-staffing-plan .esp-workspace{padding-top:0}
.event-staffing-plan .esp-plan{padding-top:0}
.event-staffing-plan .esp-axis{padding-block:var(--s-1)}
/* Phones (Jack's ruling 09-26): the navy header is about half its old height. Title, crew and Save share the first row, the
   Suggested / Your plan switch and Undo the second, the icon tools one row, then the three figures in one compact row with
   Details beside them. Every control keeps its 44px target; desktop is unchanged. */
@media(max-width:640px){
  .event-staffing-plan .esp-heading{gap:0 var(--s-1);padding:var(--s-2)}
  .event-staffing-plan .esp-heading::before,.event-staffing-plan .esp-heading::after{content:'';flex:0 0 100%;height:0}
  /* Rows are spaced by the controls' own margins, so the two zero-height line breaks add no gap. */
  .event-staffing-plan .esp-heading>:is(.esp-existing-jump,.esp-scenarios),.event-staffing-plan .esp-heading-actions>*{margin-block:calc(var(--s-1) / 2)}
  .event-staffing-plan .esp-heading>h2,.event-staffing-plan .esp-heading>.esp-existing-jump{order:1}
  .event-staffing-plan .esp-heading-actions{display:contents}
  .event-staffing-plan .esp-heading-actions>*{order:6}
  .event-staffing-plan .esp-heading-actions>#esp-save{order:2;margin-left:auto}
  .event-staffing-plan .esp-heading::before{order:3}
  .event-staffing-plan .esp-heading>.esp-scenarios{order:4;width:auto;padding:0;gap:0}
  .event-staffing-plan .esp-heading>.esp-scenarios button{flex:none;padding-inline:var(--s-3)}
  .event-staffing-plan .esp-heading-actions>#esp-undo{order:4;margin-left:auto;gap:var(--s-1);padding-inline:var(--s-2)}
  .event-staffing-plan .esp-heading::after{order:5}
  .event-staffing-plan .esp-heading>[data-esp-summary]{order:7;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-1);margin-top:var(--s-1)} /* fetch-1500 R6: three columns */
  .event-staffing-plan .esp-heading [data-esp-summary]>.esp-metric{position:relative;justify-content:flex-start;min-height:0;padding:var(--s-1)}
  .event-staffing-plan .esp-heading [data-esp-summary]>[data-esp-budget-result]{grid-column:auto}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-metric-label{font-size:var(--t-sub);line-height:1.3}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-value{margin-top:0;font-size:var(--t-body);line-height:1.3}
  .event-staffing-plan .esp-heading [data-esp-summary]>.esp-metric .esp-small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .event-staffing-plan .esp-heading [data-esp-summary]>.esp-summary-footer{display:contents}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer button{grid-column:4;grid-row:1;align-self:stretch;justify-content:center;padding-inline:var(--s-1)}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer>span{grid-column:1 / -1;grid-row:2;font-size:var(--t-sub)}
  /* The status row is one line: the figures stay (Floor coverage N / N, N missing inputs, Unsaved changes or Planning
     draft, the help); their explanations and the routine "Saved plan" are for screen readers only, and a squeezed item
     wraps its own words rather than starting a second row. */
  .event-staffing-plan .esp-statusline{flex-wrap:nowrap;column-gap:var(--s-2)}
  .event-staffing-plan .esp-statusline .esp-planned-coverage,.event-staffing-plan .esp-statusline>.esp-diagnostics,.event-staffing-plan .esp-statusline .esp-save-status{flex:0 1 auto;min-width:0;overflow-wrap:anywhere}
  .event-staffing-plan .esp-statusline>.esp-diagnostics{position:static} /* its list opens across the whole status row, not under its half */
  .event-staffing-plan .esp-statusline .esp-planned-coverage>.esp-small,.event-staffing-plan .esp-statusline .esp-cost-partial,.event-staffing-plan .esp-statusline .esp-save-status[data-esp-save-state=saved]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .event-staffing-plan .esp-statusline:has(.esp-save-status[data-esp-save-state=saved])>.esp-help{margin-left:auto}
  .event-staffing-plan .esp-statusline .esp-planned-coverage>strong{white-space:nowrap}
  /* A missing figure ("Not estimated", "Not checked") keeps to one line in the compact tiles. */
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-value--none{font-size:var(--t-sub)}
  .event-staffing-plan .esp-budget-dialog>.esp-inline-heading{padding-top:var(--s-4)}
}
@media(max-width:360px){
  .event-staffing-plan .esp-heading>[data-esp-summary]{grid-template-columns:repeat(3,minmax(0,1fr))}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer button{grid-column:3;grid-row:2;justify-self:end}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer>span{grid-column:1 / 3;align-self:center}
}
/* fetch-1332 (review): a short screen wider than a phone (1366x768, 1280x720, 1024x768, a phone on its side) and a narrow one
   (a tablet, a half-screen window, where the big figures wrap in narrow tiles) keep the desktop header, but its three figures
   read like a phone's: the label over the figure at body size, the explanation under it for screen readers only, and Details
   beside the salary overhead line. The figures give back 30-60px to the plan. */
@media(min-width:641px) and (max-height:820px),(min-width:641px) and (max-width:900px){
  .event-staffing-plan .esp-heading>[data-esp-summary]{gap:var(--s-1) var(--s-2)}
  .event-staffing-plan .esp-heading [data-esp-summary]>.esp-metric{position:relative;min-height:0;padding:var(--s-1) var(--s-3)}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-metric-label{font-size:var(--t-sub);line-height:1.3}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-value{margin-top:0;font-size:var(--t-body);line-height:1.3}
  .event-staffing-plan .esp-heading [data-esp-summary]>.esp-metric .esp-small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer{flex-direction:row;align-items:center;gap:var(--s-2)}
  .event-staffing-plan .esp-heading [data-esp-summary] .esp-summary-footer>span{max-width:9rem;line-height:1.3}
}
/* fetch-1500 R3 (Jack 10-08: "the header of the staff plan is what i wanted to be sticky (Labor budget - Planned Labor and over
   budget tiles) - not the (BEO/Staffing/Timeline/diagram)"): on a desktop the navy heading sticks while the plan scrolls, under the
   fixed desktop bar (--app-sticky-top, fetch-1283) - never top: 0 (design rule 8) - and keeps its height, so nothing under it moves.
   The sentinel above it is one pixel that takes no room; the binder's observer marks the plan [data-esp-stuck] while it is stuck.
   On a phone the heading stays in flow and .esp-pin, one line of the three figures in fetch-1256's pinned-bar shape (sticky under
   the phone's bar, a negative margin the size of itself, hidden until pinned), stands in for it: a stuck heading that changed height
   would shift the plan under a finger mid-scroll. The dialogs over the plan sit at 620, so both stay under them. Readiness only:
   the University's practice plan is static. */
.readiness-workspace .event-staffing-plan .esp-sticky-sentinel{height:1px;margin-bottom:-1px;visibility:hidden;pointer-events:none}
.event-staffing-plan .esp-pin{display:none}
@media(min-width:641px){
  .readiness-workspace .event-staffing-plan .esp-heading{position:sticky;top:var(--app-sticky-top,0px);z-index:30}
  .readiness-workspace .event-staffing-plan[data-esp-stuck] .esp-heading{border-radius:0;box-shadow:0 2px 10px color-mix(in srgb,var(--navy-dark) 18%,transparent)}
}
@media(max-width:640px){
  .readiness-workspace .event-staffing-plan .esp-pin{position:sticky;top:var(--phone-nav-height,55px);z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);box-sizing:border-box;height:var(--control-height-touch);margin:calc(-1 * var(--control-height-touch)) 0 0;padding:0 var(--s-3);overflow:hidden;visibility:hidden;background:var(--esp-ink);color:var(--esp-paper);font-size:var(--t-sub);line-height:1.3;box-shadow:0 2px 10px color-mix(in srgb,var(--navy-dark) 18%,transparent)}
  .readiness-workspace .event-staffing-plan[data-esp-stuck] .esp-pin{visibility:visible}
  .readiness-workspace .event-staffing-plan .esp-pin>span{min-width:0;white-space:nowrap}
  .readiness-workspace .event-staffing-plan .esp-pin strong{font-weight:600;font-variant-numeric:tabular-nums}
  .readiness-workspace .event-staffing-plan .esp-pin strong.esp-gap{color:var(--esp-gold-light)}
  .event-staffing-plan .esp-crew-views button{min-width:var(--control-height-touch)} /* a thumb target even for "List" */
}
@media print{.readiness-workspace .event-staffing-plan .esp-heading{position:static}.event-staffing-plan .esp-pin{display:none}}
/* fetch-1500 R4/R5: Server cards and Passing are views of the crew dialog; their bodies keep index.html's markup and binders */
.event-staffing-plan .esp-crew-dialog .readiness-server-details,.event-staffing-plan .esp-crew-dialog .pass-card--embedded{margin:0;padding:0;border:0;background:transparent}
.event-staffing-plan .esp-crew-dialog .readiness-people-heading h2,.event-staffing-plan .esp-crew-dialog .pass-title{font-size:var(--t-body)}
/* inside the plan's root the module's generic button rule (border, paper, 44px, 8px 13px, hover wash) would restyle the Server-card
   buttons and the Passing controls; they keep their own look - the card is a card, the chip's x is an x, the .btn is a .btn */
.event-staffing-plan .esp-crew-dialog button.readiness-person-card{min-height:6rem;padding:var(--s-4);border:1px solid var(--rule-soft);border-radius:var(--r-m);background:var(--surface-card)}
.event-staffing-plan .esp-crew-dialog button.readiness-person-card:hover,.event-staffing-plan .esp-crew-dialog button.readiness-person-card:focus-within{border-color:var(--navy);background:var(--surface-card)}
.event-staffing-plan .esp-crew-dialog .btn.btn-primary{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.event-staffing-plan .esp-crew-dialog .btn.btn-primary:hover{background:var(--navy-dark);border-color:var(--navy-dark)}
.event-staffing-plan .esp-crew-dialog .btn--xs{min-height:var(--control-height-sm);padding:var(--s-1) var(--s-2)}
.event-staffing-plan .esp-crew-dialog .pass-x{min-height:var(--control-height-sm);padding:0;border:0;background:none}
.event-staffing-plan .esp-crew-dialog .pass-x:hover{border:0;background:none}
.event-staffing-plan .esp-crew-views{flex-wrap:wrap}
@media(max-width:640px){.event-staffing-plan .esp-crew-views svg{display:none}.event-staffing-plan .esp-crew-views button{min-height:var(--control-height-touch)}} /* four views fit one phone row as words, each a thumb target */
