*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}[hidden]{display:none!important}#app{min-height:100vh;display:flex;flex-direction:column}.top{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--top-bg);color:var(--top-ink);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.brand{font-weight:800;font-size:20px;letter-spacing:-.02em}.tabs{display:flex;gap:4px;margin-left:auto;overflow-x:auto}.tabs a{padding:6px 9px;font-size:14px;border-radius:var(--radius-s);opacity:.75;white-space:nowrap}.tabs a.on{opacity:1;background:var(--tab-on)}.signout{margin-left:8px;white-space:nowrap;background:none;border:1px solid var(--line);color:inherit;padding:6px 10px;border-radius:var(--radius-s);cursor:pointer}.view{flex:1;padding:20px 16px 40px;width:100%;max-width:960px;margin:0 auto}.foot{padding:16px;text-align:center;color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.login{max-width:400px;margin:8vh auto 0}.login h1{margin:0 0 4px;font-size:26px}.muted{color:var(--muted);margin:0 0 16px}.fine{color:var(--muted);font-size:13px;margin:14px 0 0;text-align:center}label{display:block;font-size:13px;font-weight:600;margin:12px 0 0;color:var(--muted)}input{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--field);color:var(--ink)}input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.primary{width:100%;margin-top:18px;padding:12px;border:0;border-radius:var(--radius-s);background:var(--accent);color:var(--accent-ink);font-weight:700;cursor:pointer}.ghost{width:100%;margin-top:10px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);color:var(--ink);cursor:pointer}.panel{overflow-x:auto}.panel-head{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}.panel-head h1{margin:0;font-size:24px}.pill{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--pill);color:var(--pill-ink)}.files .icon{display:inline-flex;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-height:150px}.day h3{margin:0 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.shift{display:flex;flex-direction:column;gap:2px;padding:8px;margin-bottom:6px;border-radius:var(--radius-s);background:var(--chip);font-size:13px}.shift span{color:var(--muted);font-size:12px}.shift.empty{display:none}.orders{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.order{display:grid;grid-template-columns:1fr auto auto auto;grid-template-areas:"item amount status del" "who amount status del";column-gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px}.order:last-child{border-bottom:0}.order .item{grid-area:item;font-weight:600}.order .who{grid-area:who;color:var(--muted);font-size:12px}.order .leader{display:none}.order .amount{grid-area:amount;font-variant-numeric:tabular-nums}.order .status{grid-area:status}.order .danger{grid-area:del}.danger svg{display:none}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:14px}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}.table th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.status{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--chip)}.status.done{color:var(--ok)}.status.ready{color:var(--accent)}.status.queued{color:var(--muted)}.danger{border:1px solid var(--line);background:none;color:var(--danger);padding:4px 9px;border-radius:var(--radius-s);cursor:pointer;font-size:12px}.files,.people{list-style:none;margin:0;padding:0;display:grid;gap:8px}.files li,.people li{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.files .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files .size{color:var(--muted);font-size:12px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:700}.people small{color:var(--muted)}@font-face{font-family:Big Shoulders Display;font-weight:100 900;font-display:swap;src:url(/fonts/BigShouldersDisplay.woff2) format("woff2")}@font-face{font-family:Atkinson Hyperlegible;font-weight:400;font-display:swap;src:url(/fonts/AtkinsonHyperlegible-400.woff2) format("woff2")}@font-face{font-family:Atkinson Hyperlegible;font-weight:700;font-display:swap;src:url(/fonts/AtkinsonHyperlegible-700.woff2) format("woff2")}:root{--font: "Atkinson Hyperlegible", system-ui, sans-serif;--enamel: "Big Shoulders Display", "Atkinson Hyperlegible", sans-serif;--terrazzo: #e9e4da;--tile: #f4f0e8;--grout: #cfc7b8;--glaze: #1d5c4f;--glaze-deep: #154439;--glaze-light: #22695a;--ink: #2b2a28;--ink-soft: #6a655b;--enamel-ink: #ffffff;--g0: #d9a441;--g1: #8fa98a;--g2: #a5532a;--g3: #7fa7c9;--g4: #6f4f95;--tile-h: 66px;--bg: var(--terrazzo);--surface: var(--tile);--field: #ffffff;--line: var(--grout);--muted: var(--ink-soft);--top-bg: var(--glaze);--top-ink: var(--enamel-ink);--tab-on: var(--tile);--accent: var(--glaze);--accent-ink: var(--enamel-ink);--pill: transparent;--pill-ink: var(--ink);--chip: var(--tile);--ok: var(--g1);--danger: var(--g2);--radius: 2px;--radius-s: 2px;--shadow: none}html{background:var(--terrazzo) url(/looks/terrazzo.svg) 0 0 / 1040px 1040px repeat}body{background:transparent;color:var(--ink);font-size:15px}::selection{background:var(--glaze);color:var(--enamel-ink)}:focus-visible{outline:3px solid var(--glaze);outline-offset:2px}input{caret-color:var(--glaze)}h1,h2,h3,.brand{font-family:var(--enamel);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.pill,.shift span,.amount,.who,.files .size{font-variant-numeric:tabular-nums}.top{border-bottom:0;padding:14px 14px 0;align-items:flex-end;flex-wrap:wrap;column-gap:0;row-gap:0;background:linear-gradient(90deg,transparent 0 calc(100% / 6 - 3px),rgba(0,0,0,.18) calc(100% / 6 - 3px) calc(100% / 6)) 0 0 / calc(100% / 6) 100%,linear-gradient(180deg,rgba(255,255,255,.14),transparent 45%),linear-gradient(180deg,var(--glaze-light),var(--glaze) 40%,var(--glaze-deep))}.brand{font-size:34px;line-height:1;padding-bottom:12px;margin-right:14px;text-shadow:0 1px 0 rgba(0,0,0,.25)}.tabs{margin-left:auto;gap:3px;align-self:flex-end}.tabs a{background:var(--glaze-deep);color:#ffffffc7;font-weight:700;font-size:13px;padding:9px 12px 8px;border-radius:0;opacity:1;border-top:1px solid rgba(255,255,255,.12)}.tabs a.on{background:var(--tile);color:var(--glaze)}.signout{align-self:flex-end;margin:0 0 0 3px;border:0;border-top:1px solid rgba(255,255,255,.12);background:var(--glaze-deep);color:var(--enamel-ink);font-weight:700;font-size:13px;padding:9px 12px 8px;border-radius:0}.signout:hover{background:var(--glaze)}#app:has(.view[data-view=login]:not([hidden])){background-image:linear-gradient(180deg,#1d5c4f38,#15443999),url(/looks/cafe.jpg);background-size:cover;background-position:center}#app:has(.view[data-view=login]:not([hidden])) .foot{color:#ffffffd9;background:none;border:0;box-shadow:none}.view[data-view=login]{max-width:none;padding:8vh 20px 48px}.card{background:var(--tile);border:3px solid var(--grout);border-radius:2px;padding:26px 24px 24px;box-shadow:inset 0 0 0 1px #ffffffb3,0 10px 24px #15443947}.login h1{font-size:36px;line-height:1;margin-bottom:6px;color:var(--glaze)}.login .muted{font-size:15px}label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}input{border:2px solid var(--grout);border-radius:2px;background:#fff;padding:10px 12px;font-size:16px}input:focus{outline:0;border-color:var(--glaze)}input::placeholder{color:#857f74}.primary{position:relative;overflow:hidden;background:var(--glaze);color:var(--enamel-ink);font-family:var(--enamel);font-weight:800;font-size:20px;letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:12px;margin-top:22px}.primary:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#ffffff24,#fff0 42%,#0000001a);pointer-events:none}.primary:hover{background:var(--glaze-light)}.ghost{border:2px solid var(--grout);border-radius:2px;background:#fff;font-weight:700;font-size:15px}.ghost:hover{border-color:var(--glaze)}.fine{font-size:13px}.panel-head,.muted[data-uploads-note],.foot{background:var(--tile);border:3px solid var(--grout);border-radius:2px;box-shadow:inset 0 0 0 1px #ffffffb3}.panel-head{margin-bottom:12px;padding:10px 12px 8px}.muted[data-uploads-note]{padding:12px;margin:0}.foot{width:calc(100% - 32px);max-width:928px;margin:0 auto 16px}.panel-head h1{font-size:30px;line-height:1;color:var(--glaze)}.pill{font-size:13px;font-weight:700;padding:0}.hours{display:none}.grid{display:block}.day{display:grid;grid-template-columns:52px repeat(3,1fr);gap:3px;min-height:0;padding:3px;margin:0 0 10px;border:0;border-radius:2px;background:var(--grout);box-shadow:0 1px #fff9;animation:lay-in .42s cubic-bezier(.2,.9,.2,1) both}.day:nth-child(1){animation-delay:0ms}.day:nth-child(2){animation-delay:50ms}.day:nth-child(3){animation-delay:.1s}.day:nth-child(4){animation-delay:.15s}.day:nth-child(5){animation-delay:.2s}.day:nth-child(6){animation-delay:.25s}.day:nth-child(7){animation-delay:.3s}@keyframes lay-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.day h3{position:relative;display:grid;place-items:center;margin:0;background:var(--tile);color:var(--ink);font-size:19px;letter-spacing:.04em}.day[data-today]{background:var(--glaze);transform:translateY(-2px);box-shadow:0 4px 10px #15443947}.day[data-today] h3{color:var(--glaze)}.day[data-today] h3:after{content:"";position:absolute;left:8px;right:8px;bottom:6px;height:3px;background:var(--glaze)}.day[data-past]{opacity:.55}.shift{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;height:var(--tile-h);margin:0;padding:8px 8px 7px;border-radius:0;overflow:hidden;background:var(--g, var(--g0));color:var(--gi, var(--ink))}.shift:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,var(--sheen, .28)),#fff0 42%,#00000014);pointer-events:none}.shift b{position:relative;font-weight:700;font-size:15px}.shift span{position:relative;font-size:13px;color:inherit;letter-spacing:.02em}.shift[style*="--p:1"]{--g: var(--g1)}.shift[style*="--p:2"]{--g: var(--g2);--gi: var(--enamel-ink);--sheen: .1}.shift[style*="--p:3"]{--g: var(--g3)}.shift[style*="--p:4"]{--g: var(--g4);--gi: var(--enamel-ink);--sheen: .1}.shift.empty{display:flex;background:var(--tile);color:var(--ink-soft);justify-content:flex-end}.shift.empty:before{background:linear-gradient(160deg,#ffffff80,#fff0 42%)}.shift.empty b{font-weight:400;font-size:12px}.orders{background:var(--grout);border:0;border-radius:2px;padding:3px;display:grid;gap:3px}.order{grid-template-columns:1fr auto auto auto;grid-template-areas:"item amount status del" "who amount status del";min-height:var(--tile-h);padding:8px 10px;background:var(--tile);border:0;border-radius:0;font-size:15px;position:relative}.order:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#ffffff80,#fff0 42%);pointer-events:none}.order>*{position:relative}.order .item{font-weight:700;font-size:15px}.order .who{font-size:12px}.order .amount{font-weight:700}.status{display:inline-block;min-width:76px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:8px 6px;border-radius:0;background:var(--grout);color:var(--ink)}.status.done{background:var(--g1);color:var(--ink)}.status.ready{background:var(--glaze);color:var(--enamel-ink)}.status.preparing{background:var(--g0);color:var(--ink)}.status.queued{background:var(--grout);color:var(--ink)}.danger{border:0;background:var(--grout);color:var(--g2);padding:8px;border-radius:0;line-height:0}.danger svg{display:block}.danger .danger-word{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.danger:hover{background:var(--g2);color:var(--enamel-ink)}.files,.people{gap:3px;background:var(--grout);padding:3px;border-radius:2px}.files li,.people li{position:relative;min-height:var(--tile-h);background:var(--tile);border:0;border-radius:0;padding:10px 12px}.files li:before,.people li:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#ffffff80,#fff0 42%);pointer-events:none}.files li>*,.people li>*{position:relative}.files .icon{color:var(--glaze)}.avatar{width:40px;height:40px;border-radius:0;background:var(--g, var(--g0));color:var(--gi, var(--ink));font-family:var(--enamel);font-weight:800;font-size:20px}.people li[style*="--p:1"]{--g: var(--g1)}.people li[style*="--p:2"]{--g: var(--g2);--gi: var(--enamel-ink)}.people li[style*="--p:3"]{--g: var(--g3)}.people li[style*="--p:4"]{--g: var(--g4);--gi: var(--enamel-ink)}.files:empty,.people:empty,.orders:empty{display:none}.people b{font-size:15px}.people small,.foot{font-size:12px}@media(prefers-reduced-motion:reduce){.day{animation:none}}@media(max-width:480px){.top{padding:12px 12px 0;gap:0 10px}.brand{font-size:30px;padding-bottom:10px}.signout{order:1;margin:0 0 10px auto;align-self:center;padding:7px 10px;border-radius:2px;border-top:0}.tabs{order:2;width:100%;margin-left:0}.tabs a{flex:1 1 0;text-align:center;padding:9px 4px 8px;font-size:13px}.day{grid-template-columns:46px repeat(3,1fr)}.day h3{font-size:17px}.shift{padding:7px 6px 6px}.shift b{font-size:14px}.order{grid-template-columns:1fr auto auto;grid-template-areas:"item amount del" "who status del";row-gap:4px}.status{min-width:0;padding:4px 8px}.login h1{font-size:32px}#app:has(.view[data-view=login]:not([hidden])){background-image:linear-gradient(180deg,#1d5c4f38,#15443999),url(/looks/cafe-portrait.jpg)}}
