@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--font-weight-medium:500;--font-weight-semibold:600;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.right-4{right:calc(var(--spacing) * 4)}.bottom-20{bottom:calc(var(--spacing) * 20)}.z-10{z-index:10}.z-30{z-index:30}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.max-h-60{max-height:calc(var(--spacing) * 60)}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[var\(--radius-lg\)\]{border-radius:var(--radius-lg)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[var\(--border\)\]{border-color:var(--border)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-black\/45{background-color:#00000073}@supports (color:color-mix(in lab, red, red)){.bg-black\/45{background-color:color-mix(in oklab, var(--color-black) 45%, transparent)}}.bg-transparent{background-color:#0000}.p-1{padding:calc(var(--spacing) * 1)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-1{padding-top:calc(var(--spacing) * 1)}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-\[color\:var\(--hub-danger-fg\)\]{color:var(--hub-danger-fg)}.text-\[color\:var\(--text-muted\)\]{color:var(--text-muted)}.text-\[color\:var\(--text-subtle\)\]{color:var(--text-subtle)}.text-\[var\(--text\)\]{color:var(--text)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}@media (hover:hover){.hover\:bg-\[var\(--surface-muted\)\]:hover{background-color:var(--surface-muted)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:px-10{padding-inline:calc(var(--spacing) * 10)}}}:root{--hub-coral-50:oklch(97% .02 38);--hub-coral-100:oklch(94% .05 38);--hub-coral-200:oklch(88% .1 38);--hub-coral-300:oklch(82% .14 38);--hub-coral-400:oklch(77% .17 38);--hub-coral-500:oklch(72% .19 38);--hub-coral-600:oklch(64% .19 36);--hub-coral-700:oklch(54% .17 34);--hub-coral-800:oklch(42% .13 32);--hub-coral-900:oklch(30% .09 32);--hub-lime-50:oklch(98% .03 130);--hub-lime-100:oklch(96% .07 130);--hub-lime-200:oklch(94% .1 130);--hub-lime-300:oklch(92% .14 130);--hub-lime-400:oklch(90% .16 130);--hub-lime-500:oklch(88% .18 130);--hub-lime-600:oklch(79% .18 130);--hub-lime-700:oklch(70% .18 130);--hub-lime-800:oklch(58% .16 130);--hub-lime-900:oklch(45% .13 130);--hub-violet-50:oklch(97% .02 305);--hub-violet-100:oklch(94% .05 305);--hub-violet-300:oklch(80% .13 305);--hub-violet-500:oklch(64% .18 305);--hub-violet-700:oklch(48% .18 305);--hub-violet-800:oklch(36% .15 305);--hub-violet-900:oklch(26% .1 305);--hub-sky-50:oklch(97% .02 230);--hub-sky-100:oklch(93% .05 230);--hub-sky-300:oklch(85% .09 230);--hub-sky-500:oklch(72% .14 230);--hub-sky-700:oklch(54% .15 230);--hub-sky-800:oklch(42% .13 230);--hub-sky-900:oklch(30% .09 230);--hub-ink-0:oklch(100% 0 0);--hub-ink-50:oklch(98% .005 80);--hub-ink-100:oklch(96% .008 80);--hub-ink-150:oklch(93% .01 80);--hub-ink-200:oklch(90% .012 80);--hub-ink-300:oklch(82% .014 80);--hub-ink-400:oklch(68% .014 80);--hub-ink-500:oklch(54% .014 80);--hub-ink-600:oklch(42% .014 80);--hub-ink-700:oklch(32% .015 80);--hub-ink-800:oklch(24% .018 280);--hub-ink-900:oklch(18% .02 280);--hub-ink-950:oklch(13% .02 280);--hub-success:oklch(70% .16 150);--hub-success-soft:oklch(94% .07 150);--hub-success-fg:oklch(35% .13 150);--hub-warning:oklch(82% .16 80);--hub-warning-soft:oklch(94% .08 80);--hub-warning-fg:oklch(38% .12 80);--hub-danger:oklch(64% .21 25);--hub-danger-soft:oklch(94% .05 25);--hub-danger-fg:oklch(38% .13 25);--hub-info:var(--hub-sky-500);--hub-info-soft:oklch(94% .05 230);--hub-info-fg:oklch(38% .13 230);--cat-finance-1:oklch(70% .16 40);--cat-finance-2:oklch(74% .15 100);--cat-finance-3:oklch(70% .15 155);--cat-finance-4:oklch(70% .12 205);--cat-finance-5:oklch(64% .15 260);--cat-finance-6:oklch(60% .16 310);--cat-finance-7:oklch(66% .17 350);--cat-finance-none:oklch(74% .02 280);--cycle-phase-menstrual:oklch(63% .19 25);--cycle-phase-follicular:oklch(75% .16 145);--cycle-phase-ovulation:oklch(70% .13 215);--cycle-phase-luteal:oklch(64% .16 305);--cycle-flow-light:oklch(82% .09 25);--cycle-flow-normal:oklch(68% .17 25);--cycle-flow-heavy:oklch(55% .2 25);--cycle-confidence-dim:.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:32px;--radius-3xl:44px;--radius-full:9999px;--shadow-xs:0 1px 2px oklch(20% .02 280/.06);--shadow-sm:0 2px 6px oklch(20% .02 280/.06), 0 1px 2px oklch(20% .02 280/.05);--shadow-md:0 8px 20px oklch(20% .02 280/.08), 0 2px 6px oklch(20% .02 280/.05);--shadow-lg:0 18px 40px oklch(20% .02 280/.12), 0 4px 10px oklch(20% .02 280/.06);--shadow-xl:0 32px 60px oklch(20% .02 280/.16);--shadow-pop:0 1px 0 0 oklch(100% 0 0/.35) inset, 0 1px 2px oklch(20% .02 280/.08), 0 4px 14px -4px oklch(20% .02 280/.35);--shadow-ring:0 0 0 4px oklch(72% .19 38/.18);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.36s;--mobile-topbar-h:56px;--mobile-tabbar-h:70px;--mobile-tabbar-safe:calc(var(--mobile-tabbar-h) + env(safe-area-inset-bottom));--page-pad-x:16px;--page-pad-x-wide:32px;--page-pad-top:20px;--page-pad-bottom:24px;--font-display:"Bricolage Grotesque", "Inter", system-ui, sans-serif;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--text-2xs:11px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--text-4xl:48px;--text-5xl:64px;--text-6xl:88px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--hub-ink-50);--bg-elevated:var(--hub-ink-0);--bg-sunken:var(--hub-ink-100);--bg-inverse:var(--hub-ink-900);--surface:var(--hub-ink-0);--surface-muted:var(--hub-ink-100);--border:var(--hub-ink-200);--border-strong:var(--hub-ink-300);--text:var(--hub-ink-900);--text-muted:var(--hub-ink-600);--text-subtle:var(--hub-ink-500);--text-inverse:var(--hub-ink-0);--primary:var(--hub-coral-500);--primary-hover:var(--hub-coral-600);--primary-soft:var(--hub-coral-100);--on-primary:var(--hub-ink-950);--accent:var(--hub-lime-500);--accent-soft:var(--hub-lime-100);--on-accent:var(--hub-ink-900);--focus-ring:var(--shadow-ring);--hub-m-tabbar-h:calc(var(--mobile-tabbar-safe) + 16px)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--hub-ink-950);--bg-elevated:var(--hub-ink-900);--bg-sunken:oklch(10% .02 280);--bg-inverse:var(--hub-ink-50);--surface:var(--hub-ink-900);--surface-muted:var(--hub-ink-800);--border:oklch(32% .02 280);--border-strong:oklch(46% .02 280);--text:oklch(96% .005 80);--text-muted:oklch(72% .014 80);--cycle-phase-menstrual:oklch(70% .18 25);--cycle-phase-follicular:oklch(80% .15 145);--cycle-phase-ovulation:oklch(78% .12 215);--cycle-phase-luteal:oklch(73% .15 305);--cycle-flow-light:oklch(72% .1 25);--cycle-flow-normal:oklch(67% .17 25);--cycle-flow-heavy:oklch(60% .2 25);--text-subtle:var(--hub-ink-400);--text-inverse:var(--hub-ink-950);--primary:var(--hub-coral-400);--primary-hover:var(--hub-coral-300);--primary-soft:oklch(34% .1 38);--on-primary:var(--hub-ink-950);--accent:var(--hub-lime-500);--accent-soft:oklch(36% .1 130);--on-accent:var(--hub-ink-950);--hub-success-soft:oklch(30% .08 150);--hub-success-fg:oklch(82% .15 150);--hub-warning-soft:oklch(32% .09 80);--hub-warning-fg:oklch(86% .14 80);--hub-danger-soft:oklch(32% .09 25);--hub-danger-fg:oklch(83% .16 25);--hub-info-soft:oklch(32% .08 230);--hub-info-fg:oklch(83% .13 230);--cat-finance-1:oklch(78% .15 40);--cat-finance-2:oklch(82% .14 100);--cat-finance-3:oklch(78% .14 155);--cat-finance-4:oklch(80% .11 205);--cat-finance-5:oklch(74% .14 260);--cat-finance-6:oklch(70% .15 310);--cat-finance-7:oklch(76% .16 350);--cat-finance-none:oklch(60% .02 280)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:36px}select::-ms-expand{display:none}body{font-family:var(--font-sans);font-size:var(--text-base);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;transition:background var(--dur-slow) var(--ease-out), color var(--dur-slow) var(--ease-out)}@media (display-mode:standalone){body{-webkit-tap-highlight-color:transparent}}a{color:inherit;text-decoration:none}::selection{background:var(--primary);color:var(--on-primary)}.h-display{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;font-weight:700;line-height:.95}.h-title{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600;line-height:1.05}.h-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted)}.hub-dotgrid{color:var(--hub-ink-200);opacity:.7;background-image:radial-gradient(currentColor 1px,#0000 1.4px);background-position:0 0;background-size:22px 22px}[data-theme=dark] .hub-dotgrid{color:oklch(28% .018 280)}.hub-page-bg{isolation:isolate;min-height:100%;position:relative;overflow-x:clip}.hub-page-bg:before,.hub-page-bg:after{content:"";filter:blur(80px);z-index:-1;pointer-events:none;border-radius:50%;position:absolute}.hub-page-bg:before{background:var(--primary);opacity:.12;width:540px;height:540px;top:-180px;right:-120px}.hub-page-bg:after{background:var(--accent);opacity:.18;width:460px;height:460px;bottom:-180px;left:-120px}[data-theme=dark] .hub-page-bg:before{opacity:.18}[data-theme=dark] .hub-page-bg:after{opacity:.12}.hub-page{padding:var(--page-pad-top) var(--page-pad-x) var(--page-pad-bottom);flex-direction:column;gap:24px;min-width:0;display:flex}.hub-page--narrow{width:100%;max-width:720px;margin:0 auto}.hub-page--wide{width:100%;max-width:1280px;padding-left:var(--page-pad-x-wide);padding-right:var(--page-pad-x-wide);margin:0 auto}.hub-page--flush{gap:12px;padding-left:0;padding-right:0}@media (width<=640px){.hub-page--wide{padding-left:var(--page-pad-x);padding-right:var(--page-pad-x)}}.hub-page-header{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.hub-page-header__group{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.hub-page-header__titles{min-width:0}.hub-page-header__title{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.02em;margin:4px 0 0;font-weight:600;line-height:1.1}.hub-page-header__actions{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.hub-page-section{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:12px;padding:16px;display:flex}.hub-page-section__head{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle);margin:0;font-weight:600}.hub-page-section__hint{font-size:var(--text-sm);color:var(--text-subtle);margin:0;line-height:1.5}.hub-page-section__row{border-radius:var(--radius-md);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.hub-page-section__row-main{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.hub-page-section__row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.hub-page-section__row-title{color:var(--text);font-weight:600;font-size:var(--text-sm)}.hub-icon-circle{aspect-ratio:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.hub-icon-circle--sm{width:28px;height:28px}.hub-icon-circle--lg{width:44px;height:44px}.hub-icon-circle--primary{background:var(--primary-soft);color:var(--primary)}.hub-icon-circle--surface{background:var(--surface-muted);color:var(--text)}.hub-icon-circle--ghost{color:var(--text-muted);background:0 0}.hub-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.hub-card--pad{padding:16px}.hub-card--section{flex-direction:column;gap:12px;padding:16px;display:flex}.hub-card--interactive{cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.hub-card--interactive:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.hub-card__header{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle);margin:0;font-weight:600}.hub-icon-btn{cursor:pointer;width:36px;height:36px;color:var(--text);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hub-icon-btn:hover{background:var(--surface-muted)}.hub-icon-btn:disabled{opacity:.5;cursor:not-allowed}.hub-icon-btn--sm{width:28px;height:28px}.hub-icon-btn--lg{width:44px;height:44px}.hub-icon-btn--surface{background:var(--surface-muted)}.hub-icon-btn--surface:hover{background:var(--border)}.hub-icon-btn--primary{background:var(--primary-soft);color:var(--primary)}.hub-field{flex-direction:column;gap:5px;display:flex}.hub-field__label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);font-weight:600}.hub-field__hint{font-size:var(--text-xs);color:var(--text-subtle)}.hub-field__hint--error{color:var(--hub-danger)}.hub-input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;min-width:0;font-family:inherit;font-size:var(--text-sm);color:var(--text);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:11px 14px}.hub-input::placeholder{color:var(--text-subtle)}.hub-input:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}.hub-input--error{border-color:var(--hub-danger)}textarea.hub-input{resize:vertical;min-height:80px}.hub-row{border-radius:var(--radius-md);text-align:left;width:100%;color:var(--text);align-items:center;gap:12px;padding:12px;display:flex}button.hub-row,a.hub-row{cursor:pointer;font:inherit;background:0 0;border:none}.hub-row--card{background:var(--surface);border:1px solid var(--border)}.hub-row--interactive{transition:background var(--dur-fast) var(--ease-out)}.hub-row--interactive:hover{background:var(--surface-muted)}.hub-row__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-row__title{font-weight:600;font-size:var(--text-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-row__meta{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:6px;display:flex}.hub-row__trailing{color:var(--text-subtle);flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.hub-chip{border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface-muted);font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.hub-month{flex-direction:column;gap:10px;display:flex}.hub-month__head{justify-content:space-between;align-items:center;display:flex}.hub-month__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);text-transform:capitalize}.hub-month__dow{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.hub-month__dow span{text-align:center;font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle)}.hub-month__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.hub-month__cell{aspect-ratio:1;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text);background:var(--cell-tint,transparent);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex}.hub-month__cell--muted{color:var(--text-subtle);opacity:.5}.hub-month__cell--today{box-shadow:inset 0 0 0 1.5px var(--primary)}.hub-month__cell--selected{background:var(--primary);color:var(--on-primary)}.hub-access-denied{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:420px;margin:40px auto;padding:40px 24px;display:flex}.hub-access-denied__icon{background:var(--surface-muted);width:64px;height:64px;color:var(--text-subtle);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hub-access-denied__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);margin:0}.hub-access-denied__msg{color:var(--text-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.hub-mega{border-radius:var(--radius-2xl);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;width:100%;color:var(--text);transition:border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-spring), box-shadow var(--dur-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex}.hub-mega:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.hub-mega:active{transform:scale(.98)}.hub-mega__icon{background:var(--primary-soft);width:56px;height:56px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hub-mega__label{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg)}.hub-mega__hint{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-subtle)}.hub-select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;min-width:0;font-family:inherit;font-size:var(--text-sm);color:var(--text);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:11px 36px 11px 14px}.hub-select:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}.hub-select--error{border-color:var(--hub-danger)}.hub-segmented{flex-wrap:wrap;gap:8px;display:flex}.hub-segmented--fill .hub-segmented__opt{flex:1}.hub-segmented__opt{border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.hub-segmented__opt:hover{border-color:var(--border-strong)}.hub-segmented__opt.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--hub-coral-800)}[data-theme=dark] .hub-segmented__opt.is-active{color:var(--hub-coral-100)}.hub-segmented__opt:disabled{opacity:.5;cursor:not-allowed}.hub-mega--filled{background:var(--mega-fill,var(--primary));color:var(--hub-ink-950);box-shadow:var(--shadow-md);border-color:#0000}.hub-mega--filled .hub-mega__icon{color:var(--hub-ink-950);background:oklch(13% .02 280/.12)}.hub-mega--filled .hub-mega__hint{color:oklch(13% .02 280/.75)}.hub-mega--compact{border-radius:var(--radius-full);flex-direction:row;gap:12px;padding:12px 20px}.hub-mega--compact .hub-mega__icon{width:36px;height:36px}.hub-empty--compact{gap:8px;padding:24px 16px}.hub-toast-host{z-index:40;pointer-events:none;justify-content:center;align-items:stretch;padding:0 16px;display:flex;position:fixed;bottom:24px;left:0;right:0}.hub-toast{pointer-events:auto;border-radius:var(--radius-full);min-width:0;max-width:100%;font-size:var(--text-sm);background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-lg);align-items:center;gap:10px;padding:8px 12px 8px 10px;font-weight:500;display:inline-flex}.hub-toast__icon{background:var(--primary);width:28px;height:28px;color:var(--on-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hub-toast__text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.hub-toast--update .hub-toast__text{white-space:normal}.hub-toast__action{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--primary);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;flex-shrink:0;padding:6px 10px;font-weight:600}.hub-toast__action:hover{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-toast__action:hover{background:color-mix(in oklab, var(--primary) 12%, transparent)}}.hub-toast__action--muted{color:var(--text-subtle);font-weight:500}.hub-toast__action--muted:hover{background:currentColor}@supports (color:color-mix(in lab, red, red)){.hub-toast__action--muted:hover{background:color-mix(in oklab, currentColor 12%, transparent)}}.hub-toast__action--muted:hover{color:var(--text)}.hub-toast__close{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-right:-2px;padding:4px;display:inline-flex}.hub-toast__close:hover{background:currentColor}@supports (color:color-mix(in lab, red, red)){.hub-toast__close:hover{background:color-mix(in oklab, currentColor 12%, transparent)}}.hub-toast__close:hover{color:var(--text)}.hub-stack{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hub-button-row{flex-wrap:wrap;gap:8px;display:flex}.hub-toggle-group{flex-wrap:wrap;flex-shrink:0;gap:12px;display:flex}.hub-toggle{font-size:var(--text-xs);color:var(--text-subtle);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.hub-toggle input{accent-color:var(--primary);cursor:pointer}.hub-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-inline-code{background:var(--surface-muted);border-radius:var(--radius-xs);font-size:12px;font-family:var(--font-mono);padding:0 4px}.hub-link{color:var(--primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:500;text-decoration:none;display:inline}.hub-link:hover{text-decoration:underline}.hub-link:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-xs);outline:none}.hub-link:disabled{color:var(--text-subtle);cursor:not-allowed;text-decoration:none}.hub-btn{font-family:var(--font-sans);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);white-space:nowrap;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.hub-btn:active{transform:translateY(1px)scale(.98)}.hub-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.hub-btn:disabled{opacity:.5;cursor:not-allowed}.hub-btn--sm{font-size:var(--text-sm);padding:8px 14px}.hub-btn--md{font-size:var(--text-base);padding:12px 20px}.hub-btn--lg{font-size:var(--text-lg);border-radius:var(--radius-full);padding:16px 28px}.hub-btn--full{width:100%}.hub-btn--icon{padding:10px}.hub-btn--icon.hub-btn--sm{padding:8px}.hub-btn--icon.hub-btn--lg{padding:14px}.hub-btn--primary{background:var(--primary);color:var(--on-primary);box-shadow:0 1px 0 0 oklch(100% 0 0/.35) inset, 0 1px 2px oklch(20% .02 280/.08), 0 4px 14px -4px var(--hub-coral-700)}.hub-btn--primary:hover{background:var(--primary-hover);box-shadow:0 1px 0 0 oklch(100% 0 0/.35) inset, 0 2px 4px oklch(20% .02 280/.1), 0 8px 20px -6px var(--hub-coral-700);transform:translateY(-1px)}.hub-btn--primary:active{transform:translateY(0);box-shadow:inset 0 1px oklch(100% 0 0/.25),0 1px 2px oklch(20% .02 280/.1)}.hub-btn--secondary{background:var(--bg-inverse);color:var(--text-inverse)}.hub-btn--secondary:hover{transform:translateY(-2px)}.hub-btn--accent{background:var(--accent);color:var(--on-accent)}.hub-btn--accent:hover{background:var(--hub-lime-700)}.hub-btn--ghost{color:var(--text);border-color:var(--border);background:0 0}.hub-btn--ghost:hover{background:var(--surface-muted);border-color:var(--border-strong)}.hub-btn--soft{background:var(--primary-soft);color:var(--hub-coral-800)}[data-theme=dark] .hub-btn--soft{color:var(--hub-coral-100)}.hub-btn--soft:hover{background:var(--hub-coral-200)}[data-theme=dark] .hub-btn--soft:hover{background:oklch(40% .13 38)}.hub-btn--danger{color:#fff;background:oklch(58% .21 25)}[data-theme=dark] .hub-btn--danger{color:var(--hub-ink-950);background:oklch(70% .19 25)}.hub-search{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-full);color:var(--text-muted);transition:all var(--dur-base) var(--ease-out);align-items:center;gap:12px;width:100%;padding:10px 16px;display:flex}.hub-search.is-focused{border-color:var(--primary);box-shadow:var(--focus-ring)}.hub-search input{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0}.hub-search input::placeholder{color:var(--text-subtle)}.hub-search__clear{background:var(--surface-muted);color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.hub-search__kbd{font-family:var(--font-mono);background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:2px 8px;font-size:11px}.hub-tabs{background:var(--surface-muted);border-radius:var(--radius-full);border:1px solid var(--border);scrollbar-width:none;flex-wrap:nowrap;gap:4px;max-width:100%;padding:6px;display:inline-flex;position:relative;overflow-x:auto}.hub-tabs::-webkit-scrollbar{display:none}.hub-tabs__pill{background:var(--surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-spring), width var(--dur-base) var(--ease-spring);z-index:0;position:absolute;top:6px;bottom:6px;left:0}.hub-tabs__btn{z-index:1;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;transition:color var(--dur-base) var(--ease-out);white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:8px 16px;font-weight:600;display:inline-flex;position:relative}.hub-tabs__btn.is-active{color:var(--text)}.hub-tabs__count{background:var(--surface-muted);border-radius:var(--radius-full);color:var(--text-muted);padding:1px 8px;font-size:11px}.hub-tabs__btn.is-active .hub-tabs__count{background:var(--primary);color:var(--on-primary)}.hub-appcard{--card-accent:var(--hub-coral-500);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-2xl);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);cursor:pointer;text-align:left;width:100%;min-height:220px;font:inherit;color:inherit;flex-direction:column;gap:20px;padding:24px;display:flex;position:relative;overflow:hidden}.hub-appcard:before{content:"";background:var(--card-accent);opacity:0;width:180px;height:180px;transition:opacity var(--dur-slow) var(--ease-out);pointer-events:none;border-radius:50%;position:absolute;top:-60px;right:-60px}.hub-appcard:hover{box-shadow:var(--shadow-lg);border-color:var(--card-accent);transform:translateY(-4px)}.hub-appcard:hover:before{opacity:.08}.hub-appcard__top{justify-content:space-between;align-items:flex-start;display:flex}.hub-appcard__icon{width:56px;height:56px;color:var(--hub-ink-950);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}@keyframes hub-spin{to{transform:rotate(360deg)}}.hub-appcard__badge{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--bg-inverse);color:var(--text-inverse);border-radius:var(--radius-full);padding:4px 10px;font-size:10px}.hub-appcard__title{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text);margin:0;font-weight:600}.hub-appcard__blurb{color:var(--text-muted);font-size:var(--text-sm);margin:6px 0 0;line-height:1.5}.hub-appcard__foot{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;display:flex}.hub-appcard__category{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:11px}.hub-appcard__open{border:1.5px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;transition:all var(--dur-base) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex}.hub-appcard:hover .hub-appcard__open{background:var(--card-accent);border-color:var(--card-accent);color:var(--hub-ink-950);transform:translate(2px)}.hub-empty{text-align:center;background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--radius-2xl);flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.hub-empty__art{width:120px;height:120px;margin-bottom:12px;position:relative}.hub-empty__circle{border-radius:50%;position:absolute}.hub-empty__circle--1{background:var(--accent-soft);inset:0}.hub-empty__circle--2{background:var(--primary-soft);width:60%;height:60%;top:20%;left:20%}.hub-empty__circle--3{background:var(--primary);width:30%;height:30%;top:35%;left:35%}.hub-empty__icon{color:var(--on-primary);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hub-empty__title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text);margin:0;font-weight:600}.hub-empty__desc{color:var(--text-muted);max-width:40ch;margin:0 0 12px}.hub-avatar{font-family:var(--font-display);color:var(--hub-ink-950);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex;position:relative;overflow:visible}.hub-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.hub-avatar__dot{border:2px solid var(--surface);border-radius:50%;width:28%;min-width:10px;height:28%;min-height:10px;position:absolute;bottom:0;right:0}.hub-avatar__dot--online{background:var(--hub-success)}.hub-avatar__dot--away{background:var(--hub-warning)}.hub-avatar__dot--busy{background:var(--hub-danger)}.hub-fab{background:var(--primary);color:var(--on-primary);border-radius:var(--radius-full);font-family:var(--font-sans);font-weight:600;font-size:var(--text-base);cursor:pointer;box-shadow:0 1px 0 0 oklch(100% 0 0/.35) inset, 0 2px 4px oklch(20% .02 280/.1), 0 10px 24px -6px var(--hub-coral-700);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);border:none;align-items:center;gap:10px;padding:16px 22px;display:inline-flex;position:relative}.hub-fab:hover{box-shadow:0 1px 0 0 oklch(100% 0 0/.35) inset, 0 4px 8px oklch(20% .02 280/.12), 0 14px 32px -6px var(--hub-coral-700);transform:translateY(-1px)}.hub-fab--icon{padding:16px}.hub-modal__backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:oklch(15% .02 280/.55);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.hub-modal{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-2xl);width:100%;max-width:480px;box-shadow:var(--shadow-xl);flex-direction:column;max-height:calc(100dvh - 48px);display:flex;overflow:hidden}.hub-modal__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.hub-modal__title{font-family:var(--font-display);font-size:var(--text-xl);margin:0;font-weight:600}.hub-modal__close{background:var(--surface-muted);cursor:pointer;width:32px;height:32px;color:var(--text);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.hub-modal__body{color:var(--text-muted);flex:auto;min-height:0;padding:24px;line-height:1.6;overflow-y:auto}.hub-modal__foot{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.hub-badge{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;font-family:var(--font-sans);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.hub-badge--default{background:var(--surface-muted);color:var(--text)}.hub-badge--primary{background:var(--primary-soft);color:var(--hub-coral-800)}[data-theme=dark] .hub-badge--primary{color:var(--hub-coral-100)}.hub-badge--accent{background:var(--accent-soft);color:var(--hub-lime-900)}[data-theme=dark] .hub-badge--accent{color:var(--hub-lime-100)}.hub-badge--success{background:var(--hub-success-soft);color:var(--hub-success-fg)}.hub-badge--warning{background:var(--hub-warning-soft);color:var(--hub-warning-fg)}.hub-badge--danger{background:var(--hub-danger-soft);color:var(--hub-danger-fg)}.hub-badge--info{background:var(--hub-info-soft);color:var(--hub-info-fg)}.hub-search-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:90;background:oklch(15% .02 280/.55);flex-direction:column;align-items:center;gap:16px;padding:80px 24px 24px;display:flex;position:fixed;inset:0}.hub-search-overlay__panel{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-2xl);width:100%;max-width:640px;box-shadow:var(--shadow-xl);overflow:hidden}.hub-search-overlay__head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:16px;display:flex}.hub-search-overlay__back{display:none}.hub-search-overlay__list{max-height:60vh;padding:8px;overflow-y:auto}.hub-search-overlay__item{border-radius:var(--radius-lg);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:none;align-items:center;gap:14px;padding:12px 14px;display:flex}.hub-search-overlay__item:hover,.hub-search-overlay__item.is-active{background:var(--surface-muted)}.hub-search-overlay__item-icon{width:40px;height:40px;color:var(--hub-ink-950);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.hub-search-overlay__item-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-search-overlay__item-name{font-weight:600;font-family:var(--font-display);font-size:var(--text-base);color:var(--text)}.hub-search-overlay__item-blurb{font-size:var(--text-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-loading{min-height:calc(100vh - 80px);color:var(--text-muted);place-items:center;display:grid}.hub-spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite hub-spin}.hub-loadbar-anchor{z-index:5;pointer-events:none;height:0;position:relative}.hub-loadbar{opacity:0;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0;overflow:hidden}.hub-loadbar.is-active{opacity:1}.hub-loadbar:before{content:"";border-radius:var(--radius-full);background:linear-gradient(90deg, var(--primary), var(--primary));width:40%;position:absolute;top:0;bottom:0;left:0}@supports (color:color-mix(in lab, red, red)){.hub-loadbar:before{background:linear-gradient(90deg, color-mix(in oklab, var(--primary) 25%, transparent), var(--primary))}}.hub-loadbar:before{animation:1.15s ease-in-out infinite hub-loadbar-slide}@keyframes hub-loadbar-slide{0%{transform:translate(-110%)}to{transform:translate(360%)}}@media (prefers-reduced-motion:reduce){.hub-loadbar:before{background:var(--primary);width:100%}}.hub-safe-top{padding-top:env(safe-area-inset-top)}.hub-safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.hub-page-bg{padding-top:env(safe-area-inset-top)}@media (width<=640px){html,body{overscroll-behavior:none;height:100%;overflow:hidden}.hub-page-bg{flex-direction:column;height:100dvh;min-height:100dvh;padding-top:0;display:flex;overflow:hidden}.hub-page-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:none;flex:1;min-height:0;overflow:hidden auto}.hub-btn--sm.hub-btn--icon{padding:12px}.hub-btn--md.hub-btn--icon{padding:14px}.hub-modal__backdrop{align-items:stretch;padding:0}.hub-modal{width:100%;max-width:100%;height:100vh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);border-left:none;border-right:none;border-radius:0;flex-direction:column;display:flex}.hub-modal__body{flex:1;overflow-y:auto}.hub-modal__head{padding:16px 20px}.hub-modal__foot{padding:14px 20px calc(14px + env(safe-area-inset-bottom))}.hub-search-overlay{background:var(--bg);-webkit-backdrop-filter:none;bottom:calc(72px + env(safe-area-inset-bottom));align-items:stretch;gap:0;padding:0;overflow:hidden}.hub-search-overlay__panel{box-shadow:none;width:100%;max-width:100%;height:100%;padding-top:env(safe-area-inset-top);border:none;border-radius:0;flex-direction:column;padding-bottom:0;display:flex;overflow-x:hidden}.hub-search-overlay__head{min-width:0}.hub-search-overlay__head .hub-search{flex:auto;width:auto;min-width:0}.hub-search-overlay__list{flex:1;max-height:none;overflow-x:hidden}.hub-search-overlay__item-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.hub-search-overlay__back{border:1.5px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.hub-search-overlay__back:active{transform:scale(.96)}.hub-search__kbd{display:none}}.hub-page-bg.hub-page-bg--no-top-inset{padding-top:0}.hub-m-topbar{z-index:20;padding:calc(14px + env(safe-area-inset-top)) 16px 12px;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.hub-m-topbar{border-bottom:1px solid color-mix(in oklab, var(--border) 60%, transparent)}}.hub-m-topbar__greet{flex-direction:column;flex:1;gap:1px;min-width:0;line-height:1.1;display:flex}.hub-m-topbar__greet-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px}.hub-m-topbar__greet-name{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600;font-size:var(--text-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hub-m-topbar__actions{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.hub-m-topbar__action{border:1.5px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative}.hub-m-topbar__action:hover{background:var(--surface-muted);border-color:var(--border-strong)}.hub-m-topbar__action:active{transform:scale(.96)}.hub-m-topbar__action[data-badge]:after{content:"";background:var(--primary);border:2px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:7px}.hub-m-topbar__avatar{cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.hub-m-topbar__logo{color:inherit;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.hub-m-search{background:var(--surface-muted);border-radius:var(--radius-full);color:var(--text-muted);font-size:var(--text-base);cursor:pointer;text-align:left;border:1.5px solid #0000;align-items:center;gap:10px;width:calc(100% - 32px);margin:12px 16px 4px;padding:11px 16px;display:flex}.hub-m-search input{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0}.hub-m-search input::placeholder{color:var(--text-subtle)}.hub-m-tabbar{z-index:30;padding:8px 8px calc(14px + env(safe-area-inset-bottom));background:var(--bg-elevated);border-top:1px solid var(--border);flex-shrink:0;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;display:grid}@supports (color:color-mix(in lab, red, red)){.hub-m-tabbar{border-top:1px solid color-mix(in oklab, var(--border) 60%, transparent)}}.hub-m-tabbar__btn{border-radius:var(--radius-lg);color:var(--text-subtle);cursor:pointer;font-family:var(--font-sans);letter-spacing:.01em;transition:color var(--dur-base) var(--ease-out);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-size:10.5px;font-weight:600;display:flex;position:relative}.hub-m-tabbar__btn span{line-height:1}.hub-m-tabbar__btn.is-active{color:var(--primary)}.hub-m-tabbar__btn.is-active:before{content:"";background:var(--primary);border-radius:0 0 2px 2px;width:auto;height:3px;position:absolute;top:-8px;left:0;right:0}.hub-m-tabbar__btn[data-badge]:after{content:attr(data-badge);box-sizing:border-box;border-radius:var(--radius-full);background:var(--primary);min-width:16px;height:16px;color:var(--on-primary);font-family:var(--font-mono);border:2px solid var(--bg-elevated);justify-content:center;align-items:center;padding:0 2px;font-size:9.5px;font-weight:700;display:inline-flex;position:absolute;top:2px;left:calc(50% + 4px)}.hub-m-tabbar__icon{justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.hub-m-segmented{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-full);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;width:100%;padding:3px;display:inline-grid}.hub-m-segmented button{border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:7px 10px;font-weight:600}.hub-m-segmented button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.hub-m-applist{flex-direction:column;padding:4px 12px 16px;display:flex}.hub-m-applist__row{border-radius:var(--radius-xl);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.hub-m-applist__row:hover,.hub-m-applist__row:active{background:var(--surface-muted)}.hub-m-applist__icon{width:48px;height:48px;color:var(--hub-ink-950);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative}.hub-m-applist__main{flex-direction:column;gap:2px;min-width:0;display:flex}.hub-m-applist__name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);align-items:center;gap:8px;font-size:17px;font-weight:600;display:inline-flex}.hub-m-applist__badge{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--bg-inverse);color:var(--text-inverse);border-radius:var(--radius-full);padding:2px 7px;font-size:9px}.hub-m-applist__blurb{color:var(--text-muted);font-size:var(--text-sm);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0;line-height:1.35;display:-webkit-box;overflow:hidden}.hub-m-banner{border-radius:var(--radius-2xl);background:var(--surface);border:1.5px solid var(--border);margin:8px 16px 0;padding:18px;position:relative;overflow:hidden}.hub-m-banner:after{content:"";background:var(--accent);opacity:.4;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.hub-m-banner>*{z-index:1;position:relative}.hub-m-banner h4{font-family:var(--font-display);letter-spacing:-.02em;max-width:14ch;margin:6px 0 4px;font-size:22px;font-weight:600;line-height:1.05}.hub-m-banner p{color:var(--text-muted);font-size:var(--text-sm);max-width:28ch;margin:0;line-height:1.4}.hub-m-sheet{background:var(--surface);border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl);z-index:110;max-height:90%;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -10px 30px oklch(15% .02 280/.18)}.hub-m-sheet__handle{background:var(--border-strong);border-radius:3px;width:36px;height:5px;margin:8px auto 6px}.hub-m-sheet__head{justify-content:space-between;align-items:center;padding:4px 16px 10px;display:flex}.hub-m-sheet__head h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600}.hub-m-sheet__close{background:var(--surface-muted);width:28px;height:28px;color:var(--text);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hub-m-sheet__backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:109;background:oklch(15% .02 280/.5);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.hub-m-sheet__body{flex-direction:column;gap:18px;padding:4px 16px 16px;display:flex;overflow-y:auto}.hub-m-sheet__foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);gap:10px;display:flex}.hub-m-sheet--centered{width:min(560px,100%);position:relative;bottom:auto;left:auto;right:auto;transform:none}.hub-m-sheet__eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.hub-m-sheet__backdrop--center{align-items:center}.hub-m-sheet--modal{border-radius:var(--radius-2xl);width:min(560px,100% - 32px);max-height:85%;padding-bottom:0;position:relative;bottom:auto;left:auto;right:auto;transform:none}.hub-courses{min-height:100%;padding-bottom:96px}.hub-courses__container{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding:4px 16px 0;display:flex}@media (width>=768px){.hub-courses__container{gap:24px;padding:32px 32px 0}}.hub-courses__header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.hub-courses__header{justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.hub-courses__loading{color:var(--text-muted);font-size:var(--text-sm);text-align:center;padding:24px 8px}.hub-courses__picker{flex-shrink:1;align-items:center;gap:6px;min-width:0;max-width:60%;margin-right:auto;display:flex}.hub-courses__picker-select-wrap{flex-shrink:1;min-width:0;position:relative}.hub-courses__picker-select{appearance:none;border-radius:var(--radius-full);background:var(--surface-muted);width:100%;max-width:100%;color:var(--text);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background-image:none;border:1.5px solid #0000;outline:none;padding:8px 30px 8px 14px;font-weight:600;overflow:hidden}.hub-courses__picker-select:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring)}.hub-courses__picker-create{flex-shrink:0}.hub-courses__picker-trigger{border-radius:var(--radius-full);background:var(--surface-muted);width:100%;max-width:100%;color:var(--text);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;text-align:left;min-width:0;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:1.5px solid #0000;outline:none;align-items:center;gap:8px;padding:8px 12px 8px 14px;font-weight:600;display:inline-flex}.hub-courses__picker-trigger:hover{background:var(--bg-sunken)}.hub-courses__picker-trigger:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring)}.hub-courses__picker-trigger-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.hub-courses__picker-trigger>svg{color:var(--text-muted);flex-shrink:0}.hub-courses__picker-popover{z-index:60;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);min-width:220px;max-width:min(320px,90vw);max-height:min(60vh,360px);box-shadow:var(--shadow-xl);transform-origin:0 0;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.hub-courses__picker-option-wrap{align-items:stretch;gap:4px;display:flex}.hub-courses__picker-option{border-radius:var(--radius-md);color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:auto;align-items:center;gap:8px;min-width:0;padding:8px 10px;font-weight:500;display:flex}.hub-courses__picker-option:hover{background:var(--bg-sunken)}.hub-courses__picker-option.is-active{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-courses__picker-option.is-active{background:color-mix(in oklab, var(--primary) 12%, var(--surface))}}.hub-courses__picker-option.is-active{font-weight:600}.hub-courses__picker-option-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.hub-courses__picker-option-check{color:var(--primary);flex-shrink:0}.hub-courses__picker-option-edit{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:auto 0;display:inline-flex}.hub-courses__picker-option-edit:hover{background:var(--bg-sunken);color:var(--text)}.hub-courses__trip-banner{border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 14px;display:flex}.hub-courses__trip-banner--active{background:linear-gradient(135deg, var(--primary-soft), var(--accent-soft))}@supports (color:color-mix(in lab, red, red)){.hub-courses__trip-banner--active{background:linear-gradient(135deg, var(--primary-soft), color-mix(in oklab, var(--accent-soft) 70%, transparent))}}.hub-courses__trip-banner--active{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-courses__trip-banner--active{border-color:color-mix(in oklab, var(--primary) 35%, transparent)}}.hub-courses__trip-banner-icon{border-radius:var(--radius-full);background:var(--bg-elevated);width:40px;height:40px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hub-courses__trip-banner-icon--pulse{animation:2s ease-in-out infinite hub-courses-pulse}@keyframes hub-courses-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.hub-courses__trip-banner-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-courses__trip-banner-text strong{font-size:var(--text-sm);color:var(--text);font-weight:600}.hub-courses__trip-banner-text span{font-size:var(--text-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-courses__list{flex-direction:column;gap:16px;display:flex}.hub-courses__section{flex-direction:column;gap:6px;display:flex}.hub-courses__section-head{align-items:center;gap:10px;padding:4px 6px;display:flex}.hub-courses__section-icon{border-radius:var(--radius-full);width:28px;height:28px;color:var(--hub-ink-900);justify-content:center;align-items:center;display:inline-flex}.hub-courses__section-title{font-family:var(--font-display);font-size:var(--text-base);letter-spacing:-.01em;color:var(--text);flex:1;margin:0;font-weight:600}.hub-courses__section-count{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);letter-spacing:.04em}.hub-courses__rows{flex-direction:column;gap:4px;display:flex}.hub-courses__row{background:var(--surface);border-radius:var(--radius-lg);color:var(--text);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:1px solid #0000;align-items:stretch;display:flex;position:relative}.hub-courses__row--urgent{background:var(--primary-soft)}@supports (color:color-mix(in lab, red, red)){.hub-courses__row--urgent{background:color-mix(in oklab, var(--primary-soft) 50%, var(--surface))}}.hub-courses__row--urgent{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-courses__row--urgent{border-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.hub-courses__row-main{border-radius:var(--radius-lg) 0 0 var(--radius-lg);text-align:left;cursor:pointer;min-width:0;color:inherit;touch-action:manipulation;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);background:0 0;border:none;flex:1;grid-template-columns:44px 1fr;align-items:center;gap:12px;padding:10px 8px 10px 12px;display:grid}.hub-courses__row-main:hover{background:var(--surface-muted)}.hub-courses__row-main:active{transform:scale(.98)}.hub-courses__row-icon{border-radius:var(--radius-md);width:44px;height:44px;color:var(--hub-ink-900);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hub-courses__row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.hub-courses__row-name{font-size:var(--text-base);color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;font-weight:500;display:flex}.hub-courses__row-qty{font-family:var(--font-mono);font-size:var(--text-xs);border-radius:var(--radius-xs);background:var(--bg-sunken);color:var(--text-muted);padding:2px 6px;font-weight:600}.hub-courses__row-flag{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-xs);align-items:center;gap:3px;padding:2px 6px;font-weight:700;display:inline-flex}.hub-courses__row-flag--urgent{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-courses__row-flag--urgent{background:color-mix(in oklab, var(--primary) 18%, transparent)}}.hub-courses__row-flag--urgent{color:var(--primary)}.hub-courses__row-flag--whenever{background:var(--bg-sunken);color:var(--text-muted)}.hub-courses__row-blurb{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:8px;margin:0;display:flex}.hub-courses__row-comment:after{content:"·";color:var(--text-subtle);margin-left:6px}.hub-courses__row-author{font-size:var(--text-2xs);color:var(--text-subtle)}.hub-courses__row-author:after{content:"·";color:var(--text-subtle);margin-left:6px}.hub-courses__row-date{font-size:var(--text-2xs);color:var(--text-subtle)}.hub-courses__row-action{border-radius:0 var(--radius-lg) var(--radius-lg) 0;width:56px;color:var(--text-subtle);cursor:pointer;touch-action:manipulation;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;display:inline-flex}.hub-courses__row-action:hover,.hub-courses__row-action:active{color:var(--text);background:var(--bg-sunken)}.hub-courses__row-check{background:var(--accent);justify-content:center;align-items:center;display:none;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.hub-courses__row-check{background:color-mix(in oklab, var(--accent) 80%, var(--surface))}}.hub-courses__row-check{border-radius:var(--radius-lg);color:var(--on-accent);pointer-events:none}.hub-courses .hub-fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;position:fixed}@media (width<=640px){.hub-courses .hub-fab{bottom:calc(16px + var(--mobile-tabbar-safe))}}.hub-courses__add{flex-direction:column;gap:16px;display:flex}.hub-courses__add-search{border-radius:var(--radius-full);background:var(--bg-sunken);color:var(--text);align-items:center;gap:10px;padding:10px 14px;display:flex}.hub-courses__add-search input{font-size:var(--text-base);color:inherit;background:0 0;border:none;outline:none;flex:1}.hub-courses__add-search input::placeholder{color:var(--text-subtle)}.hub-courses__add-create{border-radius:var(--radius-lg);background:var(--accent-soft);flex-direction:column;gap:10px;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.hub-courses__add-create{background:color-mix(in oklab, var(--accent-soft) 60%, var(--surface))}}.hub-courses__add-create{border:1px dashed var(--accent)}@supports (color:color-mix(in lab, red, red)){.hub-courses__add-create{border:1px dashed color-mix(in oklab, var(--accent) 40%, transparent)}}.hub-courses__add-create-preview{align-items:center;gap:12px;display:flex}.hub-courses__add-create-preview strong{font-size:var(--text-base);font-weight:600;display:block}.hub-courses__add-create-hint{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:4px;display:inline-flex}.hub-courses__add-results{flex-direction:column;gap:8px;display:flex}.hub-courses__add-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.hub-courses__add-item-row{border-radius:var(--radius-md);align-items:stretch;gap:0;display:flex;position:relative}.hub-courses__add-item-row:hover{background:var(--bg-sunken)}.hub-courses__add-item-row--added:hover{background:0 0}.hub-courses__add-item-overflow{border-radius:var(--radius-md);width:40px;color:var(--text-subtle);cursor:pointer;touch-action:manipulation;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hub-courses__add-item-overflow:hover,.hub-courses__add-item-overflow:active,.hub-courses__add-item-overflow[aria-expanded=true]{color:var(--text);background:var(--bg-sunken)}.hub-courses__add-item-overflow--fav{color:var(--hub-warning)}.hub-courses__add-item-overflow--fav:hover,.hub-courses__add-item-overflow--fav:active{color:var(--hub-warning);background:var(--bg-sunken)}.hub-courses__add-item-menu{z-index:4;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-lg);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.hub-courses__add-item-menu-action{border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;display:inline-flex}.hub-courses__add-item-menu-action:hover,.hub-courses__add-item-menu-action:focus-visible{background:var(--bg-sunken)}.hub-courses__add-item-menu-action:last-child:hover,.hub-courses__add-item-menu-action:last-child:focus-visible{color:var(--hub-danger,var(--text))}.hub-courses__add-item{border-radius:var(--radius-md);text-align:left;cursor:pointer;min-width:0;color:var(--text);background:0 0;border:none;flex:1;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.hub-courses__add-item:hover{background:var(--bg-sunken)}.hub-courses__add-item--added{opacity:.55;cursor:default}.hub-courses__add-item--added:hover{background:0 0}.hub-courses__add-item-flag{border-radius:var(--radius-full);background:var(--hub-success);align-items:center;gap:4px;padding:4px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.hub-courses__add-item-flag{background:color-mix(in oklab, var(--hub-success) 18%, transparent)}}.hub-courses__add-item-flag{color:var(--hub-success);white-space:nowrap;font-size:12px;font-weight:600}.hub-courses__add-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.hub-courses__add-item-name{font-size:var(--text-base);font-weight:500}.hub-courses__add-item-meta{font-size:var(--text-xs);color:var(--text-muted)}.hub-courses__add-empty{color:var(--text-muted);font-size:var(--text-sm);padding:12px 4px}.hub-courses__add-error{color:var(--hub-danger);font-size:var(--text-sm);padding:4px}.hub-courses__edit{flex-direction:column;gap:14px;display:flex}.hub-courses__edit-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.hub-courses__edit-field{flex-direction:column;gap:4px;min-width:0;display:flex}.hub-courses__edit-field input,.hub-courses__edit-field select{width:100%;min-width:0}.hub-courses__edit-field span{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.hub-courses__edit-field input,.hub-courses__edit-field select{border-radius:var(--radius-md);border:1px solid var(--border);background-color:var(--surface);color:var(--text);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);outline:none;padding:10px 12px}.hub-courses__edit-field select{padding-right:36px}.hub-courses__edit-field input:focus,.hub-courses__edit-field select:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}.hub-courses__edit-delete{color:var(--hub-danger-fg);align-self:flex-start}.hub-courses__edit-delete:hover{background:var(--hub-danger-soft)}.hub-courses__edit-flags{gap:8px;display:flex}.hub-courses__edit-flag{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-weight:500;display:inline-flex}.hub-courses__edit-flag.is-active{background:var(--primary-soft);border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-courses__edit-flag.is-active{border-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.hub-courses__edit-flag.is-active{color:var(--primary)}.hub-courses__history{flex-direction:column;gap:12px;display:flex}.hub-courses__history-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.hub-courses__history-row{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);align-items:center;gap:12px;padding:8px 10px;display:flex}.hub-courses__history-row>.hub-courses__row-icon{flex-shrink:0}.hub-courses__history-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-courses__history-delete{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-subtle);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hub-courses__history-delete:hover,.hub-courses__history-delete:active{color:var(--hub-danger-fg);background:var(--bg-sunken)}.hub-courses__history-delete:disabled{opacity:.5;cursor:default}.hub-recipes{flex-direction:column;min-height:100%;padding:16px 16px 96px;display:flex;position:relative}.hub-recipes__fab-cluster{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;align-items:center;gap:10px;display:flex;position:fixed}@media (width<=640px){.hub-recipes__fab-cluster{bottom:calc(16px + var(--mobile-tabbar-safe))}}.hub-recipes__fab-secondary{border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);width:44px;height:44px;color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex;box-shadow:0 2px 6px oklch(0% 0 0/.1)}.hub-recipes__fab-secondary:hover,.hub-recipes__fab-secondary:active{background:var(--bg-sunken)}.hub-recipes__content{flex-direction:column;flex:1;min-width:0;display:flex}.hub-recipes__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hub-recipes__row{min-width:0;display:flex}.hub-recipes__row-btn{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);text-align:left;cursor:pointer;min-width:0;transition:background var(--dur-fast) var(--ease-out);flex:1;align-items:center;gap:12px;padding:10px 12px;display:flex}.hub-recipes__row-btn:hover,.hub-recipes__row-btn:active{background:var(--bg-sunken)}.hub-recipes__row-thumb{border-radius:var(--radius-md);background:var(--primary-soft);width:44px;height:44px;color:var(--hub-coral-700,var(--text-subtle));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}[data-theme=dark] .hub-recipes__row-thumb{color:var(--hub-coral-100)}.hub-recipes__row-thumb img{object-fit:cover;width:100%;height:100%}.hub-recipes__row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-recipes__row-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.hub-recipes__row-meta{color:var(--text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.hub-recipes__toolbar{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.hub-combo{position:relative}.hub-combo__control{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:text;flex-wrap:wrap;align-items:center;gap:6px;min-height:42px;padding:6px 32px 6px 10px;display:flex}.hub-combo.is-open .hub-combo__control{border-color:var(--hub-coral-300,var(--border))}.hub-combo__token{border-radius:var(--radius-full);background:var(--primary-soft);max-width:100%;color:var(--hub-coral-700,var(--text));font-size:var(--text-sm);align-items:center;gap:4px;padding:3px 4px 3px 9px;font-weight:600;display:inline-flex}[data-theme=dark] .hub-combo__token{color:var(--hub-coral-100)}.hub-combo__token-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-combo__token-remove{border-radius:var(--radius-full);width:18px;height:18px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.hub-combo__token-remove:hover{opacity:1;background:#00000014}.hub-combo__input{min-width:90px;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:2px 0;font-size:14px}.hub-combo__chevron{color:var(--text-subtle);pointer-events:none;position:absolute;top:13px;right:10px}.hub-combo__menu{z-index:30;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);max-height:240px;box-shadow:var(--shadow-md,0 8px 24px #0000001f);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.hub-combo__opt{color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:14px;display:flex}.hub-combo__opt.is-active{background:var(--bg-sunken)}.hub-combo__opt--custom{color:var(--hub-coral-700,var(--text));font-weight:600}[data-theme=dark] .hub-combo__opt--custom{color:var(--hub-coral-300)}.hub-combo__empty{text-align:center;font-size:var(--text-sm);color:var(--text-muted);padding:10px}.hub-recipes__filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.hub-recipes__filter-chip{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text-subtle);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:4px;padding:5px 12px;font-weight:600;display:inline-flex}.hub-recipes__filter-chip:hover{background:var(--bg-sunken)}.hub-recipes__filter-chip.is-active{background:var(--primary-soft);border-color:var(--hub-coral-300,var(--border));color:var(--hub-coral-700,var(--text))}[data-theme=dark] .hub-recipes__filter-chip.is-active{color:var(--hub-coral-100)}.hub-recipes__filter-select{appearance:none;border-radius:var(--radius-full);border:1px solid var(--border);background-color:var(--surface);color:var(--text);font-size:var(--text-sm);cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239aa0a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-position:right 10px center;background-repeat:no-repeat;padding:6px 30px 6px 12px;font-weight:600}.hub-recipes__filter-select:focus-visible{border-color:var(--hub-coral-300,var(--border));outline:none}.hub-recipes__row-badges{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.hub-recipes__row-warning{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:3px;max-width:140px;display:inline-flex;overflow:hidden}.hub-recipes__allergy-banner{border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid;align-items:flex-start;gap:8px;padding:10px 12px;line-height:1.4;display:flex}.hub-recipes__allergy-banner--warning{background:var(--hub-amber-100,#fef3c7);border-color:var(--hub-amber-300,#fcd34d);color:var(--hub-amber-800,#92400e)}.hub-recipes__allergy-banner--strict{background:var(--hub-red-100,#fee2e2);border-color:var(--hub-red-300,#fca5a5);color:var(--hub-red-800,#991b1b)}.hub-recipes__detail-ingredient.is-allergen .hub-recipes__detail-ingredient-name{font-weight:600}.hub-recipes__detail-ingredient-allergen-icon{vertical-align:-2px;margin-left:4px}.hub-recipes__detail-ingredient.is-allergen--warning .hub-recipes__detail-ingredient-allergen-icon{color:var(--hub-amber-600,#d97706)}.hub-recipes__detail-ingredient.is-allergen--strict .hub-recipes__detail-ingredient-allergen-icon{color:var(--hub-red-600,#dc2626)}.hub-recipes__settings{flex-direction:column;gap:16px;display:flex}.hub-recipes__settings-title{font-size:var(--text-lg,18px);margin:0;font-weight:700}.hub-recipes__settings-section{flex-direction:column;gap:10px;display:flex}.hub-recipes__settings-section-title{font-size:var(--text-sm);color:var(--text-muted);margin:0;font-weight:700}.hub-recipes__allergies{flex-direction:column;gap:10px;display:flex}.hub-recipes__allergies-intro{font-size:var(--text-sm);color:var(--text-subtle);margin:0;line-height:1.5}.hub-recipes__allergies-empty{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0}.hub-recipes__allergies-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hub-recipes__allergies-row{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);align-items:center;gap:10px;padding:8px 10px;display:flex}.hub-recipes__allergies-term{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;font-weight:600;display:inline-flex;overflow:hidden}.hub-recipes__allergies-modes{border:1px solid var(--border);border-radius:var(--radius-full);flex-shrink:0;display:inline-flex;overflow:hidden}.hub-recipes__allergies-modes button{background:var(--surface);color:var(--text-subtle);cursor:pointer;border:none;padding:4px 10px;font-size:12px;font-weight:600}.hub-recipes__allergies-modes button+button{border-left:1px solid var(--border)}.hub-recipes__allergies-modes button.is-active{background:var(--primary-soft);color:var(--hub-coral-800)}[data-theme=dark] .hub-recipes__allergies-modes button.is-active{color:var(--hub-coral-100)}.hub-recipes__note{text-align:center;color:var(--text-muted);font-size:var(--text-sm);margin:24px 0;line-height:1.5}.hub-recipes__note code{background:var(--surface-muted);border:1px solid var(--border);border-radius:6px;padding:2px 6px;font-size:12px}.hub-recipes__thumb-emoji{font-size:22px;line-height:1}.hub-recipes__detail-thumb .hub-recipes__thumb-emoji{font-size:40px}.hub-recipes__detail-steps{color:var(--text);margin:0;padding-left:20px;font-size:14px;line-height:1.5}.hub-recipes__detail-steps li{margin-bottom:8px}.hub-recipes__detail-steps li::marker{color:var(--text-subtle);font-weight:600}.hub-recipes__detail-tags{flex-wrap:wrap;gap:6px;display:flex}.hub-recipes__import-form{flex-direction:column;gap:12px;display:flex}.hub-recipes__import-hint{font-size:var(--text-sm);color:var(--text-subtle);margin:0;line-height:1.4}.hub-recipes__import-form-sticky{z-index:2;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;gap:8px;margin-bottom:4px;padding-bottom:12px;display:flex;position:sticky;top:0}.hub-recipes__import-supported{font-size:var(--text-sm);color:var(--text-subtle)}.hub-recipes__import-supported-head{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 6px;font-size:12px;font-weight:600}.hub-recipes__import-supported ul{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;margin:0 0 8px;padding:0;list-style:none;display:grid}.hub-recipes__import-supported li{display:contents}.hub-recipes__import-supported-link{border-radius:var(--radius-md);color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);grid-template-rows:auto auto;grid-template-columns:20px 1fr;align-items:center;gap:0 8px;min-width:0;padding:6px 8px;text-decoration:none;display:grid}.hub-recipes__import-supported-link:hover,.hub-recipes__import-supported-link:focus-visible{background:var(--bg-sunken);outline:none}.hub-recipes__import-supported-favicon{background:var(--bg-sunken);object-fit:contain;border-radius:4px;flex-shrink:0;grid-row:span 2;width:20px;height:20px}.hub-recipes__import-supported-name{font-weight:500;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-recipes__import-supported-host{color:var(--text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.hub-recipes__import-supported-note{color:var(--text-subtle);margin:0;font-size:12px;font-style:italic;line-height:1.4}.hub-recipes__import-failure{border-radius:var(--radius-md);color:oklch(35% .12 50);background:oklch(95% .04 50);border:1px solid oklch(80% .12 50);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.hub-recipes__import-failure-icon{flex-shrink:0;margin-top:1px;display:inline-flex}.hub-recipes__import-failure-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-recipes__import-failure-title{margin:0;font-size:14px;font-weight:600}.hub-recipes__import-failure-msg{font-size:var(--text-sm);word-break:break-word;margin:0}.hub-recipes__import-failure-hint{opacity:.85;margin:4px 0 0;font-size:12px}.hub-recipes__import-failure-retry{border-radius:var(--radius-md);color:inherit;cursor:pointer;background:0 0;border:1px solid;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600}.hub-recipes__import-failure-retry:hover{background:oklch(100% 0 0/.5)}.hub-recipes__import-loader{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:24px 0;display:flex}.hub-recipes__import-loader p{color:var(--text-subtle);margin:0;font-size:14px}.hub-recipes__import-spinner{border:3px solid var(--bg-sunken);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite hub-recipes-spin}@keyframes hub-recipes-spin{to{transform:rotate(360deg)}}.hub-recipes__import-preview{flex-direction:column;gap:14px;display:flex}.hub-recipes__ingredients-section{flex-direction:column;gap:8px;display:flex}.hub-recipes__ingredients-head{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.hub-recipes__ingredients-add{border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border);color:var(--text);text-transform:none;letter-spacing:normal;cursor:pointer;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.hub-recipes__ingredients-add:hover{background:var(--surface)}.hub-recipes__ingredients-empty{font-size:var(--text-sm);color:var(--text-subtle);margin:0;font-style:italic}.hub-recipes__ingredients-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.hub-recipes__ingredients-row{grid-template-columns:56px 96px 1fr auto;align-items:center;gap:6px;display:grid}.hub-recipes__ingredients-row input{border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border);color:var(--text);min-width:0;padding:8px 10px;font-size:14px}.hub-recipes__ingredients-remove{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.hub-recipes__ingredients-remove:hover{color:var(--hub-danger,oklch(48% .18 25));background:var(--bg-sunken)}.hub-recipes__import-error{border-radius:var(--radius-md);color:oklch(40% .18 25);font-size:var(--text-sm);background:oklch(95% .04 25);margin:0;padding:8px 10px}.hub-recipes--detail{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.hub-recipes__detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:8px;display:flex}.hub-recipes__authors{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.hub-recipes__authors-chip{border-radius:var(--radius-full);background:var(--bg-sunken);border:1px solid var(--border);font-size:var(--text-sm);align-items:center;gap:8px;padding:4px 10px 4px 4px;display:inline-flex}.hub-recipes__authors-name{color:var(--text);font-weight:500}.hub-recipes__authors-role{color:var(--text-subtle);font-size:12px}.hub-recipes__history-empty{color:var(--text-subtle);text-align:center;margin:0;padding:16px 0;font-size:14px;font-style:italic}.hub-recipes__history-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.hub-recipes__history-entry{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);gap:12px;padding:10px 12px;display:flex}.hub-recipes__history-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.hub-recipes__history-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.hub-recipes__history-who{color:var(--text);font-weight:600}.hub-recipes__history-when{color:var(--text-subtle);white-space:nowrap;font-size:12px}.hub-recipes__history-no-diff{color:var(--text-subtle);margin:0;font-size:12px;font-style:italic}.hub-recipes__history-changes{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.hub-recipes__history-change{border-radius:var(--radius-md);background:var(--bg-sunken);font-size:var(--text-sm);grid-template-columns:76px 1fr auto 1fr;align-items:baseline;gap:6px 8px;padding:4px 6px;display:grid}.hub-recipes__history-change-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);font-size:11px;font-weight:600}.hub-recipes__history-change-before{color:var(--text-subtle);word-break:break-word;text-decoration:line-through}.hub-recipes__history-change-arrow{color:var(--text-subtle)}.hub-recipes__history-change-after{color:var(--text);word-break:break-word}.hub-recipes__edited-banner{border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border);font-size:var(--text-sm);color:var(--text-subtle);align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.hub-recipes__edited-banner>span{flex:1;min-width:0}.hub-recipes__empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.hub-recipes__diff{flex-direction:column;gap:12px;display:flex}.hub-recipes__diff-tabs{background:var(--bg-sunken);border-radius:var(--radius-md);gap:4px;padding:2px;display:flex}.hub-recipes__diff-tabs button{border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-sm);color:var(--text-subtle);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;flex:1;padding:6px 10px}.hub-recipes__diff-tabs button.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px oklch(0% 0 0/.08)}.hub-recipes__diff-grid{grid-template-columns:80px 1fr 1fr;align-items:stretch;gap:4px 8px;display:grid}.hub-recipes__diff-col-head{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;font-size:11px;font-weight:700}.hub-recipes__diff-col-head[data-side=original]{grid-column:2}.hub-recipes__diff-col-head[data-side=current]{grid-column:3}.hub-recipes__diff-label{color:var(--text-subtle);align-self:center;padding:6px 0;font-size:12px}.hub-recipes__diff-cell{font-size:var(--text-sm);color:var(--text);border-radius:var(--radius-md);background:var(--bg-sunken);word-break:break-word;padding:6px 8px}.hub-recipes__diff-cell.is-changed{color:oklch(35% .12 80);background:oklch(95% .04 80)}.hub-recipes__diff-cell.is-dim{opacity:.5;font-style:italic}.hub-recipes__diff-section{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;grid-column:1/-1;margin-top:10px;font-size:12px;font-weight:700}.hub-recipes__diff-empty{color:var(--text-subtle);text-align:center;margin:0;padding:16px;font-size:14px}.hub-recipes__diff-original h3{margin:0 0 4px;font-size:16px;font-weight:600}.hub-recipes__diff-original p{font-size:var(--text-sm);color:var(--text-subtle);margin:0 0 12px}.hub-recipes__diff-original-desc{line-height:1.5;color:var(--text)!important}.hub-recipes__diff-original ul{flex-direction:column;gap:4px;margin:0;padding-left:20px;list-style:outside;display:flex}.hub-recipes__diff-original li{font-size:var(--text-sm);color:var(--text)}.hub-recipes__detail{flex-direction:column;gap:18px;display:flex}.hub-recipes__detail-hero{align-items:center;gap:14px;display:flex}.hub-recipes__detail-thumb{border-radius:var(--radius-md);background:var(--primary-soft);width:72px;height:72px;color:var(--hub-coral-700,var(--text-subtle));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}[data-theme=dark] .hub-recipes__detail-thumb{color:var(--hub-coral-100)}.hub-recipes__detail-thumb img{object-fit:cover;width:100%;height:100%}.hub-recipes__detail-headline{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.hub-recipes__detail-title{color:var(--text);margin:0;font-size:22px;font-weight:700;line-height:1.2}.hub-recipes__detail-meta{font-size:var(--text-sm);color:var(--text-subtle);margin:0}.hub-recipes__detail-source{border-radius:var(--radius-md);background:var(--bg-sunken);color:var(--text-subtle);font-size:var(--text-sm);transition:background var(--dur-fast) var(--ease-out);align-self:flex-start;align-items:center;gap:6px;padding:6px 10px;text-decoration:none;display:inline-flex}.hub-recipes__detail-source:hover{background:var(--surface);color:var(--text)}.hub-recipes__detail-desc{color:var(--text);margin:0;font-size:14px;line-height:1.5}.hub-recipes__detail-section{flex-direction:column;gap:8px;display:flex}.hub-recipes__detail-section-title{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:600}.hub-recipes__detail-empty{color:var(--text-subtle);margin:0;font-size:14px;font-style:italic}.hub-recipes__detail-ingredients{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.hub-recipes__detail-ingredient{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:10px;padding:8px 12px;display:flex}.hub-recipes__detail-ingredient-qty{color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:64px;font-weight:600}.hub-recipes__detail-ingredient-name{color:var(--text);word-break:break-word;flex:1}.hub-recipes__detail-ingredient-tag{border-radius:var(--radius-sm,4px);background:var(--bg-sunken);color:var(--text-subtle);white-space:nowrap;flex-shrink:0;padding:2px 6px;font-size:11px;font-weight:500}.hub-recipes__detail-ingredient-incart{color:var(--accent);white-space:nowrap;flex-basis:100%;align-items:center;gap:4px;margin-top:2px;padding-left:74px;font-size:11px;font-weight:500;display:inline-flex}.hub-recipes__detail-ingredient-incart svg{flex-shrink:0}.hub-recipes__detail-error{text-align:center;color:var(--text-subtle);padding:24px 16px}.hub-recipes__detail-error-msg{margin-top:4px;font-size:12px}.hub-recipes__stickybar{z-index:35;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--bg-elevated);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.hub-recipes__stickybar{border-top:1px solid color-mix(in oklab, var(--border) 60%, transparent)}}.hub-recipes__stickybar{box-shadow:0 -4px 16px oklch(0% 0 0/.06)}.hub-recipes__stickybar-text{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:500;display:inline-flex;overflow:hidden}@media (width<=767px){.hub-recipes__stickybar{bottom:var(--mobile-tabbar-safe);padding-bottom:10px}}.hub-recipes__preview-empty{color:var(--text-subtle);text-align:center;margin:0;padding:16px 0;font-size:14px;font-style:italic}.hub-recipes__preview-sections{flex-direction:column;gap:18px;display:flex}.hub-recipes__preview-section{flex-direction:column;gap:8px;display:flex}.hub-recipes__preview-section.is-warn .hub-recipes__preview-section-title{color:oklch(50% .15 50)}.hub-recipes__preview-section-title{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:700}.hub-recipes__preview-section-empty{font-size:var(--text-sm);color:var(--text-subtle);margin:0;font-style:italic}.hub-recipes__preview-section-list{flex-direction:column;gap:4px;display:flex}.hub-recipes__preview-row{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.hub-recipes__preview-row:hover{background:var(--bg-sunken)}.hub-recipes__preview-row.is-excluded{opacity:.5}.hub-recipes__preview-row input[type=checkbox]{flex-shrink:0;width:18px;height:18px;margin-top:3px}.hub-recipes__preview-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-recipes__preview-row-title{color:var(--text);font-weight:500}.hub-recipes__preview-row-meta{color:var(--text-subtle);font-size:12px}.hub-recipes__preview-conflict-row{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;transition:background var(--dur-fast) var(--ease-out);align-items:center;gap:10px;padding:10px 12px;display:flex}.hub-recipes__preview-conflict-row:hover{background:var(--bg-sunken)}.hub-recipes__preview-conflict-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-recipes__preview-conflict-title{color:var(--text);font-weight:500}.hub-recipes__preview-conflict-meta{font-size:12px}.hub-recipes__preview-conflict-pending{color:oklch(50% .15 50);align-items:center;gap:4px;font-weight:500;display:inline-flex}.hub-recipes__preview-conflict-resolved{color:var(--text-subtle)}.hub-recipes__resolver{flex-direction:column;gap:14px;display:flex}.hub-recipes__resolver-head{flex-direction:column;gap:4px;display:flex}.hub-recipes__resolver-name{color:var(--text);margin:0;font-size:16px;font-weight:600}.hub-recipes__resolver-summary{font-size:var(--text-sm);color:var(--text-subtle);margin:0}.hub-recipes__resolver-options{flex-direction:column;gap:8px;display:flex}.hub-recipes__resolver-option{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:var(--text);transition:background var(--dur-fast) var(--ease-out);align-items:center;gap:12px;padding:12px;display:flex}.hub-recipes__resolver-option:hover{background:var(--bg-sunken)}.hub-recipes__resolver-option--ignore{color:var(--text-subtle)}.hub-recipes__resolver-option-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-recipes__resolver-option-title{font-weight:500}.hub-recipes__resolver-option-meta{color:var(--text-subtle);align-items:center;gap:6px;font-size:12px;display:inline-flex}.hub-recipes__resolver-option-tag{border-radius:var(--radius-sm,4px);background:var(--bg-sunken);color:var(--text-subtle);padding:1px 6px;font-size:11px}.hub-courses__categories{flex-direction:column;gap:12px;display:flex}.hub-courses__categories-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.hub-courses__categories-row{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);align-items:center;gap:12px;padding:8px 10px;display:flex}.hub-courses__categories-row--draft{background:var(--bg-sunken)}.hub-courses__categories-label{font-size:var(--text-sm);flex:1;min-width:0;font-weight:500}.hub-courses__categories-actions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.hub-courses__categories-action{border-radius:var(--radius-sm,6px);width:32px;height:32px;color:var(--text-subtle);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.hub-courses__categories-action:hover{color:var(--text);background:var(--bg-sunken)}.hub-courses__categories-action--danger:hover{color:var(--hub-danger,oklch(48% .18 25))}.hub-courses__categories-action:disabled{opacity:.4;cursor:not-allowed}.hub-courses__categories-form{flex-direction:column;flex:1;gap:10px;display:flex}.hub-courses__categories-form input[type=text]{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:var(--text-sm);padding:8px 10px}.hub-courses__categories-pickers{flex-direction:column;gap:6px;display:flex}.hub-courses__categories-picker{flex-wrap:wrap;gap:4px;display:flex}.hub-courses__categories-icon-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm,6px);width:30px;height:30px;color:var(--text-subtle);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.hub-courses__categories-icon-btn:hover{color:var(--text)}.hub-courses__categories-icon-btn.is-selected{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.hub-courses__categories-color-btn{cursor:pointer;width:26px;height:26px;color:var(--hub-ink-900,#000);transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hub-courses__categories-color-btn:hover{transform:scale(1.08)}.hub-courses__categories-color-btn.is-selected{border-color:var(--text)}.hub-courses__categories-form-actions{justify-content:flex-end;gap:8px;display:flex}.hub-courses__history-name{font-size:var(--text-sm);align-items:center;gap:6px;font-weight:500;display:inline-flex}.hub-courses__history-meta{color:var(--text-subtle);font-size:11px}@media (width>=900px){.hub-courses__container{max-width:880px}.hub-courses__list{gap:22px}}.hub-m-search__placeholder{color:var(--text-subtle);font-size:var(--text-base);text-align:left;flex:1}.hub-profile-settings{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin:0;padding:8px 0 0;list-style:none;display:flex}.hub-profile-settings li{margin:0}.hub-profile-settings button{border-radius:var(--radius-lg);width:100%;color:var(--text);font-family:inherit;font-size:var(--text-base);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:12px;padding:12px 14px;font-weight:500;display:flex}.hub-profile-settings button:hover,.hub-profile-settings button:active{background:var(--surface-muted)}.hub-profile-settings button:disabled{opacity:.5;cursor:not-allowed}.hub-profile-settings button:disabled:hover,.hub-profile-settings button:disabled:active{background:0 0}.hub-profile-settings button>span:first-of-type{flex:1}.hub-profile-settings__value{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px}.hub-profile-settings button.is-danger{color:var(--hub-danger)}.hub-settings-section{margin-top:28px}.hub-settings-section__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.hub-settings-section__head h2{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.hub-settings-section__count{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-muted);font-size:11px}.hub-settings-section__hint{font-size:var(--text-sm);color:var(--text-subtle);margin:0 0 12px;line-height:1.45}.bd-page{flex-direction:column;gap:18px;display:flex}.bd-page--flush{padding-left:0;padding-right:0}.bd-segnav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);-webkit-overflow-scrolling:touch;align-items:center;gap:6px;padding:6px;display:flex;overflow-x:auto}.bd-segnav__btn{border-radius:var(--radius-full);color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;background:0 0;border:none;flex:auto;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:8px 12px;font-weight:600;display:inline-flex}.bd-segnav__btn.is-active{background:var(--surface-strong,var(--surface))}@supports (color:color-mix(in lab, red, red)){.bd-segnav__btn.is-active{background:var(--surface-strong,color-mix(in oklab, var(--surface) 88%, var(--text) 12%))}}.bd-segnav__btn.is-active{color:var(--text);box-shadow:var(--shadow-xs)}@media (width<=480px){.bd-segnav__btn span{display:none}.bd-segnav__btn.is-active span{display:inline}}.hub-app-nav-bar{padding:0 24px 12px;display:flex}@media (width>=768px){.hub-app-nav-bar{padding:0 40px 16px}}.hub-app-nav-bar .bd-segnav{flex:none}.hub-notif-enable{background:var(--hub-coral-300);align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.hub-notif-enable{background:color-mix(in oklab, var(--hub-coral-300) 14%, var(--surface))}}.hub-notif-enable{border:1px solid var(--hub-coral-300)}@supports (color:color-mix(in lab, red, red)){.hub-notif-enable{border:1px solid color-mix(in oklab, var(--hub-coral-300) 38%, transparent)}}.hub-notif-enable{border-radius:var(--radius-xl);color:var(--text)}.hub-notif-enable__icon{border-radius:var(--radius-lg);background:var(--hub-coral-300);flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}@supports (color:color-mix(in lab, red, red)){.hub-notif-enable__icon{background:color-mix(in oklab, var(--hub-coral-300) 26%, var(--surface))}}.hub-notif-enable__icon{color:var(--hub-coral-500,var(--primary))}.hub-notif-enable__main{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.hub-notif-enable__main strong{font-size:14px;font-weight:600}.hub-notif-enable__main span{color:var(--text-subtle);font-size:12px}.hub-m-topbar__action[data-needs-activation]:before{content:"";background:var(--hub-coral-300,#ec6a48);border:2px solid var(--bg-elevated,white);pointer-events:none;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.hub-apps-mgr__head{margin-bottom:16px}.hub-apps-mgr__head h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 4px;font-size:24px;font-weight:600}.hub-apps-mgr__head p{color:var(--text-subtle);margin:0;font-size:14px}.hub-apps-mgr__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hub-apps-mgr__row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);transition:opacity var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);align-items:center;gap:12px;padding:10px 12px;display:flex}.hub-apps-mgr__row.is-hidden{opacity:.55}.hub-apps-mgr__row[data-dragging=true],.hub-apps-mgr__row:active{box-shadow:var(--shadow-md,0 6px 20px oklch(20% .02 280/.12));z-index:2}.hub-apps-mgr__handle{width:28px;height:32px;color:var(--text-subtle);cursor:grab;touch-action:none;background:0 0;border:none;flex-shrink:0;place-items:center;padding:0;display:inline-grid}.hub-apps-mgr__handle:hover{color:var(--text)}.hub-apps-mgr__handle:active{cursor:grabbing}.hub-apps-mgr__icon{border-radius:var(--radius-lg);width:36px;height:36px;color:var(--on-primary);flex-shrink:0;place-items:center;display:grid}.hub-apps-mgr__main{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.hub-apps-mgr__main strong{color:var(--text);font-size:14px;font-weight:600}.hub-apps-mgr__main span{color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.hub-apps-mgr__actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.hub-apps-mgr__btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);width:32px;height:32px;color:var(--text-subtle);cursor:pointer;transition:color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);place-items:center;display:inline-grid}.hub-apps-mgr__btn:hover:not(:disabled){color:var(--text);background:var(--surface-strong,var(--surface))}@supports (color:color-mix(in lab, red, red)){.hub-apps-mgr__btn:hover:not(:disabled){background:var(--surface-strong,color-mix(in oklab, var(--surface) 88%, var(--text) 12%))}}.hub-apps-mgr__btn:disabled{opacity:.35;cursor:not-allowed}.hub-apps-mgr__btn.is-off{color:var(--primary);border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-apps-mgr__btn.is-off{border-color:color-mix(in oklab, var(--primary) 50%, var(--border))}}.hub-apps-mgr__btn.is-on{color:var(--primary);border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-apps-mgr__btn.is-on{border-color:color-mix(in oklab, var(--primary) 50%, var(--border))}}.bd-readonly{background:var(--hub-violet-300);align-items:center;gap:12px;padding:10px 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.bd-readonly{background:color-mix(in oklab, var(--hub-violet-300) 18%, transparent)}}.bd-readonly{border:1px solid var(--hub-violet-300)}@supports (color:color-mix(in lab, red, red)){.bd-readonly{border:1px solid color-mix(in oklab, var(--hub-violet-300) 42%, transparent)}}.bd-readonly{border-radius:var(--radius-xl);color:var(--text)}.bd-readonly strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:14px;display:block}.bd-readonly span{color:var(--text-muted);font-size:12px;display:block}.bd-since{text-align:center;margin:6px 0 4px}.bd-since__eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px}.bd-since__num{font-family:var(--font-display);letter-spacing:-.04em;color:var(--text);align-items:baseline;gap:8px;margin-top:4px;font-size:clamp(56px,14vw,88px);font-weight:700;line-height:.95;display:inline-flex}.bd-since__unit{font-family:var(--font-display);color:var(--text-muted);letter-spacing:-.01em;font-size:22px;font-weight:600}.bd-since__sub{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-subtle);margin-top:6px;font-size:11px}.bd-since__sub strong{color:var(--text)}.bd-since__habit{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-subtle);flex-direction:column;gap:3px;margin-top:8px;font-size:10.5px;display:flex}.bd-since__habit-row{justify-content:center;align-items:baseline;gap:6px;display:flex}.bd-since__habit-label{text-transform:uppercase}.bd-since__habit-value{color:var(--text);letter-spacing:.02em;font-weight:600}.bd-recent{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:14px 16px 16px}.bd-recent__head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.bd-recent__head strong{font-family:var(--font-display);font-size:var(--text-base);letter-spacing:-.01em;font-weight:600}.bd-recent__head span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.bd-recent .bd-hist__group-head{background:0 0;padding:10px 0 4px;position:static}.bd-recent .bd-hist__row{padding:8px 2px}.bd-pain{width:24px;height:24px;font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.bd-sheet-body{flex-direction:column;gap:14px;display:flex}.bd-sheet__head{text-align:center}.bd-sheet__eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--hub-coral-500);font-size:10px;font-weight:600}.bd-sheet__title{font-family:var(--font-display);letter-spacing:-.025em;margin:4px 0 0;font-size:26px;font-weight:700}.bd-sheet__sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.bd-sheet__field-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:10px;display:flex}.bd-sheet__field-label strong{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);text-transform:none;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.bd-sheet__time{background:var(--surface-muted);border-radius:var(--radius-full);grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;display:grid}.bd-sheet__time button{border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;padding:9px 10px;font-weight:600}.bd-sheet__time button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.bd-sheet__error{background:var(--hub-coral-500);margin:0;padding:8px 12px}@supports (color:color-mix(in lab, red, red)){.bd-sheet__error{background:color-mix(in oklab, var(--hub-coral-500) 12%, transparent)}}.bd-sheet__error{border:1px solid var(--hub-coral-500)}@supports (color:color-mix(in lab, red, red)){.bd-sheet__error{border:1px solid color-mix(in oklab, var(--hub-coral-500) 30%, transparent)}}.bd-sheet__error{border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text)}.bd-sheet__foot{gap:8px;display:flex}.bd-sheet__danger{border-top:1px dashed var(--border);margin-top:12px;padding-top:12px}.bd-sheet__confirm p{font-size:var(--text-sm);color:var(--text);margin:0 0 8px}.bd-sheet__confirm-actions{justify-content:flex-end;gap:8px;display:flex}.bd-pain-scale{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.bd-pain-scale button{aspect-ratio:1;border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-mono);color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;display:inline-flex}.bd-pain-scale button.is-active{color:var(--hub-ink-950);border-color:#0000;font-size:16px}.bd-pain-scale button[data-level="0"].is-active,.bd-pain-scale button[data-level="1"].is-active,.bd-pain-scale button[data-level="2"].is-active{background:var(--hub-lime-500);color:var(--on-accent)}.bd-pain-scale button[data-level="3"].is-active,.bd-pain-scale button[data-level="4"].is-active{background:var(--hub-lime-800);color:var(--on-accent)}.bd-pain-scale button[data-level="5"].is-active,.bd-pain-scale button[data-level="6"].is-active{background:var(--hub-coral-300);color:var(--on-primary)}.bd-pain-scale button[data-level="7"].is-active,.bd-pain-scale button[data-level="8"].is-active{background:var(--hub-coral-500);color:var(--on-primary)}.bd-pain-scale button[data-level="9"].is-active,.bd-pain-scale button[data-level="10"].is-active{color:#fff;background:oklch(48% .18 25)}.bd-pain-track{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);justify-content:space-between;margin-top:6px;font-size:9px;display:flex}.bd-cal__head{justify-content:space-between;align-items:center;display:flex}.bd-cal__head h2{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:26px;font-weight:700}.bd-cal__head span{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-muted);font-size:11px}.bd-cal__nav{gap:4px;display:inline-flex}.bd-cal__nav button{background:var(--surface);border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.bd-cal__legend{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase;align-items:center;gap:8px;font-size:9.5px;display:flex}.bd-cal__legend-cells{gap:3px;display:inline-flex}.bd-cal__legend-cells span{border-radius:4px;width:14px;height:14px}.bd-cal__grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:14px}.bd-cal__dow{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;display:grid}.bd-cal__dow span{text-align:center;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);font-size:9.5px}.bd-cal__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.bd-cal__cell{aspect-ratio:1;background:var(--surface-muted);font-family:var(--font-mono);color:var(--text-subtle);cursor:pointer;border:none;border-radius:6px;justify-content:flex-end;align-items:flex-start;padding:4px;font-size:11px;display:inline-flex;position:relative}.bd-cal__cell.is-out{opacity:.25;pointer-events:none}.bd-cal__cell.is-today{box-shadow:inset 0 0 0 2px var(--text)}.bd-cal__cell.is-selected{box-shadow:inset 0 0 0 2px var(--hub-coral-500)}.bd-journal__head-wrap{padding:0 var(--page-pad-x);flex-direction:column;gap:10px;display:flex}.bd-journal__toolbar{align-items:stretch;gap:8px;display:flex}.bd-journal__toolbar .bd-segment{flex:auto;min-width:0}.bd-journal__csv{flex:none;align-self:stretch}.bd-journal__view{padding:0 var(--page-pad-x);flex-direction:column;gap:14px;display:flex}.bd-year-cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:12px 12px 8px}.bd-year-cal--landscape{overflow-x:auto}.bd-year-cal svg{width:100%;min-width:0;height:auto;display:block}.bd-segment{background:var(--surface-muted);border-radius:var(--radius-full);grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.bd-segment button{border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:9px 10px;font-weight:600}.bd-segment button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.bd-stats__head{justify-content:space-between;align-items:baseline;display:flex}.bd-stats__head h2{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:24px;font-weight:700}.bd-stats__period{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.06em;font-size:11px}.bd-kpis{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.bd-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:12px 14px}.bd-kpi__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px}.bd-kpi__value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;margin-top:2px;font-size:28px;font-weight:700}.bd-kpi__value small{font-family:var(--font-display);font-size:var(--text-sm);color:var(--text-muted);letter-spacing:-.01em;margin-left:4px;font-weight:600}.bd-kpi__delta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);margin-top:2px;font-size:10px}.bd-kpi__delta.is-up{color:var(--hub-coral-500)}.bd-kpi__delta.is-down{color:var(--hub-lime-800)}.bd-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:14px 16px 12px}.bd-chart__head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.bd-chart__head strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:14px;font-weight:600}.bd-chart__head span{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);font-size:10px}.bd-chart svg{width:100%;height:auto;display:block}.bd-chart__empty{color:var(--text-subtle);font-size:var(--text-sm);text-align:center;padding:18px 4px}.bd-hist__head-wrap{padding:0 var(--page-pad-x);flex-direction:column;gap:10px;display:flex}.bd-hist__head{justify-content:space-between;align-items:baseline;display:flex}.bd-hist__head h2{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:24px;font-weight:700}.bd-hist__chiprail{-webkit-overflow-scrolling:touch;gap:6px;display:flex;overflow-x:auto}.bd-chip{border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.bd-chip em{font-style:normal;font-family:var(--font-mono);color:var(--text-subtle);font-size:10.5px}.bd-chip.is-active{background:var(--hub-coral-500)}@supports (color:color-mix(in lab, red, red)){.bd-chip.is-active{background:color-mix(in oklab, var(--hub-coral-500) 12%, var(--surface))}}.bd-chip.is-active{border-color:var(--hub-coral-500)}@supports (color:color-mix(in lab, red, red)){.bd-chip.is-active{border-color:color-mix(in oklab, var(--hub-coral-500) 50%, var(--border))}}.bd-chip.is-active{color:var(--text)}.bd-chip.is-active em{color:var(--hub-coral-500)}.bd-hist{flex-direction:column;gap:0;display:flex}.bd-hist__group-head{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);padding:12px var(--page-pad-x) 4px;background:var(--bg);z-index:1;font-size:10px;position:sticky;top:0}.bd-hist__row{padding:10px var(--page-pad-x);border:none;border-top:1px dashed var(--border);text-align:left;width:100%;font:inherit;color:inherit;cursor:default;background:0 0;grid-template-columns:60px 28px 1fr;align-items:center;gap:10px;display:grid}button.bd-hist__row{cursor:pointer}button.bd-hist__row:hover{background:var(--surface-muted)}.bd-hist__row strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.bd-hist__row strong span{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-subtle);text-transform:uppercase;margin-top:1px;font-size:9px;font-weight:500;display:block}.bd-hist__row p{font-size:var(--text-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.bd-hist__row p em{opacity:.6;font-style:italic}.bd-empty{text-align:center;color:var(--text-muted);padding:32px 16px}.bd-empty h2{font-family:var(--font-display);color:var(--text);margin:0 0 4px;font-size:18px;font-weight:600}.bd-empty p{font-size:var(--text-sm);margin:0}.hub-loading-block{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:40px 16px}.tf-page{position:relative}.tf-page *{box-sizing:border-box}.tf-fab{bottom:calc(env(safe-area-inset-bottom,0px) + 86px);z-index:35;background:var(--primary);width:56px;height:56px;color:var(--on-primary);cursor:pointer;box-shadow:0 12px 28px -8px var(--primary), 0 3px 8px -2px var(--primary);border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:fixed;right:16px}@supports (color:color-mix(in lab, red, red)){.tf-fab{box-shadow:0 12px 28px -8px color-mix(in oklab, var(--primary) 55%, transparent), 0 3px 8px -2px color-mix(in oklab, var(--primary) 25%, transparent)}}.tf-fab:active{transform:scale(.96)}.tf-today{flex-direction:column;gap:14px;padding:4px 0 100px;display:flex}.tf-daynav{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.tf-daynav__btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tf-daynav__center{text-align:center}.tf-daynav__date{font-family:var(--font-display);letter-spacing:-.025em;font-size:24px;font-weight:700;line-height:1.05}.tf-daynav__sub{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:10px}.tf-daynav__sub strong{color:var(--primary)}.tf-weekstrip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);grid-template-columns:repeat(7,1fr);gap:6px;padding:8px;display:grid}.tf-weekstrip__day{border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);font-family:var(--font-sans);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:8px 2px 6px;display:flex}.tf-weekstrip__day-dow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:9.5px}.tf-weekstrip__day-num{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:16px;font-weight:700}.tf-weekstrip__day-dots{gap:3px;height:5px;margin-top:1px;display:inline-flex}.tf-weekstrip__day-dots span{background:var(--text-subtle);border-radius:50%;width:4px;height:4px}.tf-weekstrip__day.is-today .tf-weekstrip__day-num{color:var(--primary)}.tf-weekstrip__day.is-selected{background:var(--text);color:var(--text-inverse)}.tf-weekstrip__day.is-selected .tf-weekstrip__day-num,.tf-weekstrip__day.is-selected .tf-weekstrip__day-dow{color:var(--text-inverse)}.tf-weekstrip__day.is-selected .tf-weekstrip__day-dots span{background:var(--text-inverse)}@supports (color:color-mix(in lab, red, red)){.tf-weekstrip__day.is-selected .tf-weekstrip__day-dots span{background:color-mix(in oklab, var(--text-inverse) 70%, transparent)}}.tf-section-head{justify-content:space-between;align-items:baseline;margin:6px 2px 4px;display:flex}.tf-section-head strong{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px}.tf-section-head span{font-family:var(--font-mono);color:var(--text-subtle);font-size:10.5px}.tf-task{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);transition:opacity var(--dur-base) var(--ease-out);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px 14px 14px 12px;display:grid;position:relative;overflow:hidden}.tf-task__hit{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;grid-template-columns:36px 1fr;align-items:center;gap:12px;min-width:0;margin:0;padding:0;display:grid}.tf-task:before{content:"";background:var(--cat-color,var(--text-subtle));border-radius:2px;width:3px;position:absolute;top:12px;bottom:12px;left:0}.tf-task.is-done{opacity:.55}.tf-check{border:2px solid var(--border-strong);cursor:pointer;color:#0000;width:28px;height:28px;transition:background var(--dur-base) var(--ease-spring), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-spring);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tf-check:active{transform:scale(.92)}.tf-check.is-done{background:var(--cat-color,var(--primary));border-color:var(--cat-color,var(--primary));color:var(--on-primary);transform:scale(1)}.tf-check.is-done svg{animation:tf-check-pop .36s var(--ease-spring)}@keyframes tf-check-pop{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}.tf-task__main{min-width:0;display:block}.tf-task__title{font-family:var(--font-sans);font-weight:600;font-size:var(--text-base);letter-spacing:-.005em;color:var(--text);white-space:nowrap;text-overflow:ellipsis;line-height:1.25;display:block;overflow:hidden}.tf-task.is-done .tf-task__title{color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:1.5px}.tf-task__meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.tf-task__time,.tf-task__recurrence,.tf-cat{display:inline-flex}.tf-cat{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--hub-ink-950);background:linear-gradient(135deg, var(--cat-color) 0%, var(--cat-color) 100%);align-items:center;gap:4px;font-size:10px;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.tf-cat{background:linear-gradient(135deg, color-mix(in oklab, var(--cat-color) 80%, white) 0%, var(--cat-color) 100%)}}.tf-cat{border-radius:var(--radius-full);white-space:nowrap;padding:3px 8px 3px 6px}.tf-cat:before{content:"";background:var(--hub-ink-950);opacity:.75;border-radius:50%;width:6px;height:6px}.tf-task__time{font-family:var(--font-mono);color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.tf-task__recurrence{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-subtle);text-transform:uppercase;font-size:10px}.tf-task__handle{background:var(--surface-muted);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tf-empty{text-align:center;border:1.5px dashed var(--border-strong);border-radius:var(--radius-2xl);color:var(--text-muted);margin-top:24px;padding:32px 16px}.tf-empty strong{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:16px;font-weight:600;display:block}.tf-empty p{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0 12px;line-height:1.45}.tf-month{flex-direction:column;gap:12px;padding:4px 0 100px;display:flex}.tf-month__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tf-month__head h2{font-family:var(--font-display);letter-spacing:-.025em;text-transform:capitalize;margin:0;font-size:28px;font-weight:700}.tf-month__nav{gap:6px;display:inline-flex}.tf-month__nav button{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tf-month__sub{align-items:center;gap:10px;margin-top:-6px;margin-bottom:4px;display:flex}.tf-month__sub-num{font-family:var(--font-display);letter-spacing:-.01em;color:var(--primary);font-size:14px;font-weight:700}.tf-month__sub-text{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px}.tf-month__grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:14px}.tf-month__dow{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;display:grid}.tf-month__dow span{text-align:center;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);padding:2px 0;font-size:9.5px}.tf-month__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.tf-month__cell{aspect-ratio:1;border-radius:var(--radius-md);font-family:var(--font-display);color:var(--text);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;padding:6px 0 4px;font-size:14px;font-weight:600;display:flex;position:relative}.tf-month__cell.is-out{color:var(--text-subtle);opacity:.4;cursor:default}.tf-month__cell-num{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.tf-month__cell.is-today .tf-month__cell-num{box-shadow:inset 0 0 0 2px var(--primary);color:var(--primary)}.tf-month__cell.is-selected .tf-month__cell-num{background:var(--text);color:var(--text-inverse)}.tf-month__cell.is-today.is-selected .tf-month__cell-num{background:var(--primary);color:var(--on-primary);box-shadow:none}.tf-month__cell-dots{gap:2px;height:5px;display:inline-flex}.tf-month__cell-dots span{background:var(--cat-color,var(--text-subtle));border-radius:50%;width:4px;height:4px}.tf-field{flex-direction:column;gap:6px;display:flex}.tf-field__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:baseline;font-size:10px;font-weight:600;display:flex}.tf-field__label em{color:var(--text-subtle);font-style:normal;font-weight:400}.tf-input{border:1.5px solid var(--border);background:var(--surface-muted);border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);outline:none;padding:13px 14px;font-weight:500}.tf-input:focus{border-color:var(--primary);background:var(--surface)}.tf-predef{scrollbar-width:none;gap:6px;margin:-2px -16px 0;padding:2px 16px 4px;display:flex;overflow-x:auto}.tf-predef::-webkit-scrollbar{display:none}.tf-predef__chip{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-full);font-family:var(--font-sans);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:7px 12px 7px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.tf-predef__chip:before{content:"";background:var(--cat-color,var(--text-subtle));border-radius:50%;flex-shrink:0;width:8px;height:8px}.tf-predef__chip.is-active{background:var(--text);color:var(--text-inverse);border-color:var(--text)}.tf-cats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.tf-cats__opt{background:var(--surface-muted);border-radius:var(--radius-md);cursor:pointer;text-align:left;border:1.5px solid #0000;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.tf-cats__opt span{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text);align-items:center;gap:5px;font-weight:600;display:inline-flex}.tf-cats__opt span:before{content:"";background:var(--cat-color);border-radius:50%;width:8px;height:8px}.tf-cats__opt.is-active{border-color:var(--cat-color);background:var(--cat-color)}@supports (color:color-mix(in lab, red, red)){.tf-cats__opt.is-active{background:color-mix(in oklab, var(--cat-color) 16%, var(--surface))}}.tf-row{grid-template-columns:2fr 1fr;gap:8px;display:grid}.tf-pickbtn{background:var(--surface-muted);border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-sans);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:600;display:flex;position:relative;overflow:hidden}.tf-pickbtn svg{color:var(--text-muted);flex-shrink:0}.tf-pickbtn span{font-variant-numeric:tabular-nums;flex:1}.tf-pickbtn.is-disabled{cursor:default;opacity:.6}.tf-pickbtn:has(input:disabled){cursor:default;opacity:.6}.tf-recur__opt:disabled,.todo-assignee__opt:disabled{cursor:default;opacity:.55}.tf-recur{grid-template-columns:1fr 1fr;gap:6px;display:grid}.tf-recur__opt{background:var(--surface-muted);border-radius:var(--radius-md);text-align:left;cursor:pointer;border:1.5px solid #0000;flex-direction:column;gap:1px;padding:10px 12px;display:flex}.tf-recur__opt strong{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text);font-weight:600}.tf-recur__opt span{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-subtle);text-transform:uppercase;font-size:9.5px}.tf-recur__opt.is-active{background:var(--text)}.tf-recur__opt.is-active strong,.tf-recur__opt.is-active span{color:var(--text-inverse)}@supports (color:color-mix(in lab, red, red)){.tf-recur__opt.is-active span{color:color-mix(in oklab, var(--text-inverse) 70%, transparent)}}.tf-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.tf-days__btn{aspect-ratio:1;border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-mono);color:var(--text);cursor:pointer;text-transform:uppercase;border-radius:50%;font-size:11px;font-weight:700}.tf-days__btn.is-active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tf-monthly-days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.tf-monthly-days__btn{aspect-ratio:1;border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-mono);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex}.tf-monthly-days__btn.is-active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tf-sheet__btn{border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;flex:1;padding:14px;font-weight:600}.tf-sheet__btn[disabled]{opacity:.5;cursor:not-allowed}.tf-sheet__btn.is-primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary);flex:2;justify-content:center;align-items:center;gap:6px;display:inline-flex}.tf-list{flex-direction:column;gap:18px;padding-bottom:100px;display:flex}.tf-list__head{justify-content:space-between;align-items:baseline;padding:4px 2px 0;display:flex}.tf-list__head strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:600}.tf-list__head span{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-subtle);font-size:10.5px;font-weight:700}.tf-list__day{flex-direction:column;gap:6px;display:flex}.tf-list__day-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding:4px 2px;display:flex}.tf-list__day-head strong{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-subtle);text-transform:uppercase;font-size:11px;font-weight:700}.tf-list__day-head.is-today strong{color:var(--primary)}.tf-list__day-head span{font-family:var(--font-mono);color:var(--text-subtle);font-size:11px;font-weight:600}.tf-manage{flex-direction:column;display:flex}.tf-manage__head{flex-direction:column;gap:14px;padding-bottom:8px;display:flex}.tf-manage__top{justify-content:space-between;align-items:center;display:flex}.tf-manage__top h2{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:24px;font-weight:700}.tf-manage__tabs{background:var(--surface-muted);border-radius:var(--radius-full);grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:4px;padding:4px;display:grid}.tf-manage__tabs--4{grid-template-columns:repeat(4,1fr)}.tf-manage__tabs button{border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:9px 10px;font-weight:600}.tf-manage__tabs button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.tf-manage__tabs button{position:relative}.tf-manage__tabs button[data-badge]:after{content:attr(data-badge);box-sizing:border-box;border-radius:var(--radius-full);background:var(--text);min-width:16px;height:16px;padding:0 2px;position:absolute;top:2px;right:6px}@supports (color:color-mix(in lab, red, red)){.tf-manage__tabs button[data-badge]:after{background:color-mix(in oklab, var(--text) 14%, transparent)}}.tf-manage__tabs button[data-badge]:after{color:var(--text-muted);font-family:var(--font-mono);justify-content:center;align-items:center;font-size:9.5px;font-weight:700;display:inline-flex}.tf-manage__tabs button.is-active[data-badge]:after{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.tf-manage__tabs button.is-active[data-badge]:after{background:color-mix(in oklab, var(--text) 20%, transparent)}}.tf-manage__tabs button.is-active[data-badge]:after{color:var(--text)}.todo-list{flex-direction:column;gap:8px;padding:8px 0 110px;display:flex}.todo-row{background:var(--surface);border-radius:var(--radius-lg,14px);box-shadow:var(--shadow-xs);align-items:center;gap:10px;padding:10px 12px;display:flex}.todo-row.is-done{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.todo-row.is-done{background:color-mix(in oklab, var(--surface) 85%, var(--surface-muted))}}.todo-row.is-done,.todo-row.is-done .todo-row__title{color:var(--text-muted)}.todo-row.is-readonly{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.todo-row.is-readonly{background:color-mix(in oklab, var(--surface) 92%, var(--surface-muted))}}.todo-row__body{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:auto;gap:4px;min-width:0;padding:0;display:flex}.todo-row__title{font-size:var(--text-base);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.todo-row.is-done .todo-row__title{text-decoration:line-through}.todo-row__meta{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.todo-row__chip{color:var(--text-muted);background:var(--surface-muted);border-radius:var(--radius-full);align-items:center;gap:3px;padding:2px 8px;font-size:12px;display:inline-flex}.todo-row__chip.is-overdue{color:var(--on-primary);background:var(--hub-coral-400)}.todo-row__side{flex:none;align-items:center;gap:4px;display:flex}.todo-row__body:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-md)}.todo-row__avatars{margin-right:2px;display:inline-flex}.todo-row__avatars>*+*{margin-left:-8px}.todo-row__actions{gap:2px;display:inline-flex}.todo-row__act{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.todo-row__act.is-disabled{opacity:.4;pointer-events:none}.todo-section{flex-direction:column;gap:4px;display:flex}.todo-section+.todo-section{margin-top:6px}.todo-section__head{letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);align-items:center;padding:0 4px;font-size:11px;font-weight:700;display:flex}.todo-section .todo-list{padding:2px 0 0}.todo-section:last-child .todo-list{padding-bottom:110px}.todo-list--reorderable{margin:0;list-style:none}.todo-reorder-item{touch-action:pan-y;background:0 0;list-style:none}.todo-reorder-handle{width:28px;height:32px;color:var(--text-subtle);cursor:grab;touch-action:none;background:0 0;border:none;flex:none;place-items:center;margin-left:2px;padding:0;display:inline-grid}.todo-reorder-handle:hover{color:var(--text)}.todo-reorder-handle:active{cursor:grabbing}.todo-swipe{border-radius:var(--radius-lg,14px);position:relative;overflow:hidden}.todo-swipe__action{color:var(--on-primary);pointer-events:none;justify-content:flex-start;align-items:center;padding-left:22px;display:flex;position:absolute;inset:0}.todo-swipe__action--done{background:oklch(64% .16 152)}.todo-swipe__row{touch-action:pan-y;background:0 0;position:relative}.hocus-claudus-section{flex-direction:column;gap:8px;display:flex}.hocus-claudus-section__cta{border-radius:var(--radius-full,999px);border:1px solid var(--border,#0000001f);background:var(--surface-muted);min-height:44px;color:var(--text);cursor:pointer;align-self:flex-start;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.hocus-claudus-section__cta.is-disabled,.hocus-claudus-section__cta:disabled{opacity:.5;cursor:not-allowed}.hocus-claudus-section__pending{border-radius:var(--radius-full,999px);background:var(--surface-muted);min-height:44px;color:var(--text-muted);align-self:flex-start;align-items:center;gap:8px;padding:0 14px;font-size:14px;display:inline-flex}.hocus-claudus-section__spin{animation:1s linear infinite hocus-claudus-spin}@keyframes hocus-claudus-spin{to{transform:rotate(360deg)}}.hocus-claudus-section__cancel{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-left:4px;display:inline-flex}.hocus-claudus-section__chips{flex-wrap:wrap;gap:8px;display:flex}.hocus-claudus-chip{border-radius:var(--radius-full,999px);background:var(--accent);min-height:44px;color:var(--on-accent);align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.hocus-claudus-chip.is-secondary{background:var(--surface-muted);color:var(--text);border:1px solid var(--border,#0000001f)}.hocus-claudus-chip.is-external{background:var(--surface);color:var(--text);border:1px solid var(--accent);flex-direction:column;align-items:flex-start;gap:1px;padding:6px 14px}.hocus-claudus-chip__ext{opacity:.7;align-items:center;gap:4px;font-size:11px;font-weight:400;display:inline-flex}.hocus-claudus-section__answer-input{border-radius:var(--radius-full,999px);border:1px solid var(--border,#0000001f);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--text);padding:0 14px;font-size:14px}.hocus-claudus-section__answer-input:disabled{opacity:.5}.hocus-claudus-section__description{border-radius:var(--radius-md,12px);background:var(--surface-muted);border:1px solid var(--border,#00000014);color:var(--text);font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px 12px;line-height:1.5}.hocus-claudus-section__empty,.hocus-claudus-section__error{font-size:var(--text-sm);color:var(--text-muted);margin:0}.hocus-claudus-section__reset{color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;align-items:center;gap:4px;min-height:44px;padding:0 4px;text-decoration:underline;display:inline-flex}.hocus-claudus-section__reset:disabled{opacity:.5;cursor:not-allowed}.hocus-claudus-phase{flex-direction:column;gap:8px;padding:10px 0;display:flex}.hocus-claudus-phase+.hocus-claudus-phase{border-top:1px solid var(--border,#00000014)}.hocus-claudus-phase__step{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.hocus-claudus-phase__num{background:var(--accent);width:20px;height:20px;color:var(--on-accent);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.hocus-claudus-phase__num.is-locked{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border,#0000001f)}.hocus-claudus-phase__count{letter-spacing:0;text-transform:none;color:var(--text-muted);margin-left:auto;font-size:12px;font-weight:600}.hocus-claudus-phase__done{color:var(--accent)}.hocus-claudus-refined__details summary{font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;align-items:center;min-height:32px;display:flex}.hocus-claudus-refined__details[open] summary{margin-bottom:4px}.hocus-claudus-tweak,.hocus-steps{flex-direction:column;gap:8px;display:flex}.hocus-steps__progress{background:var(--surface-muted);border-radius:2px;height:4px;overflow:hidden}.hocus-steps__progress>span{background:var(--accent);height:100%;transition:width var(--dur-base) var(--ease-out);border-radius:2px;display:block}.hocus-steps__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hocus-step{align-items:flex-start;gap:10px;padding:10px 0;display:flex}.hocus-step+.hocus-step{border-top:1px dashed var(--border,#00000014)}.hocus-step__check{color:#0000;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin:-8px -7px -8px 0;display:inline-flex}.hocus-step__check:before{content:"";border:1.5px solid var(--border,#00000040);background:var(--surface);border-radius:50%;width:26px;height:26px;position:absolute}.hocus-step__check,.hocus-step__check>svg{position:relative}.hocus-step.is-done .hocus-step__check{color:var(--on-accent)}.hocus-step.is-done .hocus-step__check:before{background:var(--accent);border-color:var(--accent)}.hocus-step__check:disabled{opacity:.5;cursor:not-allowed}.hocus-step__body{flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;display:flex}.hocus-step__title{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:600}.hocus-step.is-done .hocus-step__title{color:var(--text-muted);font-weight:500;text-decoration:line-through}.hocus-step__detail{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere;margin:0;line-height:1.45}.hocus-claudus-chip.is-step{min-height:38px;font-size:13px}.hocus-claudus-chip.is-step.is-external{padding:5px 12px}.hocus-step__decide{border:1.5px dashed var(--accent);border-radius:var(--radius-full,999px);background:var(--accent);align-items:center;gap:6px;min-height:40px;padding:0 14px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.hocus-step__decide{background:color-mix(in srgb, var(--accent) 6%, var(--surface))}}.hocus-step__decide{color:var(--text);cursor:pointer;font-size:13px;font-weight:600}.hocus-step__result{border-radius:var(--radius-full,999px);border:1px solid var(--accent);background:var(--accent);align-items:center;gap:6px;max-width:100%;min-height:32px;padding:4px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.hocus-step__result{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}}.hocus-step__result{color:var(--text);cursor:pointer;text-align:left;font-size:13px;font-weight:500}.hocus-step__result>span{overflow-wrap:anywhere}.hocus-step__result:disabled{cursor:default}.hocus-step__result.is-fresh:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hocus-step__result-row{align-items:center;gap:6px;width:100%;display:flex}.hocus-step__result-input{border-radius:var(--radius-md,12px);border:1px solid var(--border,#0000001f);background:var(--surface);min-width:0;min-height:40px;color:var(--text);flex:1;padding:0 12px;font-size:14px}.hocus-step__result-save{border-radius:var(--radius-md,12px);background:var(--accent);width:40px;height:40px;color:var(--on-accent);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hocus-steps__adapt{border-radius:var(--radius-md,12px);border:1px solid var(--accent);background:var(--accent);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.hocus-steps__adapt{background:color-mix(in srgb, var(--accent) 8%, var(--surface))}}.hocus-steps__adapt{font-size:var(--text-sm);color:var(--text)}.hocus-steps__adapt-go{border-radius:var(--radius-full,999px);background:var(--accent);min-height:36px;color:var(--on-accent);cursor:pointer;border:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.hocus-steps__adapt-go:disabled{opacity:.5;cursor:not-allowed}.hocus-steps__done{border-radius:var(--radius-md,12px);background:var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.hocus-steps__done{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}}.hocus-steps__done{font-size:var(--text-sm);color:var(--text);font-weight:600}.todo-sheet__tabs{z-index:5;box-shadow:0 0 0 8px var(--surface);flex-shrink:0;margin-bottom:4px;position:sticky;top:0}.todo-sheet__tabs .hub-tabs__btn{flex:1;justify-content:center}.hocus-claudus-refined{border-radius:var(--radius-md,12px);background:var(--surface-muted);border:1px solid var(--border,#00000014);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.hocus-claudus-refined__row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.hocus-claudus-refined__title{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:600}.hocus-claudus-refined__apply{border:1px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:var(--radius-full,999px);cursor:pointer;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.hocus-claudus-refined__apply:disabled{opacity:.5;cursor:not-allowed}.hocus-modal__q{flex-direction:column;gap:8px;display:flex}.hocus-modal__q-text{color:var(--text);margin:0;font-size:14px;font-weight:600}.hocus-modal__q-text em{color:var(--text-muted);font-size:12px;font-style:normal;font-weight:400}.hocus-modal__opts{flex-wrap:wrap;gap:8px;display:flex}.hocus-modal__opt{border-radius:var(--radius-full,999px);border:1px solid var(--border,#0000001f);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.hocus-modal__opt.is-active{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.hocus-modal__opt:disabled{opacity:.5;cursor:not-allowed}.hocus-ctx-grid{flex-direction:column;gap:14px;display:flex}.hocus-ctx-field{flex-direction:column;gap:6px;display:flex}.hocus-ctx-field__label{font-size:var(--text-sm);color:var(--text);font-weight:600}.hocus-ctx-field__input{border-radius:var(--radius-md,12px);border:1px solid var(--border,#0000001f);background:var(--surface);min-height:44px;color:var(--text);padding:0 14px;font-size:14px}.hocus-ctx-hours{align-items:center;gap:10px;display:flex}.hocus-ctx-hours .hocus-ctx-field__input{flex:0 130px}.hocus-ctx-hours__sep{color:var(--text-muted)}.hocus-ctx-days{flex-wrap:wrap;gap:6px;display:flex}.hocus-ctx-day{border-radius:var(--radius-full,999px);border:1px solid var(--border,#0000001f);background:var(--surface);min-width:44px;min-height:40px;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;padding:0 10px;font-weight:600}.hocus-ctx-day.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.hocus-ctx-autocomplete{align-items:center;display:flex;position:relative}.hocus-ctx-autocomplete .hocus-ctx-field__input{width:100%}.hocus-ctx-autocomplete__spin{color:var(--text-muted);animation:.8s linear infinite hocus-claudus-spin;position:absolute;right:12px}.hocus-ctx-suggestions{z-index:20;background:var(--surface);border:1px solid var(--border,#0000001f);border-radius:var(--radius-md,12px);max-height:260px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000029}.hocus-ctx-suggestions button{width:100%;color:var(--text);text-align:left;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px;line-height:1.3;display:flex}.hocus-ctx-suggestions button:hover{background:var(--surface-muted)}.hocus-ctx-suggestions button svg{color:var(--text-muted);flex:none}.hocus-ctx-geostatus{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.hocus-ctx-geostatus.is-located{color:var(--accent)}.hocus-ctx-field__sub{color:var(--text-muted);font-size:12px}.hocus-ctx-section-label{font-size:var(--text-sm);color:var(--text);align-items:center;gap:6px;font-weight:600;display:inline-flex}.hocus-ctx-commute{flex-direction:column;display:flex}.hocus-ctx-stop{border-radius:var(--radius-md,12px);border:1px solid var(--border,#0000001f);background:var(--surface);min-height:42px;color:var(--text);align-items:center;gap:8px;padding:0 12px;font-size:14px;display:flex}.hocus-ctx-stop.is-anchor{background:var(--surface-muted);font-weight:600}.hocus-ctx-stop.is-missing{color:var(--text-muted);border-style:dashed}.hocus-ctx-stop__label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.hocus-ctx-stop__actions{gap:2px;display:inline-flex}.hocus-ctx-stop__actions button{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.hocus-ctx-stop__actions button:disabled{opacity:.3;cursor:default}.hocus-ctx-stop__actions button:not(:disabled):hover{background:var(--surface-muted);color:var(--text)}.hocus-ctx-leg{align-items:center;gap:10px;padding:4px 0 4px 18px;display:flex}.hocus-ctx-leg__line{background:var(--border,#0000002e);align-self:stretch;width:2px;min-height:18px;margin-left:4px}.hocus-ctx-leg__modes{gap:4px;display:inline-flex}.hocus-ctx-leg__mode{border-radius:var(--radius-full,999px);border:1px solid var(--border,#0000001f);background:var(--surface);width:40px;height:32px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.hocus-ctx-leg__mode.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.todo-assignee{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.todo-assignee__opt{border-radius:var(--radius-lg,14px);background:var(--surface-muted);color:var(--text-muted);cursor:pointer;border:2px solid #0000;flex-direction:column;align-items:center;gap:6px;min-height:44px;padding:10px 6px;font-size:12px;font-weight:600;display:flex}.todo-assignee__opt.is-active{border-color:var(--primary);color:var(--text)}.todo-assignee__pair{display:inline-flex}.todo-assignee__pair>*+*{margin-left:-10px}.todo-attach{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.todo-attach__chip{background:var(--surface-muted);border-radius:var(--radius-full);color:var(--text);align-items:center;gap:6px;max-width:100%;padding:4px 6px 4px 8px;font-size:12px;display:inline-flex}.todo-attach__chip.is-uploading{opacity:.7}.todo-attach__chip.is-error{background:var(--danger,oklch(60% .18 25))}@supports (color:color-mix(in lab, red, red)){.todo-attach__chip.is-error{background:color-mix(in oklab, var(--danger,oklch(60% .18 25)) 16%, var(--surface-muted))}}.todo-attach__chip.is-error{color:var(--text)}.todo-attach__name{white-space:nowrap;text-overflow:ellipsis;max-width:14rem;color:inherit;text-decoration:none;overflow:hidden}a.todo-attach__name:hover{text-decoration:underline}.todo-attach__size{font-family:var(--font-mono);color:var(--text-muted);font-size:10.5px}.todo-attach__remove{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.todo-attach__remove:hover{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.todo-attach__remove:hover{background:color-mix(in oklab, var(--text) 10%, transparent)}}.todo-attach__remove:hover{color:var(--text)}.todo-attach__add{border:1.5px dashed var(--border);border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.todo-attach__add:hover{border-color:var(--border-strong);color:var(--text)}.todo-snooze-presets{flex-direction:column;gap:8px;display:flex}.todo-page{position:relative}.todo-page *{box-sizing:border-box}.todo-tabs{flex-wrap:nowrap;gap:6px;margin-bottom:6px}.todo-tabs .hub-segmented__opt{flex:1 1 0;min-width:0;padding-left:10px;padding-right:10px;position:relative}.todo-tabs__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.todo-tabs__count{box-sizing:border-box;border-radius:var(--radius-full);background:var(--text);min-width:15px;height:15px;padding:0 3px;position:absolute;top:3px;right:7px}@supports (color:color-mix(in lab, red, red)){.todo-tabs__count{background:color-mix(in oklab, var(--text) 14%, transparent)}}.todo-tabs__count{color:var(--text-muted);font-family:var(--font-mono);justify-content:center;align-items:center;font-size:9px;font-weight:700;display:inline-flex}.todo-tabs .hub-segmented__opt.is-active .todo-tabs__count{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.todo-tabs .hub-segmented__opt.is-active .todo-tabs__count{background:color-mix(in oklab, var(--text) 20%, transparent)}}.todo-tabs .hub-segmented__opt.is-active .todo-tabs__count{color:var(--text)}.todo-fab{bottom:calc(env(safe-area-inset-bottom,0px) + 86px);z-index:35;position:fixed;right:16px}.todo-fab:active{transform:scale(.96)}.todo-section__head{justify-content:space-between}.todo-section__count{font-variant-numeric:tabular-nums;color:var(--text-subtle)}.todo-section--active .todo-section__head{color:var(--hub-info-fg)}.todo-section--active .todo-list{border-left:2px solid var(--hub-sky-300);margin-left:2px;padding-left:8px}.todo-row__hocus{gap:4px}.todo-pickbtn{background:var(--surface-muted);border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-sans);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:600;display:flex;position:relative;overflow:hidden}.todo-pickbtn svg{color:var(--text-muted);flex-shrink:0}.todo-pickbtn span{font-variant-numeric:tabular-nums;flex:1}.todo-pickbtn.is-disabled{cursor:default;opacity:.6}.todo-pickbtn:has(input:disabled){cursor:default;opacity:.6}.todo-recur-list{flex-direction:column;gap:6px;display:flex}.todo-recur-row{text-align:left;border-radius:var(--radius-md);background:var(--surface-muted);cursor:pointer;border:1.5px solid #0000;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.todo-recur-row.is-active{border-color:var(--primary);background:var(--primary-soft)}.todo-recur-row__txt{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.todo-recur-row__txt strong{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text);font-weight:600}.todo-recur-row.is-active .todo-recur-row__txt strong{color:var(--hub-coral-800)}[data-theme=dark] .todo-recur-row.is-active .todo-recur-row__txt strong{color:var(--hub-coral-100)}.todo-recur-row__txt span{color:var(--text-muted);font-size:12px}.todo-recur-row__check{color:var(--primary);flex-shrink:0}.todo-recur-end{margin-top:16px}.todo-recur-end__clear{font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:4px 2px;font-size:13px;text-decoration:underline}.todo-settings__title{font-family:var(--font-sans);font-size:var(--text-lg);color:var(--text);margin:4px 0 14px;font-weight:700}.todo-settings__link{border-radius:var(--radius-md);background:var(--surface-muted);min-height:44px;color:var(--text);align-items:center;gap:10px;margin-top:18px;padding:14px 16px;font-weight:600;text-decoration:none;display:flex}.todo-settings__link span{flex:1}.todo-settings__link svg:first-child{color:var(--hub-sky-500)}.todo-settings__link svg:last-child{color:var(--text-subtle)}.tf-manage__body{flex-direction:column;gap:10px;padding:12px 0 100px;display:flex}.tf-mgr-section-head{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:baseline;padding:6px 4px 2px;font-size:10.5px;display:flex}.tf-pdef-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.tf-pdef-row__main strong{font-family:var(--font-sans);color:var(--text);font-size:14.5px;font-weight:600;display:block}.tf-pdef-row__cat{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:5px;margin-top:2px;font-size:9.5px;display:inline-flex}.tf-pdef-row__cat:before{content:"";background:var(--cat-color);border-radius:50%;width:7px;height:7px}.tf-pdef-row__actions{gap:4px;display:inline-flex}.tf-iconbtn{background:var(--surface-muted);width:32px;height:32px;color:var(--text);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tf-iconbtn.is-danger{color:var(--hub-coral-700)}.tf-sched-row__main p span:not(:last-child):after{content:"·";color:var(--text-subtle);margin-left:6px}.tf-toggle{background:var(--border-strong);cursor:pointer;width:42px;height:26px;transition:background var(--dur-base) var(--ease-out);border:none;border-radius:13px;flex-shrink:0;position:relative}.tf-toggle:after{content:"";width:22px;height:22px;transition:transform var(--dur-base) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000002e}.tf-toggle.is-on{background:var(--hub-success)}.tf-toggle.is-on:after{transform:translate(16px)}.tf-notif-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);flex-direction:column;gap:12px;padding:14px 16px;display:flex}.tf-notif-row{border-top:1px dashed var(--border);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:8px 0;display:grid}.tf-notif-row:first-child{border-top:none;padding-top:2px}.tf-notif-row__main strong{font-family:var(--font-sans);color:var(--text);font-size:14.5px;font-weight:600;display:block}.tf-notif-row__main p{color:var(--text-muted);margin:2px 0 0;font-size:12.5px;line-height:1.4}.tf-notif-row__time{background:var(--surface-muted);border-radius:var(--radius-md);border:1.5px solid var(--border);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:8px 10px;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.tf-notif-preview{background:linear-gradient(135deg, var(--primary) 0%, var(--surface-muted) 100%)}@supports (color:color-mix(in lab, red, red)){.tf-notif-preview{background:linear-gradient(135deg, color-mix(in oklab, var(--primary) 14%, var(--surface-muted)) 0%, var(--surface-muted) 100%)}}.tf-notif-preview{border:1px solid var(--border);border-radius:var(--radius-xl);padding:14px}.tf-notif-preview__head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.tf-notif-preview__head strong{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:700}.tf-notif-preview__title{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);font-weight:700}.tf-notif-preview__body{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0 0;line-height:1.4}.tf-lock__notif-icon{background:var(--primary);width:28px;height:28px;color:var(--on-primary);border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.tf-cat-grid{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.tf-cat-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:18px 1fr auto auto;align-items:center;gap:10px;padding:10px 12px;display:grid;position:relative}.tf-cat-row__swatch{background:var(--cat-color);width:14px;height:14px;box-shadow:0 0 0 2px var(--cat-color);border-radius:4px}@supports (color:color-mix(in lab, red, red)){.tf-cat-row__swatch{box-shadow:0 0 0 2px color-mix(in oklab, var(--cat-color) 18%, transparent)}}.tf-cat-add{border:1.5px dashed var(--primary);background:var(--primary-soft);justify-content:center;align-items:center;gap:6px;width:100%;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.tf-cat-add{background:color-mix(in oklab, var(--primary-soft) 50%, var(--surface))}}.tf-cat-add{color:var(--primary);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:11px;font-weight:600}.tf-cat-add:hover{background:var(--primary-soft)}@supports (color:color-mix(in lab, red, red)){.tf-cat-add:hover{background:color-mix(in oklab, var(--primary-soft) 80%, var(--surface))}}.tf-cat-row__name{font-family:var(--font-display);color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px 0;font-size:14px;font-weight:600;overflow:hidden}.tf-cat-modal-palette{flex-wrap:wrap;gap:10px;display:flex}.tf-cat-modal-palette__swatch{border:2px solid var(--border);cursor:pointer;width:36px;height:36px;transition:transform var(--dur-base) var(--ease-spring), border-color var(--dur-base) var(--ease-out);border-radius:50%}.tf-cat-modal-palette__swatch:hover{border-color:var(--text)}.tf-cat-modal-palette__swatch.is-active{border-color:var(--text);box-shadow:0 0 0 3px var(--text);transform:scale(1.08)}@supports (color:color-mix(in lab, red, red)){.tf-cat-modal-palette__swatch.is-active{box-shadow:0 0 0 3px color-mix(in oklab, var(--text) 12%, transparent)}}.bd-rapport{flex-direction:column;gap:16px;display:flex}.bd-rapport__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.bd-rapport__back{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:6px;font-size:12px;text-decoration:none;display:inline-flex}.bd-rapport__back:hover{color:var(--text)}.bd-rapport__doc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);flex-direction:column;gap:22px;padding:24px 22px 20px;display:flex}.bd-rapport__head h1{font-family:var(--font-display);letter-spacing:-.025em;margin:0 0 4px;font-size:26px;font-weight:700}.bd-rapport__meta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:11px}.bd-rapport__meta span{color:var(--text)}.bd-rapport__hint{border-left:3px solid var(--border);background:var(--surface-muted);color:var(--text-muted);border-radius:0 6px 6px 0;margin:10px 0 0;padding:8px 10px;font-size:12px}.bd-rapport h2{font-family:var(--font-display);letter-spacing:-.015em;border-bottom:1px solid var(--border);margin:0 0 10px;padding-bottom:6px;font-size:16px;font-weight:600}.bd-rapport__kv{grid-template-columns:1fr;gap:8px;margin:0;display:grid}.bd-rapport__kv>div{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:16px;padding:4px 0;display:flex}.bd-rapport__kv>div:last-child{border-bottom:none}.bd-rapport__kv dt{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px}.bd-rapport__kv dd{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--text);text-align:right;margin:0}.bd-rapport__kv dd small{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;font-size:10.5px;font-weight:400}.bd-rapport__lede{color:var(--text);margin:0 0 4px;font-size:13.5px}.bd-rapport__lede strong{color:var(--text)}.bd-rapport__table{border-collapse:collapse;width:100%;font-size:12.5px}.bd-rapport__table th{text-align:left;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:10.5px}.bd-rapport__table td{border-bottom:1px dashed var(--border);color:var(--text);vertical-align:middle;padding:8px}.bd-rapport__table tr:last-child td{border-bottom:none}.bd-rapport__bar{background:var(--surface-muted);border-radius:4px;height:14px;position:relative;overflow:hidden}.bd-rapport__bar span{background:var(--hub-coral-300);border-radius:inherit;height:100%;display:block}.bd-rapport__bar em{font-family:var(--font-mono);color:var(--text);font-size:10.5px;font-style:normal;line-height:14px;position:absolute;top:0;right:6px}.bd-rapport__foot{font-family:var(--font-mono);color:var(--text-subtle);letter-spacing:.04em;border-top:1px solid var(--border);padding-top:10px;font-size:10.5px}@media print{body *{visibility:hidden}.bd-rapport__doc,.bd-rapport__doc *{visibility:visible}.bd-rapport__toolbar,.bd-readonly,.hub-app-nav-bar,.hub-header,.hub-mobile-topbar,.hub-page-nav,.hub-update-banner{display:none!important}.bd-rapport__doc{color:#000;width:100%;box-shadow:none;background:#fff;border:none;border-radius:0;padding:12mm 10mm;position:absolute;top:0;left:0}.bd-rapport h2,.bd-rapport__head h1,.bd-rapport__meta,.bd-rapport__kv dt,.bd-rapport__kv dd,.bd-rapport__lede,.bd-rapport__hint,.bd-rapport__table th,.bd-rapport__table td,.bd-rapport__foot{color:#000!important}.bd-rapport__hint{background:#f5f5f5!important}.bd-rapport__bar{background:#eee!important}.bd-rapport__bar span{background:#999!important}@page{margin:12mm}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.tt-page{flex-direction:column;gap:16px;padding-bottom:96px;display:flex}.tt-page .hub-fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;position:fixed}@media (width<=640px){.tt-page .hub-fab{bottom:calc(16px + var(--mobile-tabbar-safe))}}.tt-page__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.tt-page__head h2{font-size:var(--text-xl);margin:0;font-weight:700}.tt-page__head small{color:var(--text-muted)}.tt-list{flex-direction:column;gap:12px;display:flex}.tt-row{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:14px;display:flex}.tt-row__head{align-items:center;gap:12px;display:flex}.tt-row__title{flex-direction:column;flex:1;min-width:0;display:flex}.tt-row__title strong{font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tt-row__title small{color:var(--text-muted);font-size:var(--text-sm)}.tt-row__meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.tt-row__watcher{align-items:center;gap:8px;display:inline-flex}.tt-row__watcher-empty,.tt-row__tracking{color:var(--text-muted);font-size:var(--text-sm)}.tt-row__raw{font-size:var(--text-sm);color:var(--text-muted);background:var(--bg-subtle,transparent);border-left:2px solid var(--border);border-radius:var(--radius-sm);margin:0;padding:6px 10px}.tt-row__foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tt-row__foot>button:last-child{margin-left:auto}.tt-sheet{flex-direction:column;gap:14px;display:flex}.tt-sheet__error{color:var(--text-danger,#b91c1c);font-size:var(--text-sm);margin:0}.tt-sheet__foot{justify-content:flex-end;gap:8px;display:flex}.tt-row__badges{align-items:center;gap:6px;display:inline-flex}.tt-row__auto{font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase}[data-poi=ratp_station]{--poi-accent:var(--hub-sky-500)}[data-poi=address]{--poi-accent:var(--hub-coral-500)}[data-poi=supermarket]{--poi-accent:var(--hub-lime-700)}[data-poi=todo_poi]{--poi-accent:var(--hub-violet-500)}.hub-page__head{flex-direction:column;gap:4px;display:flex}.hub-page__title{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.1}.hub-page__hint{font-size:var(--text-sm);color:var(--text-subtle);margin:0;line-height:1.5}.geoloc-banner{border-radius:var(--radius-lg);border:1px solid var(--banner-color,var(--border));background:var(--banner-color,var(--primary));align-items:flex-start;gap:12px;padding:14px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.geoloc-banner{background:color-mix(in oklab, var(--banner-color,var(--primary)) 10%, var(--surface))}}.geoloc-banner--success{--banner-color:var(--hub-success)}.geoloc-banner--warning{--banner-color:var(--hub-warning)}.geoloc-banner--info{--banner-color:var(--hub-info)}.geoloc-banner__icon{border-radius:var(--radius-full);background:var(--banner-color);flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}@supports (color:color-mix(in lab, red, red)){.geoloc-banner__icon{background:color-mix(in oklab, var(--banner-color) 20%, var(--surface))}}.geoloc-banner__icon{color:var(--banner-color)}@supports (color:color-mix(in lab, red, red)){.geoloc-banner__icon{color:color-mix(in oklab, var(--banner-color) 75%, var(--text))}}.geoloc-banner__body{flex-direction:column;gap:2px;min-width:0;display:flex}.geoloc-banner__title{font-weight:600;font-size:var(--text-sm);color:var(--text)}.geoloc-banner__hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.5}.geoloc-section{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:12px;padding:16px;display:flex}.geoloc-section__head{align-items:center;gap:12px;display:flex}.geoloc-section__icon{border-radius:var(--radius-md);background:var(--poi-accent);flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}@supports (color:color-mix(in lab, red, red)){.geoloc-section__icon{background:color-mix(in oklab, var(--poi-accent) 16%, var(--surface))}}.geoloc-section__icon{color:var(--poi-accent)}.geoloc-section__heading{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.geoloc-section__title{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em;margin:0;font-weight:600}.geoloc-section__tagline{font-size:var(--text-xs);color:var(--text-subtle);margin:0}.geoloc-empty{text-align:center;border-radius:var(--radius-md);border:1px dashed var(--poi-accent);flex-direction:column;align-items:center;gap:8px;padding:24px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.geoloc-empty{border:1px dashed color-mix(in oklab, var(--poi-accent) 35%, var(--border))}}.geoloc-empty{background:var(--poi-accent)}@supports (color:color-mix(in lab, red, red)){.geoloc-empty{background:color-mix(in oklab, var(--poi-accent) 5%, var(--surface))}}.geoloc-empty__icon{border-radius:var(--radius-full);background:var(--poi-accent);place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab, red, red)){.geoloc-empty__icon{background:color-mix(in oklab, var(--poi-accent) 14%, var(--surface))}}.geoloc-empty__icon{color:var(--poi-accent)}.geoloc-empty__title{font-weight:600;font-size:var(--text-sm);color:var(--text)}.geoloc-empty__hint{font-size:var(--text-xs);color:var(--text-muted);max-width:42ch;margin:0;line-height:1.5}.geoloc-rule-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.geoloc-rule{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;padding:8px;display:flex}.geoloc-rule--off{opacity:.62}.geoloc-rule__body{text-align:left;border-radius:var(--radius-sm);cursor:pointer;min-width:0;color:inherit;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:2px 4px;display:flex}.geoloc-rule__body:hover{background:var(--surface-muted)}.geoloc-rule__title{font-weight:600;font-size:var(--text-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.geoloc-rule__meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle)}.geoloc-rule__fired{font-size:var(--text-xs);color:var(--poi-accent);font-weight:500}@supports (color:color-mix(in lab, red, red)){.geoloc-rule__fired{color:color-mix(in oklab, var(--poi-accent) 62%, var(--text))}}.geoloc-rule__actions{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.geoloc-switch{cursor:pointer;align-items:center;margin-right:4px;display:inline-flex;position:relative}.geoloc-switch input{opacity:0;width:0;height:0;position:absolute}.geoloc-switch__track{border-radius:var(--radius-full);background:var(--hub-ink-300);align-items:center;width:38px;height:22px;padding:2px;transition:background .18s;display:inline-flex}[data-theme=dark] .geoloc-switch__track{background:var(--hub-ink-600)}.geoloc-switch__thumb{border-radius:var(--radius-full);width:18px;height:18px;box-shadow:var(--shadow-xs);background:#fff;transition:transform .18s}.geoloc-switch input:checked+.geoloc-switch__track{background:var(--hub-success)}.geoloc-switch input:checked+.geoloc-switch__track .geoloc-switch__thumb{transform:translate(16px)}.geoloc-switch input:focus-visible+.geoloc-switch__track{outline:2px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.geoloc-switch input:focus-visible+.geoloc-switch__track{outline:2px solid color-mix(in oklab, var(--primary) 60%, transparent)}}.geoloc-switch input:focus-visible+.geoloc-switch__track{outline-offset:2px}.geoloc-icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;place-items:center;transition:background .15s,color .15s;display:grid}.geoloc-icon-btn:hover:not(:disabled){background:var(--surface-muted);color:var(--text)}.geoloc-icon-btn--danger:hover:not(:disabled){background:var(--hub-danger)}@supports (color:color-mix(in lab, red, red)){.geoloc-icon-btn--danger:hover:not(:disabled){background:color-mix(in oklab, var(--hub-danger) 14%, var(--surface))}}.geoloc-icon-btn--danger:hover:not(:disabled){color:var(--hub-danger)}.geoloc-icon-btn:disabled{opacity:.4;cursor:not-allowed}.geoloc-mini-map{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-muted);color:var(--poi-accent);flex-shrink:0;position:relative;overflow:hidden}.geoloc-mini-map__tile{-webkit-user-select:none;user-select:none;pointer-events:none;width:256px;max-width:none;height:256px;position:absolute}.geoloc-mini-map__ring{border-radius:var(--radius-full);background:currentColor;border:2px solid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@supports (color:color-mix(in lab, red, red)){.geoloc-mini-map__ring{background:color-mix(in oklab, currentColor 18%, transparent)}}.geoloc-mini-map__dot{border-radius:var(--radius-full);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);background:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.geoloc-station{position:relative}.geoloc-station__input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text-subtle);align-items:center;gap:8px;padding:0 10px;display:flex}.geoloc-station__input:focus-within{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.geoloc-station__input:focus-within{border-color:color-mix(in oklab, var(--primary) 45%, var(--border))}}.geoloc-station__input input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1}.geoloc-station__clear{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;place-items:center;padding:2px;display:grid}.geoloc-station__clear:hover{color:var(--text)}.geoloc-station__list{z-index:20;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);max-height:260px;box-shadow:var(--shadow-md);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.geoloc-station__item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;flex-direction:column;gap:1px;padding:8px 10px;display:flex}.geoloc-station__item:hover{background:var(--surface-muted)}.geoloc-station__name{font-weight:600;font-size:var(--text-sm);color:var(--text)}.geoloc-station__tag{font-size:var(--text-xs);color:var(--text-subtle)}.geoloc-station__empty{font-size:var(--text-sm);color:var(--text-subtle);padding:10px 12px}.hub-contact-picker{flex-direction:column;gap:10px;display:flex}.hub-contact-picker__input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text-subtle);align-items:center;gap:8px;padding:0 10px;display:flex}.hub-contact-picker__input:focus-within{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-contact-picker__input:focus-within{border-color:color-mix(in oklab, var(--primary) 45%, var(--border))}}.hub-contact-picker__input input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1}.hub-contact-picker__spinner{color:var(--text-subtle);animation:.8s linear infinite hub-spin}.hub-contact-picker__clear{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;place-items:center;padding:2px;display:grid}.hub-contact-picker__clear:hover{color:var(--text)}.hub-contact-picker__list{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);max-height:320px;margin:0;padding:4px;list-style:none;overflow-y:auto}.hub-contact-picker__item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.hub-contact-picker__item:hover{background:var(--surface-muted)}.hub-contact-picker__name{font-weight:600;font-size:var(--text-sm);color:var(--text)}.hub-contact-picker__address{font-size:var(--text-xs);color:var(--text-subtle);align-items:center;gap:4px;display:flex}.hub-contact-picker__gate{text-align:center;color:var(--text-subtle);flex-direction:column;align-items:center;gap:12px;padding:20px 12px;display:flex}.hub-contact-picker__notice{font-size:var(--text-sm);color:var(--text-subtle);margin:0}.hub-contact-picker__error{font-size:var(--text-sm);color:var(--danger,#dd5050)}.hub-map-picker{flex-direction:column;gap:8px;display:flex}.hub-map-picker__shell{border-radius:var(--radius-md);position:relative;overflow:hidden}.hub-map-picker__autocomplete{position:relative}.hub-map-picker__autocomplete-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text-subtle);align-items:center;gap:8px;padding:0 10px;display:flex}.hub-map-picker__autocomplete-input:focus-within{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-map-picker__autocomplete-input:focus-within{border-color:color-mix(in oklab, var(--primary) 45%, var(--border))}}.hub-map-picker__autocomplete-input input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1}.hub-map-picker__autocomplete-clear{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;place-items:center;padding:2px;display:grid}.hub-map-picker__autocomplete-clear:hover{color:var(--text)}.hub-map-picker__spinner{color:var(--text-subtle);animation:.8s linear infinite hub-spin}.hub-map-picker__autocomplete-list{z-index:20;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);max-height:240px;box-shadow:var(--shadow-md);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.hub-map-picker__autocomplete-item{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--text);align-items:center;gap:8px;padding:8px 10px;display:flex}.hub-map-picker__autocomplete-item svg{color:var(--text-subtle);flex-shrink:0}.hub-map-picker__autocomplete-item--active,.hub-map-picker__autocomplete-item:hover{background:var(--surface-muted)}.hub-map-picker__hint{font-size:var(--text-xs);color:var(--text-subtle);margin:0;line-height:1.5}.hub-map-picker__error{font-size:var(--text-xs);color:var(--hub-danger)}.hub-map-picker__radius{z-index:5;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}@supports (color:color-mix(in lab, red, red)){.hub-map-picker__radius{background:color-mix(in oklab, var(--surface) 86%, transparent)}}.hub-map-picker__radius{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-sm)}.hub-map-picker__radius input[type=range]{min-width:0;accent-color:var(--primary);cursor:pointer;flex:1}.hub-map-picker__radius-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.hub-map-picker__radius-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);text-align:right;min-width:48px;font-weight:600}.hub-form{flex-direction:column;gap:14px;display:flex}.hub-form__field{flex-direction:column;gap:6px;min-width:0;display:flex}.hub-form__field>span{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.hub-form__field input,.hub-form__field select{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text);font:inherit;outline:none;padding:0 12px}.hub-form__field select{cursor:pointer}.hub-form__field input:focus-visible,.hub-form__field select:focus-visible{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-form__field input:focus-visible,.hub-form__field select:focus-visible{border-color:color-mix(in oklab, var(--primary) 50%, var(--border))}}.hub-form__field input:focus-visible,.hub-form__field select:focus-visible{box-shadow:0 0 0 3px var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-form__field input:focus-visible,.hub-form__field select:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab, var(--primary) 18%, transparent)}}.hub-form__row{gap:12px;display:flex}.hub-form__row>.hub-form__field{flex:1}.hub-form__coords{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle)}.hub-form__static{border-radius:var(--radius-md);background:var(--surface-muted);height:42px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);align-items:center;padding:0 12px;display:flex}.hub-form__error{border-radius:var(--radius-md);background:var(--hub-danger);padding:10px 12px}@supports (color:color-mix(in lab, red, red)){.hub-form__error{background:color-mix(in oklab, var(--hub-danger) 12%, var(--surface))}}.hub-form__error{border:1px solid var(--hub-danger)}@supports (color:color-mix(in lab, red, red)){.hub-form__error{border:1px solid color-mix(in oklab, var(--hub-danger) 30%, transparent)}}.hub-form__error{color:var(--hub-danger);font-size:var(--text-sm)}.hub-form__actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.pc-page{flex-direction:column;gap:16px;padding-bottom:96px;display:flex}.pc-page__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.pc-page__head h2{font-size:var(--text-xl);margin:0;font-weight:700}.pc-page__head small{color:var(--text-muted)}.pc-list{flex-direction:column;gap:16px;display:flex}.pc-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.pc-card__hero{aspect-ratio:16/9;background-position:50%;background-size:cover;position:relative}.pc-card__hero[data-placeholder]{background-image:linear-gradient(135deg, var(--hub-coral-300,#ef9a8a), var(--hub-violet-300,#b59be0))}.pc-card__overlay{background:linear-gradient(#0000,#0d0d141a 40%,#0d0d14c7);flex-direction:column;justify-content:flex-end;gap:8px;padding:14px;display:flex;position:absolute;inset:0}.pc-card__title{color:#fff;font-size:var(--text-lg);text-shadow:0 1px 3px #00000080;margin:0;font-weight:700;line-height:1.2}.pc-card__body{flex-direction:column;gap:10px;padding:14px;display:flex}.pc-card__meta{color:var(--text-muted);font-size:var(--text-sm);align-items:center;gap:8px;margin:0;display:flex}.pc-card__actions{gap:6px;margin-top:4px;display:flex}.pc-card__actions>button{white-space:normal;text-align:center;flex:1;min-width:0;padding-inline:8px;line-height:1.15}.pc-card__offline{font-size:var(--text-sm);color:var(--text-muted);margin:0}.pc-agenda{flex-direction:column;gap:12px;display:flex}.pc-agenda__row{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.pc-prog__card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px}.pc-prog__body{align-items:flex-start;gap:12px;margin-top:10px;display:flex}.pc-prog__meta{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pc-agenda__title{font-size:var(--text-md);margin:0 0 2px;font-weight:600}.pc-agenda__meta{color:var(--text-muted);font-size:var(--text-sm);margin:0}.pc-agenda__synced{color:var(--hub-lime-700,#4d7c0f);align-items:center;gap:6px;margin-top:2px;font-weight:600;display:inline-flex}.pc-prog__votes{flex-wrap:wrap;gap:6px 14px;margin:8px 0 2px;display:flex}.pc-prog__vote{align-items:center;gap:6px;display:inline-flex}.pc-prog__voter{color:var(--text-muted);font-size:var(--text-sm)}.pc-prog__actions{margin-top:12px}.pc-prog__actions>button{white-space:nowrap}.pc-prog__offline{margin-top:6px}.pc-prog__thumb{aspect-ratio:1;border-radius:var(--radius-md);background-color:var(--surface-muted);background-position:50%;background-size:cover;flex:0 0 40%;max-width:180px}.pc-prog__thumb[data-placeholder]{background-image:linear-gradient(135deg, var(--hub-coral-300,#ef9a8a), var(--hub-violet-300,#b59be0))}.pc-prog__status-row{margin-bottom:6px}.pc-prog__status{white-space:nowrap}.pc-section__title{font-size:var(--text-md);margin:0 0 6px;font-weight:600}.pc-section__hint{color:var(--text-muted);font-size:var(--text-sm);margin:0}.pc-progress{border-radius:var(--radius-full);background:var(--border);height:8px;margin:8px 0 4px;overflow:hidden}.pc-progress__bar{border-radius:var(--radius-full);background:var(--hub-coral-300,#ef9a8a);height:100%;transition:width .3s}.pc-card__hero-link{color:inherit;text-decoration:none;display:block}.pc-card__hero-link:focus-visible{outline:2px solid var(--hub-coral-300,#ef9a8a);outline-offset:2px}.pc-card__hero-cta{border-radius:var(--radius-full);color:#1a1a22;font-size:var(--text-xs);background:#ffffffeb;align-self:flex-start;align-items:center;gap:4px;padding:3px 8px;font-weight:600;display:inline-flex}.pc-card__desc{color:var(--text-secondary,var(--text-muted));font-size:var(--text-sm);-webkit-line-clamp:10;line-clamp:10;-webkit-box-orient:vertical;margin:0;line-height:1.4;display:-webkit-box;overflow:hidden}.pc-card__source{font-size:var(--text-sm);color:var(--hub-coral-500,#d2654f);align-items:center;gap:6px;width:fit-content;font-weight:600;text-decoration:none;display:inline-flex}.pc-card__source:hover{text-decoration:underline}.pc-card--focus{outline:2px solid var(--hub-coral-300,#ef9a8a);outline-offset:2px}.pc-locbar{border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-sm);align-items:center;gap:8px;margin:0;padding:8px 12px;display:flex}.pc-locbar strong{color:var(--text-primary,inherit)}.pc-loc-form{flex-direction:column;gap:12px;margin-top:8px;display:flex}.pc-loc-form__dates{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pc-loc-form__actions{justify-content:flex-end;gap:8px;display:flex}.pc-section__title{align-items:center;gap:6px;display:flex}:root{--confix-accent:var(--hub-violet-500)}.confix-input{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font:inherit;background:var(--bg-elevated);color:inherit;resize:vertical;padding:10px 12px}.confix-input:focus-visible{outline:2px solid var(--confix-accent);outline-offset:1px}.confix-chip{border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);min-height:44px;color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.confix-chip.is-active{border-color:var(--confix-accent);color:var(--text);background:var(--confix-accent)}@supports (color:color-mix(in lab, red, red)){.confix-chip.is-active{background:color-mix(in oklch, var(--confix-accent) 14%, transparent)}}.confix-banner{border:1px solid var(--border);border-left:3px solid var(--confix-accent);border-radius:var(--radius-md);background:var(--surface);color:var(--text-muted);font-size:var(--text-sm);padding:10px 12px}.confix-section-title{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0 2px;font-weight:700}.confix-back{font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:6px;width:fit-content;display:inline-flex}.confix-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:12px;padding:12px 14px;display:flex}.confix-card__main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.confix-card__title{font-weight:600}.confix-card__meta{font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.confix-card__cat{border-radius:var(--radius-full);background:var(--surface-muted);color:var(--text);padding:1px 8px}.confix-card__side{flex-shrink:0}.confix-badge{border-radius:var(--radius-full);font-size:var(--text-xs);align-items:center;gap:5px;padding:4px 10px;font-weight:600;display:inline-flex}.confix-badge--resolved{background:var(--hub-lime-500,#8bc34a)}@supports (color:color-mix(in lab, red, red)){.confix-badge--resolved{background:color-mix(in oklch, var(--hub-lime-500,#8bc34a) 18%, transparent)}}.confix-badge--resolved{color:var(--text)}.confix-badge--pending{background:var(--surface-muted);color:var(--text-muted)}.confix-reminders{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface);padding:10px 12px}.confix-reminders__head{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-weight:700;display:flex}.confix-reminders ul{font-size:var(--text-sm);flex-direction:column;gap:3px;margin:0;padding-left:18px;display:flex}.confix-thread__head{flex-direction:column;gap:6px;display:flex}.confix-thread__title{font-size:1.25rem;font-weight:700;line-height:1.2}.confix-resolve{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--text-sm);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.confix-entry{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:10px 12px}.confix-entry--own{border-left:3px solid var(--confix-accent)}.confix-entry__head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.confix-entry__who{font-size:var(--text-xs);font-weight:700}.confix-entry__kind{font-size:var(--text-xs);color:var(--text-muted);border-radius:var(--radius-full);background:var(--surface-muted);padding:1px 8px}.confix-entry__kind--misstep{background:var(--hub-coral-500)}@supports (color:color-mix(in lab, red, red)){.confix-entry__kind--misstep{background:color-mix(in oklch, var(--hub-coral-500) 16%, transparent)}}.confix-entry__kind--misstep{color:var(--hub-coral-700)}.confix-entry__kind--appreciation{background:var(--hub-sky-500)}@supports (color:color-mix(in lab, red, red)){.confix-entry__kind--appreciation{background:color-mix(in oklch, var(--hub-sky-500) 18%, transparent)}}.confix-entry__kind--appreciation{color:var(--hub-sky-700)}.confix-entry__kind--trigger{background:var(--hub-violet-500)}@supports (color:color-mix(in lab, red, red)){.confix-entry__kind--trigger{background:color-mix(in oklch, var(--hub-violet-500) 18%, transparent)}}.confix-entry__kind--trigger{color:var(--hub-violet-700)}.confix-entry__time{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.confix-entry__del{color:var(--text-muted);cursor:pointer;display:inline-flex}.confix-entry__body{white-space:pre-wrap;font-size:var(--text-sm);margin:0;line-height:1.45}.confix-composer{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.confix-composer__kinds{flex-wrap:wrap;gap:6px;display:flex}.confix-disclosure{font-size:var(--text-sm);color:var(--text);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;font-weight:600;display:inline-flex}.confix-disclosure__chev{color:var(--text-muted);transition:transform .15s}.confix-disclosure__chev.is-open{transform:rotate(180deg)}.confix-action{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.confix-action__toggle{color:var(--confix-accent);cursor:pointer;flex-shrink:0;margin-top:1px;display:inline-flex}.confix-action__toggle:disabled{color:var(--text-muted);cursor:default}.confix-action__main{flex-direction:column;gap:2px;min-width:0;display:flex}.confix-action__text{font-size:var(--text-sm)}.confix-action__text.is-applied{color:var(--text-muted);text-decoration:line-through}.confix-action__ctx{font-size:var(--text-xs);color:var(--text-muted)}.confix-add-action{flex-direction:column;gap:8px;display:flex}.confix-add-action__row{align-items:center;gap:8px;display:flex}.confix-add-action__row .confix-input{flex:1}.confix-trend{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.confix-trend__head{align-items:center;gap:8px;display:flex}.confix-trend__cat{font-weight:600}.confix-trend__count{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.confix-trend__stats{gap:10px;display:flex}.confix-stat{border-radius:var(--radius-md);background:var(--surface-muted);flex-direction:column;flex:1;gap:2px;padding:8px 12px;display:flex}.confix-stat__value{font-size:1.05rem;font-weight:700}.confix-stat__label{font-size:var(--text-xs);color:var(--text-muted)}.confix-trend__action{font-size:var(--text-sm);flex-direction:column;gap:2px;display:flex}.confix-trend__action-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:700}.confix-chip__count{color:var(--text-muted);margin-left:4px}.confix-banner--nudge{border-left-color:var(--hub-coral-500);color:var(--text);font-weight:600;text-decoration:none;display:block}.confix-reminders__list{font-size:var(--text-sm);flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.confix-reminders__list li{align-items:center;gap:8px;display:flex}.confix-reminders__list li>span{flex:1;min-width:0}.confix-reminders__carry{font-size:var(--text-xs);color:var(--confix-accent);cursor:pointer;flex-shrink:0;align-items:center;gap:4px;font-weight:600;display:inline-flex}.confix-reminders__judge{border-top:1px dashed var(--border-strong);flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;display:flex}.confix-reminders__judge-q{font-size:var(--text-sm);font-weight:600}.confix-reminders__judge-btns{flex-wrap:wrap;gap:6px;display:flex}.confix-action__sub{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.confix-action__owner{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--surface-muted);color:var(--text-muted);align-self:flex-start;padding:1px 8px;font-weight:600}.confix-action__owner--mine{background:var(--hub-violet-500)}@supports (color:color-mix(in lab, red, red)){.confix-action__owner--mine{background:color-mix(in oklch, var(--hub-violet-500) 16%, transparent)}}.confix-action__owner--mine{color:var(--hub-violet-700)}.confix-action__owner--theirs{background:var(--hub-sky-500)}@supports (color:color-mix(in lab, red, red)){.confix-action__owner--theirs{background:color-mix(in oklch, var(--hub-sky-500) 18%, transparent)}}.confix-action__owner--theirs{color:var(--hub-sky-700)}.confix-owner-select{flex-wrap:wrap;gap:6px;display:flex}.confix-verdict{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--surface-muted);color:var(--text-muted);align-self:flex-start;align-items:center;gap:6px;padding:2px 10px;font-weight:700;display:inline-flex}.confix-verdict--worked{background:var(--hub-lime-500)}@supports (color:color-mix(in lab, red, red)){.confix-verdict--worked{background:color-mix(in oklch, var(--hub-lime-500) 20%, transparent)}}.confix-verdict--worked{color:var(--hub-lime-700)}.confix-verdict--evolve{background:var(--hub-coral-500)}@supports (color:color-mix(in lab, red, red)){.confix-verdict--evolve{background:color-mix(in oklch, var(--hub-coral-500) 18%, transparent)}}.confix-verdict--evolve{color:var(--hub-coral-700)}.confix-verdict-ask{flex-direction:column;gap:6px;display:flex}.confix-verdict-ask__q{font-size:var(--text-sm);font-weight:600}.confix-verdict-ask__btns{flex-wrap:wrap;gap:6px;display:flex}.confix-review{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.confix-review__head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.confix-review__title{color:var(--text);font-weight:600;text-decoration:none}.confix-review__quiet{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:4px;margin-left:auto;display:inline-flex}.confix-review__actions{font-size:var(--text-sm);flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.confix-review__actions li{align-items:center;gap:8px;display:flex}.confix-review__actions li>span:first-child{flex:1;min-width:0}.confix-review__cta{flex-wrap:wrap;gap:6px;display:flex}.confix-cat-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.confix-cat-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:8px;padding:6px 10px;display:flex}.confix-cat-row--archived{opacity:.7}.confix-cat__handle{color:var(--text-muted);cursor:grab;touch-action:none;flex-shrink:0;display:inline-flex}.confix-cat__name{min-width:0;font-size:var(--text-sm);color:var(--text);background:0 0;border:none;flex:1;padding:4px 0}.confix-cat__name:focus-visible{border-bottom:1px solid var(--confix-accent);outline:none}.confix-cat__count{text-align:center;min-width:22px;font-size:var(--text-xs);color:var(--text-muted);background:var(--surface-muted);border-radius:var(--radius-full);flex-shrink:0;padding:1px 6px;font-weight:600}.confix-cat__icon{color:var(--text-muted);cursor:pointer;flex-shrink:0;display:inline-flex}.confix-cat__icon.is-danger{color:var(--hub-danger)}.hub-switch{border-radius:var(--radius-full);background:var(--hub-ink-300);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;flex-shrink:0;width:44px;height:26px;padding:0;transition:background .18s;position:relative}[data-theme=dark] .hub-switch{background:var(--hub-ink-600)}.hub-switch__thumb{border-radius:var(--radius-full);width:20px;height:20px;box-shadow:var(--shadow-xs);background:#fff;transition:transform .18s;position:absolute;top:3px;left:3px}.hub-switch.is-on{background:var(--hub-success)}.hub-switch.is-on .hub-switch__thumb{transform:translate(18px)}.hub-switch:focus-visible{outline:2px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-switch:focus-visible{outline:2px solid color-mix(in oklab, var(--primary) 60%, transparent)}}.hub-switch:focus-visible{outline-offset:2px}.hub-switch:disabled{opacity:.45;cursor:not-allowed}.hub-switch--sm{width:36px;height:21px}.hub-switch--sm .hub-switch__thumb{width:16px;height:16px;top:2.5px;left:2.5px}.hub-switch--sm.is-on .hub-switch__thumb{transform:translate(15px)}.hub-intg-hero{margin-bottom:18px}.hub-intg-hero__eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:8px;font-size:11px;font-weight:600;display:inline-block}.hub-intg-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px;display:grid}.hub-intg-summary__stat{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;display:flex}.hub-intg-summary__num{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text);font-weight:700;line-height:1}.hub-intg-summary__num.is-accent{color:var(--primary)}.hub-intg-summary__lbl{color:var(--text-muted);font-size:12px}.hub-intg-sect{justify-content:space-between;align-items:baseline;margin:18px 0 10px;display:flex}.hub-intg-sect__label{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-subtle);font-size:11px;font-weight:600}.hub-intg-sect__count{font-family:var(--font-mono);color:var(--text-subtle);font-size:11px}.hub-intg-list{flex-direction:column;gap:10px;display:flex}.hub-intg-row{text-align:left;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);cursor:pointer;align-items:center;gap:14px;width:100%;padding:14px;transition:border-color .16s,box-shadow .16s,transform 60ms;display:flex}.hub-intg-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.hub-intg-row:active{transform:scale(.995)}.hub-intg-row.is-on{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-intg-row.is-on{border-color:color-mix(in oklab, var(--primary) 45%, var(--border))}}.hub-intg-row.is-attention{border-color:var(--hub-warning)}@supports (color:color-mix(in lab, red, red)){.hub-intg-row.is-attention{border-color:color-mix(in oklab, var(--hub-warning) 55%, var(--border))}}.hub-intg-row__icon{border-radius:var(--radius-md);width:46px;height:46px;color:var(--on-primary);flex-shrink:0;place-items:center;display:grid}.hub-intg-row__main{flex:auto;min-width:0}.hub-intg-row__name{font-family:var(--font-display);font-size:var(--text-base);color:var(--text);align-items:center;gap:8px;font-weight:650;display:flex}.hub-intg-row__handle{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-subtle);font-size:10px;font-weight:500}.hub-intg-row__what{font-size:var(--text-sm);color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 0;line-height:1.4;display:-webkit-box;overflow:hidden}.hub-intg-row__apps{align-items:center;gap:8px;margin-top:8px;display:flex}.hub-intg-pips{display:inline-flex}.hub-intg-pips .hub-intg-pip:not(:first-child){margin-left:-7px}.hub-intg-pip{border-radius:var(--radius-full);width:22px;height:22px;color:var(--on-primary);box-shadow:0 0 0 2px var(--surface);place-items:center;display:grid}.hub-intg-row__appcount{color:var(--text-subtle);font-size:11px}.hub-intg-row__ctrl{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.hub-intg-back{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:8px;padding:6px 10px 6px 6px;font-size:14px;font-weight:500;display:inline-flex}.hub-intg-back:hover{background:var(--surface-muted);color:var(--text)}.hub-intg-detailhero{align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.hub-intg-detailhero__icon{border-radius:var(--radius-lg);width:60px;height:60px;color:var(--on-primary);flex-shrink:0;place-items:center;display:grid}.hub-intg-detailhero__head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hub-intg-detailhero__name{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.01em;color:var(--text);font-weight:700}.hub-intg-detailhero__what{color:var(--text-muted);margin:6px 0 0;font-size:14px;line-height:1.5}.hub-intg-master{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);margin-bottom:6px;padding:16px}.hub-intg-master.is-on{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hub-intg-master.is-on{border-color:color-mix(in oklab, var(--primary) 45%, var(--border))}}.hub-intg-master__top{align-items:center;gap:12px;display:flex}.hub-intg-master__top-txt{flex:auto;min-width:0}.hub-intg-master__top-title{font-weight:650;font-size:var(--text-base);color:var(--text)}.hub-intg-master__top-sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.hub-intg-master__meta{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;padding-top:14px;display:grid}.hub-intg-master__meta-lbl{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-subtle);font-size:10px}.hub-intg-master__meta-val{font-size:var(--text-sm);color:var(--text);word-break:break-word;align-items:center;gap:5px;margin-top:3px;font-weight:500;display:flex}.hub-intg-appcard{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);overflow:hidden}.hub-intg-appcard.is-muted{opacity:.55}.hub-intg-approw{align-items:center;gap:12px;padding:12px 14px;display:flex}.hub-intg-approw:not(:last-child){border-bottom:1px solid var(--border)}.hub-intg-approw__icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--on-primary);flex-shrink:0;place-items:center;display:grid}.hub-intg-approw__main{flex:auto;min-width:0}.hub-intg-approw__name{color:var(--text);font-size:14px;font-weight:600}.hub-intg-approw__use{color:var(--text-muted);margin-top:1px;font-size:12.5px;line-height:1.4}.hub-intg-scopes{flex-direction:column;gap:8px;display:flex}.hub-intg-scope{border-radius:var(--radius-md);background:var(--surface-muted);align-items:center;gap:12px;padding:12px 14px;display:flex}.hub-intg-scope__ico{border-radius:var(--radius-sm);background:var(--surface);width:30px;height:30px;color:var(--text-muted);flex-shrink:0;place-items:center;display:grid}.hub-intg-scope__txt{min-width:0;color:var(--text);flex:auto;font-size:13.5px;font-weight:600}.hub-intg-scope__txt span{color:var(--text-muted);margin-top:1px;font-size:12px;font-weight:400;display:block}.hub-intg-scope__check{color:var(--hub-success);flex-shrink:0;place-items:center;display:grid}.hub-intg-foot{margin-top:22px}.hub-intg-row__icon.is-brand,.hub-intg-detailhero__icon.is-brand{border:1px solid var(--border);box-shadow:var(--shadow-xs);background:#fff}.hub-admin-stack{flex-direction:column;gap:16px;display:flex}.hub-admin-card__head{align-items:center;gap:12px;display:flex}.hub-admin-card__title{font-size:.95rem;font-weight:650;line-height:1.2}.hub-admin-card__sub{color:var(--hub-ink-500);align-items:center;gap:6px;margin-top:2px;font-size:.74rem;display:flex}.hub-admin-card__grid{grid-template-columns:1fr 1fr;align-items:start;gap:12px;display:grid}@media (width<=560px){.hub-admin-card__grid{grid-template-columns:1fr}}.hub-admin-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hub-admin-divider{border-top:1px solid var(--border);padding-top:12px}.hub-admin-swatch{border:1px solid var(--border);background:var(--surface);cursor:pointer;height:38px;font-size:.8rem;font-family:var(--font-mono,ui-monospace, monospace);color:var(--hub-ink-600);border-radius:10px;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.hub-admin-swatch__chip{border:1px solid #00000014;border-radius:6px;flex-shrink:0;width:20px;height:20px}.hub-admin-color-pop{z-index:40;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg,0 12px 32px #0000002e);border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.hub-admin-color-pop .react-colorful{width:200px;height:160px}.hub-admin-color-pop__hex{border:1px solid var(--border);background:var(--surface);width:100%;height:34px;font-family:var(--font-mono,ui-monospace, monospace);color:inherit;border-radius:8px;padding:0 10px;font-size:.8rem}.hub-admin-grant{justify-content:space-between;align-items:center;gap:12px;display:flex}.hub-admin-grant__who{font-size:.85rem;font-weight:550}.hub-admin-table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow-x:auto}.hub-admin-table{border-collapse:collapse;width:100%;font-size:.75rem}.hub-admin-table th{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--hub-ink-500);background:var(--surface);padding:8px 10px;font-weight:600;position:sticky;top:0}.hub-admin-table td{border-bottom:1px solid var(--hub-ink-100);text-overflow:ellipsis;white-space:nowrap;max-width:280px;padding:6px 10px;overflow:hidden}.hub-admin-table tbody tr:nth-child(2n) td{background:var(--hub-ink-100)}@supports (color:color-mix(in lab, red, red)){.hub-admin-table tbody tr:nth-child(2n) td{background:color-mix(in oklab, var(--hub-ink-100) 30%, transparent)}}.hub-admin-table td.is-null{color:var(--hub-ink-300);font-style:italic}.hub-admin-error{font-size:.74rem;font-family:var(--font-mono,ui-monospace, monospace);color:var(--hub-danger-fg,#c62828);word-break:break-all;margin-top:6px}.hub-admin-meta{color:var(--hub-ink-400);margin-top:4px;font-size:.7rem}.tudum-focus{border-radius:var(--radius-2xl);background:linear-gradient(160deg, var(--hub-coral-500), var(--hub-coral-600));color:var(--hub-ink-950);box-shadow:var(--shadow-md);cursor:pointer;text-align:left;border:none;width:100%;padding:20px;display:block;position:relative;overflow:hidden}[data-theme=dark] .tudum-focus{background:linear-gradient(160deg, var(--hub-coral-400), var(--hub-coral-600))}.tudum-focus:after{content:"";background:oklch(100% 0 0/.16);border-radius:50%;width:170px;height:170px;position:absolute;top:-50px;right:-50px}.tudum-focus>*{z-index:1;position:relative}.tudum-focus__eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;opacity:.78;align-items:center;gap:7px;font-size:10px;font-weight:700;display:flex}.tudum-focus__eyebrow svg{flex-shrink:0;width:14px;height:14px}.tudum-focus__title{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:10px 0 14px;font-size:24px;font-weight:700;line-height:1.08}.tudum-focus__meta{font-size:var(--text-xs);opacity:.9;align-items:center;gap:8px;margin-bottom:14px;font-weight:600;display:flex}.tudum-focus__chip{border-radius:var(--radius-full);white-space:nowrap;background:oklch(100% 0 0/.22);align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.tudum-focus__chip svg{flex-shrink:0;width:12px;height:12px}.tudum-focus__steps{flex-direction:column;gap:9px;margin-bottom:16px;display:flex}.tudum-focus__step{font-size:var(--text-sm);align-items:center;gap:10px;font-weight:500;display:flex}.tudum-focus__box{border:2px solid oklch(20% .02 280/.45);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:19px;height:19px;display:inline-flex}.tudum-focus__box svg{width:12px;height:12px}.tudum-focus__step.is-done .tudum-focus__box{background:var(--hub-ink-950);border-color:var(--hub-ink-950);color:var(--hub-coral-300)}.tudum-focus__step.is-done{opacity:.66;text-decoration:line-through;text-decoration-thickness:1.5px}.tudum-focus__bar{border-radius:var(--radius-full);background:oklch(20% .02 280/.22);height:7px;margin-bottom:16px;overflow:hidden}.tudum-focus__bar>i{border-radius:inherit;background:var(--hub-ink-950);height:100%;transition:width var(--dur-base) var(--ease-out);display:block}.tudum-focus__cta{background:var(--hub-ink-950);color:#fff;border-radius:var(--radius-full);width:100%;font-family:var(--font-sans);font-weight:700;font-size:var(--text-base);cursor:pointer;border:none;justify-content:center;align-items:center;gap:9px;padding:14px;display:inline-flex}.tudum-focus__cta svg{width:18px;height:18px}.tudum-daybar{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;padding:12px 14px;display:flex}.tudum-daybar__txt{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.tudum-daybar__txt b{color:var(--text);font-family:var(--font-display)}.tudum-daybar__bar{border-radius:var(--radius-full);background:var(--surface-muted);flex:1;height:7px;overflow:hidden}.tudum-daybar__bar>i{border-radius:inherit;background:var(--hub-lime-600);height:100%;transition:width var(--dur-base) var(--ease-out);display:block}.tu-sec{flex-direction:column;gap:10px;display:flex}.tu-sec__head{align-items:center;gap:10px;display:flex}.tu-sec__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);letter-spacing:-.01em;color:var(--text)}.tu-sec__title.is-today{color:var(--primary)}.tu-sec__rule{background:var(--border);flex:1;height:1px}.tu-sec__n{font-family:var(--font-mono);color:var(--text-subtle);font-size:11px}.tu-line{cursor:pointer;background:var(--bg);text-align:left;border:none;align-items:center;gap:12px;width:100%;padding:12px 4px;display:flex}.tu-line__check{border:2px solid var(--border-strong);color:#0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.tu-line__check svg{width:13px;height:13px}.tu-line:hover .tu-line__check{border-color:var(--primary)}.tu-line__body{flex:1;min-width:0}.tu-line__title{font-weight:600;font-size:var(--text-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tu-line__meta{font-size:var(--text-2xs);color:var(--text-muted);align-items:center;gap:7px;margin-top:4px;display:flex}.tu-line.is-done .tu-line__check,.tu-line.is-done .tu-line__body{opacity:.62}.tu-line.is-done .tu-line__title{color:var(--text-muted);text-decoration:line-through}.tu-line.is-done .tu-line__check{background:var(--hub-success);border-color:var(--hub-success);color:#fff}.tu-line.is-readonly .tu-line__check,.tu-line.is-readonly .tu-line__body{opacity:.85}.tu-mchip{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle);align-items:center;gap:4px;font-size:9.5px;display:inline-flex}.tu-mchip.is-over{color:var(--hub-danger-fg)}.tu-mchip svg{flex-shrink:0;width:11px;height:11px}.tu-line__avatars{flex-shrink:0;display:inline-flex}.tu-line__avatars>*+*{margin-left:-7px}.todo-list--calm{gap:0;padding:0}.todo-list--calm .todo-swipe{border-radius:0}.todo-list--calm>:not(:first-child) .tu-line,.todo-list--calm>.tu-line:not(:first-child){border-top:1px solid var(--border)}.tu-hocus-chip{border-radius:var(--radius-full);background:var(--hub-info-soft);color:var(--hub-info-fg);font-family:var(--font-sans);font-weight:600;font-size:var(--text-xs);cursor:pointer;border:1.5px solid #0000;align-items:center;gap:6px;padding:7px 13px;display:inline-flex}.tu-hocus-chip svg{width:13px;height:13px}.tu-hocus-chip.is-on{border-color:var(--hub-info-fg);box-shadow:inset 0 0 0 1px var(--hub-info-fg)}.tudum-plan__count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);justify-content:space-between;margin-bottom:8px;display:flex}.tudum-plan__bar{border-radius:var(--radius-full);background:var(--surface-muted);height:8px;overflow:hidden}.tudum-plan__bar>i{background:linear-gradient(90deg, var(--primary), var(--hub-coral-400));border-radius:inherit;height:100%;transition:width var(--dur-base) var(--ease-out);display:block}.tudum-pstep{border-top:1px solid var(--border);gap:12px;padding:14px 0;display:flex}.tudum-pstep:first-of-type{border-top:none}.tudum-pstep__check{border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;color:#fff;width:26px;height:26px;transition:all var(--dur-fast) var(--ease-out);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tudum-pstep__check svg{width:14px;height:14px}.tudum-pstep__check:disabled{cursor:not-allowed}.tudum-pstep.is-done .tudum-pstep__check{background:var(--hub-success);border-color:var(--hub-success)}.tudum-pstep__body{flex:1;min-width:0}.tudum-pstep__title{font-weight:600;font-size:var(--text-sm);color:var(--text);overflow-wrap:anywhere}.tudum-pstep.is-done .tudum-pstep__title{color:var(--text-subtle);text-decoration:line-through}.tudum-pstep__detail{font-size:var(--text-xs);color:var(--text-muted);overflow-wrap:anywhere;margin-top:4px;line-height:1.5}.tudum-pstep__link{border-radius:var(--radius-full);background:var(--hub-info-soft);color:var(--hub-info-fg);font-size:var(--text-xs);align-items:center;gap:6px;margin-top:9px;padding:7px 12px;font-weight:600;text-decoration:none;display:inline-flex}.tudum-pstep__link.is-external{flex-direction:column;align-items:flex-start;gap:1px}.tudum-pstep__link svg{flex-shrink:0;width:12px;height:12px}.tudum-pstep__link-ext{opacity:.8;align-items:center;gap:4px;font-size:11px;font-weight:400;display:inline-flex}.tudum-pstep__decide{color:var(--primary);font-family:var(--font-sans);font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-top:9px;padding:4px 0;font-weight:600;display:inline-flex}.tudum-pstep__decide svg{width:13px;height:13px}.tudum-pstep__result{border-radius:var(--radius-full);border:1px solid var(--primary);background:var(--primary);align-items:center;gap:6px;max-width:100%;margin-top:9px;padding:5px 11px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.tudum-pstep__result{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.tudum-pstep__result{color:var(--text);font-size:var(--text-xs);cursor:pointer;text-align:left;font-weight:500}.tudum-pstep__result>span{overflow-wrap:anywhere}.tudum-pstep__result.is-fresh:before{content:"";background:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.tudum-pstep__result svg{flex-shrink:0;width:11px;height:11px}.tudum-pstep__result-row{align-items:center;gap:6px;width:100%;margin-top:9px;display:flex}.tudum-pstep__result-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);min-width:0;min-height:40px;color:var(--text);flex:1;padding:0 12px;font-size:14px}.tudum-pstep__result-save{border-radius:var(--radius-md);background:var(--primary);width:40px;height:40px;color:var(--on-primary);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tudum-plan__done{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px;display:flex}.tudum-plan__done b{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:var(--text)}.tu-capture{flex-direction:column;gap:18px;display:flex}.tu-bigfield{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);letter-spacing:-.02em;color:var(--text);background:0 0;border:none;outline:none;width:100%;padding:0}.tu-bigfield::placeholder{color:var(--text-subtle)}.tu-rowset{flex-direction:column;gap:9px;display:flex}.tu-rowset__lbl{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);font-weight:600}.tu-pills{flex-wrap:wrap;gap:8px;display:flex}.tu-pill{border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;align-items:center;gap:7px;padding:9px 14px;font-weight:600;display:inline-flex;position:relative}.tu-pill.is-on{border-color:var(--primary);background:var(--primary-soft);color:var(--hub-coral-800)}[data-theme=dark] .tu-pill.is-on{color:var(--hub-coral-100)}.tu-pill svg{width:15px;height:15px}.tu-pill__avs{display:inline-flex}.tu-pill__avs>*+*{margin-left:-8px}.todo-page{padding-bottom:calc(var(--page-pad-bottom,24px) + 84px);gap:18px}.pl-synth{border-radius:var(--radius-2xl);background:var(--surface);border:1.5px solid var(--border);padding:18px;position:relative;overflow:hidden}.pl-synth:after{content:"";background:var(--accent);opacity:.4;pointer-events:none;border-radius:50%;width:150px;height:150px;position:absolute;top:-46px;right:-46px}.pl-synth>*{z-index:1;position:relative}.pl-synth__title{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600;line-height:1.05;font-size:var(--text-2xl);color:var(--text);max-width:14ch;margin:6px 0 2px}.pl-synth__sub{font-size:var(--text-sm);color:var(--text-muted);margin:0}.pl-synth__cta{align-items:center;gap:8px;margin-top:14px;display:flex}.pl-synth__calm{align-items:center;gap:12px;margin-top:8px;display:flex}.pl-synth__leaf{background:var(--accent-soft);width:40px;height:40px;color:var(--hub-lime-800);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.pl-thumb{border-radius:var(--radius-md);background:var(--surface-muted);width:44px;height:44px;color:var(--hub-lime-700);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.pl-thumb svg{opacity:.85}.pl-thumb img{object-fit:cover;width:100%;height:100%;display:block}.pl-stack{align-items:center;display:inline-flex}.pl-stack .pl-thumb{border-radius:var(--radius-sm);border:2px solid var(--surface);width:34px;height:34px;margin-left:-8px}.pl-stack .pl-thumb:first-child{margin-left:0}.pl-waterbtn{cursor:pointer;background:var(--primary);width:44px;height:44px;color:var(--on-primary);box-shadow:0 1px 0 0 oklch(100% 0 0/.3) inset, 0 4px 10px -4px var(--hub-coral-700);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.pl-waterbtn:disabled{opacity:.5;cursor:default}.pl-scanfab{border:1.5px solid var(--border);background:var(--surface);width:56px;height:56px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-md);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.pl-fab-slot{right:20px;bottom:calc(16px + var(--mobile-tabbar-safe,0px));z-index:40;align-items:center;gap:10px;display:flex;position:fixed}.pl-overdue{color:var(--hub-danger-fg);font-weight:600}.pl-due{color:var(--hub-warning-fg);font-weight:600}.pl-mosaic{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.pl-tile{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--surface-muted);cursor:pointer;transition:transform var(--dur-fast,.15s) var(--ease-out,ease), box-shadow var(--dur-fast,.15s) var(--ease-out,ease);border:none;align-items:flex-end;padding:0;display:flex;position:relative;overflow:hidden}.pl-tile:after{content:"";border-radius:inherit;pointer-events:none;z-index:3;position:absolute;inset:0;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.08)}[data-theme=dark] .pl-tile:after{box-shadow:inset 0 0 0 1px oklch(100% 0 0/.1)}.pl-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.pl-tile:active{transform:translateY(0)}.pl-tile__art{color:var(--hub-lime-700);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pl-tile__art svg{opacity:.6;width:30px;height:30px}.pl-tile__art img{object-fit:cover;width:100%;height:100%;display:block}.pl-tile__name{z-index:1;width:100%;font-size:var(--text-xs);letter-spacing:-.005em;color:#fff;text-shadow:0 1px 3px oklch(0% 0 0/.45);white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#0000 0%,oklch(12% .02 280/.32) 55%,oklch(12% .02 280/.72) 100%);padding:22px 10px 9px;font-weight:600;line-height:1.15;position:relative;overflow:hidden}.pl-tile__dot{z-index:4;border-radius:50%;width:13px;height:13px;position:absolute;top:8px;right:8px;box-shadow:0 0 0 2.5px oklch(100% 0 0/.92),0 1px 3px oklch(0% 0 0/.35)}.pl-tile__dot--overdue{background:var(--hub-danger)}.pl-tile__dot--due{background:var(--hub-warning)}.pl-tile__dot--ok{background:var(--hub-success)}.pl-photo{aspect-ratio:16/10;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface-muted);color:var(--hub-lime-700);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.pl-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pl-photo__badge{z-index:2;position:absolute;top:10px;left:10px}.pl-rhythm{align-items:center;gap:16px;display:flex}.pl-ring{background:conic-gradient(var(--ring-color,var(--primary)) var(--ring-pct,50%), var(--surface-muted) 0);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:104px;height:104px;display:flex;position:relative}.pl-ring:before{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:9px}.pl-ring__inner{z-index:1;text-align:center;line-height:1;position:relative}.pl-ring__num{font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);color:var(--ring-color,var(--text))}.pl-ring__unit{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subtle);margin-top:3px;font-size:9px;display:block}.pl-rhythm__txt{min-width:0}.pl-rhythm__lead{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);letter-spacing:-.01em;color:var(--text);margin:0 0 2px}.pl-rhythm__meta{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5}.pl-facts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pl-fact{border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:3px;padding:10px 12px;display:flex}.pl-fact__k{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subtle);font-size:9.5px}.pl-fact__v{font-size:var(--text-sm);color:var(--text);font-weight:600}.pl-tl{margin:0;padding:0;list-style:none}.pl-tl__item{gap:12px;display:flex}.pl-tl__rail{flex-direction:column;align-items:center;display:flex}.pl-tl__line{background:var(--border);flex:1;width:2px}.pl-tl__item:first-child .pl-tl__line--top,.pl-tl__item:last-child .pl-tl__line--bottom{background:0 0}.pl-tl__dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.pl-tl__dot--water{background:var(--primary-soft);color:var(--primary)}.pl-tl__dot--care{background:var(--surface-muted);color:var(--text-muted)}.pl-tl__body{flex:1;align-items:center;gap:6px;min-width:0;padding:9px 0;display:flex;overflow:hidden}.pl-tl__title{font-size:var(--text-sm);color:var(--text);white-space:nowrap;flex-shrink:0;font-weight:600}.pl-tl__meta{min-width:0;font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pl-av{background:var(--hub-lime-300);width:18px;height:18px;font-family:var(--font-display);color:var(--hub-ink-950);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;font-weight:600;display:inline-flex;overflow:hidden}.pl-av img{object-fit:cover;width:100%;height:100%;display:block}.pl-pick{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:8px 4px;display:flex}.pl-check{border-radius:var(--radius-xs);border:1.5px solid var(--border-strong);color:#0000;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.pl-check.is-on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.pl-pick__body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pl-pick__name{font-weight:600;font-size:var(--text-sm)}.pl-pick__meta{font-size:var(--text-xs);color:var(--text-muted)}.pl-drop{aspect-ratio:16/9;border-radius:var(--radius-lg);border:1.5px dashed var(--border-strong);background:repeating-linear-gradient(45deg, transparent 0 10px, var(--border) 10px 11px)}@supports (color:color-mix(in lab, red, red)){.pl-drop{background:repeating-linear-gradient(45deg, transparent 0 10px, color-mix(in oklab, var(--border) 35%, transparent) 10px 11px)}}.pl-drop{color:var(--text-subtle);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.pl-drop__icon{background:var(--surface);border:1px solid var(--border);width:40px;height:40px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.pl-drop__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.pl-drop__preview{aspect-ratio:16/9;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-muted);position:relative;overflow:hidden}.pl-drop__preview img{object-fit:cover;width:100%;height:100%;display:block}.pl-identify{border-radius:var(--radius-md);border:1.5px dashed var(--hub-lime-700);background:var(--accent-soft);width:100%;color:var(--hub-lime-900);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:11px;font-weight:600;display:flex}.pl-identify:disabled{opacity:.6;cursor:default}.pl-capture{border-radius:var(--radius-md);border:1.5px dashed var(--border-strong);background:var(--surface);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:8px;padding:11px;display:flex}.pl-capture:disabled{opacity:.6;cursor:default}.pl-sugg{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px}.pl-sugg__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pl-sugg__name{font-size:var(--text-sm);color:var(--text);font-weight:600}.pl-sugg__latin{font-size:var(--text-xs);color:var(--text-muted);margin-top:1px;font-style:italic}.pl-sugg__hint{font-size:var(--text-xs);color:var(--text-muted);margin-top:3px}.pl-sugg__score{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-full);flex-shrink:0;padding:2px 9px;font-weight:600}.pl-sugg__add{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--hub-lime-800);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-top:10px;padding:0;font-weight:600;display:inline-flex}.pl-gallery{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pl-gallery__item{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-muted);position:relative;overflow:hidden}.pl-gallery__item img{object-fit:cover;width:100%;height:100%;display:block}.pl-gallery__date{font-family:var(--font-mono);letter-spacing:.04em;color:#fff;background:linear-gradient(#0000,oklch(15% .02 280/.62));padding:12px 6px 4px;font-size:9px;position:absolute;inset:auto 0 0}.pl-gallery__del{color:#fff;cursor:pointer;background:oklch(15% .02 280/.55);border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;top:4px;right:4px}.pl-anniv{border-radius:var(--radius-lg);border:1px solid var(--hub-lime-700);align-items:center;gap:10px;padding:11px 13px;display:flex}@supports (color:color-mix(in lab, red, red)){.pl-anniv{border:1px solid color-mix(in oklab, var(--hub-lime-700) 30%, transparent)}}.pl-anniv{background:var(--accent-soft);color:var(--hub-lime-900);font-size:var(--text-sm);line-height:1.4}.pl-anniv__icon{flex-shrink:0;font-size:18px;line-height:1}.pl-anniv-badge{align-items:center;font-size:12px;line-height:1;display:inline-flex}.rg-sub{font-size:var(--text-sm);color:var(--text-subtle)}.hue-glow{isolation:isolate;position:relative;overflow:hidden}.hue-glow:before{content:"";z-index:-1;background:var(--glow,var(--primary));opacity:.14;filter:blur(46px);pointer-events:none;width:220px;height:220px;transition:opacity var(--dur-base) var(--ease-out);border-radius:50%;position:absolute;top:-110px;right:-60px}.hue-glow.is-off:before{opacity:0}.hue-glow--home:before{opacity:.16;width:260px;height:260px;top:-120px;right:-40px}.hue-orb{background:var(--c,var(--primary));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.hue-orb{background:color-mix(in oklab, var(--c,var(--primary)) 70%, white)}}.hue-orb{color:var(--hub-ink-800);box-shadow:inset 0 0 0 1px oklch(100% 0 0/.3)}.hue-tint .hub-mega__icon{background:var(--scene,var(--primary))}@supports (color:color-mix(in lab, red, red)){.hue-tint .hub-mega__icon{background:color-mix(in oklab, var(--scene,var(--primary)) 65%, white)}}.hue-tint .hub-mega__icon{color:var(--hub-ink-800)}.hue-mega-new{background:0 0;border-style:dashed}.hue-mega-new .hub-mega__icon{background:var(--surface-muted);color:var(--text-subtle)}.hue-mega-new .hub-mega__label{color:var(--text-muted)}.hue-dot{background:var(--c,var(--hub-ink-400));border-radius:50%;flex-shrink:0;width:9px;height:9px}.hue-dot.is-lit{box-shadow:0 0 8px var(--c)}.hue-power-on{background:radial-gradient(circle at 32% 30%, var(--glow,var(--primary)), var(--glow,var(--primary)) 72%)!important}@supports (color:color-mix(in lab, red, red)){.hue-power-on{background:radial-gradient(circle at 32% 30%, color-mix(in oklab, var(--glow,var(--primary)) 88%, white), var(--glow,var(--primary)) 72%)!important}}.hue-power-on{box-shadow:0 6px 16px -5px var(--glow,var(--primary));color:var(--hub-ink-950)!important}.hue-rail{scrollbar-width:none;gap:10px;padding-bottom:2px;display:flex;overflow-x:auto}.hue-rail::-webkit-scrollbar{display:none}.hue-rail>*{flex:none}.hue-carousel{margin:14px -16px 0}.hue-carousel .hue-rail{scroll-snap-type:x proximity;padding:4px 16px 8px;scroll-padding-left:16px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 13px calc(100% - 30px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 13px calc(100% - 30px),#0000 100%)}.hue-carousel .hub-mega{scroll-snap-align:start;text-align:left;align-items:flex-start;gap:9px;width:130px;padding:16px 14px}.hue-carousel .hub-mega__icon{width:42px;height:42px}.hue-carousel .hub-mega__label{font-size:var(--text-base)}.hue-dots{justify-content:center;align-items:center;gap:6px;margin-top:12px;display:flex}.hue-dots__d{border-radius:var(--radius-full);background:var(--border-strong);width:6px;height:6px;transition:width var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out)}.hue-dots__d.is-active{background:var(--glow,var(--primary));width:20px}.hue-home{justify-content:space-between;align-items:center;gap:12px;display:flex}.hue-home__count{min-width:0;font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:12px;font-weight:600;display:flex}.hue-home__count b{font-size:var(--text-3xl);font-weight:600;line-height:1}.hue-home__lines{flex-direction:column;min-width:0;display:flex}.hue-home__primary{font-size:var(--text-sm);white-space:nowrap;font-weight:600}.hue-home__sub{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.hue-home__idle{font-size:var(--text-lg);color:var(--text-muted);font-weight:600}.hue-ctrl{flex-direction:column;gap:7px;display:flex}.hue-ctrl__top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.hue-ctrl__val{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text)}.hue-track{border-radius:var(--radius-full);touch-action:none;cursor:pointer;border:1px solid oklch(50% .02 280/.22);height:28px;position:relative;box-shadow:inset 0 1px 3px oklch(20% .02 280/.22)}.hue-track--hue{background:linear-gradient(90deg,oklch(70% .2 25),oklch(80% .18 75),oklch(90% .18 130),oklch(78% .15 190),oklch(68% .18 265),oklch(66% .2 330),oklch(70% .2 25))}.hue-track--temp{background:linear-gradient(90deg,oklch(72% .13 50),oklch(90% .05 85),oklch(92% .04 230))}.hue-track--sat{background:linear-gradient(90deg, oklch(80% .01 80), var(--c,var(--primary)))}@supports (color:color-mix(in lab, red, red)){.hue-track--sat{background:linear-gradient(90deg, oklch(80% .01 80), color-mix(in oklab, var(--c,var(--primary)) 100%, white 0%))}}.hue-track--bri{background:linear-gradient(90deg, var(--surface), var(--c,var(--hub-coral-400)));border-color:var(--surface);box-shadow:none}.hue-thumb{border-radius:var(--radius-full);width:22px;height:22px;box-shadow:var(--shadow-sm);pointer-events:none;background:#fff;border:1.5px solid oklch(20% .02 280/.15);position:absolute;top:50%;transform:translate(-50%,-50%)}.hue-preview{isolation:isolate;border-radius:var(--radius-lg);border:1px solid var(--border);background:oklch(16% .02 280);height:168px;position:relative;overflow:hidden}.hue-preview__orb{--c:oklch(72% .15 60);--bri:1;background:radial-gradient(circle, var(--c) 0%, transparent 68%);width:120px;height:120px;opacity:calc(.35 + var(--bri) * .5);filter:blur(8px);transition:opacity var(--dur-base) var(--ease-out);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.hue-preview__floor{background:linear-gradient(#0000,oklch(100% 0 0/.05));height:38%;position:absolute;inset:auto 0 0}.hue-preview__label{z-index:2;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:oklch(96% .005 80/.8);position:absolute;bottom:12px;left:14px}.hue-preview__live{z-index:2;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:oklch(96% .005 80/.7);align-items:center;gap:6px;font-size:10px;display:inline-flex;position:absolute;top:12px;right:12px}.hue-preview__live:before{content:"";background:var(--hub-success);width:7px;height:7px;box-shadow:0 0 8px var(--hub-success);border-radius:50%}.hue-swatches{flex-wrap:wrap;gap:10px;display:flex}.hue-swatch{cursor:pointer;background:var(--c);border:2px solid #0000;border-radius:50%;width:34px;height:34px;padding:0}.hue-swatch.is-sel{border-color:var(--text);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}.hue-lamp-card{flex-direction:column;gap:12px;display:flex}.hue-lamp-card__head{align-items:center;gap:10px;display:flex}.hue-lamp-card__name{font-weight:600;font-size:var(--text-sm);flex:1;min-width:0}.hue-lamp-card__pair{gap:10px;display:flex}.hue-lamp-card__pair>.hue-ctrl{flex:1;min-width:0}.hue-page{padding-bottom:96px}.hue-page .hub-fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;position:fixed}@media (width<=640px){.hue-page .hub-fab{bottom:calc(16px + var(--mobile-tabbar-safe))}}.hue-studio{z-index:90;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.hue-studio__scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.hue-studio__foot{padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.cyc-hero{flex-direction:column;align-items:center;gap:16px;padding:6px 0 2px;display:flex}.cyc-ring{width:232px;height:232px;position:relative}.cyc-ring>svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}@media (prefers-reduced-motion:no-preference){.cyc-ring>svg{animation:cyc-ring-in var(--dur-slow) var(--ease-out) both}@keyframes cyc-ring-in{0%{transform:scale(.94)rotate(-6deg)}to{transform:none}}}.cyc-ring__center{text-align:center;z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:0}.cyc-ring__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--text-subtle);font-size:10px}.cyc-ring__day{font-family:var(--font-display);letter-spacing:-.04em;color:var(--text);font-size:60px;font-weight:700;line-height:.85}.cyc-ring__day--empty{color:var(--text-subtle);font-size:38px}.cyc-ring__phase{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--text);align-items:center;gap:6px;margin-top:7px;display:inline-flex}.cyc-ring__phase i{border-radius:50%;flex-shrink:0;width:9px;height:9px}.cyc-state{text-align:center;max-width:30ch;margin:0 auto}.cyc-state__lead{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);letter-spacing:-.015em;color:var(--text);text-wrap:balance;margin:0;line-height:1.12}.cyc-state__lead b{color:var(--primary);font-weight:700}.cyc-state__sub{font-size:var(--text-sm);color:var(--text-muted);margin:7px 0 0;line-height:1.45}.cyc-state--dim{opacity:var(--cycle-confidence-dim)}.cyc-energy{border-radius:var(--radius-full);background:var(--surface-muted);border:1px solid var(--border);font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:9px;padding:7px 14px;font-weight:600;display:inline-flex}.cyc-energy__meter{align-items:flex-end;gap:3px;display:inline-flex}.cyc-energy__bar{background:var(--border-strong);border-radius:2px;width:4px}.cyc-energy__bar:first-child{height:8px}.cyc-energy__bar:nth-child(2){height:12px}.cyc-energy__bar:nth-child(3){height:16px}.cyc-energy__bar.on{background:var(--hub-lime-700)}.cyc-nudge{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px;display:flex}.cyc-nudge__ic{background:var(--cycle-phase-menstrual);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.cyc-nudge__ic{background:color-mix(in oklab, var(--cycle-phase-menstrual) 16%, var(--surface))}}.cyc-nudge__ic{color:var(--cycle-phase-menstrual)}.cyc-nudge--delay .cyc-nudge__ic{background:var(--hub-warning-soft);color:var(--hub-warning-fg)}.cyc-nudge__body{flex:1;min-width:0}.cyc-nudge__title{font-weight:600;font-size:var(--text-sm);color:var(--text)}.cyc-nudge__text{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px;line-height:1.45}.cyc-nudge__actions{flex-wrap:wrap;gap:8px;margin-top:11px;display:flex}.cyc-recap{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.cyc-recap__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cyc-recap__chips{flex-wrap:wrap;gap:6px;display:flex}.cyc-recap__edit{font:600 var(--text-xs) / 1 var(--font-sans);color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px;display:inline-flex}.cyc-sec{flex-direction:column;gap:10px;display:flex}.cyc-q{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);letter-spacing:-.01em;color:var(--text);margin:0}.cyc-q small{font-family:var(--font-sans);font-weight:400;font-size:var(--text-xs);color:var(--text-subtle);letter-spacing:0;margin-top:2px;display:block}.cyc-seclabel{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle);margin:0;font-weight:600}.cyc-flux{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.cyc-flux__opt{border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--surface);min-height:60px;color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-xs);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:9px 4px;font-weight:600;display:flex}.cyc-flux__drop{gap:2px;display:inline-flex}.cyc-flux__drop span{background:var(--border-strong);border-radius:50%;width:6px;height:6px}.cyc-flux__opt.is-active{color:var(--text)}.cyc-flux__opt.is-active[data-f=none]{border-color:var(--border-strong);background:var(--surface-muted)}.cyc-flux__opt[data-f=light].is-active{border-color:var(--cycle-flow-light)}@supports (color:color-mix(in lab, red, red)){.cyc-flux__opt[data-f=light].is-active{border-color:color-mix(in oklab, var(--cycle-flow-light) 70%, var(--border))}}.cyc-flux__opt[data-f=light].is-active{background:var(--cycle-flow-light)}@supports (color:color-mix(in lab, red, red)){.cyc-flux__opt[data-f=light].is-active{background:color-mix(in oklab, var(--cycle-flow-light) 30%, var(--surface))}}.cyc-flux__opt[data-f=normal].is-active{border-color:var(--cycle-flow-normal)}@supports (color:color-mix(in lab, red, red)){.cyc-flux__opt[data-f=normal].is-active{border-color:color-mix(in oklab, var(--cycle-flow-normal) 70%, var(--border))}}.cyc-flux__opt[data-f=normal].is-active{background:var(--cycle-flow-normal)}@supports (color:color-mix(in lab, red, red)){.cyc-flux__opt[data-f=normal].is-active{background:color-mix(in oklab, var(--cycle-flow-normal) 28%, var(--surface))}}.cyc-flux__opt[data-f=heavy].is-active{border-color:var(--cycle-flow-heavy)}@supports (color:color-mix(in lab, red, red)){.cyc-flux__opt[data-f=heavy].is-active{border-color:color-mix(in oklab, var(--cycle-flow-heavy) 70%, var(--border))}}.cyc-flux__opt[data-f=heavy].is-active{background:var(--cycle-flow-heavy)}@supports (color:color-mix(in lab, red, red)){.cyc-flux__opt[data-f=heavy].is-active{background:color-mix(in oklab, var(--cycle-flow-heavy) 28%, var(--surface))}}.cyc-flux__opt[data-f=light].is-active .cyc-flux__drop span:nth-child(-n+1){background:var(--cycle-flow-light)}.cyc-flux__opt[data-f=normal].is-active .cyc-flux__drop span:nth-child(-n+2){background:var(--cycle-flow-normal)}.cyc-flux__opt[data-f=heavy].is-active .cyc-flux__drop span{background:var(--cycle-flow-heavy)}.cyc-reveal{border-radius:var(--radius-md);background:var(--cycle-phase-menstrual);align-items:flex-start;gap:12px;padding:13px 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.cyc-reveal{background:color-mix(in oklab, var(--cycle-phase-menstrual) 15%, var(--surface))}}.cyc-reveal{border:1.5px solid var(--cycle-phase-menstrual)}@supports (color:color-mix(in lab, red, red)){.cyc-reveal{border:1.5px solid color-mix(in oklab, var(--cycle-phase-menstrual) 30%, var(--border))}}.cyc-reveal--check{background:var(--surface);border-color:var(--border)}.cyc-reveal__ic{background:var(--cycle-phase-menstrual);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.cyc-reveal__ic{background:color-mix(in oklab, var(--cycle-phase-menstrual) 18%, var(--surface))}}.cyc-reveal__ic{color:var(--cycle-phase-menstrual)}.cyc-reveal--check .cyc-reveal__ic{background:var(--accent-soft);color:var(--hub-lime-900)}.cyc-reveal__body{flex:1;min-width:0}.cyc-reveal__title{font-weight:600;font-size:var(--text-sm);color:var(--text)}.cyc-reveal__hint{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px;line-height:1.4}.cyc-reveal__actions{flex-wrap:wrap;gap:8px;margin-top:11px;display:flex}.cyc-chips{flex-wrap:wrap;gap:7px;display:flex}.cyc-chip{border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface);min-height:38px;color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:6px;padding:7px 13px;font-weight:600;display:inline-flex}.cyc-chip.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--hub-coral-800)}.cyc-chip.is-active svg{color:var(--primary)}.cyc-bands{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.cyc-band{border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface);min-height:44px;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;padding:10px 8px;font-weight:600}.cyc-band.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--hub-coral-800)}.cyc-phasecard{flex-direction:column;gap:12px;display:flex}.cyc-phasecard__head{align-items:center;gap:8px;display:flex}.cyc-phasecard__pellet{border-radius:50%;flex-shrink:0;width:10px;height:10px}.cyc-phasecard__phase{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--text)}.cyc-phasecard__note{color:var(--text-subtle);margin-left:auto}.cyc-phasecard__summary{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5}.cyc-phasecard__tips{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cyc-phasecard__tip{font-size:var(--text-sm);color:var(--text);gap:10px;line-height:1.45;display:flex}.cyc-phasecard__tip svg{color:var(--text-muted);flex-shrink:0;margin-top:2px}.cyc-phasecard__foot{font-size:var(--text-2xs);color:var(--text-subtle);margin:0;line-height:1.5}:root{--cyc-cal-mens:var(--cycle-flow-normal)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-mens:color-mix(in oklab, var(--cycle-flow-normal) 44%, var(--surface))}}:root{--cyc-cal-mens-h:var(--cycle-flow-heavy)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-mens-h:color-mix(in oklab, var(--cycle-flow-heavy) 50%, var(--surface))}}:root{--cyc-cal-mens-l:var(--cycle-flow-light)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-mens-l:color-mix(in oklab, var(--cycle-flow-light) 40%, var(--surface))}}:root{--cyc-cal-foll:var(--cycle-phase-follicular)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-foll:color-mix(in oklab, var(--cycle-phase-follicular) 30%, var(--surface))}}:root{--cyc-cal-ovul:var(--cycle-phase-ovulation)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-ovul:color-mix(in oklab, var(--cycle-phase-ovulation) 36%, var(--surface))}}:root{--cyc-cal-lut:var(--cycle-phase-luteal)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-lut:color-mix(in oklab, var(--cycle-phase-luteal) 28%, var(--surface))}}:root{--cyc-cal-pred-border:var(--cycle-phase-menstrual)}@supports (color:color-mix(in lab, red, red)){:root{--cyc-cal-pred-border:color-mix(in oklab, var(--cycle-phase-menstrual) 70%, var(--surface))}}[data-theme=dark]{--cyc-cal-mens:var(--cycle-flow-normal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-mens:color-mix(in oklab, var(--cycle-flow-normal) 80%, white)}}[data-theme=dark]{--cyc-cal-mens-h:var(--cycle-flow-heavy)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-mens-h:color-mix(in oklab, var(--cycle-flow-heavy) 88%, white)}}[data-theme=dark]{--cyc-cal-mens-l:var(--cycle-flow-light)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-mens-l:color-mix(in oklab, var(--cycle-flow-light) 72%, white)}}[data-theme=dark]{--cyc-cal-foll:var(--cycle-phase-follicular)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-foll:color-mix(in oklab, var(--cycle-phase-follicular) 66%, white)}}[data-theme=dark]{--cyc-cal-ovul:var(--cycle-phase-ovulation)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-ovul:color-mix(in oklab, var(--cycle-phase-ovulation) 72%, white)}}[data-theme=dark]{--cyc-cal-lut:var(--cycle-phase-luteal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-lut:color-mix(in oklab, var(--cycle-phase-luteal) 64%, white)}}[data-theme=dark]{--cyc-cal-pred-border:var(--cycle-phase-menstrual)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--cyc-cal-pred-border:color-mix(in oklab, var(--cycle-phase-menstrual) 88%, white)}}.cyc-month{justify-content:space-between;align-items:center;gap:10px;display:flex}.cyc-month__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);letter-spacing:-.01em;text-transform:capitalize;margin:0}.cyc-cal{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.cyc-cal__dow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);text-align:center;padding-bottom:2px;font-size:10px;font-weight:600}.cyc-cal__day{aspect-ratio:1;background:var(--surface-muted);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text);cursor:pointer;border:none;justify-content:center;align-items:center;font-weight:600;display:flex;position:relative}.cyc-cal__day:after{content:"";background:0 0;border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.cyc-cal__day.d-mens{background:var(--cyc-cal-mens)}.cyc-cal__day.d-mens-h{background:var(--cyc-cal-mens-h)}.cyc-cal__day.d-mens-l{background:var(--cyc-cal-mens-l)}.cyc-cal__day.d-foll{background:var(--cyc-cal-foll)}.cyc-cal__day.d-ovul{background:var(--cyc-cal-ovul)}.cyc-cal__day.d-lut{background:var(--cyc-cal-lut)}.cyc-cal__day.d-pred{border:1.5px dashed var(--cyc-cal-pred-border);color:var(--text-muted);background:0 0}[data-theme=dark] .cyc-cal__day.d-mens,[data-theme=dark] .cyc-cal__day.d-mens-h,[data-theme=dark] .cyc-cal__day.d-mens-l,[data-theme=dark] .cyc-cal__day.d-foll,[data-theme=dark] .cyc-cal__day.d-ovul,[data-theme=dark] .cyc-cal__day.d-lut{color:var(--hub-ink-950)}.cyc-cal__day.d-today{box-shadow:inset 0 0 0 2px var(--text)}.cyc-cal__day.d-sel{box-shadow:inset 0 0 0 2px var(--primary)}.cyc-cal__day.d-out{color:var(--text-subtle);opacity:.45}.cyc-cal__day.d-dot:after{background:var(--cycle-flow-heavy)}.cyc-leg{flex-wrap:wrap;gap:10px 16px;display:flex}.cyc-leg span{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:7px;display:inline-flex}.cyc-leg i{border-radius:4px;flex-shrink:0;width:12px;height:12px}.cyc-leg i.dash{border:1.5px dashed var(--cyc-cal-pred-border);background:0 0}.cyc-detail-phase{border-radius:var(--radius-full);font-size:var(--text-xs);align-items:center;gap:7px;padding:6px 12px;font-weight:600;display:inline-flex}.cyc-detail-phase i{border-radius:50%;width:9px;height:9px}.cyc-group{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle);margin:0;padding:0 2px;font-weight:600}.cyc-insight{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:9px;padding:15px;display:flex}.cyc-insight__head{align-items:center;gap:8px;display:flex}.cyc-insight__ic{background:var(--accent-soft);width:30px;height:30px;color:var(--hub-lime-900);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cyc-insight__eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle);flex:1;font-weight:600}.cyc-insight__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);letter-spacing:-.01em;color:var(--text);margin:0}.cyc-insight__text{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5}.cyc-insight__foot{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-subtle);letter-spacing:.06em}.cyc-insight--dim{opacity:var(--cycle-confidence-dim)}.cyc-stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cyc-stat{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:3px;padding:15px;display:flex}.cyc-stat__label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);font-weight:600}.cyc-stat__val{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);letter-spacing:-.03em;color:var(--text);line-height:1}.cyc-stat__val small{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);letter-spacing:0;font-weight:600}.cyc-stat__sub{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.cyc-chart{align-items:flex-end;gap:9px;height:96px;padding-top:6px;display:flex}.cyc-chart__col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.cyc-chart__bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--primary);width:100%}@supports (color:color-mix(in lab, red, red)){.cyc-chart__bar{background:color-mix(in oklab, var(--primary) 50%, var(--surface))}}.cyc-chart__bar.is-cur{background:var(--primary)}.cyc-chart__x{font-family:var(--font-mono);color:var(--text-subtle);font-size:9px}.cyc-step{align-items:center;gap:12px;display:inline-flex}.cyc-step__btn{border:1.5px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.cyc-step__btn:hover{border-color:var(--border-strong)}.cyc-step__btn:disabled{opacity:.4;cursor:not-allowed}.cyc-step__val{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);letter-spacing:-.02em;text-align:center;min-width:64px;color:var(--text)}.cyc-step__val small{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.cyc-step--lg .cyc-step__btn{width:46px;height:46px}.cyc-step--lg .cyc-step__val{font-size:var(--text-4xl);min-width:96px}.cyc-step--lg .cyc-step__val small{font-size:var(--text-base)}.cyc-ob-progress{justify-content:center;gap:6px;display:flex}.cyc-ob-progress i{background:var(--border-strong);border-radius:2px;width:24px;height:4px}.cyc-ob-progress i.on{background:var(--primary)}.cyc-ob__q{font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);letter-spacing:-.02em;text-align:center;text-wrap:balance;margin:0;line-height:1.1}.cyc-ob__hint{font-size:var(--text-sm);color:var(--text-muted);text-align:center;margin:0;line-height:1.45}.cyc-goal{flex-direction:column;gap:8px;display:flex}.cyc-goal__opt{border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;width:100%;color:var(--text);align-items:center;gap:12px;padding:13px 14px;display:flex}.cyc-goal__opt.is-active{border-color:var(--primary);background:var(--primary-soft)}.cyc-goal__opt .hub-icon-circle{background:var(--surface-muted)}.cyc-goal__opt.is-active .hub-icon-circle{background:var(--surface);color:var(--primary)}.cyc-goal__opt>span:last-child{flex-direction:column;min-width:0;display:flex}.cyc-goal__t{font-weight:600;font-size:var(--text-sm);display:block}.cyc-goal__d{font-size:var(--text-xs);color:var(--text-muted);margin-top:1px;display:block}.cyc-notif-ex{font-family:var(--font-mono);color:var(--text-subtle);letter-spacing:.02em;margin-top:3px;font-size:10px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
