.ProjectsIndex{padding-top:var(--space-2xl);padding-bottom:var(--space-xl)}.ProjectsIndex-title{font-size:var(--font-lg);font-weight:500;margin:0 0 var(--space-xl)}.ProjectCards{display:flex;flex-direction:column;gap:var(--space-md)}.ProjectCard{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-subtle);border-radius:var(--radius);text-decoration:none;color:inherit;transition:background var(--transition),transform var(--transition-fast)}@media (hover: hover){.ProjectCard:hover{background:var(--bg-hover)}}.ProjectCard:active{transform:scale(.98)}.ProjectCard-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius);flex-shrink:0}.ProjectCard-icon--accent{background:var(--accent-subtle);color:var(--accent)}.ProjectCard-icon--success{background:var(--success-subtle);color:var(--success)}.ProjectCard-icon--warning{background:var(--warning-subtle);color:#d97706}.ProjectCard-icon--pink{background:#ec489926;color:#ec4899}.ProjectCard-icon--purple{background:#8b5cf626;color:#8b5cf6}.ProjectCard-logo{font-size:13px;font-weight:700;line-height:1}.ProjectCard-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ProjectCard-name{font-size:var(--font-base);font-weight:600;color:var(--text)}.ProjectCard-meta{font-size:var(--font-sm);color:var(--text-muted)}.Avatar{width:var(--avatar-size, 32px);height:var(--avatar-size, 32px);font-size:calc(var(--avatar-size, 32px) * .4);background:var(--avatar-bg, #9575cd);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;flex-shrink:0;line-height:1;overflow:hidden}.Avatar-img{width:100%;height:100%;object-fit:cover}.AvatarStack{display:flex;align-items:center;gap:4px;flex-shrink:0}.AvatarStack-arrow{color:var(--text-muted);font-size:var(--font-sm);line-height:1}.Banner{padding:var(--space-sm) var(--space-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);border-radius:var(--radius);border:1px solid var(--border)}.Banner-primary{font-size:14px;font-weight:500;display:flex;align-items:center;gap:var(--space-sm)}.Banner-icon{display:flex;align-items:center}.Banner-secondary{font-size:13px;font-weight:500;white-space:nowrap}.Banner--action{background:var(--banner-action-bg);border-color:var(--banner-action-border);color:var(--banner-action-text)}.Banner--waiting{background:var(--banner-waiting-bg);border-color:var(--banner-waiting-border);color:var(--banner-waiting-text)}.Banner--waiting .Banner-text{animation:pulse 2s ease-in-out infinite}.Banner--ready{background:var(--banner-ready-bg);border-color:var(--banner-ready-border);color:var(--banner-ready-text)}.Banner--warning{background:var(--banner-warning-bg);border-color:var(--banner-warning-border);color:var(--banner-warning-text)}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.BarChart{position:relative;width:100%;min-height:80px}.BarChart .uplot{width:100%}.BarChart--empty{display:flex;align-items:center;justify-content:center;min-height:100px;background:var(--bg-subtle);border-radius:var(--radius);border:1px dashed var(--border)}.BarChart-emptyText{color:var(--text-muted);font-size:var(--font-sm);margin:0}.Calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.Calendar-title{font-weight:600;font-size:var(--font-md)}.Calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--space-xs)}.Calendar-weekday{text-align:center;font-size:var(--font-xs);color:var(--text-muted);padding:var(--space-xs)}.Calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.Calendar-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:var(--font-sm);color:var(--text);position:relative;transition:background var(--transition);padding:0}@media (hover: hover){.Calendar-cell:hover{background:var(--bg-hover)}.Calendar-cell--empty:hover{background:transparent}}.Calendar-cell--empty{cursor:default}.Calendar-cell:disabled{opacity:.3;cursor:not-allowed}@media (hover: hover){.Calendar-cell:disabled:hover{background:transparent}}.Calendar-cell[aria-current=date],.Calendar-cell[aria-selected=true]{font-weight:600}.Calendar-cell[aria-selected=true] .Calendar-dot{background:#fff}.Calendar-day{line-height:1;font-size:var(--font-lg);font-weight:500}.Calendar-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:2px}.Calendar-indicators{position:absolute;bottom:2px;left:4px;right:4px;height:5px;display:flex;gap:2px;border-radius:2px;overflow:hidden}.Calendar-indicator{flex:1;background:var(--indicator-color, var(--accent));border-radius:2px}.Calendar-cell[aria-selected=true] .Calendar-indicator{filter:brightness(1.3)}@keyframes slide-in-left{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.Calendar-grid--slide-left{animation:slide-in-left .2s ease-out}.Calendar-grid--slide-right{animation:slide-in-right .2s ease-out}.FileInput{border:2px dashed var(--border);border-radius:var(--radius);padding:var(--space-2xl) var(--space-lg);text-align:center;cursor:pointer;transition:border-color var(--transition),background var(--transition);margin-bottom:var(--space-md)}@media (hover: hover){.FileInput:hover{border-color:var(--text-muted);background:var(--bg-subtle)}}.FileInput--hasPreview{padding:0;border:none;background:transparent}.FileInput-preview{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}.FileInput-icon{display:block;font-size:var(--space-xl);color:var(--text-muted);margin-bottom:var(--space-sm)}.FileInput-text{font-size:var(--font-md);color:var(--text-muted)}.FileInput-native{display:none}.FlashMessage{position:fixed;bottom:calc(var(--gutter) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:9999;display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);box-shadow:var(--shadow);animation:flashSlideUp .2s ease-out;max-width:calc(100vw - var(--gutter) * 2)}@keyframes flashSlideUp{0%{opacity:0;transform:translate(-50%) translateY(100%)}to{opacity:1;transform:translate(-50%) translateY(0)}}.FlashMessage-content{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-sm);font-weight:500;line-height:1;white-space:nowrap}.FlashMessage-dismiss{display:flex;align-items:center;justify-content:center;padding:var(--space-xs);margin:calc(-1 * var(--space-xs));margin-left:0;border:none;background:none;cursor:pointer;opacity:.7;flex-shrink:0;transition:opacity .15s ease}.FlashMessage-dismiss:hover{opacity:1}.FlashMessage--success{background:var(--success);color:#fff}.FlashMessage--error{background:var(--danger);color:#fff}.FlashMessage--warning{background:var(--warning);color:#1a1a1a}.FlashMessage--info{background:var(--snackbar-bg);color:var(--snackbar-text)}.HorizontalScroll{--hs-fade-width: 32px;--hs-btn-size: 28px;--hs-btn-offset: var(--space-xs);position:relative}.HorizontalScroll:has(.HorizontalScroll-btn) .HorizontalScroll-content{scroll-padding-inline:calc(var(--hs-btn-size) + var(--hs-btn-offset) + var(--space-xs))}.HorizontalScroll-content{display:flex;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.HorizontalScroll-content::-webkit-scrollbar{display:none}.HorizontalScroll-content--gap-xs{gap:var(--space-xs)}.HorizontalScroll-content--gap-sm{gap:var(--space-sm)}.HorizontalScroll-content--gap-md{gap:var(--space-md)}.HorizontalScroll-content>*{flex-shrink:0}.HorizontalScroll--snap .HorizontalScroll-content{scroll-snap-type:x mandatory}.HorizontalScroll--snap .HorizontalScroll-content>*{scroll-snap-align:start}.HorizontalScroll-fade{position:absolute;top:-1px;bottom:-1px;width:var(--hs-fade-width);pointer-events:none;opacity:0;transition:opacity var(--transition);z-index:1;display:flex;align-items:center}.HorizontalScroll-fade[data-visible=true]{opacity:1}.HorizontalScroll-fade--left{left:-1px;background:linear-gradient(to right,var(--bg) 0%,var(--bg) 8px,transparent);justify-content:flex-start;padding-left:2px}.HorizontalScroll-fade--right{right:-1px;background:linear-gradient(to left,var(--bg) 0%,var(--bg) 8px,transparent);justify-content:flex-end;padding-right:2px}.Card .HorizontalScroll-fade--left{background:linear-gradient(to right,var(--bg-card) 0%,var(--bg-card) 8px,transparent)}.Card .HorizontalScroll-fade--right{background:linear-gradient(to left,var(--bg-card) 0%,var(--bg-card) 8px,transparent)}@media not (any-pointer: fine){.HorizontalScroll-fade:after{content:"";width:6px;height:6px;border:2px solid var(--text-muted);border-top:none;border-left:none;opacity:.6}.HorizontalScroll-fade--left:after{transform:rotate(135deg)}.HorizontalScroll-fade--right:after{transform:rotate(-45deg)}}.HorizontalScroll-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;visibility:hidden;transition:visibility 0s,background var(--transition);padding:var(--space-xs);min-width:auto;line-height:1}.HorizontalScroll-btn[data-visible=true]{visibility:visible}.HorizontalScroll-btn--left{left:var(--hs-btn-offset)}.HorizontalScroll-btn--right{right:var(--hs-btn-offset)}.HorizontalScroll .HorizontalScroll-btn.Btn:active:not(:disabled){transform:translateY(-50%)}@media not (any-pointer: fine){.HorizontalScroll-btn{display:none!important}}.InfoBox{padding:var(--space-md);border-radius:var(--radius);border:1px solid var(--border)}.InfoBox-header{display:flex;align-items:center;gap:var(--space-sm)}.InfoBox-title{font-size:var(--font-base);font-weight:600;line-height:1.2}.InfoBox-body{margin:var(--space-xs) 0 0 0;padding-left:24px;font-size:var(--font-sm);line-height:1.4}.InfoBox-content{font-size:var(--font-sm);line-height:1.4}.InfoBox--info{background:var(--banner-info-bg);border-color:var(--banner-info-border);color:var(--banner-info-text)}.InfoBox--warning{background:var(--banner-warning-bg);border-color:var(--banner-warning-border);color:var(--banner-warning-text)}.InfoBox--success{background:var(--banner-ready-bg);border-color:var(--banner-ready-border);color:var(--banner-ready-text)}.InfoBox--waiting{background:var(--banner-waiting-bg);border-color:var(--banner-waiting-border);color:var(--banner-waiting-text)}.InfoBox--waiting .InfoBox-content{animation:pulse 2s ease-in-out infinite}.InlineAction{display:inline-flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease,opacity .15s ease;flex-shrink:0}.InlineAction--sm{width:24px;height:24px;padding:4px}.InlineAction--xs{width:18px;height:18px;padding:2px}.InlineAction--muted{color:var(--color-text-muted);opacity:.6}.InlineAction--muted:hover{opacity:1;background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.InlineAction--ghost{color:var(--color-text)}.InlineAction--ghost:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.LineChart{position:relative;width:100%;min-height:100px}.LineChart .uplot{width:100%}.LineChart--empty{display:flex;align-items:center;justify-content:center;min-height:120px;background:var(--bg-subtle);border-radius:var(--radius);border:1px dashed var(--border)}.LineChart-emptyText{color:var(--text-muted);font-size:var(--font-sm);margin:0}.OfflineBanner{position:fixed;top:0;left:0;right:0;z-index:9999;padding:var(--space-xs) var(--space-md);background:var(--warning);color:var(--warning-text, #000);font-size:var(--font-sm);font-weight:500;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);animation:slideDown .2s ease-out}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}:root{--status-bar-height: 0px}:root[data-status-bar-visible]{--status-bar-height: 28px}.StatusBar{position:fixed;bottom:0;left:0;right:0;z-index:99;background:var(--bg);border-top:1px solid var(--border);padding:var(--space-xs) var(--gutter);padding-bottom:max(var(--space-xs),env(safe-area-inset-bottom))}.StatusBar--offline{background:var(--warning-ghost)}.StatusBar--error{background:var(--danger-ghost, var(--danger-subtle))}.StatusBar-content{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);font-size:var(--font-xs);color:var(--text-secondary);max-width:480px;margin:0 auto}.StatusBar--offline .StatusBar-content{color:var(--warning)}.StatusBar--error .StatusBar-content{color:var(--danger)}.StatusBar-icon{flex-shrink:0}.StatusBar-icon--spinning{animation:StatusBar-spin 1s linear infinite}@keyframes StatusBar-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.SyncIndicator{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--bg-subtle);border-radius:var(--radius-pill);font-size:var(--font-xs);color:var(--text-secondary)}.SyncIndicator-icon{flex-shrink:0}.Snackbar{position:fixed;bottom:calc(var(--gutter) + env(safe-area-inset-bottom,0px));left:0;right:0;z-index:9999;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);pointer-events:none;padding:0 var(--gutter)}.Snackbar-item{background:var(--snackbar-bg);color:var(--snackbar-text);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:var(--space-sm);animation:slide-up .2s ease-out;pointer-events:auto;max-width:100%}.Snackbar-item[data-exiting]{animation:slide-down .2s ease-in forwards}.Snackbar-message{font-size:var(--font-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1}.Snackbar-dismiss{background:none;border:none;color:inherit;padding:var(--space-xs);margin:calc(-1 * var(--space-xs));margin-left:0;cursor:pointer;opacity:.7;display:flex;align-items:center;flex-shrink:0}.Snackbar-dismiss:hover{opacity:1}.Truncate{--truncate-duration: .4s;--truncate-ease: cubic-bezier(.4, 0, .2, 1);--truncate-bg: var(--bg);position:relative;overflow:hidden;transition:max-height var(--truncate-duration) var(--truncate-ease)}.Card .Truncate{--truncate-bg: var(--bg-card)}.Truncate-fade{position:absolute;bottom:0;left:0;right:0;height:64px;background:linear-gradient(to bottom,transparent,var(--truncate-bg));pointer-events:none;transition:opacity var(--truncate-duration) var(--truncate-ease)}.Truncate-btn{position:absolute;bottom:var(--space-sm);left:0;right:0;width:fit-content;margin:0 auto;transition:opacity var(--truncate-duration) var(--truncate-ease)}.Truncate--expanding .Truncate-fade,.Truncate--expanding .Truncate-btn{opacity:0}.rank-badge{width:var(--space-2xl);height:var(--space-2xl);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-xs)}.rank-badge.gold{background:gold;color:#5c4813}.rank-badge.silver{background:silver;color:#4a4a4a}.rank-badge.bronze{background:#cd7f32;color:#4a2c0a}.tag-list{list-style:none;padding:0;margin:var(--space-sm) 0 0;font-size:var(--font-xs);color:var(--accent);text-align:center}.tag{display:block}.tag:before{content:"✓ "}.MuscleMap3D{width:100%;height:100%;cursor:grab;touch-action:none;border-radius:var(--radius-lg);overflow:hidden;position:relative}.MuscleMap3D-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle)}.MuscleMap3D:active{cursor:grabbing}.MuscleMap3D canvas{display:block;width:100%!important;height:100%!important}.MusclePreview3D{width:100%;height:100%;cursor:grab;touch-action:none;border-radius:var(--radius-lg);overflow:hidden;position:relative}.MusclePreview3D:active{cursor:grabbing}.MusclePreview3D canvas{display:block;width:100%!important;height:100%!important}.MuscleMap-canvas{height:50vh;min-height:280px;border-radius:var(--radius-lg);overflow:hidden}.MuscleMap-canvas--preview{height:280px;min-height:0}.MuscleMap-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;flex-shrink:0}.MuscleMap-loading,.MuscleMap-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl)}.MuscleMap-legend{display:flex;flex-direction:row;justify-content:center;gap:var(--space-lg)}.MuscleMap-legendItem{display:flex;align-items:center;gap:var(--space-xs)}.MuscleMap-legendDot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.MuscleMap-legendDot--active{background:#22c55e}.MuscleMap-legendDot--recovering{background:linear-gradient(135deg,#22c55e 0%,var(--bg-hover) 100%)}.MuscleMap-legendDot--recovered{background:var(--bg-hover);border:1px solid var(--border)}.MuscleMap-legendDot--target{background:#ef4444}.MuscleMap-legendDot--synergist{background:#f97316}.MuscleMap-legendDot--stabilizer{background:var(--text-muted)}.GoalStepper-valueStack{display:flex;flex-direction:column;align-items:center}.ExerciseDetail-progressBar{height:8px;background:var(--bg-hover);border-radius:var(--radius-pill);overflow:hidden}.ExerciseDetail-progressFill{height:100%;background:var(--accent);border-radius:var(--radius-pill);transition:width .3s ease}.ExerciseDetail-progressFill--success{background:var(--success)}@media (min-width: 768px){.MuscleMap-canvas{max-height:65vh}}.Login-field .Label{margin-top:0}.AvatarBtn{padding:2px;border-radius:50%;transition:box-shadow var(--transition)}.AvatarBtn:active{box-shadow:0 0 0 2px var(--border)}.Workout-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-lg);font-weight:600;margin:0}.WorkoutFooter{position:fixed;bottom:var(--status-bar-height, 0px);left:0;right:0;z-index:100;padding:var(--space-md) var(--gutter);padding-bottom:max(var(--space-md),env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.WorkoutFooter-content{display:flex;align-items:center;justify-content:space-between;max-width:480px;margin:0 auto;gap:var(--space-md);height:44px}.WorkoutFooter-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.WorkoutFooter-name{font-weight:600;font-size:var(--font-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.WorkoutFooter-timer{font-size:var(--font-sm);opacity:.8;font-variant-numeric:tabular-nums}.WorkoutFooter--active{background:var(--accent);color:#fff;border-top:none}.pb-footer{padding-bottom:80px}.ActiveWorkout{min-height:100dvh;display:flex;flex-direction:column}.ActiveWorkout-header{position:sticky;top:0;background:var(--bg);color:var(--text);padding:max(var(--space-sm),env(safe-area-inset-top)) 0 var(--space-sm);border-bottom:1px solid var(--border);z-index:20}.ActiveWorkout-header .container{display:flex;align-items:center;justify-content:space-between}.ActiveWorkout-headerRow{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;height:44px}.ActiveWorkout-headerInfo{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ActiveWorkout-title{font-weight:600;font-size:var(--font-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ActiveWorkout-timer{font-size:var(--font-sm);font-variant-numeric:tabular-nums;opacity:.8}.ActiveWorkout-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding-top:var(--space-md)}.ActiveWorkout-main>.container{width:100%}.ActiveWorkout-logged{flex:1;overflow-y:auto}.ActiveWorkout-exercise{margin-bottom:var(--space-md)}.ActiveWorkout-exerciseTitle{font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-xs)}.ActiveWorkout-form{position:sticky;bottom:var(--status-bar-height, 0px);background:var(--bg);padding:var(--space-sm) 0 max(var(--space-sm),env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:10}.ActiveWorkout--paused .Input--textarea{resize:vertical;min-height:80px}.ActiveWorkout--paused>main.container{width:100%}.StatCards{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.StatCard--clickable{cursor:pointer;border:none;text-align:left;font:inherit;transition:background var(--transition),transform var(--transition-fast)}@media (hover: hover){.StatCard--clickable:hover{background:var(--bg-hover)}}.StatCard--clickable:active{transform:scale(.98)}.StatCard{display:flex;align-items:center;gap:var(--space-sm);background:var(--bg-subtle);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);flex-shrink:0;min-width:0;scroll-snap-align:start}.StatCard-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);flex-shrink:0}.StatCard-icon--accent{background:var(--accent-subtle);color:var(--accent)}.StatCard-icon--success{background:#22c55e26;color:var(--success)}.StatCard-icon--warning{background:#fbbf2426;color:#d97706}.StatCard-icon--muted{background:var(--bg-hover);color:var(--text-muted)}.StatCard-icon--info{background:#3b82f626;color:#3b82f6}.StatCard-icon--purple{background:#8b5cf626;color:#8b5cf6}.StatCard-icon--pink{background:#ec489926;color:#ec4899}.StatCard-content{display:flex;flex-direction:column;min-width:0}.StatCard-value{font-size:var(--font-base);font-weight:500;line-height:1.3;color:var(--text)}.StatCard-label{font-size:var(--font-sm);color:var(--text-secondary)}.StatCard-sublabel{font-size:var(--font-xs);color:var(--text-muted);opacity:.7}.Card-heading{font-size:var(--font-base);font-weight:600;margin:0}.Card{transition:opacity 1.5s ease-out}[data-has-highlight] .Card{opacity:.4;transition:opacity .3s ease-out}[data-has-highlight] .Card[data-highlighted]{opacity:1}.Workout-dayList{padding-top:var(--space-md);margin-top:var(--space-md)}.Workout-dayTitle{font-size:var(--font-sm);font-weight:600;color:var(--text-muted);margin-bottom:var(--space-sm)}.MuscleGroups{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;max-width:120px}.MuscleGroup{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-xs);padding:2px var(--space-xs);background:var(--accent-subtle);color:var(--accent);border-radius:var(--radius-sm);white-space:nowrap}.MuscleGroup svg{flex-shrink:0}.Drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop-bg);backdrop-filter:blur(var(--backdrop-blur));-webkit-backdrop-filter:blur(var(--backdrop-blur));z-index:calc(var(--z-modal) - 1);animation:fade-in var(--transition)}.Drawer{position:fixed;bottom:0;left:0;right:0;background:var(--bg);border-top:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px #00000026;z-index:var(--z-modal);display:flex;flex-direction:column;transition:height .3s ease;will-change:height}.Drawer--dragging{transition:none}.Drawer--collapsed .Drawer-content,.Drawer--collapsed .Drawer-footer{display:none}.Drawer-dragZone{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.Drawer-dragZone:active{cursor:grabbing}.Drawer-dragHandle{display:flex;justify-content:center;padding:var(--space-sm) 0}.Drawer-dragIndicator{width:36px;height:4px;background:var(--border);border-radius:2px}@media (pointer: fine){.Drawer-dragHandle{display:none}.Drawer-close{display:flex}}@media (pointer: coarse){.Drawer-dragHandle{display:flex}.Drawer-close{display:none}}.Drawer-header{padding:var(--space-sm) var(--gutter) var(--space-md);border-bottom:1px solid var(--border-subtle);flex-shrink:0;cursor:pointer;transition:background var(--transition);-webkit-tap-highlight-color:transparent}@media (hover: hover){.Drawer--expanded .Drawer-header:hover,.Drawer--collapsed .Drawer-header:hover{background:var(--bg-hover)}}.Drawer--collapsed .Drawer-header{border-bottom:none}.Drawer-headerContent{display:flex;flex-direction:column;gap:2px}.Drawer-title{font-size:var(--font-lg);font-weight:600;line-height:1.2}.Drawer-timer{font-size:var(--font-sm);font-variant-numeric:tabular-nums;color:var(--text-muted)}.Drawer-summary{color:var(--text-muted);font-size:var(--font-sm);margin-left:var(--space-sm)}.Drawer-content{flex:1;overflow:hidden;padding:var(--gutter);display:flex;flex-direction:column;min-height:0}.Drawer-section{margin-bottom:var(--space-xl)}.Drawer-sectionHeader{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;margin-bottom:var(--space-md)}.Drawer-sectionTitle{font-size:var(--font-sm);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0}.Drawer-footer{padding:var(--gutter);border-top:1px solid var(--border-subtle);flex-shrink:0}.SetForm{background:var(--bg-subtle);border-radius:var(--radius);padding:var(--space-sm)}.SetForm-field{margin-bottom:var(--space-md)}.SetForm-field .Label{margin-top:0;margin-bottom:var(--space-xs);font-size:var(--font-sm)}.Stepper{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-xs)}.Stepper-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-hover);color:var(--text);font-size:11px;font-weight:500;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition),transform var(--transition-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (hover: hover){.Stepper-btn:hover{background:var(--accent-subtle);color:var(--accent)}}.Stepper-btn:active{transform:scale(.95)}.Stepper-value{font-size:var(--font-lg);font-weight:700;width:60px;box-sizing:border-box;text-align:center;font-variant-numeric:tabular-nums;background:none;border:1px solid transparent;color:var(--text);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.Stepper-value:hover{background:var(--bg-hover)}.Stepper-value:disabled{cursor:default}.Stepper-value:disabled:hover{background:none}.Stepper-btn--sm{width:28px;height:28px;font-size:9px}.Stepper-btn--md{width:32px;height:32px;font-size:10px}.Stepper-sign{font-size:.7em;opacity:.7}.Stepper-center{display:flex;flex-direction:column;align-items:center;min-width:60px}.Stepper-label{font-size:var(--font-xs);color:var(--text-muted)}.Stepper-input{font-size:var(--font-lg);font-weight:700;width:60px;box-sizing:border-box;text-align:center;font-variant-numeric:tabular-nums;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text);padding:var(--space-xs) var(--space-sm);outline:none;cursor:pointer;transition:background var(--transition-fast)}.Stepper-input:hover:not(:disabled){background:var(--bg-hover)}.Stepper-input:focus,.Stepper-input--editing{background:var(--bg);border-color:var(--accent);cursor:text}.Stepper-input:disabled{cursor:default;opacity:.5}.PresetChips{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.PresetChip{min-width:40px;height:28px;padding:0 var(--space-sm);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:var(--font-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (hover: hover){.PresetChip:hover{border-color:var(--accent);color:var(--accent)}}.PresetChip:active{transform:scale(.95)}.PresetChip--active{background:var(--accent);border-color:var(--accent);color:#fff}.SetBadge{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-sm);background:var(--bg-hover);padding:2px var(--space-sm);border-radius:var(--radius-sm)}.SetBadge-delete{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;cursor:pointer;color:var(--text-muted);border-radius:2px;transition:color var(--transition),background var(--transition)}@media (hover: hover){.SetBadge-delete:hover{color:var(--danger);background:var(--danger-subtle)}}.ExerciseSelected{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.ExerciseSelected-info{display:flex;align-items:center;gap:var(--space-sm)}.ExerciseSelected-name{font-size:var(--font-lg);font-weight:600}.ExercisePicker{display:flex;flex-direction:column;height:100%;min-height:0}.ExercisePicker-search{margin-bottom:var(--space-sm)}.ExercisePicker-search .Input{margin-bottom:0}.ExercisePicker-empty{padding:var(--space-xl);text-align:center}.ExercisePicker>.ChipGroup{flex-shrink:0}.ExercisePicker>.List{flex:1;overflow-y:auto;min-height:0}.SetForm-field--disabled{opacity:.5;pointer-events:none}.SetForm--empty{padding:var(--space-xl) var(--space-md)}.ExerciseBtn{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:left}@media (hover: hover){.ExerciseBtn:hover{color:var(--accent)}}.ExerciseBtn-meta{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-muted);font-size:var(--font-sm)}.Badge--recent{background:#fef3c7;color:#92400e;margin-left:var(--space-sm)}.Badge--new{display:inline-block;padding:2px 6px;font-size:var(--font-xs);font-weight:500;background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);margin-left:var(--space-sm);text-transform:uppercase;letter-spacing:.5px}.Badge--target{background:var(--accent);color:var(--bg)}.Badge--synergist{background:var(--success);color:var(--bg)}.Badge--stabilizer{background:var(--text-muted);color:var(--bg)}.Drawer .List-item{padding:var(--space-sm) var(--space-md)}.Drawer .List-meta{flex-wrap:wrap;gap:var(--space-xs)}.WorkoutDrawer-layout{display:flex;flex-direction:column;height:100%;min-height:0}.WorkoutDrawer-logged{flex:1;overflow-y:auto;min-height:0}.WorkoutDrawer-layout>.Drawer-section:last-child{flex-shrink:0;border-top:1px solid var(--border-subtle);padding-top:var(--space-md);margin-top:auto}.WorkoutDrawer-exercise{margin-bottom:var(--space-lg)}.WorkoutDrawer-exerciseTitle{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-base);font-weight:600;margin:0 0 var(--space-sm) 0}.WorkoutDrawer-exerciseTitle .text--muted{font-weight:400}.Btn--icon{padding:var(--space-xs);min-width:auto}.WorkoutDetail-summary{padding:var(--space-lg) 0;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-md)}.WorkoutDetail-title{font-size:var(--font-xl);font-weight:600;margin:0}.WorkoutDetail-meta{display:flex;gap:var(--space-md);margin-top:var(--space-xs);font-size:var(--font-sm);color:var(--text-secondary)}.WorkoutDetail-duration{font-weight:600;color:var(--accent)}.WorkoutDetail-exercise{margin-bottom:var(--space-lg)}.WorkoutDetail-exerciseTitle{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-base);font-weight:600;margin:0 0 var(--space-sm) 0}.WorkoutDetail-exerciseTitle .text--muted{font-weight:400}.Account-profile{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl) 0}.Account-name{font-size:var(--font-xl);font-weight:600;margin:var(--space-md) 0 var(--space-xs)}.ExerciseDetail-header{padding-top:var(--space-md);padding-bottom:var(--space-md)}.ExerciseDetail-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-xl);font-weight:600;margin:0}.ExerciseDetail-history{display:flex;flex-direction:column;gap:var(--space-lg)}.ExerciseDetail-workoutGroup{display:flex;flex-direction:column;gap:var(--space-sm)}.ExerciseDetail-workoutLink{display:inline-flex;align-items:center;gap:var(--space-xs);background:none;border:none;padding:0;margin-bottom:var(--space-sm);font:inherit;font-size:var(--font-sm);font-weight:600;color:var(--accent);cursor:pointer;text-align:left}@media (hover: hover){.ExerciseDetail-workoutLink:hover{text-decoration:underline}}.ExerciseDetail-muscleSection,.ExerciseDetail-charts,.ExerciseDetail-historySection{padding-top:var(--space-xl)}.ExerciseDetail-charts{display:flex;flex-direction:column;gap:var(--space-lg)}.ExerciseDetail-chartSection{display:flex;flex-direction:column;gap:var(--space-sm)}.ExerciseDetail-charts .Card{padding:var(--space-sm)}.ExerciseDetail-summary{margin:0 0 var(--space-md) 0}.FilterToggle{display:flex;gap:var(--space-xs);background:var(--bg-subtle);padding:var(--space-xs);border-radius:var(--radius-md)}.FilterToggle-btn{flex:1;padding:var(--space-xs) var(--space-sm);background:transparent;border:none;border-radius:var(--radius-sm);font:inherit;font-size:var(--font-sm);font-weight:500;color:var(--text-muted);cursor:pointer;transition:background-color .15s,color .15s}.FilterToggle-btn--active{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #0000001a}.ChipGroup{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.stack{display:flex;flex-direction:column;gap:var(--space-md)}.Modal-close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:background var(--transition),color var(--transition)}.Modal{position:relative}.GoalStepper{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);margin:var(--space-xl) 0}.GoalStepper-btn{width:56px;height:56px;border-radius:50%;border:none;background:var(--bg-subtle);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition),transform var(--transition-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (hover: hover){.GoalStepper-btn:hover:not(:disabled){background:var(--accent-subtle);color:var(--accent)}}.GoalStepper-btn:active:not(:disabled){transform:scale(.95)}.GoalStepper-btn:disabled{opacity:.3;cursor:not-allowed}.GoalStepper-value{font-size:var(--font-3xl, 2rem);font-weight:700;min-width:60px;text-align:center;font-variant-numeric:tabular-nums}.AcceptInvite-card{text-align:center;max-width:320px;width:100%;padding:var(--space-xl);background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border)}.AcceptInvite-avatar{margin-bottom:var(--space-lg)}.AcceptInvite-actions{display:flex;gap:var(--space-sm);justify-content:center}.InviteLink-input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);font-family:var(--font-mono, monospace);font-size:var(--font-sm);color:var(--text);text-overflow:ellipsis}.text--mono{font-family:var(--font-mono, monospace);font-size:var(--font-sm)}.MiniPlayer{position:fixed;bottom:var(--status-bar-height, 0px);left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--gutter);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border);cursor:pointer;z-index:100}.MiniPlayer-status{display:flex;align-items:center;gap:var(--space-xs);font-weight:500;color:var(--accent)}.MiniPlayer-time{font-size:var(--font-lg);font-weight:600;font-variant-numeric:tabular-nums}.RoutineExerciseEdit{width:100%;display:flex;flex-direction:column;gap:var(--space-sm)}.RoutineExerciseEdit .row{align-items:center}.RoutineExerciseReorder{display:flex;flex-direction:column;margin-right:var(--space-xs)}.List-details--clickable{cursor:pointer;flex:1}@media (hover: hover){.List-details--clickable:hover .List-name{color:var(--accent)}}.Modal--tall{max-height:80vh;display:flex;flex-direction:column}.Modal--tall .List--scroll{flex:1;overflow-y:auto;min-height:0;max-height:300px}.FormGroup--inline{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:0}.FormLabel--sm{font-size:var(--font-sm);margin-bottom:0}.Input--sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-sm)}.RoutineGuide{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--space-lg);overflow:hidden}.RoutineGuide-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--bg-subtle);border-bottom:1px solid var(--border)}.RoutineGuide-title{font-weight:600;font-size:var(--font-sm)}.RoutineGuide-progress{font-size:var(--font-sm);color:var(--text-muted)}.RoutineGuide-next{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--accent-subtle);border-bottom:1px solid var(--border)}.RoutineGuide-nextLabel{font-size:var(--font-sm);color:var(--accent)}.RoutineGuide-nextName{font-weight:600;color:var(--accent)}.RoutineGuide-list{max-height:200px;overflow-y:auto}.RoutineGuide-exercise{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);cursor:pointer;transition:background var(--transition)}@media (hover: hover){.RoutineGuide-exercise:hover{background:var(--bg-hover)}}.RoutineGuide-exercise--completed{color:var(--text-muted);text-decoration:line-through}.RoutineGuide-exercise--current{background:var(--accent-subtle);font-weight:500}.RoutineGuide-exerciseName{display:flex;align-items:center;gap:var(--space-xs)}.RoutineScroller{margin-bottom:var(--space-md);margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter)}.RoutineScroller-content{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.RoutineScroller-target{font-size:var(--font-xs);color:var(--text-muted)}.RoutineScroller-chip{flex-shrink:0;display:flex;flex-direction:row;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;transition:background var(--transition),border-color var(--transition)}@media (hover: hover){.RoutineScroller-chip:hover{background:var(--bg-hover);border-color:var(--border)}}.RoutineScroller-chip--active{background:var(--accent-subtle);border-color:var(--accent)}.RoutineScroller-chip--complete{border-color:var(--success)}.RoutineScroller-chip--complete .RoutineScroller-name{color:var(--success)}.RoutineScroller-name{font-size:var(--font-xs);font-weight:500;white-space:nowrap;text-align:center}.RoutineHeader{margin-bottom:var(--space-sm)}.RoutineHeader-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xs)}.RoutineHeader-nameRow{display:flex;align-items:center;gap:var(--space-xs)}.RoutineHeader-name{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary)}.RoutineHeader-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--transition),color var(--transition)}@media (hover: hover){.RoutineHeader-clear:hover{background:var(--bg-hover);color:var(--text)}}.RoutineHeader--empty{margin-bottom:var(--space-md)}.RoutinePicker-list{padding-top:var(--space-sm)}.DayPicker-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:44px;aspect-ratio:1;padding:var(--space-xs);background:transparent;border:none;border-radius:var(--radius);cursor:pointer;transition:background var(--transition);flex-shrink:0}@media (hover: hover){.DayPicker-day:hover{background:var(--bg-hover)}}.DayPicker-day[aria-selected=true] .DayPicker-weekday,.DayPicker-day[aria-selected=true] .DayPicker-date{color:#fff}.DayPicker-day[aria-selected=true] .DayPicker-dot{background:#fff}.DayPicker-weekday{font-size:var(--font-xs);color:var(--text-muted);line-height:1}.DayPicker-date{font-size:var(--font-lg);font-weight:600;line-height:1.2}.DayPicker-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:2px}.DayPicker-workouts{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.DayPicker-workouts-title{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-sm)}.WorkoutApp:has(.StatusBar) .WorkoutFooter{bottom:calc(24px + env(safe-area-inset-bottom))}.FistBumpCards{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.FistBumpCard{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);background:var(--bg-subtle);border:none;border-radius:var(--radius);padding:var(--space-md);min-width:100px;flex-shrink:0;cursor:pointer;font:inherit;text-align:center;scroll-snap-align:start;transition:background var(--transition),transform var(--transition-fast)}@media (hover: hover){.FistBumpCard:hover{background:var(--bg-hover)}}.FistBumpCard:active{transform:scale(.98)}.FistBumpCard-stack{position:relative;width:44px;height:44px;flex-shrink:0}.FistBumpCard-fist{position:absolute;top:0;left:0;font-size:18px;line-height:1;background:var(--bg-hover);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.FistBumpCard-avatar{position:absolute;bottom:0;right:0;border-radius:50%;box-shadow:0 0 0 2px var(--bg-subtle)}.FistBumpCard-content{display:flex;flex-direction:column;align-items:center;gap:2px}.FistBumpCard-name{font-size:var(--font-sm);font-weight:600;color:var(--text);white-space:nowrap;line-height:1.3}.FistBumpCard-meta{font-size:var(--font-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.FistBumpCard-time{font-size:10px;color:var(--text-muted)}.Login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--gutter)}.Login-content{text-align:center;max-width:320px;width:100%}.Login-brand{text-align:center}.Login-title{font-size:var(--font-2xl);margin:0 0 var(--space-xs)}.Login-divider{display:flex;align-items:center;gap:var(--space-md);color:var(--text-muted);font-size:var(--font-sm)}.Login-divider:before,.Login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.Login-header{display:flex;justify-content:flex-start;margin-bottom:var(--space-xl)}.Login-field{position:relative;text-align:left}.Login-field .Label{margin-top:0;margin-bottom:var(--space-xs)}.Login-field .Input{margin-bottom:0}.Login-error{background:var(--danger-subtle);color:var(--danger);font-size:var(--font-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);margin:0;text-align:left}.Login-forgotLink{display:inline-block;margin-top:var(--space-lg);background:none;border:none;padding:0;font:inherit;font-size:var(--font-sm);color:var(--text-muted);cursor:pointer}@media (hover: hover){.Login-forgotLink:hover{color:var(--accent);text-decoration:underline}}.Login-terms{margin-top:var(--space-lg);font-size:var(--font-xs);color:var(--text-muted)}.Login-success{animation:scale-in var(--transition-slow)}.Login-successIcon{width:64px;height:64px;margin:0 auto var(--space-lg);display:flex;align-items:center;justify-content:center;background:var(--success);color:#fff;border-radius:50%;font-size:var(--font-2xl)}.Login-spinner{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.AddExpense-amount{position:relative}.AddExpense-currency{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:var(--font-lg);pointer-events:none}.AddExpense-amount .Input{padding-left:calc(var(--space-md) + 1.5ch);font-size:var(--font-lg);font-weight:600}.AddExpense-paidBy{display:flex;align-items:center;gap:var(--space-sm)}.AddExpense-paidBy .Input{flex:1}.AcceptInvite{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--gutter)}.AcceptInvite-card{text-align:center;max-width:320px;width:100%;padding:var(--space-xl);background:var(--bg-card);border-radius:var(--radius-lg)}.AcceptInvite-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg);background:var(--bg-subtle)}.AcceptInvite-icon--accent{background:var(--accent-subtle);color:var(--accent)}.AcceptInvite-icon--success{background:var(--success-subtle, #d4edda);color:var(--success, #28a745)}.AcceptInvite-icon--error{background:var(--danger-subtle);color:var(--danger)}.AcceptInvite-title{font-size:var(--font-xl);margin:0 0 var(--space-sm)}.AcceptInvite-subtitle{color:var(--text-muted);margin:0}.AcceptInvite-actions{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-xl)}.Modal-close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}@media (hover: hover){.Modal-close:hover{background:var(--bg-hover);color:var(--text)}}.Modal-close:active{transform:scale(.95)}.InviteLink{margin:var(--space-lg) 0}.InviteLink-input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text);font-size:var(--font-sm);font-family:monospace;text-overflow:ellipsis}.InviteLink-input:focus{outline:none;border-color:var(--accent)}.Divider-label{display:flex;align-items:center;gap:var(--space-md);color:var(--text-muted);font-size:var(--font-sm)}.Divider-label:before,.Divider-label:after{content:"";flex:1;height:1px;background:var(--border)}.Divider-label span{text-transform:uppercase;letter-spacing:.05em;font-weight:500}:root{--bg: #fafafa;--bg-subtle: rgba(0, 0, 0, .04);--bg-card: #f0f0f0;--bg-hover: rgba(0, 0, 0, .06);--text: #1a1a1a;--text-secondary: #555;--text-muted: #888;--border: rgba(0, 0, 0, .1);--border-subtle: rgba(0, 0, 0, .06);--accent: #0066cc;--accent-subtle: rgba(0, 102, 204, .1);--danger: #cc3333;--danger-subtle: rgba(204, 51, 51, .12);--danger-ghost: #fde8e8;--success: #22863a;--success-subtle: rgba(34, 134, 58, .12);--success-ghost: #e6f4ea;--warning: #f59e0b;--warning-subtle: rgba(245, 158, 11, .12);--warning-ghost: #fef3cd;--font-xs: 11px;--font-sm: 12px;--font-md: 13px;--font-base: 14px;--font-lg: 1.1rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--gutter: 20px;--touch-target: 44px;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--radius-pill: 50px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow: 0 2px 4px rgba(0, 0, 0, .2);--backdrop-bg: rgba(0, 0, 0, .5);--backdrop-blur: 4px;--transition-fast: .1s ease;--transition: .15s ease;--transition-slow: .25s ease;--banner-action-bg: #dbeafe;--banner-action-border: #3b82f6;--banner-action-text: #1e40af;--banner-waiting-bg: var(--bg-subtle);--banner-waiting-border: var(--border);--banner-waiting-text: var(--text-muted);--banner-ready-bg: #d1fae5;--banner-ready-border: #10b981;--banner-ready-text: #065f46;--banner-info-bg: #dbeafe;--banner-info-border: #3b82f6;--banner-info-text: #1e40af;--banner-warning-bg: var(--warning-ghost);--banner-warning-border: var(--warning);--banner-warning-text: #92400e;--snackbar-bg: #323232;--snackbar-text: #fff;--snackbar-error-bg: var(--danger);--snackbar-error-text: #fff}@media (prefers-color-scheme: dark){:root{--bg: #111;--bg-subtle: rgba(255, 255, 255, .06);--bg-card: #1a1a1a;--bg-hover: rgba(255, 255, 255, .1);--text: #f0f0f0;--text-secondary: #bbb;--text-muted: #777;--border: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .06);--accent: #4d9fff;--accent-subtle: rgba(77, 159, 255, .15);--danger: #ff6b6b;--danger-subtle: rgba(255, 107, 107, .15);--danger-ghost: #2d1a1a;--success: #4caf50;--success-subtle: rgba(76, 175, 80, .15);--success-ghost: #1a2d1b;--warning: #fbbf24;--warning-subtle: rgba(251, 191, 36, .15);--warning-ghost: #2d2714;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow: 0 2px 4px rgba(0, 0, 0, .4);--banner-action-bg: rgba(59, 130, 246, .15);--banner-action-border: rgba(59, 130, 246, .4);--banner-action-text: #60a5fa;--banner-waiting-bg: var(--bg-subtle);--banner-waiting-border: var(--border);--banner-waiting-text: var(--text-muted);--banner-ready-bg: rgba(16, 185, 129, .15);--banner-ready-border: rgba(16, 185, 129, .4);--banner-ready-text: #34d399;--banner-info-bg: rgba(59, 130, 246, .15);--banner-info-border: rgba(59, 130, 246, .4);--banner-info-text: #60a5fa;--banner-warning-bg: var(--warning-ghost);--banner-warning-border: rgba(180, 140, 50, .4);--banner-warning-text: #b8956a;--snackbar-bg: #424242;--snackbar-text: #fff;--snackbar-error-bg: var(--danger);--snackbar-error-text: #fff}}html{-webkit-tap-highlight-color:transparent}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-down{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}*{box-sizing:border-box}button,input,textarea,select{font:inherit;color:inherit}button{border:none;background:none;cursor:pointer;padding:0;margin:0}input,textarea,select{margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:var(--font-base);line-height:1.4;color:var(--text);background:var(--bg);margin:0;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:600;margin:0 0 var(--space-sm)}h1{font-size:var(--font-xl)}h2{font-size:var(--font-lg)}h3{font-size:var(--font-base);color:var(--text-muted)}p{margin:0 0 var(--space-sm)}a{color:var(--accent);text-decoration:none;transition:opacity var(--transition)}@media (hover: hover){a:hover{opacity:.8}}a:active{opacity:.6}img{max-width:100%;height:auto}form{margin:0}header{padding-bottom:var(--space-lg);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle)}header h1{margin-bottom:0}section,.section{margin-top:var(--space-xl)}code{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875em;background:var(--bg-subtle);padding:.15em .4em;border-radius:var(--radius-sm);color:var(--text-secondary)}pre{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-sm);background:var(--bg-subtle);padding:var(--space-md);border-radius:var(--radius);overflow-x:auto;margin:0 0 var(--space-sm);line-height:1.5;white-space:pre;-webkit-overflow-scrolling:touch}pre code{background:none;padding:0;font-size:inherit;color:inherit}pre.plain,code.plain{background:none;padding:0}.fixed{position:fixed}.fixed-top{position:fixed;top:0;left:0;right:0}.fixed-bottom{position:fixed;bottom:0;left:0;right:0}.fixed-full{position:fixed;top:0;right:0;bottom:0;left:0}.sticky-top{position:sticky;top:0}.z-bar{z-index:100}.z-modal{z-index:200}.z-overlay{z-index:300}.flex-center{display:flex;align-items:center;justify-content:center}.row{display:flex;gap:var(--space-sm);align-items:center}.row--between{justify-content:space-between}.row--gap-xs{gap:var(--space-xs)}.row--gap-md{gap:var(--space-md)}.row--gap-lg{gap:var(--space-lg)}.row--stretch{flex:1}.stack{display:flex;flex-direction:column}.stack--sm{gap:var(--space-sm)}.stack--md{gap:var(--space-md)}.stack--lg{gap:var(--space-lg)}.grid{display:grid;gap:var(--space-md)}.grid--2col{grid-template-columns:repeat(2,1fr);margin-top:var(--space-md)}.text--muted{font-size:var(--font-sm);color:var(--text-muted);margin:var(--space-xs) 0 0}.text--secondary{color:var(--text-secondary)}.text--error{color:var(--danger);font-size:var(--font-md);margin:var(--space-sm) 0}.text--success{color:var(--success)}.text--warning{color:var(--warning)}.text--danger{color:var(--danger)}.text--sm{font-size:var(--font-sm)}.text--lg{font-size:var(--font-lg)}.text--xl{font-size:var(--font-xl)}.text--mono{font-family:ui-monospace,monospace;letter-spacing:.03em}.text--center{text-align:center}.text--display{font-size:var(--font-2xl);font-weight:700;letter-spacing:.1em;margin:0}.bg-page{background:var(--bg)}.bg-subtle{background:var(--bg-subtle)}.bg-transparent{background:transparent!important}.border-t{border-top:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.container{max-width:480px;margin:0 auto}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.px-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.px-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.py-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.pt-md{padding-top:var(--space-md)}.pb-md{padding-bottom:var(--space-md)}.px-gutter{padding-left:var(--gutter);padding-right:var(--gutter)}.m-0{margin:0}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.justify-start{justify-content:flex-start}.h-14{height:56px}.h-16{height:64px}.h-32{height:128px}.h-36{height:144px}.min-h-50{min-height:50vh}.pt-safe{padding-top:max(var(--space-md),env(safe-area-inset-top))}.pb-safe{padding-bottom:max(var(--space-md),env(safe-area-inset-bottom))}[aria-current=true],[aria-current=page],[aria-current=step],[aria-current=date]{background:var(--accent-subtle)}@media (hover: hover){[aria-current=true]:hover,[aria-current=page]:hover,[aria-current=step]:hover,[aria-current=date]:hover{background:var(--accent-subtle)}}[aria-selected=true]{background:var(--accent);color:#fff}@media (hover: hover){[aria-selected=true]:hover{background:var(--accent)}}[aria-pressed=true]{background:var(--accent);color:#fff}.Btn{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:inherit;font-size:var(--font-md);font-weight:500;padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:background var(--transition),transform var(--transition-fast);touch-action:manipulation}.Btn svg{display:block;flex-shrink:0;width:1.25em;height:1.25em}.Btn--sm svg{width:1em;height:1em}.Btn:active:not(:disabled){transform:scale(.97)}.Btn:disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.Btn--accent{background:var(--accent);color:#fff}.Btn--danger{background:var(--danger-subtle);color:var(--danger)}.Btn--success{background:var(--success);color:#fff}.Btn--warning{background:var(--warning);color:#422006}.Btn--warning-ghost{background:var(--warning-subtle);color:var(--warning)}.Btn--ghost{background:var(--accent-subtle);color:var(--accent)}.Btn--tertiary{background:transparent;color:var(--text-muted)}.Btn--white{background:#fff;color:var(--accent)}@media (hover: hover){.Btn:hover:not(:disabled){background:var(--bg-hover)}.Btn--accent:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}.Btn--danger:hover:not(:disabled){background:var(--danger);color:#fff}.Btn--success:hover:not(:disabled){background:var(--success);filter:brightness(1.1)}.Btn--warning:hover:not(:disabled){background:var(--warning);filter:brightness(1.05)}.Btn--warning-ghost:hover:not(:disabled){background:var(--warning-subtle);filter:brightness(.95)}.Btn--ghost:hover:not(:disabled){background:var(--accent-subtle);filter:brightness(.95)}.Btn--tertiary:hover:not(:disabled){background:var(--bg-subtle)}.Btn--white:hover:not(:disabled){background:#fff;filter:brightness(.95)}}.Btn--muted{opacity:.6}.Btn--mono{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-xs);font-weight:500;font-family:ui-monospace,monospace;letter-spacing:.03em;padding:var(--space-xs) var(--space-sm);background:var(--bg-subtle);color:var(--text-muted)}@media (hover: hover){.Btn--mono:hover:not(:disabled){background:var(--bg-hover)}}.Btn--overlay{background:var(--bg);box-shadow:var(--shadow);border:1px solid var(--border)}@media (hover: hover){.Btn--overlay:hover:not(:disabled){background:var(--bg-subtle)}}.Btn--sm{font-size:var(--font-sm);padding:var(--space-xs) var(--space-md)}.Btn--full{width:100%;justify-content:center}.Input{font-family:inherit;font-size:var(--font-base);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);width:100%;margin-bottom:var(--space-sm)}.Input:focus{outline:none;border-color:var(--text-muted)}.Input::placeholder{color:var(--text-muted)}.Input:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:not-allowed;opacity:.7}.Input--code{text-transform:uppercase;letter-spacing:.1em;font-weight:600;text-align:center}.Input--sm{font-size:var(--font-sm);padding:var(--space-xs) var(--space-sm);width:auto;margin-bottom:0}select.Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm) center;padding-right:var(--space-xl)}.InputGroup{position:relative;display:flex;align-items:center}.InputGroup .Input{margin-bottom:0}.InputGroup-icon{position:absolute;left:var(--space-md);display:flex;align-items:center;justify-content:center;color:var(--text-muted);pointer-events:none}.InputGroup--withIcon .Input{padding-left:calc(var(--space-md) + 18px + var(--space-xs))}.InputGroup-action{position:absolute;right:0;width:var(--touch-target);height:var(--touch-target);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:0 var(--radius) var(--radius) 0}.InputGroup:has(.InputGroup-action) .Input{padding-right:var(--touch-target)}@media (hover: hover){.InputGroup-action:hover{color:var(--text)}}.RadioGroup{display:flex;flex-direction:column;gap:var(--space-sm)}.Radio{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);background:var(--bg-subtle);border-radius:var(--radius);cursor:pointer;transition:background var(--transition)}@media (hover: hover){.Radio:hover{background:var(--bg-hover)}}.Radio input[type=radio]{flex:none;width:20px;height:20px;margin:2px 0 0;cursor:pointer}.Radio-label{display:flex;flex-direction:column;gap:2px}.Radio-label strong{font-weight:500;color:var(--text)}.Radio-label .text--muted{font-size:var(--font-sm)}.Label{display:block;font-size:var(--font-sm);font-weight:500;color:var(--text-muted);margin-bottom:var(--space-xs);margin-top:var(--space-md)}.List{list-style:none;padding:0;margin:0;background:var(--bg-card);border-radius:var(--radius);overflow:hidden}.List-item{padding:var(--space-md);min-height:var(--touch-target);border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;gap:var(--space-md)}.List-item:last-child{border-bottom:none}.List-icon{flex:none;display:flex;align-items:center;justify-content:center}.List-label,.List-details{flex:1;min-width:0}.List-thumb{flex:none;width:var(--space-3xl);height:var(--space-3xl);border-radius:var(--radius-sm);object-fit:cover}.List-thumb--placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.List-value{flex:none;color:var(--text-muted);font-size:var(--font-sm)}.List-action{flex:none}.List-name{font-weight:500}.List-meta{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-sm);color:var(--text-muted)}.List-item input[type=checkbox]{flex:none;width:20px;height:20px;margin:0;cursor:pointer}.List-item input[type=number]{flex:none;width:56px;height:var(--space-2xl);margin:0;text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-sm);font-size:var(--font-base);background:var(--bg)}.List--results .List-item{justify-content:flex-start}.List-item--clickable{cursor:pointer;transition:background var(--transition)}@media (hover: hover){.List-item--clickable:hover{background:var(--bg-hover)}}.List-item--clickable:active{background:var(--bg-subtle)}.List-item--muted{opacity:.5}.List-item--muted .List-name{font-weight:400}.List-item--expandable{cursor:pointer;transition:background var(--transition)}@media (hover: hover){.List-item--expandable:hover{background:var(--bg-hover)}}.List-item--expandable:active{background:var(--bg-subtle)}.List-actions{display:flex;align-items:center;gap:var(--space-sm);flex:none;max-width:0;opacity:0;overflow:hidden;transition:max-width .2s ease,opacity .15s ease}.List-item--expandable:after{content:"···";color:var(--text-muted);font-size:var(--font-sm);letter-spacing:1px;flex:none;opacity:.6;transition:opacity .15s ease}.List-item--expandable[aria-expanded=true]:after{opacity:0;width:0;overflow:hidden}.List-item--expandable[aria-expanded=true] .List-actions{max-width:120px;opacity:1}.Card{background:var(--bg-card);border-radius:var(--radius);padding:var(--space-md)}.Card[aria-selected=true]{outline:2px solid var(--accent)}.Card--row{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg)}.Card-thumb{width:80px;height:80px;border-radius:var(--radius-sm);flex-shrink:0;padding:var(--space-sm);background:#fff}.Card--interactive{position:relative;text-align:center;cursor:pointer;padding:var(--space-sm);border-radius:var(--radius);transition:background var(--transition),transform var(--transition-fast);background:none;border:none;font:inherit;color:inherit;width:100%;touch-action:manipulation}.Card--interactive:active{background:var(--bg-hover);transform:scale(.98)}.Card--interactive[aria-pressed=true]{background:var(--accent-subtle);outline:2px solid var(--accent)}.Card-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm)}.Card-title{font-size:var(--font-sm);font-weight:600;color:var(--text);margin:var(--space-sm) 0 0;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.Card-meta{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);font-size:var(--font-xs);color:var(--text-muted);margin:var(--space-xs) 0 0}.Card-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.Card--interactive[data-owner=self] .Card-meta{color:var(--accent);font-weight:500}.Card--interactive[data-ready]:not([data-owner=self]){opacity:.7}.Card-image--placeholder{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:var(--radius-sm);color:var(--text-muted)}.LinkPreview{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--bg-subtle);border-radius:var(--radius);border:1px solid var(--border)}.LinkPreview-image{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.LinkPreview-content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.LinkPreview-title{font-weight:500;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.LinkPreview-site{font-size:var(--font-sm);color:var(--text-muted);margin-top:var(--space-xs)}.Badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-xs);padding:2px var(--space-sm);background:var(--bg-subtle);border-radius:var(--radius-pill);color:var(--text-muted);font-weight:500}.Badge--accent{background:var(--accent);color:#fff}.Badge--success{background:var(--success);color:#fff}.Badge--new{background:var(--warning-subtle);color:var(--warning)}.Badge--muted{opacity:.6}.Badge--overlay{position:absolute;top:var(--space-sm);right:var(--space-sm);width:var(--space-xl);height:var(--space-xl);padding:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);box-shadow:var(--shadow);z-index:1}.Badge--ready{position:absolute;top:var(--space-sm);left:var(--space-sm);width:var(--gutter);height:var(--gutter);padding:0;background:var(--success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-xs);font-weight:600}.CircularProgress{--cp-size: 24px;--cp-stroke: 3px;position:relative;width:var(--cp-size);height:var(--cp-size);flex-shrink:0}.CircularProgress--sm{--cp-size: 20px;--cp-stroke: 2.5px}.CircularProgress--md{--cp-size: 32px;--cp-stroke: 4px}.CircularProgress--lg{--cp-size: 40px;--cp-stroke: 4px}.CircularProgress svg{width:100%;height:100%;transform:rotate(-90deg)}.CircularProgress-bg{fill:none;stroke:var(--border);stroke-width:var(--cp-stroke)}.CircularProgress-fill{fill:none;stroke:var(--accent);stroke-width:var(--cp-stroke);stroke-linecap:round;transition:stroke-dashoffset var(--transition)}.CircularProgress--complete{background:var(--success);border-radius:50%}.CircularProgress--complete svg{display:none}.CircularProgress-check{display:none;position:absolute;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;color:#fff}.CircularProgress--complete .CircularProgress-check{display:flex}.ModalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop-bg);backdrop-filter:blur(var(--backdrop-blur));-webkit-backdrop-filter:blur(var(--backdrop-blur));display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--gutter);animation:fade-in var(--transition)}.Modal{background:var(--bg);border-radius:var(--radius);padding:var(--space-xl);max-width:320px;width:100%;text-align:center;animation:scale-in var(--transition-slow)}.Modal-title{margin-bottom:var(--space-xs)}.Modal-subtitle{color:var(--text-muted);font-size:var(--font-md);margin-bottom:var(--gutter)}.Modal .text--display{margin-bottom:var(--gutter)}.Modal-actions{display:flex;gap:var(--space-sm);justify-content:center}.Modal--detail{padding:0;max-width:340px;overflow:hidden}.Modal--detail .Modal-image{width:100%;aspect-ratio:1;object-fit:cover}.Modal--detail .Modal-body{padding:var(--space-lg)}.Modal--detail .Modal-title{font-size:var(--font-lg);margin:0 0 var(--space-xs)}.Modal--fullHeight{max-width:100%;max-height:85vh;height:85vh;display:flex;flex-direction:column;text-align:left;padding:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:slide-up var(--transition)}.ModalBackdrop:has(.Modal--fullHeight){align-items:flex-end;padding:0}@media (min-width: 768px){.Modal--fullHeight{max-width:480px;height:80vh;max-height:80vh;border-radius:var(--radius-lg);animation:scale-in var(--transition-slow)}.ModalBackdrop:has(.Modal--fullHeight){align-items:center;padding:var(--gutter)}}.Modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--gutter);border-bottom:1px solid var(--border);flex-shrink:0}.Modal-header .Modal-title{margin:0;font-size:var(--font-lg)}.Modal--fullHeight .Modal-body{flex:1;overflow-y:auto;padding:var(--gutter)}.Stepper{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-md) 0}.Stepper-arrow{flex-shrink:0}.Stepper-content{text-align:center;min-width:80px}.Stepper-title{font-size:var(--font-lg);font-weight:600;margin:0}.Stepper-subtitle{font-size:var(--font-md);color:var(--text-muted);margin:0}.Stepper-dots{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.Stepper-dot{width:12px;height:12px;padding:0;border-radius:50%;background:transparent;border:1.5px solid transparent;cursor:pointer;transition:border-color var(--transition),transform var(--transition-fast);box-sizing:border-box;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.Stepper-dot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--border);transition:background var(--transition)}@media (hover: hover){.Stepper-dot:hover{transform:scale(1.1)}}.Stepper-dot:active{transform:scale(.95)}.Stepper-dot[data-status=full]:after{background:var(--accent)}.Stepper-dot[data-status=partial]:after{background:var(--warning)}.Stepper-dot[data-status=none]:after{background:var(--border)}.Stepper-dot[aria-current=step]{border-color:var(--accent)}.List-thumb{width:var(--touch-target);height:var(--touch-target);object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.List-details{flex:1;min-width:0}.List-name{font-weight:500;font-size:var(--font-base);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.List-meta{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-sm);color:var(--text-muted);margin-top:2px}.List-value{font-size:var(--font-base);font-weight:500;color:var(--text-secondary);flex:0 0 auto;text-align:right}.ChipGroup{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.Chip{font-size:var(--font-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);touch-action:manipulation;min-height:var(--touch-target)}.Chip--filled{background:var(--bg-subtle);border-color:transparent;color:var(--text)}.Chip--subtle{background:var(--bg-subtle);border-color:transparent;color:var(--text-secondary)}.Chip--suggested{border-style:dashed}.Chip--accent{border-color:var(--accent);color:var(--accent)}.Chip--accent.Chip--filled{background:var(--accent);color:#fff}.Chip--accent.Chip--subtle{background:var(--accent-subtle);color:var(--accent)}.Chip--success{border-color:var(--success);color:var(--success)}.Chip--success.Chip--filled{background:var(--success);color:#fff}.Chip--success.Chip--subtle{background:#22863a1f;color:var(--success)}.Chip--warning{border-color:var(--warning);color:#92400e}.Chip--warning.Chip--filled{background:var(--warning);color:#422006}.Chip--warning.Chip--subtle{background:var(--warning-subtle);color:#92400e}.Chip--danger{border-color:var(--danger);color:var(--danger)}.Chip--danger.Chip--filled{background:var(--danger);color:#fff}.Chip--danger.Chip--subtle{background:var(--danger-subtle);color:var(--danger)}.Chip--sm{font-size:var(--font-xs);padding:2px var(--space-sm);gap:var(--space-xs);min-height:auto}.Chip--circle{width:8px;height:8px;min-height:auto;padding:0;border-radius:50%;border:none;background:var(--chip-color, var(--accent))}.Chip[aria-pressed=true],.Chip--active{background:var(--accent);color:#fff;border-color:var(--accent)}.Chip:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}@media (hover: hover){.Chip:hover:not(:disabled):not([aria-pressed=true]):not(.Chip--active):not(.Chip--circle){background:var(--bg-hover);border-color:var(--text-muted)}.Chip--accent:hover:not(:disabled):not([aria-pressed=true]):not(.Chip--active){background:var(--accent-subtle);border-color:var(--accent)}.Chip--success:hover:not(:disabled):not([aria-pressed=true]):not(.Chip--active){background:#22863a1f;border-color:var(--success)}.Chip--warning:hover:not(:disabled):not([aria-pressed=true]):not(.Chip--active){background:var(--warning-subtle);border-color:var(--warning)}.Chip--danger:hover:not(:disabled):not([aria-pressed=true]):not(.Chip--active){background:var(--danger-subtle);border-color:var(--danger)}.Chip[aria-pressed=true]:hover:not(:disabled),.Chip--active:hover:not(:disabled){filter:brightness(1.1)}}.Chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.Chip:active:not(:disabled){transform:scale(.97)}.FilterChip{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);font-size:var(--font-sm);font-weight:500;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--text-secondary);border:none;cursor:pointer;white-space:nowrap;transition:background var(--transition),color var(--transition),transform var(--transition-fast);touch-action:manipulation}.FilterChip[aria-pressed=true],.FilterChip--active{background:var(--text);color:var(--bg)}.FilterChip[data-color][aria-pressed=true],.FilterChip[data-color].FilterChip--active{background:var(--filter-color);color:#fff}@media (hover: hover){.FilterChip:hover:not(:disabled):not([aria-pressed=true]):not(.FilterChip--active){background:var(--bg-hover)}.FilterChip[aria-pressed=true]:hover,.FilterChip--active:hover{filter:brightness(.95)}}.FilterChip:active:not(:disabled){transform:scale(.97)}.FilterChip:disabled{opacity:.5;cursor:not-allowed}.status{text-align:center;padding:var(--space-xl) var(--space-lg);color:var(--text-muted)}.status--card{background:var(--bg-card);border-radius:var(--radius)}.status--page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--space-xl)}.status-icon{margin-bottom:var(--space-sm);opacity:.5}.status-title{font-weight:500;color:var(--text-secondary);margin:0 0 var(--space-xs)}.status-description{font-size:var(--font-sm);margin:0}.Spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--text-muted);border-radius:50%;animation:spin .8s linear infinite}.Spinner--sm{width:20px;height:20px;border-width:2px}.Spinner--lg{width:48px;height:48px;border-width:4px}.page-header{position:sticky;top:0;z-index:var(--z-bar, 100);background:var(--bg);padding:var(--space-md) 0;padding-top:max(var(--space-md),env(safe-area-inset-top));border-bottom:1px solid var(--border-subtle)}.page-header-row{display:flex;align-items:center;justify-content:space-between;min-height:var(--touch-target)}.page-header-left,.page-header-right{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.page-header-left{min-width:80px}.page-header-right{min-width:80px;justify-content:flex-end}.page-header-center{flex:1;text-align:center;font-weight:600;font-size:var(--font-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--space-sm)}.page-title{font-size:var(--font-xl);font-weight:600;margin:var(--space-md) 0 var(--space-xs)}.page-subtitle{color:var(--text-muted);margin:0 0 var(--space-lg)}.page-content{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.section{margin-bottom:var(--space-xl)}.section--flush{margin-bottom:0}.section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-sm)}.section-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-base);font-weight:600;margin:0;color:var(--text)}.subsection-title{font-size:var(--font-sm);font-weight:600;color:var(--text-muted);margin:0 0 var(--space-sm)}.group-title{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary);margin:0 0 var(--space-xs)}.SteppedModal{max-width:340px;padding:0;text-align:center;display:flex;flex-direction:column}.SteppedModal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.SteppedModal-headerTitle{font-weight:600;font-size:var(--font-base);color:var(--text)}.SteppedModal-stepCount{font-size:var(--font-sm);color:var(--text-muted)}.SteppedModal-content{padding:var(--space-xl) var(--space-lg);flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md)}.SteppedModal-icon{color:var(--accent);margin-bottom:var(--space-sm)}.SteppedModal-title{font-size:var(--font-xl);font-weight:600;color:var(--text);margin:0;line-height:1.3}.SteppedModal-description{font-size:var(--font-lg);color:var(--text-secondary);margin:0;line-height:1.5;max-width:280px}.SteppedModal-dots{display:flex;justify-content:center;gap:var(--space-sm);margin-top:var(--space-md)}.SteppedModal-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background var(--transition),transform var(--transition)}.SteppedModal-dot[data-active=true]{background:var(--accent);transform:scale(1.25)}.SteppedModal-actions{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-top:1px solid var(--border-subtle);gap:var(--space-md)}.SteppedModal-actionsLeft,.SteppedModal-actionsRight{min-width:80px}.SteppedModal-actionsLeft{text-align:left}.SteppedModal-actionsRight{text-align:right}
