.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-md);font-weight:var(--font-medium);font-size:var(--text-base);line-height:var(--leading-tight);border-radius:var(--radius-lg);border:1px solid transparent;cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);text-decoration:none;user-select:none;white-space:nowrap;position:relative;outline:none}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-sm{padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);min-height:32px}.btn-md{padding:var(--space-md) var(--space-xl);font-size:var(--text-base);min-height:40px}.btn-lg{padding:var(--space-lg) var(--space-2xl);font-size:var(--text-lg);min-height:48px}.btn-primary{background:var(--primary);color:white;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){background:var(--primary-active);border-color:var(--primary-active);transform:translateY(1px)}.btn-secondary{background:var(--bg-subtle);color:var(--text-base);border-color:var(--border-base)}.btn-secondary:hover:not(:disabled){background:var(--bg-emphasis);border-color:var(--border-emphasis);box-shadow:var(--shadow-sm)}.btn-secondary:active:not(:disabled){background:var(--bg-muted);transform:translateY(1px)}.btn-ghost{background:transparent;color:var(--text-base);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--primary)}.btn-ghost:active:not(:disabled){background:var(--bg-emphasis)}.btn-danger{background:var(--error);color:white;border-color:var(--error)}.btn-danger:hover:not(:disabled){background:var(--error-dark);border-color:var(--error-dark);box-shadow:var(--shadow-md)}.btn-danger:active:not(:disabled){background:var(--error-dark);transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-loading{cursor:wait;pointer-events:none}.btn-loading .btn-text{opacity:.7}.btn-full-width{width:100%}.btn-icon-end,.btn-icon-start{font-size:1.25em}.btn-icon-end,.btn-icon-start,.btn-spinner{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.spinner-icon{width:1.25em;height:1.25em;animation:spin var(--transition-slower) linear infinite}.spinner-circle{stroke:currentColor;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:15;transform-origin:center;animation:spinDash 1.5s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spinDash{0%{stroke-dashoffset:60}50%{stroke-dashoffset:15}to{stroke-dashoffset:60}}.btn-group{display:inline-flex;gap:var(--space-sm)}.btn-group .btn{margin:0}.btn-group-attached{display:inline-flex;gap:0}.btn-group-attached .btn{border-radius:0;margin-inline-start:-1px}.btn-group-attached .btn:first-child{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg);margin-inline-start:0}.btn-group-attached .btn:last-child{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}.input-wrapper{display:flex;flex-direction:column;gap:var(--space-sm)}.input-full-width{width:100%}.input-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-base);display:flex;align-items:center;gap:var(--space-xs)}.input-required{color:var(--error);font-weight:var(--font-bold)}.input-container{position:relative;display:flex;align-items:center;gap:var(--space-md);background:var(--surface-base);border:1px solid var(--border-base);border-radius:var(--radius-lg);transition:all var(--transition-base) var(--ease-in-out)}.input-container:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.input-sm{height:32px;padding:0 var(--space-md)}.input-sm .input{font-size:var(--text-sm)}.input-md{height:40px;padding:0 var(--space-lg)}.input-md .input{font-size:var(--text-base)}.input-lg{height:48px;padding:0 var(--space-xl)}.input-lg .input{font-size:var(--text-lg)}.input-error{border-color:var(--error)}.input-error:focus-within{border-color:var(--error);box-shadow:0 0 0 3px rgba(239,68,68,.1)}.input-success{border-color:var(--success)}.input-success:focus-within{border-color:var(--success);box-shadow:0 0 0 3px rgba(34,197,94,.1)}.input{flex:1;border:none;outline:none;background:transparent;color:var(--text-base);font-family:inherit;width:100%;min-width:0}.input::placeholder{color:var(--text-muted)}.input:disabled{cursor:not-allowed;opacity:.6}.input-container:has(.input:disabled){background:var(--bg-subtle);cursor:not-allowed}.input-leading,.input-trailing{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-muted);font-size:1.25em}.input-has-leading .input{padding-inline-start:0}.input-has-trailing .input{padding-inline-end:0}.input-message{font-size:var(--text-sm);color:var(--text-subtle);margin:0}.input-message-error{color:var(--error)}[dir=rtl] .input{text-align:right}[dir=ltr] .input{text-align:left}.card{background:var(--surface-base);border:1px solid var(--border-base);border-radius:var(--radius-xl);transition:all var(--transition-base) var(--ease-in-out);overflow:hidden}.card-elevation-none{box-shadow:var(--shadow-none)}.card-elevation-sm{box-shadow:var(--shadow-sm)}.card-elevation-md{box-shadow:var(--shadow-md)}.card-elevation-lg{box-shadow:var(--shadow-lg)}.card-elevation-xl{box-shadow:var(--shadow-xl)}.card-padding-none .card-body{padding:0}.card-padding-sm .card-body{padding:var(--space-lg)}.card-padding-md .card-body{padding:var(--space-xl)}.card-padding-lg .card-body{padding:var(--space-2xl)}.card-padding-xl .card-body{padding:var(--space-3xl)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-emphasis);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-interactive:active{transform:translateY(0)}.card-header{padding:var(--space-xl);border-bottom:1px solid var(--border-base);font-weight:var(--font-semibold);font-size:var(--text-lg);color:var(--text-base)}.card-padding-sm .card-header{padding:var(--space-lg)}.card-padding-lg .card-header{padding:var(--space-2xl)}.card-padding-xl .card-header{padding:var(--space-3xl)}.card-body{color:var(--text-base)}.card-footer{padding:var(--space-xl);border-top:1px solid var(--border-base);background:var(--bg-subtle);font-size:var(--text-sm)}.card-padding-sm .card-footer{padding:var(--space-lg)}.card-padding-lg .card-footer{padding:var(--space-2xl)}.card-padding-xl .card-footer{padding:var(--space-3xl)}.card-outlined{background:transparent;border:2px solid var(--border-base);box-shadow:none}.card-flat{border:none;box-shadow:none}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:var(--z-modal-backdrop);animation:fadeIn var(--transition-base) var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);z-index:var(--z-modal);max-height:85vh;display:flex;flex-direction:column;animation:scaleIn var(--transition-base) var(--ease-out)}@keyframes scaleIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.dialog-sm{width:90%;max-width:var(--dialog-sm)}.dialog-md{width:90%;max-width:var(--dialog-md)}.dialog-lg{width:90%;max-width:var(--dialog-lg)}.dialog-xl{width:90%;max-width:var(--dialog-xl)}.dialog-close{position:absolute;top:var(--space-lg);inset-inline-end:var(--space-lg);width:var(--icon-lg);height:var(--icon-lg);display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:var(--radius-lg);color:var(--text-muted);cursor:pointer;font-size:var(--text-xl);transition:all var(--transition-base) var(--ease-in-out);z-index:1}.dialog-close:hover{background:var(--bg-subtle);color:var(--text-base)}.dialog-close:focus-visible{outline:var(--border-medium) solid var(--primary);outline-offset:var(--border-medium)}.dialog-header{padding:var(--space-2xl);padding-inline-end:var(--space-6xl);border-bottom:var(--border-thin) solid var(--border-base);flex-shrink:0}.dialog-title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-base);margin:0 0 var(--space-sm) 0}.dialog-description{font-size:var(--text-sm);color:var(--text-subtle);margin:0;line-height:var(--leading-relaxed)}.dialog-body{padding:var(--space-2xl);overflow-y:auto;flex:1;color:var(--text-base)}.dialog-footer{padding:var(--space-2xl);border-top:var(--border-thin) solid var(--border-base);display:flex;justify-content:flex-end;gap:var(--space-md);flex-shrink:0}@media (max-width:768px){.dialog-content{width:95%;max-width:none}.dialog-body,.dialog-footer,.dialog-header{padding:var(--space-xl)}}.toast-viewport{position:fixed;bottom:var(--space-xl);inset-inline-end:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md);width:var(--toast-width);max-width:90vw;z-index:var(--z-toast);padding:0;margin:0;list-style:none}.toast{background:var(--surface-base);border:var(--border-thin) solid var(--border-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-lg);animation:slideIn var(--transition-base) var(--ease-out)}.toast[data-state=closed]{animation:slideOut var(--transition-base) var(--ease-in)}@keyframes slideIn{0%{transform:translateX(calc(100% + var(--space-xl)));opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOut{0%{transform:translateX(0);opacity:1}to{transform:translateX(calc(100% + var(--space-xl)));opacity:0}}.toast-content{display:flex;align-items:flex-start;gap:var(--space-lg)}.toast-icon{width:var(--icon-md);height:var(--icon-md);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--text-base);font-weight:var(--font-bold);flex-shrink:0;margin-top:var(--border-medium)}.toast-text{flex:1;min-width:0}.toast-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-base);margin:0 0 var(--space-xs) 0}.toast-description{font-size:var(--text-sm);color:var(--text-subtle);margin:0;line-height:var(--leading-relaxed)}.toast-close{width:var(--icon-md);height:var(--icon-md);display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:var(--text-lg);transition:all var(--transition-base) var(--ease-in-out);flex-shrink:0;margin-top:var(--border-medium)}.toast-close:hover{background:var(--bg-subtle);color:var(--text-base)}.toast-success{border-inline-start:var(--border-thick) solid var(--success)}.toast-success .toast-icon{background:var(--success-light);color:var(--success-dark)}.toast-error{border-inline-start:var(--border-thick) solid var(--error)}.toast-error .toast-icon{background:var(--error-light);color:var(--error-dark)}.toast-warning{border-inline-start:var(--border-thick) solid var(--warning)}.toast-warning .toast-icon{background:var(--warning-light);color:var(--warning-dark)}.toast-info{border-inline-start:var(--border-thick) solid var(--info)}.toast-info .toast-icon{background:var(--info-light);color:var(--info-dark)}@media (max-width:768px){.toast-viewport{bottom:var(--space-lg);inset-inline-end:var(--space-lg);inset-inline-start:var(--space-lg);width:auto}}