/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-mono-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-next-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-next-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-next-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-next-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-next-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/atkinson-hyperlegible-next-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{color-scheme:light;--paper: #F4F6FA;--surface: #FFFFFF;--surface-sunk: #EBEFF6;--line: #DDE2EC;--line-strong: #7D879C;--ink: #14213D;--ink-muted: #55607A;--hub: #2445A8;--hub-soft: #E6ECFB;--on-hub: #FFFFFF;--overdue: #B42318;--overdue-soft: #FDE8E6;--overdue-mark: #D92D20;--soon: #93370D;--soon-soft: #FDF0D2;--soon-mark: #B54708;--sorted: #067647;--sorted-soft: #DDF6E6;--sorted-mark: #079455;--track: var(--line);--shadow-sheet: 0 8px 24px rgba(20,33,61,.14);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--tap-target: 44px;--disc-sm: 48px;--disc-lg: 112px;--content-max: 640px;--font-sans: "Atkinson Hyperlegible Next", "Segoe UI", system-ui, sans-serif;--font-mono: "Atkinson Hyperlegible Mono", ui-monospace, "SF Mono", Menlo, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper: #0E1526;--surface: #172036;--surface-sunk: #0A1020;--line: #2A3550;--line-strong: #6A7794;--ink: #E8ECF5;--ink-muted: #A3ADC4;--hub: #8FA8F5;--hub-soft: #1E2B55;--on-hub: #0E1526;--overdue: #F4877C;--overdue-soft: #3A1A1C;--overdue-mark: #F4877C;--soon: #F5B454;--soon-soft: #3A2A12;--soon-mark: #F5B454;--sorted: #5FD197;--sorted-soft: #12321F;--sorted-mark: #5FD197;--shadow-sheet: 0 8px 24px rgba(0,0,0,.55)}}:root[data-theme=dark]{color-scheme:dark;--paper: #0E1526;--surface: #172036;--surface-sunk: #0A1020;--line: #2A3550;--line-strong: #6A7794;--ink: #E8ECF5;--ink-muted: #A3ADC4;--hub: #8FA8F5;--hub-soft: #1E2B55;--on-hub: #0E1526;--overdue: #F4877C;--overdue-soft: #3A1A1C;--overdue-mark: #F4877C;--soon: #F5B454;--soon-soft: #3A2A12;--soon-mark: #F5B454;--sorted: #5FD197;--sorted-soft: #12321F;--sorted-mark: #5FD197;--shadow-sheet: 0 8px 24px rgba(0,0,0,.55)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font:400 16px/24px var(--font-sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--hub)}h1,h2,h3{text-wrap:balance}:focus-visible{outline:2px solid var(--hub);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.shell{min-height:100%;display:flex;flex-direction:column}.main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + var(--space-6)) var(--space-4) calc(88px + env(safe-area-inset-bottom,0px))}.nav{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;font:700 11px/14px var(--font-sans);color:var(--ink-muted);text-decoration:none}.nav a svg{width:22px;height:22px}.nav a[aria-current=page]{color:var(--hub)}.nav .nav__brand,.nav .nav__side{display:none}.nav .nav__add{color:var(--ink-muted)}.nav .nav__fab{display:grid;place-items:center;width:54px;height:54px;margin-top:-22px;border-radius:50%;background:var(--hub);box-shadow:0 4px 12px #0000002e}.nav .nav__fab svg{width:26px;height:26px;color:#fff}@media(max-width:420px){.nav a{font-size:10px;letter-spacing:-.01em}}@media(min-width:1280px){.shell{flex-direction:row}.nav{position:sticky;top:0;height:100vh;width:232px;flex:none;display:flex;flex-direction:column;gap:4px;padding:var(--space-6) var(--space-3);border-top:0;border-right:1px solid var(--line)}.nav a{flex-direction:row;justify-content:flex-start;gap:var(--space-3);min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:15px}.nav a[aria-current=page]{background:var(--hub-soft)}.nav .nav__brand{display:flex;align-items:center;gap:10px;padding:0 var(--space-3) var(--space-6);font:800 18px/1 var(--font-sans);letter-spacing:-.01em;color:var(--ink);order:-2}.nav .nav__side{display:flex}.nav .nav__add{order:-1;margin-bottom:var(--space-3);background:var(--hub);color:#fff;font-size:15px;font-weight:700}.nav .nav__add .nav__fab{width:auto;height:auto;margin:0;background:none;box-shadow:none}.nav .nav__add .nav__fab svg{width:20px;height:20px}.main{padding:var(--space-8) var(--space-8) var(--space-12)}}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-6)}.eyebrow{font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.page-title{margin:6px 0 0;font:800 28px/34px var(--font-sans);letter-spacing:-.01em}.page-sub{margin:var(--space-2) 0 0;color:var(--ink-muted)}.back{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin:-8px 0 var(--space-2) -6px;padding:0 6px;font-weight:700;text-decoration:none}.back svg{width:20px;height:20px}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack-lg{display:flex;flex-direction:column;gap:var(--space-6)}.row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.muted{color:var(--ink-muted)}.small{font-size:14px;line-height:20px}.section-title{margin:0 0 var(--space-3);font:700 20px/26px var(--font-sans)}.ref{font:500 15px/22px var(--font-mono)}.rh-btn{font:700 16px/24px var(--font-sans);min-height:var(--tap-target);padding:10px 18px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);text-decoration:none;white-space:nowrap}.rh-btn:focus-visible{outline:2px solid var(--hub);outline-offset:2px}.rh-btn--primary{background:var(--hub);color:var(--on-hub)}.rh-btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.rh-btn--quiet{background:transparent;color:var(--hub);padding-inline:10px}.rh-btn--danger{background:var(--surface);color:var(--overdue);border-color:var(--overdue)}.rh-btn--block{width:100%}.rh-btn[disabled]{opacity:.5;cursor:not-allowed}.rh-btn svg{width:20px;height:20px;flex:none}.rh-chip{display:inline-flex;align-items:center;gap:var(--space-1);font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap}.rh-chip svg{width:14px;height:14px}.rh-chip--overdue{color:var(--overdue);background:var(--overdue-soft)}.rh-chip--soon{color:var(--soon);background:var(--soon-soft)}.rh-chip--coming{color:var(--hub);background:var(--hub-soft)}.rh-chip--later{color:var(--ink-muted);background:var(--surface-sunk)}.rh-chip--done{color:var(--sorted);background:var(--sorted-soft)}.tag{display:inline-flex;align-items:center;font:700 12px/16px var(--font-sans);padding:3px 8px;border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--ink-muted)}.rh-disc{--size: var(--disc-sm);--arc: var(--hub);position:relative;width:var(--size);height:var(--size);flex:none;display:grid;place-items:center}.rh-disc>svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.rh-disc__track{fill:none;stroke:var(--track);stroke-width:4}.rh-disc__arc{fill:none;stroke:var(--arc);stroke-width:4;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray .3s ease-out}.rh-disc__perf{fill:none;stroke:var(--line-strong);stroke-width:1.2;stroke-dasharray:.01 3.2;stroke-linecap:round}.rh-disc__num{position:relative;display:flex;flex-direction:column;align-items:center;font:800 16px/1 var(--font-sans);letter-spacing:-.01em}.rh-disc__unit{display:block;font:700 8px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-top:2px}.rh-disc__check{width:18px;height:18px;color:var(--sorted)}.rh-disc--lg{--size: var(--disc-lg)}.rh-disc--lg .rh-disc__track,.rh-disc--lg .rh-disc__arc{stroke-width:2.6}.rh-disc--lg .rh-disc__num{font-size:36px}.rh-disc--lg .rh-disc__unit{font-size:12px;margin-top:4px}.rh-disc--lg .rh-disc__check{width:40px;height:40px}.rh-disc--overdue{--arc: var(--overdue-mark)}.rh-disc--overdue .rh-disc__num{color:var(--overdue)}.rh-disc--soon{--arc: var(--soon-mark)}.rh-disc--coming{--arc: var(--hub)}.rh-disc--later{--arc: var(--line-strong)}.rh-disc--done{--arc: var(--sorted-mark)}.rh-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}a.rh-item__label{display:inline-flex;align-items:center;min-height:var(--tap-target)}a.rh-card,button.rh-card{min-height:var(--tap-target);display:flex;align-items:center;justify-content:space-between;padding:var(--space-3)}.rh-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.rh-card__title{margin:0;font:700 20px/26px var(--font-sans)}.rh-card__count{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}.rh-card__body{padding:var(--space-4)}.rh-item{display:flex;align-items:center;gap:var(--space-3);min-height:72px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.rh-item:last-child{border-bottom:0}.rh-item:hover{background:var(--surface-sunk)}.rh-item:focus-visible{outline:2px solid var(--hub);outline-offset:-2px}.rh-item__text{flex:1;min-width:0}.rh-item__label{display:block;font:700 16px/24px var(--font-sans);overflow-wrap:anywhere}.rh-item__meta{display:block;font:400 14px/20px var(--font-sans);color:var(--ink-muted);overflow-wrap:anywhere}.rh-item__side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.rh-item__date{font:400 14px/20px var(--font-sans);color:var(--ink-muted);white-space:nowrap}.rh-item__icon{width:44px;height:44px;flex:none;border-radius:var(--radius-md);background:var(--surface-sunk);display:grid;place-items:center;color:var(--ink)}.rh-item__icon svg{width:22px;height:22px}.toggle-band{width:100%;justify-content:space-between;border-radius:0;border:0;background:transparent;padding:var(--space-3) var(--space-4)}.hero{display:flex;gap:var(--space-4);align-items:center}.hero__text{flex:1;min-width:0}.facts{margin:0;display:grid;grid-template-columns:minmax(96px,30%) 1fr}.facts>div{display:contents}.facts dt,.facts dd{margin:0;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.facts dt{color:var(--ink-muted);font-size:14px}.facts dd{overflow-wrap:anywhere}.facts>div:last-child dt,.facts>div:last-child dd{border-bottom:0}.tip{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--hub-soft);border-radius:var(--radius-md);color:var(--ink)}.tip svg{width:20px;height:20px;flex:none;margin-top:2px;color:var(--hub)}.vault{display:flex;align-items:center;gap:var(--space-2)}.vault svg{width:16px;height:16px;color:var(--ink-muted);flex:none}.list-plain{list-style:none;margin:0;padding:0}.list-plain li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.list-plain li:last-child{border-bottom:0}.up{color:var(--overdue);font-weight:700}.down{color:var(--sorted);font-weight:700}.form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:6px}.field>label,.field>.label{font:700 14px/20px var(--font-sans)}.hint{font-size:14px;line-height:20px;color:var(--ink-muted)}.error{font-size:14px;line-height:20px;color:var(--overdue);font-weight:700}.warn{font-size:14px;line-height:20px;color:var(--soon)}.input,.select,.textarea{width:100%;min-height:48px;padding:10px 12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md)}.textarea{min-height:96px;resize:vertical}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--hub);outline-offset:1px}.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:480px){.two{grid-template-columns:1fr}}.checks{display:flex;flex-wrap:wrap;gap:var(--space-2)}.check{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap-target);padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-size:14px;font-weight:700}.check:has(input:checked){background:var(--hub-soft);border-color:var(--hub);color:var(--hub)}.check input{accent-color:var(--hub)}.fieldset{border:0;padding:0;margin:0}.fieldset legend{font:700 14px/20px var(--font-sans);margin-bottom:6px;padding:0}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2)}.preset{display:flex;align-items:center;gap:var(--space-2);min-height:52px;padding:8px 12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;font-weight:700}.preset:hover{border-color:var(--hub)}.form-actions{position:sticky;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:5;background:var(--surface);padding:var(--space-3) 0}.more-details{border-top:1px solid var(--line);padding-top:var(--space-3)}.more-details__summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:2px}@media(min-width:1280px){.form-actions{bottom:0}}.preset--on{background:var(--hub-soft);border-color:var(--hub);color:var(--hub)}.preset:disabled{opacity:.55;cursor:default}.preset--on svg{color:var(--hub)}.preset svg{width:20px;height:20px;flex:none;color:var(--hub)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4)}.panel--hub{background:var(--hub-soft);border-color:transparent}.panel--warn{background:var(--soon-soft);border-color:transparent}.panel--danger{background:var(--overdue-soft);border-color:transparent}.panel h3{margin:0 0 var(--space-2);font:700 18px/24px var(--font-sans)}.panel p{margin:0 0 var(--space-3)}.panel p:last-child{margin-bottom:0}.toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:20;max-width:min(480px,calc(100% - 32px));background:var(--ink);color:var(--paper);padding:12px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-sheet);font-weight:700}@media(min-width:1280px){.toast{bottom:32px}}.empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--ink-muted)}.empty svg{width:40px;height:40px;color:var(--line-strong)}.welcome{max-width:480px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 48px) var(--space-4) 48px}.welcome h1{font:800 40px/44px var(--font-sans);letter-spacing:-.015em;margin:var(--space-6) 0 var(--space-3)}.logo{display:inline-flex;align-items:center;gap:10px;font:800 20px/1 var(--font-sans);letter-spacing:-.01em}.logo svg{width:36px;height:36px}.privacy-points{margin:var(--space-6) 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.privacy-points li{display:flex;gap:var(--space-3)}.privacy-points svg{width:22px;height:22px;flex:none;color:var(--hub);margin-top:1px}.month{margin-top:var(--space-2)}.month h2{font:700 14px/20px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:var(--space-6) 0 var(--space-2)}.radial-wrap{display:flex;justify-content:center}.radial-canvas{position:relative;width:min(420px,94vw);aspect-ratio:1;margin:var(--space-4) auto var(--space-6)}.radial-node{position:absolute;transform:translate(-50%,-50%);width:clamp(64px,18vw,80px);display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer;transition:opacity .2s ease}.radial-node--center{width:clamp(80px,22vw,96px);z-index:2}.radial-node--dim{opacity:.3;pointer-events:none}.radial-node__blob{position:relative;width:100%;aspect-ratio:1;border-radius:42% 58% 67% 33%/45% 40% 60% 55%;background:var(--node-color);color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px #14213d2e;transition:transform .2s ease,border-radius .3s ease}.radial-node__blob svg{width:34%;height:34%}@keyframes radial-float{0%,to{translate:0 0;box-shadow:0 2px 3px #14213d24,0 8px 14px #14213d29,0 16px 26px #14213d1a}50%{translate:0 -7px;box-shadow:0 4px 6px #14213d1a,0 14px 22px #14213d1f,0 26px 38px #14213d12}}.radial-node__blob{animation:radial-float 5.5s ease-in-out infinite;animation-delay:var(--float-delay, 0s);box-shadow:0 2px 3px #14213d24,0 8px 14px #14213d29,0 16px 26px #14213d1a}.radial-node--center .radial-node__blob{animation-duration:6.5s}.radial-node:nth-child(2){--float-delay: -.8s}.radial-node:nth-child(3){--float-delay: -1.7s}.radial-node:nth-child(4){--float-delay: -2.6s}.radial-node:nth-child(5){--float-delay: -3.5s}.radial-node:nth-child(6){--float-delay: -4.4s}.radial-node:nth-child(7){--float-delay: -5.1s}.radial-node--dim .radial-node__blob{animation-play-state:paused}.radial-node:hover .radial-node__blob,.radial-node:focus-visible .radial-node__blob{transform:scale(1.08);border-radius:50%}.radial-node__label{font:700 12px/15px var(--font-sans);color:var(--ink);text-align:center}.radial-node__badge{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;border-radius:999px;background:var(--overdue-mark);color:#fff;font:800 11px/20px var(--font-sans);text-align:center;padding:0 5px;box-shadow:0 0 0 2px var(--surface)}.radial-node__badge--soon{background:var(--soon-mark)}.radial-back{position:absolute;top:0;right:0;width:36px;height:36px;border-radius:999px;background:var(--surface);border:1px solid var(--line-strong);display:grid;place-items:center;cursor:pointer;z-index:3}.radial-back svg{width:18px;height:18px}@keyframes radial-pop{0%{opacity:0}to{opacity:1}}.radial-child{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;padding:0;cursor:pointer;animation:radial-pop .15s ease;z-index:2}.radial-child__circle{width:48px;height:48px;border-radius:50%;background:var(--node-color);color:#fff;display:grid;place-items:center;font:800 15px/1 var(--font-sans);box-shadow:0 2px 3px #14213d24,0 6px 12px #14213d29}.radial-child__label{font:700 11px/14px var(--font-sans);color:var(--ink);text-align:center}.radial-drawer-backdrop{position:fixed;inset:0;background:#0e152673;z-index:30;display:flex;align-items:flex-end;justify-content:center}.radial-drawer{position:relative;width:100%;max-width:560px;max-height:80vh;overflow-y:auto;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:var(--shadow-sheet);padding:var(--space-6) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom,0px))}.radial-drawer__close{position:absolute;top:var(--space-3);right:var(--space-3);width:36px;height:36px;border-radius:999px;background:var(--surface-sunk);border:0;display:grid;place-items:center;cursor:pointer}.radial-drawer__close svg{width:18px;height:18px}.radial-drawer__title{margin:0 var(--space-8) 0 0;font:800 20px/26px var(--font-sans)}.radial-drawer__row{display:flex;width:100%;justify-content:space-between;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) 0;border-bottom:1px solid var(--line);background:none;border-left:0;border-right:0;border-top:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.radial-drawer__row:last-child{border-bottom:0}@media(min-width:900px){.radial-drawer-backdrop{align-items:center}.radial-drawer{border-radius:var(--radius-lg)}}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--space-2)}.filter-chip{min-height:44px;padding:0 14px;border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:700 13px/1 var(--font-sans);cursor:pointer}.filter-chip--active{background:var(--chip-color, var(--hub));border-color:transparent;color:#fff}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-3)}.card-grid .rh-item{border-bottom:0}.badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.mini{display:inline-flex;align-items:center;gap:4px;font:700 12px/16px var(--font-sans);padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--ink-muted)}.mini svg{width:12px;height:12px}.mini--overdue{background:var(--overdue-soft);color:var(--overdue)}.mini--warn,.mini--need_to_review{background:var(--soon-soft);color:var(--soon)}.mini--info{background:var(--hub-soft);color:var(--hub)}.mini--ok,.mini--covered{background:var(--sorted-soft);color:var(--sorted)}.action{display:flex;align-items:stretch;border-radius:var(--radius-md);background:var(--hub-soft)}.action--warn{background:var(--soon-soft)}.action--overdue{background:var(--overdue-soft);color:var(--overdue)}.action__main{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:48px;padding:10px 14px;border:0;background:none;color:inherit;font:700 16px/24px var(--font-sans);text-align:left;cursor:pointer}.action__main svg,.action__x svg{width:18px;height:18px;flex:none}.action__x{width:48px;border:0;background:none;color:var(--ink-muted);cursor:pointer}.task{padding:0 var(--space-4)}.task>.task__row,.task>.task__edit,.task>.task__note{width:100%}.task{flex-direction:column}.task__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.task__label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-weight:700}.task__label input{width:20px;height:20px;accent-color:var(--hub)}.task__done{text-decoration:line-through;color:var(--ink-muted)}.task__note{margin:0 0 8px;white-space:pre-wrap}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.sum{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-3) var(--space-4);border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;text-align:left;min-height:64px}.sum--active{background:var(--hub-soft)}.sum__n{font:800 24px/28px var(--font-sans)}.sum__l{font-size:13px;line-height:16px;color:var(--ink-muted)}.review--faded{opacity:.6}.mini--not_covered,.mini--dont_know,.mini--not_applicable{background:var(--surface-sunk);color:var(--ink-muted)}

.rh-datepill{display:inline-block;font:700 13px/18px var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap;padding:5px 12px;border-radius:999px}
.rh-datepill--overdue{background:var(--overdue-soft);color:var(--overdue)}
.rh-datepill--soon{background:var(--soon-soft);color:var(--soon)}
.rh-datepill--coming{background:var(--hub-soft);color:var(--hub)}
.rh-datepill--later{background:var(--surface-sunk);color:var(--ink-muted)}
.rh-datepill--done{background:var(--sorted-soft);color:var(--sorted)}
.rh-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:var(--space-3);row-gap:0;align-items:center}
.rh-item__text{display:contents}
.rh-item>.rh-disc{grid-column:1;grid-row:1/3}
.rh-item__label{grid-column:2;grid-row:1;min-height:0}
.rh-item__meta{grid-column:2;grid-row:2}
.rh-item__side{grid-column:3;grid-row:1/3;align-self:center}
.rh-item .badges{grid-column:2/4;grid-row:3;margin-top:var(--space-2)}
.rh-item .badges:empty{display:none}
.rh-item .mini{white-space:normal}
.rh-group{display:flex;flex-direction:column;gap:var(--space-3)}
.rh-group__title{margin:var(--space-2) 0 0;display:flex;align-items:center;gap:8px;font:700 13px/18px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.rh-group__title--overdue{color:var(--overdue)}.rh-group__title--soon{color:var(--soon)}.rh-group__title--coming{color:var(--hub)}.rh-group__title--done{color:var(--sorted)}
.rh-group__count{font-weight:700;padding:0 8px;border-radius:999px;background:var(--surface-sunk);color:var(--ink-muted)}
.rh-group__title--overdue .rh-group__count{background:var(--overdue-soft);color:var(--overdue)}
.rh-card--overdue{flex-direction:column;align-items:stretch;border-color:var(--overdue-mark);border-left:4px solid var(--overdue-mark);background:color-mix(in srgb,var(--overdue-soft) 40%,var(--surface))}
.rh-card__actions{padding:0 var(--space-4) var(--space-3)}
.rh-btn--sm{min-height:40px;padding:6px 14px;font-size:14px;line-height:20px}
.filter-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;-webkit-mask-image:linear-gradient(to right,#000 90%,transparent);mask-image:linear-gradient(to right,#000 90%,transparent)}
.filter-row::-webkit-scrollbar{display:none}
.filter-chip{flex:none}

.rh-disc--overdue{--arc:var(--overdue);--track:var(--overdue-soft)}
.rh-disc--soon{--arc:var(--soon);--track:var(--soon-soft)}
.rh-disc--coming{--arc:var(--hub);--track:var(--hub-soft)}
.rh-disc--later{--arc:var(--ink-muted);--track:var(--surface-sunk)}
.rh-disc--done{--arc:var(--sorted);--track:var(--sorted-soft)}
.rh-disc--soon .rh-disc__num{color:var(--soon)}
.rh-disc--coming .rh-disc__num{color:var(--hub)}
.rh-disc--later .rh-disc__num{color:var(--ink-muted)}
.rh-disc--done .rh-disc__num{color:var(--sorted)}
.rh-disc--soon .rh-disc__unit,.rh-disc--coming .rh-disc__unit,.rh-disc--overdue .rh-disc__unit,.rh-disc--done .rh-disc__unit{color:inherit;opacity:.85}

.nav{grid-template-columns:repeat(6,1fr)}
.rh-cost-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.rh-cost-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4)}
.rh-cost-stat__label{font:700 12px/16px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.rh-cost-stat__value{font:800 30px/36px var(--font-sans);letter-spacing:-.01em;margin-top:4px;color:var(--hub);font-variant-numeric:tabular-nums}
.rh-cost-note{margin:0;font:400 13px/18px var(--font-sans);color:var(--ink-muted)}
.rh-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.rh-panel__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}
.rh-panel__title{margin:0;font:700 16px/24px var(--font-sans)}
.rh-panel__aside{font:700 14px/20px var(--font-sans);color:var(--ink-muted)}
.rh-panel__empty{margin:0;padding:var(--space-4);color:var(--ink-muted)}
.rh-cost-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--space-4);border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.rh-cost-row:last-child{border-bottom:0}
.rh-cost-row:hover{background:var(--surface-sunk)}
.rh-cost-row__text{display:flex;flex-direction:column;min-width:0}
.rh-cost-row__label{font:700 15px/22px var(--font-sans)}
.rh-cost-row__sub{font:400 13px/18px var(--font-sans);color:var(--ink-muted)}
.rh-cost-row__amt{font:700 15px/22px var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.rh-cost-cat{padding:12px var(--space-4);border-bottom:1px solid var(--line)}
.rh-cost-cat:last-child{border-bottom:0}
.rh-cost-cat__top{display:flex;justify-content:space-between;gap:12px;font:700 14px/20px var(--font-sans);margin-bottom:6px}
.rh-cost-cat__bar{height:8px;border-radius:999px;background:var(--hub-soft);overflow:hidden}
.rh-cost-cat__fill{height:100%;border-radius:999px;background:var(--hub)}

/* nav: 3 | ADD | 3, always symmetrical */
.nav{grid-template-columns:repeat(7,1fr)}
@media(max-width:400px){.nav a{font-size:9.5px;letter-spacing:-.02em}}
/* circle: thinner, pill-coloured, text fits */
:root{--disc-sm:52px}
.rh-disc{border-radius:50%}
.rh-disc__track,.rh-disc__arc{stroke-width:2.4}
.rh-disc__num{font-size:15px}
.rh-disc__unit{font-size:7px;letter-spacing:.02em;margin-top:1px;max-width:100%}
.rh-disc--lg .rh-disc__track,.rh-disc--lg .rh-disc__arc{stroke-width:2.6}
.rh-disc--lg .rh-disc__num{font-size:36px}
.rh-disc--lg .rh-disc__unit{font-size:12px;margin-top:4px;letter-spacing:.06em}
.rh-disc--overdue{background:var(--overdue-soft);--arc:var(--overdue);--track:color-mix(in srgb,var(--overdue) 18%,transparent)}
.rh-disc--soon{background:var(--soon-soft);--arc:var(--soon);--track:color-mix(in srgb,var(--soon) 18%,transparent)}
.rh-disc--coming{background:var(--hub-soft);--arc:var(--hub);--track:color-mix(in srgb,var(--hub) 18%,transparent)}
.rh-disc--later{background:var(--surface-sunk);--arc:var(--ink-muted);--track:color-mix(in srgb,var(--ink-muted) 18%,transparent)}
.rh-disc--done{background:var(--sorted-soft);--arc:var(--sorted);--track:color-mix(in srgb,var(--sorted) 18%,transparent)}
.rh-disc--nodate{background:var(--surface-sunk);--arc:var(--ink-muted);--track:transparent;box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.rh-disc--nodate .rh-disc__num{color:var(--ink-muted)}
.rh-disc--overdue .rh-disc__num{color:var(--overdue)}
/* no date */
.rh-datepill--nodate{background:transparent;color:var(--ink-muted);box-shadow:inset 0 0 0 1px var(--line-strong)}
.rh-group__title--nodate{color:var(--ink-muted)}
/* overdue pill: small, subtle, top right of the card */
/* text never cut: allow wrapping everywhere, stack on small phones */
.rh-item__label,.rh-item__meta,.rh-item .mini,.radial-drawer__rowlabel,.radial-drawer__rowsub,.rh-cost-row__label,.rh-cost-row__sub{overflow-wrap:anywhere;min-width:0}
.rh-datepill{max-width:100%}
/* hub card (drawer) */
.radial-drawer__row{gap:12px;text-align:left}
.radial-drawer__rowtext{display:flex;flex-direction:column;min-width:0;flex:1}
.radial-drawer__rowlabel{font-weight:700}
.radial-drawer__rowsub{font-size:13px;line-height:18px;color:var(--ink-muted)}
.radial-drawer__row .rh-datepill{flex:none;white-space:nowrap}
.rh-dgroups{display:flex;flex-direction:column;gap:var(--space-4)}
.rh-dgroup__asset{margin:0 0 4px;font:800 16px/22px var(--font-sans)}
.rh-dgroup__type{margin:var(--space-2) 0 2px;font:700 12px/16px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
/* segmented control, switch, select-all, confirm */
.rh-seg{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--surface-sunk);align-self:flex-start;border:1px solid var(--line)}
.rh-seg__btn{border:0;background:transparent;color:var(--ink-muted);font:700 13px/18px var(--font-sans);padding:6px 14px;border-radius:999px;cursor:pointer;min-height:36px}
.rh-seg__btn[aria-pressed=true]{background:var(--hub);color:var(--on-hub)}
.rh-theme{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:var(--space-4)}
.rh-theme__label{font:700 15px/22px var(--font-sans)}
.rh-switch{display:inline-flex;align-items:center;gap:10px;font:700 14px/20px var(--font-sans);cursor:pointer;min-height:44px}
.rh-switch input{position:absolute;opacity:0;width:44px;height:28px;margin:0;cursor:pointer}
.rh-switch__track{position:relative;flex:none;width:44px;height:26px;border-radius:999px;background:var(--line-strong);transition:background .15s}
.rh-switch__thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #0003}
.rh-switch input:checked+.rh-switch__track{background:var(--hub)}
.rh-switch input:checked+.rh-switch__track .rh-switch__thumb{transform:translateX(18px)}
.rh-switch input:focus-visible+.rh-switch__track{outline:2px solid var(--hub);outline-offset:2px}
.rh-all{display:flex;flex-direction:column;gap:var(--space-4)}
.rh-selectall{display:flex;align-items:center;gap:12px;font:700 15px/22px var(--font-sans);min-height:44px;cursor:pointer}
.rh-selectall input{width:22px;height:22px}
.rh-confirm{background:var(--soon-soft);color:var(--ink);border:1px solid var(--soon-mark);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}
.rh-confirm__title{margin:0;font:800 18px/24px var(--font-sans);color:var(--soon)}
.rh-confirm p{margin:0}
label.rh-card{width:100%;box-sizing:border-box;min-width:0}
.rh-cost-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
.rh-cost-stat{min-width:0;padding:var(--space-3) var(--space-4)}
.rh-cost-stat__value{font-size:clamp(18px,5.8vw,30px);line-height:1.2;overflow-wrap:anywhere}
label.rh-card>span{min-width:0;overflow-wrap:anywhere}
.rh-card__title,.small{overflow-wrap:anywhere}

/* household overview */
.rh-ovw{display:flex;flex-direction:column;gap:var(--space-3)}
.rh-ovw__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rh-ovw__title{margin:0;font:800 20px/26px var(--font-sans)}
.rh-ovw__sum{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}
.rh-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.rh-tile{position:relative;display:flex;flex-direction:column;gap:2px;min-width:0;padding:14px;border-radius:var(--radius-lg);text-decoration:none;color:var(--ink);background:color-mix(in srgb,var(--tile-color) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--tile-color) 28%,var(--line));transition:transform .15s,box-shadow .15s,border-color .15s}
.rh-tile:hover,.rh-tile:focus-visible{transform:translateY(-2px);box-shadow:0 6px 16px #14213d1f;border-color:var(--tile-color);outline:none}
.rh-tile:focus-visible{outline:2px solid var(--tile-color);outline-offset:2px}
.rh-tile__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rh-tile__blob{flex:none;width:44px;height:44px;border-radius:42% 58% 67% 33%/45% 40% 60% 55%;background:var(--tile-color);color:#fff;display:grid;place-items:center;box-shadow:0 4px 10px #14213d29}
.rh-tile__blob svg{width:22px;height:22px}
.rh-tile__num{font:800 36px/1 var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.rh-tile__label{margin-top:8px;font:700 15px/20px var(--font-sans);overflow-wrap:anywhere}
.rh-tile__status{font:700 12px/16px var(--font-sans);color:var(--ink-muted)}
.rh-tile__status--overdue{color:var(--overdue)}.rh-tile__status--soon{color:var(--soon)}.rh-tile__status--ok{color:var(--sorted)}.rh-tile__status--add{color:var(--tile-color)}
.rh-tile--empty{background:transparent;border:1.5px dashed color-mix(in srgb,var(--tile-color) 45%,var(--line-strong))}
.rh-tile--empty .rh-tile__blob{background:color-mix(in srgb,var(--tile-color) 16%,var(--surface));color:var(--tile-color);box-shadow:none}
.rh-tile--empty .rh-tile__num{color:var(--ink-muted);opacity:.55}
.rh-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rh-quick__label{font:700 13px/18px var(--font-sans);color:var(--ink-muted)}
.rh-quick__btn{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--hub);font:700 13px/18px var(--font-sans);text-decoration:none}
.rh-quick__btn:hover,.rh-quick__btn:focus-visible{background:var(--hub-soft)}
.rh-filterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--radius-md);background:var(--hub-soft);color:var(--hub);font:700 14px/20px var(--font-sans)}
.rh-filterbar a{color:var(--hub)}
/* rows on the Household / Insurance pages: icon + text + chevron or remove button */
.rh-item>.rh-item__icon{grid-column:1;grid-row:1/3;align-self:center}
.rh-item>svg:last-child,.rh-item>button,.rh-item>.row{grid-column:3;grid-row:1/3;align-self:center;justify-self:end}

/* cards: one layout on every screen - circle | title + subtitle | date, all on the same centre line */
.rh-item{position:relative;align-items:center;min-height:72px}
.rh-item>.rh-disc{align-self:center}
.rh-item__label,.rh-item__meta{align-self:center}
.rh-item__side{align-self:center}
/* tips and advice use the full width of the card, under the circle / title / date */
.rh-item .badges{grid-column:1/-1;grid-row:3;margin-top:var(--space-2)}
.rh-item .badges{display:flex;flex-wrap:wrap}
.rh-item .badges .mini--warn,.rh-item .badges .mini--info,.rh-item .badges .mini--overdue{flex:1 1 100%;box-sizing:border-box}
.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
/* overdue: small subtle tag in the top right corner; the date pill is unchanged */
.rh-overdue-tag{position:absolute;top:5px;right:10px;padding:1px 7px;border-radius:999px;font:700 10px/14px var(--font-sans);letter-spacing:.05em;text-transform:uppercase;color:var(--overdue);background:var(--overdue-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--overdue) 28%,transparent);pointer-events:none}
.rh-overdue-tag--inline{position:static;display:inline-block;margin-left:8px;vertical-align:middle;pointer-events:auto}
.rh-card--overdue .rh-item{padding-top:var(--space-4)}
/* small phones: same layout, just a little tighter */
@media(max-width:360px){
 :root{--disc-sm:44px}
 .rh-disc__num{font-size:13px}
 .rh-disc__unit{font-size:6.5px}
 .rh-datepill{font-size:11.5px;padding:4px 8px}
 .rh-item{column-gap:10px;padding-inline:var(--space-3)}
}
/* pack screen: section "Select all" */
.rh-selectall--section{min-height:44px;gap:8px;margin:0}
.rh-selectall__text{color:var(--hub);font:700 14px/20px var(--font-sans)}

