.mascot{display:block;margin-inline:auto;animation:mascot-bob 3.4s var(--ease-soft) infinite}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.mascot{animation:none}}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:var(--sp-4);background:var(--bg-page);background-attachment:fixed}.auth-card{display:grid;gap:var(--sp-4);width:min(380px,100%);padding:var(--sp-6) var(--sp-5);text-align:center}.auth-card__title{margin:0}.auth-card__subtitle{margin:calc(var(--sp-3) * -1) 0 0;color:var(--c-ink-secondary);font-size:var(--fs-sm)}.auth-card__fields{display:grid;gap:var(--sp-3);text-align:left}.auth-card__fields label{display:grid;gap:var(--sp-2)}.auth-card__actions{display:grid;gap:var(--sp-3)}.auth-card__submit{width:100%}.auth-card__toggle{background:none;border:none;box-shadow:none;color:var(--c-accent-solid);font-weight:600;font-size:var(--fs-sm);padding:var(--sp-1) var(--sp-2)}.auth-card__toggle:hover:not(:disabled){background:none;color:var(--c-accent-solid-hover);transform:none;text-decoration:underline;text-underline-offset:3px}.app{min-height:100dvh}.app__header{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);background:var(--c-nav-bg);border-bottom:1px solid var(--c-border)}.app__brand{display:flex;align-items:center;gap:var(--sp-2)}.app__brand-mark{width:28px;height:28px;flex:none}.app__brand h1{margin:0;font-size:var(--fs-md);font-weight:700}.app__nav{display:flex;flex-wrap:wrap;gap:var(--sp-1);background:var(--c-surface);padding:var(--sp-1);border-radius:var(--r-pill);border:1px solid var(--c-border)}.app__nav-link{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:600;color:var(--c-ink-secondary);text-decoration:none;white-space:nowrap;transition:background var(--motion-fast) var(--ease-soft),color var(--motion-fast) var(--ease-soft)}.app__nav-link:hover{color:var(--c-ink);background:var(--c-nav-bg)}.app__nav-link--active{background:var(--c-accent-solid);color:#fff}.app__nav-link--active:hover{background:var(--c-accent-solid-hover);color:#fff}.app__sign-out{background:transparent;color:var(--c-ink-secondary);box-shadow:none;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:600}.app__sign-out:hover:not(:disabled){background:var(--c-nav-bg);color:var(--c-ink);transform:none;box-shadow:none}.app__content{max-width:1080px;margin:0 auto;padding:var(--sp-6) var(--sp-5) var(--sp-7);display:grid;gap:var(--sp-5)}@media(max-width:640px){.app__header{padding:var(--sp-3) var(--sp-4)}.app__content{padding:var(--sp-5) var(--sp-3) var(--sp-6)}.app__nav{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.app__nav::-webkit-scrollbar{display:none}.app__nav-link{padding:var(--sp-2) var(--sp-3);text-align:center}}.list-page{display:grid;gap:var(--sp-5)}.list-page__heading h2{margin-bottom:var(--sp-1)}.list-page__subtitle{margin:0;color:var(--c-ink-secondary);font-size:var(--fs-sm)}.list-form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--sp-4)}.list-form label{flex:1 1 200px;min-width:0}.list-form__submit{flex:none;height:fit-content}.list-form__error{flex-basis:100%;margin:0}.list-page__loading{color:var(--c-ink-secondary)}.list-empty{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-6) 0;text-align:center;color:var(--c-ink-secondary)}.list-empty p{margin:0}.item-list{display:grid;gap:var(--sp-3)}.item-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.item-row__info{display:grid;gap:var(--sp-1);flex:1 1 240px;min-width:0}.item-row__title{font-weight:600}.item-row__meta{font-size:var(--fs-xs);color:var(--c-ink-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700}.status-badge--active{background:var(--c-success-bg);color:var(--c-success)}.status-badge--inactive{background:var(--c-inactive-bg);color:var(--c-inactive-ink)}.item-row__toggle{flex:none;background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border);box-shadow:none}.item-row__toggle:hover:not(:disabled){background:var(--c-nav-bg);transform:none}.links-table__wrap{padding:0;overflow-x:auto}.links-table{min-width:480px}.links-table th:first-child,.links-table td:first-child{padding-left:var(--sp-5)}.links-table th:last-child,.links-table td:last-child{padding-right:var(--sp-5)}.links-table__copy{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border);box-shadow:none;font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-4)}.links-table__copy:hover:not(:disabled){background:var(--c-nav-bg);transform:none}.links-table__copy--copied{background:var(--c-success-bg);color:var(--c-success);border-color:transparent}.links-table__copy--copied:hover{background:var(--c-success-bg)}.leaderboard{display:grid;gap:var(--sp-3)}.leaderboard__row{display:grid;grid-template-columns:2rem 1fr auto;grid-template-areas:"rank name count" "rank track track";align-items:center;column-gap:var(--sp-3);row-gap:var(--sp-2)}.leaderboard__rank{grid-area:rank;width:2rem;height:2rem;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--c-inactive-bg);color:var(--c-ink-secondary);font-weight:700;font-size:var(--fs-sm)}.leaderboard__rank--top{background:var(--c-accent);color:var(--c-ink)}.leaderboard__name{grid-area:name;font-weight:600}.leaderboard__count{grid-area:count;font-variant-numeric:tabular-nums;color:var(--c-ink-secondary);font-size:var(--fs-sm)}.leaderboard__track{grid-area:track;height:8px;border-radius:var(--r-pill);background:var(--c-inactive-bg);overflow:hidden}.leaderboard__bar{display:block;height:100%;border-radius:var(--r-pill);background:var(--chart-series-1)}.leaderboard-empty{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-5) 0;text-align:center;color:var(--c-ink-secondary)}.leaderboard-empty p{margin:0}.trend-chart{width:100%;height:auto;background:var(--chart-surface);border-radius:var(--r-md)}.trend-chart__axis-label{font-family:var(--font-body);font-size:11px;fill:var(--chart-ink-muted)}.trend-chart-empty{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-6) 0;text-align:center;color:var(--c-ink-secondary);background:var(--chart-surface);border-radius:var(--r-md)}.trend-chart-empty p{margin:0}.delete-history-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--c-ink) 45%,transparent);display:grid;place-items:center;padding:var(--sp-4);z-index:100}.delete-history-modal{width:min(420px,100%);display:grid;gap:var(--sp-4)}.delete-history-modal__warning{color:var(--c-error);font-weight:600;font-size:var(--fs-sm)}.delete-history-modal__scope{display:grid;gap:var(--sp-2);border:none;padding:0;margin:0}.delete-history-modal__scope label{display:flex;align-items:center;gap:var(--sp-2);font-weight:500;color:var(--c-ink)}.delete-history-modal__scope input{width:auto}.delete-history-modal__range{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.delete-history-modal__range label{flex:1 1 160px}.delete-history-modal__actions{display:flex;justify-content:flex-end;gap:var(--sp-3)}.delete-history-modal__cancel{background:var(--c-inactive-bg);color:var(--c-ink)}.delete-history-modal__cancel:hover:not(:disabled){background:var(--c-border)}.delete-history-modal__confirm{background:var(--c-error)}.delete-history-modal__confirm:hover:not(:disabled){background:#a8232f}.kpi-page{display:grid;gap:var(--sp-5)}.kpi-page__heading{display:flex;align-items:start;justify-content:space-between;gap:var(--sp-4)}.kpi-page__heading h2{margin-bottom:var(--sp-1)}.kpi-page__subtitle{margin:0;color:var(--c-ink-secondary);font-size:var(--fs-sm)}.kpi-page__delete{flex:none;background:transparent;color:var(--c-error);border:2px solid var(--c-error);box-shadow:none}.kpi-page__delete:hover:not(:disabled){background:color-mix(in srgb,var(--c-error) 10%,transparent);transform:none}@media(max-width:640px){.kpi-page__heading{flex-direction:column}}.kpi-filters{display:flex;flex-wrap:wrap;align-items:end;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5)}.kpi-filters label{flex:1 1 160px;min-width:140px}.kpi-filters__export{flex:none;margin-left:auto;background:var(--c-lavender);color:var(--c-ink)}.kpi-filters__export:hover:not(:disabled){background:#d8ccff}@media(max-width:640px){.kpi-filters{flex-direction:column;align-items:stretch}.kpi-filters__export{margin-left:0}}.kpi-page__loading{color:var(--c-ink-secondary);padding:var(--sp-5) 0}.kpi-page__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--sp-5);align-items:start}.kpi-page__panel h3{margin-bottom:var(--sp-4);font-size:var(--fs-md)}@media(max-width:860px){.kpi-page__grid{grid-template-columns:minmax(0,1fr)}}:root{--c-blush: #ffe5ec;--c-mint: #c9f2e9;--c-lavender: #e5deff;--c-cream: #fffaf3;--c-ink: #4a3f55;--c-ink-secondary: #6b5e7d;--c-ink-soft: #8a7f95;--c-accent: #ff8fab;--c-accent-deep: #f26d92;--c-accent-solid: #cf3a68;--c-accent-solid-hover: #c72f60;--c-surface: #ffffff;--c-warn: #d97706;--c-error: #c92e3d;--c-success: #1c6e4a;--c-success-bg: #dff5ea;--c-inactive-ink: var(--c-ink-secondary);--c-inactive-bg: #f1eef5;--c-border: #f3dde7;--c-nav-bg: #fff7f4;--bg-page: linear-gradient(160deg, var(--c-blush) 0%, var(--c-lavender) 55%, var(--c-mint) 100%);--bg-shell: linear-gradient(180deg, #fffaf7 0%, #fdf6fb 55%, #f8f7fd 100%);--r-sm: 12px;--r-md: 18px;--r-lg: 28px;--r-pill: 999px;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: 1.125rem;--fs-lg: 1.375rem;--fs-xl: 1.75rem;--fs-2xl: 2.25rem;--shadow-soft: 0 10px 30px -12px rgba(255, 143, 171, .45);--shadow-soft-sm: 0 6px 16px -10px rgba(255, 143, 171, .4);--font-body: "Mitr", "Nunito", ui-rounded, sans-serif;--motion-fast: .14s;--motion-base: .24s;--ease-soft: cubic-bezier(.34, 1.2, .64, 1);--chart-surface: #fcfcfb;--chart-ink-primary: #0b0b0b;--chart-ink-secondary: #52514e;--chart-ink-muted: #898781;--chart-gridline: #e1e0d9;--chart-baseline: #c3c2b7;--chart-series-1: #2a78d6}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-base: 0ms}}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100dvh;background:var(--bg-shell);background-attachment:fixed;color:var(--c-ink);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::selection{background:var(--c-accent);color:var(--c-ink)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--c-nav-bg)}::-webkit-scrollbar-thumb{background:var(--c-lavender);border-radius:var(--r-pill);border:3px solid var(--c-nav-bg)}::-webkit-scrollbar-thumb:hover{background:var(--c-accent)}*{scrollbar-color:var(--c-lavender) var(--c-nav-bg);scrollbar-width:thin}h1,h2,h3,h4{margin:0 0 var(--sp-4);font-weight:700;line-height:1.25;letter-spacing:-.01em;color:var(--c-ink)}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0 0 var(--sp-3)}p:last-child{margin-bottom:0}a{color:var(--c-accent-solid);text-decoration-color:color-mix(in srgb,var(--c-accent-solid) 45%,transparent);text-underline-offset:2px}a:hover{color:var(--c-accent-solid-hover)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--c-accent) 45%,transparent);border-radius:var(--r-sm)}ul,ol{margin:0;padding:0;list-style:none}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-soft-sm)}h1,h2,h3{font-family:var(--font-body)}label{display:grid;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--c-ink-secondary)}input,select,textarea{font:inherit;color:var(--c-ink);background:var(--c-cream);border:2px solid transparent;border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-4);outline:none;transition:border-color var(--motion-fast) var(--ease-soft),box-shadow var(--motion-fast) var(--ease-soft)}input::placeholder,textarea::placeholder{color:var(--c-ink-secondary);opacity:.75}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--c-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--c-accent) 30%,transparent)}select{border-radius:var(--r-pill);padding-right:var(--sp-6);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--c-ink-secondary) 50%),linear-gradient(135deg,var(--c-ink-secondary) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}button{font:inherit;font-weight:700;border-radius:var(--r-pill);border:none;padding:var(--sp-2) var(--sp-5);background:var(--c-accent-solid);color:#fff;cursor:pointer;box-shadow:var(--shadow-soft-sm);transition:background var(--motion-fast) var(--ease-soft),transform var(--motion-fast) var(--ease-soft),box-shadow var(--motion-fast) var(--ease-soft)}button:hover:not(:disabled){background:var(--c-accent-solid-hover);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}table{width:100%;border-collapse:separate;border-spacing:0}th{text-align:left;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--c-ink-secondary);padding:var(--sp-2) var(--sp-3)}td{padding:var(--sp-3);border-top:1px solid var(--c-border);vertical-align:middle}tbody tr:hover{background:var(--c-nav-bg)}.app-loading{min-height:100dvh;display:grid;place-items:center;color:var(--c-ink-secondary);font-weight:600;background:var(--bg-shell)}[role=alert]{color:var(--c-error);font-weight:600;font-size:var(--fs-sm)}[role=status]{color:var(--c-success);font-weight:600;font-size:var(--fs-sm)}
