/* GreenSoul Clean V1 — base común para todas las páginas y módulos. */
:root{--gs-bg:#f7f9f7;--gs-surface:#fff;--gs-ink:#203d2d;--gs-muted:#708376;--gs-line:#dfe8e1;--gs-green:#286343;--gs-soft:#eaf3ec;--gs-focus:#91bba0;--gs-shadow:0 4px 12px #244a3217;--bg:var(--gs-bg);--text:var(--gs-ink);--primary:var(--gs-green)}
body.gsClean{background:var(--gs-bg)!important;color:var(--gs-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;line-height:1.5;margin:0}
.gsClean *{box-sizing:border-box}
.gsClean :is(h1,h2,h3){color:var(--gs-ink);letter-spacing:-.025em}
.gsClean h1{font-size:1.65rem;line-height:1.2;margin:0 0 10px}
.gsClean h2{font-size:1.04rem;line-height:1.35;margin:0 0 8px}
.gsClean h3{font-size:.9rem;line-height:1.4;margin:12px 0 7px}
.gsClean p{font-size:.83rem;line-height:1.5;margin:6px 0 12px}
.gsClean .muted{color:var(--gs-muted)}
.gsClean :is(.eyebrow,.adminBadge){font-size:.63rem;letter-spacing:.1em;text-transform:uppercase}
.gsClean header{background:var(--gs-surface);border-bottom:1px solid var(--gs-line);box-shadow:none;padding:13px 24px}
.gsClean header :is(h1,h2){font-size:1.04rem;margin:0}
.gsClean nav{display:flex;gap:5px;flex-wrap:wrap;background:var(--gs-surface);border-bottom:1px solid var(--gs-line);padding:8px 24px;box-shadow:none}
.gsClean nav button{border:0!important;background:transparent!important;color:#637a69!important;padding:8px 12px!important;border-radius:8px!important;font-weight:550}
.gsClean nav button.active{background:var(--gs-soft)!important;color:var(--gs-green)!important;box-shadow:none!important}
.gsClean main{max-width:1180px;margin:0 auto;padding:22px 24px}
.gsClean :is(.card,.farmCard,.learningItem,.historyItem,.aiHistoryItem,.supportReport,.experimentHistoryItem){background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:16px 0!important;margin:0 0 10px!important;border-bottom:1px solid var(--gs-line)!important}
.gsClean .card .card{padding:10px 0!important;margin:0!important}
.gsClean :is(.todayFarm,.tenebrioIntelligence,.expertDiagnosis,.teamIntro){background:transparent!important;box-shadow:none!important;border-radius:0!important}
.gsClean :is(.todayTask,.panelSensorCompactRow,.farmRow,.inspectionHistoryItem,.onboardingStep){border:0!important;border-bottom:1px solid var(--gs-line)!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:12px 0!important}
.gsClean :is(.metric,.adminMetric,.saMetric,.farmStats>div,.supportCounts>div){background:transparent!important;border:0!important;border-right:1px solid var(--gs-line)!important;border-radius:0!important;box-shadow:none!important;padding:10px 16px!important}
.gsClean :is(.metrics,.adminMetrics,.saMetrics){gap:0!important;margin:10px 0 18px}
.gsClean :is(.metric,.adminMetric,.saMetric)>strong{font-size:1.35rem;letter-spacing:-.03em;margin-top:3px}
.gsClean :is(.metric,.adminMetric,.saMetric)>span{font-size:.73rem;color:var(--gs-muted)}
.gsClean :is(button,.linkbtn){font:inherit;font-size:.79rem;font-weight:600;min-height:34px;padding:8px 12px;border:1px solid var(--gs-line);border-radius:7px;line-height:1.3;background:transparent;color:var(--gs-green);cursor:pointer;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .12s;text-decoration:none}
.gsClean :is(button.primary,.linkbtn.primary,.supportPrimary){background:var(--gs-green)!important;border-color:var(--gs-green)!important;color:white!important}
.gsClean :is(button.ghost,.linkbtn.ghost){background:transparent!important;border-color:var(--gs-line)!important;color:var(--gs-green)!important}
.gsClean :is(button.danger,.linkbtn.danger){background:#fff1ef;border-color:#ebc8c2;color:#9b493d}
@media(hover:hover){.gsClean :is(button,.linkbtn):not(:disabled):hover{box-shadow:var(--gs-shadow);border-color:#abc7b3;background:#eff5f0;transform:translateY(-1px)}.gsClean :is(button.primary,.linkbtn.primary,.supportPrimary):not(:disabled):hover{background:#1d5134!important}}
.gsClean :is(button,.linkbtn):not(:disabled):active{transform:translateY(0);box-shadow:none}
.gsClean :is(button:disabled,[aria-disabled=true]){opacity:.5;cursor:default;transform:none;box-shadow:none}
.gsClean :is(input,select,textarea,button,a,summary,[role=button]):focus-visible{outline:3px solid var(--gs-focus);outline-offset:2px}
.gsClean :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea){font:inherit;font-size:.82rem;color:var(--gs-ink);background:var(--gs-surface);border:1px solid #d5e1d8;border-radius:7px;padding:8px 10px;min-height:36px;margin-top:4px;transition:border-color .16s,box-shadow .16s;max-width:100%}
.gsClean textarea{min-height:80px;resize:vertical}
.gsClean :is(input[type=checkbox],input[type=radio]){width:auto!important;min-height:0!important;accent-color:var(--gs-green)}
.gsClean label{font-size:.76rem;font-weight:550;color:#526e5b;margin-bottom:8px;line-height:1.4}
.gsClean .grid2{gap:12px;margin:10px 0}
.gsClean .actions{gap:7px;flex-wrap:wrap}
.gsClean .passWrap input{padding-right:38px}
.gsClean button.eyeBtn{min-height:0;min-width:0;background:transparent!important;border:0!important;padding:5px 7px;box-shadow:none!important;transform:none!important}
.gsClean table{width:100%;border-collapse:collapse;font-size:.8rem;background:transparent}
.gsClean th{font-size:.7rem;font-weight:650;color:#718677;background:transparent;border:0;border-bottom:1px solid var(--gs-line);padding:9px 10px;text-align:left}
.gsClean td{border:0;border-bottom:1px solid var(--gs-line);padding:10px;vertical-align:top}
.gsClean .tablewrap{border:0;border-radius:0;background:transparent;overflow-x:auto}
.gsClean hr{border:0;border-top:1px solid var(--gs-line);margin:14px 0}
.gsClean details>summary{cursor:pointer;font-size:.84rem;font-weight:600;line-height:1.4;padding:10px 0;color:var(--gs-ink)}
.gsClean :is(.gsSectionMenu,.gsMoreMenu,.sensorAdminSection,.sensorAdminTools,.analysisFold,.recentFold,.secondaryFormFold,.loadExtra){border:0!important;border-bottom:1px solid var(--gs-line)!important;background:transparent!important;border-radius:0!important;box-shadow:none!important}
.gsClean :is(.gsSectionMenu,.gsMoreMenu)>summary{padding:12px 0!important;background:transparent!important;border:0!important}
.gsClean .gsMoreList{gap:0!important}
.gsClean .gsMoreMenuItems{padding:0 0 9px 40px!important}
.gsClean .gsMenuAction{min-height:31px!important;border:0!important;border-bottom:1px solid #e8eee9!important;background:transparent!important;border-radius:0!important;padding:7px 3px!important;box-shadow:none!important;font-size:.79rem!important;transition:background .16s,color .16s}
.gsClean .gsMenuAction:hover{background:var(--gs-soft)!important;color:#1b5131!important}
.gsClean .gsMoreIcon{width:27px!important;height:27px!important;background:var(--gs-soft)!important;border-radius:7px!important}
.gsClean .subpageBack{padding:5px 0;margin-bottom:5px;background:var(--gs-bg)}
.gsClean #sensores .card{padding:13px 0!important}
.gsClean #sensores .sensorOverviewGrid{border-top:1px solid var(--gs-line);border-bottom:1px solid var(--gs-line);margin:12px 0}
.gsClean #sensores .sensorOverviewGrid>div{background:transparent!important;border-radius:0!important;box-shadow:none!important}
.gsClean #sensores .sensorSelector{background:transparent!important;border:0!important;border-bottom:1px solid var(--gs-line)!important;border-radius:0!important;box-shadow:none!important;padding:10px 0!important}
.gsClean #sensores .sensorSelector.selected{border-left:3px solid var(--gs-green)!important;padding-left:10px!important}
.gsClean #sensores .sensorTabs button{background:transparent!important;border:0!important;border-radius:0!important;border-bottom:2px solid transparent!important;box-shadow:none!important}
.gsClean #sensores .sensorTabs button.active{color:var(--gs-green)!important;border-bottom-color:var(--gs-green)!important;background:transparent!important}
.gsClean :is(.supportAdminHead,.adminTop){background:transparent!important;color:var(--gs-ink)!important;border:0!important;border-bottom:1px solid var(--gs-line)!important;border-radius:0!important;padding:10px 0 20px!important;box-shadow:none!important}
.gsClean :is(.supportAdminHead,.adminTop) :is(h1,p,span){color:inherit}
.gsClean :is(.supportAdminHead,.adminTop) p{color:var(--gs-muted)!important}
.gsClean .adminTools{gap:20px}
.gsClean .adminTools .card{padding:12px 0!important}
.gsClean :is(.supportCounts,.supportFarmOverview,.commercialHistory,.farmModules,.roleGuide>div){background:transparent!important;box-shadow:none!important;border-radius:0!important;border:0!important}
.gsClean .farmDetails>summary{padding:8px 0!important}
.gsClean :is(.supportReply,.aiAnswer,.learningCorrection){background:#edf4ef;border:0;border-left:2px solid #80a58b;border-radius:0;box-shadow:none;padding:12px 14px}
/* Dialogues remain distinct surfaces; status colours and alert indicators retain their meaning. */
.gsClean :is(dialog,.modalDialog,.rotationDialog,.supportDialog){background:var(--gs-surface)!important;border:1px solid var(--gs-line)!important;border-radius:12px!important;box-shadow:0 20px 70px #163c2b30!important}
.gsClean dialog::backdrop{background:#18392b55}
.gsClean .supportHeader{background:#f4f8f5;border-bottom:1px solid var(--gs-line)}
.gsClean .supportReport summary{padding:0}
.gsClean .supportReport[open]{padding-bottom:14px!important}
.gsClean :is(.roleBadge,.farmStatus,.sensorHealth,.supportState,.supportBadge,.pill){box-shadow:none}
.gsClean .rowAction{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--gs-line)}
.gsClean .rowAction small{display:block;color:var(--gs-muted);font-size:.75rem}
.gsClean .pageIntro{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:12px 0 22px}
.gsClean .pageIntro .eyebrow{display:block;margin-bottom:8px;color:var(--gs-muted)}
@media(max-width:700px){.gsClean main{padding:14px 15px}.gsClean header{padding:12px 15px}.gsClean nav{padding:6px 10px}.gsClean nav button{padding:8px 9px!important}.gsClean :is(button,.linkbtn){min-height:40px}.gsClean :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select){min-height:40px}.gsClean .gsMenuAction{min-height:38px!important}.gsClean .grid2{grid-template-columns:1fr}.gsClean .pageIntro{align-items:flex-start;flex-direction:column;gap:10px}.gsClean .gsMoreMenuItems{padding-left:12px!important}.gsClean :is(.metrics,.adminMetrics,.saMetrics){grid-template-columns:repeat(2,minmax(0,1fr))}.gsClean .sensorOverviewGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.gsClean *, .gsClean *::before,.gsClean *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gsClean :is(button,.linkbtn):hover{transform:none}}
.gsClean :is(.trayCardShell,.tenebrioDevice,.tenebrioVariable,.expertFinding,.inspectionResult,.commercialForm,.moduleCommercial,.commercialGrid>div){background:transparent!important;border-radius:0!important;box-shadow:none!important;border:0!important;border-bottom:1px solid var(--gs-line)!important}
.gsClean .traycard{background:transparent!important;border-radius:0!important;border:0!important;box-shadow:none!important;padding:12px 0!important;text-align:left}
.gsClean .trayCardShell{padding:4px 0!important}
.gsClean :is(.tenebrioVariable,.tenebrioDevice,.expertFinding,.inspectionResult){padding:12px 0!important}
.gsClean .commercialForm{padding:10px 0!important}
.gsClean :is(.periodButtons,.trayFilterButtons) button.active{background:var(--gs-soft);border-color:#b6d1bd;color:var(--gs-green)}
