/*
 * Plantica VNext
 * A single, scoped product language for the complete WordPress application.
 * This file intentionally loads after the legacy styles while screens migrate
 * to the ptx-* component layer.
 */

@font-face{
  font-family:Peyda;
  src:url("../fonts/peyda400.woff") format("woff");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:Peyda;
  src:url("../fonts/peyda500.woff") format("woff");
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:Peyda;
  src:url("../fonts/peyda600.woff") format("woff");
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face{
  font-family:Peyda;
  src:url("../fonts/peyda700.woff") format("woff");
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@font-face{
  font-family:Peyda;
  src:url("../fonts/peyda800.woff") format("woff");
  font-style:normal;
  font-weight:800;
  font-display:swap;
}

/* Product foundations */
.pt-app{
  --ptx-forest-950:#0c2119;
  --ptx-forest-900:#123126;
  --ptx-forest-800:#173d2f;
  --ptx-forest-700:#20543f;
  --ptx-primary:#2b7658;
  --ptx-primary-hover:#236448;
  --ptx-leaf:#75ad7a;
  --ptx-mint:#ddecdf;
  --ptx-mint-soft:#eef5ef;
  --ptx-lime:#ddea71;
  --ptx-lime-soft:#f4f8d9;
  --ptx-clay:#d86e5e;
  --ptx-clay-soft:#fbeae6;
  --ptx-blue:#5970d8;
  --ptx-blue-soft:#edf0fb;
  --ptx-amber:#bc772b;
  --ptx-amber-soft:#fff1da;
  --ptx-danger:#bd4652;
  --ptx-danger-soft:#fcecef;
  --ptx-ink:#17231e;
  --ptx-text:#34433c;
  --ptx-muted:#68756e;
  --ptx-subtle:#8e9993;
  --ptx-canvas:#f6f5f0;
  --ptx-canvas-deep:#efeee8;
  --ptx-surface:#fff;
  --ptx-surface-soft:#fbfbf8;
  --ptx-line:#dde3de;
  --ptx-line-strong:#cfd8d1;
  --ptx-focus:rgba(43,118,88,.22);
  --ptx-shadow-xs:0 2px 8px rgba(18,49,38,.045);
  --ptx-shadow-sm:0 8px 24px rgba(18,49,38,.07);
  --ptx-shadow-md:0 18px 45px rgba(18,49,38,.115);
  --ptx-shadow-float:0 13px 30px rgba(18,49,38,.16);
  --ptx-r-sm:12px;
  --ptx-r-md:16px;
  --ptx-r-lg:22px;
  --ptx-r-xl:28px;
  --ptx-ease:cubic-bezier(.2,.8,.2,1);
  --pt-green:var(--ptx-primary);
  --pt-green-dark:var(--ptx-forest-900);
  --pt-green-pale:var(--ptx-mint-soft);
  --pt-pink:var(--ptx-clay);
  --pt-pink-pale:var(--ptx-clay-soft);
  --pt-ai:var(--ptx-blue);
  --pt-ai-pale:var(--ptx-blue-soft);
  --pt-signal:var(--ptx-lime);
  --pt-ink:var(--ptx-ink);
  --pt-muted:var(--ptx-muted);
  --pt-bg:var(--ptx-canvas);
  --pt-card:var(--ptx-surface);
  --pt-line:var(--ptx-line);
  --pt-line-strong:var(--ptx-line-strong);
  --pt-shadow:var(--ptx-shadow-sm);
  --pt-shadow-soft:var(--ptx-shadow-xs);
  --pt-radius:var(--ptx-r-md);
  background:#e7e9e4;
  color:var(--ptx-ink);
  font-family:Peyda,Tahoma,Arial,sans-serif;
  font-size:14px;
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.pt-app,
.pt-app *,
.pt-app *::before,
.pt-app *::after{box-sizing:border-box}
.pt-app :where(button,input,select,textarea){
  margin:0;
  color:inherit;
  font:inherit;
  letter-spacing:0;
}
.pt-app :where(button,[role="button"]){
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.pt-app :where(button:not(.pt-measure-handle):not(.pt-shutter),a,[role="button"],input,select){
  min-height:44px;
}
.pt-app :where(button,input,select,textarea):focus{outline:none}
.pt-app :where(button,input,select,textarea,a):focus-visible{
  outline:3px solid var(--ptx-focus);
  outline-offset:2px;
}
.pt-app :where(h1,h2,h3,h4,p){overflow-wrap:anywhere}
.pt-app :where(img,svg){max-width:100%}
.pt-app :where(small,time,.pt-help){font-size:12px}
.pt-app [hidden]{display:none!important}

html body.plantica-app-page{
  overflow:hidden!important;
  background:#e7e9e4!important;
}
.pt-app-frame,
.pt-splash{
  width:100%;
  max-width:430px;
  min-height:100dvh;
  background:var(--ptx-canvas);
  box-shadow:0 0 56px rgba(12,33,25,.13);
}
.pt-main{
  height:100dvh;
  padding-bottom:calc(88px + env(safe-area-inset-bottom));
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  background:var(--ptx-canvas);
  scrollbar-width:none;
  scroll-behavior:smooth;
}
.pt-main::-webkit-scrollbar{display:none}
.pt-screen{
  min-height:100%;
  padding:calc(16px + env(safe-area-inset-top)) 18px 34px;
  background:transparent;
}
.pt-screen.pt-camera-screen{
  height:100dvh;
  padding:0;
  background:var(--ptx-forest-950);
}

/* Brand splash */
.pt-splash{
  isolation:isolate;
  background:
    radial-gradient(circle at 19% 19%,rgba(117,173,122,.16) 0 8%,transparent 8.5%),
    radial-gradient(circle at 83% 77%,rgba(221,234,113,.14) 0 12%,transparent 12.5%),
    linear-gradient(160deg,#fcfcf8 0%,#eff4ed 100%);
  color:var(--ptx-forest-900);
}
.pt-splash::before{
  content:"";
  position:absolute;
  inset:12%;
  z-index:-1;
  border:1px solid rgba(43,118,88,.08);
  border-radius:50%;
  transform:rotate(-13deg);
}
.pt-splash .pt-logo-mark{
  filter:drop-shadow(0 14px 22px rgba(43,118,88,.16));
  transform:scale(.94);
}
.pt-splash .pt-logo-mark::before,
.pt-splash .pt-logo-mark span{background:var(--ptx-primary)}
.pt-splash .pt-logo-mark span:nth-child(3){background:#87bd8d}
.pt-splash h1{
  margin:20px 0 2px;
  color:var(--ptx-forest-900);
  font-family:Peyda,Tahoma,sans-serif!important;
  font-size:40px;
  font-weight:800;
  letter-spacing:-1.5px!important;
}
.pt-splash p{
  margin:0 0 30px;
  color:var(--ptx-muted);
  font-family:Peyda,Tahoma,sans-serif!important;
  font-size:14px;
  font-weight:500;
}
.pt-loader{gap:7px}
.pt-loader i{width:7px;height:7px;background:var(--ptx-primary)}

/* Main navigation */
.pt-bottom-nav{
  position:absolute;
  inset-inline:0;
  bottom:0;
  z-index:50;
  width:auto;
  height:calc(82px + env(safe-area-inset-bottom));
  padding:8px 7px max(8px,env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:center;
  border:0;
  border-top:1px solid rgba(207,216,209,.86);
  background:rgba(255,255,253,.94);
  box-shadow:0 -12px 34px rgba(18,49,38,.07);
  backdrop-filter:blur(20px) saturate(140%);
}
.pt-bottom-nav button{
  position:relative;
  min-width:0;
  min-height:58px;
  padding:6px 1px 3px;
  gap:2px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:14px;
  background:transparent;
  color:#8d9992;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
  transition:color .2s var(--ptx-ease),background .2s var(--ptx-ease),transform .2s var(--ptx-ease);
}
.pt-bottom-nav button::after{display:none!important}
.pt-bottom-nav button:active{transform:scale(.96)}
.pt-bottom-nav button.is-active{
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.pt-bottom-nav .pt-icon{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  font-size:0;
}
.pt-bottom-nav .pt-icon .pt-svg{
  width:23px;
  height:23px;
  stroke-width:1.9;
}
.pt-bottom-nav b{
  max-width:100%;
  overflow:hidden;
  font-size:12px;
  font-weight:600;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pt-camera-nav{
  width:58px!important;
  height:58px!important;
  min-height:58px!important;
  justify-self:center;
  padding:0!important;
  border:5px solid #fff!important;
  border-radius:20px!important;
  background:var(--ptx-forest-800)!important;
  color:#fff!important;
  transform:translateY(-15px)!important;
  box-shadow:0 8px 0 var(--ptx-mint),0 17px 28px rgba(18,49,38,.22)!important;
  overflow:visible!important;
}
.pt-camera-nav .pt-icon{
  width:28px!important;
  height:28px!important;
  border:0!important;
}
.pt-camera-nav .pt-icon::before,
.pt-camera-nav .pt-icon::after{content:none!important}
.pt-camera-nav .pt-icon .pt-svg{width:27px;height:27px;stroke-width:1.8}
.pt-camera-nav>b{
  position:absolute;
  top:64px;
  left:50%;
  display:block!important;
  color:var(--ptx-muted);
  font-size:12px;
  line-height:1;
  transform:translateX(-50%);
}
.pt-bottom-nav.is-camera-hidden{display:none}
.pt-app-frame:has(.pt-bottom-nav.is-camera-hidden) .pt-main{padding-bottom:0}

/* Shared ptx primitives */
.ptx-page{padding-bottom:16px}
.ptx-page-header{
  min-height:68px;
  margin:0 0 18px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  gap:10px;
  align-items:start;
}
.ptx-page-heading{
  min-width:0;
  padding-top:2px;
  text-align:center;
}
.ptx-page-heading>span{
  display:block;
  margin-bottom:1px;
  color:var(--ptx-primary);
  font-size:12px;
  font-weight:700;
  line-height:1.4;
}
.ptx-page-heading h1{
  margin:0;
  color:var(--ptx-ink);
  font-size:24px;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.45px;
}
.ptx-page-heading p{
  max-width:280px;
  margin:4px auto 0;
  color:var(--ptx-muted);
  font-size:13px;
  line-height:1.65;
}
.ptx-header-button,
.ptx-header-spacer{
  width:44px;
  height:44px;
}
.ptx-header-button{
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid var(--ptx-line);
  border-radius:14px;
  background:rgba(255,255,255,.86);
  color:var(--ptx-forest-800);
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-header-button .pt-svg{width:21px;height:21px}
.ptx-section-header{
  min-height:52px;
  margin:26px 1px 12px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
}
.ptx-section-header>div{min-width:0}
.ptx-section-header>div>span{
  display:block;
  margin-bottom:1px;
  color:var(--ptx-primary);
  font-size:12px;
  font-weight:700;
}
.ptx-section-header h2{
  margin:0;
  color:var(--ptx-ink);
  font-size:18px;
  font-weight:800;
  line-height:1.45;
  letter-spacing:-.25px;
}
.ptx-section-header p{
  margin:3px 0 0;
  color:var(--ptx-muted);
  font-size:13px;
  line-height:1.6;
}
.ptx-section-header>button,
.ptx-section-header>a{
  min-height:44px;
  padding:0 3px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex:none;
  border:0;
  background:transparent;
  color:var(--ptx-primary);
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}
.ptx-section-header>button .pt-svg,
.ptx-section-header>a .pt-svg{
  width:16px;
  height:16px;
  transform:rotate(180deg);
}
.ptx-avatar{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  flex:none;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:16px;
  background:linear-gradient(145deg,var(--ptx-mint),#c6dfca);
  color:var(--ptx-forest-800);
  box-shadow:0 0 0 1px var(--ptx-line),var(--ptx-shadow-xs);
}
.ptx-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.ptx-avatar b{font-size:20px;font-weight:800}
.ptx-avatar.is-large{width:82px;height:82px;border-radius:25px}
.ptx-avatar.is-large b{font-size:32px}
.ptx-status{
  min-height:28px;
  padding:4px 10px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid transparent;
  border-radius:999px;
  background:#f0f2ef;
  color:var(--ptx-muted);
  font-size:12px;
  font-weight:700;
  line-height:1.2;
}
.ptx-status>i{width:7px;height:7px;border-radius:50%;background:currentColor}
.ptx-status .pt-svg{width:14px;height:14px}
.ptx-status.is-healthy,
.ptx-status.is-success{border-color:#d8e9dc;background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.ptx-status.is-attention,
.ptx-status.is-warning{border-color:#f1dfc5;background:var(--ptx-amber-soft);color:#9b601e}
.ptx-status.is-danger{border-color:#efd4d8;background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.ptx-status.is-ai{border-color:#dadff4;background:var(--ptx-blue-soft);color:var(--ptx-blue)}
.ptx-button{
  min-height:50px;
  padding:0 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  border-radius:15px;
  font-size:14px;
  font-weight:700;
  line-height:1.25;
  transition:transform .16s var(--ptx-ease),box-shadow .16s var(--ptx-ease),background .16s var(--ptx-ease);
}
.ptx-button:active{transform:translateY(1px) scale(.99)}
.ptx-button .pt-svg{width:19px;height:19px}
.ptx-button .pt-svg:last-child{margin-right:auto;transform:rotate(180deg)}
.ptx-button.is-primary{
  background:var(--ptx-forest-800);
  color:#fff;
  box-shadow:0 10px 22px rgba(23,61,47,.18);
}
.ptx-button.is-primary:hover{background:var(--ptx-forest-900)}
.ptx-button.is-secondary{border-color:var(--ptx-line-strong);background:#fff;color:var(--ptx-forest-800)}
.ptx-button.is-soft{border-color:#d9e8dd;background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.ptx-button.is-danger{border-color:#f0d5da;background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.ptx-button.is-wide{width:100%}
.ptx-card{
  border:1px solid var(--ptx-line);
  border-radius:var(--ptx-r-lg);
  background:var(--ptx-surface);
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-empty-state{
  min-height:370px;
  padding:38px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ptx-line);
  border-radius:var(--ptx-r-xl);
  background:
    radial-gradient(circle at 50% 35%,rgba(117,173,122,.13),transparent 37%),
    var(--ptx-surface);
  text-align:center;
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-empty-icon{
  width:82px;
  height:82px;
  margin-bottom:18px;
  display:grid;
  place-items:center;
  border:1px solid #d9e7dc;
  border-radius:27px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
  transform:rotate(-4deg);
}
.ptx-empty-icon .pt-svg{width:38px;height:38px;transform:rotate(4deg)}
.ptx-empty-state>small{
  color:var(--ptx-primary);
  font-size:12px;
  font-weight:700;
}
.ptx-empty-state h2{
  margin:4px 0 7px;
  font-size:21px;
  font-weight:800;
  line-height:1.45;
}
.ptx-empty-state p{
  max-width:290px;
  margin:0 0 20px;
  color:var(--ptx-muted);
  font-size:14px;
  line-height:1.75;
}
.ptx-empty-state .ptx-button{min-width:210px}
.ptx-metric{
  min-height:76px;
  padding:13px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:11px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface);
}
.ptx-metric>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.ptx-metric>span .pt-svg{width:21px;height:21px}
.ptx-metric small,
.ptx-metric strong{display:block}
.ptx-metric small{color:var(--ptx-muted);font-size:12px}
.ptx-metric strong{font-size:18px;font-weight:800;line-height:1.25}
.ptx-metric strong em{color:var(--ptx-muted);font-size:12px;font-style:normal;font-weight:600}
.ptx-metric.is-warning>span{background:var(--ptx-amber-soft);color:var(--ptx-amber)}
.ptx-metric.is-danger>span{background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.ptx-loading-state{
  min-height:390px;
  padding:42px 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.ptx-loading-mark{
  width:78px;
  height:78px;
  margin-bottom:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid #d7e6db;
  border-radius:27px;
  background:var(--ptx-mint-soft);
}
.ptx-loading-mark i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ptx-primary);
  animation:ptx-loading 1s ease-in-out infinite;
}
.ptx-loading-mark i:nth-child(2){animation-delay:.14s}
.ptx-loading-mark i:nth-child(3){animation-delay:.28s}
.ptx-loading-state h2{margin:0 0 5px;font-size:20px}
.ptx-loading-state p{margin:0;color:var(--ptx-muted);font-size:14px}
.ptx-notice{
  min-height:74px;
  padding:13px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:11px;
  align-items:start;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface-soft);
}
.ptx-notice>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#ecefeb;
  color:var(--ptx-muted);
}
.ptx-notice>span .pt-svg{width:21px;height:21px}
.ptx-notice strong{display:block;font-size:14px;font-weight:800}
.ptx-notice p{margin:2px 0 0;color:var(--ptx-muted);font-size:13px;line-height:1.65}
.ptx-notice.is-success{border-color:#d7e7db;background:var(--ptx-mint-soft)}
.ptx-notice.is-success>span{background:#dbeade;color:var(--ptx-primary)}
.ptx-notice.is-warning{border-color:#efdcc0;background:var(--ptx-amber-soft)}
.ptx-notice.is-warning>span{background:#f5dfbf;color:var(--ptx-amber)}
.ptx-notice.is-danger{border-color:#eed4d8;background:var(--ptx-danger-soft)}
.ptx-notice.is-danger>span{background:#f4dadd;color:var(--ptx-danger)}

/* Home */
.ptx-home-header{
  min-height:58px;
  margin:0 0 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ptx-home-profile{
  min-width:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  background:transparent;
  text-align:right;
}
.ptx-home-profile .ptx-avatar{width:46px;height:46px;border-radius:15px}
.ptx-home-profile>span:last-child{min-width:0}
.ptx-home-profile small,
.ptx-home-profile strong{display:block}
.ptx-home-profile small{color:var(--ptx-muted);font-size:12px;line-height:1.3}
.ptx-home-profile strong{
  max-width:130px;
  margin-top:1px;
  overflow:hidden;
  font-size:15px;
  font-weight:800;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ptx-home-brand{
  display:flex;
  align-items:center;
  gap:8px;
  flex:none;
  text-align:left;
}
.ptx-home-brand>span{direction:ltr}
.ptx-home-brand small,
.ptx-home-brand strong{display:block}
.ptx-home-brand small{color:var(--ptx-primary);font-size:12px;font-weight:800;letter-spacing:1.2px}
.ptx-home-brand strong{color:var(--ptx-ink);font-size:14px;font-weight:800;line-height:1.15}
.ptx-brand-mark{width:38px!important;height:38px!important;border-radius:12px!important}
.ptx-today-card{
  position:relative;
  min-height:292px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:var(--ptx-forest-900);
  box-shadow:var(--ptx-shadow-md);
  isolation:isolate;
}
.ptx-today-card>img{
  position:absolute;
  inset:0;
  z-index:-3;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.ptx-today-shade{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(11,30,23,.12),rgba(11,30,23,.48) 44%,rgba(11,30,23,.95) 100%),
    linear-gradient(0deg,rgba(8,22,17,.9),transparent 62%);
}
.ptx-today-card::after{
  content:"";
  position:absolute;
  left:-55px;
  bottom:-75px;
  z-index:-1;
  width:190px;
  height:190px;
  border:1px solid rgba(221,234,113,.16);
  border-radius:50%;
  box-shadow:0 0 0 24px rgba(221,234,113,.025),0 0 0 52px rgba(221,234,113,.018);
}
.ptx-today-copy{
  width:76%;
  min-height:292px;
  padding:21px 20px 19px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  color:#fff;
  text-align:right;
}
.ptx-today-meta{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
}
.ptx-today-meta>span,
.ptx-today-meta>button{
  min-height:30px;
  padding:5px 9px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:#eef5f0;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  backdrop-filter:blur(9px);
}
.ptx-today-meta>button{border-color:rgba(221,234,113,.23);color:#f1f7bd}
.ptx-today-meta .pt-svg{width:14px;height:14px}
.ptx-today-copy h1{
  margin:26px 0 8px;
  color:#fff;
  font-size:26px;
  font-weight:800;
  line-height:1.42;
  letter-spacing:-.65px;
}
.ptx-today-copy p{
  max-width:280px;
  margin:0;
  color:rgba(245,250,247,.76);
  font-size:13px;
  line-height:1.75;
}
.ptx-today-cta{
  width:100%;
  min-height:48px;
  margin-top:auto;
  padding:0 14px;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:14px;
  background:var(--ptx-lime);
  color:var(--ptx-forest-950);
  font-size:14px;
  font-weight:800;
  box-shadow:0 10px 24px rgba(8,22,17,.2);
}
.ptx-today-cta .pt-svg{width:18px;height:18px;margin-right:auto;transform:rotate(180deg)}
.ptx-ai-station{
  margin-top:14px;
  padding:17px;
  overflow:hidden;
  border:1px solid #d8dde9;
  border-radius:22px;
  background:
    radial-gradient(circle at 0 0,rgba(89,112,216,.12),transparent 36%),
    linear-gradient(145deg,#fbfcff,#f5f6fb);
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-ai-station>header{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:12px;
  align-items:start;
}
.ptx-ai-mark{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid #d7dcf2;
  border-radius:15px;
  background:#fff;
  color:var(--ptx-blue);
  box-shadow:0 7px 17px rgba(89,112,216,.1);
}
.ptx-ai-mark .pt-svg{width:24px;height:24px}
.ptx-ai-station header small{
  display:block;
  color:var(--ptx-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.7px;
}
.ptx-ai-station header h2{margin:1px 0 2px;font-size:17px;font-weight:800;line-height:1.5}
.ptx-ai-station header p{margin:0;color:var(--ptx-muted);font-size:13px;line-height:1.65}
.ptx-ai-station>div{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.ptx-ai-station>div>button{
  min-width:0;
  min-height:112px;
  padding:12px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 16px;
  grid-template-rows:auto auto;
  column-gap:8px;
  align-items:center;
  border:1px solid #dde1ed;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  color:var(--ptx-ink);
  text-align:right;
}
.ptx-ai-station>div>button>span{
  width:34px;
  height:34px;
  grid-row:1/3;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--ptx-blue-soft);
  color:var(--ptx-blue);
}
.ptx-ai-station>div>button>span .pt-svg{width:18px;height:18px}
.ptx-ai-station>div>button>strong{align-self:end;font-size:13px;font-weight:800;line-height:1.4}
.ptx-ai-station>div>button>small{align-self:start;color:var(--ptx-muted);font-size:12px;line-height:1.45}
.ptx-ai-station>div>button>.pt-svg{
  width:15px;
  height:15px;
  grid-column:3;
  grid-row:1/3;
  color:var(--ptx-blue);
  transform:rotate(180deg);
}
.ptx-home-plants{
  display:grid;
  gap:9px;
}
.ptx-home-plant{
  width:100%;
  min-height:88px;
  padding:9px;
  display:grid;
  grid-template-columns:70px minmax(0,1fr) 22px;
  gap:11px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  text-align:right;
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-home-plant>img{
  width:70px;
  height:70px;
  display:block;
  border-radius:14px;
  background:var(--ptx-mint);
  object-fit:cover;
}
.ptx-home-plant-copy{min-width:0}
.ptx-home-plant-copy>*{display:block}
.ptx-home-plant-copy strong{
  overflow:hidden;
  font-size:15px;
  font-weight:800;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ptx-home-plant-copy small{
  margin-top:1px;
  overflow:hidden;
  color:var(--ptx-muted);
  font-size:12px;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ptx-home-plant-copy em{
  margin-top:7px;
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--ptx-muted);
  font-size:12px;
  font-style:normal;
  font-weight:600;
  line-height:1.3;
}
.ptx-home-plant-copy em i{width:7px;height:7px;border-radius:50%;background:currentColor}
.ptx-home-plant-copy em.is-healthy{color:var(--ptx-primary)}
.ptx-home-plant-copy em.is-attention{color:var(--ptx-amber)}
.ptx-home-plant>.pt-svg{width:18px;height:18px;color:var(--ptx-subtle);transform:rotate(180deg)}
.ptx-tool-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.ptx-tool-card{
  min-width:0;
  min-height:136px;
  padding:14px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 16px;
  grid-template-rows:44px auto auto;
  column-gap:9px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:19px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  text-align:right;
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-tool-card>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.ptx-tool-card:nth-child(2)>span{background:var(--ptx-clay-soft);color:var(--ptx-clay)}
.ptx-tool-card:nth-child(3)>span{background:var(--ptx-amber-soft);color:var(--ptx-amber)}
.ptx-tool-card:nth-child(4)>span{background:var(--ptx-blue-soft);color:var(--ptx-blue)}
.ptx-tool-card>span .pt-svg{width:21px;height:21px}
.ptx-tool-card>strong{
  grid-column:1/4;
  align-self:end;
  margin-top:7px;
  font-size:14px;
  font-weight:800;
  line-height:1.45;
}
.ptx-tool-card>small{
  grid-column:1/4;
  align-self:start;
  margin-top:2px;
  color:var(--ptx-muted);
  font-size:12px;
  line-height:1.5;
}
.ptx-tool-card>.pt-svg{
  width:16px;
  height:16px;
  grid-column:3;
  grid-row:1;
  color:var(--ptx-subtle);
  transform:rotate(180deg);
}
.ptx-editorial-row{
  margin-inline:-18px;
  padding:0 18px 5px;
  display:flex;
  gap:11px;
  overflow-x:auto;
  scroll-padding-inline:18px;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.ptx-editorial-row::-webkit-scrollbar{display:none}
.ptx-editorial-row .pt-studio-editorial-card{
  min-width:264px;
  min-height:106px;
  scroll-snap-align:start;
}

/* VNext lists, tabs and filters */
.ptx-tabs,
.ptx-segmented{
  min-height:48px;
  margin:0 0 16px;
  padding:4px;
  display:flex;
  gap:3px;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-canvas-deep);
}
.ptx-tabs button,
.ptx-segmented button{
  min-width:0;
  min-height:40px;
  padding:6px 9px;
  flex:1;
  border:0;
  border-radius:12px;
  background:transparent;
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.ptx-tabs button.is-active,
.ptx-segmented button.is-active{
  background:#fff;
  color:var(--ptx-forest-800);
  box-shadow:0 3px 10px rgba(18,49,38,.07);
}
.ptx-filter-row,
.ptx-chip-row{
  margin:0 -18px 15px;
  padding:0 18px 4px;
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:none;
}
.ptx-filter-row::-webkit-scrollbar,
.ptx-chip-row::-webkit-scrollbar{display:none}
.ptx-filter-row button,
.ptx-chip-row button,
.ptx-chip{
  min-height:40px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  flex:none;
  border:1px solid var(--ptx-line);
  border-radius:999px;
  background:var(--ptx-surface);
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.ptx-filter-row button.is-active,
.ptx-chip-row button.is-active,
.ptx-chip.is-active{
  border-color:var(--ptx-forest-800);
  background:var(--ptx-forest-800);
  color:#fff;
}
.ptx-filter-row .pt-svg,
.ptx-chip-row .pt-svg{width:16px;height:16px}
.ptx-plant-list,
.ptx-list{display:grid;gap:10px}
.ptx-plant-card{
  width:100%;
  min-height:112px;
  padding:10px;
  display:grid;
  grid-template-columns:92px minmax(0,1fr) 24px;
  gap:12px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:20px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  text-align:right;
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-plant-card-media{
  position:relative;
  width:92px;
  height:92px;
  overflow:hidden;
  border-radius:16px;
  background:var(--ptx-mint);
}
.ptx-plant-card-media img{width:100%;height:100%;display:block;object-fit:cover}
.ptx-plant-card-media>span{
  position:absolute;
  right:7px;
  bottom:7px;
  min-height:24px;
  padding:3px 7px;
  display:flex;
  align-items:center;
  border-radius:8px;
  background:rgba(255,255,255,.9);
  color:var(--ptx-primary);
  font-size:12px;
  font-weight:800;
  backdrop-filter:blur(7px);
}
.ptx-plant-card-copy{min-width:0}
.ptx-plant-card-copy h3{margin:0;font-size:16px;font-weight:800;line-height:1.45}
.ptx-plant-card-copy>p{
  margin:2px 0 7px;
  overflow:hidden;
  color:var(--ptx-muted);
  font-size:12px;
  line-height:1.45;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ptx-plant-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.ptx-plant-card>.pt-svg{width:19px;height:19px;color:var(--ptx-subtle);transform:rotate(180deg)}

/* Plant detail */
.ptx-plant-hero{
  position:relative;
  height:304px;
  margin:-16px -18px 0;
  overflow:hidden;
  background:var(--ptx-forest-900);
}
.ptx-plant-hero>img{width:100%;height:100%;display:block;object-fit:cover}
.ptx-plant-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(9,25,19,.48),transparent 35%,rgba(9,25,19,.78));
}
.ptx-plant-hero-actions{
  position:absolute;
  inset-inline:16px;
  top:calc(14px + env(safe-area-inset-top));
  z-index:2;
  display:flex;
  justify-content:space-between;
  direction:ltr;
}
.ptx-plant-hero-actions button{
  width:44px;
  height:44px;
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  background:rgba(15,37,28,.44);
  color:#fff;
  backdrop-filter:blur(12px);
}
.ptx-plant-hero-actions .pt-svg{width:21px;height:21px}
.ptx-plant-identity{
  position:relative;
  z-index:2;
  margin:-73px 0 16px;
  padding:17px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:22px;
  background:rgba(255,255,253,.94);
  box-shadow:var(--ptx-shadow-md);
  backdrop-filter:blur(16px);
}
.ptx-plant-identity>small{display:block;color:var(--ptx-primary);font-size:12px;font-weight:700}
.ptx-plant-identity h1{margin:1px 0 0;font-size:25px;font-weight:800;line-height:1.35}
.ptx-plant-identity>p{margin:2px 0 11px;color:var(--ptx-muted);font-size:13px;font-style:italic}
.ptx-plant-identity-meta{display:flex;flex-wrap:wrap;gap:7px}
.ptx-action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.ptx-action-card{
  min-height:94px;
  padding:12px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:9px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:17px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  text-align:right;
}
.ptx-action-card>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.ptx-action-card>span .pt-svg{width:19px;height:19px}
.ptx-action-card strong,
.ptx-action-card small{display:block}
.ptx-action-card strong{font-size:13px;font-weight:800}
.ptx-action-card small{margin-top:2px;color:var(--ptx-muted);font-size:12px;line-height:1.45}
.ptx-panel{
  padding:16px;
  border:1px solid var(--ptx-line);
  border-radius:20px;
  background:var(--ptx-surface);
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-panel+.ptx-panel{margin-top:10px}
.ptx-panel>header{
  margin-bottom:11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ptx-panel>header h2,
.ptx-panel>header h3{margin:0;font-size:16px;font-weight:800}
.ptx-panel>header>span{color:var(--ptx-muted);font-size:12px}
.ptx-health-summary{
  min-height:106px;
  padding:15px;
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:14px;
  align-items:center;
  border:1px solid #d4e5d8;
  border-radius:20px;
  background:linear-gradient(135deg,#f7fbf7,var(--ptx-mint-soft));
}
.ptx-score-ring{
  --score:80;
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(var(--ptx-primary) calc(var(--score)*1%),#dbe6dd 0);
}
.ptx-score-ring::before{
  content:"";
  width:62px;
  height:62px;
  grid-area:1/1;
  border-radius:50%;
  background:#fff;
}
.ptx-score-ring strong{position:relative;grid-area:1/1;font-size:19px;font-weight:800}
.ptx-health-summary h3{margin:0 0 3px;font-size:16px}
.ptx-health-summary p{margin:0;color:var(--ptx-muted);font-size:13px;line-height:1.6}
.ptx-care-grid,
.ptx-metric-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.ptx-care-item{
  min-height:108px;
  padding:13px;
  border:1px solid var(--ptx-line);
  border-radius:17px;
  background:var(--ptx-surface);
}
.ptx-care-item>span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.ptx-care-item>span .pt-svg{width:18px;height:18px}
.ptx-care-item strong{display:block;margin-top:8px;font-size:13px;font-weight:800}
.ptx-care-item p{margin:2px 0 0;color:var(--ptx-muted);font-size:12px;line-height:1.55}
.ptx-journal-list{display:grid;gap:9px}
.ptx-journal-item{
  min-height:76px;
  padding:12px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:11px;
  align-items:start;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface);
}
.ptx-journal-item>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--ptx-clay-soft);
  color:var(--ptx-clay);
}
.ptx-journal-item>span .pt-svg{width:20px;height:20px}
.ptx-journal-item h3{margin:0;font-size:14px;font-weight:800}
.ptx-journal-item p{margin:2px 0;color:var(--ptx-muted);font-size:13px;line-height:1.55}
.ptx-journal-item time{display:block;color:var(--ptx-subtle);font-size:12px}

/* Scan result */
.ptx-result-hero{
  position:relative;
  height:310px;
  margin:-16px -18px 0;
  overflow:hidden;
  background:linear-gradient(145deg,#cbdccd,var(--ptx-forest-700));
}
.ptx-result-hero>img{width:100%;height:100%;display:block;object-fit:cover}
.ptx-result-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,21,16,.52),transparent 33%,rgba(8,21,16,.84));
}
.ptx-result-hero .ptx-header-button{
  position:absolute;
  top:calc(14px + env(safe-area-inset-top));
  right:16px;
  z-index:2;
  border-color:rgba(255,255,255,.2);
  background:rgba(12,33,25,.44);
  color:#fff;
  backdrop-filter:blur(12px);
}
.ptx-result-hero-copy{
  position:absolute;
  inset-inline:18px;
  bottom:18px;
  z-index:2;
  color:#fff;
}
.ptx-result-hero-copy>span{
  min-height:29px;
  padding:4px 9px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(18,49,38,.44);
  font-size:12px;
  font-weight:700;
  backdrop-filter:blur(10px);
}
.ptx-result-hero-copy h1{margin:8px 0 0;color:#fff;font-size:27px;font-weight:800;line-height:1.35}
.ptx-result-hero-copy p{margin:2px 0 0;color:rgba(255,255,255,.78);font-size:13px}
.ptx-result-summary{
  position:relative;
  z-index:3;
  margin:-1px 0 12px;
  padding:15px 0 0;
}
.ptx-confidence-bar{
  height:8px;
  margin:9px 0 5px;
  overflow:hidden;
  border-radius:999px;
  background:#e3e8e4;
}
.ptx-confidence-bar>i{
  height:100%;
  display:block;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--ptx-leaf),var(--ptx-primary));
}
.ptx-result-section{
  margin-top:11px;
  padding:16px;
  border:1px solid var(--ptx-line);
  border-radius:20px;
  background:var(--ptx-surface);
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-result-section>header{
  margin-bottom:11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ptx-result-section h2{margin:0;font-size:17px;font-weight:800}
.ptx-issue-list{display:grid;gap:9px}
.ptx-issue-card{
  padding:13px;
  border:1px solid #eadfcf;
  border-radius:15px;
  background:#fffaf1;
}
.ptx-issue-card.is-severe{border-color:#efd5d9;background:var(--ptx-danger-soft)}
.ptx-issue-card h3{margin:0;font-size:14px;font-weight:800}
.ptx-issue-card p{margin:3px 0 0;color:var(--ptx-text);font-size:13px;line-height:1.65}
.ptx-result-actions{
  position:sticky;
  bottom:0;
  z-index:8;
  margin:18px -18px -34px;
  padding:12px 18px calc(14px + env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
  border-top:1px solid rgba(207,216,209,.9);
  background:rgba(246,245,240,.94);
  box-shadow:0 -10px 28px rgba(18,49,38,.07);
  backdrop-filter:blur(18px);
}

/* Care programme and reminders */
.ptx-care-overview{
  min-height:152px;
  padding:18px;
  overflow:hidden;
  border-radius:22px;
  background:
    radial-gradient(circle at 5% 105%,rgba(221,234,113,.16),transparent 36%),
    var(--ptx-forest-900);
  color:#fff;
  box-shadow:var(--ptx-shadow-md);
}
.ptx-care-overview>span{color:var(--ptx-lime);font-size:12px;font-weight:700}
.ptx-care-overview h2{margin:3px 0 5px;color:#fff;font-size:22px;font-weight:800}
.ptx-care-overview p{margin:0;color:rgba(255,255,255,.72);font-size:13px;line-height:1.7}
.ptx-care-overview-meta{
  margin-top:15px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.ptx-care-overview-meta span{
  min-height:31px;
  padding:5px 10px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:12px;
  font-weight:700;
}
.ptx-care-overview-meta .pt-svg{width:14px;height:14px}
.ptx-reminder-group{margin-top:18px}
.ptx-reminder-group>header{
  min-height:42px;
  margin-bottom:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ptx-reminder-group>header h2{margin:0;font-size:16px;font-weight:800}
.ptx-reminder-group>header span{color:var(--ptx-muted);font-size:12px}
.ptx-reminder-list{display:grid;gap:9px}
.ptx-reminder-row{
  width:100%;
  min-height:86px;
  padding:11px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 44px;
  gap:11px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  text-align:right;
  box-shadow:var(--ptx-shadow-xs);
}
.ptx-reminder-row.is-done{opacity:.68}
.ptx-reminder-row.is-done .ptx-reminder-copy strong{text-decoration:line-through}
.ptx-reminder-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#eaf3ec;
  color:var(--ptx-primary);
}
.ptx-reminder-icon.is-fertilize{background:var(--ptx-lime-soft);color:#72851c}
.ptx-reminder-icon.is-prune{background:var(--ptx-clay-soft);color:var(--ptx-clay)}
.ptx-reminder-icon.is-mist{background:var(--ptx-blue-soft);color:var(--ptx-blue)}
.ptx-reminder-icon .pt-svg{width:23px;height:23px}
.ptx-reminder-copy{min-width:0}
.ptx-reminder-copy strong{
  display:block;
  overflow:hidden;
  font-size:14px;
  font-weight:800;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ptx-reminder-copy p{margin:2px 0 0;color:var(--ptx-muted);font-size:12px;line-height:1.45}
.ptx-reminder-check{
  width:44px;
  height:44px;
  padding:0;
  display:grid;
  place-items:center;
  border:2px solid #bdd4c3;
  border-radius:15px;
  background:#fff;
  color:var(--ptx-primary);
}
.ptx-reminder-check.is-done{border-color:var(--ptx-primary);background:var(--ptx-primary);color:#fff}
.ptx-reminder-check .pt-svg{width:20px;height:20px}
.ptx-fab{
  position:sticky;
  bottom:8px;
  z-index:9;
  width:100%;
  min-height:52px;
  margin-top:18px;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:16px;
  background:var(--ptx-forest-800);
  color:#fff;
  font-size:14px;
  font-weight:800;
  box-shadow:var(--ptx-shadow-float);
}
.ptx-fab .pt-svg{width:20px;height:20px}

/* Forms */
.ptx-form{display:grid;gap:16px}
.ptx-field{display:block}
.ptx-field>label,
.ptx-field>span:first-child{
  display:block;
  margin:0 2px 6px;
  color:var(--ptx-ink);
  font-size:13px;
  font-weight:700;
}
.ptx-input,
.ptx-select,
.ptx-textarea{
  width:100%;
  min-height:52px;
  padding:12px 14px;
  border:1px solid var(--ptx-line-strong);
  border-radius:15px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  font-size:14px;
  transition:border .18s var(--ptx-ease),box-shadow .18s var(--ptx-ease),background .18s var(--ptx-ease);
}
.ptx-select{
  padding-left:42px;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2368756e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-position:left 14px center;
  background-repeat:no-repeat;
}
.ptx-textarea{min-height:124px;resize:vertical}
.ptx-input:focus,
.ptx-select:focus,
.ptx-textarea:focus{
  border-color:var(--ptx-primary);
  box-shadow:0 0 0 4px var(--ptx-focus);
}
.ptx-field-help{margin:5px 2px 0;color:var(--ptx-muted);font-size:12px;line-height:1.55}
.ptx-field-error{margin:5px 2px 0;color:var(--ptx-danger);font-size:12px;font-weight:600}
.ptx-option-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.ptx-option{
  min-height:74px;
  padding:11px;
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:9px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface);
  text-align:right;
}
.ptx-option>span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.ptx-option strong,
.ptx-option small{display:block}
.ptx-option strong{font-size:13px;font-weight:800}
.ptx-option small{color:var(--ptx-muted);font-size:12px;line-height:1.4}
.ptx-option.is-selected{border-color:var(--ptx-primary);background:var(--ptx-mint-soft);box-shadow:0 0 0 2px rgba(43,118,88,.08)}
.ptx-form-actions{
  margin-top:4px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
}

/* Profile and history */
.ptx-profile-hero{
  position:relative;
  min-height:190px;
  padding:22px;
  overflow:hidden;
  border-radius:24px;
  background:
    radial-gradient(circle at 10% 110%,rgba(221,234,113,.18),transparent 42%),
    linear-gradient(145deg,var(--ptx-forest-800),var(--ptx-forest-950));
  color:#fff;
  text-align:center;
  box-shadow:var(--ptx-shadow-md);
}
.ptx-profile-hero .ptx-avatar{width:78px;height:78px;margin:0 auto;border-radius:25px}
.ptx-profile-hero h1{margin:10px 0 1px;color:#fff;font-size:22px;font-weight:800}
.ptx-profile-hero p{margin:0;color:rgba(255,255,255,.7);font-size:13px}
.ptx-profile-stats{
  margin:-24px 12px 0;
  position:relative;
  z-index:2;
  min-height:76px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:var(--ptx-surface);
  box-shadow:var(--ptx-shadow-sm);
}
.ptx-profile-stats>div{
  min-width:0;
  padding:12px 6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.ptx-profile-stats>div+div{border-right:1px solid var(--ptx-line)}
.ptx-profile-stats strong{font-size:18px;font-weight:800;line-height:1.25}
.ptx-profile-stats span{color:var(--ptx-muted);font-size:12px}
.ptx-menu{display:grid;gap:8px}
.ptx-menu-item{
  width:100%;
  min-height:64px;
  padding:10px 12px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 20px;
  gap:10px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface);
  color:var(--ptx-ink);
  text-align:right;
}
.ptx-menu-item>span:first-child{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.ptx-menu-item>span:first-child .pt-svg{width:20px;height:20px}
.ptx-menu-item strong,
.ptx-menu-item small{display:block}
.ptx-menu-item strong{font-size:14px;font-weight:700}
.ptx-menu-item small{margin-top:1px;color:var(--ptx-muted);font-size:12px}
.ptx-menu-item>.pt-svg{width:18px;height:18px;color:var(--ptx-subtle);transform:rotate(180deg)}
.ptx-menu-item.is-danger>span:first-child{background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.ptx-menu-item.is-danger strong{color:var(--ptx-danger)}
.ptx-history-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.ptx-history-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:var(--ptx-surface);
}
.ptx-history-card>img{
  width:100%;
  height:126px;
  display:block;
  background:var(--ptx-mint);
  object-fit:cover;
}
.ptx-history-card>div{padding:11px}
.ptx-history-card strong{display:block;font-size:13px;font-weight:800;line-height:1.45}
.ptx-history-card time{display:block;margin-top:3px;color:var(--ptx-muted);font-size:12px}

/* Weather and utilities */
.ptx-weather-hero{
  min-height:250px;
  padding:20px;
  overflow:hidden;
  border-radius:24px;
  background:
    radial-gradient(circle at 13% 13%,rgba(255,255,255,.6) 0 6%,transparent 6.5%),
    linear-gradient(150deg,#dbe6c9,#86aa7b);
  color:var(--ptx-forest-950);
  box-shadow:var(--ptx-shadow-md);
}
.ptx-weather-hero>header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ptx-weather-hero>header span{font-size:13px;font-weight:700}
.ptx-weather-hero>strong{
  margin-top:28px;
  display:block;
  font-size:58px;
  font-weight:700;
  line-height:1;
  direction:ltr;
}
.ptx-weather-hero h1{margin:6px 0 0;font-size:23px;font-weight:800}
.ptx-weather-hero p{margin:2px 0 0;color:rgba(12,33,25,.7);font-size:13px}
.ptx-tool-hero{
  min-height:150px;
  padding:18px;
  overflow:hidden;
  border-radius:22px;
  background:
    radial-gradient(circle at 0 100%,rgba(221,234,113,.16),transparent 40%),
    var(--ptx-forest-900);
  color:#fff;
  box-shadow:var(--ptx-shadow-sm);
}
.ptx-tool-hero>span{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.13);
  border-radius:14px;
  background:rgba(255,255,255,.08);
  color:var(--ptx-lime);
}
.ptx-tool-hero>span .pt-svg{width:23px;height:23px}
.ptx-tool-hero h2{margin:11px 0 3px;color:#fff;font-size:20px;font-weight:800}
.ptx-tool-hero p{margin:0;color:rgba(255,255,255,.7);font-size:13px;line-height:1.7}

/* Upgrade legacy screens immediately while they migrate to ptx */
.pt-card{
  border-color:var(--ptx-line);
  border-radius:var(--ptx-r-md);
  background:var(--ptx-surface);
  box-shadow:var(--ptx-shadow-xs);
}
.pt-topbar{
  min-height:52px;
  margin-bottom:15px;
}
.pt-topbar h1{font-size:21px;font-weight:800}
.pt-topbar .pt-back,
.pt-icon-button{
  width:44px;
  height:44px;
  border:1px solid var(--ptx-line);
  border-radius:14px;
  background:#fff;
  color:var(--ptx-forest-800);
  box-shadow:var(--ptx-shadow-xs);
}
.pt-section-title{margin:25px 0 12px;font-size:19px;font-weight:800}
.pt-section-head{min-height:46px;margin:24px 0 10px}
.pt-section-head h2{font-size:18px;font-weight:800}
.pt-section-head button,
.pt-link{min-height:44px;color:var(--ptx-primary);font-size:13px;font-weight:700}
.pt-primary,
.pt-secondary,
.pt-danger-btn{
  min-height:50px;
  padding:0 19px;
  border-radius:15px;
  font-size:14px;
  font-weight:700;
}
.pt-primary{background:var(--ptx-forest-800);box-shadow:0 10px 22px rgba(23,61,47,.17)}
.pt-secondary{border-color:var(--ptx-line-strong);color:var(--ptx-forest-800)}
.pt-danger-btn{background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.pt-tabs,
.pt-studio-tabs{
  min-height:48px;
  padding:4px;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-canvas-deep);
}
.pt-tabs button,
.pt-studio-tabs button{
  min-height:40px;
  padding:6px 10px;
  border-radius:12px;
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.pt-tabs button.is-active,
.pt-studio-tabs button.is-active{
  background:#fff;
  color:var(--ptx-forest-800);
  box-shadow:0 3px 10px rgba(18,49,38,.07);
}
.pt-studio-page-header{min-height:76px;margin-bottom:15px}
.pt-studio-page-header>div>span{font-size:12px}
.pt-studio-page-header h1{font-size:24px}
.pt-studio-page-header p{font-size:13px;line-height:1.6}
.pt-studio-page-header>button{width:44px;height:44px;border-radius:14px}
.pt-studio-section-head{min-height:48px;margin:24px 1px 11px}
.pt-studio-section-head>div>span{font-size:12px}
.pt-studio-section-head h2{font-size:18px}
.pt-studio-section-head>button{min-height:44px;font-size:13px}
.pt-studio-brand strong{font-size:15px}
.pt-studio-brand span{font-size:12px}
.pt-studio-actions>button{width:44px;height:44px;border-radius:14px}
.pt-studio-primary-action{
  min-height:72px;
  padding:11px 13px;
  border-radius:17px;
}
.pt-studio-primary-action .pt-action-copy strong{font-size:14px}
.pt-studio-primary-action .pt-action-copy small{font-size:12px;line-height:1.45}
.pt-studio-utility{
  min-height:98px;
  padding:12px;
  border-radius:17px;
}
.pt-studio-utility strong{font-size:13px}
.pt-studio-utility small{font-size:12px;line-height:1.4}
.pt-studio-editorial-card{
  border-radius:18px;
}
.pt-studio-editorial-card .pt-editorial-content small{font-size:12px}
.pt-studio-editorial-card .pt-editorial-content strong{font-size:13px;line-height:1.5}
.pt-studio-editorial-card .pt-editorial-content em{font-size:12px}
.pt-studio-filter-row{
  min-height:46px;
  margin:0 -18px 14px;
  padding:0 18px 4px;
  gap:8px;
}
.pt-studio-filter-row button{
  min-height:40px;
  padding:0 15px;
  border-radius:999px;
  font-size:13px;
}
.pt-studio-plant-list{gap:10px}
.pt-studio-plant-card{
  min-height:116px;
  padding:10px;
  grid-template-columns:94px minmax(0,1fr) 22px;
  gap:12px;
  border-radius:20px;
}
.pt-studio-plant-cover{width:94px;height:94px;border-radius:16px}
.pt-studio-plant-card h3{font-size:16px}
.pt-studio-plant-card p,
.pt-studio-plant-card small{font-size:12px;line-height:1.45}
.pt-health-pill{
  min-height:28px;
  padding:4px 9px;
  font-size:12px;
}
.pt-studio-empty{padding-bottom:14px}
.pt-studio-empty-copy>span,
.pt-studio-reminder-empty>span{font-size:12px}
.pt-studio-empty-copy h2,
.pt-studio-reminder-empty h2{font-size:21px}
.pt-studio-empty-copy p,
.pt-studio-reminder-empty p{font-size:14px;line-height:1.75}
.pt-studio-empty-cta{min-height:50px;font-size:14px}
.pt-studio-reminder-media{height:232px;border-radius:21px}
.pt-studio-reminder-media>span{min-height:30px;padding:5px 9px;font-size:12px}
.pt-studio-symptom{
  min-height:77px;
  padding:11px;
  border-radius:16px;
}
.pt-studio-symptom strong{font-size:14px}
.pt-studio-symptom small{font-size:12px;line-height:1.45}
.pt-studio-diagnose-copy>span{min-height:30px;font-size:12px}
.pt-studio-diagnose-copy h2{font-size:24px}
.pt-studio-diagnose-copy p{font-size:13px;line-height:1.7}
.pt-studio-diagnose-copy>button{min-height:48px;font-size:14px}
.pt-studio-diagnose-steps{min-height:72px}
.pt-studio-diagnose-steps b{font-size:13px}
.pt-studio-diagnose-steps small{font-size:12px}
.pt-plant-card{
  min-height:108px;
  padding:10px;
  border-radius:19px;
}
.pt-plant-card h3{font-size:16px}
.pt-plant-card p{font-size:12px}
.pt-plant-thumb{width:88px;height:88px;border-radius:16px}
.pt-care-card{padding:16px;border-radius:18px}
.pt-care-card h3{font-size:15px}
.pt-care-card p{font-size:13px;line-height:1.65}
.pt-reminder-chip{min-height:76px;padding:12px}
.pt-reminder-chip b{font-size:14px}
.pt-reminder-chip small{font-size:12px}
.pt-journal{min-height:72px;padding:12px;border-radius:16px}
.pt-journal h4{font-size:14px}
.pt-journal p,
.pt-journal time{font-size:12px}
.pt-reminder-day{margin:19px 1px 8px;font-size:13px;font-weight:700}
.pt-reminder-row{
  min-height:82px;
  padding:11px;
  grid-template-columns:48px minmax(0,1fr) 44px;
  border-radius:18px;
}
.pt-reminder-row h3{font-size:14px}
.pt-reminder-row p{font-size:12px;line-height:1.45}
.pt-reminder-symbol{width:48px;height:48px;border-radius:15px}
.pt-check{width:44px;height:44px}
.pt-fab{min-height:52px;border-radius:16px;font-size:14px}
.pt-form{gap:16px}
.pt-field label{margin-bottom:6px;font-size:13px}
.pt-input,
.pt-select,
.pt-textarea{
  min-height:52px;
  padding:12px 14px;
  border-color:var(--ptx-line-strong);
  border-radius:15px;
  font-size:14px;
}
.pt-input:focus,
.pt-select:focus,
.pt-textarea:focus{
  border-color:var(--ptx-primary);
  box-shadow:0 0 0 4px var(--ptx-focus);
}
.pt-help{font-size:12px;line-height:1.55}
.pt-option-grid{gap:9px}
.pt-option{
  min-height:82px;
  padding:12px;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  box-shadow:none;
}
.pt-option b{font-size:13px}
.pt-option.is-selected{border-color:var(--ptx-primary);background:var(--ptx-mint-soft)}
.pt-weather-page .pt-city{font-size:16px}
.pt-weather-page .pt-temp-big{font-size:54px;color:var(--ptx-forest-800)}
.pt-weather-stat{min-height:108px;padding:15px}
.pt-weather-stat span{font-size:13px}
.pt-weather-stat strong{font-size:22px}
.pt-weather-alert{font-size:13px;line-height:1.65}
.pt-profile-hero{padding:21px;border-radius:21px}
.pt-profile-hero h1{font-size:22px}
.pt-profile-hero p{font-size:13px}
.pt-menu-item{
  min-height:62px;
  padding:0 14px;
  font-size:14px;
}
.pt-menu-item i{font-size:20px}
.pt-content-page h2{font-size:19px}
.pt-content-page p,
.pt-content-page li{font-size:14px;line-height:1.8}
.pt-step{padding:15px;border-radius:16px}

/* Measurement: preserve the professional calibration UI, restore legibility */
.pt-measure-page{padding-bottom:102px}
.pt-measure-hero{min-height:154px;padding:18px;border-radius:22px}
.pt-measure-hero-icon{width:48px;height:48px;border-radius:14px}
.pt-measure-hero small{font-size:12px}
.pt-measure-hero h2{font-size:19px}
.pt-measure-hero p{font-size:13px;line-height:1.7}
.pt-measure-workflow{gap:12px;margin-top:12px}
.pt-measure-panel{padding:14px;border-radius:20px}
.pt-measure-step-head{
  min-height:48px;
  grid-template-columns:36px minmax(0,1fr) auto;
  gap:10px;
}
.pt-measure-step-head>span{width:36px;height:36px;border-radius:11px;font-size:13px}
.pt-measure-step-head strong{font-size:14px}
.pt-measure-step-head small{font-size:12px;line-height:1.45}
.pt-measure-step-head em{min-height:28px;padding:4px 8px;font-size:12px}
.pt-measure-stage.is-empty{height:260px}
.pt-measure-stage.is-empty>strong{font-size:14px}
.pt-measure-stage.is-empty>small{font-size:12px;line-height:1.65}
.pt-measure-stage.is-ready{height:350px}
.pt-measure-line-label{
  min-height:25px;
  padding:4px 7px;
  display:flex;
  align-items:center;
  border-radius:7px;
  font-size:12px;
}
.pt-measure-photo-status,
.pt-measure-remove-photo{
  min-height:32px;
  padding-inline:9px;
  font-size:12px;
}
.pt-measure-photo-action{
  min-height:66px;
  padding:9px;
  grid-template-columns:38px minmax(0,1fr);
  gap:9px;
  border-radius:15px;
}
.pt-measure-photo-action>span{width:38px;height:38px;border-radius:11px}
.pt-measure-photo-action strong{font-size:13px}
.pt-measure-photo-action small{font-size:12px;line-height:1.4}
.pt-measure-photo-tips,
.pt-measure-drag-hint{font-size:12px;line-height:1.5}
.pt-measure-legend>div{
  min-height:62px;
  padding:9px;
  grid-template-columns:22px minmax(0,1fr);
  border-radius:13px;
}
.pt-measure-legend strong{font-size:13px}
.pt-measure-legend small{font-size:12px;line-height:1.4}
.pt-measure-stepper{height:68px}
.pt-measure-stepper button{min-height:52px;font-size:20px}
.pt-measure-stepper strong{font-size:20px}
.pt-measure-presets button{min-height:42px;font-size:13px}
.pt-measure-live{min-height:76px}
.pt-measure-live small{font-size:12px}
.pt-measure-live strong{font-size:24px}
.pt-measure-privacy{font-size:12px;line-height:1.55}
.pt-measure-result-card{border-radius:22px}
.pt-measure-result-head small,
.pt-measure-result-method,
.pt-measure-result-note{font-size:12px;line-height:1.6}
.pt-measure-result-value{font-size:38px}
.pt-measure-result-again{min-height:46px;font-size:13px}

/* Camera and light meter */
.pt-camera-hint{font-size:13px;line-height:1.55}
.pt-camera-mode-switch,
.pt-camera-mode{
  min-height:48px;
  padding:4px;
  border-radius:16px;
}
.pt-camera-mode-switch button,
.pt-camera-mode button{
  min-height:40px;
  padding:7px 14px;
  border-radius:12px;
  font-size:13px;
}
.pt-camera-quality,
.pt-camera-capture-meta,
.pt-camera-gallery-link{font-size:12px}
.pt-camera-control-dock{min-height:112px}
.pt-camera-gallery-link{min-width:56px;min-height:56px}
.pt-pro-camera-close{width:44px;height:44px}
.pt-shutter{width:74px;height:74px}
.pt-camera-fallback h2{font-size:21px}
.pt-camera-fallback p{font-size:14px;line-height:1.7}
.pt-ai-scan-kicker{font-size:12px}
.pt-ai-scan-loading h2{font-size:22px}
.pt-ai-scan-loading p{font-size:14px;line-height:1.7}
.pt-light-meter{height:100dvh;padding:20px}
.pt-light-circle{width:240px;height:240px}
.pt-light-circle span{font-size:46px}
.pt-light-result{padding:17px;border-radius:18px;font-size:14px}

/* Result and auth legacy upgrade */
.pt-result-photo{height:270px;border-radius:22px}
.pt-result-title h1{font-size:26px}
.pt-result-title p{font-size:13px}
.pt-confidence span{
  min-height:28px;
  padding:4px 10px;
  display:inline-flex;
  align-items:center;
  font-size:12px;
}
.pt-issue{padding:15px;border-radius:18px}
.pt-issue h3{font-size:15px}
.pt-issue .pt-severity{min-height:26px;padding:4px 8px;font-size:12px}
.pt-issue ul{font-size:13px;line-height:1.7}
.pt-modal-root{background:rgba(8,24,18,.53);backdrop-filter:blur(5px)}
.pt-modal{
  padding:10px 18px calc(22px + env(safe-area-inset-bottom));
  border-radius:28px 28px 0 0;
  background:var(--ptx-canvas);
  box-shadow:0 -18px 48px rgba(7,20,15,.24);
}
.pt-modal-handle{width:42px;height:5px;background:#c7d0ca}
.pt-modal h2{font-size:21px}
.pt-modal-close{width:44px;height:44px;border:1px solid var(--ptx-line);border-radius:14px}
.pt-auth-page,
.pt-login,
.pt-onboarding{background:var(--ptx-canvas)}
.pt-auth-content h1,
.pt-login h1{font-size:25px}
.pt-auth-content>p,
.pt-login>p,
.pt-login-message{font-size:14px;line-height:1.75}
.pt-auth-form label{font-size:13px}
.pt-phone-field{height:54px;border-color:var(--ptx-line-strong);border-radius:15px}
.pt-phone-field span,
.pt-phone-field input{font-size:14px}
.pt-terms{font-size:12px;line-height:1.55}
.pt-terms input{min-width:20px;min-height:20px}
.pt-otp-boxes{gap:7px}
.pt-otp-boxes input{
  width:48px;
  height:58px;
  border-color:var(--ptx-line-strong);
  border-radius:13px;
  font-size:22px;
}
.pt-otp-meta,
.pt-auth-assurance,
.pt-auth-footer{font-size:12px;line-height:1.6}
.pt-demo-code{font-size:13px}
.pt-onboard-heading{font-size:26px}
.pt-onboard-caption{font-size:14px;line-height:1.75}
.pt-onboard-value-row strong{font-size:14px}
.pt-onboard-value-row small{font-size:12px;line-height:1.5}
.pt-toast-region{
  top:max(16px,env(safe-area-inset-top));
  width:min(calc(100% - 28px),402px);
}
.pt-toast{
  min-height:48px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  border-radius:15px;
  background:var(--ptx-forest-900);
  font-size:13px;
  line-height:1.55;
}

/* Compact phones */
@media(max-width:370px){
  .pt-screen{padding-inline:14px}
  .ptx-editorial-row{margin-inline:-14px;padding-inline:14px;scroll-padding-inline:14px}
  .ptx-filter-row,
  .ptx-chip-row,
  .pt-studio-filter-row{margin-inline:-14px;padding-inline:14px}
  .ptx-today-copy{width:83%;padding-inline:16px}
  .ptx-today-copy h1{font-size:23px}
  .ptx-today-meta{align-items:flex-start;flex-direction:column}
  .ptx-ai-station>div{grid-template-columns:1fr}
  .ptx-ai-station>div>button{min-height:82px}
  .ptx-tool-grid,
  .ptx-care-grid,
  .ptx-metric-grid,
  .ptx-option-grid{grid-template-columns:1fr}
  .ptx-tool-card{min-height:106px}
  .ptx-plant-card{grid-template-columns:82px minmax(0,1fr) 20px}
  .ptx-plant-card-media{width:82px;height:82px}
  .ptx-result-actions{margin-inline:-14px;padding-inline:14px}
  .pt-bottom-nav{padding-inline:4px}
  .pt-bottom-nav button,
  .pt-bottom-nav b,
  .pt-camera-nav>b{font-size:12px}
}

/* Desktop preview: retain the deliberate mobile product frame */
@media(min-width:700px){
  .pt-app{padding:18px 0}
  .pt-app-frame,
  .pt-splash{
    height:calc(100dvh - 36px);
    min-height:calc(100dvh - 36px);
    overflow:hidden;
    border:1px solid rgba(207,216,209,.65);
    border-radius:30px;
  }
  .pt-main{height:calc(100dvh - 36px)}
  .pt-onboarding,
  .pt-login{
    top:18px;
    bottom:18px;
    border-radius:30px;
  }
  .pt-modal-root{padding-bottom:18px}
  .pt-modal{border-radius:28px;max-height:88dvh}
}

@media(prefers-reduced-motion:reduce){
  .pt-app *,
  .pt-app *::before,
  .pt-app *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}

@keyframes ptx-loading{
  0%,100%{opacity:.28;transform:translateY(0)}
  50%{opacity:1;transform:translateY(-5px)}
}

/* --------------------------------------------------------------------------
 * 0.8 markup alignment
 * These rules are deliberately last: every active route now shares the same
 * hierarchy, type scale, surfaces and interaction language.
 * -------------------------------------------------------------------------- */

.pt-app :where(.ptx-garden,.ptx-care-page,.ptx-add-reminder,.ptx-water-page,.ptx-weather-page,.ptx-scan-result){background:transparent}
.pt-app :where(.ptx-reminder-form,.ptx-water-form){width:100%}

.pt-app .ptx-subnav{
  margin:2px 0 18px;
  padding:4px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px;
  border:1px solid var(--ptx-line);
  border-radius:15px;
  background:rgba(255,255,255,.7);
}
.pt-app .ptx-subnav button{
  min-height:44px;
  padding:8px 11px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.pt-app .ptx-subnav button.is-active{
  background:var(--ptx-forest-900);
  color:#fff;
  box-shadow:var(--ptx-shadow-xs);
}
.pt-app .ptx-subnav .pt-svg{width:18px;height:18px}

.pt-app .ptx-filter-bar{
  margin:0 -18px 18px;
  padding:0 18px 2px;
  display:flex;
  gap:8px;
  overflow-x:auto;
  scroll-padding-inline:18px;
  scrollbar-width:none;
}
.pt-app .ptx-filter-bar::-webkit-scrollbar{display:none}
.pt-app .ptx-filter-bar button{
  min-height:44px;
  padding:8px 13px;
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  border:1px solid var(--ptx-line);
  border-radius:999px;
  background:#fff;
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.pt-app .ptx-filter-bar button b{
  min-width:23px;
  height:23px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--ptx-canvas-deep);
  color:var(--ptx-text);
  font-size:12px;
}
.pt-app .ptx-filter-bar button.is-active{
  border-color:var(--ptx-primary);
  background:var(--ptx-primary);
  color:#fff;
}
.pt-app .ptx-filter-bar button.is-active b{background:rgba(255,255,255,.2);color:#fff}

.pt-app .ptx-plant-list{display:grid;gap:11px}
.pt-app .ptx-plant-card{
  width:100%;
  min-height:120px;
  padding:10px;
  display:grid;
  grid-template-columns:96px minmax(0,1fr) 24px;
  gap:13px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--ptx-shadow-xs);
  text-align:start;
}
.pt-app .ptx-plant-card:active{transform:scale(.992)}
.pt-app .ptx-plant-card-media,
.pt-app .ptx-home-plant-media,
.pt-app .ptx-choice-media{
  overflow:hidden;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#dfeee1,#f2f5e8);
  color:var(--ptx-primary);
}
.pt-app .ptx-plant-card-media{
  width:96px;
  height:98px;
  border-radius:16px;
}
.pt-app .ptx-plant-card-media img,
.pt-app .ptx-home-plant-media img,
.pt-app .ptx-choice-media img{width:100%;height:100%;display:block;object-fit:cover}
.pt-app .ptx-plant-card-media.is-placeholder .pt-svg{width:34px;height:34px;opacity:.72}
.pt-app .ptx-plant-card-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.pt-app .ptx-plant-card-copy>.ptx-status{margin-bottom:5px}
.pt-app .ptx-plant-card-copy>strong{
  max-width:100%;
  overflow:hidden;
  color:var(--ptx-ink);
  font-size:16px;
  font-weight:800;
  line-height:1.5;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pt-app .ptx-plant-card-copy>small{
  max-width:100%;
  overflow:hidden;
  color:var(--ptx-muted);
  font-size:12px;
  line-height:1.55;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pt-app .ptx-plant-card-copy>em{
  max-width:100%;
  margin-top:8px;
  display:flex;
  align-items:center;
  gap:5px;
  overflow:hidden;
  color:var(--ptx-primary);
  font-size:12px;
  font-style:normal;
  font-weight:650;
  line-height:1.5;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pt-app .ptx-plant-card-copy>em .pt-svg{width:16px;height:16px;flex:0 0 auto}
.pt-app .ptx-card-arrow{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  color:var(--ptx-subtle);
  transform:rotate(180deg);
}
.pt-app .ptx-card-arrow .pt-svg{width:19px;height:19px}

.pt-app .ptx-home-plant-media{
  width:58px;
  height:58px;
  flex:0 0 58px;
  border-radius:17px;
}
.pt-app .ptx-home-plant-media.is-placeholder .pt-svg{width:26px;height:26px}

/* Plant record */
.pt-app .pt-screen.ptx-plant-detail{padding-top:0}
.pt-app .ptx-plant-hero{
  position:relative;
  min-height:340px;
  margin:calc(-1 * env(safe-area-inset-top)) -18px 0;
  overflow:hidden;
  border-radius:0 0 30px 30px;
  isolation:isolate;
  background:linear-gradient(145deg,#dcece0,#edf1e5);
}
.pt-app .ptx-plant-hero::after{display:none}
.pt-app .ptx-plant-hero-media{
  position:absolute;
  inset:0;
  z-index:-2;
  display:grid;
  place-items:center;
  color:var(--ptx-primary);
}
.pt-app .ptx-plant-hero-media img{width:100%;height:100%;display:block;object-fit:cover}
.pt-app .ptx-plant-hero-media.is-placeholder .pt-svg{width:86px;height:86px;opacity:.36}
.pt-app .ptx-plant-hero-shade{
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(7,26,19,.16),rgba(7,26,19,.05) 38%,rgba(7,26,19,.88));
}
.pt-app .ptx-plant-hero-actions{
  position:absolute;
  top:calc(12px + env(safe-area-inset-top));
  inset-inline:14px;
  display:flex;
  justify-content:space-between;
}
.pt-app .ptx-plant-hero-actions button{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  border-radius:15px;
  background:rgba(12,33,25,.48);
  color:#fff;
  backdrop-filter:blur(12px);
}
.pt-app .ptx-plant-hero-actions .pt-svg{width:21px;height:21px}
.pt-app .ptx-plant-identity{
  position:absolute;
  z-index:1;
  inset-inline:20px;
  bottom:22px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#fff;
  box-shadow:none;
  backdrop-filter:none;
}
.pt-app .ptx-plant-identity .ptx-status{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.9)}
.pt-app .ptx-plant-identity h1{margin:10px 0 0;color:#fff;font-size:29px;font-weight:800;line-height:1.35}
.pt-app .ptx-plant-identity p{margin:1px 0 0;color:rgba(255,255,255,.8);font-size:13px;font-style:italic}
.pt-app .ptx-plant-identity small{display:block;margin-top:7px;color:rgba(255,255,255,.68);font-size:12px}
.pt-app .ptx-detail-tabs{
  position:sticky;
  top:0;
  z-index:8;
  margin:12px 0 20px;
  padding:4px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3px;
  border:1px solid var(--ptx-line);
  border-radius:15px;
  background:rgba(246,245,240,.94);
  backdrop-filter:blur(18px);
}
.pt-app .ptx-detail-tabs button{
  min-height:42px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.pt-app .ptx-detail-tabs button.is-active{background:#fff;color:var(--ptx-primary);box-shadow:var(--ptx-shadow-xs)}
.pt-app .ptx-plant-tab-panel{display:grid;gap:2px}
.pt-app .ptx-health-overview{
  padding:18px;
  display:grid;
  grid-template-columns:66px minmax(0,1fr);
  gap:13px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:21px;
  background:#fff;
  box-shadow:var(--ptx-shadow-xs);
}
.pt-app .ptx-score{
  width:66px;
  height:66px;
  display:grid;
  align-content:center;
  justify-items:center;
  border-radius:22px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.pt-app .ptx-score.is-warning{background:var(--ptx-amber-soft);color:var(--ptx-amber)}
.pt-app .ptx-score.is-danger{background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.pt-app .ptx-score strong{font-size:21px;font-weight:800;line-height:1}
.pt-app .ptx-score small{margin-top:4px;font-size:12px}
.pt-app .ptx-health-overview>div:nth-child(2){min-width:0}
.pt-app .ptx-health-overview>div:nth-child(2)>small{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-health-overview h2{margin:1px 0 2px;font-size:17px;font-weight:800}
.pt-app .ptx-health-overview p{margin:0;color:var(--ptx-muted);font-size:13px;line-height:1.65}
.pt-app .ptx-health-overview>button{
  grid-column:1/-1;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:13px;
  background:var(--ptx-forest-900);
  color:#fff;
  font-size:13px;
  font-weight:750;
}
.pt-app .ptx-health-overview>button .pt-svg{width:18px;height:18px}
.pt-app .ptx-plant-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.pt-app .ptx-plant-action{
  min-height:126px;
  padding:14px;
  display:grid;
  grid-template-columns:42px 1fr 18px;
  grid-template-rows:auto auto auto;
  gap:2px 9px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
  text-align:start;
}
.pt-app .ptx-plant-action>span{
  width:42px;
  height:42px;
  grid-row:1/3;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.pt-app .ptx-plant-action>span .pt-svg{width:21px;height:21px}
.pt-app .ptx-plant-action>strong{align-self:end;font-size:14px;font-weight:800}
.pt-app .ptx-plant-action>small{align-self:start;color:var(--ptx-muted);font-size:12px;line-height:1.45}
.pt-app .ptx-plant-action>.pt-svg{grid-column:3;grid-row:1/3;width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}
.pt-app .ptx-reminder-preview{display:grid;gap:8px}
.pt-app .ptx-reminder-chip{
  width:100%;
  min-height:66px;
  padding:10px 12px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto 18px;
  gap:9px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:#fff;
  text-align:start;
}
.pt-app .ptx-reminder-chip>span{
  width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--ptx-mint-soft);color:var(--ptx-primary)
}
.pt-app .ptx-reminder-chip>span .pt-svg{width:20px;height:20px}
.pt-app .ptx-reminder-chip>strong{font-size:14px;font-weight:800}
.pt-app .ptx-reminder-chip>small{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-reminder-chip>.pt-svg{width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}
.pt-app .ptx-plant-about{
  padding:17px;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
}
.pt-app .ptx-plant-about p{margin:0;color:var(--ptx-text);font-size:14px;line-height:1.85}
.pt-app .ptx-plant-about dl{margin:15px 0 0;display:grid;gap:8px}
.pt-app .ptx-plant-about dl div{padding-top:8px;display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--ptx-line)}
.pt-app .ptx-plant-about dt{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-plant-about dd{margin:0;font-size:13px;font-weight:700}
.pt-app .ptx-care-facts{display:grid;gap:9px}
.pt-app .ptx-care-fact{
  width:100%;
  min-height:82px;
  padding:13px;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 18px;
  gap:11px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:17px;
  background:#fff;
  text-align:start;
}
.pt-app .ptx-care-fact>span{
  width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:var(--ptx-mint-soft);color:var(--ptx-primary)
}
.pt-app .ptx-care-fact>span .pt-svg{width:22px;height:22px}
.pt-app .ptx-care-fact strong{display:block;font-size:14px;font-weight:800}
.pt-app .ptx-care-fact p{margin:2px 0 0;color:var(--ptx-muted);font-size:13px;line-height:1.65}
.pt-app .ptx-care-fact>.pt-svg{width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}
.pt-app .ptx-journal-list{display:grid;gap:0}
.pt-app .ptx-journal-entry{
  position:relative;
  padding:0 0 18px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
}
.pt-app .ptx-journal-entry:not(:last-child)::after{
  content:"";position:absolute;top:44px;bottom:0;right:21px;width:1px;background:var(--ptx-line)
}
.pt-app .ptx-journal-entry>span{
  width:44px;height:44px;z-index:1;display:grid;place-items:center;border:1px solid #d9e7dc;border-radius:15px;background:var(--ptx-mint-soft);color:var(--ptx-primary)
}
.pt-app .ptx-journal-entry>span .pt-svg{width:20px;height:20px}
.pt-app .ptx-journal-entry>div{padding:12px 14px;border:1px solid var(--ptx-line);border-radius:16px;background:#fff}
.pt-app .ptx-journal-entry time{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-journal-entry h3{margin:2px 0;font-size:14px;font-weight:800}
.pt-app .ptx-journal-entry p{margin:3px 0 0;color:var(--ptx-muted);font-size:13px;line-height:1.7}
.pt-app .ptx-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.pt-app .ptx-photo-grid figure{margin:0;overflow:hidden;border-radius:17px;background:#fff}
.pt-app .ptx-photo-grid img{width:100%;aspect-ratio:1;display:block;object-fit:cover}
.pt-app .ptx-photo-grid figcaption{padding:8px 10px;color:var(--ptx-muted);font-size:12px}

/* Scan result */
.pt-app .ptx-result-hero{
  position:relative;
  min-height:360px;
  margin:0;
  overflow:hidden;
  border-radius:25px;
  isolation:isolate;
  background:linear-gradient(145deg,#dfeee1,#edf1e5);
}
.pt-app .ptx-result-hero::after{display:none}
.pt-app .ptx-result-hero>img,
.pt-app .ptx-result-photo-placeholder{position:absolute;inset:0;width:100%;height:100%}
.pt-app .ptx-result-hero>img{z-index:-3;display:block;object-fit:cover}
.pt-app .ptx-result-photo-placeholder{
  z-index:-3;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:10px;
  color:var(--ptx-primary);
}
.pt-app .ptx-result-photo-placeholder .pt-svg{width:58px;height:58px;opacity:.5}
.pt-app .ptx-result-photo-placeholder span{font-size:13px;font-weight:700}
.pt-app .ptx-result-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(7,26,19,.08),rgba(7,26,19,.84))}
.pt-app .ptx-result-mode{
  position:absolute;
  top:14px;
  inset-inline-start:14px;
  min-height:38px;
  padding:7px 10px;
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:12px;
  background:rgba(12,33,25,.46);
  color:#fff;
  font-size:12px;
  font-weight:700;
  backdrop-filter:blur(10px);
}
.pt-app .ptx-result-mode .pt-svg{width:17px;height:17px}
.pt-app .ptx-result-identity{position:absolute;inset-inline:18px;bottom:19px;color:#fff}
.pt-app .ptx-result-identity span{color:rgba(255,255,255,.72);font-size:12px;font-weight:650}
.pt-app .ptx-result-identity h1{margin:3px 0 0;color:#fff;font-size:28px;font-weight:800;line-height:1.35}
.pt-app .ptx-result-identity p{margin:2px 0 0;color:rgba(255,255,255,.78);font-size:13px;font-style:italic}
.pt-app .ptx-result-signals{margin:10px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.pt-app .ptx-result-signals:empty{display:none}
.pt-app .ptx-result-summary{
  margin-top:12px;
  padding:16px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:12px;
  align-items:start;
  border:1px solid #d8e7dc;
  border-radius:19px;
  background:var(--ptx-mint-soft);
}
.pt-app .ptx-result-summary>span{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#fff;color:var(--ptx-primary)}
.pt-app .ptx-result-summary>span .pt-svg{width:23px;height:23px}
.pt-app .ptx-result-summary small{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-result-summary h2{margin:1px 0;font-size:17px;font-weight:800}
.pt-app .ptx-result-summary p{margin:2px 0 0;color:var(--ptx-text);font-size:13px;line-height:1.7}
.pt-app .ptx-result-description{
  margin-top:10px;
  padding:16px;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
}
.pt-app .ptx-result-description small{color:var(--ptx-primary);font-size:12px;font-weight:750}
.pt-app .ptx-result-description p{margin:5px 0 0;color:var(--ptx-text);font-size:14px;line-height:1.8}
.pt-app .ptx-issue-list{display:grid;gap:10px}
.pt-app .ptx-issue-card{
  padding:16px;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
}
.pt-app .ptx-issue-card.is-warning{border-color:#eedbc0;background:#fffaf0}
.pt-app .ptx-issue-card.is-danger{border-color:#efd6da;background:#fff8f9}
.pt-app .ptx-issue-card header{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pt-app .ptx-issue-card h3{margin:0;font-size:16px;font-weight:800}
.pt-app .ptx-issue-card p{margin:8px 0;color:var(--ptx-text);font-size:13px;line-height:1.7}
.pt-app .ptx-issue-card>strong{display:block;margin-top:11px;font-size:13px}
.pt-app .ptx-issue-card ol{margin:7px 0 0;padding:0 20px 0 0;color:var(--ptx-text);font-size:13px;line-height:1.8}
.pt-app .ptx-issue-card>button{
  width:100%;
  min-height:44px;
  margin-top:12px;
  padding:8px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:0;
  border-top:1px solid var(--ptx-line);
  background:transparent;
  color:var(--ptx-primary);
  font-size:13px;
  font-weight:750;
}
.pt-app .ptx-issue-card>button .pt-svg{width:17px;height:17px;transform:rotate(180deg)}
.pt-app .ptx-result-actions{
  position:sticky;
  bottom:0;
  z-index:9;
  margin:22px -18px -34px;
  padding:12px 18px calc(15px + env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  border-top:1px solid rgba(207,216,209,.82);
  background:rgba(246,245,240,.94);
  backdrop-filter:blur(18px);
}
.pt-app .ptx-button.is-ghost{border-color:transparent;background:transparent;color:var(--ptx-muted)}

/* Care agenda */
.pt-app .ptx-care-brief{
  margin-bottom:14px;
  padding:16px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border-radius:21px;
  background:var(--ptx-forest-900);
  color:#fff;
}
.pt-app .ptx-care-brief>div{min-width:0;padding:2px 13px}
.pt-app .ptx-care-brief>div+div{border-right:1px solid rgba(255,255,255,.15)}
.pt-app .ptx-care-brief small{display:block;color:rgba(255,255,255,.66);font-size:12px}
.pt-app .ptx-care-brief strong{display:block;overflow:hidden;color:#fff;font-size:21px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.pt-app .ptx-care-brief span{display:block;overflow:hidden;color:rgba(255,255,255,.76);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.pt-app .ptx-reminder-groups{display:grid;gap:18px}
.pt-app .ptx-reminder-groups>section>h2{margin:0 0 8px;color:var(--ptx-muted);font-size:13px;font-weight:750}
.pt-app .ptx-reminder-groups>section>div{display:grid;gap:8px}
.pt-app .ptx-reminder-row{
  position:relative;
  width:100%;
  min-height:82px;
  padding:5px 56px 5px 5px;
  display:block;
  grid-template-columns:none;
  gap:0;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--ptx-shadow-xs);
}
.pt-app .ptx-reminder-row.is-paused{padding-inline-start:5px;opacity:.72}
.pt-app .ptx-reminder-main{
  width:100%;
  min-height:70px;
  padding:8px;
  display:grid;
  grid-template-columns:45px minmax(0,1fr) 18px;
  gap:10px;
  align-items:center;
  border:0;
  background:transparent;
  text-align:start;
}
.pt-app .ptx-reminder-symbol{
  width:45px;height:45px;display:grid;place-items:center;border-radius:15px;background:var(--ptx-mint-soft);color:var(--ptx-primary)
}
.pt-app .ptx-reminder-symbol .pt-svg{width:22px;height:22px}
.pt-app .ptx-reminder-main>span:nth-child(2){min-width:0}
.pt-app .ptx-reminder-main small,
.pt-app .ptx-reminder-main strong,
.pt-app .ptx-reminder-main em{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-app .ptx-reminder-main small{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-reminder-main strong{font-size:14px;font-weight:800}
.pt-app .ptx-reminder-main em{margin-top:2px;color:var(--ptx-primary);font-size:12px;font-style:normal;font-weight:650}
.pt-app .ptx-reminder-main>.pt-svg{width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}
.pt-app .ptx-reminder-check{
  position:absolute;
  top:50%;
  right:10px;
  width:40px;
  height:40px;
  min-height:40px!important;
  display:grid;
  place-items:center;
  border:1px solid #cfe2d4;
  border-radius:14px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
  transform:translateY(-50%);
}
.pt-app .ptx-reminder-check .pt-svg{width:20px;height:20px}
.pt-app .ptx-reminder-check.is-done{background:var(--ptx-primary);color:#fff}

/* Forms and bottom sheets */
.pt-app .ptx-form-step{
  padding:16px;
  border:1px solid var(--ptx-line);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--ptx-shadow-xs);
}
.pt-app .ptx-form-step>header{margin-bottom:14px;display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center}
.pt-app .ptx-form-step>header>span{
  width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:var(--ptx-forest-900);color:#fff;font-size:13px;font-weight:800
}
.pt-app .ptx-form-step>header strong{display:block;font-size:15px;font-weight:800}
.pt-app .ptx-form-step>header small{display:block;color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-plant-choices{
  margin-inline:-16px;
  padding-inline:16px;
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:none;
}
.pt-app .ptx-plant-choices::-webkit-scrollbar{display:none}
.pt-app .ptx-plant-choices label{position:relative;min-width:126px;cursor:pointer}
.pt-app .ptx-plant-choices input{position:absolute;opacity:0;pointer-events:none}
.pt-app .ptx-plant-choices label>span{
  min-height:142px;
  padding:9px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface-soft);
}
.pt-app .ptx-choice-media{width:100%;height:72px;border-radius:12px}
.pt-app .ptx-choice-media.is-placeholder .pt-svg{width:27px;height:27px}
.pt-app .ptx-plant-choices strong{margin-top:7px;overflow:hidden;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.pt-app .ptx-plant-choices small{overflow:hidden;color:var(--ptx-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.pt-app .ptx-plant-choices label>span>.pt-svg{position:absolute;top:14px;left:6px;width:21px;height:21px;padding:3px;border-radius:999px;background:#fff;color:transparent}
.pt-app .ptx-plant-choices input:checked+span{border-color:var(--ptx-primary);background:var(--ptx-mint-soft);box-shadow:0 0 0 2px var(--ptx-focus)}
.pt-app .ptx-plant-choices input:checked+span>.pt-svg{background:var(--ptx-primary);color:#fff}
.pt-app .ptx-type-choices,
.pt-app .ptx-water-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pt-app .ptx-type-choices button,
.pt-app .ptx-water-types button{
  position:relative;
  min-height:92px;
  padding:12px;
  display:grid;
  grid-template-columns:38px 1fr 17px;
  align-items:center;
  gap:8px;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:var(--ptx-surface-soft);
  text-align:start;
}
.pt-app .ptx-type-choices button>span,
.pt-app .ptx-water-types button>span{
  grid-column:1;
  grid-row:1/3;
  width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:#fff;color:var(--ptx-primary)
}
.pt-app .ptx-type-choices button>span .pt-svg,
.pt-app .ptx-water-types button>span .pt-svg{width:20px;height:20px}
.pt-app .ptx-type-choices button>strong,
.pt-app .ptx-water-types button>strong{grid-column:2;grid-row:1;font-size:13px;font-weight:800}
.pt-app .ptx-type-choices button>small,
.pt-app .ptx-water-types button>small{grid-column:2;grid-row:2;color:var(--ptx-muted);font-size:12px;line-height:1.45}
.pt-app .ptx-type-choices button>.pt-svg,
.pt-app .ptx-water-types button>.pt-svg{grid-column:3;grid-row:1/3;width:17px;height:17px;color:transparent}
.pt-app .ptx-type-choices button.is-selected,
.pt-app .ptx-water-types button.is-selected{border-color:var(--ptx-primary);background:var(--ptx-mint-soft)}
.pt-app .ptx-type-choices button.is-selected>.pt-svg,
.pt-app .ptx-water-types button.is-selected>.pt-svg{color:var(--ptx-primary)}
.pt-app .ptx-frequency-choices{padding:4px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border-radius:14px;background:var(--ptx-canvas-deep)}
.pt-app .ptx-frequency-choices button{
  min-height:42px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
}
.pt-app .ptx-frequency-choices button.is-selected{background:#fff;color:var(--ptx-primary);box-shadow:var(--ptx-shadow-xs)}
.pt-app .ptx-inline-fields{margin-top:12px;display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:9px}
.pt-app .ptx-field>span{display:block;margin:0 2px 6px;color:var(--ptx-text);font-size:13px;font-weight:700}
.pt-app .ptx-field :where(input,textarea,select){
  width:100%;
  min-height:50px;
  padding:11px 12px;
  border:1px solid var(--ptx-line-strong);
  border-radius:13px;
  background:#fff;
  color:var(--ptx-ink);
  font-size:14px;
  line-height:1.55;
}
.pt-app .ptx-field textarea{min-height:92px;resize:vertical}
.pt-app .ptx-field :where(input,textarea,select):focus{border-color:var(--ptx-primary);box-shadow:0 0 0 3px var(--ptx-focus)}
.pt-app .ptx-sheet-heading{
  margin:4px 0 18px;
  padding-inline-end:42px;
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  gap:12px;
  align-items:center;
}
.pt-app .ptx-sheet-heading>span{
  width:50px;height:50px;display:grid;place-items:center;border-radius:17px;background:var(--ptx-mint-soft);color:var(--ptx-primary)
}
.pt-app .ptx-sheet-heading>span .pt-svg{width:24px;height:24px}
.pt-app .ptx-sheet-heading small{color:var(--ptx-primary);font-size:12px;font-weight:700}
.pt-app .ptx-sheet-heading h2{margin:0;font-size:20px;font-weight:800}
.pt-app .ptx-sheet-heading p{margin:2px 0 0;color:var(--ptx-muted);font-size:13px;line-height:1.6}
.pt-app .ptx-sheet-preview{
  padding:12px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:10px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:15px;
  background:var(--ptx-surface-soft);
}
.pt-app .ptx-sheet-preview>.pt-svg{width:25px;height:25px;color:var(--ptx-primary)}
.pt-app .ptx-sheet-preview small,
.pt-app .ptx-sheet-preview strong,
.pt-app .ptx-sheet-preview em{display:block}
.pt-app .ptx-sheet-preview small{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-sheet-preview strong{font-size:14px}
.pt-app .ptx-sheet-preview em{color:var(--ptx-muted);font-size:12px;font-style:italic}
.pt-app .ptx-sheet-facts{margin:0;display:grid;gap:0;border:1px solid var(--ptx-line);border-radius:16px;background:#fff}
.pt-app .ptx-sheet-facts>div{padding:12px 14px;display:flex;justify-content:space-between;gap:12px}
.pt-app .ptx-sheet-facts>div+div{border-top:1px solid var(--ptx-line)}
.pt-app .ptx-sheet-facts dt{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-sheet-facts dd{margin:0;font-size:13px;font-weight:700;text-align:end}
.pt-app .ptx-sheet-actions{margin-top:14px;display:grid;gap:8px}
.pt-app .ptx-settings-list{display:grid;gap:8px}
.pt-app .ptx-settings-row{
  width:100%;
  min-height:72px;
  padding:11px 12px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 18px;
  gap:10px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:17px;
  background:#fff;
  text-align:start;
}
.pt-app .ptx-settings-row>span:first-child{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.pt-app .ptx-settings-row>span:first-child .pt-svg{width:21px;height:21px}
.pt-app .ptx-settings-row strong{display:block;font-size:14px;font-weight:800}
.pt-app .ptx-settings-row small{display:block;color:var(--ptx-muted);font-size:12px;line-height:1.5}
.pt-app .ptx-settings-row>.pt-svg{width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}
.pt-app .ptx-settings-row.is-danger{border-color:#efd7da;color:var(--ptx-danger)}
.pt-app .ptx-settings-row.is-danger>span:first-child{background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.pt-app .ptx-confirm{padding:10px 2px 4px;text-align:center}
.pt-app .ptx-confirm>span{width:64px;height:64px;margin:0 auto 12px;display:grid;place-items:center;border-radius:21px;background:var(--ptx-danger-soft);color:var(--ptx-danger)}
.pt-app .ptx-confirm>span .pt-svg{width:29px;height:29px}
.pt-app .ptx-confirm h2{margin:0;font-size:21px}
.pt-app .ptx-confirm>p{margin:7px auto 18px;max-width:330px;color:var(--ptx-muted);font-size:13px;line-height:1.75}
.pt-app .ptx-confirm>div,
.pt-app .ptx-confirm form>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pt-app .ptx-journal-types{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}
.pt-app .ptx-journal-types::-webkit-scrollbar{display:none}
.pt-app .ptx-journal-types button{
  min-height:44px;
  padding:8px 11px;
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
  border:1px solid var(--ptx-line);
  border-radius:12px;
  background:#fff;
  font-size:12px;
  font-weight:700;
}
.pt-app .ptx-journal-types button .pt-svg{width:17px;height:17px}
.pt-app .ptx-journal-types button.is-selected{border-color:var(--ptx-primary);background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.pt-app .ptx-guide-list{margin:0 0 14px;padding:0;display:grid;gap:9px;list-style:none}
.pt-app .ptx-guide-list li{padding:11px;display:grid;grid-template-columns:31px 1fr;gap:9px;align-items:start;border:1px solid var(--ptx-line);border-radius:14px;background:#fff}
.pt-app .ptx-guide-list li>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:var(--ptx-mint-soft);color:var(--ptx-primary);font-size:12px;font-weight:800}
.pt-app .ptx-guide-list p{margin:3px 0 0;color:var(--ptx-text);font-size:13px;line-height:1.7}

/* Water and weather tools */
.pt-app .ptx-tool-intro{
  margin-bottom:14px;
  padding:17px;
  display:grid;
  grid-template-columns:55px minmax(0,1fr);
  gap:13px;
  align-items:center;
  border-radius:21px;
  background:var(--ptx-forest-900);
  color:#fff;
}
.pt-app .ptx-tool-intro>span{width:55px;height:55px;display:grid;place-items:center;border-radius:18px;background:rgba(255,255,255,.12);color:var(--ptx-lime)}
.pt-app .ptx-tool-intro>span .pt-svg{width:28px;height:28px}
.pt-app .ptx-tool-intro h2{margin:0;color:#fff;font-size:17px;font-weight:800}
.pt-app .ptx-tool-intro p{margin:3px 0 0;color:rgba(255,255,255,.72);font-size:13px;line-height:1.65}
.pt-app .ptx-number-grid{display:grid;gap:9px}
.pt-app .ptx-number-field{
  min-height:72px;
  padding:11px 12px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:15px;
  background:var(--ptx-surface-soft);
}
.pt-app .ptx-number-field>span{display:flex;align-items:center;gap:7px;color:var(--ptx-text);font-size:13px;font-weight:700}
.pt-app .ptx-number-field>span .pt-svg{width:18px;height:18px;color:var(--ptx-primary)}
.pt-app .ptx-number-field>div{display:flex;align-items:center;gap:5px}
.pt-app .ptx-number-field input{width:76px;min-height:44px;padding:7px;border:1px solid var(--ptx-line-strong);border-radius:11px;background:#fff;font-size:16px;font-weight:800;text-align:center}
.pt-app .ptx-number-field em{color:var(--ptx-muted);font-size:12px;font-style:normal}
.pt-app .ptx-field-source{margin:12px 0 0;display:flex;align-items:flex-start;gap:7px;color:var(--ptx-muted);font-size:12px;line-height:1.65}
.pt-app .ptx-field-source .pt-svg{width:17px;height:17px;margin-top:2px;flex:0 0 auto;color:var(--ptx-primary)}
.pt-app .ptx-water-result{
  margin-top:16px;
  padding:17px;
  border:1px solid #d4e5d8;
  border-radius:22px;
  background:linear-gradient(145deg,#eef6ee,#fff);
  box-shadow:var(--ptx-shadow-sm);
}
.pt-app .ptx-water-result header{display:grid;grid-template-columns:50px 1fr auto;gap:11px;align-items:center}
.pt-app .ptx-water-result header>span{width:50px;height:50px;display:grid;place-items:center;border-radius:17px;background:#fff;color:var(--ptx-primary)}
.pt-app .ptx-water-result header>span .pt-svg{width:24px;height:24px}
.pt-app .ptx-water-result header small{display:block;color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-water-result h2{margin:0;font-size:15px}
.pt-app .ptx-water-result h2 strong{font-size:25px;font-weight:800}
.pt-app .ptx-water-result header em{padding:5px 8px;border-radius:999px;background:var(--ptx-amber-soft);color:var(--ptx-amber);font-size:12px;font-style:normal;font-weight:700}
.pt-app .ptx-water-result>p{margin:13px 0 9px;color:var(--ptx-text);font-size:13px;line-height:1.75}
.pt-app .ptx-water-result>div{margin-bottom:12px;padding:10px;display:flex;align-items:flex-start;gap:7px;border-radius:13px;background:#fff;color:var(--ptx-muted);font-size:12px;line-height:1.65}
.pt-app .ptx-water-result>div .pt-svg{width:18px;height:18px;flex:0 0 auto;color:var(--ptx-primary)}
.pt-app .ptx-weather-hero{
  min-height:148px;
  padding:22px 18px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(145deg,var(--ptx-forest-900),#235b45);
  color:#fff;
  box-shadow:none;
}
.pt-app .ptx-weather-hero>span{width:58px;height:58px;display:grid;place-items:center;border-radius:19px;background:rgba(255,255,255,.1);color:var(--ptx-lime)}
.pt-app .ptx-weather-hero>span .pt-svg{width:30px;height:30px}
.pt-app .ptx-weather-hero small{color:rgba(255,255,255,.7);font-size:12px}
.pt-app .ptx-weather-hero h1{margin:-2px 0;color:#fff;font-size:39px;font-weight:800;line-height:1.2}
.pt-app .ptx-weather-hero p{margin:0;color:rgba(255,255,255,.7);font-size:12px}
.pt-app .ptx-weather-hero>em{align-self:start;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.1);font-size:12px;font-style:normal}
.pt-app .ptx-weather-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.pt-app .ptx-weather-stat{
  min-height:92px;
  padding:13px;
  display:grid;
  grid-template-columns:37px 1fr;
  grid-template-rows:auto auto;
  gap:2px 8px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:17px;
  background:#fff;
}
.pt-app .ptx-weather-stat>span{width:37px;height:37px;grid-row:1/3;display:grid;place-items:center;border-radius:12px;background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.pt-app .ptx-weather-stat>span .pt-svg{width:19px;height:19px}
.pt-app .ptx-weather-stat small{align-self:end;color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-weather-stat strong{align-self:start;font-size:17px;font-weight:800}
.pt-app .ptx-weather-stat em{color:var(--ptx-muted);font-size:12px;font-style:normal;font-weight:600}
.pt-app .ptx-weather-source{margin:12px 2px 0;display:flex;align-items:flex-start;gap:6px;color:var(--ptx-muted);font-size:12px;line-height:1.65}
.pt-app .ptx-weather-source .pt-svg{width:16px;height:16px;margin-top:2px;flex:0 0 auto}

/* Account and history */
.pt-app .ptx-guest-account{
  padding:24px 20px;
  border-radius:24px;
  background:linear-gradient(145deg,var(--ptx-forest-900),#225943);
  color:#fff;
  text-align:center;
}
.pt-app .ptx-account-mark{width:72px;height:72px;margin:0 auto 12px;display:grid;place-items:center;border-radius:24px;background:rgba(255,255,255,.1)}
.pt-app .ptx-account-mark .pt-brand-badge{width:48px;height:48px}
.pt-app .ptx-guest-account>span{color:var(--ptx-lime);font-size:12px;font-weight:750}
.pt-app .ptx-guest-account h1{margin:4px 0;color:#fff;font-size:23px;font-weight:800}
.pt-app .ptx-guest-account p{margin:0 0 17px;color:rgba(255,255,255,.74);font-size:13px;line-height:1.75}
.pt-app .ptx-guest-account .ptx-button{background:#fff;color:var(--ptx-forest-900)}
.pt-app .ptx-account-benefits{margin-top:11px;display:grid;gap:8px}
.pt-app .ptx-account-benefits article{
  padding:12px;
  display:grid;
  grid-template-columns:43px minmax(0,1fr);
  gap:10px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:16px;
  background:#fff;
}
.pt-app .ptx-account-benefits article>span{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.pt-app .ptx-account-benefits .pt-svg{width:21px;height:21px}
.pt-app .ptx-account-benefits strong{display:block;font-size:14px;font-weight:800}
.pt-app .ptx-account-benefits p{margin:1px 0 0;color:var(--ptx-muted);font-size:12px;line-height:1.55}
.pt-app .ptx-member-account{
  padding:20px;
  display:grid;
  grid-template-columns:78px minmax(0,1fr);
  gap:15px;
  align-items:center;
  border-radius:23px;
  background:var(--ptx-forest-900);
  color:#fff;
}
.pt-app .ptx-member-account .ptx-avatar.is-large{width:78px;height:78px;border:3px solid rgba(255,255,255,.2);border-radius:25px;background:#fff;color:var(--ptx-forest-900)}
.pt-app .ptx-member-account h1{margin:5px 0 0;color:#fff;font-size:21px;font-weight:800}
.pt-app .ptx-member-account p{margin:0;color:rgba(255,255,255,.7);font-size:12px}
.pt-app .ptx-member-account small{margin-top:5px;display:flex;align-items:center;gap:5px;color:rgba(255,255,255,.7);font-size:12px}
.pt-app .ptx-member-account small .pt-svg{width:15px;height:15px}
.pt-app .ptx-account-stats{
  margin:10px 0 0;
  padding:5px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
}
.pt-app .ptx-account-stats button{min-height:66px;border:0;background:transparent}
.pt-app .ptx-account-stats button+button{border-right:1px solid var(--ptx-line)}
.pt-app .ptx-account-stats strong{display:block;font-size:20px;font-weight:800}
.pt-app .ptx-account-stats span{display:block;color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-danger-zone{
  margin-top:22px;
  padding:16px;
  display:grid;
  gap:12px;
  border:1px solid #edd4d8;
  border-radius:19px;
  background:var(--ptx-danger-soft);
}
.pt-app .ptx-danger-zone span{color:var(--ptx-danger);font-size:12px;font-weight:750}
.pt-app .ptx-danger-zone h2{margin:1px 0;font-size:16px}
.pt-app .ptx-danger-zone p{margin:0;color:#77585d;font-size:12px;line-height:1.65}
.pt-app .ptx-danger-zone button{min-height:44px;border:1px solid #e2bfc5;border-radius:13px;background:#fff;color:var(--ptx-danger);font-size:13px;font-weight:750}
.pt-app .ptx-danger-zone button .pt-svg{width:18px;height:18px;vertical-align:middle}
.pt-app .ptx-history-grid{display:grid;grid-template-columns:1fr;gap:9px}
.pt-app .ptx-history-card{
  width:100%;
  min-height:96px;
  padding:9px;
  display:grid;
  grid-template-columns:78px minmax(0,1fr) 18px;
  gap:11px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:18px;
  background:#fff;
  text-align:start;
}
.pt-app .ptx-history-media{
  position:relative;
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:var(--ptx-mint-soft);
  color:var(--ptx-primary);
}
.pt-app .ptx-history-media>img{width:100%;height:100%;display:block;object-fit:cover}
.pt-app .ptx-history-media>.pt-svg{width:28px;height:28px}
.pt-app .ptx-history-media>small{font-size:12px}
.pt-app .ptx-history-media>em{position:absolute;bottom:5px;right:5px;width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.9);color:var(--ptx-primary)}
.pt-app .ptx-history-media>em .pt-svg{width:15px;height:15px}
.pt-app .ptx-history-card>span:nth-child(2){min-width:0}
.pt-app .ptx-history-card>span:nth-child(2)>small,
.pt-app .ptx-history-card>span:nth-child(2)>strong,
.pt-app .ptx-history-card>span:nth-child(2)>em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-app .ptx-history-card>span:nth-child(2)>small{color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-history-card>span:nth-child(2)>strong{font-size:14px;font-weight:800}
.pt-app .ptx-history-card>span:nth-child(2)>em{margin-top:4px;color:var(--ptx-primary);font-size:12px;font-style:normal}
.pt-app .ptx-history-card>.pt-svg{width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}

/* Relative light camera */
.pt-app .ptx-light-meter{
  position:relative;
  width:100%;
  height:100dvh;
  overflow:hidden;
  background:var(--ptx-forest-950);
  color:#fff;
}
.pt-app .ptx-light-meter>video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.pt-app .ptx-light-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,17,12,.7),rgba(5,17,12,.08) 35%,rgba(5,17,12,.92))}
.pt-app .ptx-light-meter>header{
  position:absolute;
  top:calc(12px + env(safe-area-inset-top));
  inset-inline:12px;
  z-index:2;
  display:grid;
  grid-template-columns:46px 1fr 46px;
  gap:10px;
  align-items:center;
}
.pt-app .ptx-light-meter>header button{width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.23);border-radius:15px;background:rgba(5,17,12,.45);color:#fff;backdrop-filter:blur(12px)}
.pt-app .ptx-light-meter>header .pt-svg{width:21px;height:21px}
.pt-app .ptx-light-meter>header div{text-align:center}
.pt-app .ptx-light-meter>header small{display:block;color:rgba(255,255,255,.65);font-size:12px}
.pt-app .ptx-light-meter>header strong{display:block;color:#fff;font-size:15px;font-weight:800}
.pt-app .ptx-light-target{position:absolute;top:23%;right:50%;width:180px;height:180px;transform:translateX(50%)}
.pt-app .ptx-light-target i{position:absolute;width:45px;height:45px;border-color:rgba(221,234,113,.9);border-style:solid}
.pt-app .ptx-light-target i:first-child{top:0;right:0;border-width:2px 2px 0 0;border-radius:0 16px 0 0}
.pt-app .ptx-light-target i:nth-child(2){bottom:0;left:0;border-width:0 0 2px 2px;border-radius:0 0 0 16px}
.pt-app .ptx-light-target span{position:absolute;top:50%;right:50%;width:9px;height:9px;border:2px solid var(--ptx-lime);border-radius:50%;transform:translate(50%,-50%)}
.pt-app .ptx-light-reading{
  position:absolute;
  inset-inline:14px;
  bottom:calc(14px + env(safe-area-inset-bottom));
  padding:17px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:23px;
  background:rgba(8,26,19,.72);
  backdrop-filter:blur(18px);
}
.pt-app .ptx-light-reading>div:first-child{display:flex;align-items:baseline;justify-content:center;gap:7px}
.pt-app .ptx-light-reading>div:first-child small{color:rgba(255,255,255,.68);font-size:12px}
.pt-app .ptx-light-reading>div:first-child strong{color:#fff;font-size:38px;font-weight:800;line-height:1}
.pt-app .ptx-light-reading>div:first-child em{color:rgba(255,255,255,.68);font-size:12px;font-style:normal}
.pt-app .ptx-light-scale{position:relative;height:8px;margin:14px 0;border-radius:999px;background:linear-gradient(90deg,#12231e,#6f9e72,#f3dc8d,#fff)}
.pt-app .ptx-light-scale span{position:absolute;top:50%;width:16px;height:16px;border:3px solid #fff;border-radius:50%;background:var(--ptx-primary);box-shadow:0 2px 7px rgba(0,0,0,.35);transform:translate(50%,-50%);transition:inset-inline-start .35s ease}
.pt-app .ptx-light-reading article{padding:12px;border-radius:15px;background:rgba(255,255,255,.09)}
.pt-app .ptx-light-reading article strong{display:block;color:#fff;font-size:14px;font-weight:800}
.pt-app .ptx-light-reading article p{margin:3px 0 0;color:rgba(255,255,255,.72);font-size:12px;line-height:1.65}
.pt-app .ptx-light-reading>p{margin:11px 0 0;display:flex;align-items:flex-start;gap:6px;color:rgba(255,255,255,.62);font-size:12px;line-height:1.6}
.pt-app .ptx-light-reading>p .pt-svg{width:16px;height:16px;margin-top:2px;flex:0 0 auto;color:var(--ptx-lime)}

/* Diagnose landing */
.pt-app .ptx-diagnose-hero{
  position:relative;
  min-height:355px;
  overflow:hidden;
  border-radius:25px;
  isolation:isolate;
  background:var(--ptx-forest-900);
}
.pt-app .ptx-diagnose-hero>img{position:absolute;inset:0;z-index:-3;width:100%;height:100%;display:block;object-fit:cover}
.pt-app .ptx-diagnose-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(7,26,19,.08),rgba(7,26,19,.88))}
.pt-app .ptx-diagnose-copy{position:absolute;inset-inline:18px;bottom:18px;color:#fff}
.pt-app .ptx-diagnose-copy>span{display:flex;align-items:center;gap:6px;color:var(--ptx-lime);font-size:12px;font-weight:750}
.pt-app .ptx-diagnose-copy>span .pt-svg{width:17px;height:17px}
.pt-app .ptx-diagnose-copy h2{margin:5px 0;color:#fff;font-size:25px;font-weight:800}
.pt-app .ptx-diagnose-copy p{margin:0 0 13px;color:rgba(255,255,255,.75);font-size:13px;line-height:1.7}
.pt-app .ptx-diagnose-copy button{width:100%;min-height:48px;border:0;border-radius:14px;background:#fff;color:var(--ptx-forest-900);font-size:13px;font-weight:800}
.pt-app .ptx-diagnose-copy button .pt-svg{width:18px;height:18px;vertical-align:middle}
.pt-app .ptx-process-steps{margin:12px 0 0;padding:13px;display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:7px;align-items:center;border:1px solid var(--ptx-line);border-radius:17px;background:#fff}
.pt-app .ptx-process-steps>span{text-align:center}
.pt-app .ptx-process-steps b{display:block;color:var(--ptx-primary);font-size:14px}
.pt-app .ptx-process-steps small{display:block;color:var(--ptx-muted);font-size:12px;white-space:nowrap}
.pt-app .ptx-process-steps>i{height:1px;background:var(--ptx-line)}
.pt-app .ptx-symptom-list{display:grid;gap:8px}
.pt-app .ptx-symptom{
  width:100%;
  min-height:78px;
  padding:10px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 18px;
  gap:11px;
  align-items:center;
  border:1px solid var(--ptx-line);
  border-radius:17px;
  background:#fff;
  text-align:start;
}
.pt-app .ptx-symptom>span{width:58px;height:58px;display:grid;place-items:center;overflow:hidden;border-radius:14px;background:var(--ptx-mint-soft);color:var(--ptx-primary)}
.pt-app .ptx-symptom>span svg{width:48px;height:48px;fill:none;stroke:currentColor;stroke-width:2}
.pt-app .ptx-symptom strong{display:block;font-size:14px;font-weight:800}
.pt-app .ptx-symptom small{display:block;color:var(--ptx-muted);font-size:12px}
.pt-app .ptx-symptom>.pt-svg{width:17px;height:17px;color:var(--ptx-subtle);transform:rotate(180deg)}
.pt-app .ptx-camera-context{
  position:absolute;
  top:calc(156px + env(safe-area-inset-top));
  right:50%;
  z-index:7;
  min-height:38px;
  padding:7px 10px;
  display:flex;
  align-items:center;
  gap:5px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(8,26,19,.58);
  color:rgba(255,255,255,.76);
  font-size:12px;
  white-space:nowrap;
  transform:translateX(50%);
  backdrop-filter:blur(12px);
}
.pt-app .ptx-camera-context strong{color:#fff;font-size:12px}
.pt-app .ptx-camera-context .pt-svg{width:16px;height:16px;color:var(--ptx-lime)}

/* Auth/onboarding and legacy advanced tools inherit the production floor. */
.pt-app .pt-onboard-skip{
  position:absolute;
  top:calc(14px + env(safe-area-inset-top));
  left:16px;
  z-index:8;
  min-width:72px;
  min-height:44px;
  border:1px solid var(--ptx-line);
  border-radius:13px;
  background:rgba(255,255,255,.78);
  color:var(--ptx-muted);
  font-size:13px;
  font-weight:700;
  backdrop-filter:blur(12px);
}
.pt-app :where(.pt-camera-stage,.pt-auth-page,.pt-onboard-page,.pt-measure-page,.pt-ai-scan-loading)
  :where(small,time,label,p,em,b,button,input,textarea,select){
  font-size:max(12px,1em)!important;
}
.pt-app .pt-camera-stage :where(button,.pt-pro-camera-close){min-width:44px;min-height:44px}
.pt-app .pt-camera-bottom>button:not(.pt-shutter){min-width:54px;min-height:54px}
.pt-app .pt-measure-step-head>span{font-size:13px!important}
.pt-app .pt-measure-photo-action{min-height:78px}
.pt-app.is-modal-open .pt-main{overflow:hidden}

@media(max-width:370px){
  .pt-app .ptx-filter-bar{margin-inline:-14px;padding-inline:14px}
  .pt-app .ptx-plant-card{grid-template-columns:84px minmax(0,1fr) 20px;gap:10px}
  .pt-app .ptx-plant-card-media{width:84px;height:90px}
  .pt-app .ptx-plant-actions,
  .pt-app .ptx-type-choices,
  .pt-app .ptx-water-types,
  .pt-app .ptx-weather-grid{grid-template-columns:1fr}
  .pt-app .ptx-plant-action{min-height:96px}
  .pt-app .ptx-result-signals{grid-template-columns:1fr}
  .pt-app .ptx-inline-fields{grid-template-columns:1fr}
  .pt-app .ptx-weather-hero{grid-template-columns:52px 1fr}
  .pt-app .ptx-weather-hero>em{display:none}
  .pt-app .ptx-reminder-row{padding-right:51px}
  .pt-app .ptx-reminder-check{right:7px}
}
