:root{--bg:#f6f5f1;--surface:#fff;--ink:#1d1d1b;--muted:#6b6a65;--line:#dddbd3;--accent:#4e79a7;--in:#59a14f;--out:#e15759;--mono:ui-monospace,"SF Mono",Menlo,monospace;--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#171716;--surface:#222220;--ink:#ecebe6;--muted:#9a9890;--line:#34332f;--accent:#76a3d1;--in:#8cd17d;--out:#ff9d9a;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);margin:0;padding:24px 16px 48px;font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body>header{max-width:1100px;margin:0 auto 20px}h1{letter-spacing:-.01em;margin:0;font-size:22px}body>header p{color:var(--muted);margin:4px 0 0}.layout{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,420px);align-items: start;gap:20px;max-width:1100px;margin:0 auto}.people{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px 12px}.people:not(:has(member-row)){display:none}.people h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:13px}member-row{display:block}member-row .who{display:flex;align-items: center;gap:4px;min-height:28px}member-row [data-col=name]{border-radius:4px;padding:1px 4px}member-row[me]>.who [data-col=name]{font-weight:600}member-row[me]>.who [data-col=name]:after{content:" · you";color:var(--muted);font-weight:400}member-row .invited{border-left:1px solid var(--line);margin-left:10px;padding-left:12px}member-row:not([link])>.who>.copy,member-row:not([me])>.who>.out,member-row:not([mine])>.who>[data-delete],member-row:not([me])>.invite{display:none}member-row>.invite{max-width:260px;margin:4px 0 4px 22px}member-row .roles{color:var(--muted);font-size:12px}member-row .give{display:flex;color:var(--muted);gap:10px;margin-top:4px;font-size:13px}member-row .give:empty{display:none}member-row .give input{width:auto}.out{margin:0}.copy .icon-check,.copy[copied] .icon-copy{display:none}.copy[copied] .icon-check{display:block;color:var(--in)}.nobody{text-align:center;max-width:420px;margin:15vh auto 0}.nobody h2{margin:0 0 6px;font-size:18px}.nobody p{color:var(--muted);margin:0}body[data-away]:after{content:"Reconnecting…";position:fixed;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:13px;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000026}[contenteditable]:focus{outline:2px solid var(--accent);outline-offset:1px}.icon{display:block;width:16px;height:16px}.copy,.out button,button[data-delete]{display:inline-grid;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items: center;width:24px;height:24px;padding:0}.copy:hover,.out button:hover,button[data-delete]:hover{background:var(--line);color:var(--ink)}button[data-delete]{opacity:0}member-row .who:hover button{opacity:1}button[data-delete]:focus-visible{opacity:1}input[name]{font:inherit;color:inherit;border:1px dashed var(--line);background:0 0;border-radius:6px;width:100%;padding:5px 8px}input[name]:focus{outline:none;border-style:solid;border-color:var(--accent)}.wire{background:var(--surface);border:1px solid var(--line);position:sticky;overflow:auto;border-radius:10px;max-height:calc(100vh - 32px);padding:10px 12px;top:16px}.wire h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:13px}.wire ol{list-style:none;font:12px/1.45 var(--mono);margin:0;padding:0}.wire li{border-top:1px solid var(--line);word-break:break-all;border-left:3px solid;padding:6px 0 6px 10px}.wire li.in{border-left-color:var(--in)}.wire li.out{border-left-color:var(--out)}.wire .meta{display:block;color:var(--muted)}@media (max-width:760px){.layout{grid-template-columns:minmax(0,1fr)}.wire{position:static;max-height:50vh}}header.cafe{display:flex;align-items:baseline;gap:20px;max-width:1100px;margin:0 auto 16px}header.cafe nav{display:flex;gap:4px}header.cafe nav a{color:var(--muted);text-decoration:none;border-radius:8px;padding:4px 10px}header.cafe nav a:hover{background:var(--line);color:var(--ink)}body[data-screen=till] nav [data-for=till],body[data-screen=kitchen] nav [data-for=kitchen]{color:var(--ink);background:var(--surface);box-shadow:0 0 0 1px var(--line)}body:has(member-row[me]):not(:has(member-row[me][roles~=till])) nav [data-for=till]{display:none}body:has(member-row[me]):not(:has(member-row[me][roles~=kitchen])) nav [data-for=kitchen]{display:none}.no-access{display:none;color:var(--muted);padding:24px 0}body[data-screen=till]:has(member-row[me]):not(:has(member-row[me][roles~=till])) .no-access{display:block}body[data-screen=till]:has(member-row[me]):not(:has(member-row[me][roles~=till])) .new-order{display:none}body[data-screen=till]:has(member-row[me]):not(:has(member-row[me][roles~=till])) .statuses{display:none}body[data-screen=kitchen]:has(member-row[me]):not(:has(member-row[me][roles~=kitchen])) .no-access{display:block}body[data-screen=kitchen]:has(member-row[me]):not(:has(member-row[me][roles~=kitchen])) .new-order{display:none}body[data-screen=kitchen]:has(member-row[me]):not(:has(member-row[me][roles~=kitchen])) .statuses{display:none}main.cafe{display:grid;align-content: start;gap:18px}main.cafe .people{margin:0}form.new-order{background:var(--surface);border:1px solid var(--line);display:grid;border-radius:10px;gap:8px;padding:12px}form.new-order h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:13px}form.new-order input[name=customer]{max-width:260px}form.new-order .menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}menu_item-row{display:block;min-width:0}menu_item-row label{display:grid;grid-template-columns:minmax(0,1fr)auto 3.5em;border:1px solid var(--line);border-radius:8px;align-items: center;gap:8px;height:100%;padding:6px 8px}menu_item-row .price{color:var(--muted);font-size:12px}menu_item-row input{font:inherit;border:1px solid var(--line);color:inherit;text-align:right;background:0 0;border-radius:6px;width:100%;padding:3px 6px}form.new-order>button,button.move{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-self:start;padding:6px 14px}body:not([data-screen=till]) form.new-order{display:none}order-row{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:4px;padding:8px 10px}order-row header{display:flex;align-items:baseline;gap:8px}order-row .number{font-weight:700}order-row .customer{flex:1}cafe-age{color:var(--muted);font-size:12px}cafe-age[late]{color:var(--out);font-weight:600}cafe-age[late]:after{content:" · late"}order-row .lines{display:grid;font-size:14px}line-row .qty{color:var(--muted)}order-row .total{margin:0;font-weight:600}order-row .says{display:none;margin:0}order-row .link{color:var(--accent);font-size:12px}order-row .moves{display:flex;flex-wrap:wrap;gap:6px}order-row button.move{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:0 0}order-row button.move:hover{background:color-mix(in srgb,var(--accent)12%,transparent)}order-row .moves:empty{display:none}cafe-slide{--slide:0px;position:relative;display:block;background:color-mix(in srgb,var(--accent)16%,var(--surface));user-select:none;touch-action:none;border-radius:18px;min-width:180px;height:36px}cafe-slide .label{position:absolute;display:grid;color:var(--accent);place-items: center;font-weight:600;inset:0}cafe-slide .knob{position:absolute;top:3px;left:calc(3px + var(--slide));background:var(--accent);color:#fff;cursor:grab;border:0;border-radius:50%;width:30px;height:30px;font-size:18px}.statuses{display:grid;align-items: start;gap:12px}status-row{display:grid;align-content: start;gap:6px}status-row .called{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 0;font-size:13px}status-row .name{color:var(--muted);margin:0;font-size:12px;font-weight:500}status-row .orders{display:grid;gap:8px}status-row:not(:has(order-row)) .orders:after{content:"None";color:var(--muted);font-size:12px}body[data-screen=till] .statuses{grid-template-columns:repeat(3,minmax(0,1fr))}body[data-screen=till] status-row[position="1"]{grid-area:1/1}body[data-screen=till] status-row[position="2"]{grid-area:2/1}body[data-screen=till] status-row[position="3"]{grid-area:1/2/3}body[data-screen=till] status-row[position="4"]{grid-area:1/3}body[data-screen=till] status-row[position="5"]{grid-area:2/3}body[data-screen=till] status-row:-webkit-any([position="2"],[position="5"]) .called{display:none}body[data-screen=till] status-row:-moz-any([position="2"],[position="5"]) .called{display:none}body[data-screen=till] status-row:is([position="2"],[position="5"]) .called{display:none}body[data-screen=till] status-row[finished] order-row{opacity:.75}body[data-screen=kitchen] .statuses{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-screen=kitchen] status-row:not([open]),body[data-screen=kitchen] status-row .called,body[data-screen=kitchen] order-row .link,body[data-screen=kitchen] order-row .total{display:none}body[data-screen=kitchen] status-row .name{text-transform:uppercase;letter-spacing:.06em;font-size:13px}body[data-screen=order] header.cafe nav,body[data-screen=order] .people,body[data-screen=order] .wire,body[data-screen=order] order-row .link,body[data-screen=order] order-row .age,body[data-screen=order] status-row .called{display:none}body[data-screen=order] .layout{grid-template-columns:minmax(0,560px);justify-content:center}body[data-screen=order] .statuses{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}body[data-screen=order] status-row{display:contents}body[data-screen=order] status-row .name{grid-row:1;text-align:center;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:6px 4px}body[data-screen=order] status-row:has(~status-row order-row) .name{color:var(--ink)}body[data-screen=order] status-row:has(order-row) .name{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}body[data-screen=order] status-row[position="5"]:not(:has(order-row)) .name{display:none}body[data-screen=order] .statuses:has(status-row[position="5"] order-row) status-row:-webkit-any([position="2"],[position="3"],[position="4"]) .name{display:none}body[data-screen=order] .statuses:has(status-row[position="5"] order-row) status-row:-moz-any([position="2"],[position="3"],[position="4"]) .name{display:none}body[data-screen=order] .statuses:has(status-row[position="5"] order-row) status-row:is([position="2"],[position="3"],[position="4"]) .name{display:none}body[data-screen=order] status-row .orders{grid-row:2;grid-column:1/-1}body[data-screen=order] status-row .orders:after{content:none}body[data-screen=order] order-row .says{display:block;font-size:18px;font-weight:600}@media (max-width:760px){body:-webkit-any([data-screen=till],[data-screen=kitchen]) .statuses{grid-template-columns:minmax(0,1fr)}body:-moz-any([data-screen=till],[data-screen=kitchen]) .statuses{grid-template-columns:minmax(0,1fr)}body:is([data-screen=till],[data-screen=kitchen]) .statuses{grid-template-columns:minmax(0,1fr)}body[data-screen=till] status-row{grid-area:auto!important}}
