/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task170 addendum self-hosts licensed Heebo for Hebrew/Latin without a runtime CDN. */
@font-face{font-family:'Heebo';src:url('assets/fonts/Heebo-hebrew-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
/* Engine: Codex/gpt-6.1-sol, 2026-10-12: warm editorial RTL design with large touch targets and bounded layouts. */
:root{--ink:#253a31;--muted:#69736c;--paper:#f6f3ec;--green:#284f3d;--line:#e0e4da;--orange:#bb6138}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Heebo','Calibri Light',Calibri,system-ui,sans-serif;line-height:1.65}a{color:var(--green);text-underline-offset:4px}button,.button{display:inline-flex;align-items:center;justify-content:center;background:var(--green);border:1px solid var(--green);color:white;min-height:48px;padding:10px 22px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}button:hover,.button:hover{filter:brightness(1.08)}.light{background:transparent;color:var(--green);border-color:var(--line)}.small{min-height:40px;padding:6px 14px;font-size:14px}.top{max-width:1160px;margin:auto;padding:22px 30px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{font-size:25px;font-weight:800;text-decoration:none;line-height:1.15}.brand span{display:block;font-size:12px;font-weight:400;margin-top:5px}nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.badge{font-size:12px;color:var(--orange);background:#fae9da;border-radius:30px;padding:6px 12px}main{max-width:1100px;margin:15px auto;padding:0 24px}h1{font-size:clamp(30px,4vw,48px);line-height:1.2;margin:12px 0 22px;letter-spacing:-1px}h2{font-size:25px;line-height:1.3;margin:0 0 12px}h3{font-size:18px}.hero{display:grid;grid-template-columns:1fr 1fr;background:#e8ece2;border-radius:24px;overflow:hidden;margin-bottom:28px}.hero-copy{padding:45px 38px}.hero img{width:100%;height:100%;min-height:350px;object-fit:cover}.eyebrow{font-size:13px;font-weight:700;color:var(--orange);margin:0 0 10px}.price{font-size:32px;font-weight:bold;margin:22px 0}.price span{font-size:15px;font-weight:400}.card{background:white;border:1px solid var(--line);padding:30px;border-radius:18px;margin:24px 0;box-shadow:0 8px 30px #253a3105}.narrow{max-width:550px;margin:30px auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:18px;margin:16px 0}label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:700;margin:12px 0}input,select,textarea{font:inherit;background:#fcfcf9;color:var(--ink);border:1px solid #ccd4ca;border-radius:8px;padding:12px;width:100%;min-height:48px}input[type=email],input[type=tel],input[type=password]{direction:ltr;text-align:right}input:focus,select:focus,textarea:focus{outline:2px solid #a9bb95;outline-offset:2px}.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}.check input{width:20px;min-height:20px;flex-shrink:0;margin-top:3px;accent-color:var(--green)}.submit-row{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:24px}.muted,small{color:var(--muted)}.alert{padding:18px 24px;background:#e1efd9;border:1px solid #bfcead;border-radius:12px}.error{background:#fff0e7;border-color:#e8b394}.page-intro{padding:24px 0}.seat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px;margin:24px 0}.seat{background:var(--paper);border-radius:10px;padding:12px;display:flex;flex-direction:column;text-align:center;font-size:12px}.seat strong{font-size:26px;line-height:1.4}.search{display:flex;align-items:end;gap:12px}.search label{flex:1;margin:0}.guest{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);break-inside:avoid}.guest span,.guest small{display:block;overflow-wrap:anywhere}.guest form{display:flex;align-items:center;gap:10px}.slot-heading{border-bottom:1px solid var(--line);padding-bottom:8px;margin-top:30px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.event-links{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0}.event-links div{display:flex;gap:12px;align-items:center;background:var(--paper);padding:12px;border-radius:10px}details{margin:20px 0;border-top:1px solid var(--line);padding-top:18px}summary{cursor:pointer;font-weight:700;min-height:44px}.slot-editor{max-height:500px;overflow:auto}.links{display:flex;gap:20px;margin-top:18px}footer{text-align:center;padding:35px 20px;color:var(--muted);font-size:12px}.empty{padding:24px;background:var(--paper);border-radius:10px}.confirmation{text-align:center}.confirmation form{margin:20px 0}@media(max-width:650px){.top{padding:18px 20px;align-items:start}nav{justify-content:end}.badge{font-size:10px}main{padding:0 16px}.hero{grid-template-columns:1fr}.hero-copy{padding:28px 24px}.hero img{min-height:0;height:210px}.card{padding:22px 18px}.section-head{align-items:start;flex-direction:column}.guest{gap:10px}.guest form{flex-direction:column}.search{align-items:end}.search button{padding:10px 14px}.submit-row button{width:100%}}@media print{body{background:white}.top,footer,.event-links,details,.section-head button,.alert{display:none!important}main{max-width:none;padding:0}.card{display:none;border:0;box-shadow:none;padding:0}.card.print-target{display:block}.card.print-target .paid-list{display:block}.page-intro{display:none}.guest{font-size:12px}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: manager login must occupy the top-right corner. */
.admin .top nav{order:-1;justify-content:flex-start}
/* Engine: Codex/gpt-6.1-sol, 2026-10-12: visually distinct demo accounts and wrapping identifiers remain readable on phones. */
.demo-user{background:#f1e8ff;border:2px solid #a078ca}.demo-legend{background:#f1e8ff;border-radius:12px;padding:14px;color:#563473}.user-row span{overflow-wrap:anywhere}.user-row>div{min-width:0}.user-row form{flex-shrink:0}

.brand-icon{width:38px;height:38px;float:right;margin-left:10px;border-radius:9px}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: expanded day lists remain visible in their dedicated print view. */
@media print{.slot-dashboard.print-target details.slot-panel{display:block!important}.slot-dashboard.print-target>[data-print]{display:none!important}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: mail request confirmation is a prominent mobile-first RTL page, with secondary actions. */
.mail-confirmation{max-width:720px;margin:48px auto;text-align:center;padding:40px 28px}.mail-icon{font-size:86px;line-height:1.2;color:var(--green)}.mail-confirmation h1{font-size:clamp(28px,5vw,42px);line-height:1.3;margin:20px 0}.mail-confirm-hero{font-size:clamp(20px,3vw,26px);line-height:1.7;margin:20px auto;max-width:580px}.spam-hint{display:inline-block;background:#fff0bf;border-radius:10px;padding:10px 20px;font-size:20px;font-weight:bold}.mail-confirm-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:28px}.mail-confirm-actions .button{font-size:16px}@media(max-width:650px){.mail-confirmation{margin:24px auto;padding:30px 20px}.mail-confirm-actions{flex-direction:column}.mail-icon{font-size:72px}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task125 positional source tables scroll locally instead of widening the phone viewport. */
.source-scroll{overflow-x:auto;max-width:100%}.source-scroll table{border-collapse:collapse;min-width:720px}.source-scroll th,.source-scroll td{padding:10px;border-bottom:1px solid #ddd;text-align:right;vertical-align:top;max-width:280px;overflow-wrap:anywhere}dl dt{font-weight:bold}dl dd{margin:0 0 8px}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task125 makes project names unmistakable and keeps edit actions within each RTL card. */
.project-name{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin:6px 0 18px;overflow-wrap:anywhere}dialog{border:0;border-radius:20px;max-width:calc(100vw - 40px);padding:28px;color:#25352b}dialog::backdrop{background:#0006}
/* Engine: Codex/gpt-6.1-sol, 2026-10-12: wide registrant reports scroll on phones and fit print/PDF pages. */
.report-scroll{overflow-x:auto} .report-scroll table{border-collapse:collapse;width:100%;font-size:12px}.report-scroll th,.report-scroll td{padding:8px;border:1px solid #ccd3c9;text-align:right;overflow-wrap:anywhere}
@media print{.report-scroll{overflow:visible}.report-scroll table{font-size:9px} .report-scroll th,.report-scroll td{padding:3px}button{display:none!important}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task130 keyboard-friendly calendar chips and RTL tenant hierarchy remain usable on mobile. */
[hidden]{display:none!important}.calendar-editor{padding:1rem;border:1px solid #d5e1db;border-radius:14px}.chip{margin:.25rem;padding:.5rem .8rem;background:#e6efed;color:#19454f;direction:ltr}.check input{width:24px!important;height:24px!important;min-width:24px}.guest-count,[type=date],[type=time],[type=datetime-local]{direction:ltr;text-align:right}.grow-secret{direction:ltr}.grow-status{padding:.75rem;background:#edf3f1;border-radius:10px}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: QA one-time links wrap at mobile widths instead of widening the mail log. */
.qa-mail .card { overflow-wrap: anywhere; }

/* Engine: grok, 2026-10-12: task163 Omer colours as variables, and a fixed bar at most two lines tall on a phone. */
:root{--primary:#10609d;--deep:#044060;--soft:#fff9c7;--accent:#997c34;--detail:#694f00;--white:#ffffff;--ink:var(--deep);--paper:var(--soft);--muted:var(--detail);--green:var(--primary);--orange:var(--accent);--line:#e4d7a4}
body{background:var(--paper);color:var(--ink);padding-top:72px}a{color:var(--primary)}button,.button{background:var(--primary);border-color:var(--primary);color:var(--white)}.light{color:var(--primary);background:transparent}.card,dialog{background:var(--white);color:var(--ink)}
header.top{position:fixed;top:0;inset-inline:0;z-index:40;width:100%;max-width:none;margin:0;padding:4px 12px;background:var(--white);box-shadow:0 1px 0 #04406022;align-items:center;min-height:56px}
.brand{display:flex;align-items:center;gap:8px;font-size:15px;line-height:1.1;min-width:0;white-space:nowrap;overflow:hidden}.brand span{display:inline;margin:0 0 0 6px;font-size:12px;color:var(--detail)}
.brand-icon{float:none;width:auto;height:48px;max-width:230px;margin:0;border-radius:0;object-fit:contain;background:transparent}
header.top nav a,header.top nav span{font-size:13px;line-height:1.2}header.top .badge,header.top nav .small,header.top summary{min-height:28px;padding:2px 8px;line-height:1.2}
@media(max-width:650px){body{padding-top:84px}header.top{flex-wrap:wrap;align-items:center;row-gap:0;padding:2px 8px;min-height:52px;max-height:80px;overflow:hidden}.admin .top nav{order:1;justify-content:flex-start}header.top .brand{order:0;flex:1 1 auto;max-width:100%;height:48px}header.top .brand span{display:none}header.top nav{order:1;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;gap:8px;max-height:28px;justify-content:flex-start}}
@media print{body{padding-top:0!important}header.top{position:static;max-height:none}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task170 gives the 48px Omer logo its full row while preserving two compact mobile rows. */

input,select,textarea,button{font-family:'Heebo','Calibri Light',Calibri,system-ui,sans-serif}

/* Engine: task172, 2026-10-12: customer start — pulsing order bar, friendlier step circles, next-field guide. */
#registration,#day{scroll-margin-top:96px}
.order-now{position:fixed;z-index:60;inset-inline:16px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:center;background:#10609d;color:#fff;border:0;border-radius:999px;min-height:54px;padding:12px 22px;font-size:18px;font-weight:800;box-shadow:0 8px 22px rgba(16,96,157,.35);animation:task172-order-pulse 1.8s ease-in-out infinite}
body.has-order-now{padding-bottom:88px}
@keyframes task172-order-pulse{0%,100%{transform:scale(1);box-shadow:0 6px 16px rgba(16,96,157,.28)}50%{transform:scale(1.045);box-shadow:0 12px 28px rgba(16,96,157,.55)}}
/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task221 removes superseded progress-card and circle styles. */
#registration input.next,#registration select.next,#registration textarea.next{border:2px solid #10609d;box-shadow:0 0 0 4px rgba(16,96,157,.18),0 0 16px rgba(16,96,157,.25);animation:task172-next-pulse 1.6s ease-in-out infinite}
#registration input[type=checkbox].next{outline:2px solid #10609d;outline-offset:3px}
@keyframes task172-next-pulse{0%,100%{box-shadow:0 0 0 3px rgba(16,96,157,.16),0 0 8px rgba(16,96,157,.16)}50%{box-shadow:0 0 0 7px rgba(16,96,157,.28),0 0 18px rgba(16,96,157,.34)}}
@media(prefers-reduced-motion:reduce){.order-now,#registration input.next,#registration select.next,#registration textarea.next,#registration .step-circles li.pop{animation:none}}
/* Engine: Codex/gpt-6-luna, 2026-10-20: make server-invalid fields visible while respecting reduced-motion preferences. */
#registration .registration-invalid{outline:3px solid #b42318!important;outline-offset:2px;border-color:#b42318!important;animation:registration-invalid-shake .28s ease-in-out 2}
/* Engine: Codex/gpt-6-luna, 2026-10-22: match next-field selector weight and include visible picker containers in invalid feedback. */
#registration input.registration-invalid,#registration select.registration-invalid,#registration textarea.registration-invalid,#registration .day-tiles.registration-invalid,#registration .round-tiles.registration-invalid,#registration .guest-tiles.registration-invalid{animation:registration-invalid-shake .28s ease-in-out 2!important}
/* Engine: Codex/gpt-6-luna, 2026-10-22: render validation hints over adjacent whitespace so feedback never shifts the form. */
#registration .registration-hint-anchor{position:relative}#registration .registration-invalid-hint{position:absolute;top:100%;right:0;z-index:8;display:block;width:max-content;max-width:min(90vw,28rem);padding:2px 6px;border-radius:4px;background:#fff;color:#b42318;font-size:12px;line-height:1.35;box-shadow:0 1px 3px #0002;pointer-events:none}
#registration .registration-invalid-hint{color:#b42318;font-weight:600;margin:.35rem 0 0}
#registration input[type=checkbox].registration-invalid{box-shadow:0 0 0 3px #b42318!important}
@keyframes registration-invalid-shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){#registration .registration-invalid.registration-invalid,#registration .day-tiles.registration-invalid.registration-invalid,#registration .round-tiles.registration-invalid.registration-invalid,#registration .guest-tiles.registration-invalid.registration-invalid,#registration input.registration-invalid,#registration select.registration-invalid,#registration textarea.registration-invalid{animation:none!important;transform:none!important}html:has(#registration){scroll-behavior:auto!important}}
@media print{.order-now{display:none!important}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task183 phone-first one-line roster; contact/picker overlays preserve row geometry. */
.worker-slot{margin:14px 0;border:1px solid #d5e2ec;border-radius:14px;padding:10px;overflow:visible}.worker-slot>summary{font-weight:700;cursor:pointer}.worker-free{display:block;font-size:13px;color:#10609d;margin:6px 0}.worker-roster{margin:10px -6px}.worker-row{display:flex;align-items:center;gap:5px;height:48px;padding:4px 6px;position:relative}.worker-row:nth-child(even){background:#edf4f9}.worker-name{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.worker-row form.worker-arrival{display:flex;gap:3px;margin:0}.worker-arrival button{width:34px;height:34px;min-width:34px;padding:0;border-radius:9px;font-size:22px;background:white;color:#506879;border:1px solid #b9cad7}.worker-arrival .arrival-yes.selected{background:#10609d;color:white}.worker-arrival .arrival-no.selected{background:#fff1ef;color:#a63831;border-color:#ce6b62}.worker-more>summary{font-size:9px;white-space:nowrap;cursor:pointer;list-style:none}.worker-seat>summary{cursor:pointer;list-style:none;font-size:17px;color:#10609d;padding:5px}.worker-more,.worker-seat{position:relative}.worker-popover{position:absolute;z-index:30;left:0;top:36px;width:250px;max-width:calc(100vw - 50px);background:white;border:2px solid #10609d;border-radius:14px;padding:12px;box-shadow:0 8px 24px #04406033;text-align:right}.worker-more .worker-popover{left:-35px}.worker-popover p{margin:5px 0;overflow-wrap:anywhere}.table-options{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-height:180px;overflow:auto;padding:4px;margin-bottom:10px}.table-options label{display:block;position:relative;margin:0;cursor:pointer}.table-options input{position:absolute;opacity:0;width:1px;height:1px}.table-options span{display:grid;place-items:center;height:35px;background:#edf4f9;border:1px solid #b9cad7;border-radius:8px;color:#044060;font-weight:700}.table-options input:checked+span{background:#10609d;color:white;border-color:#044060}.table-options input:focus-visible+span{outline:2px solid #997c34}.worker-popover button{padding:7px 10px;font-size:12px;margin:3px}.worker-tables{display:grid;grid-template-columns:1fr;gap:18px;margin:20px 0}.worker-table{position:relative;border:2px solid #10609d;border-radius:14px;padding:10px 12px;background:#fffdf1}.worker-table h4{margin:0 0 8px}.seated-badge{position:absolute;top:-13px;left:12px;min-width:32px;height:28px;padding:0 7px;display:grid;place-items:center;border-radius:9px;background:#10609d;color:white;font-size:19px;font-weight:800;border:2px solid white}.table-guest{display:flex;align-items:center;gap:6px;height:34px;font-size:13px}.table-guest>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.worker-walkin{font-size:13px;border-top:1px solid #d5e2ec;padding-top:10px}.worker-walkin>summary,.walkin-picker>summary{cursor:pointer;color:#10609d;font-weight:700}.worker-walkin form{margin-top:10px;display:grid;gap:8px}.worker-walkin input{padding:8px}.walkin-picker{background:#edf4f9;padding:10px;border-radius:12px}@media(min-width:650px){.worker-tables{grid-template-columns:repeat(2,1fr)}.worker-more>summary{font-size:11px}}
/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task183 reset inherited disclosure spacing so overlays cannot cover their own toggle. */
.worker-more,.worker-seat{margin:0;padding:0;border:0;flex-shrink:0}.worker-more>summary,.worker-seat>summary{min-height:28px;display:flex;align-items:center}.worker-popover{top:calc(100% + 5px)}.worker-arrival button{min-height:34px}.table-options input{min-height:0;padding:0}.worker-row{z-index:auto}.worker-row:has(details[open]),.table-guest:has(details[open]){position:relative;z-index:31}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task191 one-line header at 320px; dropdown escapes header instead of adding a second row. */
body{padding-top:60px}header.top{height:56px;min-height:56px;max-height:none;flex-wrap:nowrap;overflow:visible;gap:8px;padding:4px 12px;align-items:center}
header.top .brand{order:0;flex:1 1 auto;max-width:calc(100% - 52px);height:48px;overflow:hidden;white-space:nowrap}
header.top .brand-icon{height:48px;width:auto;max-width:142px;flex:0 0 auto}header.top .brand-label{display:inline;font-size:14px;margin:0;color:var(--deep)}
.admin header.top .brand-icon,.w header.top .brand-icon{height:34px;max-width:100px}
header.top nav,.admin .top nav{order:1;flex:0 0 44px;flex-wrap:nowrap;overflow:visible;max-height:none;justify-content:flex-end}
header.top .top-menu{position:relative;margin:0;padding:0;border:0}
header.top .top-menu>summary{display:flex;align-items:center;justify-content:center;list-style:none;width:44px;height:44px;min-height:44px;padding:0;font-size:25px;color:var(--primary);border:1px solid var(--line);border-radius:10px}
header.top .top-menu>summary::-webkit-details-marker{display:none}
header.top .top-menu-panel{position:absolute;inset-inline-end:0;top:48px;width:min(260px,calc(100vw - 24px));padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px #04406026;max-height:calc(100dvh - 72px);overflow-y:auto}
header.top .top-menu-panel>a,header.top .top-menu-panel>span,header.top .top-menu-panel button{display:flex;width:100%;align-items:center;min-height:44px;padding:10px 12px;font-size:15px;line-height:1.3;border-radius:8px;text-decoration:none;white-space:normal}
header.top .top-menu-panel .menu-user{color:var(--detail);border-bottom:1px solid var(--line);font-weight:700;overflow-wrap:anywhere}
.menu-divider{display:flex;align-items:center;gap:8px;margin:5px 8px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}.menu-divider:before,.menu-divider:after{content:"";height:1px;flex:1;background:var(--line)}
/* Engine: Codex/gpt-6-luna, 2026-10-13: task298 makes the super-admin menu boundary clear without exposing extra navigation to regular managers. */
header.top .top-menu-panel a[aria-current="page"]{background:var(--soft);color:var(--primary);font-weight:800;box-shadow:inset -3px 0 var(--primary)}
header.top .top-menu-panel form{margin:4px 0 0}header.top .top-menu-panel button{justify-content:flex-start;background:transparent;color:var(--primary);border:0}
header.top .menu-unavailable{color:var(--muted)}[data-share-feedback]{font-size:12px;color:var(--deep);overflow-wrap:anywhere}
@media(max-width:650px){header.top{flex-wrap:nowrap;max-height:none;padding:4px 8px}header.top .brand{height:48px;max-width:calc(100% - 52px)}header.top .brand-label{display:inline}header.top nav{flex:0 0 44px;overflow:visible;max-height:none}}
@media print{header.top{display:none!important}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-12: task192 phone-first event/attendee density, bounded contact popovers and list-only creation. */
.admin-events{margin:12px 0}.admin-event-period{margin:16px 0 0;padding:7px 4px;text-align:center;font-size:13px;font-weight:700;line-height:1.3;color:var(--deep,#044060);background:#e8f1f7;border-block:1px solid #d1e0e9}.admin-event-row{display:flex;align-items:center;gap:6px;padding:10px 8px;min-height:58px;border-bottom:1px solid #dbe6ee;background:#fff}.admin-event-row:nth-child(even){background:#eef5fa}.admin-event-copy{min-width:0;flex:1}.admin-event-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:700;color:var(--deep,#044060);text-decoration:none}.admin-event-counts{display:block;white-space:nowrap;font-size:11px;color:#344b60}.admin-event-actions{display:flex;gap:2px;flex:none}.icon-action,.admin-event-actions button.icon-action{display:inline-flex;align-items:center;justify-content:center;width:30px;height:32px;min-height:0;padding:0;border:1px solid #d2e1eb;border-radius:8px;background:#fff;color:#10609d;text-decoration:none;font-size:18px;line-height:1}.admin-attendee-section{padding:4px 0}.roster-heading{display:flex;align-items:center;gap:8px}.roster-heading h1{margin:0;font-size:19px}.roster-counts{font-size:13px;margin:10px 0}.attendee-row{display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 8px;background:#fff;border-bottom:1px solid #dbe6ee;position:relative}.attendee-row:nth-child(even){background:#edf4fa}.attendee-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.attendee-diners{white-space:nowrap;font-size:13px}.attendee-status{white-space:nowrap;font-size:10px;border-radius:20px;padding:3px 7px;background:#dcefe6;color:#21503c}.attendee-status.unpaid{background:#fbe2e2;color:#9c2525}.is-unpaid .attendee-row{background:#fff1f1;border-color:#eed2d2}.is-unpaid .attendee-row:nth-child(even){background:#fce6e6}.unpaid-heading{font-size:15px;color:#9c2525;margin:18px 0 8px}.attendee-contact,.attendee-notes{margin:0;padding:0;border:0;position:static;background:transparent}.attendee-contact>summary,.attendee-notes>summary{display:flex;align-items:center;justify-content:center;list-style:none;padding:0;width:28px;height:30px;min-height:0;border:1px solid #c9dce8;border-radius:7px;position:static!important;font-size:17px;cursor:pointer;background:#fff}.attendee-contact-choice,.attendee-notes>div{position:absolute;z-index:20;top:40px;left:8px;width:240px;max-width:calc(100vw - 48px);padding:14px;background:#fff;border:1px solid #b8d0e1;box-shadow:0 8px 24px #04406030;border-radius:14px}.attendee-contact-choice strong{display:block}.attendee-contact-choice a{display:block;padding:12px;margin-top:6px;background:#edf5fa;border-radius:8px}.event-create>summary{position:fixed!important;bottom:22px;left:18px;z-index:35;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:50%;background:#10609d;color:white;font-size:30px;box-shadow:0 4px 12px #04406040;list-style:none}.event-create{margin:0;padding:0;border:0}.event-create-panel{position:fixed;z-index:34;bottom:80px;left:16px;right:16px;max-width:620px;max-height:75vh;overflow:auto;box-shadow:0 8px 30px #04406040}.admin-source-bottom{margin-top:24px!important;margin-bottom:86px!important}.report-scroll tbody tr:nth-child(even){background:#eef5fa}.report-scroll tbody tr.report-unpaid{background:#fff0f0}/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task298 lets compact manager event rows reach both mobile viewport edges. */
@media(max-width:650px){.admin-events.event-overview{width:calc(100% + 32px);margin-inline:-16px}}
@media(max-width:420px){.admin-event-period{margin-top:12px;padding:6px 2px;font-size:12px}.admin-event-row{padding:8px 4px}.admin-event-counts{font-size:10.5px}.admin-event-actions{gap:1px}.icon-action,.admin-event-actions button.icon-action{width:27px}.attendee-row{gap:4px;padding:6px 4px}}@media print{.admin-event-actions,.attendee-contact,.attendee-notes,.event-create{display:none!important}}

.admin-list-intro h1{font-size:22px;margin:12px 0}.admin-list-intro{padding:0}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task204 shows touch feedback immediately and keeps compact attendee controls tappable. */
button:active,.button:active,summary:active,[role="button"]:active,.is-pressed{filter:brightness(.82);box-shadow:inset 0 0 0 2px #10609d;transform:translateY(1px)}
button[aria-busy="true"],.button[aria-busy="true"]{opacity:.7;cursor:progress;pointer-events:none}
button[aria-busy="true"]::after{content:" ◌";display:inline-block;animation:button-spin 1s linear infinite}
@keyframes button-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){button[aria-busy="true"]::after{animation:none}}
.attendee-contact>summary{width:auto;min-width:120px;min-height:44px;padding:6px 10px;font-size:13px;font-weight:700}
.attendee-contact-choice{top:48px;max-height:70vh;overflow:auto}.attendee-contact-choice p{margin:8px 0;font-size:13px}
.attendee-contact-choice button,.attendee-contact-choice a{min-height:44px;width:100%;text-align:center}
.attendee-contact-choice form{margin-top:12px}.attendee-cancel{background:#9c2525;color:white}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task204 share-result text must not widen the compact event action strip. */
.admin-event-row{position:relative}.admin-event-actions [data-share-feedback]{position:absolute;top:100%;left:8px;right:8px;z-index:21;background:#fff;padding:8px;border-radius:8px;box-shadow:0 4px 12px #04406030;font-size:12px}.admin-event-actions [data-share-feedback]:empty{display:none}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task205 expanded options remain inside the roster flow instead of hiding subsequent names. */
.attendee-row{flex-wrap:wrap;align-items:center}.attendee-contact{display:contents}.attendee-contact>summary{flex:none}.attendee-contact[open]>.attendee-contact-choice{position:static;flex-basis:100%;width:100%;max-width:100%;max-height:none;margin:6px 0 2px;box-shadow:none}.attendee-contact-choice a{overflow-wrap:anywhere}.attendee-row:has(.attendee-contact[open]){padding-bottom:10px}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task205 mobile cancellation offers equally visible back/confirm buttons. */
#participation-confirm{width:min(360px,calc(100vw - 36px));padding:22px;border:1px solid #b8d0e1;border-radius:16px;color:#044060;box-sizing:border-box}#participation-confirm h2{font-size:20px;margin:0 0 20px}.participation-confirm-actions{display:flex;gap:10px}.participation-confirm-actions button{flex:1;min-height:44px}#participation-confirm::backdrop{background:#04406080}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task221 puts registration fields before the large event artwork on customer form pages. */
.e main:has(#registration){display:flex;flex-direction:column}/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task292 restores brief-first reading; prior form-first order contradicted Omer feedback. */
.e main:has(#registration)>.hero{order:0}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task222 reserves one RTL row for equal-height auth actions, wrapping only on very narrow screens. */
.auth-actions{display:flex;direction:rtl;align-items:stretch;gap:12px;margin-top:18px;flex-wrap:nowrap}.auth-actions>button,.auth-actions>.button{flex:1 1 0;min-width:0;min-height:48px;padding:10px 12px;text-align:center}.auth-recovery{font-size:14px;margin-top:12px}@media(max-width:319px){.auth-actions{flex-wrap:wrap}.auth-actions>button,.auth-actions>.button{flex-basis:100%}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task231 reserves separate 44px back/menu targets inside the unchanged 56px header. */
header.top .site-back,.report-toolbar .site-back{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--primary);cursor:pointer}
header.top .site-back{order:1;margin-inline-start:auto}header.top nav,.admin header.top nav{order:2}header.top:has(.site-back:not([hidden])) .brand{max-width:calc(100% - 104px)}header.top .site-back[hidden],.report-toolbar .site-back[hidden]{display:none!important}.report-actions .site-back{order:2}.site-back-only{justify-content:flex-end}
@media print{.site-back,.site-back-only{display:none!important}}
/* Engine: Codex/gpt-6.1-sol, 2026-10-13: calm mobile-first guided manager flow keeps the single save action within thumb reach. */
.event-editor{--event-ink:#263a31;max-width:760px;margin:14px auto 112px;color:var(--event-ink)}.event-editor-top{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px}.event-editor-back{min-height:40px;padding:6px 13px;text-decoration:none;border:1px solid var(--line);border-radius:10px}.event-progress{display:flex;gap:5px}.event-progress i{display:block;width:26px;height:4px;border-radius:9px;background:#dce3d9}.event-progress i.active{background:#b75d39}.event-step{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(18px,4vw,30px);box-shadow:0 8px 30px #253a3108}.event-step-kicker{font-size:12px;font-weight:700;color:#a75234;margin:0 0 6px}.event-step h2{margin-bottom:8px}.event-hint{color:var(--muted);margin:4px 0 18px}.event-cover-field{padding:12px 14px;background:#f8f8f4;border:1px dashed #bac8ba;border-radius:12px}.event-cover-field small{font-weight:400}.event-secondary-fields{margin:6px 0}.guided-event-form label{min-width:0}.guided-event-form textarea{min-height:82px}.event-next,.event-step-actions .event-next{margin-top:8px;width:100%}.event-step-actions{display:flex;gap:10px;margin-top:18px}.event-step-actions button{flex:1}.event-calendar{padding:14px;background:#fbfcf9;border:1px solid #e0e7de;border-radius:16px}.calendar-month{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calendar-month button{width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;font-size:22px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;direction:rtl}.calendar-weekday,.calendar-blank{height:24px;text-align:center;font-size:12px;color:var(--muted)}.calendar-weekday{font-weight:700}.calendar-day{min-height:44px;height:44px;padding:0;border-radius:12px;background:transparent;border:1px solid transparent;color:var(--event-ink);font-weight:500}.calendar-day.selected{background:#284f3d;color:#fff;border-color:#284f3d;box-shadow:0 2px 5px #284f3d30}.calendar-day:focus-visible,.calendar-month button:focus-visible{outline:3px solid #b75d39;outline-offset:2px}.event-days-list{display:grid;gap:12px;margin-top:14px}.event-day-card{padding:14px;background:#fbfcf9;border:1px solid #dce5dc;border-radius:16px}.event-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.event-day-head h3{margin:0;font-size:16px}.event-day-head button{font-size:12px;padding:6px 9px}.event-empty-day{margin:8px 0;color:var(--muted);font-size:13px}.event-slot-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:11px 0;border-top:1px solid #e6ebe4}.event-slot-row>div>label{font-size:12px;margin:0 0 4px}.event-slot-row select,.event-slot-row input{height:44px;min-height:44px;padding:6px 9px;font-variant-numeric:tabular-nums;direction:ltr;text-align:center;background:#fff}.event-slot-row.overlap select{border-color:#c23d38;background:#fff1ef}.event-slot-actions{grid-column:1/-1;display:flex;justify-content:flex-start;gap:8px}.event-slot-actions button{min-height:38px}.event-slot-delete{color:#8b342b!important;border-color:#e4c5c1!important}.event-add-slot{width:100%;margin-top:10px;min-height:46px;background:#edf4ee;color:#284f3d;border-color:#ceddce}.event-inline-error{padding:10px 12px;margin:12px 0 0;background:#fff0ed;color:#873229;border:1px solid #edc1bb;border-radius:10px;font-size:14px}.event-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.event-summary>div{padding:14px;background:#f5f7f1;border:1px solid #e2e8dd;border-radius:14px}.event-summary strong,.event-summary span{display:block}.event-summary strong{font-size:21px;line-height:1.25}.event-summary span{font-size:12px;color:var(--muted);margin-top:4px}.event-save{position:fixed;z-index:38;bottom:max(14px,env(safe-area-inset-bottom));left:max(14px,env(safe-area-inset-left));width:min(240px,calc(100vw - 28px));min-height:54px;box-shadow:0 5px 20px #20372a40}.event-create-link{position:fixed;z-index:35;bottom:22px;left:18px;display:flex;align-items:center;gap:8px;min-height:50px;padding:8px 18px;border-radius:28px;background:#284f3d;color:#fff;text-decoration:none;font-weight:700;box-shadow:0 4px 12px #253a3140}.event-create-link span{font-size:25px}.event-saved-card{position:fixed;z-index:39;bottom:78px;left:max(14px,env(safe-area-inset-left));display:flex;align-items:center;gap:8px;max-width:calc(100vw - 28px);padding:10px;background:#fff;border:1px solid #dbe5d9;border-radius:14px;box-shadow:0 4px 20px #20372a22}.event-saved-card strong{font-size:13px}.event-saved-card .button,.event-saved-card button{min-height:40px;padding:6px 10px;font-size:12px;white-space:nowrap}.event-editor [hidden]{display:none!important}@media(max-width:520px){.event-editor{margin:8px 0 100px}.event-step{padding:18px 14px;border-radius:15px}.event-calendar{padding:10px}.calendar-grid{gap:2px}.calendar-day{height:44px;min-height:44px;font-size:14px}.event-day-head{align-items:flex-start;flex-direction:column}.event-day-head button{width:100%}.event-slot-row{grid-template-columns:1fr 1fr;gap:5px}.event-slot-row>div:nth-child(3){grid-column:1/-1}.event-slot-row input{direction:ltr}.event-step-actions button{padding:8px}.event-summary{gap:7px}.event-summary>div{padding:11px}.event-save{width:calc(100vw - 28px);left:14px}.event-saved-card{left:14px;right:14px;justify-content:space-between}.event-saved-card strong{display:none}.event-create-link{bottom:18px;left:14px}}
.event-file-action{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:4px;padding:7px 14px;border:1px solid #d6e0d2;border-radius:10px;background:#fff;color:#284f3d;font-weight:700}.event-file-action input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.event-file-action:focus-within{outline:3px solid #a9bb95;outline-offset:2px}.event-cover-field small[data-cover-name]{font-weight:700;color:var(--ink)}.event-extra-details{margin:12px 0;padding-top:10px}.event-extra-details summary{color:var(--green)}.event-summary>div:nth-child(3) span{font-size:12px}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: the saved state names the result and clears the thumb-space for its next links. */
.event-save[hidden]{display:none!important}
.event-saved-card .event-saved-title{display:block}
@media(max-width:520px){.event-saved-card{display:grid;grid-template-columns:1fr 1fr}.event-saved-card .event-saved-title{display:block;grid-column:1/-1;text-align:center}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task237 protects count chips while long names yield mobile row space. */
.diner-chip{flex:0 0 auto;white-space:nowrap;font-size:12px;font-weight:800;line-height:20px;padding:1px 6px;border-radius:7px;background:#e1edf7;color:#044060}
.attendee-row{min-height:44px;gap:5px}.attendee-row:not(:has(.attendee-contact[open])){height:44px;padding-top:0;padding-bottom:0;border-bottom:0;box-shadow:inset 0 -1px #dbe6ee}.attendee-row>.attendee-name{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendee-row>.attendee-contact>summary{white-space:nowrap}
.worker-row>.diner-chip{font-size:11px;padding:1px 4px}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task265 removes desktop signup width caps only; mobile and event/account screens retain their layout. */
@media(min-width:651px){body.signup main{max-width:none;width:100%;padding:0}body.signup main>.card.narrow{max-width:none;width:100%;padding:30px 0;border:0;border-radius:0}body.signup main>.card.narrow>h1,body.signup main>.card.narrow>p{margin-inline:30px}body.signup main>.card.narrow>form{width:100%;max-width:none}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task265 pins signup progress to the viewport top above the fixed header, without changing event progress. */
body.signup .booking-progress-thin{top:0;z-index:60}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task280 uses shrinkable name/email columns and fixed actions so even 390px project rows never wrap. */
.projects-panel{padding:12px;margin-block:12px}
.projects-panel>h2{font-size:20px;margin-bottom:8px}
#projects-grid{grid-template-columns:minmax(0,1fr);gap:6px;margin:10px 0 0}
#projects-grid>.project-row{display:flex;align-items:center;gap:8px;min-width:0;min-height:56px;margin:0;padding:5px 8px;border-radius:8px;box-shadow:none}
#projects-grid .project-name{flex:1 1 35%;min-width:0;font-size:16px;line-height:22px;font-weight:800;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#projects-grid .project-emails{flex:1 1 30%;min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden;font-size:11px;line-height:18px;white-space:nowrap;color:var(--muted)}
#projects-grid .project-emails span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#projects-grid .project-actions{display:flex;align-items:center;flex:0 0 auto;gap:6px;margin:0}
#projects-grid .project-actions>.button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:4px 8px;font-size:13px;line-height:20px;white-space:nowrap}
#projects-grid .project-actions>.project-edit{width:44px;padding:0;font-size:23px}
.manager-auth .auth-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.manager-auth .auth-actions>.button{font-size:14px;white-space:nowrap}
.manager-auth #manager-signup>.card{max-width:none;border:0;box-shadow:none;padding:0;margin-top:0;margin-bottom:24px}
/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task280 preserves the accumulated full-width signup and viewport-top progress requirements inside canonical manager auth. */
body:has(.auth-signup) main{max-width:none;width:100%;padding:0}
.manager-auth.auth-signup{max-width:none;width:100%;padding:16px;border:0;border-radius:0;margin:0}
body:has(.auth-signup) .booking-progress-thin{top:0;z-index:60}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task288 overrides mobile search spacing only for admin controls so each fits a single compact row. */
.search.compact-search{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin:10px 0;min-width:0}
.search.compact-search>input{flex:1 1 0;min-width:0;width:0;min-height:40px;height:40px;padding:7px 10px;font-size:14px}
.search.compact-search>.search-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:0;border-radius:8px}
.search.compact-search>.search-icon svg{display:block;flex:none;pointer-events:none}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task292 distinctly marks manager-only controls and keeps ten payment URL fields inside mobile width. */
.manager-only-event{background:#eef2ff;border:3px solid #7047b8}
.manager-only-badge{display:inline-block;background:#7047b8;color:#fff;font-size:24px;padding:8px 18px;border-radius:12px}
.event-payment-links{min-width:0;margin:18px 0;padding:16px;border:1px solid #10609d;border-radius:12px}
.event-payment-links input{max-width:100%;min-width:0}
.event-terms p,.event-source-description{white-space:normal;overflow-wrap:anywhere}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task294 keeps the bell right of the leftmost hamburger in RTL and fits narrow screens. */
.top nav{display:flex;align-items:center;gap:10px}.request-bell{position:relative}.request-bell>summary{list-style:none;cursor:pointer;position:relative;font-size:24px;padding:8px}.request-bell>summary::-webkit-details-marker{display:none}.request-badge{position:absolute;top:0;right:0;border-radius:99px;background:#a12e32;color:white;font-size:11px;min-width:18px;text-align:center;padding:2px}.request-dropdown{position:absolute;left:0;top:100%;width:min(310px,calc(100vw - 32px));background:#fff;border:1px solid #dccb93;border-radius:12px;padding:12px;box-shadow:0 8px 22px #0002;z-index:80;max-height:65vh;overflow:auto}.request-dropdown a{display:block;padding:9px 0;border-bottom:1px solid #eee;white-space:normal}.change-request{padding:12px 0;border-bottom:1px solid #ddd;overflow-wrap:anywhere}.change-request p{margin:6px 0}.request-confirmation{border:2px solid #10609d;border-radius:12px;padding:18px}.request-history{margin:18px 0}.change-request form{margin:10px 0}.change-request button{max-width:100%}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task297 physical-left close and equal header controls prevent RTL/mobile drift. */
.project-editor-card{position:relative}.project-editor-card>h2{padding-left:44px}.project-editor-close{position:absolute;left:10px;top:10px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:36px;padding:0;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--primary);font-size:26px;line-height:1}
header.top .request-bell{margin:0;padding:0;border:0;background:transparent;box-shadow:none;align-self:center}
header.top .request-bell>summary,header.top .top-menu>summary,header.top .site-back{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--primary);line-height:1;box-shadow:none}
header.top .request-bell>summary:hover,header.top .top-menu>summary:hover,header.top .site-back:hover,.project-editor-close:hover{background:var(--paper,#fff9c7)}
header.top .request-bell>summary::before,header.top .request-bell>summary::after{content:none}
.request-badge,.request-clear{position:absolute;top:-5px;right:-5px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:20px;height:20px;min-width:20px;padding:0;border-radius:50%;border:2px solid white;font-size:11px;line-height:1;background:#dc2626;color:white}
.request-clear{background:#16803c;font-size:12px}.developer-mail-status{font-size:12px;margin-top:10px}.developer-mail-status>summary{cursor:pointer}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task297 contact/share remain compact and the developer setting stays bounded on phones. */
.footer-contact-actions,.footer-share-options{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.developer-mail-status form{max-width:340px;margin:12px auto;text-align:right}#event-share-dialog{width:min(420px,calc(100vw - 32px))}#event-share-dialog input{margin-bottom:12px}footer .footer-contact-actions button{margin:0}

/* Engine: Codex/gpt-6-luna, 2026-10-13: task370 visibly marks restored schedule choices that need re-picking. */
.draft-needs-repick{outline:3px solid #f59e0b!important;scroll-margin-top:2rem}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task505 restores CSP-blocked footer presentation and reserves touch targets in normal flow. */
.footer-selectable-email{user-select:text;overflow-wrap:anywhere}
.founder-credit{font-size:12px;line-height:1.8;color:#777;margin:16px 8px 8px;padding-bottom:calc(80px + env(safe-area-inset-bottom));overflow-wrap:anywhere}
footer a,.footer-credit-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
.founder-credit .footer-credit-link{color:inherit;white-space:nowrap}
footer .small{min-height:44px}
a[href$="/forgot"]{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
label.check{min-height:44px}
/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task531 intrinsic sizing fixes manager mobile overflow instead of clipping content. */
body.admin main,body.calendar main,body.accounts main,body.grow-payments main{min-width:0;max-width:100%;box-sizing:border-box}
body.admin .roster-heading,body.admin .admin-event-row,body.admin .admin-attendee-section{min-width:0;max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere}
body.admin .roster-heading h1{min-width:0;flex:1 1 160px;overflow-wrap:anywhere}
body.admin .attendee-row{min-width:0;flex-wrap:wrap;overflow-wrap:anywhere}
body.admin .attendee-name{min-width:0;max-width:100%;overflow-wrap:anywhere}
.round-calendar,.round-calendar *{box-sizing:border-box;min-width:0}
.round-days,.round-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(145px,100%),1fr));gap:10px;margin:18px 0}
.round-days button,.round-picker button{position:relative;text-align:right;display:flex;flex-direction:column;gap:6px;white-space:normal;padding:16px;border-radius:14px;min-height:76px}
.round-day.no-paid{background:#e8ebef;color:#3f4855}.round-day.has-paid{background:#dbeafe;color:#164b91}.round-day.is-full{background:#dcfce7;color:#166534}
.round-days [aria-pressed=true],.round-picker [aria-pressed=true]{outline:3px solid #2454a8;outline-offset:2px}
.cancel-circle{border-radius:50%;background:#dc2626;color:#fff;display:inline-grid;place-items:center;min-width:24px;height:24px;align-self:flex-end;font-weight:700}
.round-roster{scroll-margin-top:90px;margin-top:24px;padding:16px;border-radius:14px;background:#fff;outline:none}
.round-roster .attendee-row:nth-child(even){background:#f1f5f9}.round-roster .attendee-row.is-unpaid,.round-calendar .is-unpaid{color:#b91c1c;background:#fff1f2}
[data-round-day-panel][hidden],[data-round-roster][hidden]{display:none!important}
@media(max-width:600px){body.admin .admin-events,body.admin .card,body.admin .roster-heading>*{max-width:100%;min-width:0}body.admin .roster-heading{gap:10px}.round-roster{padding:10px}.round-roster .attendee-row{gap:8px}.round-roster .attendee-name{flex:1 1 100%}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task531 legacy compact rows have a fixed height; expanded mobile round cards must size to their content. */
.round-roster .attendee-row:not(:has(.attendee-contact[open])){height:auto;min-height:64px;padding:12px 8px;row-gap:8px}
.round-roster .attendee-row>.attendee-name{flex:1 1 100%;white-space:normal;overflow-wrap:anywhere}
.round-roster .attendee-contact{margin-inline-start:auto}
body.admin .admin-event-counts{white-space:normal;overflow-wrap:anywhere}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task545 moves source-panel rules to the CSP-permitted external sheet; blocked inline styling left the customer table wider than the viewport. */
.manager-source-card,.manager-customers-card{width:100%;padding:clamp(16px,3vw,26px);margin:18px 0;background:#fff;border:1px solid var(--line,#e0e4da);border-radius:16px;box-shadow:0 6px 22px #253a3108}.manager-source-card>summary,.manager-customers-card>summary{font-size:clamp(18px,2vw,21px);font-weight:800;color:var(--ink,#253a31);padding:0 0 14px;list-style:none}.manager-source-card>summary::-webkit-details-marker,.manager-customers-card>summary::-webkit-details-marker{display:none}.manager-source-card>summary span,.manager-customers-card>summary span{color:var(--green,#284f3d);margin-inline-end:6px}.manager-brand-fields{grid-template-columns:1fr;gap:10px}.manager-brand-fields .manager-brand-name{margin:0}.manager-logo-choice{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}.manager-logo-upload,.manager-logo-url{min-width:0;margin:0}.manager-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.manager-dropzone{width:100%;min-height:72px;display:flex;flex-direction:column;gap:2px;background:#f7f8f4;color:var(--green,#284f3d);border:1px dashed #9aac99;padding:8px 12px}.manager-dropzone>span{font-size:21px;line-height:1}.manager-dropzone small,.manager-choice-hint{font-size:12px;font-weight:400;color:var(--muted,#69736c)}.manager-or{font-weight:800;color:var(--muted,#69736c)}.manager-file-preview{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:12px}.manager-file-preview[hidden]{display:none!important}.manager-file-preview img{width:36px;height:36px;object-fit:contain;border:1px solid var(--line,#e0e4da);border-radius:7px}.manager-upload-error{margin:5px 0 0;color:#a12d27;font-size:13px}.manager-upload-error[hidden]{display:none}.manager-file-preview [data-file-info]{flex:1;min-width:80px;overflow-wrap:anywhere}.manager-logo-upload.is-disabled,.manager-logo-url.is-disabled{opacity:.48}.manager-logo-choice [disabled]{cursor:not-allowed}.manager-brand-form label,.manager-import label{margin:0}.manager-source-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;margin:14px 0}.manager-source-actions button,.manager-import>summary{min-height:40px;padding:6px 13px;border-radius:9px;font-size:14px}.manager-import{margin:0;padding:0;border:0}.manager-import>summary{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line,#e0e4da);background:#f7f8f4;color:var(--green,#284f3d);font-weight:700;cursor:pointer;list-style:none}.manager-import form{width:min(520px,calc(100vw - 48px));padding:12px;margin-top:8px;border:1px solid var(--line,#e0e4da);border-radius:12px;background:#fff}.manager-import textarea{min-height:110px}.manager-customer-search{max-width:430px;margin:10px 0 16px}.manager-customer-search input{min-height:42px}.manager-customer-table-wrap{width:100%;overflow-x:auto}.manager-customer-table{width:100%;border-collapse:collapse;table-layout:fixed}.manager-customer-table th,.manager-customer-table td{padding:10px 8px;border-bottom:1px solid var(--line,#e0e4da);text-align:right;overflow-wrap:anywhere}.manager-customer-table td[dir=ltr]{text-align:left}.manager-customer-table th:first-child{width:28%}.manager-source-card>p:last-child{margin-bottom:0}@media(max-width:600px){.manager-logo-choice{grid-template-columns:1fr;gap:6px}.manager-or{text-align:center;line-height:1}.manager-customer-table th,.manager-customer-table td{padding:8px 5px;font-size:13px}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task545 prevents RTL clipping at intrinsic grid/file-input widths; keep source tables scrolling locally and all event actions reachable. */
body.admin main :is(.card,details,form,.grid,label){min-width:0}
body.admin main :is(input,select,textarea){min-width:0;max-width:100%}
body.admin .manager-source-card{overflow-wrap:anywhere}
body.admin .manager-source-card .grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
body.admin .manager-source-card .grid>*{min-width:0;max-width:100%}
body.admin .source-scroll{width:100%;min-width:0;overflow-x:auto}
@media(max-width:650px){
 body.admin .admin-events.event-overview{width:100%;margin-inline:0}
 body.admin .admin-event-copy{flex:1 1 140px;min-width:0}
 body.admin .admin-event-actions{flex:0 1 auto;flex-wrap:wrap;max-width:100%;margin-inline-start:auto}
 body.admin .admin-event-title{white-space:normal;overflow-wrap:anywhere}
 body.admin .manager-source-card button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task545 overrides later inline source-panel CSS with container-based sizing, including the expanded import form. */
body.admin .manager-brand-fields{grid-template-columns:minmax(0,1fr)}
body.admin .manager-logo-choice{min-width:0;max-width:100%}
body.admin .manager-dropzone{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
body.admin .manager-source-actions>*{min-width:0;max-width:100%}
body.admin .manager-import form{width:min(520px,100%);max-width:100%}
@media(max-width:600px){body.admin .manager-logo-choice{grid-template-columns:minmax(0,1fr)}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task547 locks manager attendee metadata to one compact track; only an intentionally opened menu gets a second track. Worker guest rows keep their existing layout. */
body.admin .attendee-list .attendee-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto 40px;align-items:center;column-gap:5px;row-gap:0;min-height:48px;height:auto;padding:4px 6px;overflow-wrap:normal}
body.admin .attendee-list .attendee-row>.attendee-name{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
body.admin .attendee-list .diner-chip{font-size:11px;padding:1px 5px;white-space:nowrap}
body.admin .attendee-list .attendee-status{font-size:10px;padding:3px 5px;white-space:nowrap}
body.admin .attendee-list .attendee-contact{display:contents;margin:0}
body.admin .attendee-list .attendee-contact>summary{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;list-style:none;color:#10609d;line-height:1;white-space:nowrap}
body.admin .attendee-list .attendee-contact>summary::-webkit-details-marker{display:none}
body.admin .attendee-list .attendee-contact>summary::marker{content:""}
body.admin .attendee-list .attendee-contact>summary svg{display:block;flex:none}
body.admin .attendee-list .attendee-contact>summary:focus-visible{outline:2px solid #10609d;outline-offset:2px}
body.admin .attendee-list .attendee-contact[open]>.attendee-contact-choice{grid-column:1/-1;position:static;width:100%;min-width:0;max-width:100%;margin:6px 0 2px;overflow-wrap:anywhere}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task547 matches the older closed-menu selector specificity so its padding cannot leave single-line rows 72px tall. */
body.admin .attendee-list .attendee-row:not(:has(.attendee-contact[open])){height:48px;min-height:48px;padding:4px 6px;row-gap:0}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task560 copies waiter-calendar white day column, grey hour rules and blue blocks, scoped to manager round selection to preserve day and attendee styles. */
.round-status-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:14px 0;color:#455a64;font-size:13px}.round-status-legend>span{display:flex;align-items:center;gap:6px}.round-count{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:50%;font-weight:700;font-variant-numeric:tabular-nums;color:#fff}.round-count.is-paid{background:#16834a}.round-count.is-pending{background:#7c3aed}.round-status-legend .round-count{width:14px;height:14px}.round-picker.manager-hour-grid{display:block;border:1px solid #eceff1;border-radius:12px;background:#fff;margin:12px 0;overflow:hidden}.manager-hour-header,.manager-hour-row{display:grid;grid-template-columns:56px minmax(0,1fr)}.manager-hour-header{border-bottom:1px solid #eceff1;text-align:center}.manager-hour-header>span{padding:14px 4px;font-size:12px;color:#78909c}.manager-hour-header>strong{padding:12px;border-inline-start:1px solid #d5dce1;color:#455a64}.manager-hour-row{min-height:112px}.manager-hour-row>time{padding:10px 5px;text-align:center;font-size:12px;color:#78909c}.manager-hour-cell{border-inline-start:1px solid #d5dce1;border-bottom:1px solid #eceff1;background:linear-gradient(to bottom,transparent 49%,#f1f3f4 50%,transparent 51%);padding:4px}.manager-hour-grid .manager-hour-cell button{width:100%;min-height:104px;border-radius:6px;background:#1976d2;color:#fff;padding:10px 12px;gap:6px;overflow-wrap:anywhere;border:0}.manager-round-time{font-size:15px;font-weight:700;direction:ltr;align-self:flex-end}.manager-round-capacity{font-size:13px;font-weight:500}.round-counts{display:flex;gap:8px}.manager-hour-grid [aria-pressed=true]{outline-offset:-3px;outline-color:#ffcf5a}.manager-hour-grid .cancel-circle{top:7px;left:7px}@media(max-width:600px){.manager-hour-header,.manager-hour-row{grid-template-columns:46px minmax(0,1fr)}.manager-hour-grid .manager-hour-cell button{padding:9px}.round-status-legend{gap:8px;font-size:12px}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task562 separates unpaid groups with a centered label and visible rules; attendee row geometry remains unchanged. */
.unpaid-divider{display:flex;align-items:center;gap:12px;width:100%;margin:18px 0 10px;color:#a12d35;font-size:14px;font-weight:700;white-space:nowrap}
.unpaid-divider::before,.unpaid-divider::after{content:"";flex:1;min-width:0;border-top:2px solid #e2a1a7}
/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task562 removes page gutters and rounded yellow corners from phone panels on every route; padding stays inside the panels and tables scroll locally. */
@media(max-width:650px){
 body main{width:100%;max-width:none;min-width:0;padding-inline:0;margin-inline:0}
 body main :is(.card,.hero,.manager-source-card,.manager-customers-card,.projects-panel){width:100%;max-width:none;min-width:0;margin-inline:0;border-radius:0;border-inline:0}
 body main>.grid:has(>.card),body main .projects-grid{grid-template-columns:minmax(0,1fr)}
 body main :is(.event-step,.round-roster,.worker-table){max-width:100%;min-width:0}
 body main :is(input,select,textarea){min-width:0;max-width:100%}
 body main>.page-intro,body main>.roster-heading{padding-inline:14px}
 body main .hero img{max-width:100%}
}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task562 also clears the event editor's independent outer gutter rather than clipping its children. */
@media(max-width:650px){body main .event-editor{width:100%;max-width:none;margin-inline:0;padding-inline:0}body main>.event-editor .event-step{width:100%;border-radius:0;border-inline:0}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task562 covers the worker calendar panel supplied by its separate stylesheet, while preserving inner hour-grid padding. */
@media(max-width:650px){body main :is(.wc-page,.round-roster,.event-step){border-radius:0}body main>.wc-page{width:100%;max-width:none;margin-inline:0;border-inline:0}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-13: task562 beats the later editor-steps sheet's ten-pixel outer gutter, preserving padding within each step. */
@media(max-width:650px){body.event-editor-page:has([data-event-editor]) main>[data-event-editor]{padding-inline:0}body.event-editor-page:has([data-event-editor]) .manager-only-event{padding-inline:0}body.event-editor-page main .event-step{border-radius:0;border-inline:0}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-15: task683 keeps complete Hebrew day labels together and places an accessible print menu within the existing mobile top bar. */
.round-day-label{display:block;white-space:nowrap;font-size:clamp(12px,3.3vw,16px);letter-spacing:-.25px}
.event-print-menu{position:relative;margin:0;padding:0;border:0;flex-shrink:0}
.event-print-menu>summary{display:flex;align-items:center;justify-content:center;list-style:none;width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--green)}
.event-print-menu>summary::-webkit-details-marker{display:none}
.event-print-panel{position:absolute;inset-inline-end:0;top:48px;width:280px;max-width:calc(100vw - 24px);z-index:150;background:white;border:1px solid var(--line);box-shadow:0 8px 24px #0002;border-radius:12px;padding:6px}
.event-print-panel a{display:flex;align-items:center;min-height:44px;padding:8px 12px;text-decoration:none;font-size:14px;white-space:nowrap}
.event-print-panel a:hover,.event-print-panel a:focus-visible{background:var(--paper)}
.event-print-panel hr{border:0;border-top:1px solid var(--line);margin:4px 0}
@media(max-width:420px){.round-days{grid-template-columns:minmax(0,1fr)}.round-day-label{font-size:16px}}
@media print{.event-print-menu{display:none!important}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-15: task683 anchor-independent mobile inset prevents the opened print panel extending beyond the viewport. */
@media(max-width:650px){.event-print-panel{position:fixed;top:58px;inset-inline-end:12px;inset-inline-start:auto}}

/* Engine: Codex/gpt-6.1-sol, 2026-10-15: task683 unpaid attribution suggestions are visually distinct from paid bookings; reopened capacity-review suggestions use black/red. */
.round-count.is-unmatched{background:#111;color:#fff;border:1px solid #111}
.round-count.is-unmatched.is-seat-reopened{background:linear-gradient(135deg,#111 50%,#c3212e 50%);border-color:#111}
.round-status-legend{flex-wrap:wrap}

/* Engine: Codex/gpt-6.1-sol, 2026-10-15: task696 full-row tap overlay excludes existing action controls and highlights the entire event row. */
.admin-event-row{position:relative;isolation:isolate;transition:background-color .12s,transform .12s}.admin-event-row .admin-event-title::after{content:"";position:absolute;inset:0;z-index:1}.admin-event-row .admin-event-actions{position:relative;z-index:2}.admin-event-row:has(.admin-event-title:active),.admin-event-row:has(.admin-event-title:focus-visible){background:#d2e9f8;box-shadow:inset 0 0 0 2px #10609d;transform:translateY(1px)}.admin-event-title{-webkit-tap-highlight-color:transparent}.admin-event-row .admin-event-title:focus-visible{outline:none}
/* Engine: Codex/gpt-6.1-sol, 2026-10-15: task696 border-box and zero summary margin align print control with hamburger/back/bell in both manager views. */
header.top .event-print-menu{display:flex;align-items:center;align-self:center;margin:0;padding:0;height:44px;min-height:44px;box-sizing:border-box}header.top .event-print-menu>summary{width:44px;height:44px;min-height:44px;box-sizing:border-box;padding:0;margin:0;border-radius:10px;line-height:1;position:static}

/* Engine: Codex/gpt-6.1-sol, 2026-10-15: task729 two independent touch targets per print row fit the existing 280px mobile panel. */
.event-export-row{display:flex;direction:rtl;align-items:stretch;gap:4px}.event-print-panel .event-export-print{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;white-space:normal;line-height:1.35}.event-export-print small{font-size:11px;color:var(--muted)}.event-print-panel .event-export-excel{flex:0 0 78px;box-sizing:border-box;min-width:78px;min-height:44px;justify-content:center;direction:ltr;border-inline-end:1px solid var(--line);font-weight:700}.event-print-panel .event-export-row a{box-sizing:border-box;min-height:52px}.event-export-row+.event-export-row{border-top:1px solid var(--line)}
/* Engine: Codex/gpt-6-luna, 2026-10-22: task1765 presents compact RTL block pickers while retaining native selects as the form controls. */
.booking-block-pickers{display:grid;gap:18px;min-width:0;margin:18px 0}.booking-block-pickers section{min-width:0}.booking-block-pickers h3{margin:0 0 8px}.guest-tiles,.day-tiles,.round-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0}.picker-tile{display:flex;flex-direction:column;gap:1px;min-width:0;min-height:58px;padding:6px 4px;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.25}.picker-tile small{color:inherit;font-size:11px;font-weight:500;line-height:1.2}.picker-tile[aria-pressed="true"]{outline:3px solid #f0b429;outline-offset:1px}.picker-tile:disabled{opacity:.48;cursor:not-allowed;background:#77818a;border-color:#77818a}.picker-native-control{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}.picker-native-control select{width:1px!important;height:1px!important;min-height:1px!important;padding:0!important}.picker-native-control:focus-within{position:fixed!important;inset:auto 8px 8px 8px!important;z-index:9999;width:auto!important;height:auto!important;clip-path:none!important;background:white;padding:8px!important}.picker-native-control:focus-within select{width:100%!important;height:44px!important;min-height:44px!important}
@media(max-width:480px){.booking-block-pickers{gap:14px}.guest-tiles,.day-tiles,.round-tiles{gap:6px}.picker-tile{min-height:54px;padding:5px 2px;font-size:14px}.picker-tile small{font-size:10px}}
/* Engine: Codex/gpt-6-luna, 2026-10-22: keep stale-diner repick state visible without boxing the whole diner grid. */
.guest-tiles.draft-needs-repick {
  outline: none !important;
}

/* Codex/gpt-6-luna 2026-10-29 #1419/#1421: no celebration popups; no gold frame on the diner tiles */
.booking-celebration,
.booking-celebration .happy-badge,
.booking-celebration .happy-badge-icon,
.booking-celebration .booking-confetti,
.happy-badge,
.happy-badge-icon,
.booking-confetti {
  display: none !important;
  animation: none !important;
}
.guest-tiles .picker-tile {
  position: relative;
}
.guest-tiles .picker-tile[aria-pressed="true"] {
  outline: none;
  box-shadow: inset 0 0 0 3px #fff, 0 0 0 2px #10609d;
}
.guest-tiles .picker-tile[aria-pressed="true"]::after {
  content: "✓";
  position: absolute;
  top: 3px;
  right: 5px;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  text-shadow: 0 1px 2px #044060;
}
.guest-tiles .picker-tile:focus-visible {
  outline: 3px solid #10609d;
  outline-offset: 2px;
}
