/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking: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}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-lg:.5rem;--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);--color-pine-deep:#12332a;--color-pine:#1e4a3a;--color-coral:#e2623f;--color-sand:#d9d2c2;--color-sand-light:#eae5d9;--color-bone:#fbf9f4;--color-bone-deep:#f5f2ea;--color-ink:#1f1e1b;--color-ink-2:#4f524b;--color-ink-3:#7d7f76;--font-display:"Big Shoulders Display", "Arial Narrow", sans-serif;--font-body:"Bitter", "Iowan Old Style", Georgia, serif}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;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:where(:not(iframe)){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}html{background-color:var(--color-bone);color:var(--color-ink);font-family:var(--font-body)}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;font-weight:800}}@layer components;@layer utilities{.collapse{visibility:collapse}.collapse\!{visibility:collapse!important}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-28{margin-top:calc(var(--spacing) * 28)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.table\!{display:table!important}.h-full{height:100%}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)!important}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-sand-light>:not(:last-child)){border-color:var(--color-sand-light)}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-sand{border-color:var(--color-sand)}.border-sand-light{border-color:var(--color-sand-light)}.bg-bone{background-color:var(--color-bone)}.bg-bone-deep{background-color:var(--color-bone-deep)}.bg-coral{background-color:var(--color-coral)}.bg-pine{background-color:var(--color-pine)}.bg-pine-deep{background-color:var(--color-pine-deep)}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pr-4{padding-right:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-body{font-family:var(--font-body)}.font-display{font-family:var(--font-display)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-bone{color:var(--color-bone)}.text-bone\/60{color:#fbf9f499}@supports (color:color-mix(in lab, red, red)){.text-bone\/60{color:color-mix(in oklab, var(--color-bone) 60%, transparent)}}.text-bone\/75{color:#fbf9f4bf}@supports (color:color-mix(in lab, red, red)){.text-bone\/75{color:color-mix(in oklab, var(--color-bone) 75%, transparent)}}.text-coral{color:var(--color-coral)}.text-ink{color:var(--color-ink)}.text-ink-2{color:var(--color-ink-2)}.text-ink-3{color:var(--color-ink-3)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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)}.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,)}.grayscale\!{--tw-grayscale:grayscale(100%)!important;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,)!important}.invert{--tw-invert:invert(100%);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))}.\[rdoc-ref\:lib\/racc\/rdoc\/grammar\.en\.rdoc\]{rdoc-ref:lib/racc/rdoc/grammar.en.rdoc}.\[sms\:log\]{sms:log}@media (hover:hover){.hover\:no-underline:hover{text-decoration-line:none}}@media (min-width:48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}@font-face{font-family:Big Shoulders Display;font-style:normal;font-weight:600;font-display:swap;src:url("/assets/brand/big-shoulders-display-latin-600-normal-39c1d714.woff2")format("woff2")}@font-face{font-family:Big Shoulders Display;font-style:normal;font-weight:700;font-display:swap;src:url("/assets/brand/big-shoulders-display-latin-700-normal-adf0ea24.woff2")format("woff2")}@font-face{font-family:Big Shoulders Display;font-style:normal;font-weight:800;font-display:swap;src:url("/assets/brand/big-shoulders-display-latin-800-normal-5df291fb.woff2")format("woff2")}@font-face{font-family:Bitter;font-style:normal;font-weight:400;font-display:swap;src:url("/assets/brand/bitter-latin-400-normal-1dfa6b61.woff2")format("woff2")}@font-face{font-family:Bitter;font-style:italic;font-weight:400;font-display:swap;src:url("/assets/brand/bitter-latin-400-italic-a7a85e44.woff2")format("woff2")}@font-face{font-family:Bitter;font-style:normal;font-weight:500;font-display:swap;src:url("/assets/brand/bitter-latin-500-normal-a581c3f6.woff2")format("woff2")}@font-face{font-family:Bitter;font-style:normal;font-weight:600;font-display:swap;src:url("/assets/brand/bitter-latin-600-normal-4e401af6.woff2")format("woff2")}@font-face{font-family:Bitter;font-style:normal;font-weight:700;font-display:swap;src:url("/assets/brand/bitter-latin-700-normal-d7bca9b7.woff2")format("woff2")}:root{--pine-deep:#12332a;--pine:#1e4a3a;--coral:#e2623f;--sand:#d9d2c2;--bone:#fbf9f4;--ground:var(--bone);--surface:#fff;--surface-2:#f5f2ea;--ink:#1f1e1b;--ink-2:#4f524b;--ink-3:#7d7f76;--line:var(--sand);--line-2:#eae5d9;--brand:var(--pine);--brand-deep:var(--pine-deep);--brand-2:#163b2e;--brand-tint:#e4ece6;--on-brand:#f1efe8;--on-brand-2:#fbf9f4a8;--accent:var(--coral);--accent-2:#c9512f;--accent-tint:#fbe7df;--now-bg:#f2ede0;--focus:#5f9a7d;--overdue:#a8352a;--overdue-bg:#f7e4e1;--due:#8a5a00;--due-bg:#f8ecd3;--done:#2e6b3f;--done-bg:#dfeee3;--upcoming:#4a5a6a;--upcoming-bg:#e7ecf0;--skipped:#6b6f6c;--skipped-bg:#ebedeb;--paused:#7a4b1f;--paused-bg:#f3e6da;--svc-landscape:#3f7d3a;--svc-tree:#6d4c8f;--svc-mulch:#8b5a2b;--svc-flowers:#b04a72;--svc-irrigation:#2b6f96;--svc-otj:#55605a;--svc-project:#3d5a80;--font-display:"Big Shoulders Display", "Barlow Semi Condensed", "Arial Narrow", "DejaVu Sans Condensed", sans-serif;--font-body:"Bitter", "Iowan Old Style", Georgia, "Times New Roman", serif;--radius:5px;--radius-lg:8px;--shadow-1:0 1px 2px #141e180f;--shadow-2:0 6px 18px #141e181a;--ease:cubic-bezier(.2, .7, .2, 1);--t-fast:.12s;--t:.18s;--t-slow:.26s}:root[data-accent=pine]{--accent:var(--pine);--accent-2:#163b2e;--accent-tint:#e4ece6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--ground:#0c1b16;--surface:#12332a;--surface-2:#17402f;--ink:#f1efe8;--ink-2:#c9d1c8;--ink-3:#93a397;--line:#2a5243;--line-2:#1f4536;--brand:#7fc39c;--brand-deep:#0a1713;--brand-2:#9ad6b3;--brand-tint:#1c4a38;--focus:#7fc39c;--on-brand:#f1efe8;--on-brand-2:#f1efe89e;--accent:#e9704f;--accent-2:#f18a6c;--accent-tint:#4a2a20;--now-bg:#2b4a2b;--overdue:#f08a7e;--overdue-bg:#4a2620;--due:#e6b45a;--due-bg:#453516;--done:#7cc48f;--done-bg:#1e4a2c;--upcoming:#a7b7c6;--upcoming-bg:#24363a;--skipped:#a2a8a4;--skipped-bg:#2a3a33;--paused:#d9a06b;--paused-bg:#45301c;--svc-landscape:#6fbf67;--svc-tree:#a98ad0;--svc-mulch:#cf9556;--svc-flowers:#e07ea3;--svc-irrigation:#6fb1d8;--svc-otj:#9aa39d;--svc-project:#8fb0dc}}:root[data-theme=dark]{color-scheme:dark;--ground:#0c1b16;--surface:#12332a;--surface-2:#17402f;--ink:#f1efe8;--ink-2:#c9d1c8;--ink-3:#93a397;--line:#2a5243;--line-2:#1f4536;--brand:#7fc39c;--brand-deep:#0a1713;--brand-2:#9ad6b3;--brand-tint:#1c4a38;--focus:#7fc39c;--on-brand:#f1efe8;--on-brand-2:#f1efe89e;--accent:#e9704f;--accent-2:#f18a6c;--accent-tint:#4a2a20;--now-bg:#2b4a2b;--overdue:#f08a7e;--overdue-bg:#4a2620;--due:#e6b45a;--due-bg:#453516;--done:#7cc48f;--done-bg:#1e4a2c;--upcoming:#a7b7c6;--upcoming-bg:#24363a;--skipped:#a2a8a4;--skipped-bg:#2a3a33;--paused:#d9a06b;--paused-bg:#45301c;--svc-landscape:#6fbf67;--svc-tree:#a98ad0;--svc-mulch:#cf9556;--svc-flowers:#e07ea3;--svc-irrigation:#6fb1d8;--svc-otj:#9aa39d;--svc-project:#8fb0dc}:root[data-theme=dark][data-accent=pine],:root:not([data-theme=light])[data-accent=pine]{--accent:#7fc39c;--accent-2:#9ad6b3;--accent-tint:#1c4a38}*{box-sizing:border-box}html,body{margin:0}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}@keyframes grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes toastin{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}a{color:var(--brand)}button{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:700}.num{font-variant-numeric:tabular-nums}.r{text-align:right}.ic{vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.ic.sm{width:12px;height:12px}.muted{color:var(--ink-3)}.small{font-size:12px}.hint{color:var(--ink-3);font-size:12px}.spacer{flex:1}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.topbar{background:var(--brand-deep);color:var(--on-brand)}.topbar .in{align-items:center;gap:22px;max-width:1440px;height:54px;margin:0 auto;padding:0 20px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.01em;color:#fff;white-space:nowrap;align-items:center;gap:8px;font-size:24px;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.wordmark em{color:var(--coral);font-style:normal}.wordmark .mark{--mark-bg:var(--pine);--mark-fg:#fff;--mark-sun:var(--coral);flex:none;width:26px;height:26px}.wordmark{transition:opacity var(--t-fast) var(--ease)}.wordmark:hover{opacity:.85}.modules{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;gap:2px;font-size:15px;font-weight:700;display:flex;overflow-x:auto}.modules a{color:var(--on-brand-2);white-space:nowrap;transition:color var(--t-fast) var(--ease), border-color var(--t) var(--ease), background var(--t-fast) var(--ease);border-bottom:3px solid #0000;padding:18px 10px 15px;text-decoration:none}.modules a:hover{color:#fff}.modules a.on{color:#fff;border-bottom-color:var(--accent)}.topbar .modules{flex:0 auto;min-width:0}.topbar .tools{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.tbtn{color:var(--on-brand);border-radius:var(--radius);cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:6px 9px;font-size:13px;display:inline-flex}.tbtn:hover{background:#ffffff17}.tbtn.on{background:#ffffff24;border-color:#ffffff2e}.gsearch{border-radius:var(--radius);color:var(--on-brand-2);background:#ffffff1a;border:1px solid #ffffff24;flex:none;align-items:center;gap:6px;width:272px;padding:5px 10px;font-size:13px;display:flex}.gsearch input{color:#fff;font:inherit;text-overflow:ellipsis;width:100%;min-width:0;transition:color var(--t-fast) var(--ease);background:0 0;border:0;outline:none}.topbar.tight1 #settingsBtn span{display:none}.topbar.tight2 .gsearch{cursor:pointer;width:auto;padding:6px 8px}.topbar.tight2 .gsearch input{display:none}.topbar.tight3 .modules{letter-spacing:.03em;font-size:13px}.topbar.tight3 .modules a{padding-left:7px;padding-right:7px}@media (max-width:1280px){.gsearch{cursor:pointer;width:auto;padding:6px 8px}.gsearch input{display:none}}@media (max-width:1180px){.topbar #settingsBtn span{display:none}}.gsearch input::placeholder{color:var(--on-brand-2)}.gsearch{transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease)}.gsearch:focus-within{background:#ffffff29;border-color:#ffffff59;box-shadow:0 0 0 3px #ffffff14}.gsearch kbd{font:600 11px var(--font-body);color:var(--on-brand-2);border:1px solid #ffffff38;border-radius:3px;padding:0 5px;line-height:1.5}.gsearch:focus-within kbd{display:none}.topbar .context{color:var(--on-brand-2);font-size:13px;display:none}.topbar .context b{color:#fff;font-weight:600}.topbar .context .sep{opacity:.5;margin:0 8px}html[data-layout=side] .topbar .context{align-items:center;display:inline-flex}.avatar{background:var(--brand-tint);width:26px;height:26px;color:var(--brand);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}:root{--rail-w:236px}html[data-rail=collapsed]{--rail-w:64px}.rail{display:none}html[data-layout=side] .rail{width:var(--rail-w);background:var(--brand-deep);color:var(--on-brand);z-index:5;animation:fade var(--t-slow) var(--ease);transition:width var(--t-slow) var(--ease), padding var(--t-slow) var(--ease);flex-direction:column;padding:14px 10px 16px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:visible}.rail-top{justify-content:space-between;align-items:center;gap:6px;min-height:40px;padding:0 2px 8px 8px;display:flex}html[data-layout=side] .rail .wordmark{flex:auto;min-width:0;padding:0;overflow:hidden}.rail-toggle{width:28px;height:28px;color:var(--on-brand);cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-slow) var(--ease), border-color var(--t-fast) var(--ease);background:#ffffff0f;border:1px solid #ffffff2e;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.rail-toggle:hover{background:#ffffff24;border-color:#ffffff59}html[data-rail=collapsed] .rail-toggle{transform:rotate(180deg)}.rail .modules a,.rail .tbtn{align-items:center;gap:10px;display:flex;position:relative}.rail .lbl{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}html:not([data-rail=collapsed]) .rail .lbl{animation:fade var(--t-slow) var(--ease)}html[data-rail=collapsed] .rail .lbl,html[data-layout=side][data-rail=collapsed] .rail .acct,html[data-layout=side][data-rail=collapsed] .rail .grp{display:none}html[data-rail=collapsed] .rail-top{flex-direction:column;align-items:center;gap:8px;padding:0 0 8px}html[data-rail=collapsed] .rail .modules a{border-left-width:3px;border-right:3px solid #0000;justify-content:center;padding:11px 0}html[data-rail=collapsed] .rail .tbtn{justify-content:center;padding:8px 0}html[data-rail=collapsed] .rail .modules{border-top:1px solid #ffffff14;padding-top:10px}html[data-rail=collapsed] .rail [data-tip]:after{content:attr(data-tip);background:var(--ink);color:var(--ground);font:600 12px/1.3 var(--font-body);letter-spacing:0;text-transform:none;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);z-index:8;border-radius:4px;padding:5px 9px;position:absolute;top:50%;left:calc(100% + 10px);transform:translate(-4px,-50%)}html[data-rail=collapsed] .rail [data-tip]:hover:after,html[data-rail=collapsed] .rail [data-tip]:focus-visible:after{opacity:1;transform:translateY(-50%)}html[data-rail=collapsed] .rail .wordmark[data-tip]:after{display:none}html[data-layout=side] .rail .acct{color:var(--on-brand-2);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #ffffff14;margin-bottom:10px;padding:0 8px 16px;font-size:12px;overflow:hidden}html[data-layout=side] .rail .grp{letter-spacing:.12em;text-transform:uppercase;color:var(--on-brand-2);opacity:.8;font-size:11px;font-family:var(--font-body);padding:4px 10px 6px;font-weight:700}html[data-layout=side] .rail .modules{flex-direction:column;gap:2px;overflow:visible}html[data-layout=side] .rail .modules a{border-radius:0 var(--radius) var(--radius) 0;letter-spacing:.05em;border-bottom:0;border-left:3px solid #0000;padding:9px 10px;font-size:15px}html[data-layout=side] .rail .modules a:hover{background:#ffffff0f}html[data-layout=side] .rail .modules a.on{border-left-color:var(--accent);background:#ffffff14}html[data-layout=side] .rail .bottom{flex-direction:column;gap:4px;margin-top:auto;display:flex}html[data-layout=side] .topbar .modules,html[data-layout=side] .topbar .wordmark{display:none}html[data-layout=side] .shell{padding-left:var(--rail-w);transition:padding-left var(--t-slow) var(--ease)}.rail .acct,.rail .grp{display:none}html[data-layout=side] .rail .acct,html[data-layout=side] .rail .grp{display:block}.rail .tbtn{justify-content:flex-start;width:100%;padding:8px 10px}@media (max-width:900px){html[data-layout=side] .rail{display:none}html[data-layout=side] .shell{padding-left:0}html[data-layout=side] .topbar .modules,html[data-layout=side] .topbar .wordmark{display:flex}}.page{max-width:1440px;margin:0 auto;padding:0 20px 56px}@media (max-width:600px){.page{padding:0 16px 32px}}.pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 20px;padding:20px 0 6px;display:flex}.pagehead h1{font-size:36px;font-weight:800;line-height:1}.pagehead .sub{color:var(--ink-2);margin-top:6px;font-size:13px}.crumb a{align-items:center;gap:4px;display:inline-flex}.crumb{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-size:11px;font-family:var(--font-body);font-weight:700}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0 12px;display:flex}.year{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:2px;margin-right:6px;display:inline-flex}.year b{font-family:var(--font-display);text-align:center;min-width:62px;font-size:22px;font-weight:800}.year button,.year a{cursor:pointer;width:30px;height:32px;color:var(--ink-2);transition:background var(--t-fast) var(--ease);background:0 0;border:0;justify-content:center;align-items:center;font-size:16px;text-decoration:none;display:inline-flex}.year button:hover,.year a:hover{background:var(--surface-2)}.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);cursor:pointer;white-space:nowrap;color:var(--ink);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;line-height:1.2;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:#c8c7bd}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-1)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2);box-shadow:var(--shadow-2)}.btn.quiet{color:var(--ink-2);background:0 0;border-color:#0000}.btn.quiet:hover{background:var(--surface-2);border-color:#0000}.btn.danger{color:var(--overdue)}.btn.sm{padding:4px 9px;font-size:12px}.btn:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.stat:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.stats{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:2px 0 16px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);padding:11px 12px 10px;position:relative}.stat:hover{background:var(--surface-2);box-shadow:var(--shadow-1);border-color:#bdbcb2;transform:translateY(-1px)}.stat:active{transform:none}.stat b{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1;display:block}.stat span{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-top:7px;font-size:11px;font-weight:700;display:block}.stat .go{color:var(--ink-3);opacity:.45;transition:transform var(--t) var(--ease), color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);position:absolute;top:10px;right:10px}.stat:hover .go{color:var(--accent);opacity:1;transform:translate(2px)}.stat.alert b{color:var(--overdue)}.stat.warn b{color:var(--due)}.stat.good b{color:var(--done)}.stat.active{border-color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}@media (max-width:1000px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:520px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.tabs{border-bottom:1px solid var(--line);gap:0;display:flex;overflow-x:auto}.tab{font-family:var(--font-display);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:18px;font-weight:700}.tab .count{font-family:var(--font-body);color:var(--ink-3);margin-left:6px;font-size:12px;font-weight:600}.tab{transition:color var(--t-fast) var(--ease), border-color var(--t) var(--ease)}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);border-bottom-color:var(--accent)}.panel{padding-top:14px;display:none}.panel.on{animation:rise var(--t-slow) var(--ease);display:block}body[data-view=settings] .appmain,body:not([data-view=settings]) .settingsview{display:none}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filters input[type=search],.filters select,.field input,.field select,.field textarea,.setrow input,.setrow select,.setrow textarea{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:7px 9px}.filters input:focus,.filters select:focus,.field input:focus,.field select:focus,.field textarea:focus,.setrow input:focus,.setrow select:focus,.setrow textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);outline:none}.filters input[type=search]{min-width:240px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600}.chip:hover{border-color:#bdbcb2}.chip.on,.chip:has(input:checked){background:var(--brand);border-color:var(--brand);color:#fff}label.chip{align-items:center;display:inline-flex;position:relative}label.chip input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}label.chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}label.radio{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-weight:500;display:flex}.applied{animation:rise var(--t) var(--ease);background:var(--accent-tint);color:var(--accent-2);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:12px;font-weight:700;display:inline-flex}.applied button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0 3px;font-size:14px;line-height:1}.seg{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:inline-flex;overflow:hidden}.seg button{color:var(--ink-2);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;padding:6px 12px;font-size:13px;font-weight:600}.seg button:hover{background:var(--surface-2)}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--brand);color:#fff}.tablewrap{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-lg);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:860px}th{text-align:left;font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap;z-index:1;padding:9px 12px;font-size:11px;font-weight:700;position:sticky;top:0}th.r{text-align:right}th.sortable{cursor:pointer}th.sortable:hover{color:var(--ink)}td{border-bottom:1px solid var(--line-2);vertical-align:top;padding:10px 12px}tr:last-child td{border-bottom:0}td{transition:background var(--t-fast) var(--ease)}tr.clickable{cursor:pointer;transition:background var(--t-fast) var(--ease)}tr.clickable:hover td,tr.hover:hover td{background:var(--surface-2)}tr.total td{border-top:2px solid var(--line);background:var(--surface-2);font-weight:700}tr.now td{background:var(--now-bg);font-weight:600}tr.future td{color:var(--ink-3)}.prop{color:var(--brand);transition:color var(--t-fast) var(--ease);font-weight:700;text-decoration:none}.prop:hover{color:var(--brand-2);text-decoration:underline}.cell-stack{flex-direction:column;gap:4px;display:flex}.empty{text-align:center;color:var(--ink-3);padding:28px}.tag{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:3px;align-items:center;gap:5px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.6;display:inline-flex}.tag:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.tag.overdue{color:var(--overdue);background:var(--overdue-bg)}.tag.due,.tag.in_window{color:var(--due);background:var(--due-bg)}.tag.completed,.tag.done,.tag.ontrack{color:var(--done);background:var(--done-bg)}.tag.upcoming{color:var(--upcoming);background:var(--upcoming-bg)}.tag.skipped{color:var(--skipped);background:var(--skipped-bg)}.tag.paused{color:var(--paused);background:var(--paused-bg)}.tag.plain:before{display:none}.svc{align-items:center;gap:6px;font-weight:600;display:inline-flex}.svc:before{content:"";background:var(--c);border-radius:2px;width:9px;height:9px}.win{color:var(--ink-3);font-size:12px}.link-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:2px 8px 2px 6px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.link-chip:before{content:"";background:var(--c,var(--ink-3));border-radius:2px;width:8px;height:8px}.link-chip{transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease)}.link-chip:hover{border-color:var(--brand);background:var(--brand-tint)}.cell-stack .link-chip{align-self:flex-start}.cal{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-lg);grid-template-columns:290px repeat(12,minmax(56px,1fr));min-width:1030px;display:grid;overflow:hidden}.calwrap{overflow-x:auto}.cal>div{border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2);padding:6px 8px;font-size:13px}.cal .h{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);border-bottom:1px solid var(--line);text-align:center;font-size:11px;font-weight:700}.cal .h.now{color:var(--brand);background:var(--now-bg)}.cal .label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal .label.empty{text-align:center;color:var(--ink-3);white-space:normal;padding:24px}.cal .m .bar+.bar{margin-top:2px}.cal .m{padding:6px 3px}.cal .m.now{background:var(--now-bg)}.bar{transition:opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease)}.cal .m:hover .bar{transform:scaleY(1.12)}.bar{background:var(--c);opacity:.28;color:#fff;border-radius:3px;justify-content:center;align-items:center;height:18px;font-size:11px;font-weight:700;display:flex}.bar.plan{opacity:.6}.bar.dim{opacity:.18}.bar.win{opacity:.55}.bar.done{opacity:1}.bar.overdue{opacity:1;outline:2px solid var(--overdue);outline-offset:-2px}.bar.skipped{background:repeating-linear-gradient(45deg, var(--c) 0 4px, transparent 4px 8px);opacity:.5}.legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin:8px 0 10px;font-size:12px;display:flex}.legend i{vertical-align:-2px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px}.cards{gap:12px;display:grid}.proj{grid-template-columns:1fr auto;gap:8px 16px;display:grid}.proj h3{font-size:17px}.progress{background:var(--line-2);border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.progress i{background:var(--brand);height:100%;transition:width var(--t-slow) var(--ease);display:block}.two{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:800px){.two{grid-template-columns:1fr}}.roster li{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.roster ul{margin:0;padding:0;list-style:none}.lead{letter-spacing:.06em;text-transform:uppercase;color:var(--brand);border:1px solid var(--brand);border-radius:3px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700}.section-h{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);margin:18px 0 8px;padding-bottom:4px;font-size:11px;font-weight:700}.kicker{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-size:11px;font-weight:700;font-family:var(--font-body)}.rev-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.rev-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);animation:rise var(--t-slow) var(--ease) both;padding:12px 14px}.rev-cards .rev-card:nth-child(2){animation-delay:40ms}.rev-cards .rev-card:nth-child(3){animation-delay:80ms}.rev-cards .rev-card:nth-child(4){animation-delay:.12s}.rev-card b{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1.05;display:block}.rev-card .kicker{margin-bottom:6px}.rev-card .delta{color:var(--ink-3);margin-top:6px;font-size:12px}.rev-card.hero{border-color:var(--done);background:var(--done-bg)}.rev-card.hero b{color:var(--done)}.insights{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.insight{border-left:4px solid var(--c);background:var(--surface);border-radius:var(--radius);padding:10px 12px;font-size:13px}.insight b{font-family:var(--font-display);color:var(--c);font-size:18px;display:block}@media (max-width:900px){.rev-cards,.insights{grid-template-columns:repeat(2,minmax(0,1fr))}}.chart{width:100%;height:auto;max-height:260px;display:block}.chart text{font-family:var(--font-body);fill:var(--ink-3);font-size:11px}.chart .now text{fill:var(--brand);font-weight:700}.chart rect.future{opacity:.35}.chart rect{transform-box:fill-box;transform-origin:bottom;animation:grow var(--t-slow) var(--ease) both;transition:opacity var(--t-fast) var(--ease)}.chart:hover rect{opacity:.55}.chart rect:hover{opacity:1}.chart:hover rect.future:hover{opacity:.8}.svcbars{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}@media (max-width:900px){.svcbars{grid-template-columns:repeat(2,minmax(0,1fr))}}.svcbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 12px}.svcbar b{font-family:var(--font-display);color:var(--c);font-size:20px;display:block}.svcbar .track{background:var(--line-2);border-radius:3px;height:5px;margin-top:8px;overflow:hidden}.svcbar .track i{background:var(--c);transform-origin:0;height:100%;animation:growx var(--t-slow) var(--ease) .12s both;display:block}@keyframes growx{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.file{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}.fileparts{flex-wrap:wrap;align-items:center;gap:4px 6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex}.fileparts span{background:var(--surface-2);border:1px solid var(--line-2);border-radius:3px;padding:0 4px}.fileparts .d{color:var(--ink-2)}.fileparts .s{color:var(--brand)}.fileparts .l{color:var(--upcoming)}.wo-thumb{border:1px solid var(--line);background:var(--surface);float:left;cursor:zoom-in;border-radius:3px;flex-direction:column;justify-content:flex-end;width:46px;height:60px;margin-right:10px;padding:4px;display:inline-flex;position:relative;overflow:hidden}.wo-thumb:before{content:"";background:repeating-linear-gradient(0deg, var(--line-2) 0 2px, transparent 2px 6px);height:30px;position:absolute;top:7px;left:6px;right:6px}.wo-thumb em{font-style:normal;font-family:var(--font-display);letter-spacing:.08em;color:var(--ink-3);background:var(--surface-2);border-radius:2px;align-self:flex-start;padding:0 3px;font-size:9px;font-weight:700}.wo-thumb{transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease), border-color var(--t-fast) var(--ease)}.wo-thumb:hover{box-shadow:var(--shadow-2);border-color:var(--brand);transform:translateY(-2px)scale(1.04)}.wo-thumb.unattached{border-style:dashed}.drop{border:1.5px dashed var(--line);border-radius:var(--radius-lg);color:var(--ink-3);background:var(--surface);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;font-size:13px;display:flex}.drop.over{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-2)}.menu{display:inline-block;position:relative}.menu summary{transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);cursor:pointer;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);justify-content:center;align-items:center;width:30px;height:28px;list-style:none;display:inline-flex}.menu summary::-webkit-details-marker{display:none}.menu[open] summary{background:var(--surface-2)}.menu .dd{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:6;min-width:170px;box-shadow:var(--shadow-2);animation:pop var(--t) var(--ease);padding:4px;position:absolute;top:32px;right:0}.menu .dd button{text-align:left;cursor:pointer;width:100%;transition:background var(--t-fast) var(--ease);background:0 0;border:0;border-radius:3px;padding:7px 10px;font-size:13px;display:block}.menu .dd button:hover{background:var(--surface-2)}.menu .dd hr{border:0;border-top:1px solid var(--line-2);margin:4px 0}.banner{animation:rise var(--t-slow) var(--ease);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--due);border-radius:var(--radius);align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.banner.alert{border-left-color:var(--overdue);margin-top:14px}.banner.notice{border-left-color:var(--done);margin-top:14px}.rename-preview{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);grid-template-columns:max-content 1fr;align-items:center;gap:6px 12px;margin:8px 0 4px;padding:10px 12px;font-size:13px;display:grid}.pick{border:1px solid var(--line);border-radius:var(--radius);max-height:200px;overflow:auto}.pick label{border-bottom:1px solid var(--line-2);cursor:pointer;transition:background var(--t-fast) var(--ease);align-items:center;gap:10px;padding:8px 10px;display:flex}.pick label:hover{background:var(--surface-2)}.pick label:last-child{border-bottom:0}.scrim{z-index:20;background:#0a0e0c73;display:none;position:fixed;inset:0}.scrim.on{animation:fade var(--t) var(--ease);display:block}.drawer{background:var(--surface);border-left:1px solid var(--line);z-index:21;width:min(580px,100%);transition:transform var(--t-slow) var(--ease), box-shadow var(--t-slow) var(--ease);padding:20px 22px 40px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.drawer.on{transform:none;box-shadow:-12px 0 32px #141e1824}.drawer.wide{width:min(800px,100%)}.drawer h2{font-size:30px;font-weight:800}.dhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;display:flex}.dhead .rowbtns{margin-top:2px}.status-line{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:10px 0 4px;font-size:13px;display:flex}.pstats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 4px;display:grid}@media (max-width:600px){.pstats{grid-template-columns:repeat(2,minmax(0,1fr))}}.pstat{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);padding:9px 11px}.pstat b{font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1.05;display:block}.pstat .kicker{margin-bottom:4px;display:block}.pstat .track{background:var(--line-2);border-radius:3px;height:5px;margin-top:7px;overflow:hidden}.pstat .track i{background:var(--done);height:100%;transition:width var(--t-slow) var(--ease);display:block}.pstat .track i.hot{background:var(--due)}.pstat .track i.over{background:var(--overdue)}.entries{flex-direction:column;display:flex}.entry{border-left:4px solid var(--c,var(--line));border-bottom:1px solid var(--line-2);transition:background var(--t-fast) var(--ease);grid-template-columns:92px 1fr auto;align-items:start;gap:4px 14px;padding:10px 0 10px 12px;display:grid}.entry:hover{background:var(--surface-2)}.entry.planned{--c:var(--upcoming)}.entry.done{--c:var(--done)}.entry.today{--c:var(--due)}.entry .d{font-family:var(--font-display);font-size:18px;font-weight:800;line-height:1.1}.entry .d span{font-family:var(--font-body);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-top:3px;font-size:10px;font-weight:700;display:block}.entry .meta{color:var(--ink-2);flex-wrap:wrap;gap:4px 10px;margin-top:3px;font-size:12px;display:flex}.entry .scanline{align-items:center;gap:6px;margin-top:6px;display:inline-flex}.entry .scanline .wo-thumb{float:none;width:30px;height:38px;margin:0;padding:2px}.entry .scanline .wo-thumb em{font-size:7px}.entry .scanline .wo-thumb:before{height:18px;top:4px;left:4px;right:4px}.thumbstrip{flex-wrap:wrap;gap:10px;display:flex}.thumbstrip a{color:var(--ink-2);text-align:center;flex-direction:column;align-items:center;gap:4px;width:92px;font-size:11px;text-decoration:none;display:flex}.thumbstrip .wo-thumb{float:none;width:60px;height:78px;margin:0}.thumbstrip .file{word-break:break-all;font-size:10px}.thumbstrip .wo-thumb.unattached:before{display:none}.feed{flex-direction:column;gap:2px;display:flex}.feed .item{grid-template-columns:26px 1fr;gap:10px;padding:7px 0;font-size:13px;display:grid}.feed .item .avatar{width:26px;height:26px;font-size:11px}.feed .item.system .avatar{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line-2)}.feed .item .who{font-weight:700}.feed .item .when{color:var(--ink-3);margin-left:6px;font-size:12px}.feed .item.system .text{color:var(--ink-2)}.post{gap:8px;margin-top:8px;display:flex}.post input{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);flex:1;padding:7px 10px}.urgency{border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.urgency.soon{background:var(--due-bg);color:var(--due)}.urgency.now{background:var(--done-bg);color:var(--done)}.urgency.late{background:var(--overdue-bg);color:var(--overdue)}.urgency.later{background:var(--upcoming-bg);color:var(--upcoming)}.card.proj{cursor:pointer;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t) var(--ease), transform var(--t) var(--ease)}.card.proj:hover{box-shadow:var(--shadow-1);border-color:#bdbcb2;transform:translateY(-1px)}.drawer .close,.modal .close{float:right;cursor:pointer;color:var(--ink-3);width:30px;height:30px;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;border-radius:50%;font-size:22px;line-height:1}.drawer .close:hover,.modal .close:hover{background:var(--surface-2);color:var(--ink)}.kv{grid-template-columns:max-content 1fr;gap:4px 14px;margin:10px 0;font-size:13px;display:grid}.kv dt{color:var(--ink-3)}.kv dd{margin:0}.planrow{border-left:4px solid var(--c);border-bottom:1px solid var(--line-2);grid-template-columns:1fr auto;gap:4px 12px;padding:9px 0 9px 12px;display:grid}.modal{z-index:22;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal.on{display:flex}.modal .box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(600px,100%);max-height:100%;padding:18px 20px 20px;overflow:auto;box-shadow:0 20px 50px #141e182e}.modal.on .box{animation:pop var(--t-slow) var(--ease)}.modal .box.wide{width:min(720px,100%)}.modal h3{margin-bottom:12px;font-size:24px}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field label{color:var(--ink-2);font-size:12px;font-weight:700}.field .note{color:var(--ink-3);font-size:12px}.field .calc{color:var(--done);font-size:12px;font-weight:600}.grid2{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.grid2>.field,.grid3>.field{min-width:0}.field>input:not([type=checkbox]):not([type=radio]):not([type=file]),.field>select,.field>textarea{width:100%}.grid3{grid-template-columns:1fr 1fr 1fr;gap:0 12px;display:grid}.actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.toast{background:var(--ink);color:var(--ground);border-radius:var(--radius);z-index:30;padding:8px 14px;font-size:13px;display:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast.on{animation:toastin var(--t-slow) var(--ease);display:block}.rowbtns{flex-wrap:wrap;gap:6px;display:flex}.timecalc{animation:rise var(--t) var(--ease);background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);grid-template-columns:1fr 1fr 1fr;gap:0 10px;margin-top:4px;padding:8px 10px 0;display:grid}.timecalc .field{margin-bottom:8px}.fieldset{border:1px solid var(--line-2);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px 2px}.fieldset>.kicker{margin-bottom:8px;display:block}.fieldset .grid3{grid-template-columns:1fr 1fr auto}.fieldset .note{color:var(--ink-3);font-size:12px}.pcal{animation:rise var(--t) var(--ease);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:320px;padding:8px 10px 10px}.pcal-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pcal-head b{font-family:var(--font-display);font-size:18px;font-weight:800}.pcal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.pcal-grid .dow{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);text-align:center;padding:2px 0 4px;font-size:10px;font-weight:700}.pcal-grid button{cursor:pointer;font-variant-numeric:tabular-nums;height:32px;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;border-radius:4px;font-size:13px}.pcal-grid button:hover{background:var(--surface-2);border-color:var(--line)}.pcal-grid button.past{color:var(--ink-3)}.pcal-grid button.today{box-shadow:inset 0 0 0 1px var(--brand);font-weight:700}.pcal-grid button.in{background:var(--accent-tint);border-radius:0}.pcal-grid button.sel{background:var(--accent);color:#fff;font-weight:700}.pcal-grid button.sel.a{border-radius:4px 0 0 4px}.pcal-grid button.sel.b{border-radius:0 4px 4px 0}.pcal-grid button.sel.a.b,.pcal-grid button.sel.one{border-radius:4px}.pcal-grid .blank{height:32px}.pcal-out{align-items:center;gap:10px;margin:8px 0;display:flex}.pcal-out .hint b{color:var(--ink)}.settings{grid-template-columns:224px 1fr;gap:18px;padding-top:14px;display:grid}@media (max-width:800px){.settings{grid-template-columns:1fr}}.setnav{flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky;top:12px}.setnav a{text-decoration:none}.setnav button,.setnav a{text-align:left;border-radius:var(--radius);cursor:pointer;color:var(--ink-2);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-weight:600;display:flex}.setnav button:hover,.setnav a:hover{background:var(--surface)}.setnav button.on,.setnav a.on{background:var(--surface);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}.setnav .grp{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-size:11px;font-weight:700;font-family:var(--font-body);padding:12px 10px 4px}.setpane{display:none}.setpane.on{animation:rise var(--t-slow) var(--ease);display:block}.setpane h2{margin-bottom:2px;font-size:28px}.setpane .lede{color:var(--ink-2);margin:0 0 14px;font-size:13px}.setrow{border-bottom:1px solid var(--line-2);grid-template-columns:250px 1fr;align-items:start;gap:4px 20px;padding:12px 0;display:grid}.setrow:last-child{border-bottom:0}.setrow .k b{font-size:14px;display:block}.setrow .k .help{color:var(--ink-3);margin-top:2px;font-size:12px}.setrow .v{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.setrow input[type=text],.setrow input[type=number],.setrow input[type=email],.setrow input[type=tel],.setrow input[type=time],.setrow select{min-width:120px}@media (max-width:700px){.setrow{grid-template-columns:1fr}}.switch{cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.switch input{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;width:34px;height:20px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px}.switch input:checked{background:var(--done)}.switch input:checked:after{left:16px}.savebar{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}.savebar .hint{margin-right:auto}.env{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:3px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.env i{background:var(--done);border-radius:50%;width:8px;height:8px;display:inline-block}.env.off i{background:var(--ink-3)}.swatch{border:1px solid var(--line);vertical-align:-4px;border-radius:4px;width:18px;height:18px;margin-right:4px;display:inline-block}turbo-frame{display:block}turbo-frame.drawer:empty,turbo-frame.modal:empty{visibility:hidden}.pickrows{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-2);z-index:5;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.pickrows:empty{display:none}.pickrow{text-align:left;border:0;border-bottom:1px solid var(--line-2);cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;padding:8px 10px;display:block}.pickrow:last-child{border-bottom:0}.pickrow:hover,.pickrow:focus-visible{background:var(--surface-2)}.pickrow.new{color:var(--brand);align-items:center;gap:4px;font-weight:600;display:inline-flex}.contact-row{border-bottom:1px solid var(--line-2);grid-template-columns:150px 1fr auto;align-items:start;gap:8px;padding:8px 0;display:grid}.contact-row:last-child{border-bottom:0}.contact-row .who{position:relative}.contact-row .who input[type=search]{width:100%}.contact-row .chosen{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:8px;padding:6px 9px;font-weight:600;display:inline-flex}.contact-row .chosen a{font-size:12px;font-weight:500}.contact-row .newp{grid-template-columns:1fr 1fr;gap:6px;display:grid}.contact-row .newp input{width:100%}.contact-row .x{color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:6px 4px;font-size:18px;line-height:1}.contact-row .x:hover{color:var(--overdue)}@media (max-width:700px){.contact-row{grid-template-columns:1fr}}.drawer .kv dd b{font-weight:700}.drawer-page .close{display:none}.drawer-page h2{font-size:30px;font-weight:800}.drawer .rowbtns{flex-wrap:wrap;margin:12px 0 4px}.drawer .notes{white-space:pre-line}.archived-note{color:var(--skipped);background:var(--skipped-bg);border-radius:3px;align-items:center;gap:6px;padding:1px 7px;font-size:12px;font-weight:700;display:inline-flex}.auth{background:var(--ground);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(440px,100%);box-shadow:var(--shadow-1);animation:rise var(--t-slow) var(--ease);padding:28px 28px 24px}.auth-card .wordmark{color:var(--pine);margin-bottom:18px;font-size:28px}.auth-card .wordmark .mark{width:30px;height:30px}.auth-card h1{margin:0 0 4px;font-size:30px}.auth-card .lede{color:var(--ink-2);margin:0 0 16px;font-size:13px}.auth-card .btn.primary{justify-content:center;width:100%;margin-top:4px;padding:10px 12px;font-size:14px}.auth-card .links{justify-content:space-between;gap:12px;margin-top:14px;font-size:13px;display:flex}.auth-card .links a{color:var(--ink-2)}.auth-card .banner{margin:0 0 14px}.auth-card .tag-line{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);text-align:center;margin-top:18px;font-size:13px;font-weight:700}:root:not([data-theme=light]) .auth-card .wordmark,:root[data-theme=dark] .auth-card .wordmark{color:var(--ink)}.otp-input{letter-spacing:.28em;text-align:center;font-weight:700;font-family:var(--font-display)!important;padding:8px 10px!important;font-size:30px!important}.qr{border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:196px;height:196px;padding:6px;display:block}.qr path{fill:#111}.secret-key{letter-spacing:.12em;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);word-break:break-all;-webkit-user-select:all;user-select:all;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.codes{letter-spacing:.06em;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:10px 0;padding:12px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;list-style:none;display:grid}.codes li{padding:2px 0}.steps{counter-reset:step;gap:14px;margin:0;padding:0;list-style:none;display:grid}.steps li{grid-template-columns:26px 1fr;align-items:start;gap:12px;display:grid}.steps li:before{counter-increment:step;content:counter(step);background:var(--brand-tint);width:26px;height:26px;color:var(--brand);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:grid}.steps b{margin-bottom:2px;font-size:14px;display:block}.status-pill{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);border-radius:3px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.status-pill.on{background:var(--done-bg);color:var(--done);border-color:#0000}.status-pill i{background:currentColor;border-radius:50%;width:8px;height:8px;display:inline-block}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form input{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);min-width:200px;padding:7px 9px}@media print{.rail,.topbar,.setnav,.banner,.btn,.pagehead .env{display:none!important}.shell{margin:0!important}.codes{border:1px solid #000}}@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-divide-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-tracking{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}