:root{--focus-ring-color:hsl(var(--primary));--focus-ring-offset:2px;--focus-ring-width:2px}:focus{outline:none}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}[role=button]:focus-visible,button:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-color:var(--focus-ring-color)}a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (prefers-contrast:high){:root{--focus-ring-width:3px}}@media (prefers-reduced-motion:reduce){:focus-visible{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:767px){:root{--mobile-primary:262 83% 58%;--mobile-primary-foreground:0 0% 98%;--mobile-secondary:220 14.3% 95.9%;--mobile-secondary-foreground:220.9 39.3% 11%;--mobile-text-primary:240 10% 3.9%;--mobile-text-secondary:220 8.9% 46.1%;--mobile-text-muted:220 8.9% 56.1%;--mobile-background:0 0% 100%;--mobile-surface:0 0% 98%;--mobile-surface-variant:220 14.3% 95.9%;--mobile-border:220 13% 91%;--mobile-border-light:220 13% 95%;--mobile-divider:220 13% 88%;--mobile-hover:220 14.3% 92%;--mobile-pressed:220 14.3% 88%;--mobile-focus:262 83% 58%;--mobile-focus-ring:262 83% 58%/0.2;--mobile-success:142 76% 36%;--mobile-success-bg:142 76% 95%;--mobile-success-border:142 76% 85%;--mobile-warning:24 95% 53%;--mobile-warning-bg:24 95% 95%;--mobile-warning-border:24 95% 85%;--mobile-error:0 84.2% 60.2%;--mobile-error-bg:0 84% 95%;--mobile-error-border:0 84% 85%;--mobile-info:217 91% 60%;--mobile-info-bg:217 91% 95%;--mobile-info-border:217 91% 85%;--mobile-balance-positive:142 76% 36%;--mobile-balance-positive-bg:142 76% 96%;--mobile-balance-positive-light:142 76% 92%;--mobile-balance-negative:0 84% 60%;--mobile-balance-negative-bg:0 84% 96%;--mobile-balance-negative-light:0 84% 92%;--mobile-balance-neutral:210 40% 50%;--mobile-balance-neutral-bg:210 40% 96%;--mobile-balance-neutral-light:210 40% 92%;--mobile-shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--mobile-shadow-md:0 2px 4px -1px rgba(0,0,0,0.1);--mobile-shadow-lg:0 4px 6px -1px rgba(0,0,0,0.1);--mobile-shadow-card:0 1px 3px 0 rgba(0,0,0,0.1);--mobile-shadow-elevated:0 4px 12px 0 rgba(0,0,0,0.15);--mobile-space-xs:0.25rem;--mobile-space-sm:0.5rem;--mobile-space-md:0.75rem;--mobile-space-lg:1rem;--mobile-space-xl:1.5rem;--mobile-space-2xl:2rem;--mobile-text-xs:0.75rem;--mobile-text-sm:0.875rem;--mobile-text-base:1rem;--mobile-text-lg:1.125rem;--mobile-text-xl:1.25rem;--mobile-text-2xl:1.5rem;--mobile-text-3xl:1.875rem;--mobile-radius-sm:0.375rem;--mobile-radius-md:0.5rem;--mobile-radius-lg:0.75rem;--mobile-radius-xl:1rem;--mobile-touch-target-min:44px;--mobile-touch-target-comfortable:48px;--mobile-touch-target-large:56px}.dark{--mobile-primary:262 80% 70%;--mobile-primary-foreground:240 5.9% 10%;--mobile-secondary:240 3.7% 15.9%;--mobile-secondary-foreground:0 0% 98%;--mobile-text-primary:0 0% 98%;--mobile-text-secondary:240 5% 64.9%;--mobile-text-muted:240 5% 54.9%;--mobile-background:240 10% 3.9%;--mobile-surface:240 10% 6%;--mobile-surface-variant:240 3.7% 15.9%;--mobile-border:240 3.7% 15.9%;--mobile-border-light:240 3.7% 20%;--mobile-divider:240 3.7% 12%;--mobile-hover:240 3.7% 20%;--mobile-pressed:240 3.7% 12%;--mobile-focus:262 80% 70%;--mobile-focus-ring:262 80% 70%/0.3;--mobile-success:142 71% 45%;--mobile-success-bg:142 71% 8%;--mobile-success-border:142 71% 15%;--mobile-warning:24 95% 60%;--mobile-warning-bg:24 95% 8%;--mobile-warning-border:24 95% 15%;--mobile-error:0 62.8% 30.6%;--mobile-error-bg:0 84% 8%;--mobile-error-border:0 84% 15%;--mobile-info:217 91% 69%;--mobile-info-bg:217 91% 8%;--mobile-info-border:217 91% 15%;--mobile-balance-positive:142 71% 45%;--mobile-balance-positive-bg:142 71% 8%;--mobile-balance-positive-light:142 71% 12%;--mobile-balance-negative:0 84% 68%;--mobile-balance-negative-bg:0 84% 8%;--mobile-balance-negative-light:0 84% 12%;--mobile-balance-neutral:210 40% 60%;--mobile-balance-neutral-bg:210 40% 8%;--mobile-balance-neutral-light:210 40% 12%;--mobile-shadow-sm:0 1px 2px 0 rgba(0,0,0,0.3);--mobile-shadow-md:0 2px 4px -1px rgba(0,0,0,0.4);--mobile-shadow-lg:0 4px 6px -1px rgba(0,0,0,0.4);--mobile-shadow-card:0 1px 3px 0 rgba(0,0,0,0.4);--mobile-shadow-elevated:0 4px 12px 0 rgba(0,0,0,0.5)}.mobile-button-primary{background:hsl(var(--mobile-primary));color:hsl(var(--mobile-primary-foreground));border:none;border-radius:var(--mobile-radius-lg);min-height:var(--mobile-touch-target-comfortable);padding:var(--mobile-space-md) var(--mobile-space-xl);font-size:var(--mobile-text-base);font-weight:600;box-shadow:var(--mobile-shadow-md);transition:all .2s ease}.mobile-button-primary:hover{background:hsl(var(--mobile-primary)/.9);box-shadow:var(--mobile-shadow-lg)}.mobile-button-primary:active{background:hsl(var(--mobile-primary)/.8);transform:scale(.98)}.mobile-button-secondary{background:hsl(var(--mobile-secondary));color:hsl(var(--mobile-secondary-foreground));border:1px solid hsl(var(--mobile-border));border-radius:var(--mobile-radius-lg);min-height:var(--mobile-touch-target-comfortable);padding:var(--mobile-space-md) var(--mobile-space-xl);font-size:var(--mobile-text-base);font-weight:500;transition:all .2s ease}.mobile-button-secondary:hover{background:hsl(var(--mobile-hover))}.mobile-button-secondary:active{background:hsl(var(--mobile-pressed));transform:scale(.98)}.mobile-card{background:hsl(var(--mobile-surface));border:1px solid hsl(var(--mobile-border));border-radius:var(--mobile-radius-lg);box-shadow:var(--mobile-shadow-card);padding:var(--mobile-space-lg);transition:all .2s ease}.mobile-card:hover{box-shadow:var(--mobile-shadow-elevated)}.mobile-card-compact{padding:var(--mobile-space-md)}.mobile-card-spacious{padding:var(--mobile-space-xl)}.mobile-input{background:hsl(var(--mobile-background));border:1px solid hsl(var(--mobile-border));border-radius:var(--mobile-radius-md);min-height:var(--mobile-touch-target-comfortable);padding:var(--mobile-space-md) var(--mobile-space-lg);font-size:var(--mobile-text-base);color:hsl(var(--mobile-text-primary));transition:all .2s ease}.mobile-input:focus{outline:none;border-color:hsl(var(--mobile-focus));box-shadow:0 0 0 3px hsl(var(--mobile-focus-ring))}}@media (max-width:767px){.mobile-input::placeholder{color:hsl(var(--mobile-text-muted))}.mobile-heading-1{font-size:var(--mobile-text-3xl);font-weight:700;line-height:1.2;color:hsl(var(--mobile-text-primary));margin-bottom:var(--mobile-space-lg)}.mobile-heading-2{font-size:var(--mobile-text-2xl);line-height:1.3;margin-bottom:var(--mobile-space-md)}.mobile-heading-2,.mobile-heading-3{font-weight:600;color:hsl(var(--mobile-text-primary))}.mobile-heading-3{font-size:var(--mobile-text-xl);line-height:1.4;margin-bottom:var(--mobile-space-sm)}.mobile-body-text{font-size:var(--mobile-text-base);font-weight:400;line-height:1.5;color:hsl(var(--mobile-text-primary))}.mobile-body-text-secondary{font-size:var(--mobile-text-sm);font-weight:400;line-height:1.5;color:hsl(var(--mobile-text-secondary))}.mobile-caption{font-size:var(--mobile-text-xs);font-weight:400;line-height:1.4;color:hsl(var(--mobile-text-muted))}.mobile-balance-positive{color:hsl(var(--mobile-balance-positive));background:hsl(var(--mobile-balance-positive-bg));border:1px solid hsl(var(--mobile-balance-positive-border))}.mobile-balance-negative{color:hsl(var(--mobile-balance-negative));background:hsl(var(--mobile-balance-negative-bg));border:1px solid hsl(var(--mobile-balance-negative-border))}.mobile-balance-neutral{color:hsl(var(--mobile-balance-neutral));background:hsl(var(--mobile-balance-neutral-bg));border:1px solid hsl(var(--mobile-balance-neutral-border))}.mobile-status-success{color:hsl(var(--mobile-success));background:hsl(var(--mobile-success-bg));border:1px solid hsl(var(--mobile-success-border))}.mobile-status-warning{color:hsl(var(--mobile-warning));background:hsl(var(--mobile-warning-bg));border:1px solid hsl(var(--mobile-warning-border))}.mobile-status-error{color:hsl(var(--mobile-error));background:hsl(var(--mobile-error-bg));border:1px solid hsl(var(--mobile-error-border))}.mobile-status-info{color:hsl(var(--mobile-info));background:hsl(var(--mobile-info-bg));border:1px solid hsl(var(--mobile-info-border))}.mobile-nav-item{display:flex;align-items:center;justify-content:center;min-height:var(--mobile-touch-target-comfortable);min-width:var(--mobile-touch-target-comfortable);padding:var(--mobile-space-sm);border-radius:var(--mobile-radius-md);color:hsl(var(--mobile-text-secondary));transition:all .2s ease}.mobile-nav-item:hover{background:hsl(var(--mobile-hover));color:hsl(var(--mobile-text-primary))}.mobile-nav-item:active{background:hsl(var(--mobile-pressed));transform:scale(.95)}.mobile-nav-item.active{background:hsl(var(--mobile-primary));color:hsl(var(--mobile-primary-foreground))}.mobile-list-item{display:flex;align-items:center;min-height:var(--mobile-touch-target-min);padding:var(--mobile-space-md) var(--mobile-space-lg);border-bottom:1px solid hsl(var(--mobile-divider));background:hsl(var(--mobile-surface));transition:all .2s ease}.mobile-list-item:hover{background:hsl(var(--mobile-hover))}.mobile-list-item:active{background:hsl(var(--mobile-pressed))}.mobile-list-item:last-child{border-bottom:none}.mobile-spacing-xs{margin:var(--mobile-space-xs)}.mobile-spacing-sm{margin:var(--mobile-space-sm)}.mobile-spacing-md{margin:var(--mobile-space-md)}.mobile-spacing-lg{margin:var(--mobile-space-lg)}.mobile-spacing-xl{margin:var(--mobile-space-xl)}.mobile-spacing-2xl{margin:var(--mobile-space-2xl)}.mobile-padding-xs{padding:var(--mobile-space-xs)}.mobile-padding-sm{padding:var(--mobile-space-sm)}.mobile-padding-md{padding:var(--mobile-space-md)}.mobile-padding-lg{padding:var(--mobile-space-lg)}.mobile-padding-xl{padding:var(--mobile-space-xl)}.mobile-padding-2xl{padding:var(--mobile-space-2xl)}.mobile-gap-xs{gap:var(--mobile-space-xs)}.mobile-gap-sm{gap:var(--mobile-space-sm)}.mobile-gap-md{gap:var(--mobile-space-md)}.mobile-gap-lg{gap:var(--mobile-space-lg)}.mobile-gap-xl{gap:var(--mobile-space-xl)}.mobile-gap-2xl{gap:var(--mobile-space-2xl)}.btn,button{min-height:var(--mobile-touch-target-min);font-size:var(--mobile-text-base)}.btn-sm,button.btn-sm{min-height:40px;font-size:var(--mobile-text-sm)}.btn-lg,button.btn-lg{min-height:var(--mobile-touch-target-large);font-size:var(--mobile-text-lg)}input,select,textarea{min-height:var(--mobile-touch-target-comfortable);font-size:var(--mobile-text-base)}.tooltip-mobile{background:hsl(var(--mobile-surface));border:1px solid hsl(var(--mobile-border));border-radius:var(--mobile-radius-lg);box-shadow:var(--mobile-shadow-elevated);padding:var(--mobile-space-lg);max-width:90vw}.modal-mobile{background:hsl(var(--mobile-background));padding:var(--mobile-space-xl);max-height:90vh;overflow-y:auto}.modal-mobile,.sheet-mobile{border-radius:var(--mobile-radius-xl) var(--mobile-radius-xl) 0 0;box-shadow:var(--mobile-shadow-elevated)}.sheet-mobile{background:hsl(var(--mobile-surface));border:1px solid hsl(var(--mobile-border))}.drawer-handle{width:32px;height:4px;background:hsl(var(--mobile-text-muted));border-radius:2px;margin:var(--mobile-space-sm) auto}}@media (max-width:767px) and (prefers-contrast:high){:root{--mobile-border:240 10% 20%;--mobile-text-secondary:240 10% 20%;--mobile-focus-ring:262 83% 58%/0.5}.dark{--mobile-border:0 0% 80%;--mobile-text-secondary:0 0% 80%}.mobile-button-primary,.mobile-button-secondary,.mobile-card,.mobile-input{border-width:2px}}@media (max-width:767px) and (prefers-reduced-motion:reduce){.mobile-button-primary,.mobile-button-secondary,.mobile-card,.mobile-input,.mobile-list-item,.mobile-nav-item{transition:none}.mobile-button-primary:active,.mobile-button-secondary:active,.mobile-nav-item:active{transform:none}}@media (max-width:767px) and (prefers-color-scheme:dark){.mobile-card{border-color:hsl(var(--mobile-border-light))}.mobile-input{background:hsl(var(--mobile-surface-variant))}.mobile-card:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,.6)}}