/* The first-login tour (js/tour.js): Peter's note, the spotlight, the progress bar and the rest-of-the-tabs board, over the
   real tabs. Settled on the first-login tour board (rounds 1-6, 2026-10-23). If the look of any tab changes, the tour
   shows that tab as it now is: it never draws a tab, it points at the page. The one exception is the Integrations
   peek, a drawing until that tab is built. */
@keyframes arrive{0%{transform:translateY(-14px);opacity:0}60%{transform:translateY(3px);opacity:1}100%{transform:none}}
.lead.arrive{animation:arrive .5s steps(5)}
@keyframes tourblink{0%,100%{box-shadow:var(--rim)}50%{box-shadow:0 0 0 4px var(--coin),0 0 0 8px var(--teal-dark)}}
.rail .tab.pulse{animation:tourblink .5s steps(2) 3}
@media (prefers-reduced-motion:reduce){.lead.arrive,.rail .tab.pulse{animation:none}}

.tlayer{position:fixed;inset:0;z-index:70;pointer-events:none}
.tlayer.dim{pointer-events:auto}
.spot{position:absolute;display:none;pointer-events:none;box-shadow:0 0 0 9999px rgba(5,28,25,.6);outline:4px dashed var(--coin);outline-offset:5px;transition:left .25s steps(4),top .25s steps(4),width .25s steps(4),height .25s steps(4)}
.tlayer.dim .spot{display:block;left:50%;top:50%;width:0;height:0;outline:0}
.spot.on{display:block}
.spot2{position:absolute;display:none;pointer-events:none;outline:4px dashed var(--coin);outline-offset:3px}
.spot2.on{display:block}
.tlayer.dim .spot2{display:none}

