.race-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.race-heading{display:flex;align-items:start;justify-content:space-between;padding:18px 18px 11px}.race-heading p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.finish-label{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.race-track{position:relative;padding:2px 16px 18px;background:repeating-linear-gradient(90deg,transparent 0,transparent 19px,rgba(128,128,128,.09) 20px)}.finish{position:absolute;z-index:1;top:0;right:26px;bottom:12px;width:12px;border-left:2px solid var(--ink);background:repeating-linear-gradient(0deg,var(--ink) 0 7px,transparent 7px 14px)}.lane{position:relative;height:55px;border-bottom:1px dashed var(--line)}.lane:last-child{border-bottom:0}.runner{position:absolute;top:7px;left:0;display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 20px);padding:3px 8px 3px 3px;border:0;border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:0 3px 10px rgba(0,0,0,.11);text-align:left;transition:left .55s cubic-bezier(.2,.8,.2,1);cursor:pointer}.runner:hover{transform:translateY(-1px)}.avatar{display:grid;width:34px;height:34px;place-items:center;overflow:hidden;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:850}.avatar img{width:100%;height:100%;object-fit:cover}.runner-name{font-size:.78rem;font-weight:850}.runner-progress{display:block;color:var(--muted);font-size:.65rem;font-weight:700}.runner.done .avatar{animation:celebrate .7s ease-in-out 2}.runner.selected{outline:2px solid var(--accent)}.task{position:relative;min-height:142px;padding:0;border:0;border-radius:18px;background:transparent;perspective:900px;text-align:left;cursor:pointer}.task-inner{position:absolute;inset:0;display:grid;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.2,.75,.25,1)}.task.completed .task-inner{transform:rotateY(180deg)}.task-face{position:absolute;inset:0;display:flex;flex-direction:column;padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--surface);backface-visibility:hidden;box-shadow:var(--shadow)}.task-front .task-icon{font-size:1.7rem}.task-front strong{margin-top:auto;font-size:.98rem;letter-spacing:-.035em;line-height:1.1}.task-front small{margin-top:7px;color:var(--muted);font-size:.73rem;font-weight:750}.task-back{align-items:center;justify-content:center;transform:rotateY(180deg);border-color:color-mix(in srgb,var(--accent) 50%,var(--line));background:var(--accent-soft);text-align:center}.checkmark{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:var(--accent);color:white;font-size:1.35rem;font-weight:800}.task-back strong{margin-top:9px;font-size:.94rem;letter-spacing:-.03em}.task-back small{margin-top:4px;color:var(--muted);font-size:.72rem}.task:active .task-inner{scale:.98}.task[disabled]{cursor:default}.empty-state{grid-column:1/-1;padding:34px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center}@keyframes celebrate{50%{transform:translateY(-6px) rotate(-8deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.task-front{align-items:center;justify-content:center;text-align:center}.task-front .task-icon{position:absolute;top:15px;left:15px;display:grid;width:29px;height:29px;place-items:center;color:var(--accent);font-family:"Noto Color Emoji";font-size:1.7rem}.task-front .task-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.task-front strong{max-width:12ch;margin:0;font-size:clamp(1.2rem,2.2vw,1.65rem);line-height:1.04}.task-front small{position:absolute;right:0;bottom:15px;left:0;margin:0;font-size:.78rem}
.runner{width:48px;height:48px;max-width:none;padding:3px;gap:0;border-radius:50%}.runner .avatar{width:100%;height:100%;flex:1 1 auto;border-radius:50%}.runner .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.runner-name,.runner-progress{display:none}
.runner .avatar{overflow:hidden;clip-path:circle(50%);-webkit-clip-path:circle(50%)}.runner .avatar img{display:block;clip-path:circle(50%);-webkit-clip-path:circle(50%)}
.lane{height:88px}.runner{top:8px;width:auto;height:auto;max-width:none;padding:4px;border-radius:50%;overflow:visible}.runner .avatar{display:grid;width:72px;height:72px;flex:0 0 72px;overflow:hidden;border-radius:50%;clip-path:none;-webkit-clip-path:none}.runner .avatar img{display:block;width:100%;height:100%;border-radius:0;clip-path:none;-webkit-clip-path:none;object-fit:cover}
.weekly-card{width:min(900px,calc(100vw - 32px))}.weekly-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:18px}.weekly-range{margin:8px 0 18px;color:var(--muted);font-size:.84rem}.weekly-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px}.weekly-table{width:100%;min-width:650px;border-collapse:collapse;font-size:.82rem}.weekly-table th,.weekly-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}.weekly-table thead th{color:var(--muted);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.weekly-table th:first-child{text-align:left}.weekly-table tbody tr:last-child>*{border-bottom:0}.weekly-table td strong,.weekly-table td small{display:block}.weekly-table td small{margin-top:3px;color:var(--muted);font-size:.68rem}.weekly-subtotal{background:var(--accent-soft)}.weekly-total{display:flex;align-items:baseline;justify-content:space-between;margin-top:16px;padding:14px 0;border-top:1px solid var(--line)}.weekly-total span{color:var(--muted);font-weight:750}.weekly-total strong{font-size:1.35rem;letter-spacing:-.05em}
.overview-profile{display:flex;align-items:center;gap:9px}.overview-profile .avatar{width:32px;height:32px;flex:0 0 32px}.weekly-balance{background:color-mix(in srgb,var(--blue-soft) 52%,transparent)}.redemption-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.redemption-panel h3{margin:0;font-size:1.08rem;letter-spacing:-.035em}.redemption-panel p:not(.eyebrow){margin:5px 0 0;color:var(--muted);font-size:.82rem;line-height:1.4}.redemption-controls{display:flex;flex-wrap:wrap;align-items:end;justify-content:flex-end;gap:10px}.redemption-controls label{display:grid;gap:5px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.redemption-controls select,.redemption-controls input{min-height:40px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font:inherit;font-size:.86rem;font-weight:700;letter-spacing:normal;text-transform:none}.redemption-controls input{width:76px}.redemption-controls .button{min-height:40px;padding:8px 12px;white-space:nowrap}@media(max-width:680px){.redemption-panel{grid-template-columns:1fr}.redemption-controls{justify-content:flex-start}}
.overview-toast{position:fixed;z-index:1;right:16px;bottom:18px;max-width:calc(100vw - 32px);padding:11px 15px;border-radius:13px;background:var(--ink);color:var(--paper);font-size:.88rem;font-weight:700;opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s}.overview-toast.show{opacity:1;transform:translateY(0)}
.race-heading{padding:15px 18px 9px}.race-heading p{font-size:.76rem}.race-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;padding:0 14px 14px;background:none}.finish{display:none}.lane{height:auto;border:0}.runner{position:relative;top:auto;left:auto;display:flex;width:100%;max-width:none;min-height:64px;padding:5px 8px 5px 5px;gap:9px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:none;transform:none!important}.runner:hover{transform:none}.runner .avatar{display:grid;width:52px;height:52px;flex:0 0 52px;border-radius:10px;clip-path:none;-webkit-clip-path:none}.runner .avatar img{border-radius:0;clip-path:none;-webkit-clip-path:none}.runner-details{display:grid;min-width:0;flex:1;gap:7px;text-align:left}.runner-details strong{overflow:hidden;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.runner-meter{display:block;height:8px;overflow:hidden;border-radius:99px;background:var(--accent-soft)}.runner-meter span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .45s ease}.runner-score{min-width:31px;color:var(--muted);font-size:.75rem;text-align:right}.runner.selected{outline:2px solid var(--accent);outline-offset:1px}.runner.done .avatar{animation:celebrate .7s ease-in-out 2}@media(max-width:440px){.race-track{grid-template-columns:1fr}.runner .avatar{width:48px;height:48px;flex-basis:48px}}
.race-track{grid-template-columns:1fr}.runner-heading{display:flex;align-items:center;min-width:0}.runner-meter{position:relative;height:30px;overflow:visible;background:transparent}.runner-meter::before{position:absolute;top:22px;right:0;left:0;height:8px;border-radius:99px;background:var(--accent-soft);content:""}.runner-meter>span{position:absolute;z-index:1;top:22px;left:0;height:8px}.runner-icon{position:absolute;z-index:2;top:-4px;width:26px;height:26px;filter:brightness(0);transition:left .45s ease,transform .45s ease}.runner-score{align-self:center}
.parent-card{width:min(390px,calc(100vw - 32px))}.field-label{display:grid;gap:6px;color:var(--muted);font-size:.69rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.field-label input{min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.92rem;font-weight:700;letter-spacing:normal;text-transform:none}.customize-card{width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.custom-section{margin-top:23px}.custom-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:11px}.custom-section h3{margin:0;font-size:1.08rem;letter-spacing:-.035em}.custom-section p:not(.eyebrow){margin:4px 0 0;color:var(--muted);font-size:.8rem}.custom-list,.task-editor-list{display:grid;gap:9px}.child-editor,.task-editor{display:flex;align-items:end;gap:10px;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.custom-avatar{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;overflow:hidden;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:.9rem;font-weight:850}.custom-avatar img{width:100%;height:100%;object-fit:cover}.child-editor .field-label{flex:1}.photo-label{position:relative;display:grid;min-height:42px;place-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:.76rem;font-weight:800;cursor:pointer}.photo-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.task-editor .field-label input{width:100%}.icon-field{width:65px;flex:0 0 65px}.task-name-field{flex:1}.points-field{width:78px;flex:0 0 78px}.remove-button{min-width:42px;min-height:42px;color:var(--danger);font-size:1.25rem}.customize-actions{position:sticky;bottom:-24px;margin:22px -24px -24px;padding:16px 24px;background:var(--paper);border-top:1px solid var(--line)}button:disabled{cursor:not-allowed;opacity:.45}@media(max-width:560px){.child-editor,.task-editor{flex-wrap:wrap}.child-editor .field-label{min-width:calc(100% - 58px)}.photo-label{flex:1}.task-name-field{min-width:calc(100% - 163px)}.customize-actions{bottom:-24px}}
@media(max-width:560px){.customize-card{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:16px}.custom-section{margin-top:18px}.custom-section-heading{gap:10px}.custom-section-heading .button{padding:9px 10px;white-space:nowrap}.child-editor{display:grid;grid-template-columns:48px minmax(0,1fr) 42px;gap:8px;align-items:end;padding:9px}.child-editor .custom-avatar{grid-column:1}.child-editor .field-label{grid-column:2;min-width:0}.child-editor .remove-button{grid-column:3}.child-editor .photo-label{grid-column:1/-1;width:100%}.task-editor{display:grid;grid-template-columns:56px minmax(0,1fr) 70px 42px;gap:8px;align-items:end;padding:9px}.task-editor .icon-field,.task-editor .points-field{width:auto;flex:auto}.task-editor .task-name-field{min-width:0}.task-editor .remove-button{min-width:42px}.customize-actions{bottom:-16px;margin:18px -16px -16px;padding:14px 16px}}@media(max-width:360px){.task-editor{grid-template-columns:52px minmax(0,1fr) 64px 40px;gap:6px}.task-editor .remove-button{min-width:40px}.custom-section-heading{align-items:start;flex-direction:column}.custom-section-heading .button{align-self:stretch}}
.default-avatar img{filter:brightness(0)}html[data-theme="dark"] .default-avatar img,html[data-theme="dark"] .runner-icon{filter:brightness(0) invert(1)}@media(prefers-color-scheme:dark){html:not([data-theme]) .default-avatar img,html:not([data-theme]) .runner-icon{filter:brightness(0) invert(1)}}
@media(max-width:560px){.customize-card{width:min(420px,calc(100vw - 32px));max-width:calc(100vw - 32px);overflow-x:hidden}.customize-card *{min-width:0}.custom-list,.task-editor-list,.child-editor,.task-editor{max-width:100%}.child-editor .field-label,.task-editor .field-label{min-width:0}.field-label input,.task-editor .field-label input{min-width:0;max-width:100%}.task-editor{grid-template-columns:48px minmax(0,1fr) 64px 38px;gap:6px;padding:8px}.task-editor .remove-button{min-width:38px;min-height:42px}.icon-field{width:auto;flex:auto}.points-field{width:auto;flex:auto}.customize-actions{flex-wrap:wrap}}@media(max-width:380px){.customize-card{width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:14px}.task-editor{grid-template-columns:42px minmax(0,1fr) 58px 36px;gap:5px;padding:7px}.task-editor .remove-button{min-width:36px}.field-label input{padding-right:7px;padding-left:7px}.customize-actions{margin-right:-14px;margin-left:-14px;padding-right:14px;padding-left:14px}}
@media(max-width:560px){.field-label input,.redemption-controls select,.redemption-controls input{font-size:16px}}
@media(max-width:560px){.customize-card{overflow-x:hidden}.customize-card .quiet-icon{min-width:44px;min-height:44px;flex:0 0 44px}.customize-card .custom-section-heading>.button{min-width:max-content;min-height:44px;flex:0 0 auto}.child-editor{grid-template-columns:48px minmax(0,1fr) 44px;grid-template-rows:auto auto}.child-editor .custom-avatar{grid-column:1;grid-row:1}.child-editor .field-label{grid-column:2;grid-row:1}.child-editor .remove-button{grid-column:3;grid-row:1}.child-editor .photo-label{grid-column:2/4;grid-row:2;width:100%}.customize-actions{position:static;bottom:auto;margin:22px 0 0;padding:0;border:0;background:transparent}.customize-actions .button{min-height:46px}}@media(max-width:380px){.customize-actions{margin:20px 0 0;padding:0}.child-editor{grid-template-columns:44px minmax(0,1fr) 42px}.customize-card .quiet-icon{min-width:42px;min-height:42px;flex-basis:42px}}
#customize-dialog{overflow:hidden;overscroll-behavior:none}#customize-dialog .customize-card{overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.task-editor-table-head{display:grid;grid-template-columns:65px minmax(0,1fr) 78px 42px;gap:10px;padding:0 10px 2px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.task-editor-table-head span:nth-child(3){text-align:left}@media(max-width:560px){.customize-card{max-height:calc(100dvh - 32px);padding:22px 16px 26px}.task-editor-table-head{grid-template-columns:48px minmax(0,1fr) 64px 38px;gap:6px;padding:0 8px 2px;font-size:.64rem}.customize-actions{margin-bottom:4px}}@media(max-width:380px){.customize-card{padding:18px 14px 22px}.task-editor-table-head{grid-template-columns:42px minmax(0,1fr) 58px 36px;gap:5px;padding-right:7px;padding-left:7px}}
.task-editor-table{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.task-editor-table-head{padding-top:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.task-editor-list{gap:0}.task-editor{border:0;border-radius:0;background:transparent}.task-editor:not(:last-child){border-bottom:1px solid var(--line)}
.task-editor-table-head,.task-editor:not(:last-child){border-bottom:0}.remove-button{border:0;background:transparent}
.photo-avatar{position:relative;cursor:pointer}.photo-avatar input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.customize-actions{position:static;bottom:auto;margin:22px 0 0;padding:0;border:0;background:transparent}
.color-button,.color-swatch{display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}.color-button{width:44px;height:44px;flex:0 0 44px}.color-button span{display:block;width:20px;height:20px;border-radius:5px;background:var(--swatch)}.color-options{display:flex;flex:0 0 100%;gap:7px;margin-left:58px;padding:3px 0}.color-swatch{width:28px;height:28px;padding:3px}.color-swatch::after{width:100%;height:100%;border-radius:4px;background:var(--swatch);content:""}.color-swatch.selected{outline:2px solid var(--ink);outline-offset:1px}@media(max-width:560px){.child-editor{grid-template-columns:48px minmax(0,1fr) 44px 44px}.child-editor .color-button{grid-column:3;grid-row:1}.child-editor .remove-button{grid-column:4;grid-row:1}.child-editor .color-options{grid-column:2/5;grid-row:2;margin-left:0;padding-top:1px}}@media(max-width:380px){.child-editor{grid-template-columns:44px minmax(0,1fr) 42px 42px}.color-button{width:42px;height:42px;flex-basis:42px}.color-options{gap:5px}.color-swatch{width:26px;height:26px}}
.child-editor{display:grid;grid-template-columns:48px minmax(0,1fr) 44px 44px;grid-template-rows:auto auto;align-items:end}.child-editor .custom-avatar{grid-column:1;grid-row:1}.child-editor .field-label{grid-column:2;grid-row:1}.child-editor .color-button{grid-column:3;grid-row:1}.child-editor .remove-button{grid-column:4;grid-row:1}.child-editor .color-options{grid-column:2/-1;grid-row:2;margin-left:0;padding-top:1px}@media(max-width:380px){.child-editor{grid-template-columns:44px minmax(0,1fr) 42px 42px}.color-button{width:42px;height:42px;flex-basis:42px}.color-options{gap:5px}.color-swatch{width:26px;height:26px}}
.default-avatar img{filter:brightness(0)!important}.runner-icon.tinted{filter:none!important}
