:root{--forest:#143d2b;--forest-2:#1d523b;--lime:#b8dc39;--mint:#dff0e5;--paper:#f4f5f0;--surface:#f4f5f0;--brown:#80533f;--white:#fff;--ink:#18231d;--muted:#68746d;--line:#dde3dc;--danger:#b33b31;--shadow:0 18px 50px rgba(21,50,37,.09)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}button,input{font:inherit}.hidden{display:none!important}.eyebrow{margin:0 0 10px;color:#719080;font-size:11px;font-weight:800;letter-spacing:.15em}.brand-mark{display:grid;width:46px;height:46px;border-radius:14px;background:var(--lime);color:var(--forest);font-size:23px;font-weight:900;place-items:center;transform:skew(-5deg)}.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:17px}
.login-view{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1fr) minmax(400px,560px);grid-template-rows:auto 1fr;padding:42px 6vw;background:radial-gradient(circle at 20% 80%,#296043 0,transparent 34%),linear-gradient(135deg,#103523 0 55%,#edf1e9 55%)}.login-brand{display:flex;gap:13px;align-items:center;color:#fff}.login-brand strong,.login-brand span{display:block}.login-brand strong{letter-spacing:.12em}.login-brand span{margin-top:3px;color:#aec5b8;font-size:11px}.login-copy{align-self:center;max-width:630px;color:#fff}.login-copy h1{margin:0;font-size:clamp(42px,5vw,72px);line-height:1.02;letter-spacing:-.055em}.login-copy>p:last-child{max-width:510px;color:#bcd0c4;font-size:18px;line-height:1.6}.login-card{align-self:center;grid-column:2;grid-row:1/3;width:100%;max-width:480px;margin-left:auto;padding:48px;border:1px solid rgba(255,255,255,.7);border-radius:28px;background:rgba(255,255,255,.92);box-shadow:0 30px 90px rgba(6,36,21,.2);backdrop-filter:blur(16px)}.login-card h2{margin:0;font-size:32px;letter-spacing:-.03em}.muted{color:var(--muted);line-height:1.5}.login-card label{display:block;margin-top:22px;color:#45544c;font-size:13px;font-weight:700}.login-card input{width:100%;margin-top:8px;padding:14px 15px;border:1px solid #ccd5ce;border-radius:12px;outline:none;background:#fff}.login-card input:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px rgba(29,82,59,.12)}.login-card button{width:100%;margin-top:12px;padding:15px;border:0;border-radius:12px;background:var(--forest);color:#fff;font-weight:800;cursor:pointer}.login-card button:hover{background:var(--forest-2)}.login-card button:disabled{opacity:.65}.form-error{min-height:20px;margin:10px 0 0;color:var(--danger);font-size:13px}
.app-view{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:28px 20px;background:var(--forest);color:#fff}.side-brand{display:flex;gap:11px;align-items:center;padding:0 8px;letter-spacing:.12em}.sidebar nav{display:grid;gap:7px;margin-top:54px}.nav-item{display:flex;gap:12px;align-items:center;padding:13px 14px;border:0;border-radius:11px;background:transparent;color:#a9c0b3;text-align:left}.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.nav-item span{font-size:20px}.side-foot{position:absolute;right:28px;bottom:30px;left:28px;display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);color:#91ac9d;font-size:11px}.side-foot strong{color:var(--lime)}main{padding:34px clamp(24px,4vw,64px) 64px}.topbar{display:flex;justify-content:space-between;align-items:center}.topbar h1{margin:0;font-size:34px;letter-spacing:-.04em}.top-actions{display:flex;gap:12px;align-items:center}.refresh-status{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}.live-dot{width:8px;height:8px;border-radius:50%;background:#40aa6b;box-shadow:0 0 0 5px rgba(64,170,107,.12)}.ghost,.avatar{border:1px solid var(--line);background:#fff;cursor:pointer}.ghost{padding:10px 15px;border-radius:10px;font-size:12px;font-weight:700}.avatar{width:40px;height:40px;border-radius:50%;background:var(--forest);color:#fff;font-size:11px;font-weight:800}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:34px 0}.summary-card{min-height:142px;padding:22px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 8px 26px rgba(21,50,37,.035)}.summary-card span,.summary-card small{display:block;color:var(--muted);font-size:12px}.summary-card strong{display:block;margin:14px 0 6px;font-size:34px;letter-spacing:-.04em}.summary-card strong.green{color:#238854}.summary-card.featured{border:0;background:var(--forest);color:#fff}.summary-card.featured span,.summary-card.featured small{color:#b6c9be}.section-head{display:flex;justify-content:space-between;align-items:end;margin:42px 0 18px}.section-head h2{margin:0;font-size:22px}.section-head p{margin:6px 0 0;color:var(--muted);font-size:13px}.environment-pill{padding:7px 10px;border-radius:99px;background:#e2eadf;color:var(--forest);font-size:10px;font-weight:900;letter-spacing:.1em}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px}.device-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}.device-head{display:flex;justify-content:space-between;align-items:start;padding:22px 22px 17px}.device-id{display:flex;gap:13px;align-items:center}.device-icon{display:grid;width:43px;height:43px;border-radius:13px;background:var(--mint);color:var(--forest);font-size:21px;place-items:center}.device-id h3{margin:0;font-size:17px}.device-id p{margin:5px 0 0;color:var(--muted);font-size:11px}.status-pill{padding:7px 10px;border-radius:99px;background:#e4f5e9;color:#1e7b4b;font-size:10px;font-weight:900}.status-pill.offline{background:#f1e9e7;color:#9a4439}.process{margin:0 22px;padding:18px;border-radius:15px;background:#f6f8f4}.process-row{display:flex;justify-content:space-between;align-items:center}.process-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:#708078}.process-state{font-size:13px;font-weight:900;color:var(--forest)}.process-meta{display:flex;justify-content:space-between;margin-top:14px;color:var(--muted);font-size:12px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:20px;background:var(--line);border-top:1px solid var(--line)}.metric{padding:20px;background:#fff}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{display:block;margin-top:7px;font-size:24px;letter-spacing:-.03em}.metric small{color:#849087;font-size:11px}.device-foot{display:flex;justify-content:space-between;padding:14px 22px;background:#fafbf8;color:var(--muted);font-size:10px}.empty-state{padding:45px;border:1px dashed #b9c5bb;border-radius:18px;text-align:center}.empty-state span{display:block;margin-top:8px;color:var(--muted)}
@media(max-width:1000px){.summary-grid{grid-template-columns:1fr 1fr}.login-view{grid-template-columns:1fr;background:linear-gradient(160deg,#103523 0 38%,#edf1e9 38%)}.login-copy{padding:70px 0}.login-card{grid-column:1;grid-row:auto;margin:0 auto}.login-brand{grid-column:1}.app-view{grid-template-columns:76px 1fr}.sidebar{padding:24px 14px}.side-brand strong,.nav-item:not(.active),.nav-item.active{font-size:0}.side-brand{padding:0}.nav-item span{font-size:20px}.side-foot{display:none}}@media(max-width:680px){.login-view{padding:28px 20px}.login-copy h1{font-size:42px}.login-card{padding:30px 24px}.app-view{display:block}.sidebar{position:static;display:flex;width:100%;height:68px;padding:16px 20px;align-items:center}.sidebar nav{margin:0 0 0 auto}.nav-item.active{padding:9px}.sidebar nav .nav-item:not(.active){display:none}main{padding:25px 17px}.topbar{align-items:start}.refresh-status{display:none}.summary-grid{grid-template-columns:1fr 1fr;gap:10px}.summary-card{min-height:118px;padding:17px}.summary-card strong{font-size:29px}.section-head{align-items:start}.section-head p{max-width:230px}.device-grid{grid-template-columns:1fr}.device-foot{gap:12px;flex-direction:column}}

/* Identidade visual dos catálogos Agrotek */
:root{--forest:#52705a;--forest-2:#425d4a;--lime:#79503d;--mint:#e9ddd5;--paper:#f5f0eb;--ink:#292728;--muted:#686363;--line:#cdbbb1;--brown:#79503d;--dark-brown:#3d271e;--shadow:0 18px 50px rgba(61,39,30,.1)}
body{font-family:Arial,"Segoe UI",sans-serif}
.eyebrow{color:var(--brown)}
.brand-mark{display:none}
.logo-shell{display:flex;align-items:center;justify-content:center;padding:10px 15px;border-radius:12px;background:#fff}
.logo-shell img{display:block;width:155px;height:auto}
.logo-shell.small{padding:8px 10px;border-radius:9px}
.logo-shell.small img{width:130px}
.brand-divider{display:block;width:1px;height:28px;background:rgba(255,255,255,.35)}
.brand-product{display:block;color:#eadfd8;font-size:11px;font-weight:800;letter-spacing:.16em}
.partner-brand-text{display:block;color:#fff;font-size:clamp(20px,3vw,34px);font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.catalog-brand-band .partner-brand-text{color:var(--dark-brown);text-align:center}
body[data-partner-brand]:not([data-partner-brand=""]) .catalog-brand-band{display:flex;justify-content:center;padding:18px;background:#fff}
body[data-partner-brand]:not([data-partner-brand=""]) .catalog-brand-image{width:min(100%,440px);max-width:440px;max-height:88px;object-fit:contain}
body[data-partner-brand]:not([data-partner-brand=""]) .login-brand{width:min(100%,520px);padding:15px 18px;border-radius:14px;background:#fff}
body[data-partner-brand]:not([data-partner-brand=""]) .login-brand .catalog-brand-image{width:100%;max-width:480px;max-height:86px;object-fit:contain}
body[data-partner-brand]:not([data-partner-brand=""]) .catalog-brand-band::before,body[data-partner-brand]:not([data-partner-brand=""]) .catalog-brand-band::after,body[data-partner-brand]:not([data-partner-brand=""]) .login-brand::before,body[data-partner-brand]:not([data-partner-brand=""]) .login-brand::after{display:none}
.partner-admin-panel{width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 32px)}.partner-admin-body{padding:0;overflow:hidden}.partner-admin-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:560px}.partner-sidebar{padding:18px;border-right:1px solid var(--line);background:#f8f5f2}.partner-sidebar h3{margin:0 0 12px;font-size:14px}.partner-selector{display:grid;gap:8px}.partner-selector button{display:grid;gap:3px;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--dark-brown);text-align:left;cursor:pointer}.partner-selector button.active{border-color:var(--dark-brown);box-shadow:0 0 0 1px var(--dark-brown)}.partner-selector small{color:var(--muted)}.partner-workspace{min-width:0;padding:20px;overflow:auto}.partner-summary{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.partner-summary h3{margin:0 0 4px}.partner-tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--line);overflow:auto}.partner-tabs button{padding:10px 13px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:800;white-space:nowrap;cursor:pointer}.partner-tabs button.active{border-color:var(--accent);color:var(--dark-brown)}.partner-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.partner-admin-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.partner-admin-card.wide{grid-column:1/-1}.partner-admin-card h3{margin:0 0 14px}.partner-admin-form{display:grid;gap:12px}.partner-admin-form.inline{grid-template-columns:minmax(180px,1fr) auto;align-items:end}.partner-admin-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.partner-admin-form input,.partner-admin-form select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.partner-admin-form button,.partner-row button,.partner-pagination button{padding:10px 13px;border:0;border-radius:9px;background:var(--dark-brown);color:#fff;font-weight:800;cursor:pointer}.partner-admin-form button:disabled,.partner-row button:disabled,.partner-pagination button:disabled{cursor:not-allowed;opacity:.5}.partner-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line)}.partner-row:first-child{border-top:0}.partner-row small{display:block;margin-top:3px;color:var(--muted)}.partner-row button.danger{background:var(--danger)}.partner-note{color:var(--muted);font-size:12px;line-height:1.5}.partner-toolbar{display:flex;gap:10px;align-items:end;justify-content:space-between;margin-bottom:14px}.partner-toolbar form{display:flex;gap:8px;flex:1}.partner-toolbar input{min-width:0;flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.partner-toolbar button{padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:800;cursor:pointer}.partner-pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;padding-top:15px;border-top:1px solid var(--line)}.partner-pagination span{color:var(--muted);font-size:12px}.partner-audit-type{display:inline-block;margin-bottom:4px;padding:3px 7px;border-radius:999px;background:#efe9e4;color:var(--dark-brown);font-size:11px;font-weight:900}.partner-empty{padding:28px 12px;color:var(--muted);text-align:center}
@media(max-width:760px){.partner-admin-panel{width:100vw;max-height:100vh}.partner-admin-layout{display:block;min-height:0}.partner-sidebar{border-right:0;border-bottom:1px solid var(--line)}.partner-selector{display:flex;overflow:auto}.partner-selector button{min-width:210px}.partner-workspace{padding:16px}.partner-admin-grid{grid-template-columns:1fr}.partner-admin-card.wide{grid-column:auto}.partner-admin-form.inline{grid-template-columns:1fr}.partner-summary,.partner-toolbar{display:grid}.partner-pagination{justify-content:center}}
.login-view{background:radial-gradient(circle at 7% 92%,#a16b51 0 17%,transparent 17.2%),radial-gradient(circle at 44% 108%,#2d1b15 0 21%,transparent 21.2%),linear-gradient(135deg,var(--dark-brown) 0 55%,var(--paper) 55%)}
.login-brand{gap:16px;color:inherit}
.login-copy .eyebrow{color:#e9ddd5}
.login-copy>p:last-child{color:#e0d2ca}
.login-card{border-color:#eadfd7;box-shadow:0 30px 90px rgba(61,39,30,.2)}
.login-card button,.avatar{background:var(--dark-brown)}
.login-card button:hover{background:var(--brown)}
.sidebar{background:var(--dark-brown)}
.nav-item{color:#d2c2b8}
.side-foot{color:#c5b2a7}
.side-foot strong{color:#fff}
.summary-card{box-shadow:0 8px 26px rgba(61,39,30,.04)}
.summary-card.featured{background:var(--brown)}
.summary-card.featured span,.summary-card.featured small{color:#eadfd8}
.environment-pill{background:#e9ddd5;color:var(--dark-brown)}
.device-icon{background:#e9ddd5;color:var(--brown)}
.process{background:#f8f3ef}
.process-state{color:var(--brown)}
.offline-process{border:1px solid #ead5d1;background:#fbf3f1}.offline-process .process-state{color:#a33d31}.offline-process p{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.detail-kpi-offline{grid-column:1/-1}.detail-kpi-offline strong{color:#a33d31}.detail-kpi-offline small{display:block;margin-top:8px;color:var(--muted)}
.pid-monitor-card{margin:18px 0;padding:22px;border:1px solid #d8c5bb;background:#fff}.pid-monitor-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.pid-monitor-head h3{margin:4px 0 5px}.pid-monitor-head p{margin:0;color:var(--muted);font-size:11px}.pid-assessment{padding:8px 11px;border:1px solid #d8c5bb;font-size:10px;white-space:nowrap}.pid-assessment.optimized{border-color:#92d0aa;background:#e9f7ee;color:#167341}.pid-assessment.acceptable,.pid-assessment.preliminary{border-color:#e3bf72;background:#fff7df;color:#8b6415}.pid-assessment.review{border-color:#dea49d;background:#fff0ee;color:#a33d31}.pid-assessment.insufficient{background:#f4f2f0;color:var(--muted)}.pid-parameters,.pid-history-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px;margin-top:18px}.pid-parameters span,.pid-history-metrics span{padding:12px;border:1px solid var(--line);background:#faf9f7}.pid-parameters b,.pid-history-metrics b{display:block;color:var(--muted);font-size:8px;letter-spacing:.06em}.pid-parameters strong,.pid-history-metrics strong{display:block;margin-top:6px;font-size:14px}.pid-recommendation{display:grid;gap:5px;margin-top:14px;padding:13px;border-left:4px solid var(--brown);background:#f8f3ef}.pid-recommendation b{color:var(--muted);font-size:8px;letter-spacing:.07em}.pid-recommendation strong{font-size:12px}.pid-explanation{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.5}@media(max-width:680px){.pid-monitor-head{display:grid}.pid-assessment{white-space:normal}}
@media(max-width:1000px){.login-view{background:radial-gradient(circle at 8% 37%,#a16b51 0 12%,transparent 12.2%),linear-gradient(160deg,var(--dark-brown) 0 38%,var(--paper) 38%)}.logo-shell.small img{width:42px;object-fit:cover;object-position:left}}
@media(max-width:680px){.logo-shell.small img{width:125px;object-fit:contain}.brand-divider,.brand-product{display:none}}

.device-card{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.device-card:hover{transform:translateY(-3px);box-shadow:0 22px 55px rgba(61,39,30,.15)}
.overview-client-filter{display:flex;justify-content:flex-end;margin:-5px 0 16px}.overview-client-filter label{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.overview-client-filter select{display:block;min-width:260px;margin-top:6px;padding:10px 34px 10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:11px;font-weight:700}.overview-client-filter.hidden{display:none}@media(max-width:680px){.overview-client-filter{justify-content:stretch}.overview-client-filter label,.overview-client-filter select{width:100%;min-width:0}}

/* v108: identificação explícita do cliente e da fazenda na visão geral. */
.overview-identity{display:flex;gap:28px;align-items:center;justify-content:space-between;margin:18px 0 30px;padding:27px 30px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}.overview-identity h2{margin:3px 0 0;font-size:clamp(30px,3.2vw,48px);line-height:1.05;letter-spacing:-.04em}.overview-identity>div>p:last-child{margin:8px 0 0;color:var(--brown);font-size:clamp(17px,1.5vw,23px);font-weight:700}.overview-identity-data{display:grid;grid-template-columns:repeat(2,minmax(125px,1fr));gap:10px;min-width:min(480px,48%)}.overview-identity-data span{padding:12px 14px;border-radius:12px;background:var(--surface)}.overview-identity-data b,.overview-identity-data strong{display:block}.overview-identity-data b{margin-bottom:5px;color:var(--muted);font-size:9px;letter-spacing:.08em}.overview-identity-data strong{font-size:14px}@media(max-width:850px){.overview-identity{align-items:stretch;flex-direction:column}.overview-identity-data{width:100%;min-width:0}}@media(max-width:480px){.overview-identity{padding:22px 20px}.overview-identity-data{grid-template-columns:1fr}.overview-identity h2{font-size:32px}}

/* v110: cadastro de usuário traz o formulário aberto para a área visível. */
.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.observability-device-head{display:flex;gap:18px;align-items:end;justify-content:space-between}.observability-device-head h3{margin:0}.observability-device-head label{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.observability-device-head select{display:block;min-width:230px;margin-top:5px;padding:8px 30px 8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}@media(max-width:680px){.observability-device-head{align-items:stretch;flex-direction:column}.observability-device-head select{width:100%;min-width:0}}
@media print{html,body{overflow:visible!important;width:auto!important;height:auto!important;max-height:none!important}.printing-report .reports-overlay,.printing-report .reports-panel,.printing-report .reports-body,.printing-report #reportContent{overflow:visible!important;width:100%!important;height:auto!important;max-height:none!important;contain:none!important}.printing-report .reports-overlay{position:static!important;inset:auto!important;display:block!important}.printing-report .reports-panel{display:block!important}.printing-report #reportContent{display:block!important}.printing-report .report-lot-detail{display:block!important;page-break-before:always;break-before:page}.printing-report .report-lot-detail:first-of-type{page-break-before:auto;break-before:auto}.printing-report .report-measurement-block,.printing-report .history-table-wrap{overflow:visible!important;height:auto!important;max-height:none!important}.printing-report .report-table thead{display:table-header-group}.printing-report .report-table tbody{display:table-row-group}.printing-report .report-table tr{page-break-inside:avoid;break-inside:avoid}}
.device-photo{display:flex;overflow:hidden;width:78px;height:58px;flex:0 0 78px;align-items:center;justify-content:center;border:1px solid #e4d8d0;border-radius:11px;background:#fff}.device-photo img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:420px){.device-photo{width:64px;height:48px;flex-basis:64px}.device-head{gap:9px;padding:17px}.device-id{gap:9px}.status-pill{padding:6px 7px;font-size:8px}}
.detail-overlay{position:fixed;z-index:50;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.58);place-items:center;backdrop-filter:blur(6px)}
.detail-panel{overflow:hidden;width:min(1080px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}
.detail-header{display:flex;justify-content:space-between;align-items:start;padding:26px 30px;border-bottom:1px solid var(--line);background:#fff}.detail-header h2{margin:0;font-size:26px;letter-spacing:-.035em}.detail-header>div>p:last-child{margin:6px 0 0;color:var(--muted);font-size:12px}.close-button{display:grid;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--dark-brown);font-size:25px;line-height:1;cursor:pointer;place-items:center}.detail-body{overflow:auto;max-height:calc(100vh - 158px);padding:28px 30px 34px}.detail-loading{padding:70px;text-align:center;color:var(--muted)}
.detail-actions,.detail-title-row{display:flex;gap:9px;align-items:center}.detail-title-row h2{margin:0}.detail-title-row .rename-button{padding:2px 9px;font-size:16px;line-height:1}.rename-button{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--dark-brown);font-size:11px;font-weight:800;cursor:pointer}.rename-button:hover{background:var(--paper)}
.detail-connection{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:11px}.detail-connection .status-pill{padding:5px 8px;font-size:8px}
.detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.detail-kpi{padding:17px;border:1px solid #ded1c9;border-radius:14px;background:#fff}.detail-kpi span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em}.detail-kpi strong{display:block;margin-top:8px;font-size:21px}.chart-card{margin-top:18px;padding:22px;border:1px solid #ded1c9;border-radius:17px;background:#fff}.chart-top{display:flex;justify-content:space-between;align-items:start}.chart-top h3{margin:0;font-size:16px}.chart-top p{margin:5px 0 0;color:var(--muted);font-size:11px}.chart-legend{display:flex;gap:16px;color:var(--muted);font-size:11px}.chart-legend span{display:flex;gap:6px;align-items:center}.legend-line{width:18px;height:3px;border-radius:4px;background:#f97316}.legend-line.mass{background:#16a34a}.legend-line.reference{background:#ef4444}.telemetry-chart{display:block;width:100%;height:260px;margin-top:18px}.chart-grid{stroke:#e7ddd6;stroke-width:1}.chart-time-grid{stroke:#f0e8e3;stroke-width:1;stroke-dasharray:3 5}.chart-axis{fill:#81756f;font-size:10px}.chart-time-axis{fill:#635b57;font-size:10px;font-weight:700}.chart-air{fill:none;stroke:#f97316;stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}.chart-mass{fill:none;stroke:#16a34a;stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}.chart-setpoint{fill:none;stroke:#ef4444;stroke-width:2;stroke-dasharray:6 5}.history-head{display:flex;justify-content:space-between;align-items:end;margin:24px 0 10px}.history-head h3{margin:0;font-size:16px}.history-head span{color:var(--muted);font-size:11px}.history-table-wrap{overflow:auto;border:1px solid #ded1c9;border-radius:15px;background:#fff}.history-table{width:100%;border-collapse:collapse;white-space:nowrap}.history-table th,.history-table td{padding:13px 15px;border-bottom:1px solid #eee6e1;text-align:left;font-size:11px}.history-table th{background:#f8f3ef;color:var(--muted);font-size:9px;letter-spacing:.08em}.history-table tr:last-child td{border-bottom:0}.detail-error{padding:45px;border:1px solid #e1bdb7;border-radius:15px;background:#fff6f4;color:var(--danger);text-align:center}
@media(max-width:760px){.detail-overlay{padding:0}.detail-panel{width:100%;height:100vh;max-height:none;border-radius:0}.detail-body{max-height:calc(100vh - 118px);padding:20px 16px}.detail-header{padding:20px 17px}.detail-kpis{grid-template-columns:1fr 1fr}.chart-top{gap:15px;flex-direction:column}.telemetry-chart{height:220px}}
.moisture-card{display:grid;grid-template-columns:220px 1fr;gap:20px;margin-top:18px;padding:22px;border:1px solid #ded1c9;border-radius:17px;background:#fff}.moisture-copy h3{margin:0;font-size:17px}.moisture-copy>p:last-child{color:var(--muted);font-size:11px;line-height:1.5}.moisture-form{display:grid;grid-template-columns:1fr 1.35fr;gap:11px}.moisture-form label{color:#514a47;font-size:10px;font-weight:800}.moisture-form input{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;outline:none}.moisture-form label:nth-child(3){grid-column:1/3}.moisture-form button{align-self:end;padding:12px;border:0;border-radius:9px;background:var(--dark-brown);color:#fff;font-size:11px;font-weight:800;cursor:pointer}.moisture-form button:disabled{opacity:.6}.moisture-error{grid-column:1/3;margin:0}.moisture-list{grid-column:1/3;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding-top:16px;border-top:1px solid #eee4de}.moisture-row{padding:12px;border-radius:10px;background:#f8f3ef}.moisture-row strong,.moisture-row span,.moisture-row small{display:block}.moisture-row strong{color:var(--brown);font-size:20px}.moisture-row span{margin-top:4px;color:var(--ink);font-size:10px}.moisture-row small{overflow:hidden;margin-top:4px;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.moisture-empty{grid-column:1/-1;padding:14px;color:var(--muted);font-size:11px;text-align:center}
.session-volume-card{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-top:18px;padding:20px 22px;border:1px solid #ded1c9;border-radius:17px;background:#fff}.session-volume-card h3{margin:0;font-size:17px}.session-volume-card>div>p:last-child{margin:6px 0 0;color:var(--muted);font-size:10px}.session-volume-card form{display:flex;gap:9px;align-items:end}.session-volume-card label{color:#514a47;font-size:10px;font-weight:800}.session-volume-card input{display:block;width:180px;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:9px}.session-volume-card button{padding:12px;border:0;border-radius:9px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800;cursor:pointer}.session-volume-card button:disabled{opacity:.6}
.session-volume-card #sessionVolumeStatus.saved{display:inline-block;padding:6px 9px;border-radius:99px;background:#e4f5e9;color:#1e7b4b;font-weight:800}
@media(max-width:760px){.session-volume-card{align-items:stretch;flex-direction:column}.session-volume-card form{align-items:stretch;flex-direction:column}.session-volume-card input{width:100%}}
@media(max-width:760px){.moisture-card{grid-template-columns:1fr;padding:17px}.moisture-form{grid-template-columns:1fr}.moisture-form label:nth-child(3),.moisture-error,.moisture-list{grid-column:1}.moisture-list{grid-template-columns:1fr 1fr}}
.password-overlay{position:fixed;z-index:80;inset:0;display:grid;padding:22px;background:radial-gradient(circle at 15% 90%,#79503d 0 15%,transparent 15.2%),var(--dark-brown);place-items:center}.password-card{width:min(460px,100%);padding:38px;border-radius:24px;background:#fff;box-shadow:0 35px 100px rgba(0,0,0,.32)}.password-card h2{margin:0;font-size:28px}.password-card>p:nth-of-type(2){color:var(--muted);font-size:13px;line-height:1.5}.password-card label{display:block;margin-top:17px;color:#514a47;font-size:12px;font-weight:800}.password-card input{width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;outline:none}.password-card input:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(121,80,61,.12)}.password-card button{width:100%;padding:14px;border:0;border-radius:11px;background:var(--dark-brown);color:#fff;font-weight:800;cursor:pointer}.password-card button:disabled{opacity:.6}.password-hint{margin:8px 0 0!important;color:var(--muted);font-size:11px!important}
.forgot-note{margin:16px 8px 0;color:var(--muted);font-size:11px;line-height:1.45;text-align:center}
.login-card .install-app{margin-top:9px;border:1px solid var(--brown);background:#fff;color:var(--dark-brown)}.login-card .install-app:hover{background:var(--paper)}
.ios-install{margin:12px 4px 0;padding:10px;border-radius:9px;background:var(--paper);color:var(--muted);font-size:10px;line-height:1.45;text-align:center}
.primary-action{padding:11px 15px;border:0;border-radius:10px;background:var(--dark-brown);color:#fff;font-size:12px;font-weight:800;cursor:pointer}.primary-action:hover{background:var(--brown)}.primary-action:disabled{opacity:.6}
.installation-overlay{position:fixed;z-index:70;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.installation-panel{overflow:hidden;width:min(950px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.installation-form{overflow:auto;max-height:calc(100vh - 154px);padding:25px 30px 30px}.installation-form fieldset{margin:0 0 18px;padding:19px;border:1px solid #ded1c9;border-radius:15px;background:#fff}.installation-form legend{padding:0 8px;color:var(--dark-brown);font-size:13px;font-weight:900}.installation-form legend small{color:var(--muted);font-weight:400}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.installation-form label{color:#514a47;font-size:11px;font-weight:800}.installation-form input{width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;outline:none}.installation-form input:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(121,80,61,.1)}.form-actions{display:flex;justify-content:flex-end;gap:10px}.installation-result{margin:0 0 18px;padding:17px;border:1px solid #b8d0bd;border-radius:13px;background:#edf6ef;color:#28583a;font-size:12px;line-height:1.6}.installation-result strong{font-size:14px}.installation-result code{padding:3px 6px;border-radius:5px;background:#dcecdf;color:#21492f;font-weight:800}
.field-hint{display:block;margin-top:5px;color:var(--muted);font-size:9px;font-weight:400;line-height:1.35}
@media(max-width:760px){.primary-action#newInstallationButton{position:fixed;right:18px;bottom:18px;z-index:20;border-radius:99px;box-shadow:0 8px 25px rgba(61,39,30,.25)}.installation-overlay{padding:0}.installation-panel{height:100vh;max-height:none;border-radius:0}.installation-form{max-height:calc(100vh - 115px);padding:18px 15px}.form-grid{grid-template-columns:1fr}.installation-form fieldset{padding:15px}}
.directory-overlay{position:fixed;z-index:75;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.directory-panel{overflow:hidden;width:min(1180px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.directory-body{overflow:auto;max-height:calc(100vh - 154px);padding:24px 30px 34px}.directory-client{margin-bottom:18px;border:1px solid #ded1c9;border-radius:17px;background:#fff}.directory-client-head{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid #eee4de}.directory-client-head h3{margin:0;font-size:20px}.directory-client-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.directory-count{align-self:center;padding:7px 10px;border-radius:99px;background:#e9ddd5;color:var(--dark-brown);font-size:10px;font-weight:900}.directory-admins{padding:14px 22px;border-bottom:1px solid #eee4de;color:var(--muted);font-size:11px}.directory-admins strong{color:var(--ink)}.property-list{display:grid;gap:13px;padding:18px}.property-card{padding:17px;border:1px solid #e4d8d0;border-radius:13px;background:#faf7f4}.property-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.property-head h4{margin:0;font-size:15px}.property-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.property-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:15px}.directory-section-title{margin:0 0 8px;color:var(--brown);font-size:9px;font-weight:900;letter-spacing:.1em}.directory-list{display:grid;gap:7px}.directory-row{display:flex;justify-content:space-between;gap:12px;padding:10px 11px;border-radius:9px;background:#fff;font-size:11px}.directory-row span,.directory-row small{display:block}.directory-row small{margin-top:3px;color:var(--muted);font-size:9px}.online-mark{color:#238854;font-weight:900}.offline-mark{color:#9a4439;font-weight:900}.add-user-button{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--dark-brown);font-size:10px;font-weight:800;cursor:pointer}.property-user-form{display:grid;grid-template-columns:1fr 1.3fr .8fr auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e8ddd6}.property-user-form input,.property-user-form select{min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:10px}.property-user-form button{padding:10px 12px;border:0;border-radius:8px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800}.property-user-result{grid-column:1/-1;margin:0;color:#28583a;font-size:10px}.directory-empty{padding:12px;border-radius:9px;background:#fff;color:var(--muted);font-size:10px;text-align:center}
.status-pill.unstable{background:#fff1ce;color:#8a6110}
.manuals-overlay{position:fixed;z-index:82;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.manuals-panel{overflow:hidden;width:min(980px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.manuals-body{overflow:auto;max-height:calc(100vh - 155px);padding:24px}.manuals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.manual-card{display:flex;min-height:190px;padding:22px;border:1px solid #ded1c9;border-radius:17px;background:#fff;flex-direction:column;justify-content:space-between}.manual-card span{color:var(--brown);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.manual-card h3{margin:10px 0 7px;font-size:18px}.manual-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.manual-card button{align-self:flex-start;margin-top:18px;padding:11px 16px;border:0;border-radius:9px;background:var(--dark-brown);color:#fff;font-weight:800}.manual-card button:disabled{opacity:.6}@media(max-width:700px){.manuals-overlay{padding:0}.manuals-panel{width:100%;height:100%;max-height:none;border-radius:0}.manuals-body{max-height:calc(100vh - 130px);padding:16px}.manuals-grid{grid-template-columns:1fr}.manual-card{min-height:165px}}
.directory-header-actions{display:flex;gap:12px;align-items:center}.directory-search{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:10px;font-weight:800}.directory-search input{width:280px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--paper);outline:none}.directory-search input:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(121,80,61,.1)}.directory-no-results{padding:45px;border:1px dashed var(--line);border-radius:15px;color:var(--muted);text-align:center}
@media(max-width:760px){.directory-header-actions{gap:8px}.directory-search span{display:none}.directory-search input{width:min(52vw,230px);padding:10px}.directory-panel .detail-header>div:first-child>p:last-child{display:none}}
.provision-overlay{position:fixed;z-index:78;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.provision-panel{overflow:hidden;width:min(760px,100%);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.provision-form{padding:26px 30px 30px}.provision-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.provision-fields label{color:#514a47;font-size:11px;font-weight:800}.provision-fields label:last-child{grid-column:1/-1}.provision-fields input{width:100%;margin-top:7px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none}.provision-fields input:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(121,80,61,.1)}.provision-note{margin:17px 0;padding:12px;border-radius:10px;background:#eee5df;color:var(--muted);font-size:10px;line-height:1.5}.credential-result{margin:16px 0;padding:18px;border:1px solid #b8d0bd;border-radius:13px;background:#edf6ef;color:#28583a;font-size:11px;line-height:1.5}.credential-result code{display:block;overflow-wrap:anywhere;margin:10px 0;padding:12px;border-radius:8px;background:#dcecdf;color:#173c27;font-size:12px;font-weight:800}.credential-result button{padding:9px 11px;border:1px solid #9db9a4;border-radius:8px;background:#fff;color:#28583a;font-size:10px;font-weight:800;cursor:pointer}
.directory-equipment-actions{display:flex;gap:8px;align-items:center}.directory-equipment-actions button{padding:6px 8px;border:1px solid #dfc4bf;border-radius:7px;background:#fff8f6;color:#93483e;font-size:9px;font-weight:800;cursor:pointer}.directory-equipment-actions button:disabled{opacity:.55}
.remove-device-button{margin-left:auto;padding:5px 8px;border:1px solid #dfc4bf;border-radius:7px;background:#fff8f6;color:#93483e;font-size:9px;font-weight:800;cursor:pointer}.remove-device-button:disabled{opacity:.55}
.unassigned-devices{display:grid;gap:8px;margin:18px 0;padding-top:17px;border-top:1px solid var(--line)}.unassigned-device-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 12px;border:1px solid #e4d8d0;border-radius:10px;background:#fff}.unassigned-device-row strong,.unassigned-device-row small{display:block}.unassigned-device-row small{margin-top:4px;color:var(--muted);font-size:9px}.unassigned-device-row button{padding:7px 9px;border:1px solid #dfc4bf;border-radius:7px;background:#fff8f6;color:#93483e;font-size:9px;font-weight:800;cursor:pointer}
.credentials-overlay{position:fixed;z-index:79;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.credentials-panel{overflow:hidden;width:min(980px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.credentials-body{overflow:auto;max-height:calc(100vh - 154px);padding:24px 30px}.credentials-table{width:100%;border-collapse:collapse;background:#fff}.credentials-table th,.credentials-table td{padding:13px;border-bottom:1px solid #eee4de;text-align:left;font-size:10px}.credentials-table th{color:var(--muted);font-size:9px;letter-spacing:.06em}.credentials-table code{font-size:10px}.rotate-credential-button{padding:7px 9px;border:1px solid #dfc4bf;border-radius:7px;background:#fff8f6;color:#93483e;font-size:9px;font-weight:800;cursor:pointer}.credential-warning{margin:0 0 14px;padding:12px;border-radius:10px;background:#fff1ce;color:#73520e;font-size:10px;line-height:1.5}
.credential-row-actions{display:grid;gap:5px}.credential-row-actions button{padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--dark-brown);font-size:9px;font-weight:800;cursor:pointer}.credential-row-actions .rotate-credential-button{border-color:#dfc4bf;background:#fff8f6;color:#93483e}
@media(max-width:760px){.credentials-overlay{padding:0}.credentials-panel{height:100vh;max-height:none;border-radius:0}.credentials-body{max-height:calc(100vh - 118px);padding:15px}.credentials-table{min-width:720px}}
.reports-overlay{position:fixed;z-index:76;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.reports-panel{overflow:hidden;width:min(1240px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.reports-body{overflow:auto;max-height:calc(100vh - 154px);padding:22px 28px 32px}.report-filters{display:grid;grid-template-columns:.8fr .8fr 1.3fr 1.3fr 1fr auto;gap:10px;align-items:end;padding:16px;border:1px solid #ded1c9;border-radius:14px;background:#fff}.report-filters label{color:#514a47;font-size:9px;font-weight:800}.report-filters input,.report-filters select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.report-filters button{padding:11px 13px;border:0;border-radius:8px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800}.report-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.report-summary article{padding:16px;border:1px solid #ded1c9;border-radius:13px;background:#fff}.report-summary span{display:block;color:var(--muted);font-size:9px;font-weight:800}.report-summary strong{display:block;margin-top:8px;color:var(--brown);font-size:22px}.report-table{width:100%;border-collapse:collapse;background:#fff;white-space:nowrap}.report-table th,.report-table td{padding:12px;border-bottom:1px solid #eee4de;text-align:left;font-size:10px}.report-table th{color:var(--muted);font-size:8px;letter-spacing:.07em}.report-status{padding:5px 7px;border-radius:99px;background:#e4f5e9;color:#1e7b4b;font-size:8px;font-weight:900}.report-status.INTERRUPTED,.report-status.CANCELLED{background:#f1e9e7;color:#9a4439}.report-status.ACTIVE{background:#fff1ce;color:#8a6110}
.report-filter-actions{display:flex;gap:6px}.report-filter-actions .print-report-button{border:1px solid var(--brown);background:#fff;color:var(--dark-brown)}.report-print-header{display:none}.report-identification{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.report-identification div{display:grid;gap:4px}.report-identification span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em}.report-identification strong{font-size:12px}
.report-measurements{margin-top:24px}.report-measurements h2{margin:0 0 12px;font-size:17px}
.chart-csv-button{display:none!important}
.dashboard-print-meta{display:none}
.report-lot-detail{margin-top:26px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.report-lot-detail+.report-lot-detail{margin-top:20px}.report-lot-title h2{margin:0;font-size:20px}.report-lot-title p:last-child{margin:5px 0 0;color:var(--muted);font-size:10px}.report-chart-card{margin-top:16px;padding:16px;border:1px solid #e6dbd4;border-radius:13px;background:#fff}.report-lot-chart{display:block;width:100%;height:260px;margin-top:10px}.report-measurement-block{margin-top:18px}.report-measurement-block h3{margin:0 0 9px;font-size:14px}
@media(max-width:900px){.report-filters{grid-template-columns:1fr 1fr}.report-summary{grid-template-columns:1fr 1fr}.report-summary article:last-child{grid-column:1/-1}}@media(max-width:760px){.reports-overlay{padding:0}.reports-panel{height:100vh;max-height:none;border-radius:0}.reports-body{max-height:calc(100vh - 118px);padding:14px}.report-filters{grid-template-columns:1fr 1fr;padding:12px}.report-filters label:nth-child(n+3){grid-column:1/-1}.report-filters button{grid-column:1/-1}.report-summary{grid-template-columns:1fr 1fr}}
@page{size:A4 landscape;margin:10mm}@media print{body{background:#fff}.login-view,.app-view,.detail-overlay,.password-overlay,.installation-overlay,.directory-overlay,.provision-overlay,.credentials-overlay,.reports-panel>.detail-header,.report-filters{display:none!important}.reports-overlay{position:static;display:block!important;padding:0;background:#fff;backdrop-filter:none}.reports-panel{overflow:visible;width:100%;max-height:none;border-radius:0;background:#fff;box-shadow:none}.reports-body{overflow:visible;max-height:none;padding:0}.report-print-header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-bottom:10mm;border-bottom:1px solid #bdaea5}.report-print-header img{display:none!important}.report-print-header h1{margin:0;color:#3d271e;font-size:20pt}.report-print-header p{margin:4px 0 0;color:#686363;font-size:8pt}.report-summary{grid-template-columns:repeat(5,1fr);break-inside:avoid}.report-summary article{padding:10px;box-shadow:none}.report-summary strong{font-size:15pt}.history-table-wrap{overflow:visible;border:0}.report-table{white-space:normal}.report-table th,.report-table td{padding:6px 5px;font-size:6.5pt}.report-table th{font-size:6pt}.report-table tr{break-inside:avoid}.report-status{padding:2px 4px;font-size:5.5pt}.report-lot-detail{break-before:page;border:0;padding:0}.report-lot-detail:first-of-type{break-before:auto}.report-chart-card{break-inside:avoid}.report-lot-chart{height:58mm}.report-measurement-block{break-before:auto}.report-measurement-block .report-table tr{break-inside:avoid}}
.team-overlay{position:fixed;z-index:77;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}.team-panel{overflow:hidden;width:min(960px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}.team-body{overflow:auto;max-height:calc(100vh - 154px);padding:24px 30px}.team-form{display:grid;grid-template-columns:1fr 1.2fr 1fr auto;gap:10px;align-items:end;padding:16px;border:1px solid #ded1c9;border-radius:14px;background:#fff}.team-form label{font-size:10px;font-weight:800}.team-form input,.team-form select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff}.team-form button{padding:12px;border:0;border-radius:8px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800}.team-form .form-error{grid-column:1/-1}.team-list{display:grid;gap:8px;margin-top:15px}.team-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 16px;border:1px solid #ded1c9;border-radius:12px;background:#fff}.team-row span,.team-row small{display:block}.team-row small{margin-top:4px;color:var(--muted);font-size:9px}.team-actions{display:flex;gap:7px}.team-actions button{padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:9px;font-weight:800}.team-actions .danger{border-color:#dfc4bf;background:#fff8f6;color:#93483e}
@media(max-width:760px){.team-overlay{padding:0}.team-panel{height:100vh;max-height:none;border-radius:0}.team-body{max-height:calc(100vh - 118px);padding:15px}.team-form{grid-template-columns:1fr}.team-row{align-items:flex-start;flex-direction:column}.team-actions{width:100%}.team-actions button{flex:1}}
@media(max-width:760px){.provision-overlay{padding:0}.provision-panel{width:100%;height:100vh;border-radius:0}.provision-form{padding:20px 17px}.provision-fields{grid-template-columns:1fr}.provision-fields label:last-child{grid-column:1}}
@media(max-width:760px){.directory-overlay{padding:0}.directory-panel{height:100vh;max-height:none;border-radius:0}.directory-body{max-height:calc(100vh - 118px);padding:16px}.property-columns{grid-template-columns:1fr}.property-user-form{grid-template-columns:1fr}.directory-client-head{padding:17px}.directory-admins{padding:13px 17px}.property-list{padding:12px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions #directoryButton{font-size:10px;padding:9px}}

/* Navegacao responsiva: mantem todas as acoes visiveis com zoom em 100%. */
.topbar{gap:24px}
.top-actions{min-width:0;max-width:100%;flex-wrap:wrap;justify-content:flex-end}
.top-actions button{white-space:nowrap}
@media(max-width:1500px) and (min-width:681px){
  .topbar{gap:18px;align-items:flex-start;flex-direction:column}
  .top-actions{width:100%;gap:8px;justify-content:flex-start}
  .ghost{padding:9px 12px}
}

/* Menu principal organizado por familias. */
.sidebar{overflow-y:auto;padding-bottom:86px;scrollbar-width:none;-ms-overflow-style:none}
.sidebar::-webkit-scrollbar{display:none;width:0;height:0}
.sidebar nav{align-content:start}
.nav-section-label{margin:14px 13px 2px;color:#a99083;font-size:8px;font-weight:900;letter-spacing:.16em}
.nav-item{width:100%;cursor:pointer}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
@media(max-width:1000px) and (min-width:681px){.nav-section-label{display:none}.sidebar nav{margin-top:32px}.nav-item{justify-content:center;padding:12px 8px}}
@media(max-width:680px){
  .sidebar{position:sticky;z-index:35;top:0;display:block;height:auto;padding:10px 12px 8px}
  .side-brand{justify-content:center}
  .logo-shell.small img{width:112px}
  .sidebar nav{display:flex;overflow-x:auto;gap:6px;margin:9px 0 0;padding:0 0 4px;scrollbar-width:thin}
  .nav-section-label{display:none}
  .sidebar nav .nav-item{flex:0 0 auto;width:auto;gap:6px;padding:8px 10px;font-size:10px!important}
  .sidebar nav .nav-item:not(.hidden){display:flex!important}
  .nav-item span{font-size:15px}
}

/* Dashboard dinamico. */
.dashboard-overlay{position:fixed;z-index:76;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.6);place-items:center;backdrop-filter:blur(6px)}
.dashboard-panel{overflow:hidden;width:min(1280px,100%);max-height:calc(100vh - 48px);border-radius:24px;background:var(--paper);box-shadow:0 35px 100px rgba(30,18,13,.38)}
.dashboard-body{overflow:auto;max-height:calc(100vh - 154px);padding:22px 28px 32px}
.dashboard-header-actions{display:flex;gap:14px;align-items:center}.dashboard-header-actions>span{color:var(--muted);font-size:10px}
.dashboard-filters{display:grid;grid-template-columns:.8fr .8fr 1.25fr 1.25fr 1.25fr auto;gap:10px;align-items:end;padding:15px;border:1px solid #ded1c9;border-radius:14px;background:#fff}
.dashboard-filters label{color:#514a47;font-size:9px;font-weight:800}.dashboard-filters input,.dashboard-filters select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.dashboard-filters button{padding:11px 14px;border:0;border-radius:8px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800}
.dashboard-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:16px 0}.dashboard-kpi{padding:16px;border:1px solid #ded1c9;border-radius:13px;background:#fff}.dashboard-kpi span{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.dashboard-kpi strong{display:block;margin-top:8px;color:var(--brown);font-size:22px}.dashboard-kpi small{display:block;margin-top:4px;color:var(--muted);font-size:8px}
.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.dashboard-chart-card{padding:18px;border:1px solid #ded1c9;border-radius:15px;background:#fff}.dashboard-chart-card h3{margin:0;font-size:14px}.dashboard-chart-card>p{margin:5px 0 16px;color:var(--muted);font-size:9px}.dashboard-bars{display:grid;gap:9px}.dashboard-bar-row{display:grid;grid-template-columns:minmax(74px,110px) 1fr auto;gap:9px;align-items:center;font-size:9px}.dashboard-bar-track{overflow:hidden;height:10px;border-radius:99px;background:#eee5df}.dashboard-bar-fill{height:100%;min-width:2px;border-radius:99px;background:linear-gradient(90deg,var(--brown),#b98568)}.dashboard-bar-value{min-width:62px;color:var(--muted);text-align:right}.dashboard-live{grid-column:1/-1}.dashboard-live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.dashboard-live-item{padding:13px;border-radius:11px;background:#f8f3ef}.dashboard-live-item strong,.dashboard-live-item span,.dashboard-live-item small{display:block}.dashboard-live-item span{margin-top:5px;color:var(--brown);font-size:11px;font-weight:800}.dashboard-live-item small{margin-top:5px;color:var(--muted);font-size:9px}
@media(max-width:980px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.dashboard-filters{grid-template-columns:1fr 1fr 1fr}.dashboard-filters button{grid-column:1/-1}}
@media(max-width:680px){.dashboard-overlay{padding:0}.dashboard-panel{width:100%;height:100vh;max-height:none;border-radius:0}.dashboard-body{max-height:calc(100vh - 118px);padding:13px}.dashboard-header-actions>span{display:none}.dashboard-filters{grid-template-columns:1fr 1fr;padding:11px}.dashboard-filters label:nth-child(n+3){grid-column:1/-1}.dashboard-kpis{grid-template-columns:1fr 1fr}.dashboard-kpi{padding:13px}.dashboard-kpi strong{font-size:19px}.dashboard-bar-row{grid-template-columns:72px 1fr auto}}
.printing-dashboard .app-view,.printing-dashboard .detail-overlay,.printing-dashboard .reports-overlay{display:none!important}@media print{.printing-dashboard,.printing-dashboard *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.printing-dashboard .dashboard-overlay{position:static;display:block!important;padding:0;background:#fff}.printing-dashboard .dashboard-panel{overflow:visible;width:100%;max-height:none;box-shadow:none}.printing-dashboard .dashboard-panel>.detail-header,.printing-dashboard .dashboard-filters{display:none!important}.printing-dashboard .dashboard-body{overflow:visible;max-height:none;padding:0}.printing-dashboard .dashboard-print-meta{display:block}.printing-dashboard .dashboard-print-meta .report-print-header{display:flex}.printing-dashboard .dashboard-print-meta .report-identification{display:grid}.printing-dashboard #dashboardContent{display:block!important}.printing-dashboard .dashboard-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:6mm;margin-top:6mm}.printing-dashboard .dashboard-chart-card{display:block!important;break-inside:avoid;page-break-inside:avoid;padding:5mm;border:1px solid #ded1c9}.printing-dashboard .dashboard-bars{display:grid!important}.printing-dashboard .dashboard-bar-track{display:block!important;height:3mm!important}.printing-dashboard .dashboard-bar-fill{display:block!important}.printing-dashboard .dashboard-live{grid-column:1/-1;break-before:auto}.printing-dashboard .dashboard-kpis{break-inside:avoid;page-break-inside:avoid}}
.report-filters{grid-template-columns:.7fr .7fr 1fr 1.2fr 1.2fr 1fr auto}

/* Umidade manual no grafico do lote, com escala percentual propria. */
.legend-line.moisture{height:0;border-top:3px dashed #0284c7;background:transparent}
.chart-moisture{fill:none;stroke:#0284c7;stroke-width:2.5;stroke-dasharray:6 4;stroke-linejoin:round}
.chart-moisture-point{fill:#fff;stroke:#0284c7;stroke-width:2.5}
.chart-axis-right{fill:#2f7f9d}

/* Linha do tempo de eventos do controlador. */
.event-log-card{margin-top:18px;padding:22px;border:1px solid #ded1c9;border-radius:17px;background:#fff}
.event-log-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.event-log-head h3{margin:0;font-size:17px}.event-log-head>div>p:last-child{margin:5px 0 0;color:var(--muted);font-size:10px}
.event-log-head form{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px;min-width:min(480px,55%)}
.event-log-head label{color:#514a47;font-size:9px;font-weight:800}.event-log-head select{display:block;width:100%;min-width:0;margin-top:5px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}
.event-list{display:grid;gap:0;margin-top:18px;border-top:1px solid #eee4de}
.event-row{position:relative;display:grid;grid-template-columns:16px 1fr;gap:10px;padding:14px 4px;border-bottom:1px solid #f0e8e3}
.event-dot{width:9px;height:9px;margin-top:4px;border:2px solid #fff;border-radius:50%;background:#2e8b57;box-shadow:0 0 0 2px #cfe5d6}
.event-row.warning .event-dot{background:#c58a28;box-shadow:0 0 0 2px #f1dfbd}.event-row.critical .event-dot{background:#b54747;box-shadow:0 0 0 2px #efcccc}
.event-copy>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.event-copy strong{color:var(--ink);font-size:11px}.event-copy small{display:block;margin-top:5px;color:var(--muted);font-size:9px}
.event-tag{flex:0 0 auto;padding:4px 7px;border-radius:99px;background:#f0e7e1;color:var(--brown);font-size:8px;font-weight:900;text-transform:uppercase}
.event-empty{padding:22px;color:var(--muted);font-size:10px;text-align:center}
@media(max-width:760px){.event-log-card{padding:17px 14px}.event-log-head{flex-direction:column}.event-log-head form{grid-template-columns:1fr;width:100%;min-width:0}.event-log-head select{font-size:16px}.event-copy>div{gap:8px;flex-direction:column}.event-tag{align-self:flex-start}}

/* Com as acoes no menu lateral, o cabecalho permanece em uma unica linha. */
@media(max-width:1500px) and (min-width:681px){.topbar{align-items:center;flex-direction:row}.top-actions{width:auto;margin-left:auto;justify-content:flex-end}}

/* Identidade Agrotek integrada, sem moldura branca ao redor da marca. */
.agrotek-banner{display:block;width:calc(100% + 4px);max-width:none;height:auto;margin:-4px -4px -6px 0;border:0;object-fit:cover}
.agrotek-banner.compact{width:100%;max-width:none}
.login-brand{position:relative;display:block;overflow:hidden;width:min(100%,592px);padding:0;border-radius:7px;background:var(--dark-brown)}
.side-brand{overflow:hidden;width:100%;padding:0;border-radius:7px;background:var(--dark-brown)}
.catalog-brand-band{position:relative;overflow:hidden;width:100%;margin:0 0 30px;background:var(--dark-brown)}
.catalog-brand-image{display:block;width:calc(100% + 12px);max-width:none;height:auto;border:0}
.catalog-brand-band::before,.login-brand::before{position:absolute;z-index:2;bottom:0;left:0;width:calc(54.4% + 9px);height:11.5%;background:var(--dark-brown);content:"";pointer-events:none}
.catalog-brand-band::after,.login-brand::after{position:absolute;z-index:2;right:-1px;bottom:0;width:15.8%;height:11.5%;border-right:8px solid var(--dark-brown);background:var(--dark-brown);content:"";pointer-events:none}
.side-brand{display:block;overflow:visible;padding:2px 8px;border-radius:0;background:transparent;line-height:1}
.side-wordmark{display:block;color:#fff;font-size:18px;font-weight:900;letter-spacing:.08em}
.side-brand small{display:block;margin-top:6px;color:#bfa99d;font-size:7px;font-weight:800;letter-spacing:.16em}

/* Base responsiva e correcoes especificas para Safari/iOS. */
html{width:100%;min-width:0;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;min-width:0;overflow-x:hidden}
main,.app-view,.topbar,.top-actions,.detail-header,.detail-body,.dashboard-body,.reports-body{min-width:0}
img,svg,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}
input[type="date"],input[type="datetime-local"],input[type="time"]{min-width:0;width:100%;-webkit-appearance:none;appearance:none}
input[type="date"]::-webkit-date-and-time-value,input[type="datetime-local"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value{min-height:1.2em;text-align:left}
.history-table-wrap,.credentials-body,.reports-body,.directory-body{max-width:100%;-webkit-overflow-scrolling:touch}

@supports(height:100dvh){
  .login-view,.app-view{min-height:100dvh}
  .sidebar{height:100dvh}
  .detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel{max-height:calc(100dvh - 48px)}
  .detail-body,.installation-form,.directory-body,.credentials-body,.reports-body,.team-body,.dashboard-body{max-height:calc(100dvh - 154px)}
}

/* v82: rodape depois do menu e resumo operacional flexivel. */
@media(min-width:1001px){
  .sidebar{display:flex;overflow:hidden;height:100vh;padding-bottom:20px;flex-direction:column}
  .sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:16px}
  .side-foot{position:static;right:auto;bottom:auto;left:auto;flex:0 0 auto;margin:14px 8px 0;background:var(--dark-brown)}
}
.process-meta{justify-content:flex-start;gap:10px 22px;flex-wrap:wrap}
.coffee-lot-error.saved{grid-column:1/-1;padding:9px 11px;border-radius:8px;background:#e4f5e9;color:#1e7b4b;line-height:1.45}

/* Navegação fixa: somente o conteúdo principal rola. */
@media(min-width:681px){.sidebar{position:fixed;z-index:35;top:0;bottom:0;left:0;width:230px;height:100vh}.app-view{display:block}.app-view>main{margin-left:230px}}
@media(min-width:681px) and (max-width:1000px){.sidebar{width:76px}.app-view>main{margin-left:76px}}
@media(max-width:680px){.sidebar{position:fixed!important;z-index:45;top:0;right:0;left:0;height:68px!important}.app-view>main{padding-top:calc(93px + env(safe-area-inset-top))}}
.report-filters{grid-template-columns:repeat(4,minmax(120px,1fr))}.report-filter-actions{grid-column:span 1}

/* v83: correção administrativa de lotes. */
.report-lot-editors{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(320px,1.25fr);gap:24px;margin:20px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.report-lot-editors h3{margin:4px 0 7px}.report-lot-editors p{margin:0;color:var(--muted);font-size:13px}.report-lot-edit-list{display:grid;gap:8px;max-height:220px;overflow:auto}.report-lot-edit-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:10px;background:#f7f3ef}.report-lot-edit-list span,.report-lot-edit-list small{display:block}.report-lot-edit-list small{margin-top:3px;color:var(--muted)}.report-lot-edit-list button,.lot-edit-form button[type=submit]{border:0;border-radius:9px;padding:10px 14px;background:var(--dark-brown);color:#fff;font-weight:800;cursor:pointer}.lot-edit-panel{width:min(820px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border-radius:22px;background:#fff}.lot-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px}.lot-edit-form label{display:grid;gap:7px;font-size:12px;font-weight:800}.lot-edit-form input,.lot-edit-form select{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff}.lot-edit-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}.lot-edit-actions .secondary-button{border:1px solid var(--line);border-radius:9px;padding:10px 14px;background:#fff;color:var(--dark-brown);font-weight:800}.lot-edit-form .form-error{grid-column:1/-1;margin:0}.report-lot-editors{break-inside:avoid}@media(max-width:760px){.report-lot-editors,.lot-edit-form{grid-template-columns:1fr}.lot-edit-actions{grid-column:1}.report-lot-edit-list>div{align-items:flex-start;flex-direction:column}.report-lot-edit-list button{width:100%}}
@media print{.report-lot-editors{display:none!important}}

/* v84: lote, progresso e umidade igualmente distribuídos no card. */
.device-card .process-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;align-items:center}
.device-card .process-meta>span{text-align:center;white-space:nowrap}
@media(max-width:420px){.device-card .process-meta{gap:4px;font-size:11px}.device-card .process-meta>span{text-align:center!important}}

/* v85: rolagem vertical contida dentro da janela do controlador. */
.detail-panel{display:flex;width:min(1080px,100%);height:calc(100dvh - 48px);min-width:0;max-height:calc(100dvh - 48px);flex-direction:column;overflow:hidden}
.detail-panel>.detail-header{flex:0 0 auto}
.detail-panel>.detail-body{width:100%;min-width:0;min-height:0;max-height:none;box-sizing:border-box;flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.detail-panel>.detail-body>*{max-width:100%;min-width:0;box-sizing:border-box}
.detail-panel .history-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:760px){.detail-panel{width:100%;height:100dvh;max-height:100dvh}.detail-panel>.detail-body{scrollbar-gutter:auto}}
@media(max-width:900px){.report-filters{grid-template-columns:1fr 1fr}.report-filter-actions{grid-column:1/-1}}

.chart-periods{display:flex;overflow-x:auto;gap:7px;margin:16px 0 10px;padding-bottom:3px}
.chart-periods button,.chart-csv-button{padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--dark-brown);font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}
.chart-periods button.active{border-color:var(--dark-brown);background:var(--dark-brown);color:#fff}
.chart-csv-button{align-self:flex-start}
#telemetryChartContainer{position:relative;touch-action:pan-y}
.chart-cursor-line{stroke:#292728;stroke-width:1.5;stroke-dasharray:4 3;pointer-events:none}
.chart-tooltip{position:absolute;z-index:5;display:grid;min-width:190px;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(61,39,30,.18);color:var(--muted);font-size:9px;pointer-events:none}
.chart-tooltip strong{margin-bottom:3px;color:var(--ink);font-size:10px}.chart-tooltip span{white-space:nowrap}
.chart-tooltip{max-width:calc(100% - 16px)}.chart-tooltip .chart-tooltip-lot{white-space:normal;overflow-wrap:anywhere}
.detail-body{overflow-anchor:none}
.technical-card{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:18px;padding:18px 20px;border:1px solid #ded1c9;border-radius:15px;background:#fff}
.technical-card h3{margin:0;font-size:16px}.technical-card dl{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:14px;margin:0}.technical-card dt{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.technical-card dd{margin:5px 0 0;color:var(--ink);font-size:10px;font-weight:700;overflow-wrap:anywhere}
.ota-button{padding:10px 12px;border:0;border-radius:9px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}
.ota-overlay{position:fixed;z-index:90;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.66);place-items:center;backdrop-filter:blur(6px)}
.ota-panel{overflow:hidden;width:min(980px,96vw);max-height:92vh;border-radius:22px;background:var(--paper);box-shadow:0 24px 70px rgba(31,18,13,.3)}
.ota-body{overflow:auto;display:grid;gap:16px;max-height:calc(92vh - 112px);padding:22px}.ota-body h3{margin:2px 0 5px}.ota-body p{margin:0;color:var(--muted);font-size:11px}
.ota-upload-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.ota-upload-form>div{grid-column:1/-1}.ota-upload-form label{display:grid;gap:6px;color:var(--ink);font-size:10px;font-weight:800}.ota-upload-form label:nth-of-type(3){grid-column:1/-1}.ota-upload-form input{min-width:0;padding:11px;border:1px solid #d5c8c0;border-radius:10px;background:#fff;font:inherit}.ota-upload-form button,.ota-existing button{padding:11px 15px;border:0;border-radius:10px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800;cursor:pointer}.ota-upload-form .form-error{align-self:center}
.ota-existing,.ota-history{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.ota-existing{display:flex;gap:18px;align-items:end;justify-content:space-between}.ota-existing form{display:flex;gap:10px}.ota-existing select{min-width:260px;padding:11px;border:1px solid #d5c8c0;border-radius:10px;background:#fff}.ota-table{width:100%;margin-top:14px;border-collapse:collapse;white-space:nowrap}.ota-table th,.ota-table td{padding:11px;border-bottom:1px solid #eee6e1;text-align:left;font-size:10px}.ota-table th{color:var(--muted);font-size:8px;letter-spacing:.08em}.ota-table td small{display:block;max-width:230px;margin-top:4px;color:var(--danger);white-space:normal}.ota-table button{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--brown);font-size:9px;font-weight:800;cursor:pointer}.ota-status{display:inline-block;padding:5px 7px;border-radius:999px;background:#eee;color:var(--muted);font-size:8px;font-weight:900}.ota-status.installed{background:#e4f4e9;color:#267447}.ota-status.failed{background:#fde8e5;color:#a33d31}.ota-status.pending,.ota-status.downloading{background:#fff0cf;color:#8b5d16}
@media(max-width:760px){.ota-overlay{padding:0}.ota-panel{width:100%;height:100vh;max-height:none;border-radius:0}.ota-body{max-height:calc(100vh - 112px);padding:16px}.ota-upload-form{grid-template-columns:1fr}.ota-upload-form label:nth-of-type(3){grid-column:1}.ota-existing{align-items:stretch;flex-direction:column}.ota-existing form{flex-direction:column}.ota-existing select{min-width:0}.ota-table{white-space:normal}}
@media(max-width:900px){.technical-card{align-items:stretch;flex-direction:column}.technical-card dl{grid-template-columns:1fr 1fr}}

@media(max-width:680px){
  body{padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}
  .login-view{padding-top:calc(28px + env(safe-area-inset-top));padding-right:calc(20px + env(safe-area-inset-right));padding-bottom:calc(28px + env(safe-area-inset-bottom));padding-left:calc(20px + env(safe-area-inset-left))}
  .login-brand{position:relative;display:block;width:100%;overflow:hidden;border-radius:0;background:var(--dark-brown)}
  .login-brand .catalog-brand-image{width:calc(100% + 12px);max-width:none}
  .login-card input,.password-card input,.installation-form input,.property-user-form input,.property-user-form select,.provision-fields input,.directory-search input,.team-form input,.team-form select,.moisture-form input,.session-volume-card input,.report-filters input,.report-filters select,.dashboard-filters input,.dashboard-filters select{font-size:16px}
  .sidebar{top:0;height:auto;min-height:0;padding-top:calc(10px + env(safe-area-inset-top));padding-right:calc(12px + env(safe-area-inset-right));padding-left:calc(12px + env(safe-area-inset-left))}
  .side-brand{display:flex;width:100%;max-width:none;gap:9px;align-items:baseline;padding:2px 3px}
  .side-wordmark{font-size:17px}
  .side-brand small{margin:0;font-size:6px}
  .catalog-brand-band{margin:-4px 0 24px}
  .catalog-brand-band .catalog-brand-image{width:calc(100% + 12px);max-width:none}
  .sidebar nav{width:100%;max-width:100%}
  main{width:100%;padding-right:16px;padding-left:16px}
  .topbar{width:100%;gap:14px;align-items:flex-start;flex-direction:column}
  .top-actions{width:100%;gap:8px;justify-content:flex-start}
  .top-actions .avatar{margin-left:auto;flex:0 0 40px}
  .topbar h1{font-size:clamp(27px,9vw,34px)}
  .section-head{gap:12px;align-items:flex-start;flex-direction:column}
  .environment-pill{align-self:flex-start}
  .summary-grid,.device-grid{width:100%;min-width:0}
  .summary-card,.device-card{min-width:0}
  .device-head{min-width:0}
  .device-id{min-width:0}
  .device-id>div:last-child{min-width:0}
  .device-id p{overflow-wrap:anywhere}
  .process-meta{gap:12px;flex-wrap:wrap}
  .detail-overlay,.installation-overlay,.directory-overlay,.provision-overlay,.credentials-overlay,.reports-overlay,.team-overlay,.dashboard-overlay{padding:0}
  .detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel{width:100%;height:100vh;max-height:none;border-radius:0}
  .detail-header{gap:12px;padding-top:calc(18px + env(safe-area-inset-top));padding-right:calc(16px + env(safe-area-inset-right));padding-left:calc(16px + env(safe-area-inset-left))}
  .detail-header>div:first-child{min-width:0}
  .detail-header h2{overflow-wrap:anywhere;font-size:clamp(23px,7vw,28px)}
  .detail-actions,.directory-header-actions,.dashboard-header-actions{flex:0 0 auto}
  .detail-body,.installation-form,.directory-body,.credentials-body,.reports-body,.team-body,.dashboard-body{padding-right:calc(14px + env(safe-area-inset-right));padding-bottom:calc(20px + env(safe-area-inset-bottom));padding-left:calc(14px + env(safe-area-inset-left))}
  .report-filters,.dashboard-filters,.moisture-form,.form-grid,.provision-fields,.team-form{min-width:0}
  .report-filters label,.dashboard-filters label,.moisture-form label,.form-grid label,.provision-fields label,.team-form label{min-width:0}
  .report-filter-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .report-filter-actions button{grid-column:auto!important;width:100%}
  .telemetry-chart{overflow:visible;width:100%;min-width:0}
  .chart-card{overflow:hidden;padding:17px 14px}
  .chart-legend{gap:10px;flex-wrap:wrap}
  .history-table,.report-table,.credentials-table{width:max-content;min-width:100%}
}

@supports(height:100dvh){
  @media(max-width:680px){
    .detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel{height:100dvh}
    .detail-body,.installation-form,.directory-body,.credentials-body,.reports-body,.team-body,.dashboard-body{max-height:calc(100dvh - 118px)}
  }
}
.directory-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.directory-user-actions button{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--dark-brown);font:inherit;font-size:10px;font-weight:700;cursor:pointer}.directory-user-actions button:hover{background:#f7f2ee}.directory-user-actions button.danger{border-color:#b95f55;color:#9c3027}.directory-user-actions button.danger:hover{background:#fff1ef}.directory-user-actions button:disabled{cursor:wait;opacity:.6}
@media(max-width:760px){.directory-row{align-items:flex-start;flex-direction:column}.directory-user-actions{width:100%;justify-content:flex-start}.directory-user-actions strong{width:100%}}
.directory-admins-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.directory-admins-head .directory-section-title{margin:0}.client-admin-form{grid-template-columns:1fr 1.3fr auto}
.filter-prompt{margin:22px 0;padding:34px 20px;border:1px dashed var(--line);background:#faf7f4;font-size:13px}.filter-prompt strong{color:var(--dark-brown)}
.dashboard-chart-card:nth-child(1) .dashboard-bar-track{background:#ffeadb}.dashboard-chart-card:nth-child(1) .dashboard-bar-fill{background:linear-gradient(90deg,#ff5a1f,#ff9f1c);box-shadow:0 0 8px rgba(255,90,31,.24)}.dashboard-chart-card:nth-child(2) .dashboard-bar-track{background:#dcefff}.dashboard-chart-card:nth-child(2) .dashboard-bar-fill{background:linear-gradient(90deg,#0077e6,#00b8d9);box-shadow:0 0 8px rgba(0,119,230,.24)}
.property-head-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.existing-installation-context{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px 12px;align-items:center;padding:13px 15px;border:1px solid #dfd0c6;border-radius:11px;background:#f8f3ef}.existing-installation-context span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em}.existing-installation-context strong{font-size:12px}@media(max-width:680px){.existing-installation-context{grid-template-columns:auto 1fr}.property-head{align-items:flex-start;flex-direction:column}.property-head-actions{justify-content:flex-start}}
.installation-overlay{z-index:80}

/* Observabilidade exclusiva do superadministrador. */
.observability-overlay{position:fixed;z-index:88;inset:0;display:grid;padding:24px;background:rgba(41,39,40,.66);place-items:center;backdrop-filter:blur(6px)}
.observability-panel{overflow:hidden;width:min(1320px,96vw);max-height:92vh;border-radius:22px;background:var(--paper);box-shadow:0 24px 70px rgba(31,18,13,.3)}
.observability-actions{display:flex;gap:14px;align-items:end}.observability-actions label{color:var(--muted);font-size:9px;font-weight:900}.observability-actions select{display:block;margin-top:5px;padding:9px 30px 9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}
.observability-body{overflow:auto;max-height:calc(92vh - 112px);padding:22px}.observability-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.observability-kpis article,.observability-grid>article{padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff}.observability-kpis span{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.observability-kpis strong{display:block;margin-top:8px;color:var(--brown);font-size:24px}.observability-kpis small{display:block;margin-top:4px;color:var(--muted);font-size:9px}
.observability-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;margin-top:14px}.observability-grid>article.wide{grid-column:1/-1}.observability-grid h3{margin:0 0 14px;font-size:15px}.observability-bars{display:grid;gap:7px;max-height:330px;overflow:auto}.observability-bars>div{display:grid;grid-template-columns:76px 1fr 60px;gap:8px;align-items:center;font-size:9px}.observability-bars i{overflow:hidden;height:9px;border-radius:99px;background:#efe5df}.observability-bars b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#f06523,#f5a623)}.observability-bars strong{text-align:right}
.observability-table-wrap{overflow:auto;max-height:340px}.observability-table-wrap table{width:100%;border-collapse:collapse}.observability-table-wrap th,.observability-table-wrap td{padding:10px;border-bottom:1px solid #eee5df;text-align:left;font-size:9px}.observability-table-wrap th{position:sticky;z-index:1;top:0;background:#fff;color:var(--muted);font-size:8px;letter-spacing:.07em}.observability-table-wrap td strong,.observability-table-wrap td small{display:block}.observability-table-wrap td small{margin-top:4px;color:var(--muted)}.presence-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#aaa}.presence-dot.online{background:#22a064;box-shadow:0 0 0 3px #d9f2e4}.observability-updated{margin:14px 2px 0;color:var(--muted);font-size:9px;text-align:right}
@media(max-width:900px){.observability-kpis{grid-template-columns:repeat(2,1fr)}.observability-grid{grid-template-columns:1fr}.observability-grid>article.wide{grid-column:auto}}
@media(max-width:680px){.observability-overlay{padding:0}.observability-panel{width:100%;height:100vh;max-height:none;border-radius:0}.observability-body{max-height:calc(100vh - 118px);padding:14px}.observability-actions label{display:none}.observability-kpis{grid-template-columns:1fr 1fr}.observability-kpis article{padding:13px}.observability-kpis strong{font-size:20px}}
.system-health{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px;padding:16px;border:1px solid #b9ddc7;border-radius:15px;background:#f1faf4}.system-health.warning{border-color:#e9c887;background:#fff8e8}.system-health.critical{border-color:#e4aaa3;background:#fff0ee}.system-health>div>span{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.system-health>div>strong{display:block;margin-top:7px;color:var(--ink);font-size:14px}.system-health>div>small{display:block;margin-top:4px;color:var(--muted);font-size:8px}.system-alerts{grid-column:1/-1;display:grid;gap:7px}.system-alert{display:flex;gap:9px;padding:9px 11px;border-radius:9px;background:#fff}.system-alert.warning strong{color:#9b6816}.system-alert.critical strong{color:#a33d31}.system-alert span{font-size:9px}@media(max-width:900px){.system-health{grid-template-columns:1fr 1fr}}@media(max-width:680px){.system-health{grid-template-columns:1fr}}
.two-factor-card{max-width:520px}.two-factor-setup{display:grid;gap:14px}.two-factor-qr{width:190px;height:190px;margin:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff}.two-factor-secret{display:block;padding:10px;border-radius:8px;background:#f4eee9;text-align:center;word-break:break-all;font-size:12px}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px;border-radius:10px;background:#f4eee9}.recovery-codes code{font-size:11px}.security-success{color:#167a48;font-weight:800}
.weather-enabled,.weather-disabled{display:inline-block;margin-top:6px;padding:3px 7px;border-radius:99px;font-size:7px;font-weight:900;letter-spacing:.06em}.weather-enabled{background:#dff4e8;color:#167a48}.weather-disabled{background:#f2ece8;color:var(--muted)}.report-weather-card{display:grid;grid-template-columns:180px 1fr;gap:14px;margin-top:15px;padding:15px;border:1px solid #d8e6dc;border-radius:13px;background:#f4faf6}.report-weather-card.unavailable{display:block;border-color:var(--line);background:#faf8f6}.report-weather-card h3{margin:0 0 6px;font-size:13px}.report-weather-card strong{color:#167a48}.report-weather-card dl{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:0}.report-weather-card dt{color:var(--muted);font-size:8px;font-weight:800}.report-weather-card dd{margin:5px 0 0;font-size:12px;font-weight:800}.report-weather-card dd small{display:block;color:var(--muted);font-size:7px}.report-weather-card>p{grid-column:1/-1;margin:0;color:var(--muted);font-size:8px}@media(max-width:760px){.report-weather-card{grid-template-columns:1fr}.report-weather-card dl{grid-template-columns:1fr 1fr}}
.property-map-link{margin-left:6px;color:#167a48;font-size:8px;font-weight:800}
.report-table-summary{width:100%!important;min-width:0!important}@media print{.report-table-summary{display:table!important}.report-table-summary thead{display:table-header-group!important}.report-table-summary tbody{display:table-row-group!important}.report-table-summary tr{display:table-row!important}.report-table-summary td,.report-table-summary th{display:table-cell!important}.report-table-summary td::before{display:none!important}}

.coffee-lot-card{display:grid;grid-template-columns:220px 1fr;gap:20px;margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:15px;background:#fff}.coffee-lot-card h3{margin:0 0 7px}.coffee-lot-card>div>p:last-child{color:var(--muted);font-size:11px}.coffee-lot-card form{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.coffee-lot-card label{font-size:9px;font-weight:800}.coffee-lot-card input,.coffee-lot-card select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.coffee-lot-card button{align-self:end;padding:11px;border:0;border-radius:8px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800}.coffee-lot-card .form-error{align-self:center;margin:0}.coffee-lot-card .form-error.saved{color:#267447}.coffee-catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.coffee-catalog-grid section{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff}.coffee-catalog-grid h3{margin:0 0 12px}.coffee-catalog-grid form{display:flex;gap:8px}.coffee-catalog-grid input{min-width:0;flex:1;padding:10px;border:1px solid var(--line);border-radius:8px}.coffee-catalog-grid form button{padding:10px;border:0;border-radius:8px;background:var(--dark-brown);color:#fff;font-weight:800}.coffee-catalog-grid section>div{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.coffee-catalog-grid section>div span{display:flex;gap:6px;align-items:center;padding:6px 8px;border-radius:99px;background:#f1ebe7;font-size:10px}.coffee-catalog-grid section>div span button{display:grid;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:#fff;color:#9c3027;place-items:center}.coffee-report-identification{margin-top:12px}
@media(max-width:760px){.coffee-lot-card{grid-template-columns:1fr}.coffee-lot-card form{grid-template-columns:1fr}.coffee-catalog-grid{grid-template-columns:1fr}}

/* Mobile v78: cabecalho completo no iOS/Android e modais sem recorte. */
@media(max-width:680px){
  body{padding-right:0;padding-left:0}
  .sidebar{
    position:fixed!important;
    top:0;right:0;left:0;
    width:100%;
    height:calc(92px + env(safe-area-inset-top))!important;
    min-height:calc(92px + env(safe-area-inset-top));
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-right:calc(12px + env(safe-area-inset-right));
    padding-bottom:8px;
    padding-left:calc(12px + env(safe-area-inset-left));
    overflow:hidden;
  }
  .sidebar nav{
    overflow-x:auto;
    overflow-y:hidden;
    min-height:39px;
    padding-bottom:2px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .sidebar nav::-webkit-scrollbar{display:none}
  .app-view>main{
    padding-top:calc(116px + env(safe-area-inset-top));
    padding-right:calc(16px + env(safe-area-inset-right));
    padding-left:calc(16px + env(safe-area-inset-left));
  }
  .top-actions{overflow:visible;flex-wrap:wrap}
  .top-actions button{flex:0 0 auto}
  .detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel,.ota-panel,.observability-panel{
    display:flex;
    height:100vh;
    max-height:none;
    flex-direction:column;
  }
  .detail-header{flex:0 0 auto;padding-bottom:16px}
  .detail-body,.installation-form,.directory-body,.credentials-body,.reports-body,.team-body,.dashboard-body,.ota-body,.observability-body{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
  }
  .dashboard-panel>.detail-header{align-items:stretch;flex-direction:column}
  .dashboard-header-actions{width:100%;flex-wrap:wrap}
  .dashboard-header-actions .close-button{margin-left:auto}
}
@supports(height:100dvh){
  @media(max-width:680px){
    .detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel,.ota-panel,.observability-panel{height:100dvh}
  }
}
.report-summary-table-wrap{overflow:visible}.report-table-summary{table-layout:fixed;white-space:normal}.report-table-summary th:nth-child(1){width:7%}.report-table-summary th:nth-child(2){width:9%}.report-table-summary th:nth-child(3){width:17%}.report-table-summary th:nth-child(4){width:10%}.report-table-summary th:nth-child(5){width:8%}.report-table-summary th:nth-child(6){width:19%}.report-table-summary th:nth-child(7){width:20%}.report-table-summary th:nth-child(8){width:10%}.report-table-summary td{vertical-align:top;overflow-wrap:anywhere}.report-table-summary td>strong,.report-table-summary td>small,.report-table-summary td>span{display:block}.report-table-summary td>span+span{margin-top:4px}.report-table-summary td b{display:inline-block;min-width:54px;margin-right:5px;color:var(--muted);font-size:7px;text-transform:uppercase}.report-alarm-cell{font-size:8px!important;line-height:1.45}
@media(max-width:900px){.report-summary-table-wrap{overflow:visible;border:0;background:transparent}.report-table-summary,.report-table-summary tbody{display:grid;gap:12px;background:transparent}.report-table-summary thead{display:none}.report-table-summary tr{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.report-table-summary td{display:block;padding:0;border:0}.report-table-summary td::before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--muted);font-size:7px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.report-table-summary td[data-label="Tempos"],.report-table-summary td[data-label="Resultados inicial / final"],.report-table-summary td[data-label="Alarmes"]{grid-column:1/-1}.report-table-summary td[data-label="Tempos"]{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.report-table-summary td[data-label="Tempos"]::before{grid-column:1/-1}.report-table-summary td[data-label="Tempos"] span{padding:6px;border-radius:7px;background:#f7f2ee}.report-table-summary td[data-label="Tempos"] b{display:block;min-width:0;margin:0 0 3px}}
.controller-weather-card{margin:0 0 20px;padding:18px 20px;border:1px solid #cfe3d5;border-radius:16px;background:linear-gradient(135deg,#f2faf4,#fff);box-shadow:0 8px 24px rgba(31,105,65,.07)}.controller-weather-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.controller-weather-head h3{margin:3px 0 0;color:#176c43;font-size:18px}.controller-weather-head>span{padding:6px 10px;border-radius:99px;background:#dff4e8;color:#167a48;font-size:9px;font-weight:900;letter-spacing:.06em}.controller-weather-card dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 10px}.controller-weather-card dt{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.controller-weather-card dd{margin:5px 0 0;font-size:17px;font-weight:900}.controller-weather-card>p{margin:0;color:var(--muted);font-size:9px}.controller-weather-card:empty{display:none}@media(max-width:760px){.controller-weather-card dl{grid-template-columns:1fr 1fr}.controller-weather-head{align-items:flex-start}.controller-weather-card dd{font-size:15px}}
.detail-weather-summary{min-height:0;margin:7px 0 0;color:#176c43;font-size:10px;font-weight:800}.detail-weather-summary:empty{display:none}

/* v105: ordenacao de observabilidade e menu lateral sem rolagem em desktop. */
.observability-sort{display:inline-flex;gap:5px;align-items:center;padding:3px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;letter-spacing:inherit;cursor:pointer}
.observability-sort span{min-width:9px;color:#a99487;font-size:7px}
.observability-sort.active,.observability-sort.active span{color:var(--brown)}
@media(min-width:1001px) and (max-height:1150px){
  .sidebar{padding:20px 18px 12px}
  .sidebar nav{overflow-y:visible;gap:2px;margin-top:28px;padding-bottom:4px}
  .nav-section-label{margin:8px 12px 1px}
  .nav-item{gap:10px;padding:9px 12px;line-height:1.15}
  .nav-item span{font-size:17px}
  .side-foot{margin:8px 8px 0;padding-top:12px}
}
@media(min-width:1001px) and (max-height:720px){
  .sidebar nav{overflow-y:auto;scrollbar-width:thin}
}
.notification-settings{display:flex;padding:24px;border:1px solid #ded1c9;border-radius:17px;background:#fff;align-items:center;justify-content:space-between;gap:24px}.notification-settings span{color:var(--brown);font-size:9px;font-weight:900;letter-spacing:.08em}.notification-settings h3{margin:8px 0;font-size:20px}.notification-settings p{margin:0;color:var(--muted);font-size:11px}.notification-settings button{padding:12px 16px;border:0;border-radius:9px;background:var(--dark-brown);color:#fff;font-weight:800}.notification-settings button:disabled{opacity:.55}@media(max-width:700px){.notification-settings{align-items:stretch;flex-direction:column}.notification-settings button{width:100%}}

/* v116: geometria reta e distribuição visual dos estados operacionais. */
.detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel,.ota-panel,.observability-panel,.lot-edit-panel,.device-card,.summary-card,.dashboard-kpi,.dashboard-chart-card,.coffee-lot-card,.report-identification,.report-summary article,.report-chart-card,.history-table-wrap,.notification-settings,.controller-weather-card,.directory-client,.property-card,.empty-state{border-radius:3px!important}
button,input,select,textarea,.process,.metric,.report-status{border-radius:2px!important}
.status-pill,.environment-pill,.presence-dot,.live-dot{border-radius:999px!important}
.state-usage-card{margin:0 0 22px}.state-pie-layout{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:34px;align-items:center;margin-top:20px}.state-pie{display:grid;width:min(280px,100%);aspect-ratio:1;margin:auto;border-radius:50%;place-items:center}.state-pie::before{content:"";grid-area:1/1;width:55%;aspect-ratio:1;border-radius:50%;background:#fff}.state-pie>span{z-index:1;grid-area:1/1;text-align:center}.state-pie strong,.state-pie small{display:block}.state-pie strong{font-size:24px}.state-pie small{margin-top:4px;color:var(--muted);font-size:10px}.state-pie-legend{display:grid;gap:10px}.state-pie-legend>div{display:grid;grid-template-columns:12px 1fr auto 48px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.state-pie-legend i{width:12px;height:12px}.state-pie-legend span{font-weight:700}.state-pie-legend small{text-align:right;color:var(--muted)}
.dashboard-completed-charts{margin-bottom:14px}
@media(max-width:680px){.state-pie-layout{grid-template-columns:1fr}.state-pie{width:220px}}

/* v117: rolagem contida e gráficos verticais coloridos. */
.detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel,.ota-panel,.observability-panel,.manuals-panel{display:flex;height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);flex-direction:column}
.detail-body,.installation-form,.directory-body,.credentials-body,.reports-body,.team-body,.dashboard-body,.ota-body,.observability-body,.manuals-body{min-height:0;max-height:none!important;padding-bottom:48px!important;box-sizing:border-box;flex:1 1 auto;overflow-y:auto;scrollbar-gutter:stable both-edges;overscroll-behavior:contain}
.dashboard-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:14px;align-items:end;min-height:250px;margin-top:20px}.dashboard-column{display:grid;grid-template-rows:auto 180px minmax(32px,auto);gap:7px;min-width:0;text-align:center}.dashboard-column-value{color:#443d39;font-size:10px;font-weight:800;white-space:nowrap}.dashboard-column-track{display:flex;overflow:hidden;width:70%;height:180px;margin:auto;background:#f0ebe7;align-items:flex-end}.dashboard-column-track i{display:block;width:100%;min-height:3px;transition:height .35s ease}.dashboard-column strong{overflow:hidden;font-size:9px;line-height:1.25;text-overflow:ellipsis}.dashboard-trend{margin-top:8px!important;font-size:9px!important;font-weight:800}.dashboard-trend.positive{color:#15834f!important}.dashboard-trend.negative{color:#d13b32!important}.dashboard-trend.neutral{color:var(--muted)!important}
@media(max-width:680px){.detail-panel,.installation-panel,.directory-panel,.provision-panel,.credentials-panel,.reports-panel,.team-panel,.dashboard-panel,.ota-panel,.observability-panel,.manuals-panel{height:100dvh;max-height:100dvh}.dashboard-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dashboard-column{grid-template-rows:auto 140px minmax(32px,auto)}.dashboard-column-track{height:140px}}
@media print{.printing-dashboard .dashboard-columns{display:grid!important;grid-template-columns:repeat(6,1fr);min-height:42mm}.printing-dashboard .dashboard-column{grid-template-rows:auto 28mm auto}.printing-dashboard .dashboard-column-track{display:flex!important;height:28mm!important}.printing-dashboard .dashboard-column-track i{display:block!important}.printing-dashboard .dashboard-trend{display:block!important}}

/* v119: desempenho técnico por lote. */
.report-summary{grid-template-columns:repeat(4,1fr)}.report-performance-card{margin:16px 0;padding:20px;border:1px solid var(--line);background:#fff}.report-performance-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.report-performance-card h3{margin:4px 0 0;font-size:22px}.performance-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-top:17px;background:var(--line);border:1px solid var(--line)}.performance-metrics>div{min-width:0;padding:14px;background:#fff}.performance-metrics span,.recipe-reference>span{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.performance-metrics strong{display:block;margin-top:7px;font-size:17px}.performance-metrics .score{background:#eff8f1}.performance-metrics .score strong{color:#16814d}.recipe-reference{display:flex;align-items:center;gap:22px;margin-top:12px;padding:12px 14px;border-left:4px solid #147df5;background:#f2f7ff}.recipe-reference>span{margin-right:auto;color:#24598d}.recipe-reference strong{font-size:12px}.metric-help{position:relative}.metric-help summary{display:grid;width:34px;height:34px;border:1px solid var(--line);background:#fff;color:#147df5;font-size:18px;cursor:pointer;list-style:none;place-items:center}.metric-help summary::-webkit-details-marker{display:none}.metric-help>div{position:absolute;z-index:10;top:42px;right:0;width:min(420px,80vw);padding:16px;border:1px solid var(--line);background:#fff;box-shadow:0 12px 35px rgba(50,35,25,.18)}.metric-help p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
@media(max-width:850px){.performance-metrics{grid-template-columns:repeat(2,1fr)}.recipe-reference{align-items:flex-start;flex-direction:column;gap:7px}.recipe-reference>span{margin-right:0}}
@media print{.report-performance-card{break-inside:avoid;padding:4mm}.performance-metrics{grid-template-columns:repeat(5,1fr)}.performance-metrics>div{padding:2.5mm}.performance-metrics strong{font-size:9pt}.metric-help summary{display:none}.metric-help>div{position:static;display:block;width:auto;margin-top:2mm;padding:2mm;box-shadow:none}.metric-help>div strong{font-size:7pt}.metric-help>div p{font-size:6pt}.recipe-reference{padding:2.5mm}.report-summary{grid-template-columns:repeat(4,1fr)}}

/* v121: ajuda contextual por indicador. */
.performance-metrics .score{grid-column:span 2}
.performance-metrics>div{position:relative}.performance-metrics span{display:flex;gap:5px;align-items:center}.metric-inline-help{display:inline-block}.metric-inline-help summary{display:grid;width:18px;height:18px;border:1px solid #9ab9d8;background:#f3f8fd;color:#147df5;font-size:11px;line-height:1;cursor:pointer;list-style:none;place-items:center}.metric-inline-help summary::-webkit-details-marker{display:none}.metric-inline-help>div{position:absolute;z-index:15;top:38px;left:10px;width:min(330px,75vw);padding:14px;border:1px solid var(--line);background:#fff;box-shadow:0 12px 30px rgba(50,35,25,.2);text-transform:none;letter-spacing:normal}.metric-inline-help>div strong{display:block;margin:0;font-size:12px}.metric-inline-help>div p{margin:6px 0 0;color:var(--muted);font-size:11px;font-weight:400;line-height:1.5}.performance-metrics>div:nth-child(5n) .metric-inline-help>div{right:10px;left:auto}
.performance-metrics>div>small{display:block;margin-top:6px;color:#806c61;font-size:9px;font-weight:500;line-height:1.35;text-transform:none;letter-spacing:normal}
@media(max-width:680px){.metric-inline-help>div{position:fixed;z-index:100;top:50%;right:18px;left:18px;width:auto;transform:translateY(-50%)}}
@media print{.metric-inline-help summary{display:none}.metric-inline-help>div{display:none!important}}

/* Lote encerrado por troca, sem classifica-lo como concluido ou cancelado. */
.report-status.CLOSED{background:#e8eef6;color:#3e5f86}

/* Card privado de validação do modelo de umidade (somente SUPERADMIN). */
.experimental-moisture-card{margin:0 0 20px;padding:20px;border:1px solid #c8dbea;background:linear-gradient(135deg,#f3f8fc,#fff);box-shadow:0 8px 24px rgba(28,91,140,.07)}
.experimental-moisture-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.experimental-moisture-head h3{margin:4px 0 5px;color:#174f78;font-size:20px}
.experimental-moisture-head p{margin:0;color:var(--muted);font-size:10px}
.experimental-moisture-head>span{padding:6px 9px;border:1px solid #b8d2e5;background:#e9f4fb;color:#175e8d;font-size:9px;font-weight:900;white-space:nowrap}
.experimental-moisture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:17px;border:1px solid #d6e3ec;background:#d6e3ec}
.experimental-moisture-grid>div{position:relative;min-width:0;padding:13px;background:#fff}
.experimental-moisture-grid span,.experimental-moisture-grid strong,.experimental-moisture-grid small{display:block}
.experimental-moisture-grid span{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.05em}
.experimental-moisture-grid strong{margin-top:6px;color:#173f5c;font-size:18px}
.experimental-moisture-grid small{margin-top:4px;color:var(--muted);font-size:8px}
.experimental-moisture-grid span{display:flex;align-items:center;gap:6px}.experimental-moisture-grid .metric-inline-help{flex:0 0 auto}.experimental-moisture-grid .metric-inline-help>div{top:38px;left:12px}.experimental-moisture-grid>div:nth-child(3n) .metric-inline-help>div{right:12px;left:auto}.experimental-moisture-grid .metric-inline-help p b{color:#173f5c}
.device-performance{margin:0 0 20px}.device-performance .report-performance-card{margin:0}.device-performance-note{padding:9px 14px;border:1px solid #c8dbea;border-bottom:0;background:#eef6fc;color:#175e8d;font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.device-performance-note.consolidated{border-color:#bad8c4;background:#eef8f1;color:#237142}
@media(max-width:680px){.experimental-moisture-head{flex-direction:column}.experimental-moisture-grid{grid-template-columns:1fr 1fr}}

/* Edicao administrativa diretamente na linha do lote no relatorio. */
.report-table-summary.has-actions th:nth-child(1){width:7%}.report-table-summary.has-actions th:nth-child(2){width:9%}.report-table-summary.has-actions th:nth-child(3){width:18%}.report-table-summary.has-actions th:nth-child(4){width:10%}.report-table-summary.has-actions th:nth-child(5){width:8%}.report-table-summary.has-actions th:nth-child(6){width:11%}.report-table-summary.has-actions th:nth-child(7){width:20%}.report-table-summary.has-actions th:nth-child(8){width:10%}.report-table-summary.has-actions th:nth-child(9){width:7%}.report-table-summary:not(.has-actions) th:nth-child(3){width:18%}.report-table-summary:not(.has-actions) th:nth-child(6){width:12%}.report-table-summary:not(.has-actions) th:nth-child(7){width:24%}.report-table-summary:not(.has-actions) th:nth-child(8){width:12%}.report-actions-column{text-align:center!important}.report-edit-lot-button{border:1px solid var(--dark-brown);border-radius:7px;padding:7px 10px;background:#fff;color:var(--dark-brown);font-size:9px;font-weight:800;cursor:pointer}.report-edit-lot-button:hover,.report-edit-lot-button:focus-visible{background:var(--dark-brown);color:#fff}
.report-sort-button{display:inline-flex;align-items:center;gap:5px;border:0;padding:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-align:left;cursor:pointer}.report-sort-button span{color:var(--brown);font-size:12px}.report-sort-button:hover,.report-sort-button:focus-visible{color:var(--brown);text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.report-table-summary .report-actions-column{grid-column:1/-1;text-align:right!important}.report-table-summary .report-actions-column::before{display:none}.report-edit-lot-button{width:100%}}
@media print{.report-actions-column{display:none!important}.report-sort-button{pointer-events:none;text-decoration:none}.report-sort-button span{display:none}}

/* Associação em massa das etapas ao lote do cliente. */
.report-table-summary.has-actions th:nth-child(7){width:18%}.report-table-summary.has-actions th:nth-child(9){width:9%}.report-bulk-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0 10px;padding:12px 14px;border:1px solid #cdbdb3;background:#fff}.report-bulk-actions div,.report-bulk-actions strong,.report-bulk-actions span{display:block}.report-bulk-actions span{margin-top:3px;color:var(--muted);font-size:10px}.report-bulk-actions button{border:0;padding:10px 14px;background:var(--dark-brown);color:#fff;font-size:10px;font-weight:800;cursor:pointer}.report-bulk-actions button:disabled{cursor:not-allowed;opacity:.45}.report-select-all,.report-lot-selector{display:flex;align-items:center;justify-content:center;gap:5px;font-size:8px;font-weight:800;cursor:pointer}.report-select-all input,.report-lot-selector input{width:15px;height:15px;accent-color:var(--dark-brown)}.report-lot-selector{margin-bottom:7px}.report-lot-selector span{font-size:8px}.bulk-client-lot-form{display:grid;gap:16px;padding:24px}.bulk-client-lot-form>label{display:grid;gap:7px;font-size:12px;font-weight:800}.bulk-client-lot-form input{width:100%;padding:12px;border:1px solid var(--line);background:#fff}.bulk-client-lot-selection{display:grid;gap:5px;padding:14px;border-left:4px solid var(--brown);background:#f7f3ef}.bulk-client-lot-selection strong,.bulk-client-lot-selection span{display:block}.bulk-client-lot-selection span{color:var(--muted);font-size:10px}.bulk-client-lot-note{margin:0;padding:11px 13px;background:#eef8f1;color:#286442;font-size:10px;line-height:1.5}.bulk-client-lot-form .form-error{margin:0}
@media(max-width:900px){.report-bulk-actions{align-items:stretch;flex-direction:column}.report-bulk-actions button{width:100%}.report-lot-selector{justify-content:flex-start}.report-actions-column .report-edit-lot-button{margin-top:3px}}
@media print{.report-bulk-actions{display:none!important}}

/* Mantém seleção e edição alinhadas na mesma linha da tabela de relatórios. */
.report-table-summary.has-actions th:nth-child(9){width:13%}
.report-table-summary.has-actions th:nth-child(7){width:16%}
.report-table-summary.has-actions th:nth-child(8){width:8%}
.report-table-summary tbody .report-actions-column{vertical-align:middle;white-space:nowrap}
.report-table-summary tbody .report-actions-column .report-lot-selector{display:inline-flex;margin:0 10px 0 0;vertical-align:middle}
.report-table-summary tbody .report-actions-column .report-edit-lot-button{display:inline-flex;align-items:center;justify-content:center;margin:0;vertical-align:middle}

@media(max-width:900px){
  .report-table-summary tbody .report-actions-column .report-lot-selector{margin:0 8px 0 0}
  .report-table-summary tbody .report-actions-column .report-edit-lot-button{width:auto;margin:0}
}

/* A edição administrativa é aberta pelo clique na linha; a coluna fica dedicada à seleção em massa. */
.report-table-summary.has-actions th:nth-child(7){width:18%}
.report-table-summary.has-actions th:nth-child(8){width:10%}
.report-table-summary.has-actions th:nth-child(9){width:9%}
.report-table-summary.has-actions th:nth-child(6){width:8%;font-size:0}
.report-table-summary.has-actions th:nth-child(6)::after{content:"TEMPO SEC.";font-size:9px}
.report-table-summary.has-actions th:nth-child(7){width:21%}
.report-table-summary tbody tr:has([data-edit-report-lot]){cursor:pointer;transition:background-color .15s ease}
.report-table-summary tbody tr:has([data-edit-report-lot]):hover{background:#f7f0eb}
.report-table-summary tbody tr:has([data-edit-report-lot]) td:first-child{position:relative}
.report-table-summary tbody tr:has([data-edit-report-lot]):hover td:first-child::after{content:"Clique para editar";display:block;margin-top:5px;color:var(--brown);font-size:8px;font-weight:800;white-space:nowrap}
.report-table-summary tbody .report-actions-column .report-lot-selector{margin:0}
.report-table-summary tbody .report-actions-column .report-edit-lot-button{display:none}

@media(max-width:900px){
  .report-table-summary tbody tr:has([data-edit-report-lot]):hover td:first-child::after{display:none}
}

/* Alinha os seletores e reserva mais espaço para a descrição dos alarmes. */
.report-table-summary.has-actions th:nth-child(7){width:18%}
.report-table-summary.has-actions th:nth-child(8){width:14%}
.report-table-summary.has-actions th:nth-child(9){width:8%}
.report-table-summary .report-select-all,
.report-table-summary .report-lot-selector{width:88px;margin-right:auto;margin-left:auto;justify-content:flex-start}
.report-table-summary .report-alarm-cell{padding-right:10px;padding-left:8px;overflow-wrap:anywhere;word-break:normal}

@media(max-width:900px){
  .report-table-summary .report-select-all,
  .report-table-summary .report-lot-selector{width:auto;margin-left:0}
}

/* Respiro lateral e apresentação das etapas consolidadas pelo lote do cliente. */
.report-table-summary.has-actions .report-actions-column{padding-right:22px!important}
.report-client-lot-group{margin-top:22px;border:1px solid var(--line);background:#f6f1ed}
.report-client-lot-group>header{padding:20px 24px;border-bottom:1px solid var(--line);background:#fff}
.report-client-lot-group>header h2{margin:5px 0 4px;font-size:24px}
.report-client-lot-group>header p:last-child{margin:0;color:var(--muted)}
.report-client-lot-group>.report-lot-detail{margin:18px}

@media(max-width:900px){
  .report-table-summary.has-actions .report-actions-column{padding-right:14px!important}
  .report-client-lot-group>header{padding:18px}
  .report-client-lot-group>.report-lot-detail{margin:10px}
}

@media print{
  .report-client-lot-group{border:0;background:#fff;break-before:auto}
  .report-client-lot-group>header{padding:0 0 12px}
  .report-client-lot-group>.report-lot-detail{margin:14px 0}
}

/* Linha do tempo única das medições de um lote do cliente. */
.report-client-lot-route{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.report-client-lot-route span{display:grid;gap:2px;padding:8px 10px;border-left:3px solid var(--brown);background:#f6f1ed}
.report-client-lot-route strong{font-size:10px}.report-client-lot-route small{color:var(--muted);font-size:8px}
.report-client-lot-consolidated{padding:20px 22px;background:#fff}
.report-client-lot-consolidated>h3{margin:20px 0 4px;font-size:17px}
.report-client-lot-consolidated>p{margin:0 0 10px;color:var(--muted);font-size:10px}
.report-client-lot-measurements th:nth-child(2),.report-client-lot-measurements td:nth-child(2){white-space:normal}
.report-client-lot-stage-results{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}
.report-client-lot-stage-results>h2{margin:0 0 14px;font-size:19px}
.report-client-lot-stage{margin-top:16px;padding-top:16px;border-top:1px solid #eadfd8}
.report-client-lot-stage>h3{margin:0 0 10px;font-size:14px}
.report-client-lot-stage .report-performance-card{margin-top:0}

@media(max-width:900px){
  .report-client-lot-consolidated{padding:16px 12px}
  .report-client-lot-measurements{min-width:760px}
}

@media print{
  .report-client-lot-consolidated{padding:0}
  .report-client-lot-route span{break-inside:avoid}
  .report-client-lot-stage{break-before:page}
}

.chart-stage-marker{stroke:#765748;stroke-width:1;stroke-dasharray:3 4;opacity:.65}
.chart-stage-label{fill:#5a4034;font-size:8px;font-weight:800}
.chart-reading-hover{fill:transparent;stroke:transparent;pointer-events:all;cursor:crosshair}
.report-client-lot-performance{margin:18px 0 24px}
.report-client-lot-performance>h2{margin:0 0 5px;font-size:20px}
.report-client-lot-performance>p{margin:0 0 12px;color:var(--muted);font-size:10px}
.report-client-lot-performance .report-performance-card{margin-top:0;border-left:4px solid var(--brown)}
.report-chart-card{position:relative}
.report-chart-cursor{stroke:#30231e;stroke-width:1.2;stroke-dasharray:4 3;opacity:0;pointer-events:none}
.report-chart-cursor.visible{opacity:.8}
.report-chart-navigation-tooltip{position:absolute;z-index:8;display:none;width:224px;gap:4px;padding:11px 12px;border:1px solid #9c7b69;background:rgba(255,255,255,.97);box-shadow:0 8px 24px rgba(48,35,30,.18);color:var(--ink);font-size:9px;line-height:1.35;pointer-events:none}
.report-chart-navigation-tooltip.visible{display:grid}
.report-chart-navigation-tooltip strong{margin-bottom:3px;color:var(--brown);font-size:10px}
.report-chart-navigation-tooltip span{display:block}.report-chart-navigation-tooltip b{font-weight:800}
@media print{.report-chart-navigation-tooltip,.report-chart-cursor{display:none!important}}
.report-client-lot-time-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px}
.report-client-lot-time-summary article{padding:14px;border:1px solid var(--line);background:#fff}
.report-client-lot-time-summary span,.report-client-lot-time-summary strong,.report-client-lot-time-summary small{display:block}
.report-client-lot-time-summary span{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.06em}
.report-client-lot-time-summary strong{margin-top:7px;color:var(--brown);font-size:21px}
.report-client-lot-time-summary small{margin-top:5px;color:var(--muted);font-size:8px}
@media(max-width:700px){.report-client-lot-time-summary{grid-template-columns:1fr}}
@media print{.report-client-lot-time-summary{break-inside:avoid}}

.dashboard-filter-actions{display:grid;gap:5px;align-self:stretch;align-content:end}.dashboard-filter-actions button{width:100%}.dashboard-consolidate-option{position:relative;display:flex!important;width:max-content;max-width:100%;gap:7px;align-items:center;margin:0;padding:3px 2px;border:0;background:transparent;color:var(--muted)!important;cursor:pointer}.dashboard-consolidate-option:hover{color:var(--ink)!important}.dashboard-consolidate-option input{display:block;width:14px;height:14px;margin:0;padding:0;flex:0 0 14px;accent-color:var(--dark-brown)}.dashboard-consolidate-option span{font-size:9px;font-weight:700;line-height:1.2;text-transform:none;letter-spacing:0}.dashboard-consolidate-option .dashboard-consolidate-help{position:absolute;z-index:20;right:0;bottom:calc(100% + 7px);display:none;width:250px;padding:9px 10px;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 8px 22px rgba(48,35,30,.17);font-size:9px;font-weight:500;line-height:1.4}.dashboard-consolidate-option:hover .dashboard-consolidate-help,.dashboard-consolidate-option:focus-within .dashboard-consolidate-help{display:block}.dashboard-mode-note{margin:0 0 14px;padding:10px 12px;border-left:4px solid #00a86b;background:#eef8f1;color:#176943;font-size:10px;font-weight:900;letter-spacing:.03em}
@media(max-width:980px){.dashboard-filter-actions{grid-column:1/-1}}
.report-filter-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.report-filter-actions>button{width:100%;min-width:0}.report-consolidate-option{position:relative;display:flex!important;width:100%;grid-column:1/-1;gap:7px;align-items:center;margin:0;padding:3px 2px;border:0;background:transparent;color:var(--muted)!important;cursor:pointer}.report-consolidate-option:hover{color:var(--ink)!important}.report-consolidate-option input{display:block!important;width:14px!important;height:14px!important;margin:0!important;padding:0!important;flex:0 0 14px;accent-color:var(--dark-brown)}.report-consolidate-option span{font-size:9px;font-weight:700;line-height:1.2;text-transform:none;letter-spacing:0}.report-consolidate-option .report-consolidate-help{position:absolute;z-index:20;right:0;bottom:calc(100% + 7px);display:none;width:250px;padding:9px 10px;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 8px 22px rgba(48,35,30,.17);font-size:9px;font-weight:500;line-height:1.4}.report-consolidate-option:hover .report-consolidate-help,.report-consolidate-option:focus-within .report-consolidate-help{display:block}
@media(max-width:520px){.report-filter-actions{grid-template-columns:1fr}.report-consolidate-option{grid-column:1}.report-filter-actions>button{grid-column:1!important}}
.report-print-selectable{position:relative}.report-reading-controls{position:absolute;z-index:6;top:8px;right:10px;display:flex;gap:12px;align-items:center}.report-reading-controls label{display:flex!important;width:auto!important;gap:5px;align-items:center;margin:0!important;padding:4px 6px;border:1px solid transparent;background:rgba(255,255,255,.9);color:#81746d!important;font-size:8px!important;font-weight:700!important;letter-spacing:0!important;line-height:1;cursor:pointer;opacity:.68;transition:opacity .15s,border-color .15s}.report-reading-controls label:hover,.report-reading-controls label:focus-within{border-color:var(--line);opacity:1}.report-reading-controls input{display:block!important;width:13px!important;height:13px!important;margin:0!important;padding:0!important;accent-color:var(--dark-brown)}.report-reading-controls span{display:block!important;color:inherit!important;font-size:inherit!important;font-weight:inherit!important;letter-spacing:inherit!important;text-transform:none!important}.report-measurement-block.report-print-selectable{min-height:54px;padding-top:34px}.report-measurement-block.readings-collapsed .history-table-wrap{display:none}
@media(max-width:680px){.report-reading-controls{position:static;flex-wrap:wrap;justify-content:flex-end;margin:-26px 0 8px}.report-reading-controls label{padding:4px;opacity:.75}}
@media print{.report-reading-controls,.print-excluded{display:none!important}.report-measurement-block.readings-collapsed:not(.print-excluded) .history-table-wrap{display:block!important}}

/* Penagos: independent compartment channels, including print output. */
.compartment-reading { display:block; font-size:14px; line-height:1.65; }
polyline.chart-mass-1, polyline.chart-mass-2, polyline.chart-mass-3 { fill:none; stroke-width:3; stroke-linejoin:round; }
.chart-mass-1 { stroke:#13a64b; }
.chart-mass-2 { stroke:#8b5cf6; }
.chart-mass-3 { stroke:#e03c83; }
i.legend-line.chart-mass-1 { background:#13a64b; }
i.legend-line.chart-mass-2 { background:#8b5cf6; }
i.legend-line.chart-mass-3 { background:#e03c83; }
i.legend-line.chart-mass { background:#13a64b; }

/* Administrative lists: one reading column, bounded controls and compact rows. */
.installation-form label:has(#installationPartner){display:grid;gap:8px;align-content:start}
#installationPartner{display:block;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:3px;background:#fff;font:inherit;color:var(--ink)}
.installation-form label:has(#installationPartner) .field-hint{display:block;line-height:1.5;font-weight:400}
#partnersOverlay .partner-admin-panel{width:min(1180px,100%)}
#partnersOverlay .partner-admin-body{padding:0;overflow-y:auto;overflow-x:hidden}
#partnersOverlay .partner-workspace{width:100%;min-width:0;padding:24px;box-sizing:border-box;overflow:visible}
.partner-list-section,.partner-compact-list{min-width:0;width:100%}
.partner-compact-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.partner-compact-list .partner-row{padding:14px 4px;margin:0;border-radius:0;background:transparent}
.partner-row>div{min-width:0;overflow-wrap:anywhere}
.partner-row>button{flex:0 0 auto}
.partner-toolbar{flex-wrap:wrap;align-items:center;gap:12px}
.partner-toolbar h3{margin:0;font-size:18px}
.partner-toolbar form{min-width:0;max-width:100%;flex:1 1 260px}
.partner-toolbar input{width:0;min-width:0;box-sizing:border-box}
.partner-toolbar button{flex:0 0 auto}
.partner-add-form{margin:16px 0;padding:18px;border:1px solid var(--line);background:#fff;max-width:600px;box-sizing:border-box}
.partner-add-form h4{margin:0 0 14px}
.partner-add-form form+form{margin-top:16px}
.partner-admin-form label,.partner-admin-form input,.partner-admin-form select{min-width:0;max-width:100%;box-sizing:border-box}
.partner-admin-form.inline{grid-template-columns:minmax(0,1fr) auto}
.partner-pagination{flex-wrap:wrap;gap:10px;padding:16px 0;margin-top:12px;justify-content:flex-end}
.partner-pagination span{margin-right:auto;line-height:1.5}
.partner-pagination button{flex:0 0 auto;min-height:42px}
.partner-audit-type{margin:0 10px 6px 0;vertical-align:middle}
.partner-audit-type+strong{display:inline;line-height:1.7}
.partner-admin-card .partner-row{padding:16px 0}
.partner-admin-card .partner-row small{margin-top:8px;line-height:1.6}
.partner-audit-list .partner-row{padding:18px 4px}
.partner-audit-list .partner-row small{margin-top:8px;line-height:1.6}
.partner-back{display:inline-flex;padding:9px 0;margin-bottom:14px;border:0;background:transparent;color:var(--brown);font:inherit;font-weight:700;cursor:pointer}
.partner-tabs{flex-wrap:wrap;overflow:visible;gap:4px}
.partner-tabs button{flex:0 1 auto;padding:10px 12px}
.admin-list-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:20px;padding:16px;background:#fff;border:1px solid var(--line)}
.admin-list-filters label{display:grid;gap:6px;flex:1 1 160px;min-width:0;font-size:12px;font-weight:700;color:var(--muted)}
.admin-list-filters input,.admin-list-filters select{width:100%;min-width:0;min-height:42px;padding:10px;border:1px solid var(--line);background:#fff;font:inherit;box-sizing:border-box}
.admin-list-filters button{min-height:42px;padding:10px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-weight:700;cursor:pointer}
.admin-list-filters .partner-note{flex-basis:100%;margin:0}
.directory-client{margin-bottom:0;border:0;border-bottom:1px solid var(--line);border-radius:0!important}
.directory-client-head{align-items:center;padding:16px 8px;cursor:pointer;list-style:revert}
.directory-client-head>span:first-child{min-width:0;overflow-wrap:anywhere}
.directory-client-head strong{font-size:15px}
.directory-client-head small{display:block;margin-top:6px;color:var(--muted);font-size:11px}
.directory-client[open]{margin-bottom:14px}
.directory-row>div,.property-head>div,.property-columns>div{min-width:0;overflow-wrap:anywhere}
.property-head,.directory-client-head{flex-wrap:wrap}
.credential-location{display:block;line-height:1.6;margin-top:6px;color:var(--muted);overflow-wrap:anywhere}
.credentials-table td{overflow-wrap:anywhere}
@media(max-width:760px){
  #partnersOverlay .partner-admin-panel{width:100%;height:100dvh;max-height:100dvh}
  #partnersOverlay .partner-workspace{padding:16px}
  .partner-admin-card{padding:16px;min-width:0;box-sizing:border-box}
  .partner-admin-form input,.partner-admin-form select,.partner-toolbar input,#installationPartner,.admin-list-filters input,.admin-list-filters select{font-size:16px}
  .partner-tabs button{font-size:14px;padding:10px}
  .partner-toolbar{display:flex}
  .partner-toolbar form{flex-basis:100%}
  .partner-admin-form.inline{grid-template-columns:minmax(0,1fr) auto}
  .partner-pagination{justify-content:flex-start}
  .partner-pagination span{flex-basis:100%}
  .admin-list-filters{padding:12px;gap:10px}
  .admin-list-filters label{flex-basis:calc(50% - 10px)}
  .admin-list-filters .admin-search-field{flex-basis:100%}
  .credentials-body .history-table-wrap{overflow:visible}
  .credentials-table{width:100%;min-width:0}
  .credentials-table thead{display:none}
  .credentials-table tbody,.credentials-table tr{display:block;width:100%}
  .credentials-table tr{padding:12px 0;border-bottom:1px solid var(--line)}
  .credentials-table td{display:grid;grid-template-columns:minmax(85px,.7fr) minmax(0,1fr);gap:8px;align-items:start;padding:7px 10px;border:0;white-space:normal}
  .credentials-table td::before{content:attr(data-label);font-weight:700;color:var(--muted);grid-column:1;grid-row:1/6}
  .credentials-table td>*{grid-column:2;min-width:0}
  .credentials-table td br{display:none}
  .credentials-table td .credential-location br{display:initial}
  .credentials-table td{font-size:12px}
  .credentials-table td small,.credentials-table td code{font-size:11px}
  .credentials-body .credential-warning{font-size:12px}
  .credentials-body .credential-row-actions button{min-height:42px;font-size:12px}
  .credential-row-actions{flex-wrap:wrap;min-width:0}
}
@media(max-width:380px){.partner-row{flex-wrap:wrap}.partner-row>div{flex:1 1 100%}.admin-list-filters label{flex-basis:100%}}
@media(max-width:480px){.partner-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.report-filters label:has(input[type="date"]),.dashboard-filters label:has(input[type="date"]){grid-column:1/-1}}
/* v186: searchable fleet filter and bounded list navigation. */
.overview-client-filter{flex-wrap:wrap;align-items:end;gap:12px}
.overview-client-filter label{flex:1 1 220px;min-width:0}
.overview-client-filter input,.overview-client-filter select{box-sizing:border-box;width:100%;min-width:0}
.overview-client-filter input{display:block;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.overview-client-filter button{padding:10px 16px;min-height:40px}
#fleetClientHint{flex-basis:100%;margin:0}
#fleetSearchForm{margin-bottom:20px}
#teamSearchForm{margin:16px 0}
[role="dialog"]:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #266ab5;outline-offset:3px}
/* v187: one control per filter; search belongs inside the selector. */
.search-select{display:block;position:relative;min-width:0;width:100%;font-size:14px;letter-spacing:normal;text-transform:none}
.search-select>input{width:100%;box-sizing:border-box;padding-right:28px;background:#fff;cursor:text}
.search-select::after{content:'⌄';position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink)}
.search-select-popup{display:block;position:absolute;left:0;right:0;top:100%;z-index:30;max-height:260px;overflow:auto;background:white;border:1px solid var(--line);box-shadow:0 8px 24px #0002;border-radius:4px}
.search-select-popup[hidden],.admin-list-filters select[hidden],#overviewClientSelect[hidden]{display:none}
.search-select [role="listbox"],.search-select [role="option"]{display:block}
.search-select [role="option"]{padding:10px 12px;white-space:normal;overflow-wrap:anywhere;cursor:pointer;font-weight:500}
.search-select [role="option"]:hover,.search-select [aria-selected="true"]{background:#eee4dc;color:#3d271e}
.search-select [role="status"]{display:block;padding:6px 12px;font-size:12px}
.search-select [role="status"]:empty{display:none}
.admin-list-filters{align-items:start}
.overview-farm-group{grid-column:1/-1;min-width:0}
.overview-farm-group>header{margin:8px 0 14px}
.overview-farm-group>header h3{margin:0;font-size:18px}
.overview-farm-group>header p{margin:4px 0 0;color:var(--muted);font-size:13px}
.overview-client-filter label{flex:0 1 320px;max-width:100%}
@media(max-width:480px){
  .admin-list-filters label{flex-basis:100%}
  .search-select>input{font-size:16px;min-height:44px}
}
@media(max-width:760px){
  .credentials-panel .detail-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px}
  .credentials-panel .detail-header>div:first-child{grid-column:1;grid-row:1;min-width:0}
  .credentials-panel .directory-header-actions .close-button{grid-column:2;grid-row:1}
  .credentials-panel .directory-search{grid-column:1/-1;grid-row:2;width:100%;min-width:0}
  #credentialsSearch{width:100%;min-width:0;font-size:16px;box-sizing:border-box}
}
@media(max-width:760px){
  .directory-panel .detail-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px}
  .directory-panel .detail-header>div:first-child{grid-column:1;grid-row:1;min-width:0}
  .directory-header-actions{display:contents}
  .directory-header-actions .close-button{grid-column:2;grid-row:1}
  .directory-header-actions .directory-search{grid-column:1/-1;grid-row:2;width:100%;min-width:0}
  #directorySearch{width:100%;min-width:0;font-size:16px;box-sizing:border-box}
}
