:root{--bg:#f2f0e6;--bg-secondary:#fff;--text:#1f2414;--hint:#5c6248;--accent:#5b6a35;--accent-text:#fff;--accent-soft:#e6ead8;--destructive:#b3261e;--destructive-soft:#f8e4e0;--success:#3e8a3a;--success-text:#2e6b2b;--success-soft:#e2eed8;--warning:#d98a2b;--warning-text:#8a4f00;--warning-soft:#f9ecd4;--separator:#dedccf;--field-border:#8c9178;--overlay:#1f241473;--toast-bg:#3f4a26;--toast-text:#f2f0e6;--disabled-bg:#e4e4d9;--disabled-text:#878b76;--track:#dcdfcb;--focus:#3f4a26;--state-dark:#5b6a35;--state-soft:#e6ead8;--state-ink:#3f4a26;--state-ink-filter:opacity(1);--splash-bg:#5b6a35;--splash-text:#fff;--splash-sub:#e6ead8;--state-ok:#3e8a3a;--state-bad:#b3261e;--state-glyph:#fff;--switch-on:#3e8a3a;--switch-knob:#fff;--switch-off:#8c9178;--row-pad-x:14px;--icon-gap:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#171b10;--bg-secondary:#232918;--text:#eceee3;--hint:#a6ac93;--accent:#a7b872;--accent-text:#1a1f10;--accent-soft:#2f3820;--destructive:#f27a6f;--destructive-soft:#3d2420;--success:#6fbf5f;--success-text:#8fd281;--success-soft:#22361e;--warning:#e8a33d;--warning-text:#f0b65a;--warning-soft:#3a2f1c;--separator:#353d28;--field-border:#737c63;--overlay:#0009;--toast-bg:#e6ead8;--toast-text:#1f2414;--disabled-bg:#2b3221;--disabled-text:#6e765e;--track:#353d28;--focus:#bccb8c;--state-dark:#5b6a35;--state-soft:#2f3820;--state-ink:#dedfd9;--state-ink-filter:brightness(0) invert(1) opacity(.85);--splash-bg:#3f4a26;--splash-text:#fff;--splash-sub:#d5dbc0;--state-ok:#3e8a3a;--state-bad:#c8372c;--state-glyph:#fff;--switch-on:#3e8a3a;--switch-knob:#fff;--switch-off:#4a5338;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#171b10;--bg-secondary:#232918;--text:#eceee3;--hint:#a6ac93;--accent:#a7b872;--accent-text:#1a1f10;--accent-soft:#2f3820;--destructive:#f27a6f;--destructive-soft:#3d2420;--success:#6fbf5f;--success-text:#8fd281;--success-soft:#22361e;--warning:#e8a33d;--warning-text:#f0b65a;--warning-soft:#3a2f1c;--separator:#353d28;--field-border:#737c63;--overlay:#0009;--toast-bg:#e6ead8;--toast-text:#1f2414;--disabled-bg:#2b3221;--disabled-text:#6e765e;--track:#353d28;--focus:#bccb8c;--state-dark:#5b6a35;--state-soft:#2f3820;--state-ink:#dedfd9;--state-ink-filter:brightness(0) invert(1) opacity(.85);--splash-bg:#3f4a26;--splash-text:#fff;--splash-sub:#d5dbc0;--state-ok:#3e8a3a;--state-bad:#c8372c;--state-glyph:#fff;--switch-on:#3e8a3a;--switch-knob:#fff;--switch-off:#4a5338;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:8px}h1,h2,h3,p{margin:0}a{color:var(--accent)}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}svg.ic{--ic:20px;vertical-align:middle;width:var(--ic);height:var(--ic);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;display:inline-block}svg.ic.sm{--ic:16px}svg.ic.xs{--ic:14px}.alert>svg.ic,.day-banner>svg.ic,.slot-type>svg.ic,.toast>svg.ic{margin-top:calc((var(--lh) - var(--ic)) / 2)}.app{height:var(--tg-viewport-stable-height,100vh);height:var(--tg-viewport-stable-height,100dvh);padding-bottom:var(--kb-inset,0px);background:var(--bg);flex-direction:column;max-width:520px;margin:0 auto;display:flex;overflow:hidden}.view-as-bar{border-bottom:1px solid var(--separator);background:var(--bg);color:var(--hint);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 6px 14px;font-size:13px;display:flex}.app-header{border-bottom:1px solid var(--separator);background:var(--bg);flex:none;align-items:center;gap:8px;min-height:48px;padding:2px 6px;display:flex}.tg-hbtn{min-width:44px;min-height:44px;color:var(--accent);background:0 0;border:0;border-radius:8px;align-items:center;gap:4px;padding:0 8px;font-size:15px;display:inline-flex}.avatar{background:var(--accent);width:38px;height:38px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:600;display:grid}.avatar.sm{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);font-size:13px}.row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:0}label.row{cursor:pointer}.tpl-x{position:relative}.tpl-x:after{content:"";position:absolute;inset:-8px}.sticky-actions{z-index:1;background:var(--bg);border-top:1px solid var(--separator);flex-direction:column;gap:12px;margin-bottom:-16px;padding:10px 0 16px;display:flex;position:sticky;bottom:-16px}.row-link{text-align:left;min-width:0;min-height:44px;color:inherit;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:12px;padding:0;display:flex}.content{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 12px 24px;display:flex;overflow:hidden auto}.content>*,.sheet>*,.sheet-body>*{flex-shrink:0}.tabbar{border-top:1px solid var(--separator);background:var(--bg);padding-bottom:env(safe-area-inset-bottom,0px);flex:none;display:flex}.tab{min-height:56px;color:var(--hint);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;text-decoration:none;display:flex}.tab[aria-current=page]{color:var(--accent)}.mainbtn-wrap{background:var(--bg);border-top:1px solid var(--separator);flex:none;padding:8px 12px 10px}.btn{--lh:20px;background:var(--accent);width:100%;min-height:48px;color:var(--accent-text);font-size:15px;font-weight:600;line-height:var(--lh);text-align:center;border:0;border-radius:12px;padding:14px 16px;display:block}.btn>svg.ic{vertical-align:top;margin:calc((var(--lh) - var(--ic)) / 2) var(--icon-gap) 0 0}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.btn.danger{background:var(--destructive-soft);color:var(--destructive)}.btn.danger-solid{background:var(--destructive);color:var(--accent-text)}.btn:disabled{background:var(--disabled-bg);color:var(--disabled-text)}.btn-row{gap:8px;display:flex}.btn-row .btn{flex:1;min-width:0}.btn-row.wrap{flex-wrap:wrap}.btn-row.wrap .btn{white-space:nowrap;flex:1 1 0;min-width:max-content}.link-btn{min-height:44px;color:var(--accent);background:0 0;border:0;border-radius:8px;align-items:center;gap:4px;padding:0 10px;font-size:14px;display:inline-flex}.small-btn{background:var(--accent-soft);min-height:36px;color:var(--accent);white-space:nowrap;border:0;border-radius:9px;align-items:center;gap:4px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.small-btn:after{content:"";position:absolute;inset:-4px 0}.small-btn.danger{background:var(--destructive-soft);color:var(--destructive)}.small-btn:disabled{background:var(--disabled-bg);color:var(--disabled-text)}.icon-btn{width:44px;height:44px;color:var(--hint);background:0 0;border:0;border-radius:10px;flex:none;place-items:center;display:grid}.icon-btn.danger{color:var(--destructive)}.greet{padding:4px 4px 0;font-size:22px;font-weight:700}.section-title{text-transform:uppercase;letter-spacing:.02em;color:var(--hint);padding:8px 4px 0;font-size:13px;font-weight:500}.group{background:var(--bg-secondary);border-radius:12px;overflow:hidden}.row{min-height:48px;padding:10px var(--row-pad-x);text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;display:flex}.group>*+*{border-top:1px solid var(--separator)}button.row:not(:disabled):active{background:var(--accent-soft)}.row-main{flex:1;min-width:0}.row-title{overflow-wrap:anywhere;font-weight:500}.row.top{--lh:20px;align-items:flex-start}.row.top .row-title{line-height:var(--lh)}.row.top>.icon-btn{margin-block:calc((var(--lh) - 44px) / 2)}.row-sub{color:var(--hint);overflow-wrap:anywhere;font-size:13px}.row-end{color:var(--hint);flex:none;align-items:center;gap:6px;display:flex}.card{background:var(--bg-secondary);padding:var(--row-pad-x);border-radius:12px;flex-direction:column;gap:8px;display:flex}.card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.card-title{font-weight:600}.card-title.lg{font-size:18px}.card-person{align-items:center;gap:12px;display:flex}.muted{color:var(--hint)}.hint{color:var(--hint);font-size:13px}.note{color:var(--hint);padding:0 4px;font-size:13px}.empty{text-align:center;color:var(--hint);flex-direction:column;align-items:center;gap:6px;padding:20px 16px;display:flex}.empty strong{color:var(--text);font-weight:600}.text{color:var(--text)}.balance-big{align-items:baseline;gap:6px;display:flex}.balance-big .val{font-size:34px;font-weight:700;line-height:1.1}.balance-big .of{color:var(--hint)}.neg{color:var(--destructive)}.progress{background:var(--track);border-radius:3px;height:6px;overflow:hidden}.progress>span{background:var(--accent);border-radius:3px;height:100%;display:block}.line-debt{color:var(--destructive);font-size:14px;font-weight:600}.line-credit{color:var(--success-text);font-size:14px}.alert{--lh:20px;gap:var(--icon-gap);font-size:14px;line-height:var(--lh);border-radius:10px;align-items:flex-start;padding:10px 12px;display:flex}.alert>.small-btn{margin-block:calc((var(--lh) - 36px) / 2)}.alert.warn{background:var(--warning-soft);color:var(--warning-text)}.alert.danger{background:var(--destructive-soft);color:var(--destructive)}.alert.info{background:var(--accent-soft);color:var(--accent)}.chip{white-space:nowrap;background:var(--bg);color:var(--hint);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.chip.success{background:var(--success-soft);color:var(--success-text)}.chip.danger{background:var(--destructive-soft);color:var(--destructive)}.chip.warn{background:var(--warning-soft);color:var(--warning-text)}.chip.info{background:var(--accent-soft);color:var(--accent)}.badges{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.filters{flex-wrap:wrap;gap:6px;display:flex}.fchip{border:1px solid var(--separator);background:0 0;border-radius:999px;min-height:36px;padding:0 14px;font-size:14px;position:relative}.fchip:after{content:"";position:absolute;inset:-4px 0}.fchip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.search{background:var(--bg-secondary);color:var(--hint);border-radius:10px;align-items:center;gap:8px;padding:0 10px;display:flex}.search input{min-width:0;min-height:44px;color:var(--text);background:0 0;border:0;flex:1;font-size:16px}.search input:focus-visible{outline:none}.search:focus-within{outline:2px solid var(--focus);outline-offset:1px}.seg{background:var(--bg-secondary);border-radius:10px;flex-wrap:wrap;gap:2px;padding:2px;display:flex}.seg button{min-width:0;min-height:36px;color:var(--text);overflow-wrap:anywhere;background:0 0;border:0;border-radius:8px;flex:1 1 0;padding:4px 6px;font-size:14px;line-height:1.15}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}.days{scrollbar-width:thin;flex:none;gap:6px;margin-inline:-6px;padding:6px 6px 8px;display:flex;overflow-x:auto}.day{background:var(--bg-secondary);width:56px;min-height:64px;color:var(--hint);border:0;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:12px;display:flex}.day b{color:var(--text);font-variant-numeric:tabular-nums;font-size:17px}.day[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}.day[aria-pressed=true] b{color:var(--accent-text)}.day.locked{background:var(--disabled-bg);color:var(--disabled-text)}.day.locked b{color:var(--disabled-text)}.day-top,.day-mark{justify-content:center;align-items:center;height:16px;line-height:16px;display:flex}.day b{line-height:22px}.day-mark i{opacity:.6;background:currentColor;display:block}.day-mark .dot{border-radius:50%;width:4px;height:4px}.day-mark .dash{border-radius:1px;width:8px;height:2px}.day-banner{--lh:18px;align-items:flex-start;gap:var(--icon-gap);font-size:13px;line-height:var(--lh);color:var(--hint);padding:0 4px;display:flex}.slot{width:100%;min-height:64px;padding:10px var(--row-pad-x);text-align:left;background:0 0;border:0;align-items:center;gap:12px;display:flex}.slot-time{font-variant-numeric:tabular-nums;flex:none;width:52px;font-size:17px;font-weight:600}.slot-main{flex:1;min-width:0}.slot-type>span{overflow-wrap:anywhere;min-width:0}.slot-type{--lh:20px;font-weight:500;line-height:var(--lh);overflow-wrap:break-word;align-items:flex-start;gap:6px;display:flex}.slot-state{text-align:right;max-width:42%;color:var(--hint);flex:none;font-size:13px;font-weight:500}.st-free{color:var(--success-text)}.st-busy{color:var(--hint);font-weight:500}.st-mine{color:var(--accent)}.slot.past .slot-time,.slot.past .slot-type,.slot:disabled .slot-time,.slot:disabled .slot-type{color:var(--hint)}.slot.cancelled .slot-type{color:var(--hint);text-decoration:line-through}.slot-people{color:var(--hint);overflow-wrap:break-word;font-size:13px;display:block}.sheet-layer{top:0;left:0;right:0;bottom:var(--kb-inset,0px);z-index:30;position:fixed}.sheet-backdrop{background:var(--overlay);opacity:0;transition:opacity .2s;position:absolute;inset:0}.sheet{background:var(--bg);max-width:520px;max-height:90%;padding:0 14px 16px;padding-bottom:max(16px, env(safe-area-inset-bottom,0px));border-radius:14px 14px 0 0;flex-direction:column;margin:0 auto;transition:transform .22s;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden auto;transform:translateY(100%)}.sheet-layer.open .sheet-backdrop{opacity:1}.sheet-layer.open .sheet{transform:translateY(0)}.sheet-grip{background:var(--track);border-radius:3px;flex:none;width:36px;height:5px;margin:8px auto 0}.sheet-head{background:var(--bg);z-index:2;align-items:center;gap:8px;padding:6px 0 4px;display:flex;position:sticky;top:0}.sheet-head h2{flex:1;min-width:0;font-size:17px;font-weight:600}.sheet-body{flex-direction:column;gap:12px;padding-top:4px;display:flex}.kv{padding:10px var(--row-pad-x);justify-content:space-between;gap:12px;font-size:14px;display:flex}.kv>span:first-child{color:var(--hint)}.kv>span:last-child{text-align:right;overflow-wrap:anywhere}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.field .flabel{color:var(--hint);font-size:13px}.field input,.field select,.field textarea{border:1px solid var(--field-border);background:var(--bg-secondary);border-radius:10px;width:100%;min-width:0;min-height:44px;padding:0 12px;font-size:16px}.field input[type=date]{appearance:none;text-align:left;line-height:42px;display:block}.field input[type=date]::-webkit-date-and-time-value{text-align:left}.field input[type=date]:disabled{color:var(--disabled-text);background:var(--disabled-bg)}.field textarea{resize:vertical;min-height:72px;padding:10px 12px}.fields-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.chips-pick{flex-wrap:wrap;gap:6px;display:flex}.chips-pick button{border:1px solid var(--separator);font-variant-numeric:tabular-nums;background:0 0;border-radius:10px;min-width:56px;min-height:44px;padding:0 14px}.chips-pick button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.switch-row{min-height:48px;padding:0 var(--row-pad-x);justify-content:space-between;align-items:center;gap:12px;display:flex}.switch{flex:none;width:51px;height:31px;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;margin:0;position:absolute;inset:0}.switch span{background:var(--switch-off);border-radius:16px;transition:background .2s;position:absolute;inset:0}.switch span:after{content:"";background:var(--switch-knob);border-radius:50%;width:27px;height:27px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.switch input:checked+span{background:var(--switch-on)}.switch input:checked+span:after{transform:translate(20px)}.switch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.calc{background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:10px 12px;font-size:14px;font-weight:500}.linkbox{background:var(--bg-secondary);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.card .linkbox{background:var(--bg)}.toast{--lh:20px;z-index:40;background:var(--toast-bg);max-width:496px;color:var(--toast-text);padding:12px var(--row-pad-x);font-size:14px;line-height:var(--lh);gap:var(--icon-gap);opacity:0;pointer-events:none;border-radius:12px;align-items:flex-start;margin:0 auto;transition:opacity .2s,transform .2s;display:flex;position:fixed;top:12px;left:12px;right:12px;transform:translateY(-8px)}.toast.show{opacity:1;transform:translateY(0)}.time-pick{align-items:center;gap:4px;display:flex}.time-pick-box{flex:1 1 0;min-width:0;position:relative}.time-pick-box:after{content:"";border-right:2px solid var(--hint);border-bottom:2px solid var(--hint);pointer-events:none;width:6px;height:6px;margin-top:-5px;position:absolute;top:50%;right:12px;transform:rotate(45deg)}.field .time-pick select{appearance:none;font-variant-numeric:tabular-nums;cursor:pointer;padding:0 28px 0 12px}.field .time-pick select:disabled{color:var(--disabled-text);background:var(--disabled-bg)}.time-pick-sep{color:var(--hint);flex:none;font-size:17px;font-weight:600}.state{text-align:center;flex-direction:column;align-items:center;gap:6px;margin:auto 0;padding:28px 16px 20px;display:flex}.state-success{margin:0;padding-top:12px}.state-art{flex:none;width:128px;height:128px;margin-bottom:10px;position:relative}.state-circle{border-radius:50%;place-items:center;width:128px;height:128px;display:grid;position:relative;overflow:hidden}.state-circle.dark{background:var(--state-dark)}.state-circle.soft{background:var(--state-soft)}.state-badger{width:86px;height:104px;filter:var(--state-ink-filter);display:block}.state-error .state-badger{opacity:.45}.state-head{--head:104px;left:calc(50% - var(--head) / 2);top:calc(50% - var(--head) / 2);width:var(--head);height:var(--head);position:absolute;overflow:hidden}.state-head img{max-width:none;width:calc(var(--head) * 1.575);height:calc(var(--head) * 1.9);left:calc(var(--head) * -.39);top:calc(var(--head) * -.015);display:block;position:absolute}.state-loading .state-head{transform-origin:50% 90%;animation:1.8s ease-in-out infinite state-sway}.state-badge{border:3px solid var(--bg);width:36px;height:36px;color:var(--state-glyph);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:2px;right:2px}.state-badge.neutral{background:var(--state-dark)}.state-badge.ok{background:var(--state-ok)}.state-badge.bad{background:var(--state-bad)}.state-title{color:var(--text);font-size:18px;font-weight:700;line-height:1.3}.state-text{color:var(--hint);overflow-wrap:anywhere;max-width:320px;font-size:14px}.state-btn{width:auto;min-width:160px;margin-top:10px;padding-inline:24px}.state .small-btn{margin-top:8px}.state-dots{align-items:center;gap:6px;height:8px;display:inline-flex}.state-dots i{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite state-blink}.state-dots i:nth-child(2){animation-delay:.2s}.state-dots i:nth-child(3){animation-delay:.4s}@keyframes state-sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes state-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.splash{z-index:50;background:var(--splash-bg);color:var(--splash-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:fixed;inset:0}.splash-badger{aspect-ratio:1260/1520;width:auto;height:min(44vh,340px);margin-bottom:12px;display:block}.splash-title{letter-spacing:.01em;font-size:28px;font-weight:700}.splash-sub{color:var(--splash-sub);font-size:16px}.splash .state-dots{margin-top:14px}.splash .state-dots i{background:var(--splash-sub)}@media (width<=380px){.fields-2{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.state-loading .state-head,.state-dots i{animation:none!important}.state-dots i{opacity:.6}}a.btn,a.small-btn,a.row,a.row-link{text-decoration:none}a.row{color:inherit}.init-error{margin:8px 12px 0}
