.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:all var(--transition-fast);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);box-shadow:var(--shadow-md)}.btn-accent{background-color:var(--color-gold);color:var(--color-ivory-light)}.btn-accent:hover:not(:disabled){background-color:var(--color-gold-dark);box-shadow:var(--shadow-md)}.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}}
