:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;color:#1a1a1a;--line: #d4d4d4;--head: #f1f3f4;--blue: #1a73e8;--green: #188038;--amber: #b06000;--red: #c5221f}*{box-sizing:border-box}body{margin:0;background:#fff}.topbar{display:flex;align-items:center;gap:1.25rem;padding:.45rem .75rem;border-bottom:1px solid var(--line);background:var(--head);position:sticky;top:0;z-index:20}.topbar h1{font-size:.95rem;margin:0}.topbar h1 a{color:inherit;text-decoration:none}.topbar nav{display:flex;gap:.25rem}.nav-item{color:#444;text-decoration:none;padding:.3rem .7rem;border-radius:4px}.nav-item.nav-active{background:#dfe3e6;color:#111;font-weight:600}#screen{padding:.6rem .75rem 5rem}.screen-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;flex-wrap:wrap}.bar-note{color:#777}button{font:inherit;padding:.3rem .65rem;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer}button:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-danger{background:#fff;border-color:var(--red);color:var(--red)}input,select{font:inherit;padding:.28rem .4rem;border:1px solid var(--line);border-radius:4px;background:#fff}.cell-input{width:100%;border-color:var(--blue);padding:.15rem .25rem}.money-input{width:5.5rem}.narrow{width:6rem}.add-form{display:flex;gap:.4rem;flex-wrap:wrap;margin:.7rem 0;align-items:center}.error-note{color:var(--red);padding:1rem 0}.empty-note{color:#777}.badge{display:inline-block;font-size:.78em;line-height:1;padding:.18rem .4rem;border-radius:8px;background:#eceff1;color:#333;white-space:nowrap}.badge-booked{background:#e8f0fe;color:var(--blue)}.badge-paid{background:#e6f4ea;color:var(--green)}.badge-unpaid{background:#fef7e0;color:var(--amber)}.badge-cancelled{background:#fce8e6;color:var(--red)}.badge-worker{background:#f3e8fd;color:#7627bb}.search-box{flex:1;min-width:12rem;max-width:26rem}.sheet-wrap{overflow:auto;max-height:calc(100vh - 8.5rem);border:1px solid var(--line);border-radius:4px;overscroll-behavior:contain}.sheet{border-collapse:collapse;width:100%;white-space:nowrap}.sheet th{position:sticky;top:0;z-index:5;background:var(--head);border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;font-weight:600;padding:.3rem .45rem}.sheet td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:.25rem .45rem;max-width:20rem;overflow:hidden;text-overflow:ellipsis}.sheet tr:hover td{background:#f8f9fa}.row-lapsed td{color:#999}.cell-editable{cursor:cell}.cell-editable:hover{background:#e8f0fe!important}.cell-readonly{background:#fafafa;color:#555}.cell-editing{padding:.05rem!important}.cell-pending{opacity:.55;font-style:italic}.cell-conflict{background:#fce8e6!important;color:var(--red)}.cell-error{outline:2px solid var(--red);outline-offset:-2px}.name-link{color:var(--blue);text-decoration:none;font-weight:600}.name-link:hover{text-decoration:underline}.name-lapsed{color:#999;text-decoration:line-through}.name-maybe{color:var(--amber)}.detail-head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.detail-head h2{margin:0;font-size:1.15rem}.back-link,.maps-link{color:var(--blue);text-decoration:none}.back-link:hover,.maps-link:hover{text-decoration:underline}.fields{border:1px solid var(--line);border-radius:4px;margin-bottom:1rem;max-width:44rem}.field-row{display:flex;gap:.75rem;padding:.28rem .6rem;border-bottom:1px solid var(--line)}.field-row:last-child{border-bottom:none}.field-label{flex:0 0 9.5rem;color:#666}.field-value{flex:1;min-height:1.2em;word-break:break-word}.clean-list{max-width:44rem}.clean-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;padding:.4rem .6rem;border:1px solid var(--line);border-radius:4px;margin-bottom:.35rem}.clean-cancelled{opacity:.6}.clean-main{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.clean-date{font-weight:600}.clean-time{color:#555}.clean-amount{font-variant-numeric:tabular-nums}.clean-badges{display:inline-flex;gap:.3rem;flex-wrap:wrap}.clean-note{flex-basis:100%;color:#666}.clean-actions{display:flex;gap:.3rem;flex-shrink:0}.done-form{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;width:100%}.danger-zone{margin-top:2rem}.day-card{border:1px solid var(--line);border-radius:6px;padding:.5rem .6rem;margin-bottom:.6rem;max-width:44rem}.day-today{border-color:var(--blue);border-width:2px}.day-head{margin:0 0 .35rem;font-size:.95rem;display:flex;justify-content:space-between;align-items:baseline}.day-total{color:var(--green);font-variant-numeric:tabular-nums}.sched-clean-main{color:inherit;text-decoration:none;flex:1;min-width:0}.sched-clean-line{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline}.sched-addr{color:#777;overflow:hidden;text-overflow:ellipsis}.day-notes{margin-top:.35rem}.day-note{color:#666;padding:.1rem 0}.day-note:before{content:"· "}.note-input{width:100%;border-style:dashed;color:#555}.day-ledger{margin-top:.35rem}.ledger-row{padding:.15rem 0}.ledger-cuts{color:#666}.closeout-btn{border-style:dashed;color:#555}.closeout-form{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-top:.3rem}.closeout-label{color:#666}#queue-chip{position:fixed;right:.75rem;bottom:.75rem;z-index:50;border-radius:6px;box-shadow:0 2px 8px #00000040;max-width:min(24rem,calc(100vw - 1.5rem))}.chip-summary{border:none;border-radius:6px;padding:.5rem .8rem;font-weight:600;color:#fff;width:100%;text-align:left}.chip-sending .chip-summary{background:var(--blue)}.chip-queued .chip-summary{background:var(--amber)}.chip-conflict .chip-summary{background:var(--red)}.chip-list{background:#fff;border:1px solid var(--line);border-bottom:none;border-radius:6px 6px 0 0;max-height:40vh;overflow-y:auto}.chip-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-bottom:1px solid var(--line)}.chip-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-state{color:#777;font-size:.85em;white-space:nowrap}.chip-dismiss{font-size:.85em;padding:.15rem .4rem}.chip-warn{color:var(--amber);font-weight:600}.load-error{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.6rem .75rem;margin-bottom:.6rem;border:1px solid var(--amber);border-radius:6px;background:#fef7e0;color:#5b4300}.load-error-offline{border-color:var(--amber)}.load-error-text{flex:1;min-width:12rem}.load-error button{min-height:44px;padding:.4rem 1rem}.owed-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem}.owed-total{font-size:1.9rem;font-weight:700;color:var(--amber);font-variant-numeric:tabular-nums}.owed-sub{color:#555}.owed-warn{flex-basis:100%;color:var(--red)}.owed-age{font-variant-numeric:tabular-nums;color:#777;min-width:2.6rem}.owed-age-old{color:var(--red);font-weight:600}.owed-chased{background:#fffdf5}.owed-badge{display:inline-block;margin-left:.3rem;padding:.05rem .35rem;border-radius:8px;background:var(--amber);color:#fff;font-size:.8em;font-weight:700}.clean-actions button,.closeout-form button,.note-save,.closeout-btn{min-height:44px;padding:.4rem .85rem}.nav-item{padding:.8rem .85rem;min-height:44px;display:inline-flex;align-items:center}.paid-label{color:#666;align-self:center}.badge-unconfirmed{background:#fef7e0;color:var(--amber)}.badge-suggested{background:#f3e8fd;color:#7627bb;border:1px dashed #7627bb}#toast{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%);z-index:60;max-width:min(28rem,calc(100vw - 1.5rem));padding:.7rem 1rem;border-radius:8px;background:#202124;color:#fff;font-weight:600;box-shadow:0 3px 12px #0000004d}.day-total-partial{color:var(--amber);font-weight:400;font-size:.85em}.day-total-wrap{display:inline-flex;gap:.15rem;align-items:baseline;flex-wrap:wrap;justify-content:flex-end}.day-total-booked{color:#5f6368;font-weight:400;font-variant-numeric:tabular-nums}.day-total-stale{color:var(--red);font-weight:600;font-size:.85em}.access-warn{color:var(--red);font-weight:700;background:#fce8e6;border-radius:4px;padding:.05rem .35rem;flex-basis:100%}.note-row{display:flex;gap:.4rem;align-items:center}.note-row .note-input{flex:1}.note-save{display:none}.note-save-live,.note-row:focus-within .note-save{display:inline-block}.closeout-field{display:inline-flex;align-items:center;gap:.3rem;color:#666}.closeout-field input{min-height:44px}.closeout-split{color:var(--green);font-weight:600}.closeout-split-bad{color:var(--red)}.field-row-toggle{justify-content:center}.field-toggle{border-style:dashed;color:#555;width:100%}.add-wrap:empty{display:none}.danger-zone{margin-top:2.5rem;max-width:44rem}.danger-zone summary{color:#888;cursor:pointer;padding:.4rem 0}.danger-zone[open] summary{color:var(--red)}.closeout-split-warn{color:var(--amber)}.badge-unknown{background:#eceff1;color:#5f6368;border:1px dashed #9aa0a6}.call-link{min-height:44px;display:inline-flex;align-items:center;padding:0 .6rem}.owed-unrecorded{margin-top:2rem;border-top:1px solid var(--line);padding-top:.8rem}.owed-unrecorded summary{cursor:pointer;padding:.4rem 0}.owed-note{color:#666;max-width:44rem}.sheet th:first-child,.sheet td:first-child{position:sticky;left:0;z-index:4;background:#fff;border-right:1px solid var(--line)}.sheet th:first-child{z-index:6;background:var(--head)}.sheet tr:hover td:first-child{background:#f8f9fa}.row-lapsed td:first-child{background:#fff}@media(min-width:60rem){#screen{padding:.8rem 1.25rem 5rem}.day-card,.clean-list,.fields{max-width:68rem}}.badge-tentative{background:#e8f0fe;color:#174ea6;border:1px dashed #174ea6}.cell-goto{cursor:pointer}.cell-goto:hover{background:#e8f0fe!important}.already-done{display:inline-flex;align-items:center;gap:.35rem;color:#444;min-height:44px}.pay-fields{display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap}.clean-history{margin-top:1rem;max-width:44rem}.clean-history summary{cursor:pointer;padding:.5rem 0;color:#444;font-weight:600;min-height:44px;display:flex;align-items:center}.clean-history[open] summary{border-bottom:1px solid var(--line);margin-bottom:.5rem}.cell-editing{display:flex;gap:.2rem;align-items:center}.cell-remove{flex:0 0 auto;padding:.1rem .35rem;border-color:var(--red);color:var(--red);line-height:1;min-height:0}
