/* GENERATED from hv-ui.css by scoping every rule under .hv, so the web app
   can use the app's own components (cards, chips, the Today card, the call
   sheet) inside a .hv wrapper without colliding with its own class names.
   Do not edit by hand; regenerate after changing hv-ui.css. */
.hv .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)}
.hv .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}
.hv .ph-screen *{box-sizing:border-box}
.hv .ph svg{display:block;width:100%;height:100%}
.hv .ph svg path[fill]:not([fill="none"]){fill:currentColor}
.hv .ph svg path[stroke]{stroke:currentColor}
.hv .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)}
.hv .ph-sb i{display:inline-flex;gap:5px;align-items:center}
.hv .ph-sb b{display:inline-block;width:22px;height:11px;border-radius:3px;border:1.5px solid currentColor;position:relative}
.hv .ph-sb b:after{content:"";position:absolute;inset:1.5px 5px 1.5px 1.5px;background:currentColor;border-radius:1px}
.hv .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%)}
.hv .ph-notch{position:absolute;top:10px;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#0F1B19;z-index:5}
.hv .ib-head{display:flex;align-items:center;padding:6px 14px 8px 16px;gap:8px}
.hv .wm{font-family:Sora,Inter,sans-serif;font-size:22px;font-weight:400;letter-spacing:-.01em;color:var(--ink);flex:1}
.hv .wm b{font-weight:800;color:var(--teal)}
.hv .ib-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--muted)}
.hv .ib-btn.spark{background:var(--teal);border:0;color:#fff}
.hv .ib-btn span{width:19px;height:19px}
.hv .pills{display:flex;gap:8px;padding:2px 16px 8px}
.hv .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)}
.hv .pill.on{background:var(--teal);border-color:var(--teal);color:#fff}
.hv .ib-sub{display:flex;align-items:center;justify-content:space-between;padding:2px 16px 8px}
.hv .ib-sub em{font-style:normal;font-size:13px;font-weight:600;color:var(--teal)}
.hv .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}
.hv .today{margin:4px 14px 8px;background:var(--teal);border-radius:12px;padding:12px 16px;color:#fff}
.hv .today-top{display:flex;align-items:center}
.hv .today h5{margin:0;font-family:Sora,Inter,sans-serif;font-weight:600;font-size:15px}
.hv .today p{margin:2px 0 0;font-size:14px;color:var(--teal-light)}
.hv .today .chev{margin-left:auto;width:20px;height:20px}
.hv .faces{display:flex;margin-top:10px}
.hv .face{width:58px;display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--teal-light)}
.hv .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)}
.hv .face i.urg{border:2px solid var(--coral)}
.hv .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)}
.hv .face span{margin-top:4px;max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hv .cards{padding:0 14px}
.hv .vm{position:relative;display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:8px}
.hv .vm.unread:before{content:"";position:absolute;left:-1px;top:20px;width:3px;height:48px;border-radius:0 3px 3px 0;background:var(--teal)}
.hv .vm.urgent:before{background:#D85A30}
.hv .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}
.hv .av.photo{background-size:cover;background-position:center;color:transparent}
.hv .vm-b{flex:1;min-width:0}
.hv .vm-r1{display:flex;align-items:baseline;gap:8px}
.hv .vm-n{flex:1;min-width:0;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hv .vm-n small{font-weight:600;color:var(--muted);font-size:15px}
.hv .vm-t{font-size:13px;color:var(--muted);white-space:nowrap}
.hv .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}
.hv .chips{display:flex;gap:5px;margin-top:6px}
.hv .chip{font-size:12px;font-weight:600;padding:2px 7px;border-radius:4px;border:1px solid;white-space:nowrap}
.hv .vm-m{display:flex;gap:8px;margin-top:4px;font-size:12px;color:var(--muted)}
.hv .vm-m .u{color:var(--coral);font-weight:600}
.hv .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)}
.hv .play span{width:16px;height:16px}
.hv .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}
.hv .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}
.hv .nav a span{width:22px;height:22px}
.hv .nav a.on{color:var(--teal);font-weight:700}
.hv .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}
.hv .sheet-wrap{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.hv .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}
.hv .sheet.full{top:34px}
.hv .grab{width:40px;height:4px;border-radius:4px;background:#C9D9D5;margin:0 auto 6px}
.hv .sh-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
.hv .sh-top span{width:22px;height:22px}
.hv .sh-who{text-align:center;margin-top:-6px}
.hv .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}
.hv .sh-name{font-family:Sora,Inter,sans-serif;font-size:19px;font-weight:600;color:var(--ink)}
.hv .sh-name.maybe{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.hv .sh-num{font-size:13px;color:var(--muted);margin-top:3px}
.hv .sh-meta{display:flex;justify-content:center;gap:6px;font-size:12.5px;color:var(--muted);margin-top:4px}
.hv .sh-meta .u{color:var(--coral);font-weight:600}
.hv .sh-meta .sim{background:var(--teal-light);color:var(--teal);font-weight:600;border-radius:100px;padding:1px 8px}
.hv .sh-body{flex:1;overflow:hidden;margin-top:12px;display:flex;flex-direction:column;gap:8px}
.hv .qa{display:flex;gap:8px}
.hv .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}
.hv .qa .call{background:var(--teal);color:#fff}
.hv .qa .call span{width:18px;height:18px}
.hv .qa .txt{background:#fff;border:1px solid var(--teal);color:var(--teal)}
.hv .aibar{display:flex;gap:8px}
.hv .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}
.hv .aibar a span{width:17px;height:17px}
.hv .aibar .urg{flex:1;border:1px solid #D85A30;color:#D85A30;background:#fff}
.hv .aibar .more{padding:0 16px;background:var(--teal-light);color:var(--muted);font-size:13px}
.hv .box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.hv .box h6{margin:0 0 4px;font-size:12.5px;font-weight:600;color:var(--teal)}
.hv .box p{margin:0;font-size:14px;color:var(--ink);line-height:1.45}
.hv .box.tr p{font-size:13.5px;color:var(--body)}
.hv .box .row{display:flex;gap:8px;margin-top:8px}
.hv .box .row a{flex:1;height:34px;border-radius:100px;display:grid;place-items:center;font-size:13px;font-weight:600;text-decoration:none}
.hv .box .row .go{background:var(--teal);color:#fff}
.hv .box .row .ed{background:var(--teal-light);color:var(--teal-dark)}
.hv .box em{font-style:italic;color:var(--ink)}
.hv .qa-list{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:13.5px}
.hv .qa-list dt{color:var(--muted)}
.hv .qa-list dd{margin:0;color:var(--ink);font-weight:500}
.hv .booked{display:flex;align-items:center;gap:10px;background:var(--teal-light);border:1px solid #BFE3DA;border-radius:12px;padding:10px 12px}
.hv .booked div{flex:1}
.hv .booked small{display:block;font-size:12.5px;color:var(--teal-dark)}
.hv .booked b{font-size:14px;font-weight:600}
.hv .booked a{font-size:12.5px;font-weight:600;background:var(--teal);color:#fff;border-radius:100px;padding:6px 13px;text-decoration:none}
.hv .dock{position:relative;border-top:1px solid var(--line);margin:0 -16px;padding:8px 16px 22px;background:rgba(255,255,255,.6)}
.hv .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}
.hv .wave{display:flex;align-items:center;gap:2px;height:34px}
.hv .wave i{flex:1;border-radius:2px;background:#BFD9D3}
.hv .wave i.p{background:var(--teal)}
.hv .times{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:2px}
.hv .trans{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:4px;color:var(--ink)}
.hv .trans span{width:24px;height:24px}
.hv .trans .pp{width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center}
.hv .trans .pp span{width:22px;height:22px}
.hv .trans .sp{font-size:13px;font-weight:600;color:var(--muted);width:24px}
.hv .acts{display:flex;justify-content:space-between;padding:8px 6px 4px}
.hv .acts div{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12px;color:var(--muted)}
.hv .acts div span{width:18px;height:18px}
.hv .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)}
.hv .notif .ic{flex:none;width:34px;height:34px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center}
.hv .notif .ic span{width:18px;height:18px}
.hv .notif small{display:block;font-size:11.5px;color:var(--muted)}
.hv .notif b{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-top:1px}
.hv .notif p{margin:1px 0 0;font-size:13px;color:var(--body);line-height:1.35}
@media (prefers-reduced-motion:no-preference){.hv .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}}}
.hv .notif{transform:translateY(-140%);opacity:0;transition:transform .5s cubic-bezier(.05,.7,.1,1),opacity .35s}
.hv .notif.show{transform:none;opacity:1}
.hv .notif.hide{transform:translateY(-30%);opacity:0;transition:transform .3s cubic-bezier(.3,0,.8,.15),opacity .25s}
.hv .face.arrive{animation:vmIn .5s cubic-bezier(.05,.7,.1,1) both}
@media (prefers-reduced-motion:reduce){.hv .notif{display:none}}
.hv .sheet .box.tr p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

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