@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800;900&display=swap');
:root{--g:#087f5b;--g2:#45a85e;--bg:#f5f7f3;--ink:#17352c;--muted:#7b8e87;--line:#e4ebe6;--shadow:0 14px 40px rgba(17,55,43,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,"Segoe UI",Arial,sans-serif;padding-bottom:90px}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#e7f4ea,transparent 45%),#f7f8f5}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:32px;padding:28px;box-shadow:var(--shadow);text-align:center}.logo{width:150px;max-height:120px;object-fit:contain}.auth h1{font-size:38px;margin:8px 0 2px}.auth p{color:var(--muted);margin:0 0 20px}.pill,.tag{display:inline-block;background:#e9f6ee;color:var(--g);padding:6px 11px;border-radius:999px;font-size:12px;font-weight:700}.tabs{display:flex;background:#f1f4f1;border-radius:14px;padding:4px;margin:20px 0}.tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:11px;color:var(--muted)}.tabs .active{background:#fff;color:var(--g);box-shadow:0 3px 12px #0000000d}form{text-align:right}label{display:block;font-size:13px;font-weight:650;margin:12px 0 6px}input,select,textarea{width:100%;border:1px solid #dce5df;background:#fff;border-radius:13px;padding:12px 13px;outline:none;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:var(--g);box-shadow:0 0 0 3px #087f5b12}textarea{min-height:80px;resize:vertical}button{border:0;background:var(--g);color:#fff;border-radius:14px;padding:13px 16px;font-weight:750}form>button{width:100%;margin-top:12px}.ghost{background:#edf2ee;color:var(--ink)}.secondary{background:#eaf6ed;color:var(--g)}.alert{padding:12px;border-radius:12px;margin:12px 0}.bad{background:#fff0ef;color:#a63a32}.good{background:#eaf7ed;color:#267642}header{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1080px)/2));position:sticky;top:0;z-index:5}header h2{margin:2px 0;font-size:20px}header small{color:var(--muted)}header img{width:62px;height:58px;object-fit:contain}.wrap{max-width:1080px;margin:0 auto;padding:24px 18px}.admin-link{display:block;background:#163c31;color:#fff;padding:13px 16px;border-radius:16px;text-decoration:none;margin-bottom:18px}.today{display:flex;align-items:center;justify-content:space-between}.today h1{margin:3px 0}.today small{color:var(--muted)}.round{width:48px;height:48px;border-radius:50%;font-size:26px;padding:0}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 26px}.summary>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;text-align:center}.summary b{display:block;font-size:25px;color:var(--g)}.summary span{font-size:12px;color:var(--muted)}.plantgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.plantcard{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 8px 24px rgba(17,55,43,.04)}.plantimg{height:180px;background:#e8f2e9;display:grid;place-items:center;font-size:55px}.plantimg img{width:100%;height:100%;object-fit:cover}.plantbody{padding:14px}.plantbody h3{margin:0 0 5px}.plantbody small{color:var(--muted)}.due{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.due span{background:#f2f6f2;border-radius:10px;padding:7px;font-size:11px}.empty{color:var(--muted);text-align:center}.empty.big{grid-column:1/-1;min-height:300px;background:#fff;border:1px dashed #ccd9cf;border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:38px}.empty.big b{font-size:18px}.empty.big span{font-size:13px}.empty.big button{font-size:14px}dialog{border:0;border-radius:24px;width:min(520px,calc(100% - 24px));box-shadow:0 30px 80px #0003;padding:22px}dialog::backdrop{background:#17352c88;backdrop-filter:blur(4px)}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.threecol{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.back{display:inline-block;color:var(--g);text-decoration:none;margin-bottom:15px}.profile{text-align:center;max-width:700px;margin:auto}.hero-img{width:160px;height:160px;border-radius:50%;overflow:hidden;background:#e5f1e7;display:grid;place-items:center;margin:5px auto;font-size:60px;border:6px solid #fff;box-shadow:var(--shadow)}.hero-img img{width:100%;height:100%;object-fit:cover}.profile>h1{margin-bottom:2px}.profile>p{color:var(--muted)}.statgrid,.actiongrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.statgrid div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px}.statgrid b,.statgrid small{display:block}.statgrid small{color:var(--muted);margin-top:5px}details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;text-align:right;margin:18px 0}summary{cursor:pointer;font-weight:700}.timeline{text-align:right}.timeline article{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;margin:8px 0}.timeline i{width:38px;height:38px;border-radius:12px;background:#edf5ee;display:grid;place-items:center;font-style:normal}.timeline article div{flex:1}.timeline b,.timeline small{display:block}.timeline small{color:var(--muted);margin-top:3px}.timeline p{margin:5px 0}.timeline img{width:55px;height:55px;border-radius:12px;object-fit:cover}nav{position:fixed;bottom:0;left:0;right:0;height:74px;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;z-index:10;padding-bottom:env(safe-area-inset-bottom)}nav a{width:min(150px,20%);text-decoration:none;color:#83928d;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:19px;cursor:pointer}nav span{font-size:10px;margin-top:3px}nav .active{color:var(--g)}.filter,.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:18px}.filter{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}.filter label{margin:0}.panel h3{margin-top:0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:right;padding:12px;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--muted)}td .tag{margin-right:7px}.mini{padding:7px 10px;font-size:11px}.danger{background:#b34842}@media(max-width:600px){.wrap{padding:18px 12px}.summary{gap:7px}.summary>div{padding:12px 6px}.summary b{font-size:21px}.plantgrid{grid-template-columns:1fr 1fr;gap:9px}.plantimg{height:135px}.plantbody{padding:10px}.plantbody h3{font-size:15px}.due{display:grid}.twocol,.threecol,.filter{grid-template-columns:1fr}.auth-card{padding:22px}.logo{width:125px}.profile{padding-bottom:20px}}

.register-switch{width:100%;margin-top:10px;background:#f1f6f3;color:var(--g);border:1px solid #d9e7df}.auth-card h3{margin:8px 0 14px;font-size:18px}
\n/* Mobile app + login layout */
html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{width:100%;max-width:100%;overflow-x:hidden;-webkit-tap-highlight-color:transparent}.auth-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;margin:0 auto 14px}.auth-brand .logo{display:block;margin:0 auto 8px}.auth-subtitle{display:block;text-align:center;color:var(--g);font-size:13px;font-weight:800;line-height:1.8}.auth input,.auth select,.auth textarea{font-size:16px}@media(max-width:600px){body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.auth{display:block;min-height:100dvh;padding:0;background:#fff}.auth-card{width:100%;min-height:100dvh;border:0;border-radius:0;box-shadow:none;padding:calc(28px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center}.auth-brand{margin-bottom:12px}.auth-brand .logo{width:138px;max-height:105px;margin-bottom:8px}.auth-subtitle{font-size:13px}.auth h1{font-size:34px;margin-top:4px}.auth form{width:100%;max-width:430px;margin-left:auto;margin-right:auto}header{height:70px;padding-left:14px;padding-right:14px}nav{height:calc(72px + env(safe-area-inset-bottom))}.round{min-width:48px;min-height:48px}button{min-height:46px}}\n
/* Login text highlights only — layout intentionally unchanged */
.auth-subtitle.login-highlight{display:inline-block;width:auto;align-self:center;padding:7px 16px;border-radius:999px;background:#e7f5ec;border:1px solid #c9e8d5;color:#087f5b;font-weight:850;letter-spacing:-.15px;box-shadow:0 4px 12px rgba(8,127,91,.06)}
.auth p.care-highlight{display:inline-block;align-self:center;width:auto;padding:7px 14px;border-radius:11px;background:#f4f0df;border:1px solid #e9dfb8;color:#64746c;font-weight:750;line-height:1.8;margin:0 0 20px}

/* Login text highlights - cache-busted */
.auth-subtitle.login-highlight{display:table!important;width:auto!important;max-width:90%;margin:8px auto 10px!important;padding:8px 18px!important;border-radius:12px!important;background:#e2f5ea!important;border:1px solid #b9dfc8!important;color:#087f5b!important;font-weight:900!important;box-shadow:none!important}
.auth p.care-highlight{display:table!important;width:auto!important;max-width:92%;margin:0 auto 20px!important;padding:8px 16px!important;border-radius:12px!important;background:#fff2d9!important;border:1px solid #efd7a5!important;color:#6e6249!important;font-weight:800!important;line-height:1.8!important}

/* v6 — app title typography only */
.auth h1{
  display:table;
  margin:8px auto 7px!important;
  color:#123f32;
  font-family:Tahoma,"Segoe UI",Arial,sans-serif;
  font-size:42px!important;
  font-weight:900!important;
  line-height:1.25;
  letter-spacing:-1.2px;
  text-shadow:0 2px 0 rgba(8,127,91,.06);
  position:relative;
}
.auth h1::after{
  content:"";
  display:block;
  width:38px;
  height:3px;
  margin:7px auto 0;
  border-radius:999px;
  background:var(--g);
  opacity:.72;
}
@media(max-width:600px){.auth h1{font-size:39px!important}}

/* v8 exact global typography from ALMIN Stock */
html,body,body *,button,input,select,textarea,a,label,h1,h2,h3,h4,h5,h6,p,span,small,b,strong,table,th,td,summary,details,dialog,nav{font-family:Vazirmatn,Tahoma,"Segoe UI",Arial,sans-serif!important;}
/* user management + auth history */
.inline-form{display:inline-block;margin:2px}.inline-form button{width:auto;margin:0}.mini-link{display:inline-block;padding:7px 10px;border-radius:10px;background:#edf5ee;color:var(--g);text-decoration:none;font-size:11px;font-weight:800;margin:2px}.user-name-link{color:var(--g);font-weight:800;text-decoration:none}.log-in,.log-out{display:inline-block;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800}.log-in{background:#e7f5ec;color:#087f5b}.log-out{background:#f7eceb;color:#a0443e}.user-profile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.user-profile-grid>div{background:#f7f9f7;border:1px solid var(--line);border-radius:14px;padding:13px}.user-profile-grid small,.user-profile-grid b{display:block}.user-profile-grid small{color:var(--muted);margin-bottom:5px}.admin-actions{display:flex;gap:8px;margin:14px 0 22px}.admin-actions form{flex:1}.admin-actions button{width:100%;margin:0}.admin-plants{margin-bottom:22px}@media(max-width:600px){.user-profile-grid{grid-template-columns:1fr 1fr}.admin-actions{display:grid;grid-template-columns:1fr}.admin .tablewrap table{min-width:820px}}

/* v9 mobile app lock + plant card controls */
html,body{margin:0;width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior-x:none;-webkit-text-size-adjust:100%;touch-action:pan-y;}
*,*::before,*::after{box-sizing:border-box;max-width:100%;}
input,select,textarea{font-size:16px!important;}
.wrap,header,nav,dialog{max-width:100vw;}
.plantcard{position:relative}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.card-actions .edit-card,.card-actions .delete-card{min-height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}.card-actions .edit-card{background:#edf5ee;color:var(--g)}.delete-card-form{margin:0}.card-actions .delete-card{width:100%;margin:0;padding:6px;background:#b34842;color:#fff;border:0}.profile details .danger{width:100%;margin-top:10px}
@media(max-width:600px){.wrap{width:100%;max-width:100vw}.plantgrid{width:100%}.plantcard{min-width:0}.plantbody{min-width:0}.plantbody h3,.plantbody small{overflow-wrap:anywhere}dialog{max-height:88dvh;overflow:auto}}

.account-manage{margin:18px 0;background:#f9fbf9}.account-manage summary{color:var(--g)}.account-manage small,.admin-help{color:var(--muted);font-weight:400}.admin-account{border:1px solid #cfe1d4}.admin-account h3{color:var(--g)}

/* 2026-10-17: touch feedback + clickable care summary + operation loader */
.summary .summary-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;text-align:center;text-decoration:none;color:inherit;display:block;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.summary .summary-card b{display:block;font-size:25px;color:var(--g)}.summary .summary-card span{font-size:12px;color:var(--muted)}.summary .summary-card:active{transform:scale(.96)}.summary .active-summary{border-color:var(--g);box-shadow:0 0 0 2px rgba(8,127,91,.08)}
button,.mini-link,.admin-link,nav a,.plantcard,.summary-card{transition:transform .11s ease,filter .11s ease,box-shadow .11s ease!important;-webkit-tap-highlight-color:rgba(8,127,91,.12)}button:active,.mini-link:active,.admin-link:active,nav a:active,.plantcard:active{transform:scale(.96)!important;filter:brightness(.94)}
#operationLoader{position:fixed;inset:0;z-index:99999;background:rgba(247,250,248,.96);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;text-align:center}#operationLoader.show{display:flex}.operation-loader-card{width:min(310px,82vw);padding:28px 22px;border-radius:28px;background:#fff;border:1px solid #e0ebe4;box-shadow:0 24px 70px rgba(20,70,52,.16)}.operation-logo-wrap{width:150px;height:120px;margin:0 auto 14px;display:grid;place-items:center;position:relative}.operation-logo-wrap:before,.operation-logo-wrap:after{content:"";position:absolute;border:2px solid rgba(8,127,91,.18);border-top-color:var(--g);border-radius:50%;animation:opSpin 1.15s linear infinite}.operation-logo-wrap:before{width:132px;height:132px}.operation-logo-wrap:after{width:114px;height:114px;animation-direction:reverse;animation-duration:1.6s}.operation-logo{width:104px;height:104px;object-fit:contain;animation:opPulse 1.15s ease-in-out infinite}.operation-loader-card b{display:block;font-size:17px;margin-top:8px}.operation-loader-card small{display:block;color:var(--muted);margin-top:7px}@keyframes opSpin{to{transform:rotate(360deg)}}@keyframes opPulse{0%,100%{transform:scale(.94);opacity:.88}50%{transform:scale(1.04);opacity:1}}

/* 2026-10-17 v2: universal 3-second operation loader with non-mirrored 3D ALMIN logo */
.operation-logo-wrap{display:none!important}
.operation-logo-stage{width:190px;height:155px;margin:0 auto 12px;display:grid;place-items:center;position:relative;perspective:700px;transform-style:preserve-3d}
.operation-logo-3d{width:150px;height:132px;display:grid;place-items:center;position:relative;transform-style:preserve-3d;animation:almin3d 1.35s ease-in-out infinite;will-change:transform}
.operation-logo-3d::before{content:"";position:absolute;inset:10px 5px 6px;border-radius:28px;background:rgba(8,127,91,.10);filter:blur(13px);transform:translateZ(-22px) translate(8px,10px);animation:alminDepth 1.35s ease-in-out infinite}
.operation-logo-3d .operation-logo{width:150px;height:132px;object-fit:contain;animation:none!important;position:relative;z-index:2;filter:drop-shadow(0 12px 9px rgba(5,79,57,.18)) drop-shadow(0 2px 1px rgba(255,255,255,.9))}
.operation-shadow{position:absolute;width:112px;height:18px;bottom:2px;border-radius:50%;background:rgba(20,70,52,.14);filter:blur(7px);animation:alminShadow 1.35s ease-in-out infinite}
@keyframes almin3d{0%,100%{transform:translateY(2px) rotateX(7deg) rotateZ(-2deg) scale(.97)}25%{transform:translateY(-7px) rotateX(-5deg) rotateZ(1.5deg) scale(1.01)}50%{transform:translateY(-11px) rotateX(5deg) rotateZ(2deg) scale(1.035)}75%{transform:translateY(-5px) rotateX(-3deg) rotateZ(-1deg) scale(1.01)}}
@keyframes alminDepth{0%,100%{opacity:.45;transform:translateZ(-22px) translate(8px,10px) scale(.95)}50%{opacity:.7;transform:translateZ(-28px) translate(10px,14px) scale(1.04)}}
@keyframes alminShadow{0%,100%{opacity:.48;transform:scale(.86)}50%{opacity:.22;transform:scale(1.08)}}

/* loader v4: explicit top-layer visibility */
#operationLoader.show{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:all!important}

/* 2026-10-17 v6: premium 2-second ALMIN operation loader */
#operationLoader{background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.99) 0,rgba(244,250,247,.985) 48%,rgba(228,241,235,.98) 100%)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important}
.operation-loader-card{width:min(330px,84vw)!important;padding:32px 24px 28px!important;border-radius:34px!important;background:rgba(255,255,255,.78)!important;border:1px solid rgba(255,255,255,.95)!important;box-shadow:0 30px 90px rgba(5,72,51,.14),inset 0 1px 0 #fff!important;overflow:hidden;position:relative}
.operation-loader-card:before{content:"";position:absolute;width:180px;height:180px;left:50%;top:68px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(8,127,91,.13),rgba(8,127,91,0) 70%);animation:premiumGlow 1s ease-in-out infinite}
.operation-logo-stage{width:210px!important;height:170px!important;margin:0 auto 8px!important;perspective:1000px!important}
.operation-logo-stage:before,.operation-logo-stage:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(8,127,91,.14);pointer-events:none}
.operation-logo-stage:before{width:166px;height:166px;animation:premiumRing 2s linear infinite}
.operation-logo-stage:after{width:142px;height:142px;border-style:dashed;animation:premiumRing 1.45s linear infinite reverse}
.operation-logo-3d{width:164px!important;height:145px!important;animation:premiumLogo 1s cubic-bezier(.45,.05,.25,1) infinite!important;z-index:2}
.operation-logo-3d::before{inset:18px 10px 8px!important;background:rgba(4,91,64,.13)!important;filter:blur(18px)!important;animation:none!important;transform:translate3d(9px,12px,-35px)!important}
.operation-logo-3d .operation-logo{width:164px!important;height:145px!important;filter:drop-shadow(0 15px 12px rgba(3,76,54,.19)) drop-shadow(0 2px 1px rgba(255,255,255,.9))!important;backface-visibility:visible;-webkit-backface-visibility:visible}
.operation-shadow{width:120px!important;height:15px!important;bottom:4px!important;background:rgba(4,77,55,.15)!important;filter:blur(8px)!important;animation:premiumShadow 1s ease-in-out infinite!important}
.operation-loader-card b{font-size:17px!important;letter-spacing:-.2px;margin-top:7px!important;color:#123d30}.operation-loader-card small{font-size:12px;margin-top:8px!important;color:#6e877e!important}
@keyframes premiumLogo{0%,100%{transform:translate3d(0,3px,0) rotateX(7deg) rotateY(-5deg) scale(.975)}50%{transform:translate3d(0,-10px,22px) rotateX(-5deg) rotateY(6deg) scale(1.035)}}
@keyframes premiumShadow{0%,100%{opacity:.5;transform:scale(.84)}50%{opacity:.2;transform:scale(1.12)}}
@keyframes premiumRing{to{transform:rotate(360deg)}}
@keyframes premiumGlow{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}


/* 2026-10-24 v7: reliable touch/modal/2s operation flow */
html.modal-open,body.modal-open,html.operation-busy,body.operation-busy{overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}
dialog[open]{z-index:2147483000!important;pointer-events:auto!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch}
dialog[open]::backdrop{pointer-events:auto!important;background:rgba(18,48,39,.62)!important;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
#operationLoader{display:none!important;position:fixed!important;inset:0!important;z-index:2147483647!important;pointer-events:none!important;touch-action:none!important;user-select:none!important;-webkit-user-select:none!important}
#operationLoader.show{display:flex!important;pointer-events:all!important}
button,[role="button"],a{touch-action:manipulation;-webkit-tap-highlight-color:rgba(8,127,91,.18)}
button:active,[role="button"]:active,a:active{transform:scale(.965)!important;filter:brightness(.93)!important}

/* 2026-10-29: clearer plant names; keep title fully separated from photo */
.plantbody{position:relative;z-index:2;background:#fff!important}
.plantbody h3{position:relative!important;display:block!important;margin:0 0 7px!important;padding:2px 0!important;color:#123d30!important;background:#fff!important;font-weight:900!important;line-height:1.55!important;text-shadow:none!important;white-space:normal!important}
@media(max-width:600px){.plantbody h3{font-size:16px!important;font-weight:900!important;line-height:1.55!important}}
