/* IBEX Phone V57 – final mobile keypad geometry and account/navigation refinement. */
.v57-admin-shortcut[hidden], #v57-admin-menu-link[hidden]{display:none!important}
.v57-admin-shortcut{display:flex;align-items:center;gap:13px;margin:0 0 16px;padding:15px 17px;color:var(--v25-title,#203954);text-decoration:none;background:var(--v25-area,#fff);border:1px solid var(--v25-rule,#dce4ee);border-radius:16px;box-shadow:none}
.v57-admin-shortcut .icon{width:22px;height:22px;flex-shrink:0;color:#e77b26}
.v57-admin-shortcut span:nth-of-type(1){display:grid;gap:4px;flex:1;min-width:0}
.v57-admin-shortcut strong{font-size:14px;font-weight:780}
.v57-admin-shortcut small{font-size:12px;color:var(--v25-secondary,#7b879b)}
.v57-admin-shortcut span:last-child{font-size:21px;color:#e77927}
#page-settings .v57-assigned-line{display:grid;gap:6px;padding:19px 20px;background:var(--v25-area-soft,#f8fafc);border:1px solid var(--v25-rule,#e1e8ee);border-radius:17px}
#page-settings .v57-assigned-line strong{font-size:14px;font-weight:760}
#page-settings .v57-assigned-line small{font-size:21px;font-weight:820;letter-spacing:.01em;overflow-wrap:anywhere;color:var(--v25-title,#142b48)}
#page-settings .v57-assigned-line p{font-size:12px;line-height:1.5;color:var(--v25-secondary,#75869a);margin:4px 0 0}
#page-settings .v57-managed-chip{white-space:nowrap;letter-spacing:.03em}
html[data-theme="dark"] .v57-admin-shortcut,html[data-theme="dark"] #page-settings .v57-assigned-line{background:#1e2c43;border-color:#3b4c61;color:#f0f4fc}
html[data-theme="dark"] #page-settings .v57-assigned-line small{color:#f0f4fc}
/* The contact editor is an inset dialog, not a full-height browser sheet. */
.v33-contact-editor-overlay:not([hidden]){position:fixed!important;inset:0!important;z-index:11000!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:max(18px,env(safe-area-inset-top)) 22px max(18px,env(safe-area-inset-bottom))!important;background:rgba(4,13,31,.68)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;box-sizing:border-box!important}
.v33-contact-editor-sheet{width:min(458px,100%)!important;max-height:min(76dvh,680px)!important;min-width:0!important;padding:22px!important;margin:0 auto!important;border-radius:25px!important;background:var(--v25-area,#fff)!important;border:1px solid var(--v25-rule,#e1e8f1)!important;box-shadow:0 28px 85px rgba(0,9,25,.33)!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-width:thin!important;box-sizing:border-box!important}
.v33-contact-editor-head{margin-bottom:15px!important;align-items:center!important}
.v33-contact-editor-head h2{font-size:24px!important;line-height:1.2!important;letter-spacing:-.03em!important}
.v33-contact-editor-head .section-kicker{font-size:10px!important;letter-spacing:.14em!important}
.v33-contact-form{display:grid!important;gap:9px!important}
.v33-contact-form label{display:grid!important;gap:5px!important;min-width:0!important;margin:0!important;font-size:12px!important;font-weight:730!important}
.v33-contact-form label input:not([type="checkbox"]){width:100%!important;box-sizing:border-box!important;min-height:45px!important;height:45px!important;padding:10px 13px!important;border-radius:13px!important;font-size:16px!important;line-height:1.2!important}
.v33-contact-form .v33-favorite-option{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;min-height:37px!important;padding-top:2px!important;font-size:12px!important}
.v33-contact-form .v33-favorite-option input{accent-color:#e47d2d!important}
.v33-contact-actions{margin-top:5px!important;display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;gap:8px!important}
.v33-contact-actions button{min-height:43px!important;padding:9px 14px!important;border-radius:12px!important;white-space:normal!important;font-size:13px!important;font-weight:750!important}
.v33-contact-editor-sheet>small{display:block!important;margin-top:13px!important;font-size:11px!important;line-height:1.45!important;color:var(--v25-secondary,#768698)!important}
html[data-theme="dark"] .v33-contact-editor-sheet{background:#182438!important;border-color:#35445d!important}
@media(max-width:740px){
  .v33-contact-editor-overlay:not([hidden]){padding:22px 20px max(20px,env(safe-area-inset-bottom))!important}
  .v33-contact-editor-sheet{width:100%!important;max-width:430px!important;max-height:min(76dvh,645px)!important;padding:20px 18px!important;border-radius:24px!important}
  .v33-contact-form{gap:8px!important}
}
/* Mobile keypad: one viewport, no document scroll and no clipped bottom tabs. */
@media(max-width:740px){
  body:has(#page-dialer.page-active){overflow:hidden!important;overscroll-behavior:none!important}
  body:has(#page-dialer.page-active) .content-wrap{min-height:0!important;overflow:hidden!important}
  body:has(#page-dialer.page-active) .content-wrap>.main{
    box-sizing:border-box!important;
    height:var(--v57-main-height,calc(100dvh - 154px))!important;
    max-height:var(--v57-main-height,calc(100dvh - 154px))!important;
    min-height:0!important;
    overflow:hidden!important;
    display:block!important;
    padding:5px 12px 0!important;
    margin:0 auto!important;
  }
  #page-dialer.page-active{height:100%!important;min-height:0!important;padding:0!important;display:flex!important;flex-direction:column!important;gap:0!important;overflow:hidden!important}
  #page-dialer .dialer-intro{flex:0 0 auto!important;margin:0 3px 7px!important;padding:0!important}
  #page-dialer .dialer-intro h1{font-size:clamp(26px,4.1dvh,34px)!important;line-height:1.15!important;letter-spacing:-.045em!important}
  #page-dialer .dialer-intro .kicker,#page-dialer .dialer-intro .today-label{display:none!important}
  #page-dialer .dashboard-grid{padding:0!important;margin:0!important;display:flex!important;flex:1 1 0!important;min-height:0!important;overflow:hidden!important;gap:0!important}
  #page-dialer .dashboard-aside{display:none!important}
  #page-dialer .dialer-panel{
    box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;
    flex:1 1 0!important;height:100%!important;max-height:100%!important;min-height:0!important;
    margin:0!important;padding:12px 16px 12px!important;overflow:hidden!important;
    border-radius:28px!important;
    background:linear-gradient(165deg,rgba(255,255,255,.96),rgba(243,247,253,.96))!important;
    border:1px solid rgba(146,168,195,.25)!important;box-shadow:0 9px 25px rgba(6,27,63,.08)!important;
  }
  html[data-theme="dark"] #page-dialer .dialer-panel{background:linear-gradient(160deg,#192639,#141d2b)!important;border-color:#344158!important;box-shadow:none!important}
  #page-dialer .dialer-panel::before{opacity:.23!important;pointer-events:none!important}
  #page-dialer .dialer-panel .dialer-panel-header{display:none!important}
  #page-dialer .dialer-panel .connection-banner{flex:0 0 auto!important;min-height:40px!important;height:40px!important;margin:0 0 9px!important;padding:6px 12px!important;border-radius:14px!important}
  #page-dialer .connection-banner-copy{gap:1px!important}
  #page-dialer .connection-banner-copy strong{font-size:12px!important;line-height:1.3!important}
  #page-dialer .connection-banner-copy small{font-size:10px!important;line-height:1.2!important}
  #page-dialer .connection-banner-state{display:none!important}
  #page-dialer .dialer-panel .line-select-wrap{flex:0 0 auto!important;margin:0 0 8px!important;min-height:48px!important}
  #page-dialer .dialer-panel .line-picker{width:100%!important;min-height:48px!important;height:48px!important;padding:6px 12px!important;border-radius:14px!important}
  #page-dialer .line-picker-label small{font-size:9px!important;letter-spacing:.095em!important}
  #page-dialer .line-picker-label strong{font-size:12px!important;overflow-wrap:anywhere!important}
  #page-dialer .dialer-panel .number-field{flex:0 0 auto!important;box-sizing:border-box!important;min-height:60px!important;height:60px!important;margin:0 auto 7px!important;padding:0 10px!important;display:flex!important;width:100%!important;max-width:330px!important;align-items:center!important;border-radius:15px!important;border:1px solid rgba(140,162,190,.18)!important;background:rgba(112,135,167,.07)!important}
  #page-dialer .dialer-panel .number-field input{font-size:clamp(22px,3.2dvh,30px)!important;height:56px!important;min-height:0!important;flex:1!important;min-width:0!important;font-weight:530!important;letter-spacing:.01em!important;text-align:center!important;background:transparent!important}
  #page-dialer .dialer-panel .number-field input::placeholder{font-size:clamp(19px,2.85dvh,26px)!important;letter-spacing:0!important;opacity:.82!important}
  #page-dialer .dialer-panel .erase{flex:0 0 auto!important;width:34px!important;height:34px!important;min-width:34px!important;margin:0!important}
  #page-dialer .dialer-panel .keypad{
    display:grid!important;flex:1 1 0!important;min-height:0!important;max-height:none!important;height:auto!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:repeat(4,minmax(0,1fr))!important;
    width:min(100%,310px)!important;max-width:310px!important;margin:7px auto 13px!important;
    column-gap:clamp(10px,2.6vw,17px)!important;row-gap:clamp(6px,1.1dvh,11px)!important;align-content:stretch!important;justify-items:center!important;align-items:center!important;
  }
  #page-dialer .dialer-panel .key{
    box-sizing:border-box!important;width:min(var(--v57-key-size,64px),100%)!important;
    height:min(var(--v57-key-size,64px),100%)!important;min-width:0!important;min-height:0!important;
    padding:0!important;aspect-ratio:1!important;border-radius:50%!important;
    background:linear-gradient(155deg,#edf2fa,#dce5f2)!important;
    border:1px solid rgba(119,145,177,.25)!important;
    box-shadow:inset 0 1px rgba(255,255,255,.14),0 4px 12px rgba(20,42,81,.09)!important;
    transition:background .15s,transform .12s!important;
  }
  html[data-theme="dark"] #page-dialer .dialer-panel .key{background:linear-gradient(150deg,#33445d,#26354d)!important;border-color:#465671!important;box-shadow:inset 0 1px rgba(255,255,255,.06)!important}
  #page-dialer .dialer-panel .key:active{transform:scale(.94)!important}
  #page-dialer .dialer-panel .key strong{font-size:clamp(24px,3.25dvh,31px)!important;line-height:1!important;font-weight:570!important}
  #page-dialer .dialer-panel .key small{font-size:9px!important;letter-spacing:.16em!important;line-height:1!important;margin-top:3px!important}
  #page-dialer .dialer-panel .key[data-digit="*"] .v44-star-glyph{font-size:34px!important;height:auto!important;transform:translateY(4px)!important}
  #page-dialer .dialer-panel .dial-actions{flex:0 0 auto!important;margin:7px auto 0!important;display:flex!important;flex-direction:column!important;align-items:center!important;padding:0!important;}
  #page-dialer .dialer-panel #start-call{flex:0 0 auto!important;box-sizing:border-box!important;width:clamp(54px,7.4dvh,68px)!important;height:clamp(54px,7.4dvh,68px)!important;min-height:54px!important;min-width:54px!important;box-shadow:0 0 0 5px rgba(239,136,48,.11),0 8px 20px rgba(220,106,38,.24)!important}
  #page-dialer .dialer-panel #start-call .handset-icon{height:26px!important;width:26px!important}
  #page-dialer .dialer-panel .call-action-hint{display:none!important}
  #page-dialer .dialer-panel .dialer-foot{display:none!important}
  .mobile-nav{position:fixed!important;left:12px!important;right:12px!important;width:auto!important;box-sizing:border-box!important;height:63px!important;bottom:calc(var(--v57-browser-offset,0px) + env(safe-area-inset-bottom) + 9px)!important;z-index:950!important;display:flex!important;padding:6px!important;border-radius:23px!important;box-shadow:0 12px 28px rgba(1,20,46,.2)!important}
  .mobile-nav button{min-width:0!important;min-height:48px!important;touch-action:manipulation!important}
  /* Only the actual keypad page is a scroll-free viewport. Other sections scroll normally. */
  body.v57-mobile-keyboard-open:has(#page-dialer.page-active){overflow:auto!important}
  body.v57-mobile-keyboard-open .mobile-nav{display:none!important}
  body.v57-mobile-keyboard-open .content-wrap>.main{height:auto!important;max-height:none!important;overflow:auto!important}
}
@media(max-width:740px) and (max-height:700px){
  #page-dialer .dialer-panel{padding:8px 13px!important}
  #page-dialer .dialer-panel .connection-banner{height:36px!important;min-height:36px!important;margin-bottom:6px!important}
  #page-dialer .dialer-panel .line-picker{height:43px!important;min-height:43px!important}
  #page-dialer .dialer-panel .line-select-wrap{min-height:43px!important;margin-bottom:6px!important}
  #page-dialer .dialer-panel .number-field{height:50px!important;min-height:50px!important;margin-bottom:4px!important}
  #page-dialer .dialer-panel .number-field input{height:47px!important}
  #page-dialer .dialer-panel .keypad{margin:3px auto 9px!important;row-gap:4px!important}
  #page-dialer .dialer-panel #start-call{min-height:50px!important;min-width:50px!important;width:52px!important;height:52px!important}
}
/* Explicit contrast: older contact CSS set light-only label colors. */
html[data-theme="dark"] .v33-contact-editor-sheet,html[data-theme="dark"] .v33-contact-editor-head h2,html[data-theme="dark"] .v33-contact-form label,html[data-theme="dark"] .v33-contact-form .v33-favorite-option,html[data-theme="dark"] .v33-contact-editor-head button{color:#f2f5fb!important}
html[data-theme="dark"] .v33-contact-form input:not([type="checkbox"]){background:#202e43!important;color:#f0f6ff!important;border:1px solid #455672!important}
html[data-theme="dark"] .v33-contact-form input::placeholder{color:#9fb1c6!important}
html[data-theme="dark"] .v33-contact-actions button:not(.v33-contact-primary){color:#ebf2fc!important;background:#263952!important;border-color:#46566d!important}
html[data-theme="dark"] .v33-contact-editor-sheet>small{color:#b0c0d1!important}

@media(max-width:740px){#page-settings .v16-setting-group{scroll-margin-top:76px!important}}
