:root{--paper:#f7f6f2;--panel:#fff;--cream:#f4eadd;--line:#e7e3da;--ink:#2d3131;--muted:#7a7c78;--faint:#b8b9b4;--coral:#f04f6a;--coral-soft:#fde8ec;--leaf:#a5bd3a;--leaf-soft:#eef3d9;--leaf-ink:#5f7413;--up:#d9822b;--up-soft:#fbebd9;--sky:#00a0d2;--sky-soft:#e0f3fa;--sky-ink:#0b6f92;--shadow:0 1px 2px #2d31310f, 0 6px 20px #2d31310f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1e2222;--panel:#272c2c;--cream:#2f2a24;--line:#3a3f3f;--ink:#f1efe9;--muted:#a9aba6;--faint:#6e7170;--coral:#f5677e;--coral-soft:#3e2a30;--leaf:#b6cd4f;--leaf-soft:#2e3520;--leaf-ink:#cfe07a;--up:#e8994a;--up-soft:#3b2e20;--sky:#3fb8e0;--sky-soft:#1e3440;--sky-ink:#8ed6f0;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040}}:root[data-theme=dark]{--paper:#1e2222;--panel:#272c2c;--cream:#2f2a24;--line:#3a3f3f;--ink:#f1efe9;--muted:#a9aba6;--faint:#6e7170;--coral:#f5677e;--coral-soft:#3e2a30;--leaf:#b6cd4f;--leaf-soft:#2e3520;--leaf-ink:#cfe07a;--up:#e8994a;--up-soft:#3b2e20;--sky:#3fb8e0;--sky-soft:#1e3440;--sky-ink:#8ed6f0;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--paper);color:var(--ink);margin:0;font-family:Nunito,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.app{grid-template-columns:220px minmax(0,1fr);min-height:100dvh;display:grid}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:26px;padding:22px 18px;display:flex}.brand{flex-direction:column;gap:2px;line-height:1.1;display:flex}.brand .word{letter-spacing:-.02em;font-size:22px;font-weight:800}.brand .word b{color:var(--coral);font-weight:800}.brand .word i{color:var(--leaf);font-style:normal;font-weight:600}.brand small{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px}.nav{flex-direction:column;gap:4px;display:flex}.nav button{text-align:left;color:var(--muted);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-weight:700;display:flex}.nav button.on{background:var(--coral-soft);color:var(--coral)}.nav button:hover:not(.on){background:var(--paper);color:var(--ink)}.nav svg{flex:none;width:18px;height:18px}.side .foot{color:var(--faint);margin-top:auto;font-size:12px}.main{min-width:0;padding:26px 32px 48px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.script{color:var(--coral);margin:0;font-family:Meddon,cursive;font-size:15px}h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:30px;font-weight:800}.btn{letter-spacing:.04em;text-transform:uppercase;background:var(--coral);color:#fff;border:0;border-radius:10px;padding:11px 18px;font-size:12px;font-weight:800}.btn.ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line);text-transform:none;letter-spacing:0;font-size:14px;font-weight:700}.btn.leaf{background:var(--leaf);color:#233}.tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.tile .lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.tile .num{font-variant-numeric:tabular-nums;margin-top:4px;font-size:28px;font-weight:800;line-height:1.1}.tile .num small{color:var(--muted);margin-left:4px;font-size:13px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.tabs{background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:2px;padding:3px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:7px 14px;font-weight:700}.tabs button.on{background:var(--ink);color:var(--paper)}.tabs button .n{font-variant-numeric:tabular-nums;opacity:.7;margin-left:5px;font-weight:600}.search{background:var(--panel);border:2px solid var(--line);border-radius:12px;flex:1;align-items:center;gap:10px;min-width:240px;padding:11px 14px;font-size:17px;transition:border-color .15s;display:flex}.search:focus-within{border-color:var(--coral);box-shadow:0 0 0 4px var(--coral-soft)}.search kbd{color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font:600 11px Nunito,sans-serif}.search input{background:0 0;border:0;flex:1;min-width:0}.search input:focus{outline:none}.search svg{width:20px;height:20px;color:var(--coral)}.list{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;overflow:clip}.row{border-top:1px solid var(--line);text-align:left;background:0 0;border-bottom:0;border-left:0;border-right:0;grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,1fr) 90px;align-items:center;gap:12px;width:100%;padding:13px 18px;display:grid}.row:first-child{border-top:0}.row.head{background:var(--paper);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-block:9px;font-size:11px;font-weight:700}.row:not(.head):hover{background:var(--cream)}.who{align-items:center;gap:12px;min-width:0;display:flex}.av{background:var(--leaf-soft);width:36px;height:36px;color:var(--leaf-ink);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.who .nm{white-space:nowrap;text-overflow:ellipsis;font-weight:800;overflow:hidden}.who .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.num{font-variant-numeric:tabular-nums}.delta{font-variant-numeric:tabular-nums;font-weight:800}.delta.down{color:var(--leaf-ink)}.delta.up{color:var(--up)}.pill{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.pill.active{background:var(--leaf-soft);color:var(--leaf-ink)}.pill.past{background:var(--line);color:var(--muted)}.pill.due{background:var(--coral-soft);color:var(--coral)}.pill.new{background:var(--cream);color:var(--ink)}.pill.card-soon{background:var(--up-soft);color:var(--up)}.field-error{color:var(--coral);margin:4px 0 0;font-size:12px;font-weight:700}.spark{width:90px;height:26px}.m-only{display:none}.msg{flex-direction:column;gap:4px;max-width:78%;display:flex}.msg .bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:10px 13px;font-size:14px}.msg .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.msg.in{align-self:flex-start}.msg.in .bubble{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.out{align-self:flex-end;align-items:flex-end}.msg.out .bubble{background:var(--leaf-soft);border:1px solid var(--leaf);border-bottom-right-radius:4px}.msg.note{align-self:center;align-items:center;max-width:90%}.msg.note .bubble{background:var(--cream);border:1px dashed var(--line);font-style:italic}.msg .subj{margin-bottom:4px;font-style:normal;font-weight:800}.thread{flex-direction:column;gap:12px;padding:4px 2px;display:flex}.chan{letter-spacing:.06em;text-transform:uppercase;border-radius:5px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-flex}.chan.email{background:var(--sky-soft);color:var(--sky-ink)}.chan.sms{background:var(--cream);color:var(--ink)}.chan.note{background:var(--coral-soft);color:var(--coral)}.daysep{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);align-self:stretch;margin:6px 0;font-size:11px;font-weight:800}.compose{border:2px solid var(--line);background:var(--panel);border-radius:14px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.compose:focus-within{border-color:var(--coral)}.compose textarea{resize:vertical;background:0 0;border:0;width:100%;min-height:72px;padding:0}.compose textarea:focus,.compose input:focus{outline:none}.compose .subj-in{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;width:100%;padding:0 0 7px;font-weight:800}.compose .bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.compose .bar .grow{flex:1}.synced{background:var(--sky-soft);color:var(--sky-ink);border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:700;display:flex}.synced svg{flex:none;width:16px;height:16px}.chev{color:var(--faint)}.empty{text-align:center;color:var(--muted);padding:40px}.back{color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-weight:700;display:inline-flex}.back:hover{color:var(--coral)}.head2{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.head2 .meta{color:var(--muted);margin-top:4px;font-size:14px}.head2 .meta span+span:before{content:"·";color:var(--faint);margin:0 8px}.cols{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (width<=900px){.cols{grid-template-columns:minmax(0,1fr)}}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px}.card h2{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;font-size:13px;font-weight:800;display:flex}.card h2 .r{letter-spacing:0;text-transform:none;font-size:13px;font-weight:600}.stack{flex-direction:column;gap:18px;min-width:0;display:flex}.chart{width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-family:Nunito,sans-serif;font-size:11px}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .ln{fill:none;stroke:var(--leaf);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--leaf);opacity:.12}.chart .dot{fill:var(--panel);stroke:var(--leaf);stroke-width:2px}.chart .dot.last{fill:var(--coral);stroke:var(--coral)}.chart .goal{stroke:var(--coral);stroke-dasharray:4 4;stroke-width:1.2px}.chart .lbl{fill:var(--ink);font-size:12px;font-weight:800}.wi-form{background:var(--cream);border-radius:12px;grid-template-columns:120px 1fr auto;align-items:end;gap:10px;margin-bottom:14px;padding:12px 14px;display:grid}@media (width<=560px){.wi-form{grid-template-columns:1fr 1fr}.wi-form .btn{grid-column:1/-1}}.fld{flex-direction:column;gap:4px;display:flex}.fld label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.fld input,.fld textarea,.fld select{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:100%;padding:9px 11px}.fld input.big{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.log{border-collapse:collapse;width:100%}.log th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:11px;font-weight:700}.log td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}.log tr:last-child td{border-bottom:0}.log .wk{color:var(--muted);font-size:12px}.log .note{color:var(--muted);font-size:13px}.appointment-history-log .actions{flex-wrap:wrap}.log tr.start td{background:var(--cream)}.log tr.start .wk{color:var(--coral);font-weight:800}.stat3{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.stat3 div{background:var(--paper);border-radius:10px;padding:10px 12px}.stat3 .lbl{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.stat3 .v{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.stat3 .v small{color:var(--muted);font-size:12px;font-weight:600}.notes{flex-direction:column;gap:12px;display:flex}.note-item{border-left:3px solid var(--leaf);padding:2px 0 2px 12px}.note-item.pin{border-left-color:var(--coral)}.note-item .d{color:var(--muted);font-size:12px;font-weight:700}.note-item p{margin:2px 0 0}.note-add{flex-direction:column;gap:8px;margin-top:14px;display:flex}.note-add textarea{resize:vertical;min-height:80px}.note-item p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}.kv{grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;display:grid}.kv dt{color:var(--muted);font-weight:700}.kv dd{margin:0}.plan{background:var(--cream);border-radius:10px;padding:12px 14px;font-size:14px}.plan b{margin-bottom:2px;display:block}.sample{color:var(--faint);margin-top:18px;font-size:12px}.toast{z-index:60;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--paper);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:999px;padding:10px 16px;font-weight:700;transition:opacity .2s;position:fixed;transform:translate(-50%)}.toast.show{opacity:1}@media (prefers-reduced-motion:reduce){.toast{transition:none}}.av.M{background:var(--sky-soft);color:var(--sky-ink)}.av.F{background:var(--coral-soft);color:var(--coral)}.av.past{background:var(--line);color:var(--muted)}.sx{letter-spacing:.06em;vertical-align:middle;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:800;display:inline-block}.sx.F{background:var(--coral-soft);color:var(--coral)}.sx.M{background:var(--sky-soft);color:var(--sky-ink)}.seg{background:var(--panel);border:1px solid var(--line);border-radius:10px;order:3;gap:2px;padding:3px;display:flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:7px 12px;font-weight:700}.seg button.on{background:var(--cream);color:var(--ink)}.login{background:var(--paper);place-items:center;min-height:100dvh;padding:24px;display:grid}.login .box{background:var(--panel);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:14px;padding:30px 28px;display:flex}.login .brand .word{font-size:30px}.login p{color:var(--muted);margin:0;font-size:14px}.modal{z-index:20;background:#14161673;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal .box{background:var(--panel);width:100%;max-width:560px;max-height:calc(100dvh - 32px);box-shadow:var(--shadow);border-radius:18px;padding:22px 24px;overflow:auto}.charge-card-form>.fld+.fld{margin-top:12px}.modal.client-form-modal .box{min-width:0;min-height:0;max-height:calc(var(--dialog-height) - var(--dialog-padding-top) - var(--dialog-padding-bottom));flex-direction:column;padding:0;display:flex;overflow:hidden}.modal.client-form-modal{--dialog-padding-top:16px;--dialog-padding-bottom:16px;--dialog-viewport-height:100vh;--dialog-height:min(var(--visual-viewport-height,var(--dialog-viewport-height)), calc(var(--dialog-viewport-height) - var(--visual-viewport-top,0px)));top:var(--visual-viewport-top,0px);height:var(--dialog-height);padding-top:var(--dialog-padding-top);padding-bottom:var(--dialog-padding-bottom);box-sizing:border-box;justify-content:center;align-items:center;display:flex;bottom:auto}@supports (height:100svh){.modal.client-form-modal{--dialog-viewport-height:100svh}}.modal.client-form-modal input,.modal.client-form-modal select,.modal.client-form-modal textarea{min-width:0;max-width:100%;font-size:16px}.modal.client-form-modal .fld{min-width:0}.client-form-header{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;display:flex}.modal.client-form-modal .client-form-header h2{margin:0}.client-form-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:20px 24px;overflow-y:auto}.modal.client-form-modal .client-form-footer{border-top:1px solid var(--line);background:var(--panel);flex:none;margin:0;padding:14px 24px}@media (width<=600px){.modal.client-form-modal{--dialog-padding-top:max(8px, env(safe-area-inset-top,0px));--dialog-padding-bottom:max(8px, env(safe-area-inset-bottom,0px));padding:var(--dialog-padding-top) max(8px, env(safe-area-inset-right,0px)) var(--dialog-padding-bottom) max(8px, env(safe-area-inset-left,0px))}.modal.client-form-modal .box{border-radius:14px}.client-form-header{padding:12px 16px}.client-form-body{padding:16px}.modal.client-form-modal .client-form-footer{padding:12px 16px}}.modal h2{margin:0 0 14px;font-size:20px;font-weight:800}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid2 .full{grid-column:1/-1}.appointment-booking-slot{grid-template-columns:minmax(0,1fr) minmax(0,.7fr);align-items:end;gap:8px;display:grid}.appointment-booking-slot .fld{min-width:0}.appointment-booking-slot input{min-width:0;max-width:100%}@media (width<=480px){.grid2,.appointment-booking-slot{grid-template-columns:1fr}}.radio{gap:6px;display:flex}.radio label{border:1px solid var(--line);cursor:pointer;background:var(--panel);text-transform:none;letter-spacing:0;color:var(--ink);border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px;font-size:14px;font-weight:700;display:flex}.radio input{opacity:0;width:0;height:0;position:absolute}.radio label:has(input:checked){border-color:var(--coral);background:var(--coral-soft);color:var(--coral)}.radio label.m:has(input:checked){border-color:var(--sky);background:var(--sky-soft);color:var(--sky-ink)}.radio label:has(input:focus-visible){outline:2px solid var(--coral);outline-offset:2px}.actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.x{color:var(--faint);opacity:0;background:0 0;border:0;border-radius:6px;padding:0 6px;font-size:16px;transition:opacity .12s}.x:hover{color:var(--coral);background:var(--coral-soft)}tr:hover .x,.note-item:hover .x,.x:focus-visible{opacity:1}@media (hover:none){.x{opacity:.6}}.note-item{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.note-item>div:first-child{min-width:0}.note-item .tools{flex:none;gap:2px;display:flex}.side .foot{flex-direction:column;gap:6px;display:flex}.side .foot button{color:var(--muted);text-align:left;background:0 0;border:0;padding:0;font-size:12px;font-weight:700}.side .foot button:hover{color:var(--coral)}.hint{color:var(--muted);font-size:12px}.money{font-variant-numeric:tabular-nums;font-weight:800}.money.credit{color:var(--leaf-ink)}.money.owed{color:var(--coral)}.money.zero{color:var(--muted);font-weight:600}.dtabs{border-bottom:2px solid var(--line);gap:4px;margin-bottom:18px;display:flex}.dtabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;margin-bottom:-2px;padding:10px 14px;font-weight:800}.dtabs button.on{color:var(--ink);border-bottom-color:var(--coral)}.dtabs button .bal{margin-left:6px;font-size:12px}.ledger-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}@media (width<=560px){.ledger-form{grid-template-columns:1fr}}.lf{background:var(--cream);border-radius:12px;grid-template-columns:110px minmax(0,1fr);align-items:end;gap:10px;padding:12px 14px;display:grid}.lf .btn{grid-column:1/-1}.live-banner{background:var(--coral);color:#fff;text-align:center;padding:6px 16px;font-size:13px;font-weight:800}.lf-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);grid-column:1/-1;margin:0;font-size:13px;font-weight:800}.auto-charge{letter-spacing:0;text-transform:none;align-items:center;gap:8px;display:flex}.auto-charge .info{border:1px solid var(--line);background:var(--paper);color:var(--muted);cursor:help;border-radius:50%;width:22px;height:22px;padding:0;font-size:12px;font-weight:800}.lf.pay{background:var(--leaf-soft)}.card-chip{background:var(--paper);border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.card-chip .brand{letter-spacing:.08em;text-transform:uppercase;color:var(--sky-ink);background:var(--sky-soft);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:800}.card-chip .num{letter-spacing:.06em;font-weight:800}.card-chip .exp{color:var(--muted);font-size:13px}.log td.r{text-align:right}.log .running{color:var(--muted);font-size:12px}@media (width<=760px){.log.appointment-history-log{table-layout:auto}.appointment-history-log th:first-child,.appointment-history-log td:first-child{width:7rem;min-width:7rem}.app{grid-template-columns:minmax(0,1fr)}.side{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:14px;padding:12px 16px}.side .foot{display:none}.nav{flex-direction:row;gap:2px;margin-left:auto}.nav button span{display:none}.main{padding:18px 16px 40px}.row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px}.m-only{display:block}.m-only .money{font-size:13px}.row .hide-m{display:none}.row .nm{font-size:14px}.tiles{grid-template-columns:1fr 1fr;gap:10px}.tile{padding:12px}.tile .num{font-size:22px}.toolbar{gap:8px}.tabs,.seg{width:100%;overflow-x:auto}.tabs button,.seg button{white-space:nowrap;padding:7px 10px;font-size:13px}.search{width:100%;min-width:0;font-size:16px}.head2 h1{font-size:24px}.stat3{gap:6px}.stat3 div{padding:8px 10px}.stat3 .v{font-size:18px}.card{padding:14px}.log th,.log td{padding-inline:5px;font-size:13px}.stat3{grid-template-columns:1fr 1fr}.stat3 div:last-child{grid-column:1/-1}.lf,.ledger-form{grid-template-columns:1fr}.dtabs{overflow-x:auto}.head2>div:last-child{width:100%}.head2 .btn{flex:1;min-width:0}.card-chip{flex-wrap:wrap}.lf .fld .big{font-size:20px}.stat3 .v{word-break:break-word}#l-packs .btn{flex:1}.side .brand .word{font-size:18px}.side .brand small{display:none}.nav button{justify-content:center;min-width:44px;min-height:44px;padding:8px}.dtabs button{padding:8px 10px;font-size:14px}.msg{max-width:92%}}html,body{margin:0}:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html,body{overflow-x:clip}a{color:inherit}.btn:disabled{opacity:.55;cursor:not-allowed}.btn,.tabs button,.seg button,.dtabs button,.nav button,.row{min-height:44px}.x{min-width:32px;min-height:32px}.linkish{color:var(--coral);background:0 0;border:0;padding:0;font-size:13px;font-weight:800}.error{color:var(--coral);margin:0;font-size:14px;font-weight:700}.row{cursor:pointer;font-size:15px}.log input{border:1px solid var(--line);background:var(--panel);border-radius:6px;width:100%;min-width:0;padding:4px 6px}.log.weighins input{min-height:44px}.log.weighins .x{min-width:44px;min-height:44px}.log .edit-row td{background:var(--paper)}.loading{text-align:center;color:var(--muted);padding:40px}.gmail-status{flex-wrap:wrap;align-items:center;gap:10px;display:flex}@media (width<=760px){.log.weighins tr:not(.edit-row)>th:nth-child(5),.log.weighins tr:not(.edit-row)>td:nth-child(5){display:none}}.chan.call{background:var(--coral-soft);color:var(--coral)}.chan.whatsapp{background:var(--leaf-soft);color:var(--leaf-ink)}.modal.confirm{z-index:40;animation:.12s ease-out fade-in}.modal.confirm .box{max-width:420px;padding:24px 26px 20px}.modal.confirm h2{margin:0 0 8px;font-size:19px}.modal.confirm p{color:var(--muted);white-space:pre-wrap;word-break:break-word;margin:0;font-size:15px}.modal.confirm .actions{flex-wrap:wrap;margin-top:22px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.modal.confirm{animation:none}}@media (width>=761px){.side{align-self:start;height:100dvh;position:sticky;top:0;overflow-y:auto}}.cal-nav{flex-wrap:wrap;gap:8px;display:flex}.cal{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:10px;display:grid}.cal.sat{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-day{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;min-width:0;min-height:160px;padding:10px;display:flex}.cal-day.today{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}.cal-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:6px;margin-bottom:2px;padding:2px 4px 6px;display:flex}.cal-head-label{flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.cal-day-link{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px 6px 0 0}.cal-day-link:hover,.cal-day-link:focus-visible{background:var(--cream)}.cal-day-link:focus-visible{outline:2px solid var(--coral);outline-offset:1px}.cal-head .dn{font-weight:800}.cal-head .dd{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:700}.cal-head .dc{color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px;font-weight:800}.cal-day.today .dn{color:var(--coral)}.cal-empty{color:var(--faint);padding:6px 4px;font-size:13px}.cal-item{text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:0;width:100%;min-width:0;min-height:44px;padding:6px;display:flex}.cal-item:hover{background:var(--cream)}.cal-item .av{width:30px;height:30px;font-size:11px}.cal-who{flex-direction:column;flex:auto;gap:2px;width:100%;min-width:0;display:flex}.cal-who .nm{white-space:normal;overflow-wrap:break-word;word-break:normal;min-width:0;font-size:13px;font-weight:800}.cal-week-status,.cal-week-time,.cal-week-extra{white-space:normal;overflow-wrap:break-word;word-break:normal;max-width:100%;font-size:11px;line-height:1.35;display:block}.cal-week-status{color:var(--muted);font-weight:700}.cal-week-time{color:var(--faint);font-variant-numeric:tabular-nums}.cal-week-extra{color:var(--faint)}.cal-item.missed .nm{color:var(--coral)}.cal-item.weighed{opacity:.85}@media (width<=1100px){.cal,.cal.sat{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.cal,.cal.sat{grid-template-columns:minmax(0,1fr)}.cal-day{min-height:0}}.client-top{z-index:10;background:var(--paper);margin:-26px -32px 0;padding:18px 32px 0;position:sticky;top:0}.client-top .head2{margin-bottom:14px}.client-top .dtabs{margin-bottom:0}.client-top+*{margin-top:18px}@media (width<=760px){.client-top{margin:-18px -16px 0;padding:10px 16px 0}.client-top .back{min-height:44px;margin-bottom:4px}.client-top .head2{gap:8px;margin-bottom:8px}.client-top .head2 .meta{display:none}.client-top .head2 .btn{min-height:36px;padding:6px 10px;font-size:13px}}.price-list{flex-direction:column;gap:8px;display:flex}.price-row{grid-template-columns:minmax(0,1fr) 110px auto;align-items:center;gap:8px;display:grid}.price-row input{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:100%;min-width:0;padding:9px 11px}.packs{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.cal-nav{align-items:center}.cal-nav .tabs{margin-right:4px}.cal-legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin:-8px 0 14px;font-size:13px;font-weight:700;display:flex}.cal-legend span{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.weighed{background:var(--leaf)}.dot.missed{background:var(--coral)}.dot.upcoming{background:var(--faint)}.month{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.month-row{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month-head div{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--paper);border-bottom:1px solid var(--line);padding:8px 10px;font-size:11px;font-weight:800}.month-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;flex-direction:column;gap:3px;min-width:0;min-height:118px;padding:6px 6px 8px;display:flex}.month-row .month-cell:last-child{border-right:0}.month-row:last-child .month-cell{border-bottom:0}.month-cell:hover{background:var(--cream)}.month-cell.outside{background:var(--paper)}.month-cell.outside .month-date,.month-cell.outside .month-names{opacity:.45}.month-date{font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;padding:0 4px;font-weight:800;display:flex}.month-date small{color:var(--muted);font-size:11px;font-weight:700}.month-cell.today .month-date span{background:var(--coral);color:#fff;border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 6px;display:inline-grid}.month-names{flex-direction:column;gap:2px;min-width:0;display:flex}.month-name{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;min-width:0;padding:2px 4px;font-size:12px;font-weight:700;display:flex;overflow:hidden}.month-name:hover{background:var(--panel)}.month-name.missed{color:var(--coral)}.month-name.weighed{color:var(--leaf-ink)}.month-more{color:var(--muted);padding:0 4px;font-size:11px;font-weight:700}.month-dots{flex-wrap:wrap;gap:3px;padding:0 2px;display:none}.month-dots span{color:#fff;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;display:inline-grid}.month-dots .weighed{background:var(--leaf);color:#233}.month-dots .missed{background:var(--coral)}.month-dots .upcoming{background:var(--faint)}@media (width<=760px){.month-head div{text-align:center;letter-spacing:0;padding:6px 2px}.month-cell{min-height:64px;padding:4px 2px}.month-date{justify-content:center;padding:0;font-size:13px}.month-date small,.month-names{display:none}.month-dots{justify-content:center;display:flex}.cal-nav{width:100%}.cal-nav .tabs{flex:1;width:auto}}.lf{grid-template-columns:minmax(0,1fr)}@media (width<=760px){:root{--side-h:69px}.side{z-index:20;position:sticky;top:0}.client-top{top:var(--side-h)}}.cal-step{align-items:stretch;gap:6px;display:flex}.cal-arrow{color:var(--ink);align-items:center;gap:6px;padding:9px 14px;display:inline-flex}.cal-arrow svg{color:var(--coral);flex:none}.cal-arrow:hover{border-color:var(--coral);background:var(--coral-soft)}.cal-today{padding:9px 14px}@media (width<=760px){.cal-step{width:100%}.cal-arrow{flex:1;justify-content:center;padding:8px;font-size:13px}.cal-today{padding:8px 10px;font-size:13px}}.seg.balance-filter{flex-wrap:wrap;order:4}.seg button .n{font-variant-numeric:tabular-nums;opacity:.7;margin-left:5px;font-weight:600}.seg.balance-filter button.warn.on{background:var(--coral-soft);color:var(--coral)}.row.head .sort{all:unset;cursor:pointer;border-radius:4px;align-items:center;gap:5px;display:inline-flex}.row.head .sort:hover,.row.head .sort.on{color:var(--ink)}.row.head .sort:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.row.head .sort .arrow{opacity:.45;font-size:9px}.row.head .sort.on .arrow{opacity:1;color:var(--coral)}.owed-for{color:var(--muted);font-size:12px;font-weight:700}.owed-for.late{color:var(--coral)}.owed-banner{border:1px solid var(--coral);background:var(--coral-soft);border-left-width:5px;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:14px 18px;display:flex}.owed-banner strong{color:var(--coral);font-size:16px;display:block}.owed-banner span{color:var(--ink);font-size:13px}.owed-banner.soon{border-color:var(--up);background:var(--up-soft)}.owed-banner.soon strong{color:var(--up)}.plan-list{flex-direction:column;gap:12px;display:flex}.plan-row{border-bottom:1px dashed var(--line);flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.plan-row-top{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}.plan-row input,.plan-row textarea{border:1px solid var(--line);background:var(--panel);width:100%;min-width:0;font:inherit;border-radius:8px;padding:9px 11px}.plan-row input{font-weight:700}.plan-row textarea{resize:vertical}.plan .plan-notes{color:var(--muted);margin-top:6px}.logo-pick{flex-wrap:wrap;align-items:center;gap:14px;margin-top:12px;display:flex}.logo-preview{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:12px;flex:none;width:64px;height:64px;padding:4px}.logo-preview.empty{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--paper);border-style:dashed;place-items:center;font-size:10px;font-weight:800;display:grid}.modal .box.statement-box{max-width:760px}.statement-box h2{align-items:center;gap:10px;display:flex}.statement-box h2 .r{color:var(--muted);margin-left:auto;font-size:13px;font-weight:800}.statement-preview{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;height:46vh;min-height:300px;margin-top:12px;overflow:hidden}.statement-preview iframe{transform-origin:0 0;border:0;display:block}.statement-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.statement-actions .grow{flex:1}@media (width<=560px){.statement-actions .hint{width:100%}.statement-actions .btn{flex:1}.statement-preview{height:40vh}}.sub-h{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:20px 0 10px;font-size:11px;font-weight:800}.switches{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;display:grid}.switches label{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:9px 11px;font-size:14px;font-weight:700;display:flex}.switches label:has(input:checked){border-color:var(--leaf);background:var(--leaf-soft);color:var(--ink)}.switches input{accent-color:var(--coral);flex:none;width:17px;height:17px;margin:0}.book-top{z-index:10;background:var(--paper);margin:-26px -32px 0;padding:26px 32px 14px;position:sticky;top:0}.book-top .toolbar{margin-bottom:0}.row.head{top:var(--book-top-h,0px);z-index:5;position:sticky}@media (width<=760px){.book-top{top:calc(var(--side-h) - var(--book-intro-h,0px));margin:-18px -16px 0;padding:18px 16px 10px}.book-top .tabs{flex-wrap:wrap;overflow:visible}.row.head{top:calc(var(--side-h) + var(--book-top-h,0px) - var(--book-intro-h,0px))}}.staff-list{margin:0 0 16px;padding:0;list-style:none}.staff-list li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.staff-list li>span:first-child{overflow-wrap:anywhere;min-width:0}.staff-actions{align-items:center;gap:8px;display:flex}.credit-warning{border:1px solid var(--up);background:var(--up-soft);color:var(--ink);border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:13px;line-height:1.4}.credit-warning b{color:var(--up)}.ledger-filters{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.ledger-filters .fld{flex:180px}@media (height<=500px){.side,.client-top,.book-top,.row.head{position:static}.side{height:auto;max-height:none;overflow:visible}}@media (width<=760px){:root body :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:max(16px,1em)}}.history-prompt{padding-right:64px;position:relative}.history-prompt .history-prompt-close{min-width:44px;min-height:44px;padding:0;font-size:20px;line-height:1;position:absolute;top:10px;right:10px}@media (width<=760px){.x{min-width:44px;min-height:44px;color:var(--muted)}.back{min-height:44px}.linkish{min-height:44px;padding-left:4px;padding-right:4px}.chart text{font-size:13px}}.dtabs .tab-short{display:none}@media (width<=760px){.dtabs button{text-align:center;flex:1 1 0;min-width:0;padding:8px 4px;line-height:1.25}.dtabs .tab-long{display:none}.dtabs .tab-short{display:inline}.dtabs button .bal{margin:2px 0 0;font-size:11px;display:block}.log.weighins td:last-child .x{min-width:34px;padding:0 4px}.log.weighins th,.log.weighins td{padding-inline:4px}.log.weighins th{letter-spacing:.02em}}.edit-stack{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:6px 0 4px;display:grid}.edit-stack>b,.edit-stack .edit-stack-wide{grid-column:1/-1}.edit-stack input{box-sizing:border-box;width:100%;min-height:44px}.edit-stack .actions{justify-content:flex-end;gap:8px;display:flex}@media (width<=1320px) and (width>=761px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.log.stack-m,.log.stack-m tbody{width:100%;display:block}.log.stack-m thead{display:none}.log.stack-m tr{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:10px 0;display:flex}.log.stack-m td{text-align:left;border:0;padding:0;display:block}.log.stack-m td:empty{display:none}.log.stack-m td[colspan]{flex-basis:100%}.ledger-log td:first-child{color:var(--muted);flex:auto;order:1;font-size:13px}.ledger-log td:nth-child(6){flex:none;order:2}.ledger-log td:nth-child(2){flex-basis:100%;order:3}.ledger-log td:nth-child(3),.ledger-log td:nth-child(4){order:4}.ledger-log td:nth-child(5){order:5;margin-left:auto}.ledger-log td[data-label]:before{content:attr(data-label) " ";color:var(--muted);font-size:12px;font-weight:700}.appt-log td:first-child,.appt-log td:nth-child(2){flex:40%}.appt-log td:nth-child(3),.appt-log td:nth-child(4){flex-basis:100%}.nav button{justify-content:center;min-width:44px;min-height:44px;padding:0}}@media (width<=480px){.side{gap:6px;padding-inline:8px}.side .brand .word{font-size:14px}.nav{gap:2px}}@media (width<=360px){.side .brand{display:none}.nav{margin-inline:auto}}
