:root{--m-fast:.12s;--m-base:.2s;--m-slow:.3s;--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--hit:44px;--glass-blur:14px;--rad:16px;--rad-in:10px;--rad-well:14px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",system-ui,sans-serif}@media (prefers-reduced-motion:reduce){:root{--m-fast:80ms;--m-base:.12s;--m-slow:.16s}}[data-theme=ops-day]{--ground:#f4f5f2;--panel:#fff;--panel-2:#fafbf9;--line:#dfe2dc;--card-line:transparent;--ink:#1b1f1c;--dim:#5d665f;--input:#fff;--accent-1:#6aa595;--accent-2:#3e7d6c;--accent-3:#2d6255;--on-accent:#fff;--on-accent-shadow:0 -1px 0 #0003;--accent-ink:#2f6b5c;--glow:#3e7d6c80;--hair:#3e7d6c52;--edge-hi:#ffffff6b;--edge-lo:#0003;--well:#e7e9e4;--well-shadow:#00000014;--elev-1:none;--elev-2:0 2px 10px #14281e0d;--elev-3:0 12px 40px #14281e29;--ok:#2f8f5b;--warn:#bf7a12;--warn-ink:#875400;--bad:#c23b35;--bad-ink:#b8342f;--c-th:#256abf;--c-th-ink:#fff;--c-hk:#eb6834;--c-hk-ink:#0b0f0d;--c-be:#1baf7a;--c-be-ink:#0b0f0d;--c-other:#8b938d;--c-other-ink:#0b0f0d;--cc-ink:#1b1f1c;--viz-in:#6250d6;--viz-ex:#c98500}[data-theme=ops-night]{--ground:#0c0f0d;--panel:#171a18;--panel-2:#1d211f;--line:#2a2f2c;--card-line:#252a27;--ink:#eef1ee;--dim:#9aa39d;--input:#0a0c0b;--accent-1:#a3dccb;--accent-2:#6fb3a0;--accent-3:#4c9180;--on-accent:#06201a;--on-accent-shadow:0 1px 0 #ffffff4d;--accent-ink:#8fcdbb;--glow:#6fb3a08c;--hair:#82c8b452;--edge-hi:#ffffff8c;--edge-lo:#00000059;--well:#080a09;--well-shadow:#0009;--elev-1:none;--elev-2:0 2px 10px #00000073;--elev-3:0 12px 40px #0000009e;--ok:#5cc28a;--warn:#eba64a;--warn-ink:#f1b766;--bad:#ff7a70;--bad-ink:#ff7a70;--c-th:#3987e5;--c-th-ink:#0b0f0d;--c-hk:#d95926;--c-hk-ink:#0b0f0d;--c-be:#199e70;--c-be-ink:#0b0f0d;--c-other:#6d756f;--c-other-ink:#fff;--cc-ink:#eef1ee;--viz-in:#9085e9;--viz-ex:#c98500}*,:before,:after{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);margin:0}html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}body{font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}@media (display-mode:standalone){html,body{height:100vh}}button,input{font:inherit;color:inherit}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;letter-spacing:-.02em;margin:0}p{text-wrap:pretty}.num{font-variant-numeric:tabular-nums}.skip{z-index:50;background:var(--panel);border-radius:var(--rad-in);padding:10px 14px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}header.tp{padding-left:max(16px,env(safe-area-inset-left),calc((100% - 1200px) / 2 + 16px));padding-right:max(16px,env(safe-area-inset-right),calc((100% - 1200px) / 2 + 16px))}header.tp .tp-btn{color:var(--accent-ink)}.sections{max-width:1200px;margin:var(--sp-4) auto 0;padding:0 var(--sp-4)}.well{border-radius:var(--rad-well);background:var(--well);box-shadow:inset 0 2px 7px var(--well-shadow),inset 0 0 0 1px var(--line);gap:2px;padding:4px;display:inline-flex}.tab{isolation:isolate;min-height:var(--hit);border-radius:var(--rad-in);color:var(--dim);cursor:pointer;transition:color var(--m-base) var(--ease-out),transform var(--m-fast) var(--ease-out);background:0 0;border:0;padding:0 18px;font-size:.95rem;position:relative}.tab:before{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity var(--m-base) var(--ease-out);background:linear-gradient(180deg,var(--accent-1) 0%,var(--accent-2) 46%,var(--accent-3) 100%);box-shadow:inset 0 1px 0 var(--edge-hi),inset 0 -1px 0 var(--edge-lo),0 6px 16px -10px var(--glow);position:absolute;inset:0}.tab[aria-current=page]{color:var(--on-accent);font-weight:600}.tab[aria-current=page]:before{opacity:1}.tab:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.tab:not([aria-current=page]):hover{color:var(--ink)}}.bottom{display:none}@media (width<=767px){.sections{display:none}.bottom{z-index:20;padding:4px 4px env(safe-area-inset-bottom);background:color-mix(in srgb,var(--ground) 86%,transparent);-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom a{min-height:52px;color:var(--dim);border-radius:var(--rad-in);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.7rem;text-decoration:none;display:flex}.bottom a[aria-current=page]{color:var(--accent-ink);font-weight:600}.bottom svg{width:24px;height:24px}main{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}.ico{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}main{max-width:1200px;padding:var(--sp-5) var(--sp-4) var(--sp-7);margin:0 auto}.page-head{margin:0 0 var(--sp-5)}.page-head h1{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.6rem);line-height:1.1}.page-head p{color:var(--dim);max-width:62ch;margin:6px 0 0}.grid{gap:var(--sp-4);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=900px){.grid.two{grid-template-columns:1.1fr 1fr}}.card{background:var(--panel);border:1px solid var(--card-line);border-radius:var(--rad);padding:var(--sp-5);box-shadow:var(--elev-2)}.card h2{letter-spacing:-.01em;font-size:1.05rem}.card .lead{color:var(--dim);margin:6px 0 0}.empty{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-6) var(--sp-5);flex-direction:column;display:flex}.empty .badge{background:var(--well);width:48px;height:48px;color:var(--accent-ink);box-shadow:inset 0 1px 3px var(--well-shadow);border-radius:14px;place-items:center;display:grid}.empty .badge .ico{width:24px;height:24px}.empty p{color:var(--dim);max-width:52ch;margin:0}.step{color:var(--accent-ink);align-items:center;gap:6px;font-size:.8rem;font-weight:500;display:inline-flex}.btn{min-height:var(--hit);cursor:pointer;transition:transform var(--m-fast) var(--ease-out),filter var(--m-fast);border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.95rem;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.42;cursor:default}@media (hover:hover) and (pointer:fine){.btn:not(:disabled):hover{filter:brightness(1.06)}}.btn.primary{color:var(--on-accent);text-shadow:var(--on-accent-shadow);background:linear-gradient(180deg,var(--accent-1) 0%,var(--accent-2) 46%,var(--accent-3) 100%);box-shadow:inset 0 1px 0 var(--edge-hi),inset 0 -1px 0 var(--edge-lo),0 10px 24px -14px var(--glow);font-weight:600}.btn.secondary{color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--hair);background:0 0}.btn.danger{color:var(--bad-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bad) 40%,transparent);background:0 0}.btn.wide{width:100%}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--dim);font-size:.85rem}.field input{min-height:var(--hit);border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:12px;padding:0 14px;font-size:16px}.field input:focus-visible{outline:2px solid var(--accent-2);outline-offset:1px}.error{color:var(--bad-ink);margin:0;font-size:.88rem}.login{min-height:100dvh;padding:var(--sp-5) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));place-items:center;display:grid}.login-box{gap:var(--sp-5);flex-direction:column;width:100%;max-width:380px;display:flex}.login-mark{width:56px;height:56px}.login h1{font-size:2rem;line-height:1.1}.login .lead{color:var(--dim);margin:6px 0 0}.or{color:var(--dim);align-items:center;gap:12px;font-size:.85rem;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.login form{gap:var(--sp-3);flex-direction:column;display:flex}.list{margin:var(--sp-3) 0 0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.list li:first-child{border-top:0}.list .w{margin-right:auto}.list .s{color:var(--dim);font-size:.85rem}.row-actions{gap:var(--sp-3);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.banner{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;background:var(--panel);box-shadow:var(--elev-3);border:1px solid var(--line);border-radius:14px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 8px 8px 16px;display:flex;position:fixed;transform:translate(-50%)}@media (width<=767px){.banner{bottom:calc(76px + env(safe-area-inset-bottom))}}.toast{animation:fade var(--m-base) var(--ease-out)}@keyframes fade{0%{opacity:0;transform:translate(-50%,6px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}.btn:active:not(:disabled),.tab:active{transform:none}}.login-title{margin-top:20px}.tab{align-items:center;text-decoration:none;display:inline-flex}main:focus{outline:none}.meter-card{--fill:var(--accent-2);--fill-soft:color-mix(in srgb,var(--accent-2) 35%,var(--panel));--track:color-mix(in srgb,var(--accent-2) 12%,var(--panel))}.meter-card.tone-warn{--fill:var(--warn);--fill-soft:color-mix(in srgb,var(--warn) 35%,var(--panel));--track:color-mix(in srgb,var(--warn) 12%,var(--panel))}.meter-card.tone-bad{--fill:var(--bad);--fill-soft:color-mix(in srgb,var(--bad) 35%,var(--panel));--track:color-mix(in srgb,var(--bad) 12%,var(--panel))}.meter-card h2{color:var(--dim);letter-spacing:0;font-size:.9rem;font-weight:500}.hero{font-family:var(--font-display);letter-spacing:-.035em;margin:10px 0 0;font-size:clamp(3rem,2.4rem + 2.4vw,4rem);font-weight:600;line-height:1}.stat{font-family:var(--font-display);letter-spacing:-.03em;margin:10px 0 0;font-size:2.25rem;font-weight:600;line-height:1}.of{color:var(--dim);letter-spacing:0;font-size:1rem;font-weight:500}.meter{background:var(--track);border-radius:6px;gap:2px;height:12px;margin:16px 0 8px;display:flex;overflow:hidden}.meter i{height:100%;display:block}.meter .lived{background:var(--fill);border-radius:6px 0 0 6px}.meter .planned{background:repeating-linear-gradient(135deg,var(--fill-soft) 0 4px,color-mix(in srgb,var(--fill-soft) 70%,var(--panel)) 4px 7px)}.meter-legend{color:var(--dim);gap:16px;font-size:.85rem;display:flex}.meter-legend span{align-items:center;gap:6px;display:inline-flex}.key{border-radius:3px;width:10px;height:10px;display:inline-block}.key.lived{background:var(--fill)}.key.planned{background:repeating-linear-gradient(135deg,var(--fill-soft) 0 3px,color-mix(in srgb,var(--fill-soft) 70%,var(--panel)) 3px 5px)}.status{border-radius:999px;align-items:center;gap:8px;margin:14px 0 0;padding:6px 12px;font-size:.88rem;font-weight:500;display:inline-flex}.status .ico{width:18px;height:18px}.status.bad{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad-ink)}.status.warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn-ink)}.status.note{background:var(--well);color:var(--dim)}.others{flex-wrap:wrap;gap:8px 20px;margin-top:10px;font-size:.95rem;display:flex}.others b{font-weight:600}.facts{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:14px;display:grid}.facts div{flex-direction:column;display:flex}.facts b{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.4rem;font-weight:600}.facts span{color:var(--dim);font-size:.82rem}.with-actions{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.stepper{align-items:center;gap:8px;font-size:1.15rem;font-weight:600;display:inline-flex}.icon-btn{width:var(--hit);height:var(--hit);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hair);cursor:pointer;transition:transform var(--m-fast) var(--ease-out);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.icon-btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.icon-btn:hover{box-shadow:inset 0 0 0 1px var(--accent-2)}}.m-th{--mk:var(--c-th);--mk-ink:var(--c-th-ink)}.m-hk{--mk:var(--c-hk);--mk-ink:var(--c-hk-ink)}.m-be{--mk:var(--c-be);--mk-ink:var(--c-be-ink)}.m-other{--mk:var(--c-other);--mk-ink:var(--c-other-ink)}.m2-th{--mk2:var(--c-th)}.m2-hk{--mk2:var(--c-hk)}.m2-be{--mk2:var(--c-be)}.m2-other{--mk2:var(--c-other)}.legend{margin:0 0 var(--sp-4);color:var(--dim);flex-wrap:wrap;gap:8px 18px;padding:0;font-size:.88rem;list-style:none;display:flex}.legend li{align-items:center;gap:7px;display:inline-flex}.legend b{color:var(--ink);font-weight:600}.swatch{background:var(--mk);border-radius:4px;width:14px;height:14px}.swatch.planned{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--mk) 45%,var(--panel)) 0 3px,color-mix(in srgb,var(--mk) 22%,var(--panel)) 3px 5px)}.swatch.blank{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.year{gap:var(--sp-4);grid-template-columns:1fr;display:grid}@media (width>=640px){.year{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.year{grid-template-columns:repeat(3,1fr)}}@media (width>=1500px){.year{grid-template-columns:repeat(4,1fr)}}.month{background:var(--panel);border:1px solid var(--card-line);border-radius:var(--rad);min-width:0;padding:var(--sp-4) var(--sp-3);box-shadow:var(--elev-2)}.month h3{letter-spacing:-.01em;margin:0 0 8px;font-size:.95rem}.dow,.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.dow span{color:var(--dim);text-align:center;padding-bottom:2px;font-size:.7rem}.day{aspect-ratio:1/1.05;min-height:var(--hit);cursor:pointer;background:var(--mk,var(--panel));color:var(--mk-ink,var(--ink));font-variant-numeric:tabular-nums;transition:transform var(--m-fast) var(--ease-out),filter var(--m-fast);border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;display:flex;position:relative}.day .n{font-size:.78rem;line-height:1.2}.day .cc{opacity:.92;white-space:nowrap;font-size:.6rem;font-weight:700;line-height:1.1}.day.blank{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);color:var(--dim)}.day.weekend.blank .n{color:color-mix(in srgb,var(--dim) 70%,var(--panel))}.day.two{background:linear-gradient(135deg,var(--mk) 50%,var(--mk2) 50%)}.day.planned{color:var(--ink);background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--mk) 42%,var(--panel)) 0 4px,color-mix(in srgb,var(--mk) 24%,var(--panel)) 4px 7px)}.day.planned.two{background:linear-gradient(135deg,color-mix(in srgb,var(--mk) 36%,var(--panel)) 50%,color-mix(in srgb,var(--mk2) 36%,var(--panel)) 50%)}.day.today{outline:2px solid var(--ink);outline-offset:1px;z-index:1}.day:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.day:hover{filter:brightness(1.08)}}.day:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;z-index:2}.pad{aspect-ratio:1/1.05}.chips{margin-top:var(--sp-3);flex-wrap:wrap;gap:8px;display:flex}.chips.more{margin-top:8px}.chip{min-height:var(--hit);cursor:pointer;background:var(--panel-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow var(--m-fast),transform var(--m-fast) var(--ease-out);border:0;border-radius:14px;align-items:center;gap:8px;padding:0 14px 0 6px;font-size:.92rem;display:inline-flex}.chip .cc{background:var(--mk);min-width:30px;height:30px;color:var(--mk-ink);border-radius:8px;place-items:center;padding:0 4px;font-size:.72rem;font-weight:700;display:inline-grid}.chip[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--mk),0 6px 16px -12px var(--mk);font-weight:600}.chip:active:not(:disabled){transform:scale(.97)}.chip:disabled{opacity:.6}.cc-badge{background:var(--mk);min-width:30px;height:26px;color:var(--mk-ink);border-radius:7px;place-items:center;padding:0 4px;font-size:.72rem;font-weight:700;display:inline-grid}.flights .ico{color:var(--dim);align-self:flex-start;margin-top:3px}.list li .num{font-variant-numeric:tabular-nums}.sheet{background:var(--panel);color:var(--ink);box-shadow:var(--elev-3);overscroll-behavior:contain;border:0;border-radius:20px;width:min(520px,100% - 32px);max-height:min(92dvh,720px);padding:0}.sheet::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059}.sheet[open]{animation:sheet-in var(--m-slow) var(--ease-drawer)}@keyframes sheet-in{0%{opacity:0;transform:translateY(12px)}}@media (width<=640px){.sheet{width:100%;max-width:100%;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;margin:auto 0 0}@keyframes sheet-in{0%{transform:translateY(100%)}}}@media (prefers-reduced-motion:reduce){.sheet[open]{animation:fade var(--m-base) var(--ease-out)}}.sheet-body{gap:var(--sp-4);padding:var(--sp-5);flex-direction:column;display:flex}.sheet-body h2{font-size:1.25rem}.sheet-body .lead{color:var(--dim);margin:-8px 0 0}.sheet fieldset{border:0;margin:0;padding:0}.sheet-actions{gap:var(--sp-3);flex-wrap:wrap;display:flex}.sheet .error:empty{display:none}.reminders h2{align-items:center;gap:8px;display:flex}.reminders h2 .ico{color:var(--accent-ink)}.count{background:var(--warn);color:#1b1f1c;border-radius:11px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.75rem;font-weight:700;display:inline-grid}.reminders li.done .w{opacity:.55}.reminders li.done b{text-decoration:line-through}.reminders .btn{flex:none}.stay .ico,.flights .ico{color:var(--dim);align-self:flex-start;margin-top:3px}.head-actions{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.seg{border-radius:var(--rad-well);background:var(--well);box-shadow:inset 0 2px 7px var(--well-shadow),inset 0 0 0 1px var(--line);gap:2px;padding:4px;display:inline-flex}.seg .tab{min-height:40px;padding:0 14px}.seg .tab[aria-pressed=true]{color:var(--on-accent);font-weight:600}.seg .tab[aria-pressed=true]:before{opacity:1}.sheet .seg{align-self:flex-start}.month-label{text-align:center;min-width:9.5em}.tiles{gap:var(--sp-4);margin-bottom:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.tile h2{color:var(--dim);letter-spacing:0;font-size:.9rem;font-weight:500}.tile .s,.card>.s{color:var(--dim);margin:6px 0 0;font-size:.88rem}.card.wide{margin-top:var(--sp-4)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.btn.small{min-height:var(--hit);padding:0 14px;font-size:.88rem}.link{color:var(--accent-ink);min-height:var(--hit);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.9rem;text-decoration:underline}.list li .status{flex:none;margin:0}.status.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--accent-ink)}.pays li{padding:0}.row-btn{width:100%;min-height:var(--hit);text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:10px 4px;display:flex}@media (hover:hover) and (pointer:fine){.row-btn:hover{background:var(--panel-2)}}.row-btn .d{width:3.6em;color:var(--dim);flex:none;font-size:.85rem}.row-btn .w{overflow-wrap:break-word;flex:auto;min-width:0}.amt{text-align:right;white-space:nowrap;flex:none;font-weight:600}.amt.income{color:var(--accent-ink)}.tag{background:var(--well);color:var(--dim);vertical-align:2px;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.72rem;font-weight:600;display:inline-block}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:420px;font-size:.9rem}table.data th{text-align:left;color:var(--dim);border-bottom:1px solid var(--line);padding:6px 8px;font-size:.8rem;font-weight:500}table.data td{border-bottom:1px solid var(--line);padding:8px}table.data td:not(:first-child),table.data th:not(:first-child){text-align:right}.tw{overflow-x:auto}.form-row{gap:var(--sp-3);flex-wrap:wrap;display:flex}.form-row .grow{flex:180px}.field select{min-height:var(--hit);border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:12px;padding:0 12px;font-size:16px}.nw-groups{gap:var(--sp-4) var(--sp-6);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.nw-groups h3{margin:0;font-size:.9rem;font-weight:600}.inline-edit{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-edit input{min-height:var(--hit);border:1px solid var(--line);background:var(--input);width:9em;color:var(--ink);border-radius:10px;padding:0 10px;font-size:16px}.inline-edit .error{flex-basis:100%}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 4px;display:flex}.chart-head .legend{margin:0}.swatch.s-in{background:var(--viz-in)}.swatch.s-ex{background:var(--viz-ex)}.swatch.s-pl{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--dim) 40%,var(--panel)) 0 3px,var(--panel) 3px 5px);box-shadow:inset 0 0 0 1px var(--line)}.chart-box{position:relative;overflow:hidden}.chart-box svg{display:block}.chart-box .grid line{stroke:var(--line);stroke-width:1px}.chart-box text{fill:var(--dim);font-variant-numeric:tabular-nums;font-size:11px}.chart-box .xl.now{fill:var(--ink);font-weight:700}.chart-box .hit{fill:#0000}.chart-box .hover{fill:color-mix(in srgb,var(--ink) 6%,transparent)}.chart-box g[tabindex]:focus-visible{outline:none}.chart-box g[tabindex]:focus-visible .hover,.chart-box g[tabindex]:focus-visible .hit{fill:color-mix(in srgb,var(--accent-2) 14%,transparent)}.chart-box .in .actual{fill:var(--viz-in)}.chart-box .ex .actual{fill:var(--viz-ex)}.chart-box .in .planned{fill:url(#hatch-in)}.chart-box .ex .planned{fill:url(#hatch-ex)}.hb-in{fill:color-mix(in srgb,var(--viz-in) 22%,var(--panel))}.hl-in{stroke:color-mix(in srgb,var(--viz-in) 60%,var(--panel));stroke-width:3px}.hb-ex{fill:color-mix(in srgb,var(--viz-ex) 22%,var(--panel))}.hl-ex{stroke:color-mix(in srgb,var(--viz-ex) 60%,var(--panel));stroke-width:3px}.tip{background:var(--panel);border:1px solid var(--line);width:220px;box-shadow:var(--elev-3);pointer-events:none;font-variant-numeric:tabular-nums;border-radius:12px;flex-direction:column;gap:3px;padding:10px 12px;font-size:.82rem;display:flex;position:absolute;top:4px}.tip .swatch{vertical-align:-1px;width:10px;height:10px;margin-right:6px;display:inline-block}.tip .net{color:var(--dim)}.grid>*,.tiles>*,.card{min-width:0}.list li{flex-wrap:wrap}.list li .w{overflow-wrap:break-word;flex:180px;min-width:0}.hero{font-size:clamp(2rem,9vw,4rem)}.stat{font-size:clamp(1.6rem,7vw,2.25rem)}.m-date{display:none}@media (width<=480px){.row-btn .d{display:none}.m-date{display:inline}}.donut{align-items:center;gap:var(--sp-5);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.donut svg{flex:none;max-width:100%;height:auto}.donut .seg{fill:var(--mk);stroke:var(--panel);stroke-width:2px;transition:opacity var(--m-base) var(--ease-out)}.donut .seg.dim{opacity:.35}.donut .c-label{fill:var(--dim);font-size:12px}.donut .c-value{fill:var(--ink);font-size:17px;font-weight:600}.donut-legend{flex-direction:column;flex:260px;gap:12px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.donut-legend li{align-items:flex-start;gap:10px;display:flex}.donut-legend .swatch{flex:none;margin-top:5px}.donut-legend .pc{color:var(--dim);margin-left:6px;font-weight:600}.donut-legend .s{color:var(--dim);font-size:.85rem}.day.hol:after{content:"";border-style:solid;border-width:0 9px 9px 0;border-color:transparent var(--bad) transparent transparent;border-top-right-radius:8px;width:0;height:0;position:absolute;top:0;right:0}.ev-dot{background:var(--ink);opacity:.75;border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:3px;left:50%}.day:not(.blank):not(.planned) .ev-dot{background:var(--mk-ink)}.day-items{flex-direction:column;gap:6px;margin-top:-6px;display:flex}.hol-line{color:var(--dim);align-items:center;gap:8px;margin:0;font-size:.9rem;display:flex}.list.compact li{padding:4px 0}.filters{flex-wrap:wrap;margin:8px 0 4px}.filters .tab{min-height:var(--hit)}.row-actions.tight{margin-top:0}.row-btn.static{cursor:default}@media (hover:hover) and (pointer:fine){.row-btn.static:hover{background:0 0}}.upcoming .d{width:4.2em}.checks{flex-wrap:wrap;gap:8px 20px;display:flex}.checks label,.check{min-height:var(--hit);cursor:pointer;align-items:center;gap:8px;font-size:.95rem;display:inline-flex}.checks input,.check input{width:20px;height:20px;accent-color:var(--accent-2)}textarea{font:inherit;border:1px solid var(--line);background:var(--input);color:var(--ink);resize:vertical;border-radius:12px;padding:10px 12px;font-size:16px}.field textarea:focus-visible{outline:2px solid var(--accent-2);outline-offset:1px}.preview{background:var(--panel-2);border-radius:12px;padding:10px 14px}.preview p{margin:4px 0}.hint{color:var(--dim);margin:0;font-size:.88rem}.quick-add{margin-bottom:var(--sp-4)}.quick-add .form-row{align-items:flex-end}.form-row .grow2{flex:2 240px}.form-row.end{margin-top:var(--sp-3);justify-content:space-between;align-items:center}.task-group{margin-top:var(--sp-4)}.task-group h2{align-items:center;gap:8px;display:flex}.count-n{color:var(--dim);font-size:.8rem;font-weight:500}.task-group li{flex-wrap:nowrap;align-items:center}.tick{width:var(--hit);height:var(--hit);cursor:pointer;color:var(--on-accent);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.tick:before{content:"";box-shadow:inset 0 0 0 2px var(--hair);transition:background var(--m-fast),box-shadow var(--m-fast);border-radius:50%;position:absolute;inset:11px}.tick.on:before{background:var(--accent-2);box-shadow:none}.tick .ico{stroke-width:2.4px;width:14px;height:14px;position:relative}@media (hover:hover) and (pointer:fine){.tick:not(.on):hover:before{box-shadow:inset 0 0 0 2px var(--accent-2)}}.task-group li.done b{color:var(--dim);text-decoration:line-through}.s.overdue{color:var(--bad-ink);font-weight:500}.week-card{grid-column:1/-1}.week{margin:var(--sp-3) 0 0;grid-template-columns:1fr;gap:0;padding:0;list-style:none;display:grid}@media (width>=900px){.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}}.week>li{border-top:1px solid var(--line);min-width:0;padding:10px 0}@media (width>=900px){.week>li{background:var(--panel-2);border-top:0;border-radius:12px;padding:10px}.week>li.now{box-shadow:inset 0 0 0 2px var(--hair)}}.wk-day{justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px;font-size:.9rem;display:flex}.wk-cc{gap:4px;display:inline-flex}.wk-cc .cc-badge{min-width:26px;height:22px;font-size:.66rem}.wk-items{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.84rem;list-style:none;display:flex}.wk-items li{overflow-wrap:break-word;padding-left:10px;position:relative}.wk-items li:before{content:"";background:var(--dim);border-radius:50%;width:5px;height:5px;position:absolute;top:.55em;left:0}.wk-items li.hol:before{background:var(--bad)}.wk-items li.birthday:before{background:var(--viz-in)}.wk-items li.guest_stay:before{background:var(--c-be)}.wk-items li.task:before{background:var(--warn)}.wk-items li.income:before{background:var(--accent-2)}.week .s{color:var(--dim);margin:0;font-size:.82rem}.wk-items li.travel{font-weight:600}.wk-items li.travel:before{background:var(--c-th)}.swatch.hol-key{background:linear-gradient(225deg,var(--bad) 0 35%,var(--panel) 35%);box-shadow:inset 0 0 0 1px var(--line)}.swatch.ev-key{background:radial-gradient(circle,var(--ink) 0 2.5px,var(--panel) 3px);box-shadow:inset 0 0 0 1px var(--line)}.task-group h2 .ico{color:var(--accent-ink);vertical-align:-3px}.task-group .inbox-list li{flex-wrap:wrap;align-items:center}.inbox-list li .w{flex:240px}.cb-card{margin:0 0 var(--sp-4)}.cb{gap:var(--sp-4) var(--sp-6);margin-top:var(--sp-3);grid-template-columns:1fr;display:grid}@media (width>=860px){.cb{grid-template-columns:1fr 1fr}}.cb h3{margin:0 0 6px;font-size:.9rem;font-weight:600}.cb ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.cb-row{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:5px;font-size:.86rem;display:flex}.cb-row span{color:var(--dim)}.cb-bar{background:var(--well);border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.cb-bar i{height:100%;display:block}.cb-bar.in{--h:var(--viz-in)}.cb-bar.ex{--h:var(--viz-ex)}.cb-bar .done{background:var(--h)}.cb-bar .todo{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--h) 38%,var(--panel)) 0 4px,color-mix(in srgb,var(--h) 20%,var(--panel)) 4px 7px)}.tp{z-index:50;justify-content:space-between;align-items:center;gap:var(--sp-3,12px);min-height:calc(var(--hit,44px) + 12px);padding:6px max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left));padding-top:max(6px,env(safe-area-inset-top));background:color-mix(in srgb,var(--ground) 88%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(var(--glass-blur,14px));backdrop-filter:blur(var(--glass-blur,14px));color:var(--ink);display:flex;position:sticky;top:0}.tp-brand{min-height:var(--hit,44px);color:var(--ink);align-items:center;gap:10px;min-width:0;font-size:17px;font-weight:700;text-decoration:none;display:flex}.tp-brand span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tp-brand img{border-radius:22%;flex:none}.tp-actions{flex:none;align-items:center;gap:8px;display:flex}.tp-wrap{position:relative}.tp-btn{min-height:var(--hit,44px);min-width:var(--hit,44px);color:var(--accent-1);background:var(--panel-2,var(--panel));border-radius:calc(var(--rad,12px) + 2px);box-shadow:inset 0 0 0 1px var(--hair);cursor:pointer;transition-property:transform,box-shadow,background-color;transition-duration:var(--m-fast,.12s);transition-timing-function:var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;justify-content:center;align-items:center;gap:8px;padding:0 12px;font:600 14px/1 inherit;display:inline-flex}.tp-btn:active{transform:scale(.97)}.tp-btn:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}@media (hover:hover) and (pointer:fine){.tp-btn:hover{box-shadow:inset 0 0 0 1px var(--accent-2)}}.tp-icon{border-radius:50%;padding:0}.tp-ico{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.tp-code{font-variant-numeric:tabular-nums;letter-spacing:.02em}.tp-sw{background:linear-gradient(135deg,var(--ground) 50%,var(--accent-2) 50%);width:18px;height:18px;box-shadow:inset 0 0 0 1px var(--hair);border-radius:50%;flex:none;display:inline-block}.tp-menu{background:var(--panel-2,var(--panel));border:1px solid var(--hair);border-radius:var(--rad,12px);min-width:200px;box-shadow:var(--elev-3,0 12px 40px #0009);transform-origin:100% 0;opacity:0;transition:opacity var(--m-base,.2s) var(--ease-out),transform var(--m-base,.2s) var(--ease-out);gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;transform:scale(.95)}.tp-menu.on{opacity:1;transform:none}.tp-menu.leaving{transition-duration:var(--m-fast,.12s)}.tp-menu button{min-height:var(--hit,44px);border-radius:var(--rad-in,8px);color:var(--ink);text-align:start;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:12px;padding:0 12px;font:500 15px/1 inherit;display:flex}.tp-menu button .tp-item{flex:1}.tp-menu button .tp-ico{color:var(--accent-2)}.tp-menu button[aria-checked=true]{background:var(--well,var(--panel))}.tp-menu button:focus-visible{outline:2px solid var(--accent-2);outline-offset:-2px}@media (hover:hover) and (pointer:fine){.tp-menu button:hover{background:var(--well,var(--panel))}}@media (width<=480px){.tp-scheme .tp-label{display:none}.tp-scheme{border-radius:50%;padding:0}.tp-brand{font-size:16px}.tp-actions{gap:6px}}@media (prefers-reduced-motion:reduce){.tp-menu,.tp-btn:active{transform:none}}.tp-inline{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;min-height:0;padding:0;display:contents;position:static}.tp-inline .tp-actions{display:contents}.tp-inline .tp-scheme .tp-label{display:none}.tp-inline .tp-scheme{border-radius:50%;padding:0}
