/* Dining sessions live beside the food-first menu, with one visible mic state. */
.visit-strip{display:flex;align-items:center;gap:13px;padding:14px 17px;margin-bottom:20px;border:1px solid #dce3d2;border-radius:12px;background:#edf1e6;color:#344a35}
.visit-strip-icon{display:grid;place-items:center;background:#fcfdf8;border:1px solid #dce3d2;width:35px;height:35px;border-radius:50%;font-size:24px;flex:none}
.visit-strip-copy{flex:1;min-width:0;display:grid;gap:4px}.visit-strip-copy strong{font-size:12px;font-weight:500}.visit-strip-copy>span{font-size:10px;line-height:1.5;color:#65715d}
.visit-strip button{display:flex;align-items:center;gap:17px;flex:none;padding:9px 13px;border-radius:6px;font-size:11px;border-color:#ccd7c2;background:#fafcf5;color:#344a35;min-height:38px}
.visit-strip[data-recording=true]{border-color:#ca6953;background:#fff0e9}.visit-strip[data-recording=true] .visit-strip-icon{color:#b44934}.visit-strip[data-recording=true] .visit-strip-copy>span{color:#944936}
.visit-dialog{position:fixed;inset:0;margin:auto;width:min(720px,calc(100vw - 40px));max-width:720px;max-height:92dvh;padding:0;border:1px solid #e0e0d3;border-radius:20px;background:#f8f7f3;color:#293b30;box-shadow:0 24px 80px #12281840;overflow:hidden;z-index:150}
.visit-dialog[open]{display:flex;flex-direction:column}.visit-dialog::backdrop{background:#17271780;backdrop-filter:blur(5px)}.visit-dialog *{box-sizing:border-box}.visit-dialog [hidden]{display:none!important}
.visit-dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:25px 27px 20px;flex:none}.visit-dialog-header h2{font-family:Georgia,serif;font-size:30px;line-height:1.1;font-weight:400;letter-spacing:-.8px;margin:5px 0 7px}.visit-dialog-header p{font-size:11px;color:#737b6e;margin:0;line-height:1.7}.visit-dialog-close{font-size:24px;min-height:36px;width:36px;padding:0;flex:none;border-radius:50%;background:#fff}
.visit-tabs{display:flex;gap:0;margin:0 27px;border-bottom:1px solid #dedfd3;flex:none}.visit-tabs button{flex:1;border:0;border-radius:0;background:none;font-size:12px;padding:13px 8px;color:#7a8173;border-bottom:2px solid transparent}.visit-tabs button[aria-selected=true]{color:#365039;border-bottom-color:#657c53;font-weight:600}
.visit-dialog-body{padding:22px 27px 27px;overflow:auto;overscroll-behavior:contain;min-height:0}.visit-section{padding:20px;border:1px solid #e1e1d5;border-radius:12px;background:#fff;margin-bottom:16px}.visit-section:last-child{margin-bottom:0}.visit-section h3{font-size:15px;line-height:1.5;margin:0 0 7px;font-weight:500}.visit-section p,.visit-help{font-size:11px;line-height:1.8;color:#737c6d;margin:0 0 13px}.visit-section p:last-child{margin-bottom:0}.visit-section .visit-eyebrow{font-size:8px;letter-spacing:1.4px;text-transform:uppercase;color:#7a866f;margin-bottom:9px}.visit-muted-section{background:#eff1e7}
.visit-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.visit-inline>input{flex:1;min-width:150px}.visit-label{display:grid;gap:6px;font-size:11px;color:#46583f;margin:12px 0}.visit-dialog input:not([type=checkbox]):not([type=radio]),.visit-dialog textarea,.visit-dialog select{width:100%;font:inherit;font-size:12px;padding:11px 12px;border:1px solid #d7dbcf;border-radius:7px;background:#fff;color:#293b30}.visit-dialog textarea{min-height:78px;resize:vertical}.visit-dialog button{cursor:pointer}.visit-dialog button:disabled{opacity:.45;cursor:not-allowed}.visit-dialog input:focus-visible,.visit-dialog textarea:focus-visible,.visit-dialog select:focus-visible,.visit-dialog button:focus-visible,.visit-dialog a:focus-visible{outline:2px solid #a85936;outline-offset:3px}.visit-button{font-size:11px;padding:11px 15px;min-height:41px;white-space:normal;line-height:1.4;border:1px solid #d5dbcc;border-radius:7px;background:#fff;color:#365039}.visit-button-primary{background:#496445;color:#fff;border-color:#496445}.visit-button-danger{background:#a64632;color:#fff;border-color:#a64632}.visit-button-link{border:0;background:none;color:#765c4a;text-decoration:underline;text-underline-offset:3px;padding:10px 2px}.visit-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.visit-check{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.7;color:#4c5b45;margin:13px 0}.visit-check input{width:16px;height:16px;flex:none;margin-top:2px;accent-color:#5b754b}.visit-check strong{display:block;font-weight:500}.visit-check small{display:block;color:#77826e;font-size:10px;line-height:1.7}
.visit-recording-bar{display:flex;align-items:center;gap:9px;font-size:11px;color:#63755c;background:#f0f3e8;padding:10px 12px;border-radius:7px;margin-bottom:13px}.visit-recording-dot{display:inline-block;width:7px;height:7px;flex:none;border-radius:50%;background:#869879}.visit-recording-bar[data-active=true]{background:#fcebe4;color:#954833}.visit-recording-bar[data-active=true] .visit-recording-dot{background:#b94834;box-shadow:0 0 0 4px #d89b7733}.visit-recording-bar time{margin-left:auto;font-variant-numeric:tabular-nums;font-size:11px}
.visit-transcript{display:flex;flex-direction:column;gap:9px;max-height:260px;overflow:auto;margin:14px 0}.visit-transcript-entry{border-left:2px solid #d9decd;padding:7px 10px;background:#f7f8f3;border-radius:0 7px 7px 0}.visit-transcript-entry header{display:flex;justify-content:space-between;font-size:9px;color:#89907f;margin-bottom:4px;gap:9px}.visit-transcript-entry p{font-size:12px;color:#3e5037;line-height:1.7;margin:0;white-space:pre-wrap}.visit-empty{padding:17px 12px;text-align:center;background:#f6f7f1;border:1px dashed #dce0d0;border-radius:7px;font-size:11px;color:#869078;line-height:1.8}
.visit-message{padding:11px 14px;border-radius:7px;margin:0 0 16px;background:#edf2e4;border:1px solid #d8e1c9;font-size:11px;line-height:1.7;color:#425639}.visit-message[data-error=true]{background:#fff0e7;color:#974d36;border-color:#ebcdbc}
.visit-participants{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0 0}.visit-person{font-size:10px;background:#f0f2e9;border:1px solid #dfe4d3;border-radius:20px;padding:5px 10px}.visit-person.me{background:#e4ecda;border-color:#cbd8be}.visit-party-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.visit-party-head h3{margin:0}.visit-party-count{font-size:10px;color:#738366;white-space:nowrap}.visit-joined-note{font-size:10px;color:#79866f;margin-top:10px}.visit-bill-total{display:flex;justify-content:space-between;align-items:center;margin:14px 0 7px;gap:10px}.visit-bill-total span{font-size:11px;color:#65755c}.visit-bill-total strong{font-size:29px;line-height:1.4;font-weight:400;font-family:Georgia,serif}.visit-bill-lines{margin:13px 0}.visit-bill-line,.visit-split-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:9px 0;border-bottom:1px solid #eef0e7;line-height:1.6}.visit-bill-line>span:first-child{min-width:0}.visit-bill-line>span:last-child{flex:none;font-variant-numeric:tabular-nums}.visit-split-row strong{font-weight:500}.visit-split-row small{display:block;color:#7c8871;font-size:9px}.visit-split-row.me{color:#456239}.visit-bill-status{font-size:10px;color:#7a856e}.visit-payment{padding:16px;border-radius:10px;background:#f0f3e9;border:1px solid #d6dfc8;margin-top:16px;text-align:center}.visit-payment img{width:170px;max-width:100%;height:170px;object-fit:contain;background:white;padding:8px;border-radius:8px;margin:10px auto;display:block}.visit-payment a{display:inline-flex;justify-content:center;text-decoration:none;margin:8px 0}.visit-payment p{margin:6px 0 0;font-size:10px}.visit-end-footer{margin-top:19px;padding-top:16px;border-top:1px solid #dedfd3;display:flex;align-items:center;justify-content:space-between;gap:13px}.visit-end-footer p{font-size:10px;line-height:1.7;color:#7d8673;margin:0;max-width:33ch}.visit-rating{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.visit-rating label{display:flex;justify-content:center;align-items:center;gap:5px;padding:9px 12px;border:1px solid #dce0d1;border-radius:6px;cursor:pointer;font-size:12px;background:#fff}.visit-rating input{accent-color:#8e653a}.visit-rating label:has(input:checked){background:#f6ecd9;border-color:#c5ad82}.visit-stat-pair{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 0;font-size:11px}.visit-stat-pair strong{font-size:15px;font-weight:500}.visit-waiter-callout{font-size:10px!important;color:#768668!important}
@media(max-width:580px){.visit-strip{padding:12px;gap:10px;margin-bottom:16px}.visit-strip-icon{display:none}.visit-strip-copy strong{font-size:11px;line-height:1.5}.visit-strip-copy>span{font-size:9px}.visit-strip button{padding:8px 10px;font-size:10px;gap:8px;min-height:38px}.visit-dialog{inset:auto 0 0;width:100%;max-width:none;margin:0;max-height:95dvh;border-radius:20px 20px 0 0;border-bottom:0}.visit-dialog-header{padding:21px 19px 16px}.visit-dialog-header h2{font-size:27px}.visit-tabs{margin:0 19px}.visit-tabs button{font-size:11px;padding:12px 4px}.visit-dialog-body{padding:19px 17px calc(24px + env(safe-area-inset-bottom))}.visit-section{padding:17px 15px}.visit-end-footer{align-items:flex-start}.visit-end-footer .visit-button{max-width:145px;flex:none}.visit-inline{align-items:stretch}.visit-inline>input{flex-basis:100%}.visit-inline>.visit-button{width:100%}.visit-actions .visit-button{flex:1}.visit-rating label{padding:8px 10px}.visit-bill-total strong{font-size:26px}}
.visit-feedback-details{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.visit-dialog input[type=checkbox],.visit-dialog input[type=radio]{-webkit-appearance:auto;appearance:auto;width:16px;height:16px;min-height:16px;padding:0;border:0;border-radius:0;box-shadow:none;flex:none;background:transparent}.visit-rating label{white-space:nowrap;gap:7px}.visit-rating input{margin:0}
@media(max-width:580px){.visit-dialog input:not([type=checkbox]):not([type=radio]),.visit-dialog textarea,.visit-dialog select{font-size:16px}.visit-rating{gap:5px}.visit-rating label{padding:9px 8px;gap:5px;font-size:11px}}
.visit-strip[data-recording=true]{position:sticky;top:12px;z-index:80;box-shadow:0 5px 20px #6c382518}

/* The table transcript remains visible beside the basket. The detail lives in
   the visit sheet; this is deliberately a calm status rail, not a second UI. */
.capture-rail{margin-bottom:18px;border:1px solid #dce3d2;border-radius:12px;padding:17px;background:#f2f5ec;color:#344a35}.capture-rail-head{display:flex;align-items:center;gap:9px}.capture-rail-dot{width:8px;height:8px;border-radius:50%;background:#91a084;box-shadow:0 0 0 4px #91a0841f;flex:none}.capture-rail-dot[data-live=true]{background:#bd523c;box-shadow:0 0 0 4px #bd523c22;animation:capture-pulse 1.5s ease-in-out infinite}.capture-rail-eyebrow{display:block;font-size:7px;letter-spacing:1.2px;color:#78866e}.capture-rail h2{font-size:14px;font-weight:500;margin:2px 0 0}.capture-rail p{font-size:10px;line-height:1.65;color:#65715d;margin:13px 0 10px}.capture-rail-note{min-height:42px;padding:9px 10px;background:#fff;border:1px solid #dce2d3;border-radius:7px;font-size:10px;line-height:1.6;color:#53634d;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.capture-rail-actions{display:flex;gap:7px;margin-top:10px}.capture-rail-actions button{font-size:10px;min-height:34px;padding:7px 9px;color:#40573e;background:#fff;border:1px solid #d3ddc9;border-radius:6px}.capture-rail-actions button:first-child{flex:1}.capture-rail-actions button[hidden]{display:none}@keyframes capture-pulse{50%{box-shadow:0 0 0 7px #bd523c00}}@media(max-width:850px){.capture-rail{grid-column:1/-1;margin-bottom:0}}@media(max-width:580px){.capture-rail{margin-bottom:17px}}

/* Feedback by voice */
.visit-speak { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 14px; }
.visit-speak .visit-help { flex: 1; min-width: 200px; }
.visit-inferred { background: #f4f1e8; border: 1px solid #e3dccb; border-radius: 12px; padding: 12px 14px; margin: 0 0 14px; font-size: 14px; }
.visit-inferred p { margin: 4px 0 6px; color: #3a3a34; }

/* On the table · live */
.visit-live { background: #fffdf8; border: 1px solid #e6dcc8; }
.visit-live-head { display: flex; justify-content: space-between; align-items: baseline; }
.visit-live-head span { font-weight: 700; font-size: 14px; }
.visit-live-lines { margin: 8px 0 4px; }
.visit-live-line { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0; border-bottom: 1px dashed #eee5d4; font-size: 15px; animation: visit-pop .35s ease; }
.visit-live-line:last-child { border-bottom: 0; }
.visit-live-line small { display: block; font-size: 11px; color: #8a7a63; margin-top: 2px; }
.visit-live-line.fired span:first-child, .visit-live-line.cooking span:first-child { color: #b3411c; }
@keyframes visit-pop { from { background: #fff1de; } }
.visit-live-heard { margin-top: 10px; display: flex; flex-direction: column; gap: 5px; }
.visit-heard { font-size: 12.5px; color: #6b5b45; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
.visit-heard-add { font-size: 11.5px; font-weight: 700; color: #3e5d38; background: #e9f0e1; padding: 2px 8px; border-radius: 999px; }
.visit-heard-add.rm { color: #a44430; background: #fbe7de; }

