/* HeyVox app replicas for the website.
   Built from the Android layouts at their real sizes (1px here = 1dp in the
   app: item_voicemail.xml, activity_inbox.xml, overlay_player.xml), so what
   the site shows is what the phone shows. A .ph phone is 360dp wide and is
   scaled to fit with --s. Colours are the app's own (res/values/colors.xml). */

.ph{--teal:#0A7B6C;--teal-dark:#075E53;--teal-mid:#2BA898;--teal-light:#E6F4F1;--ink:#10201D;--body:#3F5A55;--muted:#56706B;--line:#DCE8E5;--bg:#F4FAF8;--coral:#E8593C;--coral-light:#FBE8E3;
  --s:.86;position:relative;width:calc(378px*var(--s));height:calc(760px*var(--s));flex:none;
  border-radius:calc(46px*var(--s));background:#0F1B19;padding:calc(9px*var(--s));
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 30px 60px -20px rgba(7,40,35,.45),0 12px 24px -12px rgba(7,40,35,.35)}
.ph-screen{position:relative;width:360px;height:742px;transform:scale(var(--s));transform-origin:0 0;
  border-radius:38px;overflow:hidden;background:var(--bg);font-family:Inter,system-ui,sans-serif;color:var(--ink);
  -webkit-font-smoothing:antialiased;text-align:left;line-height:1.3}
.ph-screen *{box-sizing:border-box}
.ph svg{display:block;width:100%;height:100%}
.ph svg path[fill]:not([fill="none"]){fill:currentColor}
.ph svg path[stroke]{stroke:currentColor}

