.cf-overlay{position:fixed;inset:0;z-index:10000;background:rgba(1,27,64,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 0.3s ease,visibility 0.3s ease;padding:1rem}.cf-overlay.cf-active{opacity:1;visibility:visible}.cf-modal{position:relative;background:#fff;border-radius:1rem;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(1,27,64,.35);transform:translateY(20px) scale(.97);transition:transform 0.3s ease}.cf-overlay.cf-active .cf-modal{transform:translateY(0) scale(1)}.cf-close{position:absolute;top:1rem;right:1rem;z-index:2;background:none;border:none;font-size:1.75rem;color:#6d7685;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background 0.2s ease,color 0.2s ease;line-height:1}.cf-close:hover{background:#f0f2f5;color:#011b40}.cf-progress{height:4px;background:#e8ede9;border-radius:1rem 1rem 0 0;overflow:hidden}.cf-progress-bar{height:100%;background:linear-gradient(135deg,#bcb28c,#957861);border-radius:1rem 1rem 0 0;transition:width 0.4s cubic-bezier(.4,0,.2,1);width:0}.cf-content{padding:2.5rem 2rem 2rem;transition:opacity 0.3s ease,transform 0.3s ease}.cf-title{font-family:'Montserrat',Georgia,serif;font-size:1.5rem;font-weight:700;color:#011b40;margin-bottom:.375rem;line-height:1.25}.cf-subtitle{font-family:'Montserrat',sans-serif;font-size:.9375rem;color:#6d7685;margin-bottom:1.75rem;line-height:1.5}.cf-back{background:none;border:none;color:#957861;font-family:'Montserrat',sans-serif;font-size:.875rem;font-weight:500;cursor:pointer;padding:0;margin-bottom:1.25rem;display:inline-flex;align-items:center;gap:.25rem;transition:color 0.2s ease}.cf-back:hover{color:#011b40}.cf-cards{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.cf-card{display:flex;flex-direction:column;align-items:flex-start;padding:1rem 1.125rem;background:#fafaf8;border:2px solid #e8ede9;border-radius:.75rem;cursor:pointer;text-align:left;transition:border-color 0.2s ease,background 0.2s ease,transform 0.15s ease,box-shadow 0.2s ease;font-family:'Montserrat',sans-serif}.cf-card:hover{border-color:#bcb28c;background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(188,178,140,.2)}.cf-card.cf-selected{border-color:#957861;background:#faf6ed;box-shadow:0 0 0 3px rgba(149,120,97,.18)}.cf-card-title{font-size:.9375rem;font-weight:600;color:#011b40;line-height:1.3}.cf-card-desc{font-size:.8125rem;color:#6d7685;margin-top:.2rem;line-height:1.4}.cf-form{display:flex;flex-direction:column;gap:1.125rem}.cf-field{display:flex;flex-direction:column;gap:.375rem}.cf-field label{font-family:'Montserrat',sans-serif;font-size:.8125rem;font-weight:600;color:#011b40;letter-spacing:.01em}.cf-field input{font-family:'Montserrat',sans-serif;font-size:1rem;padding:.75rem 1rem;border:2px solid #e8ede9;border-radius:.625rem;color:#011b40;background:#fafaf8;outline:none;transition:border-color 0.2s ease,background 0.2s ease,box-shadow 0.2s ease}.cf-field input:focus{border-color:#bcb28c;background:#fff;box-shadow:0 0 0 3px rgba(188,178,140,.18)}.cf-field input::placeholder{color:#a0a8b4}.cf-submit{font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:600;padding:.875rem 1.5rem;background:linear-gradient(135deg,#bcb28c,#957861);color:#011b40;border:none;border-radius:.625rem;cursor:pointer;transition:transform 0.15s ease,box-shadow 0.2s ease,opacity 0.2s ease;margin-top:.5rem;letter-spacing:.01em}.cf-submit:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(149,120,97,.35);color:#011b40}.cf-submit:active{transform:translateY(0)}.cf-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width:600px){.cf-overlay{align-items:flex-end;padding:0}.cf-modal{max-width:100%;max-height:95vh;border-radius:1rem 1rem 0 0;margin-top:auto;transform:translateY(100%)}.cf-overlay.cf-active .cf-modal{transform:translateY(0)}.cf-content{padding:2rem 1.25rem 1.75rem}.cf-title{font-size:1.25rem}.cf-cards{grid-template-columns:1fr;gap:.625rem}.cf-card{flex-direction:column;align-items:flex-start;gap:.25rem;padding:.875rem 1rem}.cf-card-title{font-size:.875rem}.cf-card-desc{font-size:.75rem}}@media (max-width:380px){.cf-content{padding:1.5rem 1rem 1.5rem}.cf-title{font-size:1.125rem}.cf-subtitle{font-size:.8125rem}}