.fpp-root{color-scheme:light;--fpp-bg:#f6f7f9;--fpp-bg-deep:#eceef2;--fpp-bg-subtle:#f8f9fb;--fpp-card:#fff;--fpp-card-raised:#fff;--fpp-line:#e7e9ee;--fpp-line2:#eef0f4;--fpp-line3:#f1f3f6;--fpp-line-strong:#c9cfdb;--fpp-ink:#0f1729;--fpp-ink-fixed:#0f1729;--fpp-body:#3a4356;--fpp-muted:#626b7d;--fpp-faint:#727c8c;--fpp-faint2:#a4abb8;--fpp-on-accent:#fff;--fpp-primary:#3d5afe;--fpp-primary-ink:#2c3fd6;--fpp-primary-tint:#eef0fe;--fpp-primary-line:#d7dcf0;--fpp-primary-muted:#a9b3e8;--fpp-on-primary:#fff;--fpp-primary-hover:#2c3fd6;--fpp-green:#1a9d5a;--fpp-green-ink:#127343;--fpp-green-tint:#e7f6ee;--fpp-green-line:#bfe0c6;--fpp-amber:#c9781a;--fpp-amber-ink:#9a5a0e;--fpp-amber-tint:#fbf1e3;--fpp-amber-line:#efd9b8;--fpp-red:#d5384f;--fpp-red-ink:#c02a40;--fpp-red-tint:#fdecef;--fpp-red-line:#f6c9d1;--fpp-blue:#2f6bd6;--fpp-blue-ink:#255abd;--fpp-blue-tint:#e9f0fc;--fpp-blue-line:#c9dbf5;--fpp-disabled-fg:#a4abb8;--fpp-disabled-bg:#f1f3f6;--fpp-not-recorded:#736a57;--fpp-scrim:rgba(15,23,41,.45);--fpp-ring:rgba(61,90,254,.35);--fpp-focus:#3d5afe;--fpp-hover:#f1f3f6;--fpp-edge-highlight:0 0 0 0 transparent;--fpp-shadow-xs:0 1px 2px rgba(15,23,41,.05);--fpp-shadow-sm:0 1px 3px rgba(15,23,41,.07),0 1px 2px rgba(15,23,41,.05);--fpp-shadow-md:0 4px 12px rgba(15,23,41,.09),0 1px 3px rgba(15,23,41,.05);--fpp-shadow-lg:0 12px 32px rgba(15,23,41,.12),0 4px 12px rgba(15,23,41,.07);--fpp-radius-xs:4px;--fpp-radius-sm:6px;--fpp-radius-md:8px;--fpp-radius-lg:12px;--fpp-radius-xl:16px;--fpp-radius-pill:9999px;--fpp-card-pad:16px;--fpp-card-pad-sm:12px;--fpp-card-pad-lg:20px;--font-sans:var(--font-fpp-sans,"IBM Plex Sans"),system-ui,sans-serif}.dark .fpp-root,.fpp-root.dark{color-scheme:dark;--fpp-bg:#0e131c;--fpp-bg-deep:#0a0e15;--fpp-bg-subtle:#151c28;--fpp-card:#171e2b;--fpp-card-raised:#1e2736;--fpp-line:#28313f;--fpp-line2:#1d2531;--fpp-line3:#222a37;--fpp-line-strong:#3a4658;--fpp-ink:#e9edf3;--fpp-ink-fixed:#0a0e15;--fpp-body:#c6cdd9;--fpp-muted:#98a1b2;--fpp-faint:#99a2b4;--fpp-faint2:#6d7686;--fpp-on-accent:#fff;--fpp-primary:#6a80ff;--fpp-primary-ink:#9aabff;--fpp-primary-tint:#1b2540;--fpp-primary-line:#2c3a5c;--fpp-primary-muted:#3a4670;--fpp-on-primary:var(--fpp-ink-fixed);--fpp-primary-hover:#7d90ff;--fpp-green:#40bd80;--fpp-green-ink:#5fd39a;--fpp-green-tint:#123020;--fpp-green-line:#20442f;--fpp-amber:#e0a44f;--fpp-amber-ink:#f2c07a;--fpp-amber-tint:#2c2214;--fpp-amber-line:#40311a;--fpp-red:#f06d5d;--fpp-red-ink:#ff9284;--fpp-red-tint:#2c1619;--fpp-red-line:#4b2429;--fpp-blue:#5f9cf0;--fpp-blue-ink:#8fbaf5;--fpp-blue-tint:#132131;--fpp-blue-line:#1d3450;--fpp-disabled-fg:#6d7686;--fpp-disabled-bg:#222a37;--fpp-not-recorded:#7e8899;--fpp-scrim:rgba(0,0,0,.6);--fpp-ring:rgba(106,128,255,.45);--fpp-focus:#6a80ff;--fpp-hover:#1d2531;--fpp-edge-highlight:inset 0 1px 0 hsla(0,0%,100%,.045);--fpp-shadow-xs:0 1px 2px rgba(0,0,0,.3);--fpp-shadow-sm:0 1px 3px rgba(0,0,0,.42),0 1px 2px rgba(0,0,0,.3);--fpp-shadow-md:0 4px 12px rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.3);--fpp-shadow-lg:0 12px 32px rgba(0,0,0,.6),0 4px 12px rgba(0,0,0,.42)}.fpp-root :is(a,button,input:not(.fpp-input),select:not(.fpp-input),[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--fpp-focus);outline-offset:2px;box-shadow:none}.fpp-root .fpp-input:focus{outline:none;border-color:var(--fpp-primary);box-shadow:0 0 0 3px var(--fpp-ring)}.fpp-root .fpp-input[aria-invalid=true]{border-color:var(--fpp-red)}.fpp-root .fpp-input[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--fpp-red) 30%,transparent)}.fpp-root .fpp-door{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-color:var(--fpp-line-strong);text-underline-offset:3px}.fpp-root a.fpp-door:hover,.fpp-root a:hover .fpp-door{color:var(--fpp-primary-ink);-webkit-text-decoration:underline solid var(--fpp-primary-ink);text-decoration:underline solid var(--fpp-primary-ink)}.fpp-root .fpp-keyline{position:relative}.fpp-root .fpp-keyline:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:1px;background:var(--fpp-keyline-color,var(--fpp-line-strong))}.fpp-root .fpp-keyline-amber{--fpp-keyline-color:var(--fpp-amber)}.fpp-root .fpp-keyline-red{--fpp-keyline-color:var(--fpp-red)}.fpp-root .fpp-keyline-green{--fpp-keyline-color:var(--fpp-green)}.fpp-root .fpp-keyline-primary{--fpp-keyline-color:var(--fpp-primary)}.fpp-root .fpp-skel{background:linear-gradient(90deg,var(--fpp-line3) 25%,var(--fpp-line2) 50%,var(--fpp-line3) 75%);background-size:200% 100%;animation:fpp-skel 1.6s ease-in-out infinite;border-radius:var(--fpp-radius-xs);color:transparent!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes fpp-skel{0%{background-position:200% 0}to{background-position:-200% 0}}.fpp-root .fpp-spin{width:13px;height:13px;border:2px solid;border-right:2px solid transparent;border-radius:9999px;animation:fpp-spin .8s linear infinite}@keyframes fpp-spin{to{transform:rotate(1turn)}}.fpp-root .fpp-disclosure-region{display:grid;grid-template-rows:0fr;transition:grid-template-rows .2s cubic-bezier(.25,1,.5,1)}.fpp-root .fpp-disclosure-region[data-open=true]{grid-template-rows:1fr}.fpp-root .fpp-disclosure-region>div{overflow:hidden;min-height:0;opacity:0;transition:opacity .12s cubic-bezier(.25,1,.5,1) 60ms}.fpp-root .fpp-disclosure-region[data-open=true]>div{opacity:1}.fpp-root .fpp-canvas{container-type:inline-size;container-name:fpp-main}@container fpp-main (max-width: 760px){.fpp-root .fpp-tiles{grid-template-columns:repeat(2,1fr)}.fpp-root .fpp-week{overflow-x:auto;grid-template-columns:repeat(5,minmax(120px,1fr))}}@container fpp-main (max-width: 700px){.fpp-root .fpp-due-grid{grid-template-columns:1fr}}@supports not (container-type:inline-size){@media (max-width:1100px){.fpp-root .fpp-tiles{grid-template-columns:repeat(2,1fr)}.fpp-root .fpp-due-grid{grid-template-columns:1fr}}}.fpp-root .fpp-tile-value{font-size:clamp(16px,2.1cqw + 8px,22px);line-height:24px}.fpp-root .fpp-portal-host{position:fixed;z-index:60;inset:auto}@media (prefers-reduced-motion:reduce){.fpp-root :not(.fpp-spin),.fpp-root :not(.fpp-spin):after,.fpp-root :not(.fpp-spin):before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fpp-nojs-reveal{to{opacity:1;visibility:visible}}.fpp-nojs-notice{opacity:0;visibility:hidden;animation:fpp-nojs-reveal 1ms linear 2.5s forwards}