.phone-page{display:none;position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;margin:-20px calc(var(--page-pad) * -1);overflow:hidden;background:#fff;color:#000;font-family:var(--user-font-family,-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",Arial,sans-serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
.launcher.is-phone{padding-bottom:0;}
.launcher.is-phone .home-page,.launcher.is-phone .dock-wrap,.launcher.is-phone .settings-page,.launcher.is-phone .apple-account-page,.launcher.is-phone .messages-page{display:none;}
.launcher.is-phone .phone-page{display:block;}
.phone-page button,.phone-page [role="button"]{-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.phone-page button:active{opacity:.68;}
.phone-fa{display:block;width:1em;height:1em;fill:currentColor;flex:0 0 auto;}
.phone-lucide{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;overflow:visible;}
.phone-avatar-placeholder{width:100%;height:100%;display:block;}
.phone-view{position:absolute;inset:0;display:none;background:#fff;overflow:hidden;}
.phone-view.is-active{display:block;}
.phone-scroll{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:94px;scrollbar-width:none;}
.phone-scroll::-webkit-scrollbar{display:none;}
.phone-topbar{height:66px;padding:9px 16px 8px;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;position:sticky;top:0;z-index:12;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%);}
.phone-topbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:.5px;background:rgba(60,60,67,.12);opacity:0;transition:opacity .14s;}
.phone-topbar.is-scrolled::after{opacity:1;}
.phone-glass-control{height:44px;min-width:44px;padding:0 4px;border-radius:0;background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;display:inline-flex;align-items:center;justify-content:center;color:#111;font-size:17px;font-weight:var(--o3o-fw-500);letter-spacing:-.35px;}
.phone-edit-button{justify-self:start;}
.phone-filter-button{justify-self:end;width:44px;min-width:44px;padding:0;}
.phone-filter-button .phone-fa{width:20px;height:20px;}
.phone-title-button{justify-self:center;color:#111;font-size:19px;font-weight:var(--o3o-fw-700);letter-spacing:-.42px;line-height:1;}
.phone-recents-title{margin:0;padding:0 20px 7px;font-size:29px;font-weight:var(--o3o-main-title-weight);line-height:1.08;letter-spacing:-1.05px;}
.phone-recents{padding-left:20px;}
.phone-recent-row{min-height:76px;padding:8px 14px 8px 0;display:grid;grid-template-columns:51px minmax(0,1fr) auto 48px;gap:10px;align-items:center;position:relative;cursor:pointer;}
.phone-recent-row::after{content:"";position:absolute;left:61px;right:0;bottom:0;height:.5px;background:rgba(60,60,67,.18);}
.phone-recent-avatar,.phone-contact-avatar{width:50px;height:50px;border-radius:50%;overflow:hidden;background:#e5e5ea;display:flex;align-items:center;justify-content:center;}
.phone-recent-copy{min-width:0;}
.phone-recent-name{font-size:17px;font-weight:var(--o3o-fw-650);line-height:1.17;letter-spacing:-.34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phone-recent-row.is-missed .phone-recent-name{color:#ff3b30;}
.phone-recent-sub{margin-top:2px;display:flex;align-items:center;gap:4px;min-width:0;color:#8e8e93;font-size:14px;line-height:1.14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phone-recent-sub .phone-fa{width:12px;height:12px;}
.phone-recent-sub .phone-fa-direction{transform-box:fill-box;transform-origin:center;}
.phone-recent-sub .phone-fa-direction.is-out{transform:rotate(45deg);}
.phone-recent-sub .phone-fa-direction.is-in{transform:rotate(-135deg);}
.phone-recent-time{color:#8e8e93;font-size:15px;line-height:1;white-space:nowrap;}
.phone-recent-call{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(118,118,128,.09);color:#007aff;}
.phone-recent-call .phone-fa{width:18px;height:18px;}
.phone-voicemail-summary{margin-top:3px;color:#8e8e93;font-size:12.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.phone-voicemail-pill{display:inline-flex;align-items:center;margin-left:2px;color:#8e8e93;}
.phone-voicemail-pill .phone-fa{width:12px;height:12px;}
.phone-empty{padding:76px 30px;text-align:center;color:#8e8e93;font-size:14px;line-height:1.45;}
.phone-bottom-dock{position:absolute;z-index:30;left:14px;right:14px;bottom:10px;height:55px;display:grid;grid-template-columns:minmax(0,1fr) 55px;gap:10px;pointer-events:none;}
.phone-bottom-dock.is-hidden{display:none;}
.phone-tabbar,.phone-search-tab{pointer-events:auto;background:rgba(247,247,249,.70);border:.5px solid rgba(255,255,255,.96);box-shadow:0 8px 26px rgba(0,0,0,.10),inset 0 .5px 0 rgba(255,255,255,.95);-webkit-backdrop-filter:blur(30px) saturate(190%);backdrop-filter:blur(30px) saturate(190%);}
.phone-tabbar{height:55px;border-radius:28px;padding:4px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;}
.phone-tab{min-width:0;border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#111;font-size:10.5px;font-weight:var(--o3o-fw-600);line-height:1;letter-spacing:-.12px;}
.phone-tab .phone-fa{width:21px;height:21px;}
.phone-tab[data-phone-tab="keypad"] .phone-fa{width:22px;height:22px;}
.phone-tab.is-active{background:rgba(118,118,128,.12);color:#007aff;}
.phone-search-tab{width:55px;height:55px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#111;position:relative;}
.phone-search-tab .phone-fa,.phone-search-tab .phone-lucide{width:25px;height:25px;}
.phone-search-tab.is-active{background:rgba(244,244,247,.88);color:#007aff;}
.phone-search-tab::after{content:"";position:absolute;right:8px;top:7px;width:9px;height:9px;border-radius:50%;background:rgba(72,210,246,.35);opacity:0;}
.phone-search-tab.is-active::after{opacity:1;}
.phone-contacts-nav{height:62px;padding:8px 16px 6px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;position:sticky;top:0;z-index:10;background:rgba(255,255,255,.84);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);}
.phone-contacts-nav-title{justify-self:center;font-size:17px;font-weight:var(--o3o-fw-700);letter-spacing:-.32px;}
.phone-round-button{width:42px;height:42px;border-radius:50%;background:rgba(246,246,248,.78);border:.5px solid rgba(255,255,255,.98);box-shadow:0 4px 18px rgba(0,0,0,.05);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);display:flex;align-items:center;justify-content:center;color:#111;}
.phone-round-button .phone-fa{width:17px;height:17px;}
.phone-contact-lists-button{justify-self:start;}
.phone-add-contact{justify-self:end;}
.phone-contacts-list{padding-top:1px;}
.phone-contact-group-title{height:22px;padding:3px 17px 1px;background:transparent;color:#8e8e93;font-size:12px;font-weight:var(--o3o-fw-600);}
.phone-contact-row{width:calc(100% - 17px);box-sizing:border-box;min-height:60px;margin-left:17px;padding:6px 21px 6px 0;display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;position:relative;cursor:pointer;text-align:left;}
.phone-contact-row::after{content:"";position:absolute;left:54px;right:0;bottom:0;height:.5px;background:rgba(60,60,67,.18);}
.phone-contact-row .phone-contact-avatar{width:44px;height:44px;}
.phone-contact-name{font-size:17px;font-weight:var(--o3o-fw-500);line-height:1.18;letter-spacing:-.24px;}
.phone-contact-sub{margin-top:2px;color:#8e8e93;font-size:13px;}
.phone-contact-index{position:absolute;right:2px;top:63px;bottom:86px;width:14px;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#007aff;font-size:8.5px;font-weight:var(--o3o-fw-700);line-height:1.12;pointer-events:none;}
.phone-keypad-view{background:#fff;}
.phone-keypad-content{position:absolute;inset:0 0 84px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;padding:18px 0 18px;}
.phone-keypad-number{min-height:42px;max-width:360px;padding:0 18px;text-align:center;font-size:31px;font-weight:var(--o3o-fw-400);line-height:1.18;letter-spacing:.1px;word-break:break-all;}
.phone-keypad-number.is-empty{visibility:hidden;}
.phone-keypad-match{min-height:30px;margin-top:0;display:flex;align-items:center;justify-content:center;}
.phone-keypad-match button{max-width:310px;height:30px;padding:0 12px;border-radius:15px;background:rgba(118,118,128,.08);color:#007aff;font-size:13px;font-weight:var(--o3o-fw-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phone-keypad-grid{margin-top:9px;display:grid;grid-template-columns:repeat(3,74px);grid-auto-rows:74px;gap:11px 23px;}
.phone-key{width:74px;height:74px;border-radius:50%;background:rgba(248,248,250,.64);border:.5px solid rgba(255,255,255,.98);box-shadow:0 7px 18px rgba(0,0,0,.055),inset 0 .5px 0 rgba(255,255,255,.95);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#111;line-height:1;}
.phone-key strong{font-size:30px;font-weight:var(--o3o-fw-400);letter-spacing:-.15px;}
.phone-key small{height:10px;margin-top:3px;font-size:9px;font-weight:var(--o3o-fw-650);letter-spacing:1.55px;}
.phone-key.symbol strong{font-size:32px;}
.phone-keypad-actions{height:70px;margin-top:12px;display:grid;grid-template-columns:74px 74px 74px;gap:23px;align-items:center;}
.phone-call-button{grid-column:2;width:70px;height:70px;border-radius:50%;background:#34c759;color:#fff;display:flex;align-items:center;justify-content:center;}
.phone-call-button .phone-fa{width:27px;height:27px;}
.phone-delete-button{grid-column:3;width:70px;height:70px;display:flex;align-items:center;justify-content:center;color:#111;visibility:hidden;}
.phone-delete-button.is-visible{visibility:visible;}
.phone-delete-button .phone-fa{width:25px;height:25px;}
.phone-search-view{background:#fff;}
.phone-search-head{padding:9px 16px 9px;position:sticky;top:0;z-index:10;background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);}
.phone-search-title{font-size:34px;font-weight:var(--o3o-main-title-weight);letter-spacing:-1.25px;line-height:1;margin:7px 0 11px;}
.phone-search-main-field{height:41px;border-radius:14px;background:rgba(118,118,128,.10);display:flex;align-items:center;gap:8px;padding:0 11px;color:#8e8e93;}
.phone-search-main-field .phone-fa,.phone-search-main-field .phone-lucide{width:16px;height:16px;}
.phone-search-main-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#111;font-size:17px;}
.phone-search-results{padding-bottom:94px;}
.phone-search-group-title{padding:18px 17px 7px;font-size:21px;font-weight:var(--o3o-fw-730);letter-spacing:-.48px;}
.phone-search-row{min-height:65px;margin-left:17px;padding:7px 16px 7px 0;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;position:relative;}
.phone-search-row::after{content:"";position:absolute;left:58px;right:0;bottom:0;height:.5px;background:rgba(60,60,67,.18);}
.phone-search-row .phone-contact-avatar{width:48px;height:48px;}
.phone-search-row-type{color:#8e8e93;font-size:12px;}
.phone-detail-view{z-index:35;background:linear-gradient(180deg,#8d999e 0,#a6adaf 25%,#d7dbdc 48%,#f2f2f7 78%);}
.phone-detail-scroll{position:absolute;inset:0;overflow-y:auto;padding:8px 16px 38px;scrollbar-width:none;}
.phone-detail-scroll::-webkit-scrollbar{display:none;}
.phone-detail-nav{height:44px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2;}
.phone-detail-back,.phone-detail-edit{height:40px;min-width:40px;padding:0 13px;border-radius:20px;background:rgba(246,246,248,.36);border:.5px solid rgba(255,255,255,.56);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);color:#fff;display:flex;align-items:center;justify-content:center;}
.phone-detail-back{width:40px;padding:0;}
.phone-detail-back .phone-fa{width:10px;height:17px;}
.phone-detail-edit{font-size:15px;font-weight:var(--o3o-fw-550);}
.phone-detail-hero{text-align:center;padding:15px 0 16px;color:#fff;}
.phone-detail-avatar{width:114px;height:114px;margin:0 auto;border-radius:50%;overflow:hidden;background:#d7d7dc;border:.5px solid rgba(255,255,255,.38);}
.phone-detail-name{margin-top:12px;font-size:30px;font-weight:var(--o3o-fw-650);line-height:1.05;letter-spacing:-.9px;}
.phone-detail-number{margin-top:4px;color:rgba(255,255,255,.72);font-size:14px;}
.phone-contact-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;}
.phone-contact-action{height:70px;border-radius:14px;background:rgba(246,246,248,.38);border:.5px solid rgba(255,255,255,.52);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:var(--o3o-fw-500);}
.phone-contact-action .phone-fa{width:19px;height:19px;}
.phone-detail-card{overflow:hidden;border-radius:13px;background:rgba(255,255,255,.80);margin-bottom:12px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);}
.phone-detail-row{width:100%;box-sizing:border-box;min-height:52px;padding:9px 14px;position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:center;text-align:left;}
.phone-detail-row+.phone-detail-row::before{content:"";position:absolute;left:14px;right:0;top:0;height:.5px;background:rgba(60,60,67,.18);}
.phone-detail-label{color:#6e6e73;font-size:12px;margin-bottom:2px;}
.phone-detail-value{width:100%;box-sizing:border-box;color:#007aff;font-size:16px;line-height:1.25;text-align:left;}
.phone-detail-danger{color:#ff3b30;}
.phone-call-screen{z-index:70;background:linear-gradient(145deg,#578e9b 0%,#276898 48%,#007c91 100%);color:#fff;}
.phone-call-content{position:absolute;inset:0;padding:104px 28px 26px;display:flex;flex-direction:column;align-items:center;}
.phone-call-timer{font-size:16px;font-weight:var(--o3o-fw-500);color:rgba(255,255,255,.56);letter-spacing:.2px;}
.phone-call-name{margin-top:5px;max-width:100%;font-size:35px;font-weight:var(--o3o-fw-700);line-height:1.08;letter-spacing:-1.2px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phone-call-sub{margin-top:5px;color:rgba(255,255,255,.62);font-size:14px;}
.phone-call-controls{position:absolute;left:30px;right:30px;bottom:37px;display:grid;grid-template-columns:repeat(3,1fr);row-gap:22px;}
.phone-call-control{display:flex;flex-direction:column;align-items:center;gap:7px;color:#fff;font-size:13px;font-weight:var(--o3o-fw-500);}
.phone-call-control-circle{width:74px;height:74px;border-radius:50%;background:rgba(120,210,220,.18);border:1px solid rgba(255,255,255,.38);display:flex;align-items:center;justify-content:center;}
.phone-call-control-circle .phone-fa{width:28px;height:28px;}
.phone-call-control.is-end .phone-call-control-circle{background:#ff2626;border-color:#ff2626;}
.phone-call-control.is-end .phone-end-down{transform:rotate(135deg);transform-origin:50% 50%;}
.phone-call-control.is-on .phone-call-control-circle{background:rgba(255,255,255,.86);color:#111;}
.phone-call-keypad-layer{position:absolute;inset:0;z-index:4;display:none;background:rgba(30,78,96,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);}
.phone-call-keypad-layer.is-open{display:flex;}
.phone-call-keypad-close{position:absolute;right:16px;top:14px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;}
.phone-call-keypad-close .phone-fa{width:16px;height:16px;}
.phone-call-mini-keypad{position:absolute;left:50%;top:50%;transform:translate(-50%,-48%);display:grid;grid-template-columns:repeat(3,72px);grid-auto-rows:72px;gap:13px 22px;}
.phone-call-mini-keypad .phone-key{width:72px;height:72px;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24);box-shadow:none;color:#fff;}
@media (max-width:370px){.phone-recent-row{grid-template-columns:48px minmax(0,1fr) auto 44px;gap:8px}
.phone-recent-avatar{width:47px;height:47px}
.phone-recent-row::after{left:56px}
.phone-keypad-grid{grid-template-columns:repeat(3,70px);grid-auto-rows:70px;gap:9px 20px}
.phone-key{width:70px;height:70px}
.phone-call-controls{left:20px;right:20px}
.phone-call-control-circle{width:70px;height:70px}
}
/* Contact data + Add Contact drawer. The original Phone detail UI above is intentionally untouched. */
.phone-contact-avatar,.phone-recent-avatar,.phone-detail-avatar{position:relative;}
.phone-contact-avatar>img,.phone-recent-avatar>img,.phone-detail-avatar>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;}
.phone-contact-avatar.has-image>img,.phone-recent-avatar.has-image>img,.phone-detail-avatar.has-image>img{display:block;}
.phone-contact-avatar.has-image .phone-avatar-placeholder-wrap,.phone-recent-avatar.has-image .phone-avatar-placeholder-wrap,.phone-detail-avatar.has-image .phone-avatar-placeholder{display:none;}
.phone-detail-view.has-contact-background::before{content:"";position:absolute;z-index:0;left:0;right:0;top:0;height:78%;pointer-events:none;background-image:var(--phone-contact-cover);background-size:cover;background-position:center top;background-repeat:no-repeat;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 32%,rgba(0,0,0,.9) 46%,rgba(0,0,0,.58) 64%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 32%,rgba(0,0,0,.9) 46%,rgba(0,0,0,.58) 64%,transparent 100%);}
.phone-detail-view.has-contact-background .phone-detail-scroll{z-index:1;}
.phone-contact-drawer.is-line-context{z-index:1550;}
.phone-contact-drawer-panel{max-height:min(82dvh,700px);}
.phone-contact-drawer-content{padding-top:8px;}
.phone-contact-media-editor{width:min(100%,360px);height:214px;margin:0 auto 10px;position:relative;}
.phone-contact-cover-picker{position:absolute;left:0;right:0;top:0;height:158px;padding:0;border:0;border-radius:18px;overflow:hidden;background:#d1d1d6;appearance:none;-webkit-appearance:none;cursor:pointer;}
.phone-contact-cover-picker>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;}
.phone-contact-cover-picker.has-image>img{display:block;}
.phone-contact-avatar-wrap{position:absolute;left:50%;bottom:0;transform:translateX(-50%);margin:0;}
.phone-contact-file-input{position:fixed;left:-100px;top:-100px;width:1px;height:1px;opacity:0;pointer-events:none;}
.phone-contact-setting-field{position:relative;}
.phone-contact-setting-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px;}
.phone-contact-setting-head .apple-personal-label{margin:0;}
.phone-contact-import{width:28px;height:28px;border:0;border-radius:50%;padding:0;background:transparent;color:#007aff;display:grid;place-items:center;flex:0 0 28px;}
.phone-contact-import svg{width:15px;height:15px;fill:currentColor;}
.phone-contact-import-status{min-height:0;padding:0 7px;color:#8e8e93;font-size:12px;line-height:16px;}
.phone-contact-import-status:not(:empty){padding-top:4px;}
.phone-contact-import-status.phone-contact-form-error{color:#ff3b30;}
.phone-contact-drawer button:disabled{opacity:.45;}
.phone-contact-drawer input:focus,.phone-contact-drawer textarea:focus{outline:none;box-shadow:none;}
.phone-contact-drawer-footer{display:grid;gap:8px;}
.phone-contact-delete-group{margin-top:2px;}
.phone-contact-delete{width:100%;min-height:52px;padding:0 14px;border:0;background:#fff;color:#ff3b30;font-size:17px;font-weight:var(--o3o-fw-500);text-align:center;display:flex;align-items:center;justify-content:center;}
.phone-search-empty{padding:24px}
