/* plans-shell.css
   The part of plans.css that the public marketing pages actually use: the logo
   lockup, the tokens it reads, and the html/body base. Chosen by selector rather
   than by coverage byte ranges. Coverage clipped a rule mid-way and left the
   lockup's inner span at the wrong size on every page, which a computed-style
   comparison caught and a pixel diff did not: these pages do not render identically
   twice, so two identical runs differ by more than this change does.

   Every :root block is kept, in source order, because later ones redefine
   --tp-muted, --tp-font and --tp-gut, and taking only the first would quietly
   change both the colour and the typeface.

   Verified: zero computed-style differences against the full sheet across 12 pages
   at 1280px and 390px, about 13,000 elements, 34 properties each. Regenerate this
   file if the lockup changes. */
:root{--tp-ink:#0b1f19;--tp-forest:#0d3d35;--tp-leaf:#2c6b52;--tp-gold:#d9a441;--tp-text:#17302a;--tp-muted:#5a6f68;--tp-line:#dfe6e2;--tp-bg:#f4f6f5;--tp-red:#e0524a;--tp-amber:#e7b34a;--tp-green:#3f9d6d;--tp-font:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--tp-display:"Archivo","Helvetica Neue",Arial,sans-serif}
html{overflow-x:clip}
body.tp-body{margin:0;background:var(--tp-bg);color:var(--tp-text);font:15px/1.5 var(--tp-font);-webkit-font-smoothing:antialiased;min-height:100vh}
body.tp-body a{color:var(--tp-leaf)}
body.tp-body button{font-family:inherit}
.tp-logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em;font-size:14px;color:var(--tp-forest);text-decoration:none}
.tp-logo span{width:34px;height:34px;border-radius:9px;background:var(--tp-forest);color:#fff;display:grid;place-items:center;font-size:13px;letter-spacing:.06em}
body.tp-body a.tp-btn{color:#fff}
body.tp-body a.tp-btn--ghost{color:var(--tp-forest)}
body.tp-body a.tp-btn:hover{color:#fff}
body.tp-body a.tp-btn--ghost:hover{color:var(--tp-forest)}
[hidden]{display:none!important}
@media print{
body.tp-body{background:#fff}
}
.tp-auth__logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--tp-forest);font-size:26px;font-weight:700;letter-spacing:-.01em;margin-top:8px}
.tp-auth__logo img{width:36px;height:auto}
.tp-auth__logo b{color:var(--tp-leaf);font-weight:700}
.tp-logo{gap:9px;letter-spacing:0;font-size:15px;text-transform:none}
.tp-logo img{width:30px;height:auto;display:block}
.tp-logo span{width:auto;height:auto;border-radius:0;background:none;color:var(--tp-forest);display:grid;line-height:1.05;font-size:15px;letter-spacing:-.01em}
.tp-logo span b{font-weight:700}
.tp-logo span small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tp-muted);font-weight:600;margin-top:2px}
.tp-auth__logo span{display:grid;line-height:1.05}
.tp-auth__logo span small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--tp-muted);font-weight:600;margin-top:3px}
:root{--tp-muted:#44574f}
.tp-logo span,.tp-linkbtn,.tp-login__foot,.tp-nav button,.tp-nav a,.tp-sub,.tp-toolbar__links,.tp-pack__contents,.tp-row__meta,.tp-doc table,.tp-edit__notes,.tp-nav__code,.tp-viewer__foot,.tp-auth__foot,.tp-card__body p,.tp-toolbar__tools,.tp-sort select,.tp-account__small,.tp-edit__title{font-size:13.5px}
.tp-eyebrow,.tp-login__card label,.tp-form label,.tp-filter__opts label em,.tp-pack__cover h3,.tp-thumb--step,.tp-thumb--step b,.tp-badge,.tp-equip__img,.tp-doc__chips span,.tp-doc h3,.tp-pack__cover dt,.tp-row__extra small,.tp-table small,.tp-doc--edit h3 .tp-linkbtn,.tp-codeform label,.tp-ack__form label,.tp-day__label,.tp-card__badge,.tp-card__group,.tp-card__clients b,.tp-auth__logo span small,.tp-card__play,.tp-pricing__toggle button small{font-size:12.5px}
.tp-logo span small,.tp-nav__account small{font-size:11.5px}
@media (max-width:600px){
.tp-logo span{font-size:13px}
}
:root{--tp-font:"Open Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.tp-auth__logo{flex-direction:column;gap:8px;margin:0 0 16px;font-size:23px;text-align:center}
.tp-auth__logo img{width:42px}
.tp-auth__logo{margin-bottom:22px}
@media (max-width:600px){
.tp-auth__logo{font-size:20px;margin-bottom:12px}
}
@media (min-width:981px){
.tp-auth--split > .tp-auth__logo{flex-direction:row;align-items:center;text-align:left;gap:12px;margin-top:38px;margin-bottom:22px;font-size:21px}
.tp-auth--signin > .tp-auth__logo{margin-top:clamp(38px,13vh,130px)}
}
.tp-logo{gap:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:14px;line-height:1.05}
.tp-logo span{display:block;width:auto;height:auto;background:none;border-radius:0;color:var(--tp-forest);
  font-size:14px;letter-spacing:.06em;line-height:1.05;text-transform:uppercase}
.tp-logo span small{display:block;font-weight:500;letter-spacing:.18em;font-size:9.5px;opacity:.75;
  text-transform:uppercase;color:inherit;margin-top:3px}
@media (max-width:600px){
.tp-logo span{font-size:13px}
.tp-logo span small{font-size:9px;letter-spacing:.16em}
}
.tp-ask__bar [hidden]{display:none}
body.tp-body input::placeholder,
body.tp-body textarea::placeholder{color:#767676;opacity:1;font-style:normal}
body.tp-body input::-webkit-input-placeholder,
body.tp-body textarea::-webkit-input-placeholder{color:#767676}
body.tp-body input:focus::placeholder,
body.tp-body textarea:focus::placeholder{color:#767676}
.tp-auth__logo{flex-direction:row;align-items:center;justify-content:center;
  gap:11px;text-align:left;font-size:14px;letter-spacing:.06em;
  text-transform:uppercase;line-height:1.05;margin:0 0 22px}
.tp-auth__logo img{width:30px;height:auto}
.tp-auth__logo span{display:block;width:auto;height:auto}
@media (max-width:600px){
.tp-auth__logo{font-size:14px;margin-bottom:16px}
}
@media (min-width:981px){
.tp-auth--split > .tp-auth__logo{justify-content:flex-start;gap:11px;font-size:14px}
}
.tp-top .tp-logo{gap:12px;font-size:15.5px}
.tp-top .tp-logo img{width:34px}
.tp-top .tp-logo span{font-size:15.5px}
.tp-top .tp-logo span small{font-size:10px;letter-spacing:.19em;margin-top:3px}
@media (max-width:600px){
.tp-top .tp-logo{gap:10px;font-size:14px}
.tp-top .tp-logo img{width:30px}
.tp-top .tp-logo span{font-size:14px}
.tp-top .tp-logo span small{font-size:9px;letter-spacing:.16em}
}
.tp-auth__logo{gap:15px;font-size:22px;margin-bottom:30px}
.tp-auth__logo img{width:48px}
.tp-auth__logo span{font-size:22px;letter-spacing:.05em}
.tp-auth__logo span small{font-size:12px;letter-spacing:.2em;margin-top:5px}
@media (max-width:600px){
.tp-auth__logo{gap:12px;font-size:18px;margin-bottom:22px}
.tp-auth__logo img{width:40px}
.tp-auth__logo span{font-size:18px}
.tp-auth__logo span small{font-size:10.5px;letter-spacing:.18em;margin-top:4px}
}
@media (min-width:981px){
.tp-auth--split > .tp-auth__logo{gap:15px;font-size:22px;margin-bottom:26px}
}
.tp-logo,.tp-auth__logo{text-transform:none;letter-spacing:0}
.tp-logo span,.tp-auth__logo span{display:grid;justify-items:start;text-align:left;
  gap:0;line-height:1.08;text-transform:none;letter-spacing:0}
.tp-logo i,.tp-auth__logo i{font-style:normal;font-weight:300;white-space:nowrap;
  letter-spacing:-.005em;color:var(--tp-forest)}
.tp-logo i b,.tp-auth__logo i b{font-weight:700;margin-left:.26em}
.tp-logo span,.tp-auth__logo span{justify-items:stretch}
.tp-logo span small,.tp-auth__logo span small{display:block;margin:.34em 0 0;
  font-weight:600;text-transform:uppercase;color:var(--tp-muted);
  line-height:1.2;text-align:justify;text-align-last:justify;
  -moz-text-align-last:justify}
.tp-logo span small{font-size:7px;letter-spacing:.06em}
.tp-auth__logo span small{font-size:11px;letter-spacing:.08em}
.tp-logo i,.tp-auth__logo i{justify-self:start}
.tp-logo i{font-size:16px}
.tp-auth__logo i{font-size:44px}
@media (max-width:760px){
.tp-auth__logo i{font-size:30px}
.tp-auth__logo span small{font-size:9px;letter-spacing:.12em}
}
.tp-top .tp-logo span small{display:none}
.tp-top--dark .tp-logo i{color:#fff}
.tp-top--dark .tp-logo span small{color:#a8c5b8}
@media (min-width:981px){
.tp-auth--split > .tp-auth__logo,
  .tp-auth--split > .tp-auth__aside{margin-left:clamp(28px,7vw,96px);margin-right:28px}
}
@media (max-width:980px){
.tp-auth--split > .tp-auth__logo{justify-content:center}
}
.tp-logo,.tp-auth__logo,
.tp-top .tp-logo,
.tp-auth--split > .tp-auth__logo{
  --lk:16px;
  display:inline-flex;align-items:center;gap:.62em;
  text-decoration:none;color:var(--tp-forest);
  font-size:var(--lk);font-weight:400;line-height:1.05;
  letter-spacing:normal;text-transform:none;flex-direction:row;text-align:left}
.tp-logo img,.tp-auth__logo img,
.tp-top .tp-logo img{width:calc(var(--lk) * 1.95);height:auto;display:block;flex:none}
.tp-logo > span,.tp-auth__logo > span,
.tp-top .tp-logo > span{display:flex;flex-direction:column;align-items:stretch;
  width:auto;height:auto;background:none;
  border-radius:0;color:inherit;font-size:inherit;letter-spacing:inherit}
.tp-logo i,.tp-auth__logo i{display:block;font-style:normal;font-size:var(--lk);
  font-weight:300;letter-spacing:-.015em;white-space:nowrap;color:var(--tp-forest)}
.tp-logo b,.tp-auth__logo b{font-weight:700;color:inherit;margin-left:.2em}
.tp-logo span small,.tp-auth__logo span small,
.tp-top .tp-logo span small{display:block;
  /* Three tenths of the name, not a fixed size. At this ratio the descriptor's own width
     lands at about 94% of the name, so justification always has a little to give and
     always lands exactly on both ends. Set it at the ratio where the two are naturally
     equal and rounding decides which is wider, which is how it drifted before. */
  font-size:calc(var(--lk) * .32);
  /* The tracking does the work and the justification only corrects the last pixel.
     Left to justify the whole gap, the browser puts every bit of it into the three word
     spaces, so the line came out as four blocks with canyons between them instead of one
     evenly tracked line. At .05em the line's own width lands just under the name's, which
     leaves justification a fraction of a pixel per word to close and keeps the letters
     evenly spaced the whole way across. */
  font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--tp-muted);
  margin:.3em 0 0;white-space:nowrap;opacity:1;line-height:1.15;
  text-align:justify;text-align-last:justify;-moz-text-align-last:justify}
.tp-logo i,.tp-auth__logo i{text-align:left;align-self:flex-start}
.tp-logo img,.tp-auth__logo img,
.tp-top .tp-logo img{width:calc(var(--lk) * 1.54)}
.tp-top .tp-logo{--lk:26px;align-items:center}
@media (max-width:767px){
.tp-top .tp-logo{--lk:24px}
}
.tp-logo--bare span small{display:none}
.tp-auth__logo,.tp-auth--split > .tp-auth__logo{--lk:clamp(24px,4.6vw,34px);margin:0 0 22px}
@media (min-width:981px){
.tp-auth--signin > .tp-auth__logo{margin-top:clamp(38px,13vh,130px)}
}
.tp-auth__logo,
.tp-auth--signin > .tp-auth__logo,
.tp-auth--split > .tp-auth__logo{margin:clamp(2px,1.2vh,16px) 0 clamp(8px,1.4vh,16px)}
body.tp-body{-webkit-font-smoothing:antialiased}
@media (min-width:900px){
body.tp-body .tp-top{justify-content:flex-start;gap:8px}
body.tp-body .tp-top .tp-nav--primary{margin-left:auto;align-self:stretch;display:flex;align-items:stretch;gap:4px}
body.tp-body .tp-top__right{display:flex;align-items:center;margin-left:14px;padding-left:20px;border-left:1px solid #e1e9e5;align-self:center;min-height:32px}
}
body.tp-body .tp-list--grid{gap:18px}
body.tp-body .tp-card{border-radius:18px;border:1.5px solid #e1e9e5;background:#fff;box-shadow:0 1px 2px rgba(10,38,33,.04);
  transition:transform .35s cubic-bezier(.25,.8,.25,1),box-shadow .35s cubic-bezier(.25,.8,.25,1),border-color .25s}
body.tp-body .tp-card:hover{transform:translateY(-4px);border-color:#cfe0da;box-shadow:0 24px 44px -28px rgba(10,38,33,.45)}
body.tp-body .tp-card.is-selected{border-color:var(--tp-forest);box-shadow:0 0 0 1.5px var(--tp-forest),0 24px 44px -30px rgba(10,38,33,.5)}
body.tp-body .tp-card__scene{border-radius:13px;overflow:hidden}
body.tp-body .tp-card__body{padding:12px 14px 14px;gap:9px}
body.tp-body .tp-card__body h3{font-size:15.5px;font-weight:600;line-height:1.32;letter-spacing:-.01em;color:#17302a}
body.tp-body .tp-card__body{display:flex;flex-direction:column}
body.tp-body .tp-card__check,body.tp-body .tp-card__fav,body.tp-body .tp-card__open{transition:transform .2s cubic-bezier(.25,.8,.25,1),background .2s,color .2s}
body.tp-body .tp-card__check:hover,body.tp-body .tp-card__fav:hover,body.tp-body .tp-card__open:hover{transform:scale(1.08)}
@media (prefers-reduced-motion:reduce){
body.tp-body .tp-card,body.tp-body .tp-card:hover{transition:none;transform:none}
}
body.tp-body .tp-packpop{width:min(420px,calc(100vw - 24px));max-width:none;padding:0;border-radius:18px;border:1px solid #e1e9e5;overflow:hidden;
  box-shadow:0 30px 60px -28px rgba(11,31,25,.45),0 2px 6px -3px rgba(11,31,25,.12);animation:tpPopIn .22s cubic-bezier(.25,.8,.25,1)}
body.tp-body .tp-packpop__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;background:#f4f8f6;border-bottom:1px solid #e6eeea}
body.tp-body .tp-packpop__head b{margin:0;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--tp-forest);font-weight:700}
body.tp-body .tp-packpop__head em{font-style:normal;font-size:12.5px;font-weight:600;color:#fff;background:var(--tp-forest);padding:3px 10px;border-radius:999px}
body.tp-body .tp-packpop ol{list-style:none;margin:0;padding:8px 10px;display:grid;gap:2px;max-height:360px;overflow:auto}
body.tp-body .tp-packpop li{display:flex;align-items:flex-start;gap:12px;padding:9px 8px;border-radius:12px;font-size:14px;line-height:1.35;color:var(--tp-text)}
body.tp-body .tp-packpop li:hover{background:#f4f8f6}
body.tp-body .tp-packpop li::marker{content:none}
body.tp-body .tp-packpop li small{display:block;margin-top:2px;font-size:12.5px;color:var(--tp-muted)}
body.tp-body .tp-packpop i{padding:0 18px 6px}
body.tp-body .tp-packpop__go{margin:0;padding:12px 18px;border-top:1px solid #e6eeea;font-size:13.5px;font-weight:600;color:var(--tp-forest);background:#fff}
body.tp-body .tp-packbtn.is-empty{opacity:.9;filter:saturate(.7)}
body.tp-body .tp-packbtn.is-shake{animation:tpShake .5s cubic-bezier(.36,.07,.19,.97) both}
@media (prefers-reduced-motion:reduce){
body.tp-body .tp-packbtn.is-shake{animation:none;outline:2px solid var(--tp-gold)}
}
body.tp-body .tp-packpop{width:min(520px,calc(100vw - 24px));border-radius:22px;border:1px solid #e3eae6;
  box-shadow:0 34px 70px -30px rgba(11,31,25,.42),0 6px 18px -8px rgba(11,31,25,.12);animation:tpPpIn .18s ease-out}
body.tp-body .tp-packpop::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
body.tp-body .tp-pp__list{list-style:none;margin:0;padding:8px;display:grid;gap:2px;max-height:min(440px,55vh);overflow:auto}
body.tp-body .tp-pp__list li{display:block;padding:0}
body.tp-body:has(.tp-pack.has-enav:not([hidden])){background:#f3f6f4}
body.tp-body .tp-save{position:relative;gap:0;min-width:132px;justify-content:center;transition:background .3s,box-shadow .3s,gap .25s,padding .25s}
body.tp-body .tp-save.is-saving,body.tp-body .tp-save.is-saved{gap:8px}
body.tp-body .tp-save.is-saving .tp-save__ic,body.tp-body .tp-save.is-saved .tp-save__ic{width:18px;opacity:1;margin-right:9px;align-self:center;box-sizing:border-box;flex:none}
body.tp-body .tp-save.is-saving{cursor:progress;opacity:1}
body.tp-body .tp-save.is-saving .tp-save__ic{border-radius:50%;border:2.2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:tpSpin .7s linear infinite}
body.tp-body .tp-save.is-saving .tp-save__ic svg{display:none}
body.tp-body .tp-save.is-saved{background:#1f7a55;box-shadow:0 0 0 4px rgba(47,166,122,.22)}
body.tp-body .tp-save.is-saved .tp-save__ic svg{animation:tpTick .45s cubic-bezier(.65,0,.35,1) .05s forwards}
@media (prefers-reduced-motion:reduce){
body.tp-body .tp-save.is-saving .tp-save__ic{animation:none}
body.tp-body .tp-save.is-saved .tp-save__ic svg{animation:none;stroke-dashoffset:0}
}
:root{--tp-topH:61px}
@media (max-width:980px){
:root{--tp-topH:57px}
}
