/* Phase 2 app surfaces. Local CSS follows each app's own visual language. */
.native-title{font-size:32px;line-height:1.2;letter-spacing:-.8px;margin:3px 0 23px;font-weight:700}.native-empty{color:#96979d;font-size:14px;line-height:1.7;text-align:center;padding:42px 15px}.native-count{font-size:13px;color:#929299;text-align:center;margin:24px 0 10px}.native-group{background:white;margin:12px -18px 0}.native-row{display:flex;align-items:center;gap:13px;width:100%;min-height:56px;text-align:left;padding:13px 19px;font-size:16px;border-bottom:1px solid #e9e9eb}.native-row>span{flex:1}.native-row>.icon:last-child{width:17px;color:#b6b6bb;margin-left:auto}.native-row.center{justify-content:center;text-align:center}.blue{color:#007aff}.header-tools{display:flex;align-items:center;flex:none}.header-tools>button{height:44px;width:38px;display:grid;place-items:center;padding:8px}.app-header .header-tools .app-home{margin-left:0}.app-header:has(.header-tools) h2{margin-right:auto}.share-text{font-size:16px;line-height:1.7;text-align:center}.unread-badge{display:grid;place-items:center;font-size:10px;background:#fa5151;color:#fff;border-radius:12px;min-width:18px;height:18px;padding:0 4px;line-height:18px;position:absolute;right:-6px;top:-5px;font-weight:500}.owner-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:white;background:#66839b;font-size:16px}
/* WeChat */
.wc-app{background:#ededed;color:#111}.wc-app .app-header{background:#ededed;border-bottom:1px solid #d7d7d780;min-height:48px}.wc-app .app-header .back{color:#111;font-size:15px}.wc-app .app-header h2{font-size:17px;font-weight:600}.wc-app .app-home{color:#262626}.wc-app .app-scroll{padding:0 0 12px}.wc-avatar{display:grid;place-items:center;width:48px;height:48px;flex:none;color:#fff;font-size:21px;background:linear-gradient(135deg,color-mix(in srgb,var(--avatar-color),#fff 13%),var(--avatar-color));border-radius:7px;overflow:hidden;line-height:1;font-weight:450;box-shadow:inset 0 1px 0 #fff2}.wc-avatar.large{width:68px;height:68px;font-size:27px;border-radius:9px}.avatar-wrap{position:relative;flex:none}.wc-search{display:flex;gap:6px;align-items:center;background:white;margin:9px 9px 8px;padding:6px 12px;border-radius:8px;color:#a5a5a5;height:36px}.wc-search .icon{width:17px;height:17px}.wc-search input{background:transparent;width:100%;font-size:15px;padding:3px;color:#111}.wc-search input::placeholder{color:#999}.wc-results{background:white}.wc-chat-row{display:flex;gap:12px;align-items:center;width:100%;padding:13px 14px 13px 14px;min-height:76px;text-align:left;position:relative;background:white}.wc-chat-row:after{content:'';position:absolute;bottom:0;left:74px;right:0;height:.5px;background:#e5e5e5}.wc-row-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.wc-row-copy strong{font-size:16px;line-height:1.15;font-weight:500;padding-right:40px}.wc-row-copy>span{color:#999;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.3}.wc-chat-row time{font-size:10px;position:absolute;right:14px;top:17px;color:#b3b3b3}.wc-chat-row:active,.wc-contact-row:active{background:#e8e8e8}.wc-tabs{display:flex;align-items:center;justify-content:space-around;background:#f7f7f7;border-top:.5px solid #d7d7d7;flex:none;padding:5px 6px max(12px,var(--shell-bottom))}.wc-tabs button{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;font-size:10px;color:#191919;min-height:45px;line-height:1.3}.wc-tabs button>span{display:block;position:relative}.wc-tabs .icon{width:25px;height:25px;stroke-width:1.65}.wc-tabs .active{color:#07b75a}.wc-tabs .active .icon{fill:#07b75a16}.wc-tabs .unread-badge{right:-11px;top:-3px;font-size:9px;min-width:16px;height:16px;line-height:16px}.wc-utility-row{display:flex;align-items:center;background:white;gap:12px;padding:14px}.wc-utility-row .wc-avatar{background:#f5ac47}.wc-utility-row button{font-size:16px;min-height:40px;flex:1;text-align:left}.wc-contact-row{display:flex;align-items:center;gap:12px;width:100%;padding:13px 15px;background:white;border-bottom:.5px solid #e6e6e6;text-align:left}.wc-contact-row strong{font-size:16px;font-weight:450}.wc-contact-row .icon{margin-left:auto;color:#ccc;width:17px}.wc-discover .app-scroll,.wc-me .app-scroll{padding:0 18px}.wc-discover .native-group:first-child{margin-top:0}.wc-discover .native-row>.icon:first-child{color:#378cd7}.wc-profile{display:flex;align-items:center;gap:17px;background:white;width:100%;margin:0 -18px;padding:27px 23px;text-align:left;box-sizing:content-box}.wc-profile>span:not(.wc-avatar){display:flex;flex-direction:column;gap:10px;flex:1}.wc-profile strong{font-size:23px;font-weight:600}.wc-profile small{font-size:13px;color:#888}.wc-profile>.icon{width:16px;color:#bbb}.wc-address .app-scroll{padding:0}.wc-conversation .app-scroll{padding:8px 12px 20px}.wc-time{font-size:11px;color:#a4a4a4;text-align:center;margin:17px 0}.wc-message{display:flex;gap:9px;margin:15px 0;align-items:start}.wc-message>.wc-avatar{width:37px;height:37px;font-size:16px;border-radius:5px}.wc-message.outgoing{flex-direction:row-reverse}.wc-message-content{max-width:calc(100% - 95px);min-width:0}.wc-bubble{font-size:16px;line-height:1.55;color:#111;background:#fff;padding:9px 12px;border-radius:4px;position:relative;overflow-wrap:anywhere;white-space:pre-wrap}.wc-bubble:before{content:'';position:absolute;left:-5px;top:13px;width:9px;height:9px;background:inherit;transform:rotate(45deg)}.outgoing .wc-bubble{background:#95ec69}.outgoing .wc-bubble:before{left:auto;right:-4px}.wc-sender{font-size:10px;color:#999;display:block;margin:0 0 4px 2px}.wc-compose{flex:none;display:flex;align-items:center;gap:8px;padding:8px 10px var(--shell-bottom);border-top:.5px solid #d9d9d9;background:#f7f7f7}.wc-compose>button{width:27px;min-height:36px;display:grid;place-items:center;padding:0;flex:none;color:#363636}.wc-compose .icon{width:23px;height:23px}.wc-compose input{min-width:0;flex:1;background:#fff;padding:8px 9px;height:37px;font-size:16px;border-radius:4px}.wc-compose .wc-send{width:43px;background:#07b75a;color:white;font-size:12px;min-height:33px;border-radius:5px}.wc-image{display:block;padding:0;overflow:hidden;border-radius:6px;width:145px;max-width:100%;aspect-ratio:1;border:1px solid #ddd}.wc-image svg{display:block;width:100%;height:100%}.wc-voice{display:flex;align-items:center;justify-content:space-between;min-height:40px;background:white;border-radius:4px;padding:7px 12px;font-size:15px;max-width:100%}.wc-voice .icon{width:22px;height:22px}.voice-wave{display:block}.wc-voice.playing .voice-wave{animation:voicePlay .6s steps(3) infinite}.wc-voice.playing{background:#f8fff3}.outgoing .wc-voice{background:#95ec69}.chat-info-card{text-align:center;padding:18px}.chat-info-card .wc-avatar{margin:auto}.chat-info-card h3{font-size:17px;font-weight:500}.emoji-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:15px 0}.emoji-grid button{font-size:29px;min-height:56px}.moments-cover{height:195px;background:linear-gradient(145deg,#69849a,#303e54);position:relative;color:#fff;padding:130px 17px 0;display:flex;flex-direction:row-reverse;align-items:center;gap:15px}.moments-cover .wc-avatar{border:2px solid #eee}.message-banner{position:absolute;top:calc(var(--shell-top) + 5px);left:10px;right:10px;z-index:95;display:flex;gap:11px;align-items:center;padding:13px;border-radius:23px;border:1px solid #fff8;background:#eaf1f5ec;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 10px 25px #0003;color:#111;text-align:left;opacity:0;transform:translateY(-150%);transition:transform .28s var(--ease-ios),opacity .2s;pointer-events:none}.message-banner.visible{opacity:1;transform:none;pointer-events:auto}.message-banner>img{width:40px;height:40px;border-radius:9px;flex:none}.message-banner>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.message-banner small{font-size:11.5px;color:#6c737c}.message-banner time{float:right}.message-banner strong{font-size:15px;font-weight:600}.message-banner>span>span{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes voicePlay{from{opacity:.3}to{opacity:1}}
/* Photos */
.photos-app .app-header{border:0;background:#fff}.photos-app .app-scroll{padding:4px 0 20px}.photos-heading{display:flex;align-items:center;justify-content:space-between;padding:0 20px 20px}.photos-heading h1{font-size:32px;letter-spacing:-1px;margin:0;font-weight:700}.photo-segments{display:flex;gap:7px;padding:0 15px 15px;overflow:auto;scrollbar-width:none;flex:none}.photo-segments button{white-space:nowrap;font-size:12px;padding:8px 12px;border-radius:20px;background:#f3f3f5;color:#646468}.photo-segments button.active{background:#1d1d20;color:white}.photo-month{padding:5px 17px 12px;font-size:19px;font-weight:600}.p2-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.p2-photo-grid button{padding:0;aspect-ratio:1;overflow:hidden;position:relative}.p2-photo-grid svg{width:100%;height:100%;display:block}.photo-loved{position:absolute;bottom:5px;left:5px;color:white;font-size:13px;text-shadow:0 1px 3px #0008}.photos-bottom{display:flex;flex:none;justify-content:space-around;padding:6px 30px var(--shell-bottom);border-top:.5px solid #eee;background:#fff}.photos-bottom button{font-size:11px;color:#98989c;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:70px;min-height:43px}.photos-bottom .active{color:#007aff}.photos-bottom .icon{width:24px;height:24px}.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 13px;padding:0 18px}.album-grid button{text-align:left;padding:0;font-size:15px}.album-grid svg{width:100%;height:auto;border-radius:12px;display:block;margin-bottom:9px}.photos-app .native-title{padding:0 18px}.photo-detail{background:#000;color:white}.photo-detail .app-header{background:#000;border:0;min-height:56px}.photo-detail .app-header h2{font-size:14px;line-height:1.5;text-align:center}.photo-detail .app-header small{font-size:11px;color:#aaa;font-weight:400}.photo-detail .app-header .back{color:#73afff}.photo-detail-body{display:flex;flex-direction:column;padding:0!important;overflow:hidden!important}.photo-canvas{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;flex:1;min-height:0;touch-action:none;user-select:none;-webkit-user-select:none;background:#000}.zoom-art{width:100%;flex:none;transform-origin:50% 50%;will-change:transform;pointer-events:none}.zoom-art svg{width:100%;max-height:100%;display:block}.photo-canvas.zoomed{cursor:grab}.photo-filmstrip{display:flex;gap:3px;overflow:auto;scrollbar-width:none;padding:12px 15px 9px;flex:none}.photo-filmstrip button{height:39px;width:32px;flex:none;overflow:hidden;padding:0;border-radius:2px;opacity:.5}.photo-filmstrip button.selected{width:40px;border:2px solid #fff;opacity:1}.photo-filmstrip svg{height:100%;width:100%;object-fit:cover}.photo-toolbar{display:flex;justify-content:space-around;padding:5px 7px var(--shell-bottom);color:#65a5ff;background:#070707;flex:none}.photo-toolbar button{height:44px;width:44px;padding:10px}.photo-toolbar .selected{color:#ff375f}.photo-toolbar .selected .icon{fill:#ff375f}.photo-info-grid{font-size:16px;padding:20px 0}.photo-info-grid p{color:#8a8a8e;font-size:14px}.media-lightbox{position:absolute;inset:0;background:#000;display:flex;flex-direction:column;color:white;padding-top:var(--shell-top)}.media-lightbox header{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:0 12px}.media-lightbox header button{width:44px;height:44px;padding:10px}.media-lightbox header span{font-size:14px;color:#ccc}.media-lightbox .photo-canvas{padding-bottom:var(--shell-bottom)}
/* Instagram */
.instagram-app{background:white}.instagram-app .app-header{border:0;background:#fff;min-height:42px}.instagram-app .app-scroll{padding:0 0 25px}.ig-user{display:flex;align-items:center;gap:7px;padding:3px 17px 18px;max-width:100%;font-size:22px;letter-spacing:-.6px;font-weight:650}.ig-user .icon{width:17px;height:17px}.ig-user>span{font-size:19px;font-weight:400}.ig-profile-row{display:flex;align-items:center;gap:24px;padding:0 18px}.ig-avatar{display:grid;place-items:center;border-radius:50%;width:77px;height:77px;flex:none;background:linear-gradient(145deg,#788f9c,#405266);color:white;font-size:29px;border:3px solid white;outline:2px solid #ddd}.ig-avatar.small{height:36px;width:36px;font-size:14px;border-width:1px;outline:none}.ig-counts{display:flex;flex:1;justify-content:space-between;align-items:center;gap:10px;text-align:center;font-size:12px;line-height:1.5}.ig-counts b{font-size:17px;display:block;font-weight:650}.ig-counts button{padding:0;font-size:12px;line-height:1.5}.instagram-app .ig-bio{padding:0 18px;margin:18px 0 16px;font-size:13px;line-height:1.6}.ig-profile-actions{display:flex;gap:7px;margin:0 17px 23px}.ig-profile-actions button{background:#eeeff1;border-radius:8px;flex:1;min-height:33px;font-size:12px;font-weight:550}.ig-grid-heading{display:flex;justify-content:center;padding:13px 0 11px;border-top:.5px solid #ededed;border-bottom:1.5px solid #161616}.ig-grid-heading .icon{width:23px;height:23px}.ig-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.ig-post-grid button{aspect-ratio:3/4;padding:0;overflow:hidden;background:#eee}.ig-post-grid svg{width:100%;height:100%;object-fit:cover;display:block}.ig-bottom{display:flex;align-items:center;justify-content:space-around;border-top:.5px solid #ddd;padding:6px 15px var(--shell-bottom);background:white;flex:none}.ig-bottom button{width:50px;height:40px;padding:8px}.ig-bottom .active{color:#000}.ig-author{display:flex;align-items:center;gap:8px;padding:10px 13px;font-size:12px}.ig-author>button{margin-left:auto;height:36px;width:36px;padding:8px}.ig-detail-image{width:100%;aspect-ratio:1;padding:0;display:block;overflow:hidden}.ig-detail-image svg{width:100%;height:100%;display:block}.ig-post-tools{display:flex;gap:7px;padding:8px 10px 0}.ig-post-tools button{height:40px;width:35px;padding:6px}.ig-post-tools button:last-child{margin-left:auto}.ig-post-tools .liked{color:#ff3040}.ig-post-tools .liked .icon{fill:#ff3040}.ig-post-tools .selected .icon{fill:#222}.ig-caption{margin:8px 15px;font-size:14px;line-height:1.7}.ig-date{display:block;margin:9px 15px;font-size:11px;color:#9a9a9e}.account-option{display:flex;align-items:center;gap:15px;text-align:left;width:100%;padding:16px 0;font-size:15px}.account-option>span:not(.ig-avatar){flex:1}.account-option small{display:block;color:#888;margin-top:5px;font-size:13px}.account-option>.icon{margin-left:auto;width:21px;color:#1597ef}
/* Notes */
.notes-app{background:#f2f2f7}.notes-app .app-header{background:#f2f2f7;border:0}.notes-app .app-header .back,.notes-app .app-home,.notes-app .header-tools{color:#b9900b}.notes-app .app-scroll{padding:3px 18px 35px}.notes-search{display:flex;align-items:center;gap:7px;background:#e4e4e9;padding:8px 10px;border-radius:10px;margin-bottom:22px;color:#929296}.notes-search .icon{width:17px;height:17px}.notes-search input{background:transparent;font-size:16px;min-width:0;width:100%}.notes-results{background:#fff;border-radius:11px;overflow:hidden}.notes-row{display:flex;align-items:center;gap:10px;width:100%;padding:17px 17px 15px;text-align:left;border-bottom:.5px solid #e7e7ea}.notes-row:last-child{border:0}.notes-row>span{flex:1;min-width:0}.notes-row strong{font-size:16px;font-weight:600;display:block;margin-bottom:7px}.notes-row small{font-size:12px;color:#89898e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.notes-row>.icon{color:#bd9d35;width:16px;height:16px}.note-reader{background:#fffefb}.note-reader .app-header{background:#fffefb}.note-reader .app-scroll{padding:8px 22px 40px}.notes-date{display:block;color:#999998;font-size:11px;text-align:center;padding:9px 0 25px}.note-reader h1{font-size:27px;letter-spacing:-.5px;margin:0 0 24px}.notes-body{white-space:pre-line;font-size:16px;line-height:1.85;color:#242424}
/* Calendar */
.calendar-app .app-header{border:0;background:#fff}.calendar-app .app-header .back,.calendar-app .app-home{color:#ff3b30}.calendar-app .app-scroll{padding:4px 17px 25px}.calendar-month-nav{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.calendar-month-nav h1{font-size:24px;letter-spacing:-.5px;font-weight:700;margin:0}.calendar-month-nav button{width:40px;height:44px;padding:10px;color:#ff3b30}.p2-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px 2px;text-align:center}.p2-calendar-grid .weekday{font-size:11px;color:#999;padding:9px 0}.p2-calendar-grid button{height:36px;width:36px;border-radius:50%;font-size:17px;position:relative;padding:0;margin:auto}.p2-calendar-grid button.today{color:#ff3b30}.p2-calendar-grid button.chosen{color:#fff;background:#111}.p2-calendar-grid button.chosen.today{background:#ff3b30}.p2-calendar-grid button.has-event:after{content:'';width:4px;height:4px;position:absolute;bottom:0;left:calc(50% - 2px);background:#aaa;border-radius:50%}.p2-calendar-grid button.chosen:after{background:white}.calendar-agenda{margin:25px -17px 0;padding:0 17px;border-top:.5px solid #ddd}.calendar-agenda h3{font-size:14px;font-weight:600;padding:14px 0;margin:0}.agenda-row{display:flex;gap:10px;padding:13px 0;width:100%;text-align:left;align-items:center}.agenda-row time{font-size:11px;width:40px;color:#999}.agenda-row>span{border-left:3px solid var(--event-color);padding-left:10px;flex:1;display:flex;flex-direction:column;gap:7px}.agenda-row strong{font-size:16px;font-weight:500}.agenda-row small{font-size:12px;color:#9c9c9c}.agenda-row>.icon{width:16px;color:#bbb}.calendar-bottom{display:flex;justify-content:space-between;padding:8px 20px var(--shell-bottom);border-top:.5px solid #ddd;background:#fafafa;color:#ff3b30;flex:none}.calendar-bottom button{height:35px;font-size:15px}.event-title{font-size:27px;line-height:1.5;margin:16px 0}.event-location{color:#777;font-size:15px}.event-details{margin-top:27px;background:#fff}.event-details>div{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:16px 0;border-bottom:.5px solid #e3e3e7;font-size:14px}.event-details strong{font-weight:400;text-align:right;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.event-note{font-size:15px;line-height:1.9;margin-top:25px;padding:20px 0}.calendar-app .native-empty{padding-top:20px}
/* Weather */
.p2-weather{background:radial-gradient(ellipse at 100% 0,#5d91bf99,transparent 50%),linear-gradient(#315f8c,#132f52);color:#fff}.p2-weather.clear{background:linear-gradient(#4888c1,#2d557f)}.p2-weather .app-header{background:transparent;border:0;min-height:30px}.p2-weather .app-scroll{padding:0 15px 22px}.p2-weather .app-home{color:white}.weather-overview{text-align:center;padding:8px 0 23px}.weather-overview h1{font-size:30px;letter-spacing:-.5px;font-weight:400;margin:0 0 3px}.weather-overview>div{font-size:86px;font-weight:250;line-height:1.05;letter-spacing:-4px;padding-left:12px}.weather-overview>p{font-size:19px;margin:4px 0;color:#b9d2e7}.weather-overview>small{font-size:15px}.weather-glass{background:#213f6580;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:17px;margin:12px 0 0;padding:14px 15px;box-shadow:inset 0 .5px 0 #fff2}.weather-glass>p{font-size:13px;margin:0;padding:0 0 12px;border-bottom:.5px solid #fff3}.p2-hours{display:flex;justify-content:space-between;padding:14px 0 1px}.p2-hours>div{display:flex;flex-direction:column;align-items:center;gap:13px;font-size:16px}.p2-hours time{font-size:12px}.p2-hours .icon{width:23px;height:23px;color:#c9deeb}.p2-hours strong{font-weight:500}.weather-glass h4{font-size:11px;font-weight:500;color:#bccfdd;margin:0 0 6px;display:flex;align-items:center;gap:5px}.weather-glass h4 .icon{width:14px;height:14px}.weather-day{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:.5px solid #fff2;font-size:17px}.weather-day:last-child{border:0}.weather-day b{font-weight:550;width:37px}.weather-day>.icon{width:22px;height:22px;flex:none;color:#d8e9ef}.weather-day>span{opacity:.6;min-width:27px}.weather-day strong{font-weight:500}.weather-day>i{flex:1;height:4px;background:linear-gradient(90deg,#65b3df,#eac672);border-radius:4px}.weather-footer{display:flex;align-items:center;justify-content:space-between;flex:none;padding:4px 14px var(--shell-bottom);background:#16325199;backdrop-filter:blur(20px)}.weather-footer>button{height:40px;width:40px;padding:10px}.weather-footer>div{display:flex;gap:9px}.weather-footer>div>button{color:#fff5;font-size:10px;padding:5px;min-height:30px}.weather-footer .active{color:#fff}.weather-city-list{background:#101217;color:#fff}.weather-city-list .app-header{background:#101217;border:0}.weather-city-list .back,.weather-city-list .app-home{color:white}.weather-city-card{display:flex;width:100%;justify-content:space-between;align-items:start;background:linear-gradient(110deg,#486880,#1b304e);border-radius:18px;padding:16px;margin-bottom:14px;color:white;text-align:left;box-shadow:inset 0 1px 0 #fff3;min-height:133px}.weather-city-card.clear{background:linear-gradient(110deg,#5a9ed2,#2d6095)}.weather-city-card>span:last-child{text-align:right}.weather-city-card strong{font-size:25px;font-weight:500;display:block}.weather-city-card small{font-size:11px;display:block;margin-top:5px;opacity:.8}.weather-city-card p{margin:22px 0 0;font-size:13px}.weather-city-card b{font-size:53px;font-weight:250;line-height:1}
/* Phone */
.p2-phone .app-header{background:#fff;border:0}.p2-phone .app-scroll{padding:4px 17px 20px}.phone-contact-row{display:flex;align-items:center;gap:12px;width:100%;min-height:71px;border-bottom:.5px solid #ddd;padding:13px 0;text-align:left}.phone-contact-row>span:not(.contact-avatar):not(.phone-row-icon){flex:1;min-width:0}.phone-contact-row strong{display:block;font-size:17px;font-weight:500}.phone-contact-row small{display:block;font-size:12px;color:#929297;margin-top:6px}.phone-contact-row>.icon{color:#007aff;width:20px;height:20px}.phone-contact-row time{font-size:10px;color:#999}.contact-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:white;font-size:17px;flex:none}.phone-row-icon .icon{width:16px;color:#b6b6b6}.phone-tabs{display:flex;align-items:center;justify-content:space-around;flex:none;padding:5px 3px var(--shell-bottom);border-top:.5px solid #ddd;background:#fafafa}.phone-tabs button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px;color:#98989c;min-height:45px;padding:0 6px}.phone-tabs .icon{width:24px;height:24px}.phone-tabs .active{color:#007aff}.p2-contact{background:#f2f2f7}.p2-contact .app-header{background:#f2f2f7;border:0}.contact-poster{text-align:center;padding:4px 0 18px}.contact-poster>span{display:grid;place-items:center;width:89px;height:89px;border-radius:50%;margin:0 auto 18px;color:white;font-size:37px}.contact-poster h1{font-size:31px;font-weight:400;margin:0}.contact-buttons{display:flex;gap:12px;justify-content:center;margin:3px 0 22px}.contact-buttons button{background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:92px;height:63px;border-radius:12px;color:#007aff;font-size:12px}.contact-buttons .icon{width:22px;height:22px}.contact-number{background:#fff;border-radius:12px;padding:14px 16px;width:100%;text-align:left;color:#007aff}.contact-number small{display:block;font-size:12px;color:#333;margin-bottom:8px}.contact-number strong{font-size:19px;font-weight:400}.contact-notes{background:white;border-radius:12px;margin-top:15px;padding:14px 16px}.contact-notes small{font-size:12px;color:#666}.contact-notes p{font-size:15px;line-height:1.7;margin:8px 0 0}.phone-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px;max-width:290px;margin:10px auto 0}.phone-keypad button{width:68px;height:68px;border-radius:50%;background:#e9e9ec;font-size:30px;line-height:1.1;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.phone-keypad small{font-size:8px;letter-spacing:2px;min-height:10px;font-weight:600}.keypad-actions{display:flex;align-items:center;justify-content:center;gap:20px;margin:23px 0}.keypad-actions .dial-call{color:white;background:#34c759;width:67px;height:67px;border-radius:50%;padding:18px}.keypad-actions>button:last-child{position:absolute;right:25px;font-size:12px;color:#888}.p2-phone .dial-input{height:65px;font-size:28px;padding:12px 0}.p2-call{background:radial-gradient(ellipse at 90% 0,#786c7e,#273442 65%);padding:calc(var(--shell-top) + 30px) 23px var(--shell-bottom)}.p2-call>small{font-size:13px;color:#ffffff80}.p2-call h1{font-size:37px;font-weight:400;margin:6px 0 9px}.p2-call .calling-label{font-size:15px;color:#ffffffa8;margin:0}.contact-call-avatar{display:grid;place-items:center;width:105px;height:105px;border-radius:50%;font-size:44px;color:#fff;margin:35px auto 20px;background:#fff2!important}.call-tool-grid{display:flex;gap:20px;margin-top:auto;justify-content:center}.call-tool-grid button{display:flex;flex-direction:column;align-items:center;gap:9px;width:71px;font-size:12px}.call-tool-grid .icon{width:65px;height:65px;border-radius:50%;background:#ffffff30;padding:20px}.call-tool-grid button.selected .icon{background:#fff;color:#111}.p2-call .hangup{flex:none;margin:37px 0 15px;width:68px;height:68px;padding:21px}.call-tones{text-align:center;padding:10px;font-size:24px}.p2-call>.app-home{position:absolute;right:15px;top:calc(var(--shell-top) + 4px)}
/* Safari */
.p2-safari{background:#f5f5f9}.p2-safari .app-header{background:transparent;border:0;min-height:34px}.p2-safari .app-scroll{padding:8px 19px 25px}.browser-favorites{display:flex;gap:21px;padding:2px 2px 26px}.browser-favorites button{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:63px;max-width:90px;padding:0}.browser-favorites button>span{display:grid;place-items:center;background:#fff;width:64px;height:64px;border-radius:14px;box-shadow:0 2px 6px #0001;color:#007aff}.browser-favorites .icon{width:33px;height:33px;stroke-width:1.5}.browser-favorites small{font-size:11px;color:#505057}.browser-section-title{font-size:22px;margin:20px 0 16px;letter-spacing:-.5px}.browser-frequent{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.browser-frequent button{display:flex;flex-direction:column;text-align:left;gap:17px;border-radius:14px;min-height:110px;padding:17px;background:#fff;box-shadow:0 1px 4px #0001}.browser-frequent span{font-size:14px;font-weight:550}.browser-frequent small{font-size:10px;color:#999}.browser-bottom{flex:none;background:#eaeaf2dd;border-top:.5px solid #d8d8de;padding:9px 15px var(--shell-bottom);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.browser-bottom>label{display:flex;gap:7px;align-items:center;background:#fff;border-radius:15px;padding:9px 12px;box-shadow:0 3px 11px #0001;min-height:43px}.browser-bottom>label .icon{width:14px;height:14px;color:#777}.browser-bottom input{font-size:15px;background:transparent;flex:1;min-width:0;text-align:center}.browser-bottom input:focus{text-align:left}.browser-bottom>nav{display:flex;align-items:center;justify-content:space-between;color:#007aff;padding-top:5px}.browser-bottom nav button{width:45px;height:42px;padding:9px}.browser-bottom nav .icon{width:23px;height:23px}.browser-sheet-tabs{display:flex;background:#e5e5eb;border-radius:9px;padding:3px;gap:3px;margin:15px 0 19px}.browser-sheet-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-height:34px;font-size:13px;border-radius:7px;color:#888}.browser-sheet-tabs button.active{background:#fff;color:#007aff;box-shadow:0 1px 4px #0002}.browser-sheet-tabs .icon{width:17px;height:17px}.browser-history-day{font-size:19px;margin:20px 0 10px}.browser-history-row{display:flex;align-items:center;gap:11px;padding:13px 0;min-height:59px;border-bottom:.5px solid #ddd;text-align:left;width:100%;font-size:14px}.browser-history-row>span{flex:1;min-width:0}.browser-history-row strong{font-size:14px;font-weight:400;line-height:1.6;display:block}.browser-history-row small{font-size:10px;color:#999;display:block;margin-top:3px}.browser-history-row>time{font-size:10px;color:#999}.browser-history-row>.icon{width:18px;height:18px;color:#8e98a3}.browser-page{background:white}.browser-page .app-scroll{padding:0 0 25px}.browser-search-query{display:flex;align-items:center;gap:9px;font-size:14px;border:1px solid #ddd;border-radius:20px;margin:13px 15px;padding:12px}.browser-search-query .icon{width:17px;height:17px;flex:none;color:#777}.browser-search-tabs{font-size:13px;color:#777;padding:7px 18px 15px;border-bottom:1px solid #eee}.browser-result{padding:20px 18px}.browser-result>small{font-size:12px;color:#676767}.browser-result h2{font-size:21px;color:#1e5da5;font-weight:450;line-height:1.6;margin:12px 0}.browser-result p{font-size:15px;line-height:1.85;color:#444}.saved-page-site{padding:14px;text-align:center;letter-spacing:2px;border-bottom:1px solid #eee;font-size:12px;color:#888}.saved-page>svg{width:100%;height:auto;display:block}.saved-page>div:last-child{padding:22px}.saved-page h1{font-size:28px;line-height:1.5;margin:0 0 18px}.saved-page p{font-size:16px;line-height:1.9}.browser-travel-art{height:210px;background:linear-gradient(140deg,#9eb9b5,#315b65);display:flex;align-items:center;justify-content:center;font-size:55px;font-weight:250;letter-spacing:9px;color:#fff}.browser-tab-card{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:25px;width:70%;aspect-ratio:3/4;border:3px solid #007aff;background:white;border-radius:20px;margin:20px auto}.browser-tab-card .icon{width:55px;height:55px;color:#007aff}
@container(max-height:650px){.contact-call-avatar{width:75px;height:75px;margin:20px auto;font-size:31px}.p2-call{padding-top:calc(var(--shell-top) + 14px)}.p2-call .hangup{margin-top:25px}.phone-keypad{gap:11px}.phone-keypad button{width:59px;height:59px}.keypad-actions{margin:17px 0}.p2-phone .dial-input{height:48px}.weather-overview{padding-top:0}.weather-overview>div{font-size:74px}}
@media(max-width:350px){.wc-message-content{max-width:calc(100% - 75px)}.wc-compose{gap:5px}.wc-compose>button{width:22px}.wc-compose .wc-send{width:37px}.ig-profile-row{gap:16px;padding:0 15px}.ig-counts{gap:9px}.ig-counts b{font-size:15px}.ig-avatar{width:67px;height:67px}.photo-segments{gap:5px;padding-left:8px;padding-right:8px}.photo-segments button{font-size:11px;padding:8px 10px}.p2-calendar-grid button{width:32px;height:32px}.weather-day{gap:9px}.call-tool-grid{gap:13px}.phone-keypad button{width:61px;height:61px}.browser-favorites{gap:16px}}
@media(prefers-reduced-motion:reduce){.wc-voice.playing .voice-wave{animation:none}.message-banner{transition:none}}
.photo-canvas .zoom-art{height:100%;display:flex;align-items:center;justify-content:center}.photo-canvas .zoom-art svg{height:100%;width:100%;max-height:100%;object-fit:contain}
.instagram-app:not(.ig-detail) .app-header{position:absolute;top:var(--shell-top);right:8px;left:auto;z-index:4;padding:0;min-height:44px;background:transparent}.instagram-app:not(.ig-detail) .app-header>.header-space,.instagram-app:not(.ig-detail) .app-header>h2{display:none}.instagram-app:not(.ig-detail) .app-header>.app-home{margin:0}.instagram-app:not(.ig-detail) .ig-user{min-height:49px;padding-right:60px;padding-top:5px;padding-bottom:13px}
.message-banner[hidden]{display:none}

/* One image treatment for every WeChat avatar surface. */
.wc-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* Author photo assets use uncropped full images in the viewer and compact lazy thumbnails elsewhere. */
.p2-photo-grid .photo-asset{width:100%;height:100%;object-fit:cover;display:block}
.photo-canvas .zoom-art .photo-asset{width:100%;height:100%;object-fit:contain;display:block;max-height:100%}
.photo-filmstrip .photo-asset{width:100%;height:100%;object-fit:cover;display:block}
.album-grid .photo-asset{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block;border-radius:12px;margin-bottom:9px}
