
:root{--green:#28a745;--green-dark:#137c32;--green-soft:#eaf8ed;--green-pale:#f5fbf3;--lime:#83c93b;--orange:#ff8b3d;--blue:#2f80ed;--ink:#18243a;--muted:#718096;--line:#e5ece5;--white:#fff;--shadow:0 10px 34px rgba(28,80,42,.08);font-family:"DM Sans",sans-serif;color:var(--ink);background:#f6faf5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:1080px;background:#f6faf5}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.kicker{font-size:10px;letter-spacing:1.7px;color:#61a66f;font-weight:800}.muted{color:var(--muted)}.green{color:var(--green-dark)}
/* login */
.login-view{min-height:100vh;display:grid;grid-template-columns:1.18fr .82fr;background:#f6fbf4}.login-showcase{position:relative;overflow:hidden;padding:38px 52px;background:linear-gradient(145deg,#effbea,#dff5dc 75%);border-right:1px solid #dcebdc}.login-brand,.brand{display:flex;align-items:center;gap:11px}.login-brand>span,.brand-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#e5f8df;font-size:25px}.login-brand b,.login-brand small,.brand b,.brand small{display:block}.login-brand b,.brand b{font:800 20px Manrope;color:#18672d}.login-brand small,.brand small{font-size:10px;color:#7c9581}.login-copy{position:relative;z-index:2;max-width:660px;margin-top:14vh}.login-copy h1{font:800 58px/1.02 Manrope;letter-spacing:-2.6px;color:#173522;margin:16px 0}.login-copy>p{max-width:590px;font-size:16px;line-height:1.7;color:#64806b}.login-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px;max-width:620px}.login-benefits div{background:rgba(255,255,255,.72);border:1px solid rgba(43,138,66,.12);border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(54,118,67,.06)}.login-benefits span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eaf8ed;color:#24933e}.login-benefits b,.login-benefits small{display:block}.login-benefits b{font-size:12px;margin-top:10px}.login-benefits small{font-size:9px;color:#7b8f7f;margin-top:3px}.login-greenhouse-art{position:absolute;right:-20px;bottom:-30px;width:400px;opacity:.78}.login-greenhouse-art img{width:100%;filter:saturate(1.08)}.login-panel{display:grid;place-items:center;padding:42px;background:#fff}.login-card{width:min(100%,430px)}.login-card h2{font:800 32px Manrope;letter-spacing:-1.2px;margin:8px 0}.login-card>p{color:var(--muted);line-height:1.5;margin:0 0 25px}.login-card form{display:grid;gap:15px}.login-card label,.modal-card label{display:grid;gap:7px;font-size:11px;font-weight:700;color:#536658}.login-card input,.modal-card input,.modal-card select,.filter-select{padding:12px 13px;border:1px solid #dce7dc;border-radius:11px;background:#fbfdfb;outline:none;color:var(--ink)}.login-card input:focus,.modal-card input:focus,.modal-card select:focus{border-color:#77c784;box-shadow:0 0 0 3px rgba(40,167,69,.08)}.btn{border:0;border-radius:11px;padding:11px 14px;font-weight:700}.btn-primary{background:var(--green);color:#fff;box-shadow:0 9px 18px rgba(40,167,69,.18)}.btn-secondary{background:#eef8ef;color:#23783a;border:1px solid #dceedd}.btn-outline{background:#fff;color:#395845;border:1px solid #dfe8e0}.btn-block{width:100%}.btn-entra{margin-top:12px;background:#fff;border:1px solid #dfe7ef;color:#24527c}.login-error{min-height:22px;padding-top:8px;color:#d84b55;font-size:11px}.demo-accounts{display:grid;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid #edf1ed}.demo-accounts>span{margin-bottom:3px}.demo-accounts button{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border:1px solid #e5ece5;border-radius:12px;background:#fff;padding:10px;text-align:left;color:var(--ink)}.demo-accounts button:hover{border-color:#a7d9ae;background:#f8fcf8}.demo-accounts b,.demo-accounts small{display:block}.demo-accounts small{color:var(--muted);font-size:9px}.demo-accounts em{font-style:normal;color:#6aaa75}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:10px;font-weight:800}.avatar.admin{background:#efe8ff;color:#7352bc}.avatar.owner{background:#e5f7e8;color:#278344}.avatar.reader{background:#e6f2ff;color:#2b68a5}
/* shell */
.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:22px 15px 14px;display:flex;flex-direction:column;overflow:hidden;z-index:20}.brand{padding:0 7px 20px}.sidebar nav{display:grid;gap:4px;overflow-y:auto;scrollbar-width:none}.sidebar nav button{position:relative;display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:8px;width:100%;border:0;border-radius:11px;background:transparent;color:#526477;padding:10px 11px;text-align:left;font-size:11px;font-weight:600}.sidebar nav button>span{font-size:15px;color:#6b7e72}.sidebar nav button:hover{background:#f4faf3;color:#1a6e31}.sidebar nav button.active{background:linear-gradient(90deg,#e7f7e8,#f5fbf3);color:#196d30}.sidebar nav button.active>span{color:#22a343}.sidebar nav button i{font-style:normal;background:#afe6b7;color:#1e7434;min-width:20px;height:20px;display:grid;place-items:center;border-radius:8px;font-size:9px}.sidebar-art{margin-top:auto;position:relative;height:210px;margin-left:-15px;margin-right:-15px;overflow:hidden}.sidebar-art img{width:100%;height:100%;object-fit:cover;object-position:center bottom}.art-fade{position:absolute;inset:0;background:linear-gradient(#fff 0%,rgba(255,255,255,.05) 38%,transparent 70%)}.collapse-button{border:1px solid var(--line);background:#fff;color:#617068;border-radius:11px;padding:10px}.sidebar.collapsed{width:78px}.app-shell.collapsed{grid-template-columns:78px 1fr}.sidebar.collapsed .brand div,.sidebar.collapsed nav button:not(.active){font-size:0}.sidebar.collapsed nav button{grid-template-columns:1fr;padding:11px}.sidebar.collapsed nav button>span{justify-self:center}.sidebar.collapsed nav button i,.sidebar.collapsed .sidebar-art,.sidebar.collapsed .collapse-button span{display:none}.main{min-width:0}.topbar{height:86px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:15}.topbar h1{font:800 22px Manrope;margin:0 0 4px;letter-spacing:-.5px}.topbar p{font-size:11px;color:var(--muted);margin:0}.topbar-actions{display:flex;gap:10px;align-items:center}.top-chip{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#fff}.top-chip>span{font-size:18px}.top-chip b,.top-chip small{display:block}.top-chip b{font-size:10px}.top-chip small{font-size:8px;color:var(--muted)}.icon-button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;color:#476155}.profile-button{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:6px 10px;color:var(--ink);min-width:190px}.profile-button>span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#daf2dc;color:#226e36;font-weight:800}.profile-button b,.profile-button small{display:block;text-align:left}.profile-button b{font-size:10px}.profile-button small{font-size:8px;color:#269443;background:#e9f7eb;border-radius:8px;padding:2px 6px;width:max-content;margin-top:2px}.profile-button em{font-style:normal;color:#78907f}.profile-menu{position:fixed;right:28px;top:78px;width:230px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);z-index:80}.profile-menu b,.profile-menu small{display:block}.profile-menu small{font-size:9px;color:var(--muted);margin-top:3px}.profile-menu button{width:100%;margin-top:12px;padding:9px;border:1px solid #f0dada;background:#fff6f6;color:#b94a54;border-radius:9px}.content{padding:22px 28px 50px;max-width:1600px;margin:0 auto}.toast{position:fixed;top:96px;right:28px;z-index:100;transform:translateY(-15px);opacity:0;pointer-events:none;background:#173b23;color:#fff;border-radius:11px;padding:11px 14px;box-shadow:var(--shadow);font-size:11px;transition:.2s}.toast.show{transform:none;opacity:1}.toast.error{background:#a83c46}
/* dashboard */
.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px}.summary-card,.panel,.farm-card,.rule-card,.service-card,.report-card,.quick-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 18px rgba(37,82,46,.04)}.summary-card{padding:17px;min-height:128px;position:relative}.summary-card-head{display:flex;justify-content:space-between;align-items:start}.summary-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#eaf8ed;color:#1f963b;font-size:18px}.summary-icon.orange{background:#fff1e7;color:#ff7c2f}.summary-card small,.summary-card b,.summary-card span{display:block}.summary-card small{font-size:10px;color:#526477;margin-top:10px}.summary-card b{font:800 25px Manrope;margin-top:2px}.summary-card span{font-size:8px;color:#8a9a90;margin-top:3px}.summary-card a{position:absolute;bottom:13px;color:#1e8b36;font-size:9px;font-weight:700;cursor:pointer}.dashboard-grid{display:grid;grid-template-columns:1.55fr .85fr .72fr;gap:14px}.panel{padding:17px;min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.panel-header h3{font:700 14px Manrope;margin:0}.panel-header small{font-size:9px;color:var(--muted)}.panel-title{display:flex;gap:8px;align-items:center}.panel-title>span{color:#28a745}.link-button{border:0;background:transparent;color:#218a38;font-size:9px;font-weight:700}.environment-panel{grid-row:span 2}.device-status-panel{grid-row:span 2}.weather-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#f9fff6)}.weather-card:after{content:"";position:absolute;right:-20px;top:-20px;width:120px;height:120px;background:radial-gradient(circle,#d9f3b8,transparent 70%);opacity:.8}.weather-main{display:flex;align-items:center;gap:15px;margin:20px 0}.weather-sun{font-size:48px}.weather-main b{font:800 31px Manrope}.weather-main small{display:block;color:var(--muted)}.weather-details{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;border-top:1px solid var(--line);padding-top:12px}.weather-details div{text-align:center}.weather-details b,.weather-details small{display:block}.weather-details b{font-size:10px}.weather-details small{font-size:8px;color:var(--muted)}.sensor-tabs{display:flex;gap:5px;align-items:center}.sensor-tabs button{border:0;border-radius:8px;background:#f2f6f2;color:#76857b;padding:6px 9px;font-size:8px}.sensor-tabs button.active{background:#e5f6e7;color:#1d8b36}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.metric-mini{border:1px solid var(--line);border-radius:11px;padding:10px}.metric-mini small,.metric-mini b,.metric-mini span{display:block}.metric-mini small{font-size:8px;color:#647568}.metric-mini b{font:700 16px Manrope;margin-top:6px}.metric-mini span{font-size:8px;color:#2b9844;margin-top:4px}.chart-legend{display:flex;gap:14px;font-size:8px;color:#66776c;margin:8px 0}.chart-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.chart-canvas{width:100%;height:260px}.device-status-list{display:grid;gap:2px}.device-status-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #edf2ed}.device-status-row:last-child{border-bottom:0}.device-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eff8ef;color:#239340}.device-status-row b,.device-status-row small{display:block}.device-status-row b{font-size:10px}.device-status-row small{font-size:8px;color:var(--muted);margin-top:2px}.status-pill{padding:5px 8px;border-radius:10px;background:#eaf8ed;color:#20883a;font-size:8px;font-weight:700}.energy-ring{width:120px;height:120px;margin:14px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#38b653 0 78%,#e8f0e8 78%);position:relative}.energy-ring:before{content:"";position:absolute;width:91px;height:91px;border-radius:50%;background:#fff}.energy-ring div{z-index:1;text-align:center}.energy-ring b,.energy-ring small{display:block}.energy-ring b{font:800 24px Manrope;color:#258b3c}.energy-ring small{font-size:8px;color:var(--muted)}.energy-lines{display:grid;gap:8px}.energy-lines div{display:flex;justify-content:space-between;font-size:9px}.energy-lines i{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px}.lower-grid{display:grid;grid-template-columns:1fr 1.1fr .7fr;gap:14px;margin-top:14px}.alert-list{display:grid}.alert-row{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #eef2ee}.alert-row:last-child{border-bottom:0}.alert-symbol{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff1e8;color:#ff7c2f}.alert-row b,.alert-row small{display:block}.alert-row b{font-size:10px}.alert-row small{font-size:8px;color:var(--muted);margin-top:3px}.alert-row button{border:1px solid #ffc89f;background:#fff;color:#ed762a;border-radius:8px;padding:5px 8px;font-size:8px}.farm-map{height:230px;border-radius:12px;overflow:hidden;position:relative;background:linear-gradient(140deg,#dff2bc,#9ed183)}.farm-map:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(25deg,rgba(255,255,255,.18) 0 13px,transparent 14px 36px);opacity:.7}.map-road{position:absolute;width:120%;height:25px;background:#e9dbac;left:-10%;top:46%;transform:rotate(-10deg);border:5px solid rgba(255,255,255,.6)}.map-water{position:absolute;width:105px;height:55px;border-radius:50%;background:#83c9d3;right:18%;bottom:14%}.map-greenhouse{position:absolute;left:15%;bottom:17%;width:110px;height:54px;border-radius:50px 50px 5px 5px;border:4px solid rgba(255,255,255,.78);background:rgba(210,255,221,.45)}.map-pin{position:absolute;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#1b9c3b;color:#fff;border:3px solid #fff;font-size:10px;font-weight:800;box-shadow:0 4px 10px rgba(0,0,0,.17)}.map-pin.p1{left:21%;top:35%}.map-pin.p2{left:48%;top:14%}.map-pin.p3{right:16%;bottom:28%}.map-pin.p4{right:33%;top:48%;background:#ff852f}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quick-card{border:1px solid var(--line);padding:11px 7px;text-align:center;background:#fbfefb;color:#247c38}.quick-card span,.quick-card b{display:block}.quick-card span{font-size:20px}.quick-card b{font-size:8px;margin-top:5px}
/* generic pages */
.actionbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px}.readonly-banner{padding:11px 13px;border:1px solid #d5e8d7;background:#f4fbf4;color:#42744d;border-radius:11px;font-size:10px;margin-bottom:14px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:14px}.farm-card,.rule-card,.service-card,.report-card{padding:17px}.farm-card h3,.rule-card h3,.service-card h3,.report-card h3{font:700 14px Manrope;margin:10px 0 4px}.farm-card p,.rule-card p,.service-card p,.report-card p{font-size:9px;color:var(--muted);line-height:1.5}.farm-card-head{display:flex;justify-content:space-between;align-items:center}.farm-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eaf8ed;font-size:20px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:16px}.facts div{background:#f7faf7;border-radius:9px;padding:8px}.facts b,.facts small{display:block}.facts b{font-size:12px}.facts small{font-size:7px;color:var(--muted)}.table{overflow:hidden}.table-row{display:grid;align-items:center;gap:10px;padding:11px;border-bottom:1px solid #edf2ed;font-size:9px}.table-row.head{background:#f7faf7;color:#708076;font-size:8px;font-weight:700;text-transform:uppercase}.table-row.five{grid-template-columns:1.2fr 1fr .8fr .5fr .5fr}.table-row.six{grid-template-columns:1.3fr 1fr 1fr .55fr .5fr .55fr}.table-row.users{grid-template-columns:1.25fr .65fr 1.3fr .55fr .6fr}.table-row strong,.table-row small{display:block}.table-row small{font-size:7px;color:var(--muted);margin-top:2px}.clickable{cursor:pointer}.clickable:hover{background:#fafdfa}.page-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:14px}.page-metric{padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px}.page-metric span,.page-metric small,.page-metric b{display:block}.page-metric span{font-size:18px}.page-metric small{font-size:8px;color:var(--muted);margin-top:7px}.page-metric b{font:800 22px Manrope;margin-top:3px}.filters{display:flex;gap:8px;justify-content:flex-end;margin-bottom:13px}.filter-select{font-size:9px;padding:8px 10px}.role-pill{display:inline-flex;padding:5px 8px;border-radius:10px;font-size:8px}.role-admin{background:#f0eaff;color:#7653b4}.role-user{background:#e9f7eb;color:#278344}.role-reader{background:#e9f3ff;color:#2f68a4}.automation-switch{position:relative;width:37px;height:21px}.automation-switch input{display:none}.automation-switch span{position:absolute;inset:0;border-radius:20px;background:#dce4dc}.automation-switch span:before{content:"";position:absolute;width:15px;height:15px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.16);transition:.2s}.automation-switch input:checked+span{background:#52be69}.automation-switch input:checked+span:before{left:19px}.report-actions{display:flex;gap:7px;margin-top:13px}.health-hero{display:flex;align-items:center;gap:18px;padding:23px;background:linear-gradient(120deg,#effbef,#fff);border:1px solid #daebdb;border-radius:15px;margin-bottom:14px}.health-check{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#dff5e3;color:#28a745;font-size:28px}.health-hero h2{font:800 22px Manrope;margin:3px 0}.health-hero p{font-size:10px;color:var(--muted)}.irrigation-control{display:grid;grid-template-columns:1fr auto;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;margin-top:9px}.progress{height:8px;background:#ebf1eb;border-radius:9px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:linear-gradient(90deg,#3eb85a,#8ed36d);border-radius:9px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.setting-row b,.setting-row small{display:block}.setting-row b{font-size:10px}.setting-row small{font-size:8px;color:var(--muted)}.error-box{padding:22px;border:1px solid #efd4d4;background:#fff8f8;border-radius:13px;color:#a9444d}.modal{position:fixed;inset:0;background:rgba(30,55,36,.30);display:grid;place-items:center;z-index:100;backdrop-filter:blur(4px)}.modal-card{width:min(92vw,500px);max-height:85vh;overflow:auto;background:#fff;border-radius:17px;padding:22px;box-shadow:0 25px 70px rgba(27,65,35,.18);position:relative}.modal-close{position:absolute;right:12px;top:12px;width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:#fff;color:#718078}.modal-card h2{font:800 21px Manrope;margin:0 0 16px}.modal-card form{display:grid;gap:12px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:16px 0}.detail-grid div{background:#f7faf7;border-radius:10px;padding:11px}.detail-grid b,.detail-grid small{display:block}.detail-grid small{font-size:8px;color:var(--muted)}.detail-grid b{font-size:11px;margin-top:3px}
@media(max-width:1250px){.summary-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1.4fr .8fr}.weather-card,.energy-card{grid-column:auto}.lower-grid{grid-template-columns:1fr 1fr}.quick-actions-panel{grid-column:span 2}.top-chip{display:none}}


