:root{color-scheme:light;--color-bg: oklch(88% .012 250);--color-paper: oklch(98.5% .004 95);--color-paper-2: oklch(95.5% .007 250);--color-paper-3: oklch(92% .01 250);--color-rule: oklch(84% .014 250);--color-neutral: oklch(47% .022 258);--color-muted: oklch(60% .016 258);--color-ink: oklch(21% .03 262);--color-edge: var(--color-ink);--color-accent: oklch(48% .19 264);--color-accent-ink: oklch(98% .01 264);--color-accent-soft: oklch(93% .035 264);--color-focus: oklch(55% .2 264);--color-signal: oklch(80% .15 80);--color-signal-ink: oklch(24% .04 70);--color-signal-soft: oklch(94% .05 85);--color-negative: oklch(53% .19 27);--color-negative-ink: oklch(98% .01 27);--color-negative-soft: oklch(94% .04 27);--color-positive: oklch(52% .12 155);--color-positive-soft: oklch(94% .04 155);--color-scrim: oklch(21% .03 262 / .42);--font-display: "Schibsted Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body: "General Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.9531rem;--text-display: clamp(2rem, 1.4rem + 2.4vw, 3rem);--control-h: 2.75rem;--control-h-sm: 2.25rem;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--lane-w: 18.5rem;--shell-w: 78rem;--radius: 0px;--rule-w: 1.5px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.87, 0, .13, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--shadow-float: 4px 4px 0 0 var(--color-ink);--shadow-lift: 3px 3px 0 0 var(--color-ink);--shadow-press: 1px 1px 0 0 var(--color-ink)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: oklch(12% .016 262);--color-paper: oklch(18% .02 262);--color-paper-2: oklch(21.5% .022 262);--color-paper-3: oklch(26% .024 262);--color-rule: oklch(34% .026 262);--color-neutral: oklch(72% .02 255);--color-muted: oklch(58% .018 255);--color-ink: oklch(95% .008 95);--color-edge: oklch(56% .03 262);--color-accent: oklch(70% .15 264);--color-accent-ink: oklch(15% .03 264);--color-accent-soft: oklch(30% .07 264);--color-focus: oklch(74% .15 264);--color-signal: oklch(82% .14 80);--color-signal-ink: oklch(20% .03 70);--color-signal-soft: oklch(31% .06 80);--color-negative: oklch(68% .17 27);--color-negative-ink: oklch(15% .03 27);--color-negative-soft: oklch(30% .07 27);--color-positive: oklch(70% .13 155);--color-positive-soft: oklch(28% .05 155);--color-scrim: oklch(5% .01 262 / .62);--shadow-float: 4px 4px 0 0 var(--color-rule);--shadow-lift: 3px 3px 0 0 oklch(6% .01 262);--shadow-press: 1px 1px 0 0 oklch(6% .01 262)}}:root[data-theme=dark]{color-scheme:dark;--color-bg: oklch(12% .016 262);--color-paper: oklch(18% .02 262);--color-paper-2: oklch(21.5% .022 262);--color-paper-3: oklch(26% .024 262);--color-rule: oklch(34% .026 262);--color-neutral: oklch(72% .02 255);--color-muted: oklch(58% .018 255);--color-ink: oklch(95% .008 95);--color-edge: oklch(56% .03 262);--color-accent: oklch(70% .15 264);--color-accent-ink: oklch(15% .03 264);--color-accent-soft: oklch(30% .07 264);--color-focus: oklch(74% .15 264);--color-signal: oklch(82% .14 80);--color-signal-ink: oklch(20% .03 70);--color-signal-soft: oklch(31% .06 80);--color-negative: oklch(68% .17 27);--color-negative-ink: oklch(15% .03 27);--color-negative-soft: oklch(30% .07 27);--color-positive: oklch(70% .13 155);--color-positive-soft: oklch(28% .05 155);--color-scrim: oklch(5% .01 262 / .62);--shadow-float: 4px 4px 0 0 var(--color-rule);--shadow-lift: 3px 3px 0 0 oklch(6% .01 262);--shadow-press: 1px 1px 0 0 oklch(6% .01 262)}:root{--label-rose-bg: oklch(93% .055 12);--label-rose-ink: oklch(40% .13 12);--label-rose-swatch: oklch(62% .16 12);--label-red-bg: oklch(93% .055 27);--label-red-ink: oklch(40% .13 27);--label-red-swatch: oklch(62% .16 27);--label-orange-bg: oklch(93% .055 50);--label-orange-ink: oklch(40% .13 50);--label-orange-swatch: oklch(62% .16 50);--label-brown-bg: oklch(93% .025 55);--label-brown-ink: oklch(40% .059 55);--label-brown-swatch: oklch(62% .072 55);--label-amber-bg: oklch(93% .055 75);--label-amber-ink: oklch(40% .13 75);--label-amber-swatch: oklch(62% .16 75);--label-yellow-bg: oklch(93% .055 98);--label-yellow-ink: oklch(40% .13 98);--label-yellow-swatch: oklch(62% .16 98);--label-lime-bg: oklch(93% .055 128);--label-lime-ink: oklch(40% .13 128);--label-lime-swatch: oklch(62% .16 128);--label-green-bg: oklch(93% .055 148);--label-green-ink: oklch(40% .13 148);--label-green-swatch: oklch(62% .16 148);--label-emerald-bg: oklch(93% .055 163);--label-emerald-ink: oklch(40% .13 163);--label-emerald-swatch: oklch(62% .16 163);--label-teal-bg: oklch(93% .055 188);--label-teal-ink: oklch(40% .13 188);--label-teal-swatch: oklch(62% .16 188);--label-cyan-bg: oklch(93% .055 208);--label-cyan-ink: oklch(40% .13 208);--label-cyan-swatch: oklch(62% .16 208);--label-sky-bg: oklch(93% .055 232);--label-sky-ink: oklch(40% .13 232);--label-sky-swatch: oklch(62% .16 232);--label-blue-bg: oklch(93% .055 258);--label-blue-ink: oklch(40% .13 258);--label-blue-swatch: oklch(62% .16 258);--label-indigo-bg: oklch(93% .055 277);--label-indigo-ink: oklch(40% .13 277);--label-indigo-swatch: oklch(62% .16 277);--label-violet-bg: oklch(93% .055 295);--label-violet-ink: oklch(40% .13 295);--label-violet-swatch: oklch(62% .16 295);--label-purple-bg: oklch(93% .055 310);--label-purple-ink: oklch(40% .13 310);--label-purple-swatch: oklch(62% .16 310);--label-fuchsia-bg: oklch(93% .055 328);--label-fuchsia-ink: oklch(40% .13 328);--label-fuchsia-swatch: oklch(62% .16 328);--label-pink-bg: oklch(93% .055 350);--label-pink-ink: oklch(40% .13 350);--label-pink-swatch: oklch(62% .16 350);--label-slate-bg: oklch(93% .01 255);--label-slate-ink: oklch(40% .023 255);--label-slate-swatch: oklch(62% .029 255)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--label-rose-bg: oklch(33% .065 12);--label-rose-ink: oklch(89% .07 12);--label-rose-swatch: oklch(70% .15 12);--label-red-bg: oklch(33% .065 27);--label-red-ink: oklch(89% .07 27);--label-red-swatch: oklch(70% .15 27);--label-orange-bg: oklch(33% .065 50);--label-orange-ink: oklch(89% .07 50);--label-orange-swatch: oklch(70% .15 50);--label-brown-bg: oklch(33% .029 55);--label-brown-ink: oklch(89% .032 55);--label-brown-swatch: oklch(70% .068 55);--label-amber-bg: oklch(33% .065 75);--label-amber-ink: oklch(89% .07 75);--label-amber-swatch: oklch(70% .15 75);--label-yellow-bg: oklch(33% .065 98);--label-yellow-ink: oklch(89% .07 98);--label-yellow-swatch: oklch(70% .15 98);--label-lime-bg: oklch(33% .065 128);--label-lime-ink: oklch(89% .07 128);--label-lime-swatch: oklch(70% .15 128);--label-green-bg: oklch(33% .065 148);--label-green-ink: oklch(89% .07 148);--label-green-swatch: oklch(70% .15 148);--label-emerald-bg: oklch(33% .065 163);--label-emerald-ink: oklch(89% .07 163);--label-emerald-swatch: oklch(70% .15 163);--label-teal-bg: oklch(33% .065 188);--label-teal-ink: oklch(89% .07 188);--label-teal-swatch: oklch(70% .15 188);--label-cyan-bg: oklch(33% .065 208);--label-cyan-ink: oklch(89% .07 208);--label-cyan-swatch: oklch(70% .15 208);--label-sky-bg: oklch(33% .065 232);--label-sky-ink: oklch(89% .07 232);--label-sky-swatch: oklch(70% .15 232);--label-blue-bg: oklch(33% .065 258);--label-blue-ink: oklch(89% .07 258);--label-blue-swatch: oklch(70% .15 258);--label-indigo-bg: oklch(33% .065 277);--label-indigo-ink: oklch(89% .07 277);--label-indigo-swatch: oklch(70% .15 277);--label-violet-bg: oklch(33% .065 295);--label-violet-ink: oklch(89% .07 295);--label-violet-swatch: oklch(70% .15 295);--label-purple-bg: oklch(33% .065 310);--label-purple-ink: oklch(89% .07 310);--label-purple-swatch: oklch(70% .15 310);--label-fuchsia-bg: oklch(33% .065 328);--label-fuchsia-ink: oklch(89% .07 328);--label-fuchsia-swatch: oklch(70% .15 328);--label-pink-bg: oklch(33% .065 350);--label-pink-ink: oklch(89% .07 350);--label-pink-swatch: oklch(70% .15 350);--label-slate-bg: oklch(33% .012 255);--label-slate-ink: oklch(89% .013 255);--label-slate-swatch: oklch(70% .027 255)}}:root[data-theme=dark]{--label-rose-bg: oklch(33% .065 12);--label-rose-ink: oklch(89% .07 12);--label-rose-swatch: oklch(70% .15 12);--label-red-bg: oklch(33% .065 27);--label-red-ink: oklch(89% .07 27);--label-red-swatch: oklch(70% .15 27);--label-orange-bg: oklch(33% .065 50);--label-orange-ink: oklch(89% .07 50);--label-orange-swatch: oklch(70% .15 50);--label-brown-bg: oklch(33% .029 55);--label-brown-ink: oklch(89% .032 55);--label-brown-swatch: oklch(70% .068 55);--label-amber-bg: oklch(33% .065 75);--label-amber-ink: oklch(89% .07 75);--label-amber-swatch: oklch(70% .15 75);--label-yellow-bg: oklch(33% .065 98);--label-yellow-ink: oklch(89% .07 98);--label-yellow-swatch: oklch(70% .15 98);--label-lime-bg: oklch(33% .065 128);--label-lime-ink: oklch(89% .07 128);--label-lime-swatch: oklch(70% .15 128);--label-green-bg: oklch(33% .065 148);--label-green-ink: oklch(89% .07 148);--label-green-swatch: oklch(70% .15 148);--label-emerald-bg: oklch(33% .065 163);--label-emerald-ink: oklch(89% .07 163);--label-emerald-swatch: oklch(70% .15 163);--label-teal-bg: oklch(33% .065 188);--label-teal-ink: oklch(89% .07 188);--label-teal-swatch: oklch(70% .15 188);--label-cyan-bg: oklch(33% .065 208);--label-cyan-ink: oklch(89% .07 208);--label-cyan-swatch: oklch(70% .15 208);--label-sky-bg: oklch(33% .065 232);--label-sky-ink: oklch(89% .07 232);--label-sky-swatch: oklch(70% .15 232);--label-blue-bg: oklch(33% .065 258);--label-blue-ink: oklch(89% .07 258);--label-blue-swatch: oklch(70% .15 258);--label-indigo-bg: oklch(33% .065 277);--label-indigo-ink: oklch(89% .07 277);--label-indigo-swatch: oklch(70% .15 277);--label-violet-bg: oklch(33% .065 295);--label-violet-ink: oklch(89% .07 295);--label-violet-swatch: oklch(70% .15 295);--label-purple-bg: oklch(33% .065 310);--label-purple-ink: oklch(89% .07 310);--label-purple-swatch: oklch(70% .15 310);--label-fuchsia-bg: oklch(33% .065 328);--label-fuchsia-ink: oklch(89% .07 328);--label-fuchsia-swatch: oklch(70% .15 328);--label-pink-bg: oklch(33% .065 350);--label-pink-ink: oklch(89% .07 350);--label-pink-swatch: oklch(70% .15 350);--label-slate-bg: oklch(33% .012 255);--label-slate-ink: oklch(89% .013 255);--label-slate-swatch: oklch(70% .027 255)}.label-color--rose{--label-bg: var(--label-rose-bg);--label-ink: var(--label-rose-ink);--label-swatch: var(--label-rose-swatch)}.label-color--red{--label-bg: var(--label-red-bg);--label-ink: var(--label-red-ink);--label-swatch: var(--label-red-swatch)}.label-color--orange{--label-bg: var(--label-orange-bg);--label-ink: var(--label-orange-ink);--label-swatch: var(--label-orange-swatch)}.label-color--brown{--label-bg: var(--label-brown-bg);--label-ink: var(--label-brown-ink);--label-swatch: var(--label-brown-swatch)}.label-color--amber{--label-bg: var(--label-amber-bg);--label-ink: var(--label-amber-ink);--label-swatch: var(--label-amber-swatch)}.label-color--yellow{--label-bg: var(--label-yellow-bg);--label-ink: var(--label-yellow-ink);--label-swatch: var(--label-yellow-swatch)}.label-color--lime{--label-bg: var(--label-lime-bg);--label-ink: var(--label-lime-ink);--label-swatch: var(--label-lime-swatch)}.label-color--green{--label-bg: var(--label-green-bg);--label-ink: var(--label-green-ink);--label-swatch: var(--label-green-swatch)}.label-color--emerald{--label-bg: var(--label-emerald-bg);--label-ink: var(--label-emerald-ink);--label-swatch: var(--label-emerald-swatch)}.label-color--teal{--label-bg: var(--label-teal-bg);--label-ink: var(--label-teal-ink);--label-swatch: var(--label-teal-swatch)}.label-color--cyan{--label-bg: var(--label-cyan-bg);--label-ink: var(--label-cyan-ink);--label-swatch: var(--label-cyan-swatch)}.label-color--sky{--label-bg: var(--label-sky-bg);--label-ink: var(--label-sky-ink);--label-swatch: var(--label-sky-swatch)}.label-color--blue{--label-bg: var(--label-blue-bg);--label-ink: var(--label-blue-ink);--label-swatch: var(--label-blue-swatch)}.label-color--indigo{--label-bg: var(--label-indigo-bg);--label-ink: var(--label-indigo-ink);--label-swatch: var(--label-indigo-swatch)}.label-color--violet{--label-bg: var(--label-violet-bg);--label-ink: var(--label-violet-ink);--label-swatch: var(--label-violet-swatch)}.label-color--purple{--label-bg: var(--label-purple-bg);--label-ink: var(--label-purple-ink);--label-swatch: var(--label-purple-swatch)}.label-color--fuchsia{--label-bg: var(--label-fuchsia-bg);--label-ink: var(--label-fuchsia-ink);--label-swatch: var(--label-fuchsia-swatch)}.label-color--pink{--label-bg: var(--label-pink-bg);--label-ink: var(--label-pink-ink);--label-swatch: var(--label-pink-swatch)}.label-color--slate{--label-bg: var(--label-slate-bg);--label-ink: var(--label-slate-ink);--label-swatch: var(--label-slate-swatch)}*,*:before,*:after{box-sizing:border-box}html,body{overflow-x:clip}html{-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:800;font-style:normal;line-height:1.1;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere;min-width:0}p{margin:0;max-width:65ch}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}ol,ul{margin:0;padding:0;list-style:none}svg{display:block}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.numeral{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.centered-loader{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--color-neutral)}.brand{display:inline-flex;align-items:center;gap:var(--space-2xs);font-family:var(--font-display);font-weight:900;font-size:var(--text-md);letter-spacing:-.04em;flex-shrink:0}.brand--large{font-size:var(--text-lg);margin-bottom:var(--space-xl)}.brand__mark{display:inline-flex;align-items:flex-start;gap:2px;height:.9em}.brand__mark span{width:.24em;background:var(--color-accent)}.brand__mark span:nth-child(1){height:100%}.brand__mark span:nth-child(2){height:62%}.brand__mark span:nth-child(3){height:82%;background:var(--color-signal)}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:var(--space-md) var(--space-lg) var(--space-xl)}.app-nav{display:flex;align-items:center;gap:var(--space-lg);width:100%;max-width:var(--shell-w);margin:0 auto var(--space-lg);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-md);background:var(--color-paper);border:var(--rule-w) solid var(--color-edge);box-shadow:var(--shadow-float);position:sticky;top:var(--space-md);z-index:20}.app-nav__links{display:flex;gap:var(--space-3xs);flex:1}.app-nav__link{display:inline-flex;align-items:center;height:var(--control-h-sm);padding:0 var(--space-sm);white-space:nowrap;text-decoration:none;font-weight:600;font-size:var(--text-sm);color:var(--color-neutral);border:var(--rule-w) solid transparent;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.app-nav__link:hover{color:var(--color-ink);background:var(--color-paper-3)}.app-nav__link.is-active{color:var(--color-accent-ink);background:var(--color-accent);border-color:var(--color-accent)}.app-nav__user{display:flex;align-items:center;gap:var(--space-2xs);flex-shrink:0}.app-nav__name{font-size:var(--text-sm);font-weight:600;color:var(--color-neutral);white-space:nowrap}.app-main{flex:1;display:flex;flex-direction:column;width:100%;max-width:120rem;margin:0 auto;min-width:0}.app-tabbar{display:none}@media(max-width:768px){:root{--control-h: 2.5rem;--control-h-sm: 2.125rem;--lane-w: min(86vw, 22rem)}.app-shell{padding:0;padding-bottom:calc(4.25rem + env(safe-area-inset-bottom,0px))}.app-nav{position:sticky;top:0;max-width:none;margin:0;padding:calc(var(--space-2xs) + env(safe-area-inset-top,0px)) var(--space-xs) var(--space-2xs) var(--space-sm);border-width:0 0 var(--rule-w) 0;box-shadow:none}.app-nav__links,.app-nav__name{display:none}.app-nav__user{margin-left:auto}.app-tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--space-3xs);position:fixed;left:0;right:0;bottom:0;z-index:20;padding:var(--space-2xs);padding-bottom:calc(var(--space-2xs) + env(safe-area-inset-bottom,0px));background:var(--color-bg);border-top:var(--rule-w) solid var(--color-ink)}.app-tabbar__link{display:flex;align-items:center;justify-content:center;min-height:2.75rem;white-space:nowrap;text-decoration:none;font-weight:600;font-size:var(--text-sm);color:var(--color-neutral);background:var(--color-paper);border:var(--rule-w) solid var(--color-rule)}.app-tabbar__link.is-active{color:var(--color-accent-ink);background:var(--color-accent);border-color:var(--color-accent)}}.banner{padding:var(--space-xs) var(--space-sm);border:var(--rule-w) solid currentColor;font-size:var(--text-sm);margin-bottom:var(--space-md)}.banner--error{color:var(--color-negative);background:var(--color-negative-soft)}.banner--success{color:var(--color-positive);background:var(--color-positive-soft)}.banner--warning{color:var(--color-signal-ink);background:var(--color-signal-soft);border-color:var(--color-signal)}.banner--dismissable{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);height:var(--control-h);padding:0 var(--space-md);border:var(--rule-w) solid var(--color-ink);border-radius:var(--radius);background:var(--color-paper);color:var(--color-ink);font-weight:600;font-size:var(--text-sm);text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--color-paper-3)}.btn:active{transform:translate(1px,1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink);box-shadow:var(--shadow-press)}.btn--primary:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-neutral)}.btn--ghost:hover{color:var(--color-ink);background:var(--color-paper-3)}.btn--danger{background:transparent;border-color:var(--color-negative);color:var(--color-negative)}.btn--danger:hover{background:var(--color-negative);color:var(--color-negative-ink)}.btn--small{height:var(--control-h-sm);padding:0 var(--space-xs);font-size:var(--text-xs)}.btn--block{width:100%}.btn--icon{width:var(--control-h);padding:0}.btn--icon.btn--small{width:var(--control-h-sm)}.btn--icon svg{width:1.1rem;height:1.1rem}.btn__spinner{width:.7rem;height:.7rem;border:var(--rule-w) solid currentColor;border-top-color:transparent;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form{display:flex;flex-direction:column;gap:var(--space-md)}.form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}@media(max-width:560px){.form__row{grid-template-columns:minmax(0,1fr)}}.form__actions{display:flex;gap:var(--space-xs)}.field{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}.field label{font-size:var(--text-sm);font-weight:600}.field__hint{font-size:var(--text-xs);color:var(--color-muted)}.reminders{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2xs);min-width:0;margin:0;padding:0;border:none}.reminders__legend{padding:0;margin-bottom:var(--space-3xs);font-size:var(--text-sm);font-weight:600}.reminders__list{display:flex;flex-direction:column;gap:var(--space-2xs);width:100%;margin:0;padding:0;list-style:none}.reminders__row{display:flex;align-items:center;gap:var(--space-2xs)}.reminders__amount{flex:0 0 5.5rem}.reminders__unit{flex:0 1 8.5rem}.reminders__before{font-size:var(--text-sm);color:var(--color-neutral)}.reminders__remove{margin-left:auto;font-size:var(--text-base)}.field__inline{display:flex;align-items:center;gap:var(--space-2xs)}.input,.select{width:100%;min-width:0;height:var(--control-h);padding:0 var(--space-sm);border:var(--rule-w) solid var(--color-rule);border-radius:var(--radius);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-out)}.input--area,textarea.input{height:auto;padding:var(--space-2xs) var(--space-sm);resize:vertical;line-height:1.45}.input:hover,.select:hover{border-color:var(--color-neutral)}.input:focus-visible,.select:focus-visible{border-color:var(--color-accent)}.input:user-invalid{border-color:var(--color-negative)}.input::placeholder{color:var(--color-muted)}.segmented{display:inline-flex;height:var(--control-h);border:var(--rule-w) solid var(--color-ink)}.segmented button{padding:0 var(--space-md);border:none;border-right:var(--rule-w) solid var(--color-ink);background:transparent;font-weight:600;font-size:var(--text-sm);cursor:pointer}.segmented button:last-child{border-right:none}.segmented button:hover{background:var(--color-paper-3)}.segmented button.is-active{background:var(--color-ink);color:var(--color-paper)}.segmented--small{height:var(--control-h-sm)}.segmented--small button{padding:0 var(--space-xs);font-size:var(--text-xs)}.auth-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-md) var(--space-sm)}.auth-card{width:100%;max-width:26rem;padding:var(--space-xl) var(--space-lg);background:var(--color-paper);border:var(--rule-w) solid var(--color-edge);box-shadow:var(--shadow-float)}.auth-card h1{font-size:var(--text-xl);margin-bottom:var(--space-3xs)}.auth-card__subtitle{color:var(--color-neutral);margin-bottom:var(--space-lg)}.auth-card__switch{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-neutral);text-align:center;max-width:none}.auth-card__switch a{color:var(--color-accent);font-weight:600;text-underline-offset:2px}@media(max-width:480px){.auth-card{padding:var(--space-lg) var(--space-md)}}.page{width:100%;max-width:var(--shell-w);margin:0 auto;padding:var(--space-xl);background:var(--color-paper);border:var(--rule-w) solid var(--color-edge)}.page__header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-xs);margin-bottom:var(--space-lg)}.page__header h1{font-size:var(--text-xl)}.page__meta{font-size:var(--text-sm);color:var(--color-neutral);overflow-wrap:anywhere}.page__empty{color:var(--color-neutral);margin-bottom:var(--space-md)}.page__actions{display:flex;gap:var(--space-xs)}@media(max-width:768px){.page{border:none;padding:var(--space-md) var(--space-sm);max-width:none;flex:1}}.board-list{border-top:var(--rule-w) solid var(--color-ink)}.board-list__item{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule)}.board-list__name{flex:1;font-family:var(--font-display);font-weight:700;font-size:var(--text-md)}.board-list__link{text-decoration:none;padding:var(--space-3xs) 0}.board-list__link:hover{color:var(--color-accent)}.board-list__new{margin-top:var(--space-md);max-width:24rem}.settings-section{padding:var(--space-lg) 0;border-top:1px solid var(--color-rule)}.settings-section__title{font-size:var(--text-md);margin-bottom:var(--space-xs)}.settings-section__text{color:var(--color-neutral);margin-bottom:var(--space-sm)}.settings-section__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.settings-section--last{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding-bottom:0}.inline-edit{min-width:0;padding:0 var(--space-3xs);margin-left:calc(-1 * var(--space-3xs));border:var(--rule-w) dashed var(--color-rule);background:transparent;text-align:left;cursor:text;overflow-wrap:anywhere}.inline-edit:hover{border-color:var(--color-accent)}.inline-edit__input{min-width:0;width:100%;padding:0 var(--space-3xs);margin-left:calc(-1 * var(--space-3xs));border:var(--rule-w) solid var(--color-accent);background:var(--color-paper);outline:none}.board{display:flex;flex-direction:column;flex:1;min-width:0}.board__header{display:flex;align-items:baseline;gap:var(--space-sm);margin:0 auto var(--space-md);width:100%;max-width:var(--shell-w)}.board__name{font-family:var(--font-display);font-weight:800;font-size:var(--text-display);letter-spacing:-.035em;line-height:1.05}.edit-toggle{margin-left:auto;align-self:center;flex-shrink:0}.board__tools{display:flex;gap:var(--space-2xs);margin-left:auto;align-self:center;flex-shrink:0}.board__tools .edit-toggle{margin-left:0}.label-chip{display:inline-flex;align-items:center;max-width:100%;padding:0 var(--space-2xs);font-size:var(--text-2xs);font-weight:600;line-height:1.6;color:var(--label-ink);background:var(--label-bg);overflow-wrap:anywhere}.card-tile__labels{order:-1;display:flex;flex-wrap:wrap;gap:var(--space-3xs)}.label-toggle{display:inline-flex;align-items:center;gap:var(--space-3xs);min-height:var(--control-h-sm);max-width:100%;padding:0 var(--space-xs) 0 var(--space-2xs);font-size:var(--text-xs);font-weight:600;text-align:left;overflow-wrap:anywhere;color:var(--color-ink);background:var(--color-paper);border:var(--rule-w) solid var(--color-rule);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.label-toggle:hover{border-color:var(--label-swatch)}.label-toggle[aria-pressed=true]{color:var(--label-ink);background:var(--label-bg);border-color:var(--label-swatch)}.label-toggle__mark{display:inline-grid;place-items:center;flex-shrink:0;width:.9rem;height:.9rem;font-size:.65rem;line-height:1;color:var(--color-paper);background:var(--label-swatch)}.label-picker{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0;margin:0;padding:0;border:none}.label-picker__options{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.label-picker__new,.label-list__new{display:flex;gap:var(--space-2xs);align-items:center}.label-picker__new .input{flex:1 1 12rem;height:var(--control-h-sm)}.label-picker__new .btn,.label-list__new .btn{flex-shrink:0}.color-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(2rem,1fr));gap:var(--space-2xs);padding:var(--space-2xs) 0}.color-swatch{position:relative;display:block;width:2rem;height:2rem;padding:0;background:var(--label-swatch);border:var(--rule-w) solid var(--color-edge);cursor:pointer}.color-swatch__input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.color-swatch:has(.color-swatch__input:checked){outline:2px solid var(--color-ink);outline-offset:2px}.color-swatch:has(.color-swatch__input:focus-visible),button.color-swatch:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.label-list{display:flex;flex-direction:column;margin:0 0 var(--space-md);padding:0;list-style:none;border-top:var(--rule-w) solid var(--color-rule)}.label-row{padding:var(--space-2xs) 0;border-bottom:var(--rule-w) solid var(--color-rule)}.label-row__main{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.label-row__color{flex-shrink:0;width:1.5rem;height:1.5rem}.label-row__name{min-width:0;font-size:var(--text-sm);line-height:1.8}input.label-row__name{flex:1}.label-row__uses{margin-left:auto;flex-shrink:0;font-size:var(--text-xs);color:var(--color-muted)}.label-row__confirm{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2xs);padding-top:var(--space-2xs);font-size:var(--text-sm)}.label-row__confirm span{flex:1 1 100%}.field__hint--error{color:var(--color-negative)}.label-filter{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2xs);width:100%;max-width:var(--shell-w);margin:0 auto var(--space-sm)}.label-filter__title{font-size:var(--text-xs);font-weight:600;color:var(--color-neutral)}.board__meta{flex-shrink:0;font-size:var(--text-sm);color:var(--color-neutral)}.board>.banner{width:100%;max-width:var(--shell-w);margin-left:auto;margin-right:auto}.lanes{display:flex;align-items:flex-start;gap:var(--space-sm);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:var(--space-sm);flex:1;width:100%;max-width:var(--shell-w);margin:0 auto}.lane{position:relative;flex:0 0 var(--lane-w);display:flex;flex-direction:column;gap:var(--space-2xs);max-height:calc(100dvh - 12rem);padding:var(--space-2xs);background:var(--color-paper-2);border:var(--rule-w) solid var(--color-rule);scroll-snap-align:start;transition:border-color var(--dur-fast) var(--ease-out)}.lane.is-over{border-color:var(--color-accent)}.lane--new{background:transparent;border-style:dashed}.lane__header{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-3xs) 0 var(--space-3xs) var(--space-2xs)}.lane__name{flex:1;min-width:0;line-height:var(--control-h-sm);font-family:var(--font-display);font-weight:800;font-size:var(--text-base);letter-spacing:-.01em}h2.lane__name{padding:0 var(--space-3xs);margin-left:calc(-1 * var(--space-3xs));border:var(--rule-w) solid transparent}.lane__count{font-size:var(--text-xs);color:var(--color-neutral);padding:0 var(--space-2xs);border:1px solid var(--color-rule);background:var(--color-paper)}.lane__cards{display:flex;flex-direction:column;gap:var(--space-2xs);overflow-y:auto;min-height:var(--space-md)}@media(max-width:768px){.board{padding-top:var(--space-sm)}.board__header,.board>.banner{padding:0 var(--space-sm)}.board__header{flex-wrap:wrap;align-items:center;row-gap:var(--space-xs)}.board__header>:first-child{flex-basis:100%;min-width:0}.label-filter{flex-wrap:nowrap;overflow-x:auto;padding:0 var(--space-sm) var(--space-3xs);scrollbar-width:none}.label-filter .label-toggle,.label-filter .segmented,.label-filter .btn{flex-shrink:0;white-space:nowrap}.board>.banner{margin-left:var(--space-sm);margin-right:var(--space-sm);width:auto;padding:var(--space-xs) var(--space-sm)}.lanes{padding:0 var(--space-sm) var(--space-sm);scroll-padding:0 var(--space-sm)}}.card-tile{position:relative;background:var(--color-paper);border:var(--rule-w) solid var(--color-edge);touch-action:manipulation;transition:box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.card-tile:hover{box-shadow:var(--shadow-lift);transform:translate(-1px,-1px)}.card-tile.is-dragging{opacity:.35;box-shadow:none;transform:none}.card-tile.is-over{box-shadow:0 -4px 0 0 var(--color-accent)}.card-tile--lifted{box-shadow:var(--shadow-float);transform:rotate(-1.5deg);cursor:grabbing}.card-tile__open{display:flex;flex-direction:column;gap:var(--space-2xs);width:100%;padding:var(--space-xs) var(--space-sm);border:none;background:transparent;text-align:left;cursor:pointer}.card-tile__title{font-weight:500;line-height:1.35;overflow-wrap:anywhere;white-space:pre-line}.card-tile__summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:calc(-1 * var(--space-3xs));font-size:var(--text-sm);line-height:1.4;color:var(--color-neutral);overflow-wrap:anywhere}.card-tile__meta{display:flex;align-items:center;gap:var(--space-2xs)}.card-tile__notes{color:var(--color-muted)}.card-tile__notes svg{width:.9rem;height:.9rem}.due{display:inline-flex;align-items:center;padding:0 var(--space-2xs);font-size:var(--text-2xs);line-height:1.6rem;border:1px solid var(--color-rule);color:var(--color-neutral);white-space:nowrap}.due--today{background:var(--color-signal);border-color:var(--color-signal);color:var(--color-signal-ink)}.due--overdue{background:var(--color-negative);border-color:var(--color-negative);color:var(--color-negative-ink)}.composer__open{display:flex;align-items:center;gap:var(--space-2xs);width:100%;min-height:var(--control-h-sm);padding:0 var(--space-2xs);border:var(--rule-w) solid transparent;background:transparent;color:var(--color-neutral);font-weight:600;font-size:var(--text-sm);text-align:left;cursor:pointer}.composer__open:hover{color:var(--color-ink);background:var(--color-paper-3)}.composer{display:flex;flex-direction:column;gap:var(--space-2xs)}.composer__actions{display:flex;gap:var(--space-2xs)}.menu{position:relative}.menu__panel{position:absolute;right:0;top:calc(100% + var(--space-3xs));z-index:10;display:flex;flex-direction:column;min-width:11rem;background:var(--color-paper);border:var(--rule-w) solid var(--color-edge);box-shadow:var(--shadow-lift)}.menu__item{padding:var(--space-2xs) var(--space-sm);border:none;background:transparent;text-align:left;font-size:var(--text-sm);font-weight:500;white-space:nowrap;cursor:pointer}.menu__item:hover:not(:disabled){background:var(--color-paper-3)}.menu__item:disabled{color:var(--color-muted);cursor:not-allowed}.menu__item--danger{color:var(--color-negative);border-top:1px solid var(--color-rule)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-sm);background:var(--color-scrim);animation:fade-in var(--dur-base) var(--ease-out)}.dialog{width:100%;max-width:38rem;max-height:calc(100dvh - 2 * var(--space-sm));overflow-y:auto;padding:var(--space-lg);background:var(--color-paper);border:var(--rule-w) solid var(--color-edge);box-shadow:var(--shadow-float);animation:rise var(--dur-base) var(--ease-out)}.dialog .form__row{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.dialog__title{font-size:var(--text-lg);margin-bottom:var(--space-md)}.dialog__text{color:var(--color-neutral)}.dialog__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-lg)}.dialog__push{margin-left:auto}@media(max-width:560px){.dialog .form__row{grid-template-columns:minmax(0,1fr)}.dialog-backdrop{align-items:flex-end;padding:0}.dialog{max-width:none;max-height:92dvh;padding:var(--space-md) var(--space-sm) calc(var(--space-md) + env(safe-area-inset-bottom,0px));border-width:var(--rule-w) 0 0;box-shadow:none}}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}.card-tile:hover,.card-tile--lifted{transform:none}}
