:root{
  --bg:#f4f7f3;--surface:#fff;--surface-2:#edf3ee;--ink:#142019;--muted:#627069;--line:#dbe4dd;
  --green:#23613d;--green-2:#2f7a4d;--green-3:#dff1e5;--lime:#a9d26c;--dark:#11271b;--danger:#a73a3a;
  --warn:#a16a13;--shadow:0 18px 50px rgba(20,50,31,.10);--radius:22px;--radius-sm:14px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.shell{width:min(1180px,calc(100% - 36px));margin:0 auto}.narrow{width:min(760px,calc(100% - 36px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(244,247,243,.93);backdrop-filter:blur(18px);border-bottom:1px solid rgba(219,228,221,.9)}.nav-shell{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:20px;font-weight:900;display:flex;align-items:center;gap:10px;letter-spacing:-.03em}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--dark);display:grid;place-items:center;box-shadow:0 7px 20px rgba(17,39,27,.18)}.nav-links{display:flex;align-items:center;gap:8px}.nav-links a{padding:9px 12px;border-radius:10px;font-size:14px;font-weight:700;color:#526159}.nav-links a:hover,.nav-links a.active{background:var(--surface);color:var(--green)}.menu-button{display:none;border:0;background:transparent;font-size:25px}.mobile-nav{display:none;padding:8px 18px 18px;background:var(--surface);border-top:1px solid var(--line)}.mobile-nav.open{display:grid}.mobile-nav a{padding:12px;border-bottom:1px solid var(--line);font-weight:700}
.flash-stack{padding-top:14px}.flash{padding:12px 15px;border-radius:12px;margin-bottom:8px;font-weight:700;font-size:14px}.flash.success,.callout.success{background:#e3f5e9;color:#1d5b34;border:1px solid #bcdcc7}.flash.error{background:#fde9e9;color:#8d2b2b;border:1px solid #efc2c2}.flash.info{background:#e9f0fd;color:#315d94;border:1px solid #c8d8f0}
.hero{background:linear-gradient(140deg,#eef5ef 0%,#f8faf7 55%,#edf2ea 100%);padding:64px 0 76px;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.eyebrow,.card-kicker,.step-label{font-size:12px;font-weight:900;letter-spacing:.14em;color:var(--green-2)}.hero-copy h1{font-size:clamp(46px,6vw,76px);line-height:.97;margin:14px 0 20px;letter-spacing:-.06em}.hero-copy h1 span{color:var(--green-2)}.hero-copy>p{font-size:20px;color:var(--muted);max-width:530px}.hero-points{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px;color:#415249;font-weight:700;font-size:14px}.hero-points span{white-space:nowrap}
.scan-card{background:var(--surface);border:1px solid #e1e8e2;border-radius:28px;padding:26px;box-shadow:var(--shadow)}.scan-card-head,.goal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.scan-card h2{margin:3px 0 0;font-size:21px;letter-spacing:-.03em}.limit-pill{background:var(--surface-2);color:var(--green);font-size:12px;font-weight:800;padding:6px 10px;border-radius:999px}.photo-drop{display:block;position:relative;margin:18px 0 24px;border:2px dashed #a9bdb0;border-radius:20px;min-height:240px;overflow:hidden;cursor:pointer;background:#f7faf7}.photo-drop:hover{border-color:var(--green-2);background:#f3f8f4}.photo-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:2}.photo-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.camera-icon{font-size:44px;margin-bottom:7px}.photo-empty strong{font-size:20px}.photo-empty small{color:var(--muted);margin-top:3px}.photo-drop img{width:100%;height:300px;object-fit:cover}.photo-change{position:absolute;z-index:4;bottom:12px;right:12px;border:0;border-radius:999px;padding:9px 12px;background:rgba(17,39,27,.86);color:white;font-size:12px;font-weight:800;cursor:pointer}.goal-heading{margin-top:4px}.goal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 18px}.goal-option{position:relative;border:1px solid var(--line);border-radius:15px;padding:14px 8px;text-align:center;cursor:pointer;transition:.16s;background:#fbfcfb}.goal-option:has(input:checked){border-color:var(--green-2);box-shadow:0 0 0 2px rgba(47,122,77,.12);background:#f2f9f4}.goal-option input{position:absolute;opacity:0}.goal-icon{font-size:24px;display:block;margin-bottom:5px}.goal-option strong{display:block;font-size:13px}.goal-option small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.field{display:block;margin:14px 0}.field>span{display:flex;justify-content:space-between;font-size:13px;font-weight:800;margin-bottom:7px}.field>span small,.field>small{font-weight:500;color:var(--muted)}.field input,.field textarea,.field select,.search-bar input{width:100%;border:1px solid #ced9d1;background:#fff;color:var(--ink);padding:12px 13px;border-radius:12px;outline:0}.field textarea{resize:vertical}.field input:focus,.field textarea:focus,.field select:focus,.search-bar input:focus{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(47,122,77,.10)}
.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 16px;font-weight:850;border:0;cursor:pointer;transition:.15s}.primary-button{background:var(--green);color:#fff;box-shadow:0 8px 20px rgba(35,97,61,.17)}.primary-button:hover{background:var(--green-2);transform:translateY(-1px)}.primary-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.secondary-button{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.secondary-button:hover{border-color:#aebfb3;background:#f7faf7}.secondary-button.small{padding:7px 10px;font-size:12px}.wide{width:100%}.scan-button{width:100%;justify-content:space-between;padding:15px 17px;font-size:16px}.limit-note{text-align:center;font-size:13px;color:var(--muted)}.limit-note a,.text-link,.auth-foot a{color:var(--green);font-weight:800}.text-button{border:0;background:transparent;padding:8px;font-weight:800;cursor:pointer}.text-button.danger{color:var(--danger)}
.how-section{padding:78px 0}.section-title{text-align:center;max-width:680px;margin:0 auto 36px}.section-title h2{font-size:38px;line-height:1.05;letter-spacing:-.04em;margin:9px 0}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.how-grid article{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px;position:relative}.how-grid article>b{position:absolute;right:20px;top:18px;color:#c5d1c9;font-size:13px}.how-grid article>span{font-size:30px}.how-grid h3{font-size:22px;margin:13px 0 5px}.how-grid p{color:var(--muted);margin:0}.safety-strip{background:var(--dark);color:#d7e4db;padding:19px 0;font-size:13px;text-align:center}.safety-strip strong{color:#fff}.site-footer{background:#0c1b12;color:#9fb1a5;padding:40px 0}.footer-grid{display:flex;justify-content:space-between;gap:20px}.footer-grid strong{color:white}.footer-grid p{margin:5px 0 0;font-size:13px}.footer-links{display:flex;gap:20px;align-items:center;font-size:13px}.footer-links a:hover{color:white}
.result-hero{padding:48px 0;background:linear-gradient(180deg,#edf4ee,#f5f7f4);border-bottom:1px solid var(--line)}.result-grid{display:grid;grid-template-columns:420px 1fr;gap:48px;align-items:center}.result-photo{position:relative;border-radius:25px;overflow:hidden;box-shadow:var(--shadow);background:#dce8de;aspect-ratio:4/3}.result-photo img{width:100%;height:100%;object-fit:cover}.goal-badge{position:absolute;left:15px;bottom:15px;background:rgba(17,39,27,.88);backdrop-filter:blur(8px);color:white;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:850}.result-intro h1{font-size:46px;line-height:1.02;letter-spacing:-.05em;margin:9px 0 5px}.latin{font-family:Georgia,serif;font-style:italic;color:var(--muted);font-size:18px}.confidence{display:grid;grid-template-columns:1fr auto;gap:7px;margin:22px 0 16px;max-width:440px}.confidence span,.confidence strong{font-size:13px}.confidence>div{grid-column:1/-1;height:8px;background:#d9e2dc;border-radius:999px;overflow:hidden}.confidence i{display:block;height:100%;border-radius:inherit;background:var(--green-2)}.confidence i.medium{background:#b27d27}.confidence i.low{background:#b54b4b}.status-row{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:13px}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;background:#edf0ee;color:#5e6c63}.status.healthy{background:#ddf2e4;color:#1f693c}.status.needs-attention{background:#fff0cd;color:#865a12}.status.unhealthy{background:#fde0df;color:#9b332f}.result-intro .lead{font-size:17px;color:#495a50;max-width:670px}.callout{border:1px solid #d9e2dc;border-radius:15px;padding:14px 16px;background:#f7faf7;margin:16px 0}.callout p{margin:4px 0 0;color:var(--muted)}.callout.warn{border-color:#e5c989;background:#fff8e9;color:#714d12}
.result-body,.page-shell{padding:48px 0 88px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.content-main{display:grid;gap:20px}.content-side{display:grid;gap:16px;position:sticky;top:92px}.content-card,.side-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 7px 24px rgba(20,50,31,.04)}.content-card h2,.side-card h3{letter-spacing:-.03em;margin-top:5px}.action-card h2{font-size:31px}.steps{display:grid;gap:10px;margin-top:20px}.step{display:grid;grid-template-columns:36px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}.step>b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--green-3);color:var(--green);font-size:13px}.step h3{font-size:16px;margin:1px 0 3px}.step p{margin:0;color:var(--muted)}.timeline{display:grid;grid-template-columns:36px 1fr;gap:12px;background:var(--surface-2);padding:14px;border-radius:14px;margin-top:12px}.timeline p{margin:2px 0 0;color:var(--muted)}.method-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.method-list>div{border:1px solid var(--line);border-radius:14px;padding:15px}.method-list span{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--green-2);text-transform:uppercase}.method-list h3{margin:4px 0;font-size:16px}.method-list p{margin:0;color:var(--muted);font-size:14px}.avoid-card{border-left:4px solid #d08d31}.avoid-card ul,.side-card ul,.two-col ul{padding-left:20px}.avoid-card li,.side-card li,.two-col li{margin:7px 0;color:#4e5d54}.care-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.care-grid>div{background:var(--surface-2);padding:15px;border-radius:14px}.care-grid p{margin:4px 0 0;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px}.side-card p{font-size:14px;color:var(--muted)}.safety-card{border-color:#e4c99b;background:#fffaf1}.sticky-actions{position:sticky;bottom:0;z-index:40;border-top:1px solid var(--line);background:rgba(244,247,243,.94);backdrop-filter:blur(14px);padding:10px 0}.sticky-actions .shell{display:flex;justify-content:flex-end;gap:10px}
.page-heading{margin-bottom:28px}.page-heading h1{font-size:42px;letter-spacing:-.045em;line-height:1.05;margin:7px 0}.page-heading p{color:var(--muted);max-width:680px}.page-heading.split{display:flex;align-items:end;justify-content:space-between;gap:20px}.empty-state{text-align:center;background:var(--surface);border:1px dashed #bdcbbf;border-radius:22px;padding:60px 20px}.empty-state>span{font-size:48px}.empty-state h2{margin-bottom:4px}.empty-state p{color:var(--muted);margin-top:0}.scan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.scan-tile{display:grid;grid-template-columns:100px 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px;transition:.15s}.scan-tile:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(20,50,31,.08)}.scan-tile img{width:100px;height:90px;object-fit:cover;border-radius:11px}.scan-tile span{font-size:11px;font-weight:850;color:var(--green-2)}.scan-tile h3{margin:3px 0;font-size:17px}.scan-tile em{font-size:12px;color:var(--muted)}.scan-tile p{margin:4px 0 0;color:var(--muted);font-size:11px}.scan-tile>b{padding:8px}.plant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.plant-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.15s}.plant-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.plant-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.plant-card>div{padding:16px}.plant-card h3{font-size:21px;margin:8px 0 2px}.plant-card p,.plant-card em{margin:0;color:var(--muted);font-size:13px}.plant-profile{display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:center;margin-bottom:30px}.plant-profile img{width:180px;height:150px;border-radius:20px;object-fit:cover}.plant-profile h1{font-size:42px;letter-spacing:-.04em;margin:5px 0}.timeline-list{display:grid;gap:10px;margin:18px 0}.timeline-list a{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:10px;border:1px solid var(--line);border-radius:14px}.timeline-list img{width:90px;height:78px;object-fit:cover;border-radius:10px}.timeline-list span{display:block;font-size:12px;color:var(--green-2);font-weight:800}.timeline-list p{margin:4px 0 0;color:var(--muted);font-size:13px}
.auth-page,.setup-page{background:linear-gradient(145deg,#eaf2eb,#f8faf7)}.auth-wrap{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:48px 18px}.auth-card,.setup-card{width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.setup-card{width:min(720px,100%)}.auth-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:var(--dark);font-size:27px}.auth-card h1,.setup-card h1{font-size:33px;letter-spacing:-.04em;margin:16px 0 2px}.auth-card>p,.setup-card>p{color:var(--muted);margin-top:0}.auth-foot{text-align:center;margin-top:18px;color:var(--muted);font-size:13px}.setup-section{border-top:1px solid var(--line);padding-top:12px;margin-top:20px}.setup-section h2{font-size:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line)}.toggle-row select,.inline-form select{border:1px solid var(--line);border-radius:9px;padding:7px;background:white}.admin-nav{display:flex;gap:8px}.admin-nav a{padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:white;font-size:13px;font-weight:800}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat-grid>div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px}.stat-grid span{display:block;color:var(--muted);font-size:12px;font-weight:800}.stat-grid strong{font-size:30px;letter-spacing:-.04em}.metric-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:13px}.metric-row:first-of-type{border-top:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}td small{display:block;color:var(--muted)}.table-thumb{width:54px;height:46px;border-radius:8px;object-fit:cover}.inline-form{display:flex;gap:6px;align-items:center}.search-bar{display:flex;gap:8px;margin-bottom:15px}.search-bar input{max-width:420px}
.legal{max-width:850px}.legal h1{font-size:44px}.legal h2{margin-top:30px}.legal p,.legal li{color:#49584f}.legal li{margin:7px 0}
code{background:#edf1ee;border-radius:6px;padding:2px 5px;font-size:.9em}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:35px}.hero-copy{text-align:center}.hero-copy>p{margin-left:auto;margin-right:auto}.hero-points{justify-content:center}.result-grid{grid-template-columns:330px 1fr;gap:28px}.content-grid{grid-template-columns:1fr}.content-side{position:static;grid-template-columns:repeat(2,1fr)}.plant-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.shell,.narrow{width:min(100% - 24px,1180px)}.nav-links{display:none}.menu-button{display:block}.hero{padding:38px 0 48px}.hero-copy h1{font-size:48px}.hero-copy>p{font-size:17px}.scan-card{padding:18px;border-radius:21px}.goal-grid{grid-template-columns:repeat(2,1fr)}.how-section{padding:52px 0}.how-grid{grid-template-columns:1fr}.section-title h2{font-size:31px}.result-grid{grid-template-columns:1fr}.result-photo{max-height:390px}.result-intro h1{font-size:38px}.result-body,.page-shell{padding:32px 0 70px}.content-card,.side-card{padding:19px}.content-side{grid-template-columns:1fr}.method-list,.care-grid,.two-col{grid-template-columns:1fr}.scan-grid,.plant-grid{grid-template-columns:1fr}.page-heading.split{display:block}.page-heading.split>.primary-button,.page-heading.split>.secondary-button{margin-top:10px}.page-heading h1{font-size:35px}.plant-profile{grid-template-columns:110px 1fr;gap:15px}.plant-profile img{width:110px;height:110px}.plant-profile h1{font-size:30px}.stat-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.footer-grid{display:grid}.sticky-actions .shell{justify-content:stretch}.sticky-actions a{flex:1}.admin-nav{margin-top:12px;flex-wrap:wrap}}
@media(max-width:420px){.hero-copy h1{font-size:41px}.hero-points{display:grid;gap:6px}.scan-card-head{display:block}.limit-pill{display:inline-block;margin-top:8px}.photo-drop{min-height:210px}.scan-tile{grid-template-columns:82px 1fr auto}.scan-tile img{width:82px;height:78px}.stat-grid{grid-template-columns:1fr 1fr}.auth-card,.setup-card{padding:22px}}


/* v1.0.1 — scan progress + responsive admin overview */
body.analysis-active{overflow:hidden}
.analysis-overlay[hidden]{display:none!important}
.analysis-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(17,39,27,.72);backdrop-filter:blur(9px)}
.analysis-modal{width:min(520px,100%);background:var(--surface);border:1px solid rgba(255,255,255,.45);border-radius:24px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.28);text-align:center}
.analysis-mark{width:62px;height:62px;margin:0 auto 15px;border-radius:19px;display:grid;place-items:center;background:var(--dark);font-size:31px;box-shadow:0 12px 28px rgba(17,39,27,.18);animation:plantfixPulse 1.8s ease-in-out infinite}
.analysis-modal h2{font-size:30px;letter-spacing:-.04em;line-height:1.05;margin:8px 0 8px}
.analysis-modal>p{margin:0 auto 22px;max-width:420px;color:var(--muted);min-height:48px}
.analysis-progress{height:13px;border-radius:999px;background:#e5ece6;overflow:hidden;box-shadow:inset 0 1px 2px rgba(17,39,27,.08)}
.analysis-progress>span{display:block;width:8%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--green-2),var(--lime));transition:width .55s ease;position:relative;overflow:hidden}
.analysis-progress>span:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.45) 45%,transparent 70%);transform:translateX(-100%);animation:plantfixShimmer 1.4s linear infinite}
.analysis-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:9px;font-size:12px;color:var(--muted)}
.analysis-progress-meta span{min-width:0;text-align:left;font-weight:750}
.analysis-progress-meta strong{color:var(--green);font-size:13px}
.analysis-modal>small{display:block;margin-top:18px;color:#7a867f;font-size:11px;line-height:1.45}
@keyframes plantfixPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes plantfixShimmer{to{transform:translateX(100%)}}

.content-main,.content-side,.content-card,.side-card,.table-wrap{min-width:0}
.metric-row>span,.metric-row>strong{min-width:0;overflow-wrap:anywhere}

@media(max-width:700px){
  .analysis-modal{padding:24px 20px;border-radius:21px}
  .analysis-modal h2{font-size:27px}
  .analysis-modal>p{font-size:14px;min-height:44px}
  .admin-overview .admin-recent-wrap{overflow:visible}
  .admin-overview .admin-recent-table{min-width:0;width:100%}
  .admin-overview .admin-recent-table thead{display:none}
  .admin-overview .admin-recent-table tbody,.admin-overview .admin-recent-table tr,.admin-overview .admin-recent-table td{display:block;width:100%}
  .admin-overview .admin-recent-table tr{padding:10px 0;border-bottom:1px solid var(--line)}
  .admin-overview .admin-recent-table tr:last-child{border-bottom:0;padding-bottom:0}
  .admin-overview .admin-recent-table td{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start;padding:6px 0;border:0;overflow-wrap:anywhere}
  .admin-overview .admin-recent-table td:before{content:attr(data-label);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
  .admin-overview .admin-recent-table td>a{font-weight:800;color:var(--green)}
  .admin-overview .metric-row{align-items:flex-start}
  .admin-overview .metric-row>span{flex:1 1 auto}
  .admin-overview .metric-row>strong{flex:0 1 58%;max-width:58%;text-align:right}
  .admin-overview .content-side{width:100%}
  .admin-overview .side-card{width:100%;overflow:hidden}
}