/* status bar */
.ph-sb{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 22px 0 26px;font-size:13px;font-weight:600;color:var(--ink)}
.ph-sb i{display:inline-flex;gap:5px;align-items:center}
.ph-sb b{display:inline-block;width:22px;height:11px;border-radius:3px;border:1.5px solid currentColor;position:relative}
.ph-sb b:after{content:"";position:absolute;inset:1.5px 5px 1.5px 1.5px;background:currentColor;border-radius:1px}
.ph-sb u{display:inline-block;width:14px;height:10px;background:linear-gradient(90deg,currentColor 0 2px,transparent 2px 4px,currentColor 4px 6px,transparent 6px 8px,currentColor 8px 10px,transparent 10px 12px,currentColor 12px 14px);clip-path:polygon(0 100%,100% 0,100% 100%)}
.ph-notch{position:absolute;top:10px;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#0F1B19;z-index:5}

/* inbox header */
.ib-head{display:flex;align-items:center;padding:6px 14px 8px 16px;gap:8px}
.wm{font-family:Sora,Inter,sans-serif;font-size:22px;font-weight:400;letter-spacing:-.01em;color:var(--ink);flex:1}
.wm b{font-weight:800;color:var(--teal)}
.ib-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--muted)}
.ib-btn.spark{background:var(--teal);border:0;color:#fff}
.ib-btn span{width:19px;height:19px}

.pills{display:flex;gap:8px;padding:2px 16px 8px}
.pill{height:32px;padding:0 14px;border-radius:100px;display:inline-flex;align-items:center;font-size:13px;font-weight:600;background:#fff;border:1px solid var(--line);color:var(--body)}
.pill.on{background:var(--teal);border-color:var(--teal);color:#fff}
.ib-sub{display:flex;align-items:center;justify-content:space-between;padding:2px 16px 8px}
.ib-sub em{font-style:normal;font-size:13px;font-weight:600;color:var(--teal)}
.ib-sub > span{font-size:12px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:100px;padding:4px 10px}

/* Today card */
.today{margin:4px 14px 8px;background:var(--teal);border-radius:12px;padding:12px 16px;color:#fff}
.today-top{display:flex;align-items:center}
.today h5{margin:0;font-family:Sora,Inter,sans-serif;font-weight:600;font-size:15px}
.today p{margin:2px 0 0;font-size:14px;color:var(--teal-light)}
.today .chev{margin-left:auto;width:20px;height:20px}
.faces{display:flex;margin-top:10px}
.face{width:58px;display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--teal-light)}
.face i{position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:600;color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.33)}
.face i.urg{border:2px solid var(--coral)}
.face i.new:after{content:"";position:absolute;top:-1px;right:-1px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--teal)}
.face span{margin-top:4px;max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* voicemail card (item_voicemail.xml) */
.cards{padding:0 14px}
.vm{position:relative;display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:8px}
.vm.unread:before{content:"";position:absolute;left:-1px;top:20px;width:3px;height:48px;border-radius:0 3px 3px 0;background:var(--teal)}
.vm.urgent:before{background:#D85A30}
.av{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--teal-light);color:var(--teal);font-size:14px;font-weight:600}
.av.photo{background-size:cover;background-position:center;color:transparent}
.vm-b{flex:1;min-width:0}
.vm-r1{display:flex;align-items:baseline;gap:8px}
.vm-n{flex:1;min-width:0;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vm-n small{font-weight:600;color:var(--muted);font-size:15px}
.vm-t{font-size:13px;color:var(--muted);white-space:nowrap}
.vm-s{margin-top:2px;font-size:15px;color:var(--body);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.33}
.chips{display:flex;gap:5px;margin-top:6px}
.chip{font-size:12px;font-weight:600;padding:2px 7px;border-radius:4px;border:1px solid;white-space:nowrap}
.vm-m{display:flex;gap:8px;margin-top:4px;font-size:12px;color:var(--muted)}
.vm-m .u{color:var(--coral);font-weight:600}
.play{flex:none;align-self:center;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--teal-light);color:var(--teal)}
.play span{width:16px;height:16px}

/* bottom nav */
.nav{position:absolute;left:0;right:0;bottom:0;height:64px;background:#fff;border-top:1px solid var(--line);display:flex;padding:8px 4px 10px}
.nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none}
.nav a span{width:22px;height:22px}
.nav a.on{color:var(--teal);font-weight:700}
.ph-home{position:absolute;bottom:5px;left:50%;width:110px;height:4px;margin-left:-55px;border-radius:4px;background:var(--ink);opacity:.8;z-index:3}

/* call sheet (overlay_player.xml) */
.sheet-wrap{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.sheet{position:absolute;left:0;right:0;bottom:0;top:52px;border-radius:26px 26px 0 0;background:linear-gradient(170deg,#EDF7F4,#F5FAF8 55%,#FBF6EF);padding:10px 16px 0;display:flex;flex-direction:column}
.sheet.full{top:34px}
.grab{width:40px;height:4px;border-radius:4px;background:#C9D9D5;margin:0 auto 6px}
.sh-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
.sh-top span{width:22px;height:22px}
.sh-who{text-align:center;margin-top:-6px}
.sh-av{width:56px;height:56px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;background:var(--teal-light);color:var(--teal);font-size:19px;font-weight:600}
.sh-name{font-family:Sora,Inter,sans-serif;font-size:19px;font-weight:600;color:var(--ink)}
.sh-name.maybe{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.sh-num{font-size:13px;color:var(--muted);margin-top:3px}
.sh-meta{display:flex;justify-content:center;gap:6px;font-size:12.5px;color:var(--muted);margin-top:4px}
.sh-meta .u{color:var(--coral);font-weight:600}
.sh-meta .sim{background:var(--teal-light);color:var(--teal);font-weight:600;border-radius:100px;padding:1px 8px}
.sh-body{flex:1;overflow:hidden;margin-top:12px;display:flex;flex-direction:column;gap:8px}
.qa{display:flex;gap:8px}
.qa a{flex:1;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:600;text-decoration:none}
.qa .call{background:var(--teal);color:#fff}
.qa .call span{width:18px;height:18px}
.qa .txt{background:#fff;border:1px solid var(--teal);color:var(--teal)}
.aibar{display:flex;gap:8px}
.aibar a{height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;text-decoration:none}
.aibar a span{width:17px;height:17px}
.aibar .urg{flex:1;border:1px solid #D85A30;color:#D85A30;background:#fff}
.aibar .more{padding:0 16px;background:var(--teal-light);color:var(--muted);font-size:13px}
.box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.box h6{margin:0 0 4px;font-size:12.5px;font-weight:600;color:var(--teal)}
.box p{margin:0;font-size:14px;color:var(--ink);line-height:1.45}
.box.tr p{font-size:13.5px;color:var(--body)}
.box .row{display:flex;gap:8px;margin-top:8px}
.box .row a{flex:1;height:34px;border-radius:100px;display:grid;place-items:center;font-size:13px;font-weight:600;text-decoration:none}
.box .row .go{background:var(--teal);color:#fff}
.box .row .ed{background:var(--teal-light);color:var(--teal-dark)}
.box em{font-style:italic;color:var(--ink)}
.qa-list{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:13.5px}
.qa-list dt{color:var(--muted)}
.qa-list dd{margin:0;color:var(--ink);font-weight:500}
.booked{display:flex;align-items:center;gap:10px;background:var(--teal-light);border:1px solid #BFE3DA;border-radius:12px;padding:10px 12px}
.booked div{flex:1}
.booked small{display:block;font-size:12.5px;color:var(--teal-dark)}
.booked b{font-size:14px;font-weight:600}
.booked a{font-size:12.5px;font-weight:600;background:var(--teal);color:#fff;border-radius:100px;padding:6px 13px;text-decoration:none}
.dock{position:relative;border-top:1px solid var(--line);margin:0 -16px;padding:8px 16px 22px;background:rgba(255,255,255,.6)}
.dock:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:26px;background:linear-gradient(to bottom,rgba(244,250,248,0),rgba(244,250,248,.95));pointer-events:none}
.wave{display:flex;align-items:center;gap:2px;height:34px}
.wave i{flex:1;border-radius:2px;background:#BFD9D3}
.wave i.p{background:var(--teal)}
.times{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:2px}
.trans{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:4px;color:var(--ink)}
.trans span{width:24px;height:24px}
.trans .pp{width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center}
.trans .pp span{width:22px;height:22px}
.trans .sp{font-size:13px;font-weight:600;color:var(--muted);width:24px}
.acts{display:flex;justify-content:space-between;padding:8px 6px 4px}
.acts div{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12px;color:var(--muted)}
.acts div span{width:18px;height:18px}

/* a notification banner (Android heads-up) */
.notif{position:absolute;left:10px;right:10px;top:40px;z-index:6;background:#fff;border-radius:22px;padding:12px 14px;display:flex;gap:12px;box-shadow:0 10px 30px -8px rgba(7,40,35,.35),0 0 0 1px rgba(7,40,35,.06)}
.notif .ic{flex:none;width:34px;height:34px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center}
.notif .ic span{width:18px;height:18px}
.notif small{display:block;font-size:11.5px;color:var(--muted)}
.notif b{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-top:1px}
.notif p{margin:1px 0 0;font-size:13px;color:var(--body);line-height:1.35}

@media (prefers-reduced-motion:no-preference){
  .vm.arrive{animation:vmIn .6s cubic-bezier(.05,.7,.1,1) both}
  @keyframes vmIn{from{opacity:0;transform:translateY(-14px) scale(.98)}to{opacity:1;transform:none}}
}

/* hero moment: the heads-up drops in, then leaves as the card lands */
.notif{transform:translateY(-140%);opacity:0;transition:transform .5s cubic-bezier(.05,.7,.1,1),opacity .35s}
.notif.show{transform:none;opacity:1}
.notif.hide{transform:translateY(-30%);opacity:0;transition:transform .3s cubic-bezier(.3,0,.8,.15),opacity .25s}
.face.arrive{animation:vmIn .5s cubic-bezier(.05,.7,.1,1) both}
@media (prefers-reduced-motion:reduce){.notif{display:none}}
/* the sheet shows the start of the transcript; the rest is a scroll away, as in the app */
.sheet .box.tr p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* My Day, The day ahead (activity_my_day.xml + MyDayActivity.paintAhead):
   the planned run on the phone, drive legs between the job cards. */
.md-top{display:flex;align-items:center;gap:10px;padding:6px 12px 10px;background:#fff}
.md-ic{width:36px;height:36px;display:grid;place-items:center;color:var(--body);flex:none}
.md-ic svg{width:22px;height:22px}
.md-tt{flex:1;min-width:0}
.md-tt b{display:block;font-family:Sora,Inter,sans-serif;font-size:19px;font-weight:600;color:var(--ink)}
.md-tt span{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.md-pills{display:flex;gap:8px;padding:0 16px 12px;background:#fff;border-bottom:1px solid var(--line)}
.md-pills span{flex:1;height:38px;border-radius:100px;display:grid;place-items:center;font-size:14px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line)}
.md-pills .on{background:var(--teal);border-color:var(--teal);color:#fff}
.md-body{padding:14px 16px}
.md-plan{text-align:center;font-size:14px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:100px;padding:12px 8px;margin-bottom:14px}
.md-h{font-size:16.5px;font-weight:600;color:var(--ink);margin-bottom:10px}
.md-leg{font-size:12.5px;color:var(--muted);padding:0 0 6px 6px}
.md-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.md-card em{display:block;font-style:normal;font-size:12.5px;font-weight:600;color:var(--teal)}
.md-card b{display:block;font-size:16px;font-weight:600;color:var(--ink);margin-top:2px}
.md-card > span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.md-acts{display:flex;gap:8px;margin-top:10px}
.md-acts i{font-style:normal;font-size:12.5px;font-weight:600;color:var(--teal);background:rgba(10,123,108,.08);border-radius:100px;padding:6px 11px}
.md-acts i.g{color:var(--muted);background:rgba(86,112,107,.08)}

/* Build 58: two-tone nav icons, the same master as the app (scratchpad/icons2t). */
.ph .nav svg.tt path.fill{fill:#E1EEEB;stroke:none}
.ph .nav svg.tt path.line{fill:none;stroke:#56706B;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ph .nav a.on svg.tt path.fill{fill:#9FD6CB}
.ph .nav a.on svg.tt path.line{stroke:#0A7B6C}

/* Bookings › Plan the day (build 59: BookingsPlan.kt) */
.ph .pl-h{display:flex;align-items:center;padding:4px 16px 6px}
.ph .pl-h b{flex:1;font-family:Sora,Inter,sans-serif;font-size:22px;font-weight:600;letter-spacing:-.01em}
.ph .pl-h span{height:32px;padding:0 14px;border-radius:100px;display:inline-flex;align-items:center;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--body)}
.ph .pl-tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid var(--line)}
.ph .pl-tabs span{padding:11px 8px 10px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2.5px solid transparent}
.ph .pl-tabs span.on{color:var(--teal);border-color:var(--teal)}
.ph .pl-body{padding:0 16px}
.ph .pl-date{display:flex;align-items:center;gap:8px;padding:10px 0 8px}
.ph .pl-date i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--body)}
.ph .pl-date i svg{width:15px;height:15px}
.ph .pl-date b{flex:1;text-align:center;font-family:Sora,Inter,sans-serif;font-size:15.5px;font-weight:600}
.ph .pl-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px 14px;margin-bottom:9px}
.ph .pl-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ph .pl-stats em{display:block;font-style:normal;font-size:11.5px;font-weight:600;color:var(--muted)}
.ph .pl-stats b{font-family:Sora,Inter,sans-serif;font-size:18px;font-weight:600}
.ph .pl-map{padding:0;overflow:hidden}
.ph .pl-rsk{display:block;width:100%;height:138px;background:#EEF6F4}
.ph .pl-rsk text{font:700 10px Inter,sans-serif;fill:#fff;text-anchor:middle}
.ph .pl-rsk path[stroke]{stroke:#0A7B6C}
.ph .pl-gm{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;font-size:13.5px;font-weight:700;color:var(--teal);border-top:1px solid var(--line)}
.ph .pl-gm i{width:16px;height:16px}
.ph .pl-leg{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted);padding:3px 0 7px 12px;border-left:2px dotted #B8CBC6;margin-left:12px}
.ph .pl-leg i{width:12px;height:12px}
.ph .pl-stop{position:relative;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:12px;padding:24px 10px 10px 10px;box-shadow:0 0 0 2px var(--teal)}
.ph .pl-stop>em{position:absolute;top:-1px;left:-4px;font-style:normal;font-size:10.5px;font-weight:800;color:#fff;background:var(--teal);border-radius:12px 0 10px 0;padding:3px 10px}
.ph .pl-top{display:flex;align-items:center;gap:7px}
.ph .pl-n{width:22px;height:22px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:800;flex:none}
.ph .pl-top b{font-size:14.5px;font-weight:700}
.ph .pl-chip{font-size:11px;font-weight:700;color:var(--c);background:var(--b);border-radius:6px;padding:2px 6px}
.ph .pl-when{font-size:13px;font-weight:700;margin:4px 0 0 29px}
.ph .pl-when s{font-weight:500;color:var(--muted);margin-left:4px}
.ph .pl-ad{font-size:12px;color:var(--body);margin:2px 0 0 29px}
.ph .pl-acts{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:6px;margin-top:9px}
.ph .pl-acts span{display:flex;align-items:center;justify-content:center;gap:4px;height:32px;border-radius:100px;background:var(--teal-light);color:var(--teal);font-size:12.5px;font-weight:700}
.ph .pl-acts span.on{background:var(--teal);color:#fff}
.ph .pl-acts i{width:14px;height:14px}
.ph .pl-l2{margin-top:9px}
.ph .pl-stop.pl-s2{box-shadow:none;padding-top:10px}
