.ef-card,.ef-modal .modal-content{--ef-accent:#1f4fd8;--ef-ink:#141a26;--ef-muted:#6b7385;--ef-line:#dfe4ec;--ef-soft:#f4f6fa;--ef-danger:#d92d20;color:var(--ef-ink);font-family:inherit}.ef-modal .modal-dialog{max-width:440px}.ef-modal .modal-content{border:0;border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.28);background:#fff}.ef-card{background:#fff;border-radius:18px;width:min(440px,92vw);max-height:92vh;overflow:auto;padding:0}.ef-head{display:flex;align-items:center;gap:14px;padding:20px 52px 16px 20px;border-bottom:1px solid var(--ef-line);background:linear-gradient(180deg,#fff,var(--ef-soft));position:relative}.ef-avatar{flex:0 0 52px;width:52px;height:52px;border-radius:50%;object-fit:cover;background:var(--ef-soft);border:2px solid #fff;box-shadow:0 0 0 1px var(--ef-line);display:flex;align-items:center;justify-content:center;color:var(--ef-accent);font-size:22px}.ef-title{margin:0;font-size:18px;font-weight:700;line-height:1.25;color:var(--ef-ink)}.ef-sub{margin:3px 0 0;font-size:13px;color:var(--ef-muted);line-height:1.35}.ef-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--ef-muted);font-size:24px;line-height:1;cursor:pointer}.ef-close:hover{background:var(--ef-soft);color:var(--ef-ink)}.ef-body{padding:18px 20px 6px}.ef-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ef-field{margin-bottom:14px}.ef-field label{display:block;margin:0 0 6px;font-size:13px;font-weight:600;color:var(--ef-ink)}.ef-field label .ef-req{color:var(--ef-danger)}.ef-field label .ef-opt{font-weight:400;color:var(--ef-muted)}.ef-field .form-control{height:46px;padding:0 14px;font-size:16px;color:var(--ef-ink);background:#fff;border:1px solid var(--ef-line);border-radius:10px;box-shadow:none;transition:border-color .15s,box-shadow .15s}.ef-field textarea.form-control{height:auto;min-height:96px;padding:11px 14px;resize:vertical}.ef-field .form-control::placeholder{color:#a3abbb}.ef-field .form-control:focus{border-color:var(--ef-accent);box-shadow:0 0 0 3px rgba(31,79,216,.15);outline:0}.ef-field .form-control.ef-invalid{border-color:var(--ef-danger);box-shadow:0 0 0 3px rgba(217,45,32,.12)}.ef-error,.ef-field .field-validation-error{display:block;margin-top:5px;font-size:12.5px;color:var(--ef-danger)}.ef-foot{padding:6px 20px 20px}.ef-submit{width:100%;height:48px;border:0;border-radius:12px;background:var(--ef-accent);color:#fff;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:filter .15s,transform .05s}.ef-submit:hover{filter:brightness(1.08)}.ef-submit:active{transform:translateY(1px)}.ef-submit[disabled]{opacity:.65;cursor:progress}.ef-note{margin:12px 0 0;text-align:center;font-size:12px;color:var(--ef-muted)}.ef-note i{margin-right:4px}@media(max-width:480px){.ef-modal .modal-dialog{margin:12px}.ef-row{grid-template-columns:1fr;gap:0}.ef-head{padding:16px 48px 14px 16px}.ef-body{padding:16px 16px 4px}.ef-foot{padding:4px 16px 16px}}@media(prefers-reduced-motion:reduce){.ef-field .form-control,.ef-submit{transition:none}}.ecard-powered-wrap{display:flex;justify-content:center;padding:16px 16px calc(82px + env(safe-area-inset-bottom))}.ecard-powered{display:inline-flex;align-items:center;gap:12px;max-width:100%;padding:6px 6px 6px 16px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(17,24,39,.06);color:#4b5563;font:500 12px/1.2 "Plus Jakarta Sans",system-ui,sans-serif;text-decoration:none}.ecard-powered strong{color:#0f9f86;font-weight:700}.ecard-powered-cta{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#0f9f86;color:#fff;font-weight:600;white-space:nowrap}.ecard-powered:hover,.ecard-powered:focus-visible{border-color:#0f9f86;color:#4b5563;text-decoration:none}.ecard-powered:hover .ecard-powered-cta,.ecard-powered:focus-visible .ecard-powered-cta{background:#0c8571;color:#fff}.ecard-powered:focus-visible{outline:2px solid #0f9f86;outline-offset:2px}@media(max-width:360px){.ecard-powered{gap:8px;padding-left:12px}.ecard-powered-cta{padding:8px 10px}}