:root{--bg:#f6f5f1;--surface:#fff;--surface-2:#f1efe9;--ink:#1b1d1a;--ink-2:#44483f;--muted:#74786d;--line:#e6e3da;--line-2:#d6d2c6;--accent:#1f5c4a;--accent-ink:#fff;--accent-soft:#e3efe9;--bad:#b3372e;--bad-soft:#fbe9e6;--warn:#9a6400;--warn-soft:#fdf1d9;--ok:#2c7a4f;--ok-soft:#e4f3e9;--shadow:0 1px 2px #1416120d, 0 6px 20px #1416120d;--shadow-lg:0 24px 64px #14161238;--radius:14px;--ease:cubic-bezier(.2, .8, .2, 1);--tabbar:0px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#121311;--surface:#1a1c19;--surface-2:#22251f;--ink:#ecede7;--ink-2:#c9ccc1;--muted:#8f9488;--line:#2a2d27;--line-2:#383c34;--accent:#6cc3a0;--accent-ink:#0d1f18;--accent-soft:#1d3329;--bad:#f08a7e;--bad-soft:#3a1f1c;--warn:#e9b65a;--warn-soft:#362a15;--ok:#7fcf9f;--ok-soft:#1b3124;--shadow:0 1px 2px #0000004d;--shadow-lg:0 24px 64px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{scroll-padding-bottom:calc(var(--tabbar) + 16px)}body{background:var(--bg);min-height:100vh;margin:0}body.no-scroll{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{letter-spacing:-.02em;margin:0;line-height:1.2}h1{font-size:clamp(24px,3.2vw,32px);font-weight:700}h2{font-size:16px;font-weight:650}p{margin:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.muted{color:var(--muted)}.small{font-size:13px}.grow{flex:1}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.center-screen{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.gate{text-align:center;background:var(--surface);border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow);border-radius:24px;justify-items:center;gap:14px;padding:36px 28px;display:grid}.gate img{border-radius:16px}.gate .btn{width:100%;margin-top:8px}.g-logo{stroke:none;background:#fff;border-radius:50%;width:18px;height:18px;padding:1px}.spinner{border:3px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{place-items:center;min-height:50vh;display:grid}.btn{border:1px solid var(--line-2);background:var(--surface);white-space:nowrap;min-height:40px;transition:background .15s var(--ease), transform .1s var(--ease), border-color .15s var(--ease);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn-lg{min-height:48px;font-size:16px}.btn-sm{min-height:32px;padding:4px 12px;font-size:13px}.btn-danger-ghost{color:var(--bad);background:0 0;border-color:#0000}.btn-danger-ghost:hover:not(:disabled){background:var(--bad-soft)}.btn svg{width:18px;height:18px}.icon-btn{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.link-btn{color:var(--accent);background:0 0;border:0;justify-self:start;padding:0;font-weight:600;text-decoration:none}.link-btn:hover{text-decoration:underline}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;gap:20px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 8px;font-size:16px;display:flex}.brand img{border-radius:9px}.nav{gap:2px;display:grid}.nav-item{color:var(--ink-2);text-align:left;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:9px 10px;font-weight:550;display:flex}.nav-item:hover{background:var(--surface-2)}.nav-item[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.account{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:10px 6px 0;display:flex}.account img,.avatar{border-radius:50%;flex:none;width:34px;height:34px}.avatar{background:var(--accent-soft);color:var(--accent);place-items:center;font-weight:700;display:grid}.account-name{flex:1;min-width:0;line-height:1.25;display:grid}.account-name strong,.account-name small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-name strong{font-size:13px}.account-name small{color:var(--muted);font-size:12px}.main{min-width:0;padding:32px clamp(16px,4vw,48px) 48px}.page{gap:20px;max-width:1120px;margin:0 auto;display:grid}.page-head{gap:6px;display:grid}.page-head.row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head.row>div{gap:6px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:12px;font-weight:650}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-content:start;gap:14px;min-width:0;padding:18px;display:grid}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.empty{text-align:center;justify-items:center;gap:6px;padding:20px 8px;display:grid}.notice{background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:10px 14px;font-size:14px}.notice.is-bad{background:var(--bad-soft);color:var(--bad)}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat{text-align:left;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);gap:2px;padding:14px 16px;display:grid}.stat strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.stat span{color:var(--muted);font-size:13px}.stat.is-bad strong{color:var(--bad)}.stat.is-warn strong{color:var(--warn)}button.stat:hover{border-color:var(--line-2)}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.is-bad{background:var(--bad-soft);color:var(--bad)}.badge.is-warn{background:var(--warn-soft);color:var(--warn)}.badge.is-ok{background:var(--ok-soft);color:var(--ok)}.alert-group{gap:6px;display:grid}.alert-group h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;font-weight:650}.alert-list,.task-list,.health-list,.tool-list,.checklist{gap:6px;margin:0;padding:0;list-style:none;display:grid}.alert{border:1px solid var(--line);background:var(--surface);text-align:left;border-left-width:3px;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px 12px;display:grid}.alert:hover{background:var(--surface-2)}.alert.is-overdue{border-left-color:var(--bad)}.alert.is-soon{border-left-color:var(--warn)}.alert.is-upcoming{border-left-color:var(--line-2)}.alert-icon{background:var(--muted);border-radius:3px;width:10px;height:10px}.alert-icon.is-document{background:#5b7bd5}.alert-icon.is-warranty{background:#c08a2e}.alert-icon.is-health{background:#d0566b}.alert-icon.is-task{background:var(--accent)}.alert-body,.alert-when{min-width:0;line-height:1.3;display:grid}.alert-body strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.alert-body small,.alert-when small{color:var(--muted);font-size:12px}.alert-when{text-align:right}.alert-when strong{font-size:13px;font-weight:600}.alert.is-overdue .alert-when strong{color:var(--bad)}.quick-add{grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;display:grid}.quick-add input,.filter-bar select,.search input,.field input,.field select,.field textarea{border:1px solid var(--line-2);background:var(--surface);width:100%;min-height:40px;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);border-radius:10px;padding:8px 12px;font-size:15px}.quick-add input:focus,.filter-bar select:focus,.search input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.task{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 4px;display:grid}.task:last-child{border-bottom:0}.task input[type=checkbox],.check input{width:18px;height:18px;accent-color:var(--accent)}.task-body{text-align:left;background:0 0;border:0;min-width:0;padding:2px 0;line-height:1.3;display:grid}.task-body span{overflow-wrap:anywhere}.task-body small{color:var(--muted);font-size:12px}.task-list.is-done .task-body span{color:var(--muted);text-decoration:line-through}.due{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:600}.due.is-bad{color:var(--bad)}.due.is-warn{color:var(--warn)}.filter-bar{grid-template-columns:minmax(0,1fr) 180px;gap:10px;display:grid}.search{position:relative}.search svg{width:18px;height:18px;color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search input{padding-left:38px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:550;display:inline-flex}.chip span{color:var(--muted);font-size:11px}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.chip[aria-pressed=true] span{color:inherit;opacity:.7}.doc-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.doc{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;height:100%;box-shadow:var(--shadow);transition:border-color .15s var(--ease), transform .15s var(--ease);align-content:start;gap:6px;padding:14px;display:grid}.doc:hover{border-color:var(--line-2);transform:translateY(-1px)}.doc-top{justify-content:space-between;gap:8px;display:flex}.doc-title{overflow-wrap:anywhere;font-size:16px;font-weight:650;line-height:1.3}.doc-foot{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.has-link{color:var(--muted);font-weight:700}.cat{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:650}.cat-contract{color:#5b7bd5}.cat-receipt{color:#b07b1e}.cat-insurance{color:#7a5bd5}.cat-id{color:#2f8a8a}.cat-vehicle{color:#c0602e}.cat-property{color:var(--accent)}.cat-medical{color:#d0566b}.cat-tax{color:#6b7a2e}.owner{color:var(--muted);font-size:11px}.health{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.health:last-child{border-bottom:0}.health-body{text-align:left;background:0 0;border:0;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.health-body>span:last-child{min-width:0;line-height:1.3;display:grid}.health-body small{font-size:12px}.health-side{justify-items:end;gap:4px;display:grid}.kind{background:var(--surface-2);border-radius:9px;flex:none;width:32px;height:32px;position:relative}.kind:after{content:"";background:var(--muted);border-radius:50%;position:absolute;inset:11px}.kind-vaccine:after{background:#5b7bd5}.kind-checkup:after{background:var(--accent)}.kind-dentist:after{background:#c08a2e}.kind-eyes:after{background:#7a5bd5}.kind-lab:after{background:#2f8a8a}.kind-specialist:after{background:#d0566b}.segmented{background:var(--surface-2);border-radius:12px;justify-self:start;gap:3px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:9px;padding:7px 16px;font-weight:600}.segmented button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-foot{justify-content:flex-end;align-items:center;gap:12px;display:flex}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55;font-size:13px!important}.copy-line{background:var(--surface-2);border-radius:10px;align-items:center;gap:10px;min-width:0;padding:8px 8px 8px 12px;display:flex}.copy-line code{white-space:nowrap;flex:1;min-width:0;overflow-x:auto}.copy-label{color:var(--muted);font-size:12px;font-weight:650}.sub{color:var(--muted);margin-top:4px;font-size:13px;font-weight:600}.tool-list li{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:12px;padding:6px 0;display:grid}.tool-list li:last-child{border-bottom:0}.tool-list code{color:var(--accent)}.checklist li{padding:8px 0 8px 30px;display:grid;position:relative}.checklist li:before{content:"";border:2px solid var(--line-2);border-radius:50%;width:18px;height:18px;position:absolute;top:10px;left:0}.checklist li.is-done:before{background:var(--ok);border-color:var(--ok);box-shadow:inset 0 0 0 3px var(--surface)}.sheet-back{z-index:50;-webkit-backdrop-filter:blur(3px);animation:fade .18s var(--ease);background:#0c0e0b73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{background:var(--surface);width:min(620px,100%);max-height:min(90vh,860px);box-shadow:var(--shadow-lg);animation:pop .22s var(--ease);border-radius:20px;grid-template-rows:auto minmax(0,1fr) auto auto;display:grid;overflow:hidden}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.985)}}.sheet-head{justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 8px 20px;display:flex}.sheet-head h2{text-overflow:ellipsis;white-space:nowrap;font-size:18px;overflow:hidden}.sheet-body{grid-template-columns:1fr 1fr;align-content:start;gap:14px;padding:8px 20px 16px;display:grid;overflow:auto}.sheet>.notice{margin:0 20px 12px}.sheet-foot{border-top:1px solid var(--line);background:var(--surface);gap:8px;padding:12px 16px;display:flex}.field{align-content:start;gap:6px;min-width:0;display:grid}.field>span{color:var(--ink-2);font-size:13px;font-weight:600}.field small{color:var(--muted);font-size:12px}.field textarea{resize:vertical;min-height:80px}.is-wide{grid-column:1/-1}.check{align-items:center;gap:10px;font-size:14px;display:flex}@media (width<=1000px){.shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{align-items:center;padding:16px 10px}.brand strong,.nav-item span,.account-name{display:none}.brand{padding:0}.nav-item{justify-content:center;padding:10px}.account{flex-direction:column;padding:10px 0 0}.two-col{grid-template-columns:1fr}}@media (width<=720px){:root{--tabbar:64px}.shell{display:block}.sidebar{z-index:40;height:auto;padding:6px 8px max(6px, env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:saturate(160%)blur(12px);flex-direction:row;position:fixed;inset:auto 0 0}.brand,.account{display:none}.nav{grid-auto-columns:1fr;grid-auto-flow:column;width:100%}.nav-item{flex-direction:column;gap:3px;padding:6px 2px;font-size:11px}.nav-item span{display:block}.nav-item[aria-current=page]{background:0 0}.nav-item[aria-current=page] svg{background:var(--accent-soft);box-sizing:content-box;border-radius:999px;padding:3px 14px}.main{padding:20px 16px calc(var(--tabbar) + 32px);padding-top:max(20px, env(safe-area-inset-top))}.page{gap:16px}.page-head.row{flex-direction:column;align-items:stretch}.page-head.row .btn{width:100%}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:12px 14px}.stat strong{font-size:22px}.card{padding:14px}.quick-add{grid-template-columns:minmax(0,1fr) auto}.quick-add input[type=date]{grid-area:2/1}.quick-add .btn{grid-area:1/2/span 2;height:100%}.filter-bar{grid-template-columns:1fr}.chips{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:0 16px 2px;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{flex:none}.doc-grid,.form-grid,.sheet-body{grid-template-columns:1fr}.tool-list li{grid-template-columns:1fr;gap:2px}.sheet-back{place-items:end stretch;padding:0}.sheet{border-radius:20px 20px 0 0;width:100%;max-height:92vh}.sheet-foot{padding-bottom:max(12px, env(safe-area-inset-bottom))}.quick-add input,.field input,.field select,.field textarea,.search input{font-size:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.doc-icons{align-items:center;gap:6px;font-size:13px;display:inline-flex}.source{border:1px solid var(--line);border-radius:12px;gap:4px;padding:12px 14px;display:grid}.source .link-btn{justify-self:start;margin-top:4px}.file-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.file-row .btn{cursor:pointer}#due .chips{align-items:center;margin-bottom:8px}#due .check{margin-left:auto}.due-group{margin-top:14px}.due-title{text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:13px}.due-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.due-row{border:1px solid var(--line);color:inherit;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:grid}.due-row:hover{border-color:var(--line-2);background:color-mix(in srgb, var(--line) 35%, transparent)}.due-main{gap:2px;min-width:0;display:grid}.due-main strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.area{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.area-personal{color:#1b8597;background:#26b5ce22}.area-work{color:#4b55b5;background:#5e6ad222}.area-ready_games{color:#c43d3d;background:#eb575722}.area-other{background:var(--line)}#due .chips{flex-wrap:wrap}@media (width<=600px){.due-row{grid-template-columns:1fr;gap:6px}.due-row .area{display:none}.due-row .badge{justify-self:start}.due-main strong{white-space:normal}}
