:root{--focus-ring-color:#3b82f6;--focus-ring-color-dark:#60a5fa;--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-radius:0.375rem;--focus-transition-duration:150ms}@media (prefers-contrast:high){:root{--focus-ring-color:#fff;--focus-ring-color-dark:#fff;--focus-ring-width:3px;--focus-ring-offset:1px}}@media (prefers-reduced-motion:reduce){:root{--focus-transition-duration:0ms}}.dark{--focus-ring-color:var(--focus-ring-color-dark)}.focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}.btn:focus-visible,[role=button]:focus-visible,button:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=link]:focus-visible,a:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=combobox]:focus-visible,[role=textbox]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=menuitem]:focus-visible,[role=option]:focus-visible,[role=tab]:focus-visible,[role=treeitem]:focus-visible,[tabindex]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}.focus-ring{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}.focus-ring:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}[role=navigation]:focus-visible,nav:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=list]:focus-visible,[role=listbox]:focus-visible,ol:focus-visible,ul:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=table]:focus-visible,table:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=grid]:focus-visible,[role=treegrid]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=search]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=main]:focus-visible,main:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=complementary]:focus-visible,aside:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=banner]:focus-visible,header:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=contentinfo]:focus-visible,footer:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=region]:focus-visible,section:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=article]:focus-visible,article:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=banner]:focus-visible,[role=complementary]:focus-visible,[role=contentinfo]:focus-visible,[role=form]:focus-visible,[role=main]:focus-visible,[role=navigation]:focus-visible,[role=region]:focus-visible,[role=search]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=form]:focus-visible,[role=search]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=application]:focus-visible,[role=document]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=button]:focus-visible,[role=checkbox]:focus-visible,[role=gridcell]:focus-visible,[role=link]:focus-visible,[role=menuitem]:focus-visible,[role=menuitemcheckbox]:focus-visible,[role=menuitemradio]:focus-visible,[role=option]:focus-visible,[role=progressbar]:focus-visible,[role=radio]:focus-visible,[role=scrollbar]:focus-visible,[role=searchbox]:focus-visible,[role=slider]:focus-visible,[role=spinbutton]:focus-visible,[role=switch]:focus-visible,[role=tab]:focus-visible,[role=tabpanel]:focus-visible,[role=textbox]:focus-visible,[role=treeitem]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=combobox]:focus-visible,[role=grid]:focus-visible,[role=listbox]:focus-visible,[role=menu]:focus-visible,[role=menubar]:focus-visible,[role=radiogroup]:focus-visible,[role=tablist]:focus-visible,[role=tree]:focus-visible,[role=treegrid]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=alertdialog]:focus-visible,[role=dialog]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=article]:focus-visible,[role=cell]:focus-visible,[role=columnheader]:focus-visible,[role=definition]:focus-visible,[role=directory]:focus-visible,[role=document]:focus-visible,[role=feed]:focus-visible,[role=figure]:focus-visible,[role=group]:focus-visible,[role=heading]:focus-visible,[role=img]:focus-visible,[role=list]:focus-visible,[role=listitem]:focus-visible,[role=math]:focus-visible,[role=none]:focus-visible,[role=note]:focus-visible,[role=presentation]:focus-visible,[role=row]:focus-visible,[role=rowgroup]:focus-visible,[role=rowheader]:focus-visible,[role=separator]:focus-visible,[role=table]:focus-visible,[role=term]:focus-visible,[role=toolbar]:focus-visible,[role=tooltip]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=alert]:focus-visible,[role=log]:focus-visible,[role=marquee]:focus-visible,[role=status]:focus-visible,[role=timer]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}[role=application]:focus-visible,[role=banner]:focus-visible,[role=complementary]:focus-visible,[role=contentinfo]:focus-visible,[role=form]:focus-visible,[role=main]:focus-visible,[role=navigation]:focus-visible,[role=region]:focus-visible,[role=search]:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}.focus-indicator:after{border:var(--focus-ring-width) solid transparent;border-radius:var(--focus-ring-radius);bottom:calc(var(--focus-ring-offset)*-1);content:"";left:calc(var(--focus-ring-offset)*-1);pointer-events:none;position:absolute;right:calc(var(--focus-ring-offset)*-1);top:calc(var(--focus-ring-offset)*-1);transition:border-color var(--focus-transition-duration) ease-in-out}.focus-indicator:focus-visible:after{border-color:var(--focus-ring-color)}.keyboard-focus{outline:none}.keyboard-focus:focus-visible{border-radius:var(--focus-ring-radius);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);transition:outline var(--focus-transition-duration) ease-in-out}.mouse-focus{outline:none}.mouse-focus:focus-visible{outline:none}@media (prefers-contrast:high){.focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #fff;outline-offset:1px}}@media (prefers-reduced-motion:reduce){.focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{transition:none}}.dark .focus-visible,.dark [tabindex]:focus-visible,.dark a:focus-visible,.dark button:focus-visible,.dark input:focus-visible,.dark select:focus-visible,.dark textarea:focus-visible{outline-color:var(--focus-ring-color-dark)}@media print{.focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}}.focus-indicator{outline:none;position:relative}.focus-indicator:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-indicator--ring:focus-within{border-radius:4px;outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-indicator--underline:focus-within{border-bottom:2px solid var(--focus-color,#3b82f6);outline:none}.focus-indicator--background:focus-within{background-color:var(--focus-color,rgba(59,130,246,.1));outline:none}.focus-indicator--custom:focus-within{box-shadow:0 0 0 2px var(--focus-color,#3b82f6);outline:none}.focus-indicator--sm:focus-within{outline-offset:1px;outline-width:1px}.focus-indicator--md:focus-within{outline-offset:2px;outline-width:2px}.focus-indicator--lg:focus-within{outline-offset:3px;outline-width:3px}.focus-indicator--visible:focus-within{outline-style:solid}.focus-trap{outline:none}.focus-trap:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-restore,.focus-scope{outline:none}.focus-scope:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-group{outline:none}.focus-group:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-container{outline:none}.focus-container:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-management-provider,.focus-trapping{outline:none}.focus-trapping:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-navigation,.focus-restoration{outline:none}.focus-navigation:focus-within{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-announcement,.focus-status{height:1px;left:-10000px;overflow:hidden;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.focus-debug{background:rgba(0,0,0,.8);border-radius:4px;color:#fff;font-family:monospace;font-size:12px;max-height:200px;max-width:300px;overflow:auto;padding:10px;position:fixed;right:10px;top:10px;z-index:9999}.focus-debug__current{border-bottom:1px solid hsla(0,0%,100%,.2);margin-bottom:10px;padding-bottom:10px}.focus-debug__history{margin-top:10px}.focus-debug__history ul{list-style:none;margin:0;padding:0}.focus-debug__history li{border-bottom:1px solid hsla(0,0%,100%,.1);padding:2px 0}.focus-visible{outline:2px solid var(--focus-color,#3b82f6)}.focus-hidden{outline:none!important}.focus-color-primary{--focus-color:#3b82f6}.focus-color-secondary{--focus-color:#6b7280}.focus-color-success{--focus-color:#10b981}.focus-color-warning{--focus-color:#f59e0b}.focus-color-error{--focus-color:#ef4444}.focus-color-info{--focus-color:#06b6d4}.focus-size-sm{outline-offset:1px;outline-width:1px}.focus-size-md{outline-offset:2px;outline-width:2px}.focus-size-lg{outline-offset:3px;outline-width:3px}.focus-type-ring{border-radius:4px;outline-style:solid}.focus-type-underline{border-bottom:2px solid var(--focus-color,#3b82f6);outline:none}.focus-type-background{background-color:var(--focus-color,rgba(59,130,246,.1));outline:none}.focus-type-custom{box-shadow:0 0 0 2px var(--focus-color,#3b82f6);outline:none}.focus-animate{transition:outline-color .2s ease-in-out,outline-width .2s ease-in-out}.focus-animate-slow{transition:outline-color .4s ease-in-out,outline-width .4s ease-in-out}.focus-animate-fast{transition:outline-color .1s ease-in-out,outline-width .1s ease-in-out}.focus-visible-only{outline:none}.focus-visible-only:focus-visible{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-visible-only:focus:not(:focus-visible){outline:none}.focus-reset,.focus-reset:focus{outline:none}.focus-reset:focus-visible{outline:none}@media (prefers-contrast:high){.focus-container:focus-within,.focus-group:focus-within,.focus-indicator:focus-within,.focus-navigation:focus-within,.focus-scope:focus-within,.focus-trap:focus-within,.focus-trapping:focus-within{outline:3px solid #000;outline-offset:2px}.focus-indicator--background:focus-within,.focus-indicator--custom:focus-within,.focus-indicator--ring:focus-within,.focus-indicator--underline:focus-within{outline:3px solid #000;outline-offset:2px}}@media (prefers-reduced-motion:reduce){.focus-animate,.focus-animate-fast,.focus-animate-slow{transition:none}}.dark .focus-container:focus-within,.dark .focus-group:focus-within,.dark .focus-indicator:focus-within,.dark .focus-navigation:focus-within,.dark .focus-scope:focus-within,.dark .focus-trap:focus-within,.dark .focus-trapping:focus-within{outline-color:#60a5fa}.dark .focus-indicator--background:focus-within,.dark .focus-indicator--custom:focus-within,.dark .focus-indicator--ring:focus-within,.dark .focus-indicator--underline:focus-within{outline-color:#60a5fa}.dark .focus-indicator--background:focus-within{background-color:rgba(96,165,250,.2)}@media print{.focus-container:focus-within,.focus-group:focus-within,.focus-indicator--background:focus-within,.focus-indicator--custom:focus-within,.focus-indicator--ring:focus-within,.focus-indicator--underline:focus-within,.focus-indicator:focus-within,.focus-navigation:focus-within,.focus-scope:focus-within,.focus-trap:focus-within,.focus-trapping:focus-within{outline:none}.focus-announcement,.focus-debug,.focus-status{display:none}}.focus-container--modal{align-items:center;background:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.focus-container--dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:4px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);left:0;position:absolute;top:100%;z-index:100}.focus-container--tooltip{background:#1f2937;border-radius:4px;color:#fff;font-size:14px;max-width:200px;padding:8px 12px;position:absolute;z-index:100;word-wrap:break-word}.focus-container--popover{background:#fff;border:1px solid #e5e7eb;border-radius:4px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);max-width:300px;padding:16px;position:absolute;z-index:100}.focus-navigation--horizontal{display:flex;flex-direction:row}.focus-navigation--vertical{display:flex;flex-direction:column}.focus-navigation--grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.focus-group--toolbar{gap:4px;padding:4px}.focus-group--menu,.focus-group--toolbar{border:1px solid #e5e7eb;border-radius:4px;display:flex}.focus-group--menu{flex-direction:column;overflow:hidden}.focus-group--listbox{border:1px solid #e5e7eb;border-radius:4px;max-height:200px;overflow-y:auto}.focus-trap--modal{background:#fff;border-radius:8px;max-height:80vh;max-width:500px;overflow-y:auto;padding:24px}.focus-trap--dialog{background:#fff;border-radius:4px;min-width:300px;padding:16px}.focus-trap--sidebar{background:#fff;border-right:1px solid #e5e7eb;height:100vh;overflow-y:auto;width:250px}.focus-scope--form{display:flex;flex-direction:column;gap:16px}.focus-scope--table{overflow-x:auto}.focus-scope--card{border:1px solid #e5e7eb;border-radius:8px;padding:16px}.focus-indicator--button,.focus-indicator--input{border-radius:4px}.focus-indicator--link{text-decoration:underline}.focus-indicator--tab{border-bottom:2px solid transparent}.focus-indicator--tab:focus-within{border-bottom-color:var(--focus-color,#3b82f6)}.focus-management--active{outline:2px solid var(--focus-color,#3b82f6);outline-offset:2px}.focus-management--inactive{outline:none}.focus-management--disabled{opacity:.5;pointer-events:none}.focus-management--hidden{display:none}.focus-management--visible{display:block}.focus-management-transition{transition:outline-color .2s ease-in-out,outline-width .2s ease-in-out,opacity .2s ease-in-out}.focus-management-transition--fast{transition:outline-color .1s ease-in-out,outline-width .1s ease-in-out,opacity .1s ease-in-out}.focus-management-transition--slow{transition:outline-color .4s ease-in-out,outline-width .4s ease-in-out,opacity .4s ease-in-out}@media (prefers-contrast:high){.accessible-focus-indicator{--focus-indicator-color:#fff;--focus-indicator-border:3px solid #fff;--focus-indicator-shadow:0 0 0 3px #000}.accessible-modal{background-color:#fff;border:3px solid #000;color:#000}.accessible-skip-link{background-color:#000;border:2px solid #fff;color:#fff}}@media (prefers-reduced-motion:reduce){.accessible-focus-indicator,.accessible-modal,.accessible-skip-link,.no-motion{animation:none!important;transition:none!important}}.accessible-focus-indicator{display:inline-block;position:relative}.accessible-focus-indicator:focus-within{outline:none}.accessible-focus-indicator.focus-indicator-visible:focus-within:after{border:2px solid var(--focus-indicator-color,#007bff);border-radius:4px;bottom:-4px;content:"";left:-4px;pointer-events:none;position:absolute;right:-4px;top:-4px;z-index:1000}.focus-indicator-ring:focus-within:after{border-radius:50%}.focus-indicator-outline:focus-within:after{border-radius:0}.focus-indicator-glow:focus-within:after{box-shadow:0 0 0 2px var(--focus-indicator-color,#007bff),0 0 0 4px rgba(0,123,255,.3)}.focus-indicator-high-contrast:focus-within:after{border-color:#fff;border-width:3px;box-shadow:0 0 0 3px #000}.accessible-focus-trap{position:relative}.accessible-focus-trap[data-focus-trap-enabled=true]{outline:2px dashed var(--focus-indicator-color,#007bff);outline-offset:2px}.accessible-focus-trap.focus-indicators-visible:focus-within{outline:3px solid var(--focus-indicator-color,#007bff)}.accessible-modal-backdrop{align-items:center;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.accessible-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.15);max-height:90vh;max-width:90vw;overflow:auto;padding:24px;position:relative;transition:transform .2s ease-out,opacity .2s ease-out}.accessible-modal.no-motion{transition:none}.accessible-modal-title{color:#333;font-size:1.5rem;font-weight:600;margin:0 0 16px}.accessible-modal-description{color:#666;line-height:1.5;margin:0 0 16px}.accessible-modal-content{margin-bottom:16px}.accessible-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transition:background-color .2s ease;width:32px}.accessible-modal-close:hover{background-color:#f0f0f0}.accessible-modal-close:focus{outline:2px solid var(--focus-indicator-color,#007bff);outline-offset:2px}.accessible-skip-links{left:0;position:absolute;top:0;z-index:1001}.accessible-skip-link{background-color:#007bff;border-radius:4px;color:#fff;font-weight:500;left:6px;padding:8px 16px;position:absolute;text-decoration:none;top:-40px;transition:top .2s ease;z-index:1001}.accessible-skip-link:focus{outline:2px solid #fff;outline-offset:2px;top:6px}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.dark .accessible-modal{background-color:hsl(var(--popover))}.dark .accessible-modal,.dark .accessible-modal-title{color:hsl(var(--popover-foreground))}.dark .accessible-modal-close,.dark .accessible-modal-description{color:hsl(var(--muted-foreground))}.dark .accessible-modal-close:hover{background-color:hsl(var(--accent))}.dark .accessible-focus-indicator{--focus-indicator-color:hsl(var(--ring))}@media print{.accessible-focus-indicator:after,.accessible-modal-backdrop,.accessible-skip-links{display:none!important}.accessible-modal{border:1px solid #000!important;box-shadow:none!important;position:static!important}}.focus-visible{outline:2px solid var(--focus-indicator-color,#007bff);outline-offset:2px}.focus-visible:not(:focus-visible){outline:none}[data-accessibility-test=true]{outline:2px dashed red!important}[data-accessibility-test=true]:before{background-color:red;border-radius:2px;color:#fff;content:"A11Y TEST";font-size:10px;left:0;padding:2px 4px;position:absolute;top:-20px;z-index:10000}@media (prefers-contrast:high){.accessible-focus-trap[data-focus-trap-enabled=true],.focus-visible{outline:3px solid #fff;outline-offset:3px}}@media (prefers-reduced-motion:reduce){.accessible-focus-indicator:after,.accessible-skip-link{transition:none!important}}@media (hover:none) and (pointer:coarse){.accessible-focus-indicator{--focus-indicator-color:#007bff}.accessible-modal-close,.accessible-skip-link{min-height:44px;min-width:44px}.accessible-skip-link{align-items:center;display:flex;justify-content:center}}.touch-target{align-items:center;display:flex;justify-content:center;min-height:44px;min-width:44px}.touch-target-sm{min-height:32px;min-width:32px}.touch-target-lg{min-height:56px;min-width:56px}.mobile-optimized{backface-visibility:hidden;perspective:1000px;transform:translateZ(0);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.smooth-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.mobile-padding{padding:16px}.mobile-padding-sm{padding:12px}.mobile-padding-lg{padding:20px}.mobile-nav-spacing{padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top)}.mobile-shadow{box-shadow:0 2px 8px rgba(0,0,0,.1)}.mobile-shadow-lg{box-shadow:0 4px 16px rgba(0,0,0,.15)}.mobile-border{border-radius:12px}.mobile-border-sm{border-radius:8px}.mobile-border-lg{border-radius:16px}.mobile-text-sm{font-size:14px;line-height:20px}.mobile-text-base{font-size:16px;line-height:24px}.mobile-text-lg{font-size:18px;line-height:28px}.mobile-text-xl{font-size:20px;line-height:28px}.mobile-button{align-items:center;backface-visibility:hidden;display:flex;justify-content:center;min-height:44px;min-width:44px;perspective:1000px;transform:translateZ(0);-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;font-weight:600;overscroll-behavior:contain;transition:all .2s ease}.mobile-button:active{box-shadow:0 1px 4px rgba(0,0,0,.2);transform:scale(.98)}.mobile-input{backface-visibility:hidden;perspective:1000px;transform:translateZ(0);-webkit-overflow-scrolling:touch;border:2px solid #e5e7eb;border-radius:12px;font-size:16px;min-height:48px;overscroll-behavior:contain;padding:12px 16px;transition:border-color .2s ease}.mobile-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.mobile-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);margin:8px 0;padding:16px}.mobile-card,.mobile-list{backface-visibility:hidden;perspective:1000px;transform:translateZ(0);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mobile-list-item{align-items:center;background:#fff;border:1px solid #f3f4f6;border-radius:12px;display:flex;justify-content:center;margin:4px 0;min-height:44px;min-width:44px;padding:16px;transition:all .2s ease}.mobile-list-item:active{background:#f9fafb;transform:scale(.98)}.mobile-modal{backface-visibility:hidden;perspective:1000px;transform:translateZ(0);-webkit-overflow-scrolling:touch;align-items:flex-end;background:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;overscroll-behavior:contain;position:fixed;right:0;top:0;z-index:50}.mobile-modal-content{-webkit-overflow-scrolling:touch;border-radius:12px;border-radius:16px 16px 0 0;box-shadow:0 4px 16px rgba(0,0,0,.15);max-height:90vh;overflow:hidden;width:100%}.mobile-modal-content,.mobile-nav{backface-visibility:hidden;background:#fff;overscroll-behavior:contain;perspective:1000px;transform:translateZ(0)}.mobile-nav{border-top:1px solid #e5e7eb;bottom:0;left:0;padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top);position:fixed;right:0;z-index:40}.mobile-nav,.mobile-nav-item{-webkit-overflow-scrolling:touch}.mobile-nav-item{align-items:center;backface-visibility:hidden;color:#6b7280;display:flex;flex:1;flex-direction:column;justify-content:center;min-height:44px;min-width:44px;overscroll-behavior:contain;padding:8px;perspective:1000px;transform:translateZ(0);transition:color .2s ease}.mobile-nav-item.active{color:#3b82f6}.mobile-loading{backface-visibility:hidden;perspective:1000px;transform:translateZ(0);-webkit-overflow-scrolling:touch;align-items:center;display:flex;justify-content:center;overscroll-behavior:contain;padding:20px}.mobile-spinner{animation:mobile-spin 1s linear infinite;border-radius:50%;border:2px solid #e5e7eb;border-top-color:#3b82f6;height:24px;width:24px}@keyframes mobile-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:640px){.mobile-only{display:block}.desktop-only{display:none}}@media (min-width:641px){.mobile-only{display:none}.desktop-only{display:block}}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}.mobile-focus{outline:none}.mobile-focus:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.mobile-disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mobile-active{transform:scale(.98);transition:transform .1s ease}@media (hover:hover){.mobile-button:hover{box-shadow:0 4px 12px rgba(0,0,0,.15);transform:translateY(-1px)}.mobile-list-item:hover{background:#f9fafb;transform:translateY(-1px)}}:root{--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--space-xs:clamp(0.5rem,1vw + 0.25rem,0.75rem);--space-sm:clamp(0.75rem,1.5vw + 0.25rem,1rem);--space-md:clamp(1rem,2vw + 0.5rem,1.5rem);--space-lg:clamp(1.5rem,3vw + 0.5rem,2rem);--space-xl:clamp(2rem,4vw + 1rem,3rem);--font-size-sm:clamp(0.8rem,0.17vw + 0.76rem,0.89rem);--font-size-base:clamp(1rem,0.34vw + 0.91rem,1.19rem);--font-size-lg:clamp(1.25rem,0.61vw + 1.1rem,1.58rem);--font-size-xl:clamp(1.56rem,1vw + 1.31rem,2.11rem);--font-size-xxl:clamp(1.95rem,1.56vw + 1.56rem,2.81rem)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.responsive-container{margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md);width:100%}@media (min-width:768px){.responsive-container{max-width:var(--breakpoint-md)}}@media (min-width:1024px){.responsive-container{max-width:var(--breakpoint-lg)}}@media (min-width:1280px){.responsive-container{max-width:var(--breakpoint-xl)}}:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans Thai","Helvetica Neue",sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace}@media (prefers-reduced-motion:no-preference){body{font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}h1,h2,h3,h4,h5,h6{font-feature-settings:"kern" 1;text-rendering:optimizeLegibility}div,p,span{font-synthesis:none}.text-2xl,.text-3xl,.text-4xl,.text-5xl,.text-6xl,.text-7xl,.text-lg,.text-xl{line-height:1.2}body{line-height:1.6}*{text-rendering:optimizeLegibility}@media (prefers-contrast:high){body{font-weight:600}}