.tbub{position:absolute;pointer-events:auto;width:340px;max-width:calc(100vw - 24px);padding:12px 14px;background:#fff;color:var(--text);box-shadow:0 0 0 3px var(--teal-dark),0 0 0 6px var(--coin),8px 11px 0 6px rgba(0,0,0,.25);font:600 15px/1.4 var(--pxf)}
.tbub .tbh{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.tbub .tbh canvas{width:54px;height:44px;flex:none}
.tbub .tcount{font:700 15px/1.2 var(--pxf);text-transform:uppercase;color:#8a5a00}
.tbub .tskip{all:unset;cursor:pointer;margin-left:auto;font:400 8px/1.65 var(--ps);text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.tbub h3{margin:0 0 4px;font:700 19px/1.2 var(--pxf);text-transform:none;letter-spacing:normal;color:var(--teal-dark)}
.tbub p{margin:0 0 6px}
.tbub p.try{padding:6px 8px;background:#fff6c8;box-shadow:0 0 0 2px #e9a90f;font-size:14px}
.tbub .tbf{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.tbub .tback{all:unset;cursor:pointer;padding:7px 10px;font:700 12px/1 var(--tiny);text-transform:uppercase;color:var(--teal-dark);box-shadow:0 0 0 2px var(--teal-dark)}
.tbub .tback:disabled{visibility:hidden}
.tbub .tnext{all:unset;cursor:pointer;padding:8px 12px;font:700 13px/1 var(--tiny);text-transform:uppercase;white-space:nowrap;background:var(--pink);color:#fff;text-shadow:1px 1px 0 var(--plum);box-shadow:0 0 0 3px var(--plum)}
.tbub .tnext.wait{white-space:normal;text-align:right;background:#e6dcc4;color:var(--muted);text-shadow:none;box-shadow:0 0 0 3px #b9ab88;cursor:default}
.tbub button:focus-visible,.trest button:focus-visible,.tprog button:focus-visible{outline:3px dashed var(--pink);outline-offset:4px}
.tbub::before{content:'';position:absolute;width:12px;height:12px;background:#fff;box-shadow:0 0 0 3px var(--teal-dark);display:none}
.tbub.ar-l::before{display:block;left:-9px;top:var(--ay,30px)}
.tbub.ar-r::before{display:block;right:-9px;top:var(--ay,30px)}
.tbub.ar-t::before{display:block;top:-9px;left:var(--ax,30px)}
.tbub.ar-b::before{display:block;bottom:-9px;left:var(--ax,30px)}
.tbub.center{left:50%;top:50%;transform:translate(-50%,-50%);width:520px;padding:0;text-align:center}
.tbub.center .cscene{position:relative;height:150px;overflow:hidden;background:#bde6ff;box-shadow:0 3px 0 var(--teal-dark)}
.tbub.center .cscene canvas{width:100%;height:100%}
.tbub.center .cin{padding:16px 24px 20px}
.tbub.center h3{font-size:28px}
.tbub.center p{font-size:16px}
.tbub.center .tbf{justify-content:center;flex-wrap:wrap}
.tbub.center .tskip{margin:0}
.tbub.center .tnext{padding:12px 18px;font-size:15px}
.tbub .later{display:block;margin-top:8px;font:600 13px/1.35 var(--pxf);color:var(--muted)}
.tbub.peek .tbf{justify-content:flex-end}

/* the sum, set apart with its numbers in colour */
.tbub .eq2{display:block;margin:8px 0 10px;padding:8px 12px 7px;background:#f6f0e0;box-shadow:inset 0 0 0 2px #e6dcc4;font:700 17px/1.3 var(--pxf);color:var(--teal-dark);word-spacing:5px}
.tbub .eq2 b{color:#c9347d;word-spacing:1px;white-space:nowrap}
.tbub .ttags{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:7px}
.tbub .ttags li{display:grid;gap:3px;font:600 14px/1.3 var(--pxf)}
.tbub .ttags .tag{justify-self:start}
.tbub .tnext b{font:inherit}

/* the progress bar: ten names, each ticked when done */
.tprog{position:absolute;left:50%;top:10px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 16px);padding:7px 12px;pointer-events:auto;background:#2a0f2e;color:#fff;box-shadow:0 0 0 3px var(--coin),5px 7px 0 3px rgba(0,0,0,.25);font:700 12px/1 var(--tiny);text-transform:uppercase;white-space:nowrap}
.tprog b{color:var(--coin)}
.tprog .pc{display:flex;gap:5px}
.tprog .pc span{display:inline-flex;align-items:center;padding:4px 6px 3px;background:#4a2350;color:#d9b8e0}
.tprog .pc span em{font-style:normal;margin-left:5px}
.tprog .pc span.on{background:var(--coin);color:#2a0f2e}
.tprog .pc span.done{background:#127a34;color:#fff}
.tprog .tskip{all:unset;cursor:pointer;color:#ffc2dc;text-decoration:underline;text-underline-offset:3px}
@media (max-width:1180px){.tprog .pc span:not(.on) em{display:none}}

/* the rest of the tabs: cards to peek at in any order */
.trest{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(860px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:18px 22px 20px;pointer-events:auto;background:var(--paper);box-shadow:0 0 0 3px var(--teal-dark),0 0 0 7px var(--coin),10px 13px 0 7px rgba(0,0,0,.25)}
.trest h3{margin:0;font:700 26px/1.15 var(--pxf);text-transform:none;letter-spacing:normal;color:var(--teal-dark)}
.trest .sub{margin:4px 0 14px;font:600 15px/1.4 var(--pxf);color:var(--muted)}
.trest .rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.trest .rc{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;background:#fff;box-shadow:var(--rim);font:600 13px/1.35 var(--pxf);color:var(--text)}
.trest .rc:hover{background:#fff6c8}
.trest .rc canvas{width:30px;height:30px}
.trest .rc b{font:700 16px/1.2 var(--pxf);color:var(--teal-dark)}
.trest .rc .seen{position:absolute;right:8px;top:8px;width:21px;height:21px;display:none}
.trest .rc.done .seen{display:block}
.trest .rc.done{background:#effaf1}
.trest .rc .lk2{margin-top:auto;font:400 8px/1.65 var(--ps);text-transform:uppercase;color:#c9347d}
.trest .rfoot{display:flex;align-items:center;gap:14px;margin-top:16px}
.trest .rfoot .cnt{font:700 12px/1.2 var(--tiny);text-transform:uppercase;color:var(--muted)}
.trest .rfoot .tskip{all:unset;cursor:pointer;margin-left:auto;font:400 8px/1.65 var(--ps);text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.trest .btnp{all:unset;cursor:pointer;padding:10px 14px;font:700 13px/1 var(--tiny);text-transform:uppercase;background:var(--pink);color:#fff;text-shadow:1px 1px 0 var(--plum);box-shadow:0 0 0 3px var(--plum)}
@media (max-width:900px){.trest .rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* a narrow screen: the note is a sheet along the bottom (or the top, when the target is low) */
.tbub.sheet{left:10px;right:10px;bottom:10px;width:auto;max-width:none}
.tbub.sheet.top{bottom:auto;top:56px}
.tbub.sheet .tbh canvas{width:44px;height:36px}
.tbub.sheet.mini h3,.tbub.sheet.mini p:not(.try),.tbub.sheet.mini .ttags,.tbub.sheet.mini .tback{display:none}
.tbub.center{max-width:calc(100vw - 24px)}

/* step 1 (point at any icon): the icon bar sits above the dimming and the note, so every name shows in full; the bar's own
   veil and the dashed ring stand in for the spotlight there */
.tour-names .rail{z-index:80}
.tour-names .rail::after{content:'';position:absolute;inset:0;background:rgba(5,28,25,.6);pointer-events:none}
.tour-names .rail .tabs{position:relative;z-index:1;outline:4px dashed var(--coin);outline-offset:5px}
.tour-names .tlayer .spot{outline:0}

/* the lead cards and the Just claimed panel while the tour runs */
.touring .claimed.empty .ph2{display:none}
.touring [data-nomatch]{display:none}
.feed:has(.lead)~[data-tour-empty]{display:none}
.touring .call1[data-logged]{background:#127a34}
.touring .feed .lead[data-prac] .done{min-height:0}

/* the placeholder peeks (Pig Pen, Integrations): a drawing, until the tab is built */
.tour-ph>:is(.grid,.chip-ph){display:none}
.tph{display:grid;gap:16px}
.tph .intg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tph .panel{padding:14px 16px}
.tph .panel p{margin:6px 0 0;font:600 14px/1.4 var(--pxf)}
.tph .panel .addr{padding:6px 8px;background:#f6f0e0;box-shadow:inset 0 0 0 2px #e6dcc4;font:600 13px/1.3 var(--pxf);overflow-wrap:anywhere}
@media (max-width:900px){.tph .intg{grid-template-columns:minmax(0,1fr)}}

/* the phone app's tour: the same pages in the app's column, the tabs along the bottom (beats the "use the app" page) */
html.tour-app .dash{display:block;min-height:100vh;padding-bottom:76px}
html.tour-app .gate{display:none}
html.tour-app .rail{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;flex-direction:row;justify-content:center;gap:0;padding:8px 8px calc(10px + env(safe-area-inset-bottom));z-index:60}
html.tour-app .rail :is(.logo,.sep,.rbell,.motion-toggle){display:none}
html.tour-app .tabs{flex-direction:row;gap:0;width:100%;justify-content:space-between}
html.tour-app .tab{width:40px;height:40px}
html.tour-app .tab canvas{width:26px;height:26px}
html.tour-app .tab:is([aria-label^="Integrations"],[aria-label^="AI Agents"]){display:none}
html.tour-app .tab .lock{width:11px;height:13px;right:-4px;top:-5px}
html.tour-app .tt{left:50%;top:auto;bottom:calc(100% + 16px);transform:translateX(-50%)}
html.tour-app .tt::after{left:50%;top:auto;bottom:-10px;margin:0 0 0 -4px;box-shadow:0 3px 0 #fff}
html.tour-app .tab.hold .tt{display:block}
html.tour-app .tbub.sheet{bottom:76px}
html.tour-app .tbub.sheet.top{bottom:auto}
html.tour-app .tprog{top:6px;gap:6px;padding:6px 8px;font:400 8px/1.4 var(--ps)}
html.tour-app .tprog .pc span:not(.on) em{display:none}
html.tour-app .tprog .pc span{padding:3px 4px 2px}
html.tour-app .tprog .pc span.on em{display:inline}
html.tour-app .tbub.center{width:350px}
html.tour-app .tbub.center .cscene{height:110px}
html.tour-app .tbub.center h3{font-size:22px}
html.tour-app .trest{top:auto;bottom:76px;transform:translateX(-50%);left:50%;padding:14px}
html.tour-app .trest h3{font-size:20px}
html.tour-app .trest .sub{font-size:13px;margin-bottom:8px}
html.tour-app .aswipe{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 10px;scrollbar-width:none}
html.tour-app .aswipe::-webkit-scrollbar{display:none}
html.tour-app .aswipe .rc{flex:0 0 78%;scroll-snap-align:center}
html.tour-app .trest .rfoot{gap:8px;flex-wrap:wrap}
/* the tag notes sit two by two in small type, so the lead card shows above the note */
html.tour-app .tbub .ttags{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;margin:4px 0 8px}
html.tour-app .tbub .ttags li{align-content:start;font:600 12.5px/1.25 var(--pxf)}
html.tour-app .tbub.sheet p{margin-bottom:6px}
html.tour-app .tbub.sheet:has(.ttags) .try{display:none}
html.tour-app .tbub.sheet.mini:has(.ttags) .try{display:block}
/* the app's top: the banner's title, then Taking leads, the bell and your profile in one row */
html.tour-app .main{padding:12px 12px 26px}
html.tour-app .banner,html.tour-app .banner.short{min-height:0;padding:14px;gap:10px}
html.tour-app .welcome h1{font-size:22px}
html.tour-app .welcome p{margin-top:6px;padding:4px 7px 3px;font-size:12px}
html.tour-app .datecard{width:100%;margin-top:0;gap:10px;padding:8px 10px;justify-content:space-between}
html.tour-app .datecard .d{display:none}
html.tour-app .datecard .take{margin-right:auto}
html.tour-app .avatar{width:50px;height:50px}
html.tour-app .avatar canvas{width:42px;height:34px}
html.tour-app .hdr{gap:12px;margin:16px 0}
html.tour-app .chip{white-space:normal}
/* the app's My Leads: the list screen, then the lead's screen under "‹ My Leads" */
html.tour-ml-list .dcol,html.tour-ml-person .lcol{display:none}
html.tour-ml-person .split{grid-template-columns:minmax(0,1fr)}
.mlback{all:unset;box-sizing:border-box;cursor:pointer;display:inline-block;margin:0 0 12px;padding:8px 10px;font:700 12px/1 var(--tiny);text-transform:uppercase;color:var(--teal-dark);box-shadow:0 0 0 2px var(--teal-dark);background:#fff}
