.portal-app{--brand-50:#eef4f5;--brand-100:#d7e6e8;--brand-300:#5d8f96;--brand-400:#1a6f7a;--brand-500:#0d5a64;--brand-600:#0a4a52;--brand-700:#083940;--font-sans:var(--font-public-sans),"Public Sans",system-ui,sans-serif;--font-display:var(--font-public-sans),"Public Sans",system-ui,sans-serif;--background:#efece4;--foreground:#2f3b3f;--tpl-ground:#efece4;--tpl-surface:#ffffff;--tpl-ink:#14262b;--tpl-ink-2:#2f3b3f;--tpl-muted:#4a5659;--tpl-faint:#4a5659;--tpl-line:#e4e1d8;--tpl-line-2:#efece4;--tpl-control:#cfcabd;--tpl-hover:#eef4f5;--tpl-green:#0d5a64;--tpl-green-hover:#0a4a52;--tpl-green-pressed:#083940;--tpl-green-tint:#eef4f5;--tpl-rail:#0d5a64;--tpl-rail-end:#0a4a52;--tpl-gold:#e09e2d;--tpl-gold-deep:#c48920;--tpl-gold-text:#8a5a0a;--tpl-gold-tint:#f5c877;--tpl-gold-soft:#fff8ea;--tpl-gold-border:#f0d9a8;--tpl-due-bg:#fff8ea;--tpl-due-fg:#8a5a0a;--tpl-shadow-card:none;min-height:100dvh;background:var(--tpl-ground);color:var(--tpl-ink-2);font-family:var(--font-sans);font-feature-settings:normal}:where(.portal-app a){color:#0d5a64}:where(.portal-app a:hover){color:#14262b}.portal-app input,.portal-app select,.portal-app textarea{color:#14262b!important;background-color:#fff!important;border-radius:10px;font-family:inherit}.portal-app :focus-visible{outline:2px solid #0d5a64;outline-offset:2px}.portal-kicker{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0d5a64}.portal-h1{margin:0;font-size:clamp(26px,3vw,34px);line-height:1.15;font-weight:800;color:#14262b}.portal-lead{margin:6px 0 0;font-size:16px;line-height:1.5;color:#4a5659}.portal-card{background:#fff;border:1px solid #e4e1d8;border-radius:16px}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 28px;border-radius:999px;border:0;background:#0d5a64;color:#fff;font:700 15px var(--font-sans);cursor:pointer;text-decoration:none}.portal-btn:hover{background:#0a4a52;color:#fff}.portal-btn:disabled{opacity:.5;cursor:not-allowed}.portal-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;border:1.5px solid #0d5a64;background:#fff;color:#0d5a64;font:700 15px var(--font-sans);cursor:pointer;text-decoration:none}.portal-btn-secondary:hover{color:#14262b;border-color:#14262b}.portal-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;border:1.5px solid #cfcabd;background:#fff;color:#14262b;font:600 15px var(--font-sans);cursor:pointer;text-decoration:none}.portal-chip{flex:none;font-size:12px;font-weight:700;border-radius:999px;padding:4px 10px;line-height:1.3;white-space:nowrap}.portal-chip-complete{background:#eef4f5;color:#0d5a64}.portal-chip-action{background:#f5c877;color:#14262b}.portal-chip-progress{background:#eef4f5;color:#0d5a64}.portal-chip-upcoming{background:#efece4;color:#4a5659}.portal-dot{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:1.5px solid #cfcabd;background:#fff;color:#b7c0c2}.portal-dot-complete{background:#0d5a64;border-color:#0d5a64;color:#fff}.portal-dot-action{background:#fff;border-color:#e09e2d;color:#8a5a0a}.portal-dot-progress{background:#fff;border-color:#0d5a64;color:#0d5a64}.portal-bar{height:8px;border-radius:99px;background:#efece4;overflow:hidden}.portal-bar>span{display:block;height:100%;background:#0d5a64}.portal-type-tag{align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 12px}