:root{--pine:#173e35;--leaf:#326456;--paper:#fcfbf7;--oat:#ebe8dc;--ink:#202b28;--muted:#53635b;--line:#cdd2c5;--amber:#875817;--red:#923a36;--focus:#af6419;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}a{color:var(--pine);text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,input,select{min-height:46px}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.15}h1{font-size:clamp(2.6rem,5vw,4.1rem);letter-spacing:-1.8px;max-width:16ch}h2{font-size:2rem;letter-spacing:-.6px}h3{font-size:1.35rem}small{font-size:.82rem}.skip{position:absolute;left:12px;top:-60px;background:white;padding:10px;z-index:5}.skip:focus{top:12px}.masthead{background:var(--pine);color:#fff;display:flex;align-items:center;gap:38px;padding:25px max(5vw,22px);min-height:112px}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;flex-shrink:0}.brand>span{font:2rem/1 Georgia,serif;letter-spacing:-.5px}.brand small{display:block;font:.7rem/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:1px;margin-top:6px}.masthead nav{display:flex;gap:26px;flex-wrap:wrap}.masthead nav a{color:#e9efdf;text-decoration:none;padding:9px 0;border-bottom:1px solid transparent}.masthead nav a[aria-current]{color:white;border-bottom-color:#e9efdf}.account{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end;max-width:360px}.account a{color:white;text-decoration:none}.account [data-testid=current-user]{overflow-wrap:anywhere;font-size:.9rem}.account button{border:1px solid #9aafa6;color:white;background:transparent;padding:6px 14px;border-radius:4px;min-height:38px}.account .join{border:1px solid #9aafa6;padding:8px 17px;border-radius:4px}main{max-width:1340px;margin:auto;padding:50px max(5vw,22px) 65px;min-height:calc(100vh - 215px)}.intro{display:flex;align-items:flex-end;gap:35px;justify-content:space-between;margin-bottom:32px}.intro p{max-width:39ch;color:var(--muted);padding-bottom:7px;font-size:1.05rem}.search-form{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) minmax(110px,.7fr) auto;gap:17px;align-items:end;padding:22px 0 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}label{display:block;font-size:.88rem;font-weight:600;margin-bottom:7px}input,select{width:100%;min-width:0;border:1px solid #8e9b91;border-radius:4px;color:var(--ink);background:white;padding:10px 12px}select{padding-right:25px}input[type=date]{min-width:0}button.primary{background:var(--pine);border:1px solid var(--pine);border-radius:4px;color:white;padding:11px 22px;font-weight:600;white-space:normal}button.primary:hover{background:var(--leaf)}button.primary:disabled{opacity:.65}.flow{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:38px;margin-top:35px;align-items:start}.flow:has(#booking:empty){grid-template-columns:minmax(0,1fr)}.board-head{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:22px}.board-head h2{font-size:1.85rem}.board-head p{color:var(--muted);font-size:.85rem;margin-top:7px}.legend{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0 24px;color:var(--muted);font-size:.8rem}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border:1px solid var(--leaf);border-radius:2px;background:#e0ede2}.legend .taken{background:var(--oat);border-color:#b6bdb3}.table-row{padding:21px 0;border-top:1px solid var(--line)}.table-title{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:13px;overflow-wrap:anywhere}.table-title small{color:var(--muted)}.times{display:flex;flex-wrap:wrap;gap:9px}.slot{min-width:73px;min-height:44px;border:1px solid #5f8068;background:#eaf2e7;color:var(--pine);border-radius:4px;font-variant-numeric:tabular-nums;padding:8px 12px}.slot:hover:not(:disabled){background:#d2e5ce}.slot:disabled{background:#f0f0e9;color:#657066;border-color:#d4d8ce;text-decoration:line-through}.slot[aria-pressed=true]{background:var(--pine);border-color:var(--pine);color:white;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--pine)}.slip{background:var(--oat);padding:27px 25px;border:1px solid #bac4b6;box-shadow:0 12px 25px #173e350a;border-radius:6px}.slip h2{font-size:1.65rem}.slip .summary{margin:15px 0 22px;overflow-wrap:anywhere}.slip .field{margin-bottom:18px}.slip .primary{width:100%}.slip .hint{font-size:.8rem;color:var(--muted);margin-top:12px}.notice{padding:15px 17px;margin-top:18px;border:1px solid var(--line);background:#f0f4ec;border-radius:4px;font-size:.92rem;overflow-wrap:anywhere}.notice.error{background:#fbefeb;color:#752e2a;border-color:#d5a69e}.notice.uncertain{background:#fff5df;color:#694516;border-color:#d0b477}.notice.loading{background:#f1f4ef;color:var(--muted)}.empty{padding:40px 10px 45px 0;max-width:52ch;color:var(--muted)}.empty h2{color:var(--ink);font-size:1.65rem;margin-bottom:12px}.confirmation{margin-top:24px;padding-top:23px;border-top:1px solid #a9b6a4}.confirmation h3{font-size:1.5rem;margin-bottom:14px}.reference{display:block;font-size:1.7rem;letter-spacing:2px;font-weight:600;color:var(--pine);overflow-wrap:anywhere;margin:4px 0 15px}.confirmation p{font-size:.95rem;margin-top:8px;overflow-wrap:anywhere}.confirmation a{display:inline-block;margin-top:18px}.confirmation small{color:var(--muted)}.auth-layout{display:grid;grid-template-columns:1fr minmax(300px,410px);gap:70px;max-width:980px;padding-top:30px}.auth-copy p{margin-top:25px;max-width:34ch;color:var(--muted);font-size:1.12rem}.auth-form{background:var(--oat);padding:32px;border-radius:6px}.auth-form .field{margin-bottom:20px}.auth-form h2{font-size:1.8rem;margin-bottom:24px}.auth-form button{width:100%}.auth-form>p{margin-top:22px;font-size:.9rem}.lookup{max-width:730px}.lookup h1{max-width:20ch}.lookup>p{margin-top:20px;color:var(--muted);max-width:50ch}.lookup-form{display:flex;gap:12px;align-items:end;margin-top:30px}.lookup-form .field{flex:1;min-width:0}.detail{margin-top:30px;padding:28px;background:var(--oat);border:1px solid #bac4b6;border-radius:6px}.detail h2{font-size:1.8rem;margin:15px 0}.detail p{margin:10px 0;overflow-wrap:anywhere}.status{display:inline-block;background:#d8e8d2;color:var(--pine);border:1px solid #9fb198;border-radius:100px;font-size:.83rem;padding:4px 14px}.status.cancelled{background:#ece8e1;color:#5b6258;border-color:#b9c0b5}.secondary{border:1px solid var(--pine);background:transparent;color:var(--pine);padding:10px 18px;border-radius:4px;margin-top:18px}footer{max-width:1340px;margin:auto;padding:22px max(5vw,22px);border-top:1px solid var(--line);color:var(--muted);font-size:.83rem;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}[hidden]{display:none!important}
@media(max-width:950px){.masthead{gap:24px;flex-wrap:wrap}.account{max-width:100%}.flow{grid-template-columns:minmax(0,1fr) 300px;gap:25px}.search-form{grid-template-columns:1fr 1fr}.search-form .primary{min-height:47px}.intro{align-items:start}.intro p{max-width:30ch}.auth-layout{gap:35px}}
@media(max-width:760px){.masthead{padding:20px 22px;gap:19px}.brand{order:0}.account{order:1;flex:1;font-size:.86rem;gap:10px}.account [data-testid=current-user]{width:100%;text-align:right}.masthead nav{order:2;width:100%;gap:25px;font-size:.93rem}.masthead nav a{padding:4px 0}.brand>span{font-size:1.8rem}.brand svg{width:26px}.intro{display:block}.intro p{margin-top:18px;max-width:42ch}main{padding-top:30px}h1{letter-spacing:-1px}.search-form{gap:16px 12px;padding-bottom:23px}.search-form .restaurant-field{grid-column:1/-1}.search-form>.primary{grid-column:1/-1}.flow{grid-template-columns:minmax(0,1fr);margin-top:25px;gap:25px}.slip{padding:24px}.board-head{display:block}.auth-layout{grid-template-columns:1fr;gap:30px;padding-top:0}.auth-form{padding:26px 23px}.lookup-form{flex-wrap:wrap}.lookup-form .field{flex-basis:100%}.lookup-form button{width:100%}.detail{padding:23px}.slot{min-width:67px;padding:8px 10px}.times{gap:8px}.account .join{padding:6px 9px}.account button{padding:5px 10px}.table-title{align-items:start}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .12s ease}}

/* Fixture labels remain fully visible without enlarging a grid track. */
.flow>*{min-width:0}.board-head h2,.detail h2{overflow-wrap:anywhere}
/* An exact guest count can be wider than the screen, just like a fixture label. */
.board-head>div{min-width:0}.board-head p{overflow-wrap:anywhere}