/* v4.1 visual fixes */
.sidebar nav button {
  min-height: 44px;
  overflow: visible;
}
.sidebar nav button .nav-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  font-size: 17px;
  line-height: 1;
  overflow: visible;
  flex-shrink: 0;
}
.sidebar nav button.active .nav-icon {
  background: rgba(40,167,69,.10);
  border-radius: 9px;
}
.summary-card {
  min-height: 158px;
  padding: 18px 18px 42px;
  overflow: hidden;
}
.summary-icon {
  width: 48px;
  height: 48px;
  font-size: 22px;
  line-height: 1;
  flex: 0 0 48px;
}
.summary-card small {
  margin-top: 13px;
  line-height: 1.25;
}
.summary-card b {
  line-height: 1.05;
  margin-top: 6px;
}
.summary-card span {
  line-height: 1.25;
  margin-top: 6px;
}
.summary-card a {
  bottom: 16px;
  left: 18px;
  line-height: 1;
}
.metric-mini {
  min-height: 92px;
}
.metric-mini b {
  line-height: 1.15;
}
.device-icon {
  font-size: 17px;
  line-height: 1;
}
.quick-card span {
  font-size: 22px;
  line-height: 1.1;
}
.topbar h1 {
  line-height: 1.15;
}
@media(max-width:1350px){
  .summary-grid{grid-template-columns:repeat(5,minmax(150px,1fr));}
  .summary-card{min-height:154px;}
}


