.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);transition:background-color .3s var(--ease-out-expo),border-color .3s var(--ease-out-expo),color .3s var(--ease-out-expo),opacity .3s var(--ease-out-expo);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid transparent}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--color-charcoal);color:var(--color-ivory)}.btn-primary:hover:not(:disabled){background-color:var(--color-charcoal-dark)}.btn-accent{background-color:var(--color-gold);color:var(--color-ivory-light)}.btn-accent:hover:not(:disabled){background-color:var(--color-gold-dark)}.btn-secondary{background-color:var(--color-rose-light);color:var(--color-charcoal);border-color:var(--color-rose-soft)}.btn-secondary:hover:not(:disabled){background-color:var(--color-rose-soft)}.btn-outline{background-color:transparent;color:var(--color-charcoal);border-color:var(--color-gray-300)}.btn-outline:hover:not(:disabled){background-color:var(--color-gray-100);border-color:var(--color-gray-400)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.modal-overlay,.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1f2220a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal, 1050);padding:var(--space-4);overflow-y:auto;opacity:1;visibility:visible;transition:opacity var(--transition-fast),visibility var(--transition-fast)}.modal-overlay.d-none,.modal-backdrop.d-none,.modal-overlay[hidden],.modal-backdrop[hidden],.modal-overlay.is-hidden,.modal-backdrop.is-hidden{display:none!important}.modal-container,.modal-dialog{background-color:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #00000040,0 10px 10px -5px #0000001a;width:100%;max-width:540px;max-height:calc(100vh - 2 * var(--space-6));max-height:calc(100dvh - 2 * var(--space-6));display:flex;flex-direction:column;position:relative;margin:auto;overflow:hidden;animation:modalScaleIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-container>form,.modal-dialog>form{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;min-height:0;margin:0}.modal-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-gray-200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background-color:#fff;position:sticky;top:0;z-index:5}.modal-title{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-charcoal-dark);margin:0}.modal-close-btn{background:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--color-gray-400);cursor:pointer;width:44px;height:44px;min-width:44px;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);touch-action:manipulation;flex-shrink:0}.modal-close-btn:hover{color:var(--color-charcoal-dark);background-color:var(--color-gray-100)}.modal-close-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal-body{padding:var(--space-6);overflow-y:auto;-webkit-overflow-scrolling:touch;flex-grow:1;min-height:0}.modal-footer{padding:var(--space-4) var(--space-6);background-color:var(--color-gray-50);border-top:1px solid var(--color-gray-200);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);flex-shrink:0;position:sticky;bottom:0;z-index:5}@media (max-width: 640px){.modal-overlay,.modal-backdrop{padding:var(--space-2);align-items:flex-end}.modal-container,.modal-dialog{width:100%;max-height:calc(100vh - 2 * var(--space-2));max-height:calc(100dvh - 2 * var(--space-2));border-radius:var(--radius-lg)}.modal-header{padding:var(--space-3) var(--space-4)}.modal-body{padding:var(--space-4)}.modal-body [style*=grid-template-columns],.modal-body .form-grid-2{grid-template-columns:1fr!important;gap:var(--space-3)!important}.modal-footer{padding:var(--space-3) var(--space-4);flex-direction:column-reverse;gap:var(--space-2)}.modal-footer .btn{width:100%;min-height:44px;display:inline-flex;align-items:center;justify-content:center}}.auth-dialog{color:var(--color-charcoal, #27272a)}.auth-dialog .form-group{margin-bottom:var(--space-3)}.auth-dialog .form-label{display:block;margin-bottom:6px;font-size:var(--font-size-xs, .75rem);font-weight:500;color:var(--color-gray-600, #52525b)}.auth-dialog .form-input{width:100%;box-sizing:border-box;padding:10px 14px;border:1px solid var(--color-gray-300, #d4d4d8);border-radius:var(--radius-sm);background:#fff;color:var(--color-charcoal, #27272a);font-family:inherit;font-size:var(--font-size-sm)}.auth-dialog .form-input:focus{background:#fff;color:var(--color-charcoal, #27272a);border-color:var(--lux-gold, #ff98a2);box-shadow:0 0 0 3px var(--lux-gold-glow, rgba(255, 152, 162, .25));outline:none}.auth-dialog .btn-outline,.modal-footer .btn-outline{color:var(--color-charcoal, #27272a);border-color:var(--color-gray-300, #d4d4d8)}.auth-dialog .btn-block{width:100%}.modal-dialog .btn-luxury-gold{background-color:var(--lux-gold, #ff98a2);color:#09090b;border:1px solid var(--lux-gold, #ff98a2);border-radius:var(--radius-sm);font-weight:600;cursor:pointer}.modal-dialog .btn-luxury-gold:disabled{opacity:.6;cursor:not-allowed}.auth-dialog .btn-block+.btn-block{margin-top:var(--space-2)}.auth-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.auth-tab{padding:6px 16px;border-radius:var(--radius-md);border:1px solid var(--color-gray-300, #d4d4d8);background:#fff;color:var(--color-charcoal, #27272a);font-size:var(--font-size-sm);font-family:inherit;cursor:pointer}.auth-tab.is-active{background:var(--lux-gold, #ff98a2);border-color:var(--lux-gold, #ff98a2);color:#09090b;font-weight:600}
