/* Phone navigation is deliberately scoped away from the management and live call screens. */
.app.phone-mode{background:#000}
#view-phone{background:#000;color:#fff;overflow:hidden;--phone-blue:#0a84ff;--phone-muted:#8e8e93;--phone-safe-top:env(safe-area-inset-top,0px);--phone-safe-bottom:env(safe-area-inset-bottom,0px)}
#phone-root{height:100%;min-height:0;display:flex;flex-direction:column;position:relative;container-type:size;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Microsoft Yahei",sans-serif;-webkit-font-smoothing:antialiased}
.phone-ui button{font:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.phone-ui button:focus-visible{outline:2px solid var(--phone-blue);outline-offset:4px}
.phone-ui svg{display:block;fill:currentColor;width:24px;height:24px;flex:none}
.phone-ui .phone-icon-cut{fill:none;stroke:#000;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.phone-ui .phone-icon-cut-fill{fill:#000}
.phone-page{flex:1;min-height:0;overflow-y:auto;position:relative;scrollbar-width:none;padding-bottom:18px}
.phone-page::-webkit-scrollbar{display:none}
.phone-header{padding:calc(13px + var(--phone-safe-top)) 17px 12px;position:relative}
.phone-header-bar{display:grid;grid-template-columns:1fr auto 1fr;gap:9px;align-items:center;min-height:39px}
.phone-header-title{font-size:20px;font-weight:600;white-space:nowrap;text-align:center}
.phone-header-bar>:last-child{justify-self:end}.phone-header-bar>:first-child{justify-self:start}.phone-header-space{width:30px}
.phone-blue{color:var(--phone-blue);background:none;border:0;padding:5px 0;font-size:17px!important;line-height:1.4}
.phone-plus{padding:3px;width:30px;height:35px}.phone-plus svg{width:30px;height:30px}
.phone-back{display:flex;align-items:center;gap:2px;margin-left:-9px;white-space:nowrap}.phone-back svg{width:25px;height:25px}
.phone-header-large{padding-bottom:10px}.phone-large-title{font-size:35px;font-weight:700;letter-spacing:.2px;margin:13px 0 0;line-height:1.3}
.phone-nav{position:relative;flex:0 0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;background:#000;border:0;padding:0 0 var(--phone-safe-bottom);height:calc(49px + var(--phone-safe-bottom));z-index:3}
.phone-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:0;color:#858588;min-width:0;padding:0 1px;font-size:10px!important;white-space:nowrap;line-height:14px}
.phone-tab svg{width:30px;height:30px}.phone-tab.selected{color:var(--phone-blue)}
.phone-nav{transform:translateY(calc(0px - var(--phone-nav-lift,0px)))}
.phone-search{display:flex;gap:9px;align-items:center;background:#1c1c1e;border-radius:11px;color:#8e8e93;margin:0 17px 14px;padding:9px 11px;min-height:39px}
.phone-search svg{width:22px;height:22px}.phone-search input{font:inherit;font-size:17px;min-width:0;flex:1;border:0;background:transparent;color:white;padding:0;outline:none}.phone-search input::placeholder{color:#8e8e93;opacity:1}
.phone-contact-list{padding:0 26px 0 17px;position:relative;min-height:80px}
.phone-letter{font-size:17px;font-weight:600;color:var(--phone-muted);padding:18px 0 5px;margin:0;border-bottom:1px solid #2b2b2d;scroll-margin-top:10px}
.phone-contact-row{display:flex;justify-content:space-between;align-items:center;width:100%;color:#fff;background:transparent;border:0;border-bottom:1px solid #2b2b2d;min-height:48px;padding:11px 0;text-align:left;font-size:19px!important;font-weight:500!important;line-height:1.4}
.phone-contact-row>span:first-child{min-width:0;overflow-wrap:anywhere}.phone-checkmark{color:var(--phone-blue);padding-left:10px}
.phone-alphabet{position:absolute;align-self:center;right:2px;top:29%;bottom:18%;display:flex;flex-direction:column;justify-content:center;gap:1px;z-index:2}
.phone-alphabet button{border:0;background:none;color:var(--phone-blue);font-size:11px;min-height:17px;min-width:19px;padding:0;font-weight:600}
.phone-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#5c5c60;font-size:27px;pointer-events:none;padding:90px 20px 20px;text-align:center;font-weight:400}
.phone-empty-inline{color:#737378;font-size:17px;text-align:center;padding:48px 10px 16px;margin:0;line-height:1.7}
.phone-empty-action{display:block;background:none;border:0;color:var(--phone-blue);font-size:17px!important;margin:4px auto;padding:12px}
.phone-page-favorites .phone-header,.phone-page-contacts .phone-header{padding-bottom:17px}
.phone-avatar{height:45px;width:45px;flex:0 0 45px;display:flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:#999da8;color:#fff}
.phone-avatar svg{width:39px;height:39px;transform:translateY(4px)}.phone-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.phone-favorites{padding:5px 17px}.phone-favorite-row{display:flex;align-items:center;gap:14px;min-height:75px;border-bottom:1px solid #29292c}
.phone-favorite-main{display:flex;align-items:center;gap:14px;flex:1;min-width:0;text-align:left;background:none;border:0;color:#fff;padding:10px 0}
.phone-favorite-name{font-size:20px;overflow-wrap:anywhere}.phone-info{background:none;border:0;padding:4px;color:var(--phone-blue);flex:none}.phone-info svg{width:25px;height:25px}
.phone-detail-top{text-align:center;padding:18px 20px 13px;display:flex;align-items:center;flex-direction:column}
.phone-avatar-large{width:94px;height:94px;flex-basis:94px}.phone-avatar-large svg{height:84px;width:84px;transform:translateY(9px)}
.phone-detail-name{font-size:30px;font-weight:400;line-height:1.3;margin:13px 0 0;overflow-wrap:anywhere;max-width:100%}
.phone-detail-actions{display:flex;justify-content:center;gap:12px;padding:8px 17px 24px}.phone-detail-action{border:0;background:#1c1c1e;color:var(--phone-blue);border-radius:11px;display:flex;flex:1;max-width:170px;flex-direction:column;align-items:center;gap:7px;padding:13px 6px;font-size:13px!important}.phone-detail-action svg{height:25px;width:25px}
.phone-detail-card{margin:0 17px;background:#1c1c1e;border-radius:11px;padding:0 16px}.phone-number-link{border:0;background:none;display:flex;flex-direction:column;text-align:left;gap:7px;width:100%;padding:14px 0;color:var(--phone-blue)}.phone-number-link small{font-size:13px;color:#fff}.phone-number-link strong{font-weight:400;font-size:21px;overflow-wrap:anywhere}
.phone-segment{display:flex;border-radius:9px;background:#1c1c1e;padding:3px;white-space:nowrap}.phone-segment button{border:0;border-radius:7px;background:none;color:#fff;padding:6px 10px;font-size:13px!important;font-weight:500}.phone-segment button.selected{background:#5b5b60}
.phone-recents{padding:0 17px}.phone-recent-row{display:flex;align-items:center;gap:7px;min-height:76px;border-bottom:1px solid #29292c}.phone-recent-main{display:flex;align-items:center;gap:11px;background:none;border:0;color:#fff;text-align:left;flex:1;min-width:0;padding:11px 0}.phone-recent-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.phone-recent-meta strong{font-size:18px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.phone-recent-meta small{color:var(--phone-muted);font-size:13px}.phone-recent-date{font-size:13px;color:var(--phone-muted);flex:none}.phone-missed{color:#ff453a}.phone-remove{color:#fff;background:#ff453a;border:0;border-radius:50%;width:22px;height:22px;flex:none;font-size:24px!important;line-height:19px;padding:0;margin-right:3px}
.phone-page-keypad{--dial-key:78px;--dial-column-gap:24px;--dial-row-gap:18px;--dial-action-gap:19px;--dial-bottom:48px;display:flex;flex-direction:column;align-items:center;overflow:auto;padding:0 0 var(--dial-bottom)}
@supports(width:1cqw){.phone-page-keypad{--dial-key:min(20cqw,84px);--dial-column-gap:min(6.15385cqw,26px);--dial-row-gap:min(4.61538cqw,20px);--dial-action-gap:min(4.8718cqw,20px);--dial-bottom:min(5.6872cqh,48px)}}
.phone-keypad-header{width:100%;padding:calc(12px + var(--phone-safe-top)) 18px 0;flex:none;min-height:0;justify-content:flex-start;gap:4px}
.phone-line-label{display:inline-flex;align-items:center;color:white;background:#0a84ff;border-radius:5px;padding:0 4px;font-size:17px;line-height:22px;font-weight:500}
.phone-line-chevron{color:#8e8e93}.phone-line-chevron svg{width:16px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.phone-dial-display{width:100%;flex:1 0 80px;min-height:80px;display:flex;justify-content:center;flex-direction:column;align-items:center;padding:10px 18px 15px}
.phone-dial-number{font:inherit;font-size:32px;letter-spacing:.5px;width:100%;background:transparent;border:0;color:#fff;text-align:center;padding:0;line-height:1.3;font-weight:400;outline:none}
.phone-number-hint{height:28px;text-align:center;font-size:15px;color:var(--phone-muted);padding-top:4px;line-height:1.5}.phone-number-hint .phone-blue{font-size:14px!important;padding:0}
.phone-keypad{display:grid;grid-template-columns:repeat(3,var(--dial-key));gap:var(--dial-row-gap) var(--dial-column-gap);align-items:center;justify-content:center;width:max-content;flex:none}
.phone-digit{width:var(--dial-key);height:var(--dial-key);aspect-ratio:1;background:#333;border:0;border-radius:50%;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px 0 0;min-width:0;-webkit-touch-callout:none}
.phone-digit:active{background:#737373}.phone-digit-number{font-size:39px;line-height:1.03;font-weight:300;letter-spacing:0;pointer-events:none}.phone-digit-letters{font-size:10px;letter-spacing:2px;font-weight:700;line-height:1.4;min-height:14px;padding-left:2px;pointer-events:none}.phone-digit[aria-label="*"] .phone-digit-number,.phone-digit[aria-label="#"] .phone-digit-number{font-size:43px;line-height:1.3}.phone-digit[aria-label="*"] .phone-digit-letters,.phone-digit[aria-label="#"] .phone-digit-letters{display:none}.phone-digit[aria-label="0"] .phone-digit-letters{font-size:19px;line-height:11px;letter-spacing:0;font-weight:400;padding:0}
.phone-dial-actions{display:grid;grid-template-columns:repeat(3,var(--dial-key));gap:var(--dial-column-gap);align-items:center;justify-items:center;width:max-content;margin-top:var(--dial-action-gap);flex:none}
.phone-dial-call{border:0;border-radius:50%;aspect-ratio:1;width:100%;background:#30d158;color:#fff;padding:0;display:grid;place-items:center}.phone-dial-call svg{width:36px;height:36px}.phone-dial-call:active{background:#26ae49}.phone-dial-delete{background:none;border:0;color:#aaa;width:100%;height:50px;display:grid;place-items:center}.phone-dial-delete svg{width:27px;height:27px}
.phone-notice{position:absolute;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);padding:12px 16px;background:#303033f5;box-shadow:0 6px 30px #0009;color:#fff;border-radius:13px;font-size:13px;width:max-content;max-width:calc(100% - 34px);line-height:1.6;z-index:8;text-align:center;pointer-events:none}
@container(max-height:700px){.phone-page-keypad{--dial-key:min(18.5cqw,70px);--dial-row-gap:12px;--dial-action-gap:16px;--dial-bottom:24px}.phone-dial-display{flex-basis:60px;min-height:60px;padding-top:3px;padding-bottom:7px}.phone-digit-number{font-size:34px}.phone-digit-letters{font-size:9px;min-height:12px}.phone-dial-call svg{width:31px;height:31px}.phone-large-title{font-size:32px}}
@container(max-width:359px){.phone-tab{font-size:9px!important}.phone-header{padding-left:14px;padding-right:14px}.phone-segment button{font-size:12px!important;padding:6px 7px}.phone-recent-date{font-size:11px}.phone-recent-main{gap:7px}}

/* Center the asterisk drawing independently of platform font baselines. */
.phone-digit[aria-label="*"]{padding:0}
.phone-digit[aria-label="*"] .phone-digit-number{display:grid;place-items:center;line-height:1}
.phone-digit[aria-label="*"] .phone-digit-number svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Keep titles centered between the phone navigation actions. */
.phone-header-bar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.phone-header-title{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.phone-segment{min-width:0;justify-content:center}
.phone-segment button{white-space:normal}
html[lang="ja"] .phone-header-title{font-size:17px}

/* A horizontal drag reveals one explicit delete action; vertical swipes keep scrolling. */
.phone-swipe-row{position:relative;overflow:hidden;isolation:isolate;touch-action:pan-y;background:#ff453a}
.phone-swipe-content{position:relative;z-index:1;width:100%;background:#000;transform:translateX(0);transition:transform .2s ease;touch-action:pan-y}
.phone-swipe-dragging .phone-swipe-content{transition:none}
.phone-ui .phone-swipe-row button:not(.phone-swipe-delete){touch-action:pan-y}
.phone-swipe-delete{position:absolute;inset:0 0 0 auto;z-index:0;display:flex;align-items:center;justify-content:center;width:88px;padding:8px;border:0;border-radius:0;background:#ff453a;color:#fff;font-size:17px!important;font-weight:500;line-height:1.3;text-align:center;white-space:normal}
.phone-swipe-delete:focus-visible{outline-offset:-5px!important}
.phone-swipe-content .phone-contact-row,.phone-swipe-content .phone-recent-row{background:#000}
.phone-demo-intro{margin:0;padding:15px 0;color:#b2b2b8;font-size:14px;line-height:1.6}
@media(prefers-reduced-motion:reduce){.phone-swipe-content{transition:none}}