/* FarmPulse v4.2 fixes */

/* Summary cards: keep the icon centered and give every text element its own row. */
.summary-card{
  display:flex;
  flex-direction:column;
  min-height:176px !important;
  padding:20px !important;
}
.summary-card-head{
  min-height:48px;
  align-items:center;
}
.summary-icon{
  flex:0 0 46px;
  width:46px !important;
  height:46px !important;
  font-size:20px !important;
  line-height:1;
  overflow:visible;
}
.summary-card small{margin-top:14px !important;}
.summary-card b{margin-top:4px !important;}
.summary-card>span{margin-top:5px !important;}
.summary-card a{
  position:static !important;
  margin-top:auto;
  padding-top:13px;
  display:block;
}

/* Prevent a second-looking collapse control and keep it attached to the sidebar. */
.collapse-button{
  width:100%;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-top:10px;
  flex:0 0 auto;
  box-shadow:none;
}
.sidebar.collapsed .collapse-button{
  width:44px;
  align-self:center;
  padding:10px 0;
}
.sidebar.collapsed .collapse-button span{display:none!important;}

/* Functional irrigation control states. */
.irrigation-control{
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px;
  gap:20px;
  align-items:center;
  padding:18px 16px;
}
.irrigation-control+.irrigation-control{border-top:1px solid var(--line);}
.irrigation-info{min-width:0;}
.irrigation-title-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:5px;
}
.irrigation-title-row b{font-size:14px;}
.irrigation-state{
  display:inline-flex;
  border-radius:999px;
  padding:4px 8px;
  font-size:8px;
  font-weight:800;
}
.irrigation-state.running{background:#e8f8eb;color:#218d39;}
.irrigation-state.stopped{background:#f2f4f2;color:#738078;}
.btn-start,.btn-stop{
  min-width:84px;
  font-weight:800;
  border-radius:11px;
}
.btn-start{background:#2eaa49;color:#fff;border:1px solid #2eaa49;}
.btn-start:hover{background:#248e3b;}
.btn-stop{background:#fff4f1;color:#c74b35;border:1px solid #efc2b9;}
.btn-stop:hover{background:#ffe8e3;}
.irrigation-control.is-running{background:linear-gradient(90deg,#fbfffb,#f2fbf3);}

/* Profile editor. */
.profile-edit-button{
  color:#236f39!important;
  background:#f3faf4!important;
  border:1px solid #d8eadb!important;
  margin-bottom:7px!important;
}
.profile-modal-header{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:20px;
}
.profile-modal-header h2{margin:3px 0 0;}
.profile-modal-avatar{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#def3e1;
  color:#24763a;
  font-weight:800;
}
.form-grid.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.field-help{
  display:block;
  margin-top:5px;
  font-size:9px;
  line-height:1.45;
  color:var(--muted);
}
.profile-entra-note{
  display:grid;
  gap:3px;
  padding:12px 13px;
  margin:5px 0 15px;
  border:1px solid #d8e9f7;
  border-radius:11px;
  background:#f5faff;
}
.profile-entra-note b{font-size:11px;color:#245f8b;}
.profile-entra-note span{font-size:9px;color:#658199;}

@media(max-width:900px){
  .form-grid.two{grid-template-columns:1fr;}
  .irrigation-control{grid-template-columns:1fr;}
  .irrigation-control button{width:100%;}
}

/* FarmPulse v4.3 — login-page layout and responsive fixes */
.login-view{
  min-height:100dvh;
  height:auto;
  grid-template-columns:minmax(0,1.22fr) minmax(430px,.78fr);
  overflow:hidden;
}
.login-showcase{
  min-width:0;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  isolation:isolate;
  padding:42px clamp(34px,4vw,70px);
}
.login-showcase::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background:
    radial-gradient(circle at 77% 43%,rgba(255,255,255,.78),transparent 25%),
    linear-gradient(145deg,#effbea,#dff5dc 75%);
}
.login-brand{position:relative;z-index:5;flex:0 0 auto;}
.login-copy{
  position:relative;
  z-index:4;
  width:min(56%,680px);
  max-width:none;
  margin-top:clamp(90px,13vh,150px);
  padding-bottom:32px;
}
.login-copy h1{
  font-size:clamp(46px,4.2vw,68px);
  max-width:760px;
  overflow-wrap:normal;
}
.login-copy>p{max-width:610px;}
.login-benefits{
  position:relative;
  z-index:6;
  width:min(70%,720px);
  max-width:none;
  margin-top:24px;
  grid-template-columns:repeat(3,minmax(150px,1fr));
}
.login-benefits div{
  min-width:0;
  min-height:124px;
  backdrop-filter:blur(8px);
  background:rgba(255,255,255,.84);
}
.login-greenhouse-art{
  right:clamp(24px,3vw,64px);
  bottom:clamp(22px,4vh,52px);
  width:min(43%,560px);
  opacity:.88;
  z-index:1;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 24px 60px rgba(58,126,69,.14);
  border:1px solid rgba(255,255,255,.7);
  background:rgba(255,255,255,.42);
}
.login-greenhouse-art::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(239,251,234,.78) 0%,rgba(239,251,234,.12) 28%,transparent 55%);
}
.login-greenhouse-art img{
  display:block;
  aspect-ratio:4/3;
  height:auto;
  object-fit:cover;
  object-position:center;
}
.login-panel{
  min-height:100dvh;
  overflow-y:auto;
  align-items:center;
}
.login-card{padding:24px 0;}
.login-error:empty{display:none;}
.login-error:not(:empty){
  min-height:0;
  margin-top:8px;
  padding:9px 11px;
  border-radius:9px;
  background:#fff7f7;
  border:1px solid #f3d5d8;
}

/* Keep the illustration clear of content on common laptop widths. */
@media(max-width:1500px){
  .login-copy{width:61%;}
  .login-benefits{width:74%;}
  .login-greenhouse-art{width:41%;right:20px;}
}
@media(max-width:1220px){
  .login-view{grid-template-columns:minmax(0,1fr) 440px;}
  .login-copy{width:68%;margin-top:90px;}
  .login-copy h1{font-size:48px;}
  .login-benefits{width:76%;grid-template-columns:1fr;max-width:320px;}
  .login-benefits div{min-height:auto;}
  .login-greenhouse-art{width:48%;opacity:.72;}
}
@media(max-width:980px){
  .login-view{display:block;overflow:auto;}
  .login-showcase{min-height:520px;padding:30px;}
  .login-copy{width:100%;max-width:650px;margin-top:75px;}
  .login-benefits{width:100%;max-width:650px;grid-template-columns:repeat(3,1fr);}
  .login-greenhouse-art{width:43%;right:18px;bottom:18px;opacity:.62;}
  .login-panel{min-height:auto;padding:50px 26px;}
}
@media(max-width:700px){
  .login-showcase{min-height:610px;}
  .login-copy h1{font-size:40px;}
  .login-benefits{grid-template-columns:1fr;max-width:310px;}
  .login-greenhouse-art{width:62%;opacity:.48;}
}


/* FarmPulse v4.4: precisely centered summary cards */
.summary-card{
  display:grid !important;
  grid-template-rows:52px auto auto auto 1fr;
  justify-items:center !important;
  align-items:start;
  text-align:center !important;
  min-height:188px !important;
  padding:20px 18px 16px !important;
}
.summary-card-head{
  width:100%;
  min-height:52px !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
}
.summary-icon{
  width:48px !important;
  height:48px !important;
  padding:0 !important;
  margin:0 auto !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  line-height:1 !important;
}
.summary-icon svg{
  display:block;
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.summary-card small,.summary-card b,.summary-card>span,.summary-card a{
  width:100%;
  text-align:center !important;
}
.summary-card small{margin-top:10px !important;}
.summary-card b{margin-top:3px !important;}
.summary-card>span{margin-top:4px !important;}
.summary-card a{
  align-self:end;
  margin-top:10px !important;
  padding-top:0 !important;
}
.admin-summary-grid{grid-template-columns:repeat(6,minmax(135px,1fr));}

/* Administrator dashboard */
.admin-hero{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:16px;
  padding:24px 27px;
  background:linear-gradient(115deg,#f3fcf4,#ffffff 65%);
  overflow:hidden;
  position:relative;
}
.admin-hero:after{
  content:"";
  position:absolute;
  width:230px;height:230px;border-radius:50%;
  right:-70px;top:-110px;
  background:radial-gradient(circle,#d9f4dc,transparent 70%);
}
.admin-hero>div{position:relative;z-index:1;}
.admin-hero h2{font:800 27px Manrope;margin:5px 0 5px;color:#14361e;}
.admin-hero p{margin:0;color:var(--muted);font-size:11px;}
.admin-health-badge{display:flex;align-items:center;gap:11px;padding:12px 16px;border:1px solid #d7ead9;border-radius:13px;background:#fff;min-width:150px;}
.admin-health-badge>span{color:#2aae47;font-size:18px;}.admin-health-badge b,.admin-health-badge small{display:block}.admin-health-badge b{font:800 18px Manrope}.admin-health-badge small{font-size:8px;color:var(--muted)}
.admin-dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr .72fr;gap:14px;margin-top:14px;align-items:start;}
.admin-clients-panel{grid-column:span 2;}.admin-farms-panel{grid-column:span 1;}.admin-actions-panel{grid-column:span 2;}
.admin-table{display:grid;}.admin-table-row{display:grid;grid-template-columns:1.15fr 1.25fr .65fr .5fr;gap:12px;align-items:center;padding:11px 5px;border-bottom:1px solid #edf2ed;font-size:9px;}.admin-table-row.head{font-size:8px;color:#7a8b80;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.admin-table-row b,.admin-table-row small{display:block}.admin-table-row b{font-size:10px}.admin-table-row small{font-size:8px;color:var(--muted);margin-top:2px}
.admin-farm-list{display:grid;gap:7px}.admin-farm-list button{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;text-align:left;border:1px solid #e5eee6;background:#fbfefb;border-radius:11px;padding:9px;color:var(--text)}.admin-farm-list button:hover{border-color:#bfe1c5;background:#f5fcf6}.admin-farm-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e8f7eb;color:#258f3b}.admin-farm-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-farm-list b,.admin-farm-list small{display:block}.admin-farm-list b{font-size:9px}.admin-farm-list small{font-size:7px;color:var(--muted);margin-top:2px}
.admin-operation-list{display:grid;gap:2px}.admin-operation-list div{display:flex;justify-content:space-between;align-items:center;padding:10px 3px;border-bottom:1px solid #edf2ed;font-size:9px}.admin-operation-list b{font:700 11px Manrope}.orange-text{color:#e8752c}
.admin-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.admin-action-grid button{display:grid;grid-template-columns:36px 1fr;text-align:left;column-gap:9px;border:1px solid #e4eee5;background:#fbfefb;border-radius:12px;padding:11px;color:var(--text)}.admin-action-grid button:hover{border-color:#b8debf;transform:translateY(-1px)}.admin-action-grid button>span{grid-row:span 2;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e8f7eb;color:#21863a}.admin-action-grid svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-action-grid b{font-size:9px}.admin-action-grid small{font-size:7px;color:var(--muted);margin-top:2px}.empty-admin-state{padding:22px;text-align:center;color:var(--muted);font-size:9px}
@media(max-width:1400px){.admin-summary-grid{grid-template-columns:repeat(3,1fr)}.admin-dashboard-grid{grid-template-columns:1fr 1fr}.admin-clients-panel,.admin-actions-panel{grid-column:span 2}.admin-farms-panel{grid-column:auto}.admin-action-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.admin-summary-grid{grid-template-columns:repeat(2,1fr)}.admin-dashboard-grid{grid-template-columns:1fr}.admin-clients-panel,.admin-actions-panel,.admin-farms-panel{grid-column:auto}.admin-action-grid{grid-template-columns:1fr}.admin-hero{align-items:flex-start;flex-direction:column}}