/* cards: full width on phones, 2 per row on landscape phones and tablets, 3 on landscape tablets, more on laptops */
.card-grid{grid-template-columns:1fr}
@media(min-width:600px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}}
.main:has(.card-grid){max-width:1800px}
.rh-member{align-self:start}

/* ===== standard card sizes: every card of a kind has the same height ===== */
:root{--card-h:124px;--row-h:80px}
/* reminder cards: circle | title + subtitle | date, plus a reserved line for advice */
.rh-item--rem{height:var(--card-h);min-height:0;box-sizing:border-box;padding-block:10px;row-gap:0;grid-template-rows:minmax(0,1fr) max-content max-content minmax(0,1fr) 42px}
.rh-item--rem>.rh-disc{grid-row:1/5;align-self:center}
.rh-item--rem .rh-item__side{grid-row:1/5;align-self:center}
.rh-item--rem .rh-item__label{grid-row:2;align-self:auto;font:700 16px/21px var(--font-sans);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.rh-item--rem .rh-item__meta{grid-row:3;align-self:auto;font:400 14px/19px var(--font-sans);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-item--rem .badges{grid-row:5;align-self:end;margin-top:0}
.rh-item--rem .badges .mini{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:16px}
.rh-card--overdue .rh-item--rem{padding-top:10px}
/* simple rows (Household, Library, browse lists) */
.rh-item:not(.rh-item--rem){height:var(--row-h);min-height:0;box-sizing:border-box}
.rh-item:not(.rh-item--rem){padding-block:8px;row-gap:0}
.rh-item:not(.rh-item--rem) .rh-item__label{line-height:20px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.rh-item:not(.rh-item--rem) .rh-item__meta{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* hub card rows */
.radial-drawer__row{position:relative;height:var(--row-h);min-height:0;box-sizing:border-box}
.radial-drawer__rowlabel{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.radial-drawer__rowsub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* costs rows */
.rh-cost-row{height:var(--row-h);box-sizing:border-box}
.rh-cost-row__label{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.rh-cost-row__sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* pack entries and pack list */
label.rh-card{height:96px;min-height:0;align-items:center!important}
label.rh-card .rh-card__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
label.rh-card .small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list-plain>li>button.rh-card,.list-plain>li>a.rh-card{height:var(--row-h);min-height:0;box-sizing:border-box}
.list-plain>li>button.rh-card .rh-card__title,.list-plain>li>a.rh-card .rh-card__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
/* Add page buttons */
button.preset{height:64px;min-height:0;box-sizing:border-box;overflow:hidden}
button.preset .preset__t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-width:0;text-align:left}
.preset-grid{grid-auto-rows:64px}
/* category pages: item headings and the empty-item placeholder */
.rh-mhead{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;margin:var(--space-4) 0 0;font:800 17px/22px var(--font-sans)}
.card-grid>.rh-mhead:first-child{margin-top:0}
.rh-mhead a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.rh-mhead svg{width:20px;height:20px}
.rh-mhead__meta{font:400 13px/18px var(--font-sans);color:var(--ink-muted)}
.rh-ph{height:calc(var(--card-h) + 2px);box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:14px;padding:0;background:transparent;border:1.5px dashed var(--line-strong);color:var(--ink-muted)}
.rh-ph a{color:var(--hub);font-weight:700}
.rh-ph__plus{width:36px;height:36px;flex:none;border-radius:50%;background:var(--hub-soft);color:var(--hub);display:grid;place-items:center;font:700 22px/1 var(--font-sans)}
/* settings: stacked label + select */
.rh-theme--stack{flex-direction:column;align-items:flex-start}
.rh-theme--stack .select{max-width:280px}

/* nav label: short on the phone bar, long in the sidebar */
.nav__long{display:none}.nav__short{display:inline}
@media(min-width:1280px){.nav__long{display:inline}.nav__short{display:none}}
/* cost fields on the renewal form and the Costs page */
.rh-costbox{display:grid;gap:10px}
.rh-calc{margin:0;font:700 15px/1.4 var(--font-sans);color:var(--sorted);min-height:22px;font-variant-numeric:tabular-nums}
.rh-nopr{display:grid;gap:10px;padding:14px var(--space-4);border-top:1px solid var(--line)}
.rh-nopr__name{font:700 16px/22px var(--font-sans)}
.rh-nopr__ctl{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
@media(min-width:520px){.rh-nopr__ctl{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.rh-nopr__btns{display:flex;flex-wrap:wrap;gap:12px}
.rh-nopr__intro{margin:0;padding:var(--space-3) var(--space-4) 0;color:var(--ink-muted);font:400 14px/20px var(--font-sans)}
.rh-nopr .input,.rh-nopr .select{min-height:48px}

/* hub ring: status in text under each node */
.radial-node__status{display:inline-flex;align-items:center;gap:3px;font:700 11px/14px var(--font-sans);white-space:nowrap}
.radial-node__status svg{width:12px;height:12px;flex:none}
.radial-node__status--od{color:var(--overdue)}.radial-node__status--sn{color:var(--soon)}
.radial-node{gap:3px}
.radial-canvas{touch-action:manipulation}
@media(max-width:400px){
 .radial-canvas{width:100%;aspect-ratio:1/1.32;margin-block:var(--space-3) var(--space-4)}
 .radial-node{width:68px}
 .radial-node--center{width:78px}
 .radial-node__label{font:700 11px/13px var(--font-sans)}
 .radial-node__status{font-size:10.5px;line-height:13px}
 .radial-node__status svg{width:11px;height:11px}
}
.empty2{display:grid;gap:12px;justify-items:start;padding:var(--space-6);border-radius:var(--radius-lg);border:1.5px dashed var(--line-strong)}
.empty2 b{font:800 18px/24px var(--font-sans)}

/* ===== forms: sections, standard button bar, confirmation ===== */
.input,.select{min-height:48px}
.rh-formpage{display:grid;gap:var(--space-6);max-width:880px}
.rh-formpage__body{display:grid;gap:var(--space-5)}
.rh-fsec{display:grid;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}
.rh-fsec__title{margin:0;font:800 18px/24px var(--font-sans);text-wrap:balance}
.rh-fbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.rh-fbar__main{display:flex;flex-wrap:wrap;gap:12px}
.rh-confirm--remove{background:var(--overdue-soft);border-color:var(--overdue-mark)}
.rh-confirm--remove p{color:var(--ink)}
@media(max-width:639px){.rh-fbar{flex-direction:column;align-items:stretch}.rh-fbar__main{flex-direction:column}.rh-fbar .rh-btn{width:100%}.rh-fbar>.rh-btn--danger{margin-top:12px}.rh-confirm .rh-fbar__main .rh-btn{width:100%}}
.rh-formpage,.rh-formpage__body,.rh-fsec,.rh-vinfo,.rh-vcard{min-width:0}
.rh-fbar .rh-btn,.rh-confirm .rh-btn{white-space:normal;overflow-wrap:anywhere;text-align:center;height:auto;min-height:44px}
.rh-fbar>.rh-btn--danger{margin-inline-start:auto;max-width:100%}
@media(max-width:639px){.rh-fbar>.rh-btn--danger{margin-inline-start:0}}
.page-title{overflow-wrap:anywhere}
.page-head{flex-wrap:wrap}.page-head>*{min-width:0}.page-head .rh-btn{white-space:normal;text-align:center}
.rh-radios{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.rh-radios legend{font:700 14px/20px var(--font-sans);padding:0;margin-bottom:4px}
.rh-costlist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rh-costlist li{display:flex;justify-content:space-between;gap:12px;font:400 15px/22px var(--font-sans)}
.rh-costlist__total{border-top:1px solid var(--line);padding-top:6px}
.rh-num{font-variant-numeric:tabular-nums}
.rh-money{position:relative}.rh-money>span{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);font:700 16px/1 var(--font-sans);color:var(--ink-muted)}.rh-money .input{padding-inline-start:28px}
.optl{font:700 12px/1 var(--font-sans);color:var(--ink-muted);background:var(--surface-sunk);padding:3px 6px;border-radius:4px;margin-inline-start:8px}
.callout{display:flex;gap:10px;align-items:flex-start;background:var(--hub-soft);border-radius:12px;padding:12px 14px;font:400 14px/20px var(--font-sans)}
.callout svg{flex:none;width:20px;height:20px;color:var(--hub);margin-top:1px}
.rh-claimbox{font:500 13px/18px var(--font-mono,monospace);max-width:560px}
/* household rows: icon, name, subtitle, Edit */
.rh-item--row{grid-template-columns:auto minmax(0,1fr) auto}
.rh-item>.rh-row-edit__act{grid-column:3;grid-row:1/3;align-self:center;justify-self:end;color:var(--hub);font:700 14px/20px var(--font-sans);padding-inline:8px}
.rh-item--row:hover .rh-row-edit__act{text-decoration:underline}
/* valuables */
.rh-vinfo{display:grid;gap:10px;padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}
.rh-vinfo__total{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.rh-vinfo__label{font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.rh-vinfo__total b{font:800 28px/32px var(--font-sans)}
.rh-vinfo__text,.rh-vinfo__warn{margin:0;font:400 15px/22px var(--font-sans);max-width:68ch;text-wrap:pretty}
.rh-vinfo__warn{display:flex;gap:8px;align-items:flex-start;background:var(--soon-soft);color:var(--soon);padding:10px 12px;border-radius:10px;font-weight:700}
.rh-vinfo__warn svg{width:18px;height:18px;flex:none;margin-top:2px}
.rh-vcontrols{display:grid;gap:var(--space-3)}
.rh-vcount{margin:0;font:400 14px/20px var(--font-sans);color:var(--ink-muted)}
.rh-vgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:12px;grid-auto-rows:1fr}
@media(min-width:600px){.rh-vgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}}
.main:has(.rh-vgrid){max-width:1800px}
.rh-vcard{position:relative;display:grid;grid-template-rows:auto 1fr;gap:10px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);transition-property:background-color,border-color;transition-duration:.15s;transition-timing-function:ease-out}
.rh-vcard:hover{background:var(--hub-soft);border-color:var(--hub)}
.rh-vcard:has(.rh-vcard__link:focus-visible){outline:2px solid var(--hub);outline-offset:2px}
.rh-vcard__img{aspect-ratio:4/3;border-radius:10px;display:grid;place-items:center;overflow:hidden;background:color-mix(in srgb,var(--vc,#6D5FAA) 16%,var(--surface));color:var(--vc,#6D5FAA)}
.rh-vcard__img svg{width:44px;height:44px}
.rh-vthumb{width:100%;height:100%;object-fit:cover;display:block}
.rh-vcard__body{display:grid;gap:4px;align-content:start;padding-inline:4px;min-width:0}
.rh-vcard__link{font:800 17px/22px var(--font-sans);color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.rh-vcard__link::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg)}
.rh-vcard__link:focus-visible{outline:none}
.rh-vcard__type{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}
.rh-vcard__value{font:800 18px/24px var(--font-sans)}
.rh-vcard__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.rh-vchip{display:inline-flex;align-items:center;gap:5px;font:700 12px/16px var(--font-sans);padding:3px 8px;border-radius:999px;background:var(--surface-sunk);color:var(--ink-muted)}
.rh-vchip svg{width:14px;height:14px;flex:none}
.rh-vchip--ok{background:var(--sorted-soft);color:var(--sorted)}.rh-vchip--warn{background:var(--soon-soft);color:var(--soon)}
.rh-photolist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rh-photolist li{display:flex;align-items:center;gap:12px;padding:8px;border-radius:10px;background:var(--surface-sunk);min-height:56px}
.rh-photolist li span{flex:1;min-width:0;overflow-wrap:anywhere;font:400 14px/20px var(--font-sans)}
.rh-photolist .rh-vthumb{width:48px;height:48px;border-radius:8px;flex:none}

/* ===== layout and accessibility standards ===== */
.main{max-width:880px}
h1,h2,h3{text-wrap:balance}
.rh-btn--sm{min-height:44px}
.rh-seg__btn{min-height:44px}
.rh-btn{transition-property:scale,background-color,border-color,color;transition-duration:.15s;transition-timing-function:ease-out}
.rh-btn:active{scale:.96}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--hub);outline-offset:2px}
.rh-skip{position:fixed;inset-inline-start:12px;top:8px;z-index:100;padding:12px 16px;border:0;border-radius:var(--radius-md);background:var(--hub);color:var(--on-hub);font:700 15px/20px var(--font-sans);top:-120px;cursor:pointer}
.rh-skip:focus-visible{top:8px;outline:2px solid var(--on-hub);outline-offset:-4px}
.rh-num,.rh-datepill,.rh-cost-row__amt,.rh-tile__num,.rh-catrow__n,.rh-isum__counts b{font-variant-numeric:tabular-nums}
p,.hint,.rh-isub{text-wrap:pretty}
/* insurance review */
.rh-sh{margin:0;font:800 20px/26px var(--font-sans)}
.rh-isum{display:grid;gap:10px;padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}
.rh-bar{height:10px;border-radius:999px;background:var(--line);overflow:hidden}
.rh-bar i{display:block;height:100%;background:var(--sorted);border-radius:999px;min-width:0}
.rh-isum__counts{margin:0;font:400 14px/20px var(--font-sans);color:var(--ink-muted)}
.rh-isum__counts b{color:var(--ink)}
.rh-igroup{display:grid;gap:var(--space-3)}
.rh-isub{margin:0;font:400 14px/20px var(--font-sans);color:var(--ink-muted);overflow-wrap:anywhere}
.rh-ilist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rh-irow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:12px var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:14px;min-height:64px}
.rh-irow__main{display:grid;gap:2px;min-width:0}
.rh-iname{margin:0;font:700 17px/24px var(--font-sans);overflow-wrap:anywhere}
.rh-irow__acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;justify-content:flex-end}
@media(max-width:639px){.rh-irow{grid-template-columns:minmax(0,1fr)}.rh-irow__acts{justify-content:flex-start}}
.rh-ichip{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:4px 10px;border-radius:999px;background:var(--surface-sunk);color:var(--ink-muted);font:700 13px/18px var(--font-sans)}
.rh-answers{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:0 var(--space-4)}
.rh-answers>summary{min-height:48px;display:flex;align-items:center;font:700 16px/24px var(--font-sans);cursor:pointer}
.rh-answers[open]{padding-bottom:var(--space-4)}
/* hub: category list under the ring */
.rh-hubwrap{display:grid;gap:var(--space-4)}
.rh-catlist{display:grid;gap:var(--space-3)}
.rh-catlist__ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rh-catrow{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--ink);font:inherit;text-align:start;cursor:pointer}
.rh-catrow:hover{background:var(--hub-soft)}
.rh-catrow__dot{width:12px;height:12px;border-radius:50%}
.rh-catrow__name{font:700 16px/22px var(--font-sans)}
.rh-catrow__n{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}
.rh-catrow__st{font:700 13px/18px var(--font-sans);color:var(--ink-muted);min-width:84px;text-align:end}
.rh-catrow__st--od{color:var(--overdue)}.rh-catrow__st--sn{color:var(--soon)}
@media(max-width:479px){.rh-catrow{grid-template-columns:12px minmax(0,1fr) auto;grid-template-areas:"d n s" "d c s"}.rh-catrow__dot{grid-area:d}.rh-catrow__name{grid-area:n}.rh-catrow__n{grid-area:c}.rh-catrow__st{grid-area:s}}

.rh-hero-for{margin:0 0 4px;font:600 15px/22px var(--font-sans);color:var(--ink-muted);overflow-wrap:anywhere}
.facts dd a{color:var(--hub);font-weight:600;text-underline-offset:3px}

/* v21 accessibility fixes */
.rh-tile .rh-tile__status--add{color:#8c2f10}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .rh-tile .rh-tile__status--add{color:#ffc2ad}}
:root[data-theme=dark] .rh-tile .rh-tile__status--add{color:#ffc2ad}
html{scroll-padding-bottom:96px}
.rh-vinfo__text a{display:inline-flex;align-items:center;min-height:44px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .radial-node__badge{color:#14202e!important}:root:not([data-theme=light]) .filter-chip--active{color:#0b1220!important}}
:root[data-theme=dark] .radial-node__badge{color:#14202e!important}
:root[data-theme=dark] .filter-chip--active{color:#0b1220!important}

/* v22 */
.rh-legal-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin:12px 0 0}
.rh-legal-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--hub);font-weight:600}
.rh-static{max-width:640px;margin:0 auto;padding:48px 16px;font-family:var(--font-sans,system-ui);color:var(--ink,#14213d)}
.rh-static h1{font-size:32px;margin:0 0 8px}.rh-static p{line-height:1.55}.rh-static ul{padding-left:20px;line-height:1.7}
.rh-static nav{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:24px}.rh-static nav a{min-height:44px;display:inline-flex;align-items:center}
