:root{--bg:#f6f5f2;--paper:#fff;--ink:#1d1f1e;--muted:#6b6f6d;--line:#e2e0da;--line-soft:#efede8;--brand:#2f6f5e;--brand-ink:#fff;--ok:#176e2e;--ok-bg:#e6f4ea;--warn:#8a5a00;--warn-bg:#fff4d6;--bad:#a1201d;--bad-bg:#fbe9e7;--grey-bg:#ececea;--blue-bg:#e7eefb;--blue:#1d4f9c;--now:#d6453d;--hour-h:clamp(58px, calc((100vh - 190px) / var(--hours,12)), 84px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif}button,input{font:inherit;color:inherit}button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:8px;padding:.45rem .9rem}button:hover:not(:disabled){border-color:#b9b6ae}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}input[type=date]{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:.35rem .5rem}h1,h2,h3{margin:0;font-weight:650}h1{font-size:1.5rem}h2{font-size:1.1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--bad)}.spacer{flex:1}.app{flex-direction:column;min-height:100%;display:flex}.foot{text-align:center;padding:.75rem 16px}.card-page{flex:1;place-items:center;padding:2rem 16px;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;gap:1rem;width:min(28rem,100%);padding:1.75rem;display:grid}.top{background:var(--paper);border-bottom:1px solid var(--line);z-index:3;align-items:center;gap:.75rem;padding:.5rem 16px;display:flex;position:sticky;top:0}.brand{color:var(--brand);font-size:1.1rem;font-weight:750}.who{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}.day{flex:1;align-content:start;gap:.6rem;padding:.6rem 16px 1.5rem;display:grid}.day-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.banner{border-radius:8px;margin:0;padding:.5rem .9rem}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.error{background:var(--bad-bg);color:var(--bad)}.list{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.5rem .9rem}.grid{--gutter:3.25rem;background:var(--paper);border:1px solid var(--line);border-radius:12px;font-size:12.5px;line-height:1.3;overflow-x:auto}.grid-head,.grid-body{grid-template-columns:var(--gutter) repeat(var(--cols,1), minmax(8.5rem, 1fr));min-width:max-content;display:grid}.grid-head{z-index:2;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0}.col-head{border-left:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:.4rem;min-height:2.2rem;padding:.4rem .5rem;display:flex}.col-name{font-size:.95rem;font-weight:650}.grid-body{height:calc(var(--hour-h) * var(--hours,12));background-image:repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px var(--hour-h)), repeating-linear-gradient(to bottom, transparent 0 calc(var(--hour-h) / 2), var(--line-soft) calc(var(--hour-h) / 2) calc(var(--hour-h) / 2 + 1px), transparent calc(var(--hour-h) / 2 + 1px) var(--hour-h));position:relative}.grid-body .gutter{position:relative}.hour-label{color:var(--muted);font-variant-numeric:tabular-nums;background:var(--paper);padding:0 .15rem;font-size:.75rem;position:absolute;right:.4rem;transform:translateY(-50%)}.hour-label:first-child{transform:none}.col{border-left:1px solid var(--line-soft);position:relative}.col-dead{background:repeating-linear-gradient(135deg, transparent 0 8px, var(--line-soft) 8px 10px)}.now-line{left:var(--gutter);border-top:2px solid var(--now);z-index:1;pointer-events:none;height:0;position:absolute;right:0}.now-line:before{content:"";background:var(--now);border-radius:50%;width:8px;height:8px;position:absolute;top:-5px;left:-5px}.cell{border:1px solid var(--line);background:var(--paper);border-left-width:4px;border-radius:6px;flex-direction:column;gap:0;min-height:1.3rem;padding:.05rem .35rem .1rem;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 1px #0000000a}.cell>*{flex-shrink:0}.cell.short{padding-top:0;padding-bottom:0}.cell.short .cell-head{line-height:1.2}.cell-head{flex-wrap:nowrap;align-items:center;gap:.3rem;line-height:1.25;display:flex;overflow:hidden}.time{font-variant-numeric:tabular-nums;font-weight:650}.prov{white-space:nowrap;margin-left:auto;font-size:.72rem}.units{flex-wrap:wrap;gap:0 .6rem;line-height:1.2;display:flex}.unit{white-space:nowrap;align-items:baseline;gap:.2rem;max-width:100%;display:inline-flex}.name{text-overflow:ellipsis;font-weight:600;overflow:hidden}.mark{font-size:.85em}.mark.ok{color:var(--ok);font-weight:700}.mark.warn{color:var(--warn);font-weight:700}.mark.wa{font-weight:700}.mark.wa-confirmed{color:var(--ok)}.mark.wa-declined,.mark.wa-failed{color:var(--bad)}.mark.wa-text{color:var(--blue)}.money-mark{font-weight:650}.money-mark.collect{color:var(--bad)}.money-mark.credit{color:var(--ok)}.reason{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cell.narrow .cell-head{gap:.2rem}.cell.narrow .units{column-gap:.4rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.legend{margin:0;padding:0 .25rem}.legend-icon{text-align:center;min-width:1.1em;color:var(--ink);font-weight:700;display:inline-block}.chip{background:var(--grey-bg);white-space:nowrap;border-radius:999px;padding:0 .4rem;font-size:.72rem;line-height:1.4;display:inline-block}.chip-icon{font-weight:700}.chip.paid,.chip.recorded,.chip.confirmed{background:var(--ok-bg);color:var(--ok)}.chip.declined,.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.cancelled,.chip.paused{color:#4f524f;background:#e3e1dc}.chip.planned{background:var(--blue-bg);color:var(--blue)}.chip.flag{background:var(--warn-bg);color:var(--warn)}.status-paid{border-left-color:var(--ok);background:var(--ok-bg)}.status-recorded{border-left-color:var(--ok)}.status-confirmed{border-left-color:#6fbf8a}.status-planned{border-left-color:#9db7e6}.status-declined{border-left-color:var(--bad);background:var(--bad-bg)}.status-cancelled,.status-paused{color:var(--muted);border-left-color:#bdbbb5}.cell.flagged{border-left-color:var(--warn);background:var(--warn-bg)}.cancelled-cell{background:var(--grey-bg);color:var(--muted);border-left-color:#bdbbb5}.cancelled-cell .names{-webkit-text-decoration:line-through #bdbbb5;text-decoration:line-through #bdbbb5}.unplanned-cell{border-style:dashed dashed dashed solid;border-left-color:var(--ok)}@media (width<=720px){.who{display:none}:root{--hour-h:56px}}.cell.tappable{cursor:pointer}.cell.tappable:hover,.cell.tappable:focus-visible{box-shadow:0 0 0 2px var(--brand);z-index:1;outline:none}button.link{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.sheet-backdrop{z-index:10;padding:0 0 env(safe-area-inset-bottom);background:#14161559;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);border-radius:14px 14px 0 0;flex-direction:column;width:min(40rem,100%);max-height:88vh;display:flex;overflow:auto;box-shadow:0 -8px 30px #00000026}@media (width>=900px){.sheet-backdrop{background:#1416152e;justify-content:flex-end;align-items:stretch}.sheet{border-radius:0;width:min(36rem,100%);height:100%;max-height:none;box-shadow:-8px 0 30px #00000026}}.sheet-head{border-bottom:1px solid var(--line);background:var(--paper);align-items:center;gap:.75rem;padding:.8rem 1rem;display:flex;position:sticky;top:0}.sheet-title{flex:1;font-weight:600}.sheet-close{background:0 0;border:0;padding:0 .25rem;font-size:1.4rem;line-height:1}.sheet-body{gap:.75rem;padding:1rem;display:grid}.sheet-flags{flex-wrap:wrap;gap:.3rem;margin:0;display:flex}.sheet-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}button.big{padding:.7rem 1.1rem;font-weight:600}button.danger{border-color:var(--bad);color:var(--bad)}button.danger:hover:not(:disabled){background:var(--bad-bg)}.button-link{border:1px solid var(--line);color:var(--ink);background:var(--paper);border-radius:8px;padding:.45rem .9rem;text-decoration:none;display:inline-block}.menu-client{border:1px solid var(--line);border-radius:10px;gap:.5rem;padding:.6rem .75rem;display:grid}.menu-client-head{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.menu-actions{flex-wrap:wrap;gap:.4rem;display:flex}.menu-foot{align-items:center;gap:.5rem;display:flex}.pay-fee{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;font-size:1.4rem;display:flex}.pay-channels{gap:.5rem;display:grid}.pay-channels button{text-align:left}.choice-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}button.choice{border-radius:999px;padding:.35rem .8rem}button.choice.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.text{border:1px solid var(--line);background:var(--paper);width:100%;font:inherit;border-radius:8px;padding:.5rem .6rem}textarea.text{resize:vertical}.check{align-items:flex-start;gap:.5rem;display:flex}.check.inline{margin-left:.5rem;display:inline-flex}.detail{gap:.3rem;display:grid}.sec{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:.45rem 0 0;font-size:.72rem;font-weight:700}.kv{grid-template-columns:6.5rem 1fr;gap:.3rem .6rem;font-size:.92rem;display:grid}.kv>.k{color:var(--muted)}.lines{gap:.2rem;margin:0;padding:0;font-size:.92rem;list-style:none;display:grid}.lines li,.lines>div{flex-wrap:wrap;align-items:baseline;gap:.45rem;display:flex}.note-text{white-space:pre-wrap}.money-grid{flex-wrap:wrap;gap:.3rem 1rem;font-size:.92rem;display:flex}.money-grid b{font-size:1.02rem}.amount-neg{color:var(--bad)}.wa-reply{background:var(--blue-bg);border-radius:8px;padding:.3rem .55rem}.chip.note{background:var(--warn-bg);color:var(--warn);text-overflow:ellipsis;max-width:100%;overflow:hidden}@media (width<=600px){.kv{grid-template-columns:1fr}.kv>.k{margin-top:.3rem}}.form{gap:.6rem;display:grid}.form-row{grid-template-columns:8rem 1fr;align-items:center;gap:.5rem;display:grid}.form-row.col{grid-template-columns:1fr}.form-row select{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:.4rem .5rem}.contacts{border:1px solid var(--line);border-radius:10px;gap:.5rem;padding:.5rem .75rem .75rem;display:grid}.contacts legend{padding:0 .3rem;font-weight:600}.contact-row{grid-template-columns:1.4fr 1fr 1.2fr auto;align-items:center;gap:.4rem;display:grid}.radio{align-items:center;gap:.4rem;display:flex}.small-link{color:var(--brand);cursor:pointer;background:0 0;border:0;justify-self:start;font-size:.85rem;text-decoration:underline}@media (width<=600px){.form-row{grid-template-columns:1fr}.contact-row{grid-template-columns:1fr 1fr}}.toasts{z-index:20;gap:.4rem;width:min(26rem,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:#fff;border-radius:10px;align-items:center;gap:.5rem;padding:.6rem .8rem;font-size:.95rem;display:flex;box-shadow:0 6px 20px #0003}.toast.ok{background:#1f4d3a}.toast.warn{background:#6b4700}.toast.error{background:#7a1f1c}.toast-text{flex:1}.toast-action,.toast-close{color:#fff;background:0 0;border:1px solid #ffffff80;border-radius:6px;padding:.2rem .6rem}.toast-close{border:0;padding:0 .3rem;font-size:1.1rem}
