.touch-target{min-height:44px;min-width:44px;position:relative;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}.touch-target-recommended{min-height:48px;min-width:48px}.touch-target-lg{min-height:56px;min-width:56px}.touch-button-sm{min-height:44px;min-width:44px;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;border-radius:.375rem;transition:all .2s ease-in-out}.touch-button-md{min-height:48px;min-width:48px;padding:.75rem 1.5rem;font-size:1rem;line-height:1.5rem;border-radius:.5rem;transition:all .2s ease-in-out}.touch-button-lg{min-height:56px;min-width:56px;padding:1rem 2rem;font-size:1.125rem;line-height:1.75rem;border-radius:.5rem;transition:all .2s ease-in-out}.touch-button-sm:hover,.touch-button-md:hover,.touch-button-lg:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.touch-button-sm:active,.touch-button-md:active,.touch-button-lg:active{transform:translateY(0);box-shadow:0 1px 2px #0000000d}.touch-button-sm:focus-visible,.touch-button-md:focus-visible,.touch-button-lg:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.touch-input-sm{min-height:44px;width:100%;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:.375rem;border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-foreground);transition:all .2s ease-in-out}.touch-input-md{min-height:48px;width:100%;padding:.75rem 1rem;font-size:1rem;line-height:1.5rem;border-radius:.5rem;border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-foreground);transition:all .2s ease-in-out}.touch-input-lg{min-height:56px;width:100%;padding:1rem 1.25rem;font-size:1.125rem;line-height:1.75rem;border-radius:.5rem;border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-foreground);transition:all .2s ease-in-out}.touch-input-sm:focus,.touch-input-md:focus,.touch-input-lg:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #7c3aed1a}.touch-input-sm:hover,.touch-input-md:hover,.touch-input-lg:hover{border-color:var(--color-primary)}.touch-input-sm:disabled,.touch-input-md:disabled,.touch-input-lg:disabled{opacity:.5;cursor:not-allowed}.touch-spacing{gap:.5rem}.touch-spacing-md{gap:.75rem}.touch-spacing-lg{gap:1rem}.touch-spacing-y{row-gap:.5rem}.touch-spacing-y-md{row-gap:.75rem}.touch-spacing-y-lg{row-gap:1rem}.touch-spacing-x{column-gap:.5rem}.touch-spacing-x-md{column-gap:.75rem}.touch-spacing-x-lg{column-gap:1rem}.touch-link{min-height:44px;display:inline-flex;align-items:center;padding:.5rem .75rem;color:var(--color-primary);text-decoration:none;transition:all .2s ease-in-out;border-radius:.375rem}.touch-link:hover{background-color:#7c3aed1a;text-decoration:underline}.touch-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.touch-icon-button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:.5rem;border-radius:.5rem;transition:all .2s ease-in-out;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}.touch-icon-button:hover{background-color:var(--color-muted);transform:scale(1.05)}.touch-icon-button:active{transform:scale(.95)}.touch-icon-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.touch-checkbox,.touch-radio{min-height:24px;min-width:24px;cursor:pointer}.touch-checkbox-label,.touch-radio-label{min-height:44px;display:flex;align-items:center;gap:.75rem;padding:.5rem;cursor:pointer;user-select:none;border-radius:.375rem;transition:background-color .2s ease-in-out}.touch-checkbox-label:hover,.touch-radio-label:hover{background-color:var(--color-muted)}.touch-card{min-height:80px;padding:1rem;border-radius:.5rem;background-color:var(--color-card);border:1px solid var(--color-border);cursor:pointer;transition:all .2s ease-in-out;user-select:none;-webkit-tap-highlight-color:transparent}.touch-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.touch-card:active{transform:translateY(0)}@media(max-width:767px){.touch-target-mobile{min-height:48px;min-width:48px}.touch-spacing-mobile{gap:.75rem}.touch-button-sm{min-height:48px;padding:.75rem 1.25rem}.touch-input-sm{min-height:48px;padding:.75rem 1rem;font-size:1rem}.touch-input-sm,.touch-input-md,.touch-input-lg{font-size:16px}}.touch-ripple{position:relative;overflow:hidden}.touch-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background-color:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.touch-ripple:active:after{width:200%;height:200%}.touch-target:focus-visible,.touch-button-sm:focus-visible,.touch-button-md:focus-visible,.touch-button-lg:focus-visible,.touch-input-sm:focus-visible,.touch-input-md:focus-visible,.touch-input-lg:focus-visible,.touch-link:focus-visible,.touch-icon-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.touch-target,.touch-button-sm,.touch-button-md,.touch-button-lg,.touch-link,.touch-icon-button,.touch-card{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}@media(hover:none)and (pointer:coarse){*{-webkit-overflow-scrolling:touch}}
