.phone-input { display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr); gap:8px; width:100%; min-width:0; }
.phone-input [hidden] { display:none !important; }
[data-recipient-sms][hidden], [data-recipient-email][hidden] { display:none !important; }
.phone-input > input, .phone-input select { min-width:0; width:100%; }
.phone-country { position:relative; display:block; min-width:0; }
.phone-input .phone-country-toggle { display:flex; align-items:center; gap:8px; width:100%; min-height:48px; padding:10px 12px; color:#132033; background:#fff; border:1px solid #dbe4ef; border-radius:7px; box-shadow:none; font:inherit; font-weight:500; text-align:left; }
.phone-country-toggle span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.phone-country-toggle .phone-dial { flex:none; font-weight:700; }
.phone-country-toggle::after { content:""; flex:none; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin:0 2px 4px; }
.phone-input .phone-flag { display:block; width:24px; height:18px; flex:none; object-fit:cover; margin:0; border:1px solid #dbe4ef; border-radius:2px; }
.phone-country-panel { position:absolute; top:calc(100% + 5px); left:0; width:max(100%, 280px); max-width:calc(100vw - 48px); z-index:60; padding:8px; border:1px solid #dbe4ef; border-radius:7px; background:#fff; box-shadow:0 8px 24px #13203320; }
.phone-country-panel input { width:100%; font-size:16px; }
.phone-country-list { display:grid; gap:2px; max-height:225px; overflow:auto; overscroll-behavior:contain; margin-top:6px; }
.phone-input .phone-country-option { display:flex; align-items:center; gap:9px; min-height:44px; padding:8px; border:0; border-radius:4px; color:#132033; background:#fff; font:inherit; font-size:14px; font-weight:500; text-align:left; box-shadow:none; }
.phone-country-option span { overflow-wrap:anywhere; }
.phone-input .phone-country-option:hover, .phone-input .phone-country-option:focus, .phone-input .phone-country-option[aria-selected="true"] { color:#02451e; background:#ecf8f1; }
.phone-input .phone-country-toggle:focus-visible { outline:3px solid #14734340; outline-offset:2px; }
.phone-input .phone-help { grid-column:1 / -1; display:block; font-size:12px; line-height:1.5; font-weight:500; color:#637083; margin:0; }
.phone-custom-code { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0, 1fr) 100px; gap:8px; align-items:center; font-size:12px; font-weight:500; }
@media (max-width:540px) { .phone-input { grid-template-columns:1fr; } .phone-country-panel { width:100%; } }
