:root{--page: #f7f7f4;--sheet: #ffffff;--sheet-2: #f2f2ee;--rule: #d9dbd4;--rule-strong: #b9bcb3;--ink: #24282c;--ink-2: #5c636b;--ink-3: #646b73;--rail: #272b30;--rail-ink: #e9eae6;--rail-ink-2: #b4b9bf;--rail-line: #3a3f45;--rail-on: #363b41;--marigold: #e0a526;--marigold-ink: #6a4b07;--marigold-tint: #fbf3df;--tab-teal: #2e7d8c;--tab-plum: #7b4f8e;--tab-moss: #5f8a3b;--tab-slate: #3f5c7c;--ok: #2f6b3f;--ok-tint: #e6f0e8;--bad: #a33232;--bad-tint: #f7e6e6;--focus: #2e7d8c;--font: "Barlow", "Segoe UI", system-ui, sans-serif;--font-cond: "Barlow Condensed", "Arial Narrow", var(--font);--radius: 2px;--rail-w: 216px;--row: 40px;--sel: #fbf3df}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.45;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}::selection{background:var(--sel);color:var(--ink)}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.005em}h1{font-size:24px;line-height:1.2}h2{font-family:var(--font-cond);font-weight:600;font-size:16px;letter-spacing:.01em}h3{font-size:14px}p{margin:0}a{color:var(--ink);text-decoration-color:var(--marigold);text-decoration-thickness:1.5px;text-underline-offset:3px}a:hover{text-decoration-color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--ink-3)}.small{font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.label,th,.nav-group,.tab,.cond{font-family:var(--font-cond);font-weight:500;font-size:13px;letter-spacing:.02em}.paw{vertical-align:-2px;margin-right:6px;color:var(--ink-3)}.rail-paw{margin-top:auto;padding:0 24px 24px;color:var(--rail-line)}.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100%}.rail{background:var(--rail);color:var(--rail-ink);padding:16px 0 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:4px 16px 18px;font-weight:600;font-size:15px;line-height:1.2}.brand-mark{width:28px;height:28px;border-radius:3px;background:var(--marigold);color:var(--rail);display:grid;place-items:center;flex:none}.brand-mark svg{width:16px;height:16px}.brand small{display:block;font-weight:400;color:var(--rail-ink-2);font-size:12.5px;margin-top:2px}.nav{display:flex;flex-direction:column}.nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;height:34px;padding:0 16px 0 24px;color:var(--rail-ink-2);text-decoration:none;font-weight:500;position:relative}.nav a:hover,.nav a.active{color:var(--rail-ink);background:var(--rail-on)}.nav a.active:before{content:"";position:absolute;left:12px;top:12px;width:6px;height:10px;background:var(--marigold)}.nav-group{margin:14px 0 2px;padding:0 16px 0 24px;color:var(--rail-ink-2);text-transform:none}.count{min-width:22px;padding:0 6px;height:20px;border-radius:2px;background:var(--marigold);color:#2a1d02;font-size:12.5px;font-weight:600;display:grid;place-items:center}.rail-foot{margin-top:auto;padding:12px 16px 0;border-top:1px solid var(--rail-line);display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.rail-foot .muted,.rail-foot .btn.quiet{color:var(--rail-ink-2)}.rail-foot .btn.quiet:hover{color:var(--rail-ink);background:var(--rail-on)}.main{padding:24px 32px 56px;max-width:1240px;width:100%;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--rule-strong)}.page-head .lead{color:var(--ink-2);margin-top:4px;max-width:68ch}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--rule-strong);background:var(--sheet);cursor:pointer;font-weight:500;white-space:nowrap;text-decoration:none;color:var(--ink);transition:background .15s ease-out,border-color .15s ease-out}.btn:hover{background:var(--sheet-2);border-color:var(--ink-3)}.btn:active{background:var(--rule)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{background:#0f1215;border-color:#0f1215}.btn.danger{color:var(--bad);border-color:#dcb0b0}.btn.danger:hover{background:var(--bad-tint)}.btn.quiet{border-color:transparent;background:transparent}.btn.quiet:hover{background:var(--sheet-2);border-color:transparent}.btn.sm{height:28px;padding:0 9px;font-size:13px}.card{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius)}.card-pad{padding:16px 20px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;height:var(--row);padding:0 20px;border-bottom:1px solid var(--rule)}.split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:0 14px;height:var(--row);border-bottom:1px solid var(--rule);vertical-align:middle;white-space:nowrap}th{color:var(--ink-2);height:32px;background:var(--sheet-2);border-bottom:1px solid var(--rule-strong)}td.wrap{white-space:normal}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#fbfbf8}tr:focus-within td{background:#fbfbf8}td.tab-cell{width:0;padding:0;position:relative}.tab{position:absolute;left:0;top:9px;bottom:9px;width:4px;background:var(--tab-slate)}.tab.teal{background:var(--tab-teal)}.tab.plum{background:var(--tab-plum)}.tab.moss{background:var(--tab-moss)}.tab.slate{background:var(--tab-slate)}.tab.marigold,.tab.newmark{background:var(--marigold)}td.tab-cell .tab.newmark{left:6px}.tabs-cell{position:relative;display:block;width:10px;height:22px}.tabs-cell .tab{position:absolute;top:0;bottom:0;left:0;margin:0;height:auto}.tabs-cell .tab.newmark{left:6px}td .cell-main{font-weight:500}td .cell-sub{color:var(--ink-3);font-size:12.5px}.num{text-align:right}.struck .cell-main,.struck .line-text{position:relative;display:inline-block;color:var(--ink-3)}.struck .cell-main:after,.struck .line-text:after{content:"";position:absolute;left:-1px;right:-1px;top:52%;height:1.5px;background:var(--ink-2);transform-origin:left center}.struck-anim .cell-main:after,.struck-anim .line-text:after{animation:strike .2s ease-out both}@keyframes strike{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.status{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 7px;border-radius:var(--radius);font-family:var(--font-cond);font-size:13px;font-weight:500;letter-spacing:.02em;background:var(--sheet-2);color:var(--ink-2);border:1px solid var(--rule)}.status.new,.status.queued,.status.draft{background:var(--marigold-tint);color:var(--marigold-ink);border-color:#efd79a}.status.in_progress{background:#e9eff5;color:var(--tab-slate);border-color:#c9d6e3}.status.done,.status.sent,.status.published,.status.on,.status.completed,.status.confirmed{background:var(--ok-tint);color:var(--ok);border-color:#c4dcc9}.status.failed{background:var(--bad-tint);color:var(--bad);border-color:#e4bcbc}.field{display:flex;flex-direction:column;gap:5px}.field label{font-family:var(--font-cond);font-weight:500;font-size:13px;letter-spacing:.02em;color:var(--ink-2)}.field .help{color:var(--ink-3);font-size:12.5px}.field .error{color:var(--bad);font-size:12.5px}.input,.select,.textarea{width:100%;min-height:34px;padding:6px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--sheet);caret-color:var(--marigold-ink)}.input::placeholder{color:var(--ink-3)}.textarea{min-height:92px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:var(--focus)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--sheet-2);color:var(--ink-2)}.input.invalid{border-color:var(--bad)}.inline-input{width:auto;display:inline-block;min-height:30px;padding:3px 8px;margin:0 4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.form-grid .full{grid-column:1 / -1}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:48px;padding:8px 16px;border-bottom:1px solid var(--rule);background:var(--sheet)}.toolbar .input,.toolbar .select{width:auto;min-width:140px}.toolbar .spacer{flex:1}.segmented{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden}.segmented button{height:30px;padding:0 12px;border:0;background:var(--sheet);cursor:pointer;white-space:nowrap;border-right:1px solid var(--rule);font-family:var(--font-cond);font-size:13.5px;font-weight:500;letter-spacing:.02em;color:var(--ink-2)}.segmented button:last-child{border-right:0}.segmented button:hover{background:var(--sheet-2)}.segmented button.on{background:var(--ink);color:#fff}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:34px;height:18px;border-radius:9px;background:var(--rule-strong);position:relative;margin:0;cursor:pointer;transition:background .15s ease-out}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s ease-out}.switch input:checked{background:var(--ok)}.switch input:checked:after{transform:translate(16px)}.sheet-head{padding:20px 24px 16px;border-bottom:1px solid var(--rule-strong)}.sheet-date{font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}.greeting{font-size:18px;font-weight:400;line-height:1.4;color:var(--ink-2);max-width:60ch;margin-top:6px}.greeting a{color:var(--ink);font-weight:500}.greeting a{text-decoration-thickness:2px;text-underline-offset:5px}.sheet-body{display:grid;grid-template-columns:2fr 3fr}.sheet-col+.sheet-col{border-left:1px solid var(--rule)}.sheet-col-head{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--sheet-2);border-bottom:1px solid var(--rule-strong)}.hours{list-style:none;margin:0;padding:0}.hour{display:grid;grid-template-columns:60px 1fr;min-height:var(--row);border-bottom:1px solid var(--rule)}.hour:last-child{border-bottom:0}.hour-label{font-family:var(--font-cond);font-size:13px;color:var(--ink-3);padding:11px 0 0 20px;letter-spacing:.02em}.hour.now{box-shadow:inset 0 1.5px 0 var(--marigold)}.hour.now .hour-label{color:var(--marigold-ink);font-weight:600}.hour-items{display:flex;flex-direction:column}.visit{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;height:var(--row);padding:0 16px 0 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--rule)}.visit:last-child{border-bottom:0}.visit:hover{background:#fbfbf8}.visit .t{color:var(--ink-2)}.visit .who{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visit .who span{color:var(--ink-3);font-weight:400}.lines{list-style:none;margin:0;padding:0}.line{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:center;height:var(--row);padding:0 16px 0 0;border-bottom:1px solid var(--rule);position:relative;text-decoration:none;color:inherit}.line:hover{background:#fbfbf8}.line .tabs-cell{margin-left:4px}.line .line-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line .line-text b{font-weight:500}.line .line-text span{color:var(--ink-3)}.line .age{color:var(--ink-3);font-size:13px}.sheet-foot{display:flex;flex-wrap:wrap;gap:4px 0;min-height:var(--row);align-items:center;padding:8px 24px;border-top:1px solid var(--rule-strong);color:var(--ink-2);font-size:13.5px}.sheet-foot a{color:var(--ink)}.sheet-foot .sep{color:var(--rule-strong);padding:0 10px}.sheet-foot .warn{color:var(--marigold-ink);text-decoration-color:var(--marigold)}.sheet-foot .bad{color:var(--bad);text-decoration-color:var(--bad)}.empty-line{padding:12px 20px;color:var(--ink-3)}.figures{display:flex;flex-wrap:wrap;gap:4px 0;min-height:var(--row);align-items:center;padding:8px 20px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink-2);font-size:14px}.figures span{display:inline-flex;align-items:baseline;gap:6px}.figures span+span:before{content:"·";color:var(--rule-strong);padding:0 12px}.figures b{font-weight:600;font-size:18px;color:var(--ink);letter-spacing:-.01em}.legend .sw{display:inline-block;width:10px;height:10px;background:var(--ink);vertical-align:-1px;margin:0 4px 0 8px}.legend .sw.bad{background:var(--bad)}.activity{list-style:none;margin:0;padding:0}.activity li{display:grid;grid-template-columns:1fr auto;gap:12px;min-height:var(--row);align-items:center;padding:0 20px;border-bottom:1px solid var(--rule);font-size:13.5px}.activity li:last-child{border-bottom:0}.empty{padding:36px 24px;text-align:center;color:var(--ink-2)}.empty h3{margin-bottom:6px}.kv{display:grid;grid-template-columns:150px 1fr;gap:0;font-size:13.5px}.kv dt,.kv dd{padding:8px 0;border-bottom:1px solid var(--rule)}.kv dt{color:var(--ink-3);font-family:var(--font-cond);font-size:13px;letter-spacing:.02em}.kv dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.notes li{padding:10px 0;border-bottom:1px solid var(--rule);font-size:13.5px}.toast-host{position:fixed;bottom:20px;left:calc(var(--rail-w) + 32px);display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:var(--radius);box-shadow:0 8px 24px #24282c47;display:flex;gap:12px;align-items:center;min-width:260px;border-left:0}.toast:before{content:"";width:6px;height:14px;background:var(--marigold);flex:none}.toast.error{background:var(--bad)}.toast.error:before{background:#fff}.toast button{background:transparent;border:0;color:#fff;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#24282c73;display:grid;place-items:center;z-index:40;padding:20px}.modal{background:var(--sheet);border-radius:var(--radius);width:min(640px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 24px 60px #0000004d;border:1px solid var(--rule-strong)}.modal.wide{width:min(880px,100%)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.photo{border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--sheet);cursor:pointer;text-align:left;padding:0}.photo:hover{border-color:var(--ink-3)}.photo img,.photo .ph{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--sheet-2)}.photo .ph{display:grid;place-items:center;color:var(--ink-3);font-size:12px}.photo .meta{padding:8px 10px;font-size:12.5px}.slot{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--rule)}.slot img,.slot .ph{width:150px;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius);background:var(--sheet-2);display:grid;place-items:center;color:var(--ink-3);font-size:12px}.ph{background:var(--sheet-2);display:grid;place-items:center;color:var(--ink-3);font-size:12px}.bars{display:flex;align-items:flex-end;justify-content:space-between;height:120px;padding-top:8px;background:repeating-linear-gradient(to top,var(--rule) 0 1px,transparent 1px 30px)}.bars>div{flex:1;align-items:center}.bars .bar{width:2px;background:var(--ink);min-height:0}.bars .bar.alt{background:var(--bad)}.hbar{display:grid;grid-template-columns:180px 1fr 48px;gap:10px;align-items:center;font-size:13px;height:32px;border-bottom:1px solid var(--rule)}.hbar:last-child{border-bottom:0}.hbar .track{height:8px;background:var(--sheet-2);overflow:hidden}.hbar .fill{height:100%;background:var(--ink)}.rule-sentence{font-size:15px;line-height:2.3}.preview-frame{width:100%;height:420px;border:1px solid var(--rule);border-radius:var(--radius);background:#fff}.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule-strong);margin-bottom:16px}.tabs a{height:36px;display:inline-flex;align-items:center;padding:0 14px;text-decoration:none;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--font-cond);font-size:14px;font-weight:500;letter-spacing:.02em}.tabs a:hover{color:var(--ink)}.tabs a.active{color:var(--ink);border-color:var(--marigold)}.login{min-height:100vh;display:grid;grid-template-columns:var(--rail-w) 1fr}.login .rail{height:auto;min-height:100vh}.login-form{display:grid;place-items:center;padding:24px}.login-form .card{width:min(380px,100%)}.pager{display:flex;justify-content:space-between;align-items:center;height:var(--row);padding:0 16px;font-size:13px;color:var(--ink-2)}.check-row{display:flex;gap:8px;align-items:center}input[type=checkbox]{accent-color:var(--ink)}code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;background:var(--sheet-2);padding:1px 5px;border-radius:var(--radius)}@media(max-width:960px){.shell,.login{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.sheet-col:first-child{order:2}.sheet-col+.sheet-col{order:1}td.wrap{white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.toolbar .segmented{max-width:100%;overflow-x:auto}.rail{position:static;height:auto;min-height:0;padding:8px 0}.brand{padding:8px 16px}.nav{flex-direction:row;flex-wrap:wrap;padding:0 8px}.nav a{height:32px;padding:0 10px}.nav a.active:before{display:none}.nav-group{margin:4px 0 0;padding:0 10px;width:100%;font-size:12px}.rail-foot{margin-top:8px;padding-top:10px}.rail-paw{display:none}.main{padding:16px 16px 48px}.split,.form-grid,.sheet-body{grid-template-columns:1fr}.sheet-col+.sheet-col{border-left:0;border-top:1px solid var(--rule-strong)}.sheet-date{font-size:21px}.greeting{font-size:16px}.slot{grid-template-columns:1fr}.toast-host{left:16px;right:16px}.page-head{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation-duration:.01ms!important}}.bubble{max-width:72%;padding:8px 12px;border-radius:10px;font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.in{align-self:flex-start;background:var(--sheet-2);border:1px solid var(--rule);border-bottom-left-radius:2px}.bubble.out{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:2px}.bubble-meta{font-size:11.5px;margin-top:4px;opacity:.75}.bubble.out .bubble-meta .status{background:#ffffff26;color:#fff;border-color:transparent}.tab.bad{background:var(--bad)}@media(max-width:960px){.bubble{max-width:90%}}
