:root{
  --night:#07100c;
  --jungle:#0c1912;
  --surface:#122219;
  --surface-high:#192c20;
  --glass:rgba(18,34,25,.84);
  --line:rgba(199,231,174,.14);
  --line-strong:rgba(199,231,174,.27);
  --ink:#f5f1e8;
  --muted:#a9b4a7;
  --lime:#c4f06f;
  --leaf:#78b66a;
  --mint:#b6d9a7;
  --amber:#e0bf67;
  --coral:#e98b73;
  --violet:#c5a7db;
  --radius:22px;
  --shadow:0 20px 70px rgba(0,0,0,.32);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-color:#526b50 var(--night);-webkit-text-size-adjust:100%}
body{
  margin:0;
  min-width:320px;
  min-height:100vh;
  min-height:100dvh;
  overflow-x:hidden;
  color:var(--ink);
  background:var(--night);
  background-image:radial-gradient(circle at 78% 8%,rgba(53,105,66,.16),transparent 34%);
  font:15px/1.5 Inter,system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,textarea,select{font:inherit}
button{border:0;cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.42}
button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.jungle-atmosphere{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.jungle-leaf{position:absolute;fill:rgba(86,143,79,.11);stroke:rgba(157,205,133,.13);stroke-width:1;filter:drop-shadow(0 20px 30px rgba(0,0,0,.2));will-change:transform,opacity}
.leaf-vein{fill:none;stroke:rgba(180,224,153,.16);stroke-width:1.5}
.leaf-colocasia{width:250px;left:-100px;top:5%;animation:leaf-drift-a 18s ease-in-out infinite}
.leaf-monstera{width:300px;right:-135px;top:24%;animation:leaf-drift-b 14s ease-in-out infinite}
.leaf-palm{width:270px;left:-105px;bottom:-80px;animation:leaf-drift-c 20s ease-in-out infinite}
.leaf-heart{width:180px;right:5%;bottom:2%;opacity:.46;animation:leaf-drift-a 12s ease-in-out infinite reverse}
.leaf-spear{width:105px;right:12%;top:-45px;opacity:.38;animation:leaf-drift-b 16s ease-in-out infinite reverse}
@keyframes leaf-drift-a{0%,100%{transform:translate3d(0,0,0) rotate(-3deg);opacity:.55}50%{transform:translate3d(8px,-12px,0) rotate(2deg);opacity:.78}}
@keyframes leaf-drift-b{0%,100%{transform:translate3d(0,0,0) rotate(3deg);opacity:.44}50%{transform:translate3d(-10px,9px,0) rotate(-2deg);opacity:.68}}
@keyframes leaf-drift-c{0%,100%{transform:translate3d(0,0,0) rotate(-5deg);opacity:.4}50%{transform:translate3d(11px,-8px,0) rotate(0);opacity:.62}}
#app,#drawer-root,#toast{position:relative;z-index:1}
.app-shell{width:min(1120px,100%);margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(112px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 42px}
.brand-lockup{display:flex;align-items:center;gap:11px;padding:0;background:transparent;color:var(--ink);text-align:left}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:50%;background:#172b1d;color:var(--lime);font:600 12px/1 Inter;letter-spacing:.06em;box-shadow:inset 0 0 0 5px rgba(196,240,111,.035)}
.brand-lockup b{display:block;font:600 18px/1.1 Fraunces,serif}
.brand-lockup small{display:block;margin-top:3px;color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.island-tag{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(12,25,18,.65);color:var(--mint);font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.title-block{margin-bottom:20px}
.title-block h1{margin:0;font:600 clamp(36px,8vw,58px)/.96 Fraunces,serif;letter-spacing:-.025em}
.eyebrow{margin:0 0 6px;color:var(--leaf);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.page-intro{max-width:700px;margin:-6px 0 24px;color:var(--muted)}
.button{min-height:48px;padding:0 16px;border:1px solid transparent;border-radius:14px;font-weight:700;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.button:active{transform:scale(.98)}
.button.primary{background:var(--lime);color:#0a130d}
.button.secondary{border-color:var(--line-strong);background:#233728;color:var(--ink)}
.button.ghost{border-color:var(--line);background:rgba(255,255,255,.025);color:var(--muted)}
.today-hero,.session-intro,.quick-hero{position:relative;overflow:hidden;margin-bottom:16px;padding:22px;border:1px solid var(--line-strong);border-radius:28px;background:rgba(20,42,27,.88);box-shadow:var(--shadow)}
.today-hero:after,.session-intro:after,.quick-hero:after{content:"";position:absolute;width:170px;height:170px;right:-55px;top:-80px;border:1px solid rgba(196,240,111,.12);border-radius:50%;box-shadow:0 0 0 28px rgba(196,240,111,.02),0 0 0 56px rgba(196,240,111,.015);pointer-events:none}
.today-hero h2,.session-intro h2,.quick-hero h2{position:relative;z-index:1;margin:0;font:600 27px/1.14 Fraunces,serif}
.today-hero h2 span{display:block;margin-top:4px;color:var(--lime)}
.today-hero p:not(.eyebrow),.session-intro>p,.quick-hero p:not(.eyebrow){position:relative;z-index:1;margin:8px 0 18px;color:var(--muted)}
.session-cta{position:relative;z-index:1;width:100%;min-height:56px;background:var(--lime);color:#0a130d;text-transform:uppercase;letter-spacing:.055em}
.session-cta span{margin-right:8px}
.deferred-note{margin:10px 2px 14px;color:var(--muted);font-size:12px}
.priority-legend{display:flex;gap:14px;overflow:auto;margin:20px 0 12px;padding:0 2px;color:var(--muted);font-size:10px;white-space:nowrap;scrollbar-width:none}
.priority-legend span{display:flex;align-items:center;gap:6px}
.dot{width:7px;height:7px;border-radius:50%}.dot.due{background:var(--coral)}.dot.soon{background:var(--amber)}.dot.review{background:var(--violet)}.dot.missing{background:#879489}
.action-stack{display:grid;gap:12px}
.action-card{position:relative;overflow:hidden;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--glass);box-shadow:0 12px 40px rgba(0,0,0,.18);backdrop-filter:blur(12px)}
.action-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#7f8c80}
.action-card.priority-0:before{background:var(--coral)}.action-card.priority-1:before{background:var(--amber)}.action-card.priority-2:before{background:var(--violet)}
.action-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.action-card h2{margin:0;font:600 23px/1.1 Fraunces,serif}
.status-kicker{margin:0 0 4px;color:var(--amber);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.priority-0 .status-kicker{color:var(--coral)}.priority-2 .status-kicker{color:var(--violet)}
.location-line{margin:5px 0 0;color:var(--muted);font-size:12px}
.confidence-badge{display:inline-flex;align-items:center;gap:5px;flex:none;padding:5px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.confidence-badge i{display:block;width:6px;height:6px;border-radius:50%;background:#7d897e}
.confidence-badge.verified{color:var(--mint);background:rgba(107,171,99,.08)}.confidence-badge.verified i{background:var(--lime)}
.confidence-badge.inferred{color:var(--amber)}.confidence-badge.inferred i{background:var(--amber)}
.confidence-badge.review{color:var(--violet)}.confidence-badge.review i{background:var(--violet)}
.confidence-badge.missing i{background:#7f8980}
.action-facts{display:grid;gap:10px;margin:17px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.action-facts div{display:grid;gap:2px}.action-facts span,.passport-grid span,.passport-notes span{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.action-facts b{font-size:12px;font-weight:600}
.why{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:11px;border-radius:13px;background:rgba(196,240,111,.045)}
.why>span{color:var(--lime);font-size:9px;font-weight:800;letter-spacing:.13em}.why p{margin:0;color:var(--muted);font-size:11px}
.action-controls{display:grid;grid-template-columns:1.5fr .7fr .8fr;gap:8px;margin-top:14px}.action-controls .button{min-width:0;padding:0 8px;font-size:11px}
.empty-state{display:grid;gap:4px;padding:28px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:rgba(18,34,25,.62);text-align:center}.empty-state b{font:600 21px Fraunces,serif}.empty-state span{color:var(--muted);font-size:12px}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin:30px 0 12px}.section-heading.compact{margin-top:24px}.section-heading h2,.section-heading h3{margin:0;font:600 27px/1.1 Fraunces,serif}
.session-stats{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:3px 9px;align-items:baseline;margin:18px 0}.session-stats b{font:600 24px Fraunces,serif;color:var(--lime)}.session-stats span{color:var(--muted);font-size:10px}
.mix-grid{display:grid;gap:12px}
.mix-card{display:grid;grid-template-columns:42px 1fr;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--glass);box-shadow:0 14px 44px rgba(0,0,0,.16)}
.mix-number{display:flex;justify-content:center;padding-top:22px;border-right:1px solid var(--line);color:var(--lime);font:600 11px Inter;letter-spacing:.08em}
.mix-card-body{padding:18px}.mix-heading{display:flex;justify-content:space-between;gap:12px}.mix-heading h3{margin:0;font:600 21px/1.15 Fraunces,serif}
.mix-details{display:grid;gap:8px;margin:16px 0}.mix-details div{display:flex;justify-content:space-between;gap:16px;padding-bottom:7px;border-bottom:1px solid var(--line)}.mix-details dt{color:var(--muted);font-size:10px;text-transform:uppercase}.mix-details dd{margin:0;text-align:right;font-size:11px;font-weight:600}
.plant-run{margin:12px 0;color:var(--mint);font-size:11px}.source-detail{margin:10px 0 15px;color:var(--muted);font-size:10px}.source-detail summary{cursor:pointer;color:var(--leaf);font-weight:700}.source-detail p{white-space:pre-line}.mix-card .button{width:100%}
.quick-hero h2{max-width:650px}.timeline-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--glass)}
.timeline-item{display:grid;grid-template-columns:95px 1fr;gap:15px;padding:15px 16px}.timeline-item+.timeline-item{border-top:1px solid var(--line)}.timeline-date{color:var(--leaf);font-size:10px;font-weight:700;text-transform:uppercase}.timeline-item b{font-size:13px}.timeline-item p{margin:2px 0;color:var(--muted);font-size:11px}.timeline-item small{color:var(--mint);font-size:10px}
.library-tools{display:grid;gap:10px;margin-bottom:14px}.search-field{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.search-field input,.session-fields input,.quick-form input,.quick-form textarea{width:100%;min-height:49px;padding:11px 12px;border:1px solid var(--line-strong);border-radius:13px;background:#0b1710;color:var(--ink)}.quick-form textarea{min-height:95px;resize:vertical}.inventory-count{color:var(--muted);font-size:11px}
.plant-list{display:grid;gap:8px}.plant-row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:74px;padding:12px;border:1px solid var(--line);border-radius:17px;background:var(--glass);color:var(--ink);text-align:left}.plant-glyph{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#213626;color:var(--lime);font-size:18px}.plant-row-main{min-width:0}.plant-row-main b,.plant-row-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plant-row-main b{font-size:13px}.plant-row-main small{margin-top:3px;color:var(--muted);font-size:10px}.plant-row-status{display:none;color:var(--muted);font-size:10px;text-align:right}.plant-row-status .confidence-badge{margin-top:5px}
.record-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.record-grid article{padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--glass)}.record-grid article:last-child{grid-column:1/-1}.record-grid b{display:block;font:600 31px Fraunces,serif;color:var(--lime)}.record-grid span{color:var(--muted);font-size:10px}
.admin-list{display:grid;gap:10px;margin-top:20px}.admin-button{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--glass);color:var(--ink);text-align:left}.admin-button b,.admin-button span{display:block}.admin-button span{margin-top:3px;color:var(--muted);font-size:10px}
.local-data-status{display:flex;gap:11px;align-items:flex-start;margin-bottom:16px;padding:15px;border:1px solid var(--line-strong);border-radius:17px;background:rgba(20,42,27,.72)}.local-data-status .status-dot{flex:none;width:9px;height:9px;margin-top:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(196,240,111,.08)}.local-data-status b,.local-data-status small{display:block}.local-data-status small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.55}
.install-card{position:relative;display:grid;grid-template-columns:1fr auto;gap:13px;align-items:center;margin-bottom:16px;padding:16px 54px 16px 16px;border:1px solid rgba(196,240,111,.24);border-radius:18px;background:rgba(30,58,36,.72)}.install-card b,.install-card span{display:block}.install-card span{margin-top:4px;color:var(--muted);font-size:10px}.install-card .install-dismiss{position:absolute;right:8px;top:8px;width:36px;height:36px}.install-card .button{min-width:104px}
.first-run-shell{display:grid;min-height:100dvh;place-items:center}.first-run-shell .topbar{position:absolute;top:calc(18px + env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right))}.first-run-shell .title-block{display:none}.first-run-card{width:min(520px,100%);padding:30px 22px;border:1px solid var(--line-strong);border-radius:28px;background:rgba(20,42,27,.9);box-shadow:var(--shadow);text-align:center}.first-run-card img{display:block;width:96px;height:96px;margin:0 auto 20px;border-radius:24px;box-shadow:0 18px 42px rgba(0,0,0,.32)}.first-run-card h1{margin:0;font:600 34px/1.04 Fraunces,serif}.first-run-card>p:not(.eyebrow){margin:14px 0 22px;color:var(--muted)}.first-run-card .button{width:100%}.first-run-card small{display:block;margin-top:13px;color:var(--muted)}
.backup-file{position:relative;display:grid;place-items:center;width:100%;overflow:hidden}.backup-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.import-preview{margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#102016}.import-preview>span{color:var(--muted)}.import-valid h3{margin:0 0 14px;font:600 24px Fraunces,serif}.import-valid dl{display:grid;gap:7px;margin:0}.import-valid dl div{display:flex;justify-content:space-between;gap:14px;padding-bottom:7px;border-bottom:1px solid var(--line)}.import-valid dt{color:var(--muted);font-size:10px;text-transform:uppercase}.import-valid dd{margin:0;font-size:11px;font-weight:700;text-align:right}.import-valid>p{color:var(--muted);font-size:11px}.confirm-import{display:flex;gap:10px;align-items:flex-start;margin:14px 0;padding:12px;border:1px solid rgba(224,191,103,.25);border-radius:12px;color:var(--ink);font-size:12px}.confirm-import input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--lime)}.import-valid>.button{width:100%}.import-error{color:var(--coral)}.import-error b{font-size:14px}.import-error ul{padding-left:20px}.install-steps{display:grid;gap:16px;margin:22px 0;padding-left:24px}.install-steps li{padding-left:6px;color:var(--muted)}.install-steps b{color:var(--ink)}
.bottom-nav{position:fixed;z-index:5;left:0;right:0;bottom:0;display:flex;justify-content:center;min-height:calc(74px + env(safe-area-inset-bottom));padding:8px max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));border-top:1px solid var(--line);background:rgba(7,16,12,.92);backdrop-filter:blur(18px)}
.nav-button{flex:1;min-width:0;max-width:96px;background:transparent;color:#7f8d80;font-size:9px}.nav-button span{display:block;margin-bottom:2px;font-size:18px;line-height:20px}.nav-button.active{color:var(--lime)}
.drawer-backdrop{position:fixed;z-index:20;inset:0;display:flex;align-items:end;justify-content:center;padding-top:calc(20px + env(safe-area-inset-top));background:rgba(1,6,3,.7);backdrop-filter:blur(7px)}
.drawer{width:min(760px,100%);max-height:calc(100dvh - env(safe-area-inset-top) - 20px);overflow:auto;overscroll-behavior:contain;padding:22px max(16px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border:1px solid var(--line-strong);border-radius:28px 28px 0 0;background:#0f1d15;box-shadow:0 -24px 90px rgba(0,0,0,.55)}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.drawer-head h2{margin:0;font:600 29px/1.05 Fraunces,serif}.icon-button{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;background:#203227;color:var(--ink);font-size:23px}.drawer-intro{margin:10px 0 18px;color:var(--muted);font-size:12px}
.drawer-footer{position:sticky;bottom:-21px;z-index:2;display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding:13px 0 1px;background:#0f1d15}.drawer-footer .button{flex:1}
.passport-hero{display:grid;grid-template-columns:105px 1fr;gap:15px;align-items:center;margin:19px 0}.photo-slot{display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:4/5;padding:10px;border:1px solid var(--line);border-radius:18px;background:#1b3121;color:var(--leaf)}.photo-slot span{font:600 20px Fraunces,serif}.photo-slot i{font-size:8px;font-style:normal;text-transform:uppercase}.passport-status{display:block;margin-bottom:8px;color:var(--lime);font-size:11px;font-weight:700}.passport-hero p{margin:9px 0 3px;color:var(--muted);font-size:11px}.passport-hero small{color:#6f7f70;font-size:8px;word-break:break-all}
.passport-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:17px;overflow:hidden}.passport-grid div{min-height:74px;padding:12px}.passport-grid div:nth-child(even){border-left:1px solid var(--line)}.passport-grid div:nth-child(n+3){border-top:1px solid var(--line)}.passport-grid b{display:block;margin-top:5px;font-size:11px}.passport-why{margin-top:14px}.passport-notes{margin-top:14px;padding:13px;border:1px solid var(--line);border-radius:14px}.passport-notes p{margin:4px 0 0;color:var(--muted);font-size:11px}
.session-batches{display:grid;gap:12px}.session-batch{padding:16px;border:1px solid var(--line);border-radius:20px;background:#15261b}.session-batch-head{display:flex;align-items:center;gap:12px}.session-batch-head>span{display:grid;place-items:center;width:37px;height:37px;border:1px solid var(--line-strong);border-radius:50%;color:var(--lime);font-size:10px}.session-batch h3{margin:0;font:600 21px Fraunces,serif}.session-fields{display:grid;gap:10px}.session-fields label,.quick-form label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.shared-note{margin:12px 0;color:var(--muted);font-size:10px}.session-actions{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:7px}.session-actions .button{min-width:0;padding:0 7px;font-size:10px}
.stepper{display:flex;gap:6px;margin:17px 0}.stepper span{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:10px}.stepper span.active{border-color:var(--lime);background:var(--lime);color:#0a130d}
.select-list{display:grid;gap:7px;max-height:48dvh;overflow:auto;margin-top:12px}.select-plant{display:grid;grid-template-columns:28px 1fr;gap:1px 8px;align-items:center;min-height:58px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#15261b;color:var(--ink);text-align:left}.select-plant>span{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#203628;color:var(--lime)}.select-plant b{font-size:12px}.select-plant small{color:var(--muted);font-size:9px}.select-plant.selected{border-color:var(--lime);background:#1d3523}
.action-picker{display:grid;grid-template-columns:1fr 1fr;gap:9px}.action-choice{display:flex;align-items:center;gap:10px;min-height:61px;padding:10px;border:1px solid var(--line);border-radius:15px;background:#15261b;color:var(--ink);font-weight:700}.action-choice span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#213728;color:var(--lime)}.action-choice.selected{border-color:var(--lime)}
.quick-form{display:grid;gap:12px}.suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:-6px}.suggestions>span{width:100%;color:var(--muted);font-size:8px;text-transform:uppercase}.suggestions button{padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:#1c3022;color:var(--mint);font-size:9px}
.muted{color:var(--muted)}
#toast{position:fixed;z-index:40;left:50%;bottom:calc(94px + env(safe-area-inset-bottom));max-width:88%;overflow:hidden;padding:11px 15px;border-radius:999px;background:var(--lime);color:#0a130d;font-size:11px;font-weight:800;white-space:nowrap;text-overflow:ellipsis;opacity:0;pointer-events:none;transform:translate(-50%,18px);transition:opacity .2s ease,transform .2s ease}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:620px){
  .app-shell{padding:28px 24px 118px}.topbar{margin-bottom:55px}.today-hero,.session-intro,.quick-hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;padding:30px}.today-hero h2 span{display:inline}.session-cta{width:auto;min-width:220px}.action-facts{grid-template-columns:.7fr 1fr 1.5fr}.mix-grid{grid-template-columns:1fr 1fr}.library-tools{grid-template-columns:1fr auto;align-items:end}.plant-row{grid-template-columns:40px minmax(0,1fr) 220px}.plant-row-status{display:block}.record-grid{grid-template-columns:repeat(3,1fr)}.record-grid article:last-child{grid-column:auto}.session-fields{grid-template-columns:1fr 1fr 1fr}.drawer{padding:27px 25px calc(24px + env(safe-area-inset-bottom))}.drawer-footer{bottom:-25px;background:#0f1d15}.passport-grid{grid-template-columns:repeat(4,1fr)}.passport-grid div:nth-child(even),.passport-grid div:nth-child(n+3){border:0}.passport-grid div+div{border-left:1px solid var(--line)}.passport-grid div:nth-child(n+5){border-top:1px solid var(--line)}.passport-grid div:nth-child(5){border-left:0}}
@media(min-width:860px){
  .app-shell{padding-top:38px}.action-stack{grid-template-columns:1fr 1fr}.action-card{padding:21px}.action-controls .button{font-size:12px}.drawer-backdrop{align-items:center;padding:30px}.drawer{border-radius:28px}.bottom-nav{left:50%;right:auto;width:620px;transform:translateX(-50%);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0}.leaf-colocasia{width:340px}.leaf-monstera{width:390px}.leaf-palm{width:340px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.jungle-leaf{animation:none!important}.button,#toast{transition:none!important}}

/* V2.1–V2.3 intelligence layers */
.weather-card{margin:16px 0 22px;padding:18px;border:1px solid var(--line-strong);border-radius:22px;background:rgba(15,34,24,.9);box-shadow:0 14px 46px rgba(0,0,0,.2)}
.weather-card.loading,.weather-card.unavailable{min-height:132px}.weather-card h2{margin:0;font:600 25px/1.1 Fraunces,serif}.weather-card h2 span{color:var(--mint);font-size:16px}.weather-card p{margin:6px 0;color:var(--muted);font-size:11px}.weather-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.weather-impact{display:grid;gap:4px;margin:14px 0;padding:12px;border-left:2px solid var(--lime);background:rgba(196,240,111,.045)}.weather-impact span,.source-row>span,.recommended-strip>span{color:var(--leaf);font-size:9px;font-weight:800;letter-spacing:.12em}.weather-impact b{font-size:12px}.weather-plants{display:grid;gap:8px;margin-top:14px}.weather-plants>p{margin:0;text-transform:uppercase;letter-spacing:.08em}.weather-plants>div{display:grid;gap:7px;padding-top:8px;border-top:1px solid var(--line)}.weather-plants>div>button{padding:0;background:transparent;color:var(--ink);font-weight:700;text-align:left}.weather-footer{display:flex;justify-content:space-between;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.weather-footer a,.evidence-link{color:var(--mint);text-decoration-color:rgba(182,217,167,.35);text-underline-offset:3px}
.soil-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.soil-choices button{min-height:35px;padding:4px;border:1px solid var(--line);border-radius:9px;background:#15281c;color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}.soil-choices button.selected{border-color:var(--lime);background:#29422c;color:var(--lime)}
.answer-grid{display:grid;gap:10px;margin:15px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.answer-grid div{display:grid;gap:2px}.answer-grid span{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.answer-grid b{font-size:11px}.source-row{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:11px;font-size:10px}.source-row .muted{font-size:10px}
.compact-stack,.check-grid{display:grid;gap:9px}.followup-card,.check-card{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--glass)}.followup-card h3,.check-card h3{margin:0;font:600 19px Fraunces,serif}.followup-card p:not(.eyebrow),.check-card p:not(.eyebrow){margin:3px 0 0;color:var(--muted);font-size:10px}.check-actions{display:flex;justify-content:flex-end}.check-actions .button{min-height:40px}
.setup-panel{display:grid;gap:15px;margin-top:28px;padding:18px;border:1px solid var(--line);border-radius:22px;background:rgba(18,34,25,.65)}.setup-panel h2{margin:0;font:600 27px Fraunces,serif}.setup-panel p:not(.eyebrow){margin:2px 0 0;color:var(--muted);font-size:11px}.setup-list{display:grid;gap:5px}.setup-list button{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);background:transparent;color:var(--ink);font-size:11px;text-align:left}.setup-list button span,.setup-list>span{color:var(--muted);font-size:9px}
.recommendation-ledger{display:grid;gap:7px}.recommendation-ledger>button{display:grid;grid-template-columns:105px minmax(0,1fr) auto;gap:5px 10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--glass);color:var(--ink);text-align:left}.recommendation-ledger>button>b{font-size:12px}.recommendation-ledger>button>small{grid-column:2/4;color:var(--muted);font-size:9px}.rec-status{font-size:8px;font-weight:800;letter-spacing:.06em}.status-feed{color:var(--lime)}.status-check{color:var(--amber)}.status-hold{color:var(--coral)}.status-insufficient{color:var(--muted)}
.quick-buttons{display:grid;gap:8px}.quick-buttons .button{width:100%}
.plant-row-status>small{display:block;margin-top:3px;color:var(--leaf)}
.growth-stage-field{display:grid;gap:5px;margin:12px 0;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.growth-stage-field select{min-height:48px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:13px;background:#0b1710;color:var(--ink)}
button.photo-slot{border:1px solid var(--line);text-align:left;cursor:pointer}.passport-rec{display:grid;gap:11px;margin-top:14px;padding:14px;border:1px solid var(--line-strong);border-radius:17px;background:#14271b}.passport-rec>div:first-child{display:flex;justify-content:space-between;gap:10px}.passport-rec h3{margin:0;font:600 21px Fraunces,serif}.passport-rec dl,.health-output dl{display:grid;gap:7px;margin:0}.passport-rec dl>div,.health-output dl>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--line)}.passport-rec dt,.health-output dt{color:var(--muted);font-size:9px;text-transform:uppercase}.passport-rec dd,.health-output dd{margin:0;text-align:right;font-size:10px;font-weight:600}.passport-rec>p{margin:0;color:var(--muted);font-size:10px}.passport-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.recommended-strip{display:grid;gap:3px;margin:12px 0;padding:10px;border:1px solid rgba(196,240,111,.2);border-radius:11px;background:rgba(196,240,111,.04)}.recommended-strip b{font-size:10px}.session-note{grid-column:1/-1}.session-checks{display:grid;gap:7px;margin-top:22px}.session-checks>button{display:grid;gap:3px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#15261b;color:var(--ink);text-align:left}.session-checks>button span{color:var(--muted);font-size:9px}
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.photo-actions label{display:grid;place-items:center}.photo-actions input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.provider-notice{display:grid;gap:3px;margin:14px 0;padding:12px;border:1px solid rgba(224,191,103,.25);border-radius:13px;background:rgba(224,191,103,.055)}.provider-notice b{color:var(--amber);font-size:11px}.provider-notice span{color:var(--muted);font-size:9px}.health-output{padding:14px;border:1px solid var(--line);border-radius:16px;background:#13241a}.health-output dl>div{display:grid;grid-template-columns:95px 1fr}.health-output dd{text-align:left}.photo-history{display:grid;grid-template-columns:1fr 1fr;gap:8px}.photo-history article{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#14251a}.photo-history img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.photo-history article div{display:grid;gap:2px;padding:8px}.photo-history article b{font-size:8px}.photo-history article span{color:var(--muted);font-size:7px}.source-library{display:grid;gap:7px;margin-top:28px}.source-library>a{display:grid;gap:2px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--glass);color:var(--ink);text-decoration:none}.source-library>a b{font-size:10px}.source-library>a span{color:var(--muted);font-size:8px}
@media(min-width:620px){.answer-grid{grid-template-columns:.75fr 1fr 1.5fr}.weather-plants>div{grid-template-columns:1fr 360px;align-items:center}.setup-panel{grid-template-columns:1fr auto}.setup-list{grid-column:1/-1}.check-grid{grid-template-columns:1fr 1fr}.followup-card{grid-template-columns:1fr auto;align-items:center}.quick-buttons{grid-template-columns:1fr 1fr}.photo-history{grid-template-columns:repeat(3,1fr)}}
@media(max-width:390px){.soil-choices{grid-template-columns:1fr 1fr}.recommendation-ledger>button{grid-template-columns:90px 1fr}.recommendation-ledger .confidence-badge{grid-column:1}.recommendation-ledger>button>small{grid-column:2}.photo-actions{grid-template-columns:1fr}}
@media(max-width:619px){input,textarea,select{font-size:16px}.install-card{grid-template-columns:1fr}.install-card .button{width:100%}.session-actions{grid-template-columns:1fr 1fr}.session-actions .button:first-child{grid-column:1/-1}.drawer-footer .button{min-height:50px}.nav-button{min-height:48px}}
