@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";.btn-primary,.btn-logout{background-color:#5c715e}.login-page{justify-content:center;align-items:center;min-height:80dvh;display:flex}.login-page__form{flex-direction:column;justify-content:center;align-items:center;gap:20px;width:100%;max-width:400px;display:flex}.login-page__form__intro{flex-direction:column;gap:5px;display:flex}.login-page__form__intro p{color:#1a1a19;font-size:1rem;font-weight:600}.login-page__form__field{flex-direction:column;gap:5px;display:flex}.login-page__form form{flex-direction:column;gap:15px;width:350px;display:flex}@media (width<=900px){.login-page__image{display:none}.login-page__form{width:100%}}.btn-primary,.btn-logout{background-color:#5c715e}.app-layout{flex-direction:column;height:100dvh;display:flex}.app-layout__body{flex:1;display:flex;overflow:hidden}.app-layout__content{flex:1;padding:1.5rem;overflow-y:auto}.navbar{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.navbar__brand{color:#5c715e;font-weight:600}.navbar__user{align-items:center;gap:1rem;display:flex}.sidebar{border-right:1px solid #e0e0e0;flex-direction:column;width:220px;padding:1rem;display:flex}.sidebar__link{color:inherit;border-radius:4px;padding:.5rem .75rem;text-decoration:none;transition:all .2s ease-in-out}.sidebar__link:hover:not(:disabled){opacity:.9}.sidebar__link:disabled{opacity:.6}.sidebar__link--active{color:#f2f0ef;background-color:#5c715e;font-weight:600}.btn-primary,.btn-logout{background-color:#5c715e}.farms-list-page{padding:1rem 0}.farms-list-page h1{margin-bottom:1.5rem}.farms-list-page__error{color:#b00020}.farms-list-page__list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.farms-list-page__item{cursor:pointer;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;transition:box-shadow .15s,border-color .15s}.farms-list-page__item:hover{border-color:#b0b0b0;box-shadow:0 2px 8px #00000014}.farms-list-page__item h3{margin:0 0 .5rem}.farms-list-page__item p{color:#666;margin:0 0 .75rem;font-size:.9rem}.farms-list-page__item span{color:#888;font-size:.85rem}.farm-dashboard-page{flex-direction:column;gap:20px;display:flex}.farm-dashboard-page__meta{flex-direction:column;display:flex}.btn-primary,.btn-logout{background-color:#5c715e}.device-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:10px;display:grid}.device-list__empty{color:#b0b0b0;margin-top:10px}.device-card{cursor:pointer;background-color:#faf8f7;border:2px solid #e0e0e0;border-radius:8px;padding:1rem;transition:box-shadow .15s ease-in-out,border-color .15s ease-in-out}.device-card:hover{border-color:#b0b0b0;box-shadow:0 2px 8px #00000014}.device-card__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.device-card__header h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.device-card__serial,.device-card__sensors{color:#888;margin:.25rem 0 0;font-size:.85rem}.device-card__status{border-radius:12px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.device-card__status--online{color:#2e7d32;background:#f2f0ef}.device-card__status--offline{color:#888;background:#f2f0ef}.device-dashboard-page{padding:1rem 0}.device-dashboard-page__loading,.device-dashboard-page__error{padding:1rem}.device-dashboard-page__error{color:#b00020}.device-dashboard-page__header{justify-content:space-between;align-items:flex-start;margin-bottom:2rem;display:flex}.device-dashboard-page__header h1{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0 0 .25rem;overflow:hidden}.device-dashboard-page__serial{color:#888;margin:0;font-size:.85rem}.device-dashboard-page__meta{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.device-dashboard-page__firmware{color:#888;font-size:.8rem}.device-dashboard-page__status{border-radius:12px;padding:.3rem .75rem;font-size:.85rem;font-weight:600}.device-dashboard-page__status--online{color:#2e7d32;background:#e8f5e9}.device-dashboard-page__status--offline{color:#888;background:#fafafa}.device-dashboard-page__section h2{margin:0 0 1rem}.btn-primary,.btn-logout{background-color:#5c715e}.zone-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:10px;display:grid}.zone-list__empty{color:#b0b0b0;margin-top:10px}.zone-card{cursor:pointer;background-color:#faf8f7;border:2px solid #e0e0e0;border-radius:8px;padding:1rem;transition:box-shadow .15s ease-in-out,border-color .15s ease-in-out}.zone-card:hover{border-color:#b0b0b0;box-shadow:0 2px 8px #00000014}.zone-card__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.zone-card__header h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.zone-card__threshold{color:#b0b0b0;margin:.25rem 0 0;font-size:.85rem}.zone-card__status{border-radius:12px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.zone-card__status--active{color:#2e7d32;background:#f2f0ef}.zone-card__status--inactive{color:#888;background:#f2f0ef}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f2f0ef;font-family:Figtree,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.btn{color:#f2f0ef;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:all .2s ease-in-out}.btn:hover:not(:disabled){opacity:.9}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary,.btn-logout{background-color:#5c715e}label{color:#1a1a19;font-size:.875rem;font-weight:600}select,input{background-color:#faf8f7;border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:6px 12px;font-size:.75rem;font-weight:600}select:focus,input:focus{border:2px solid #47752b;outline:none}input::placeholder{color:#b0b0b0;font-size:.75rem;font-weight:600}.sensor-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.sensor-list__empty{color:#888}.sensor-card{cursor:pointer;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;transition:box-shadow .15s,border-color .15s}.sensor-card:hover{border-color:#b0b0b0;box-shadow:0 2px 8px #00000014}.sensor-card__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.sensor-card__header h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.sensor-card__type{color:#888;margin:0 0 .5rem;font-size:.85rem}.sensor-card__thresholds{flex-direction:column;gap:.25rem;margin-top:.5rem;display:flex}.sensor-card__threshold{border-radius:4px;padding:.15rem .4rem;font-size:.8rem}.sensor-card__threshold--warning{color:#f57f17;background:#fff8e1}.sensor-card__threshold--critical{color:#b00020;background:#fdecea}.sensor-card__status{white-space:nowrap;border-radius:12px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.sensor-card__status--active{color:#2e7d32;background:#e8f5e9}.sensor-card__status--inactive{color:#888;background:#fafafa}.sensor-detail-page{padding:1rem 0}.sensor-detail-page__loading,.sensor-detail-page__error{padding:1rem}.sensor-detail-page__error{color:#b00020}.sensor-detail-page__header{justify-content:space-between;align-items:flex-start;margin-bottom:2rem;display:flex}.sensor-detail-page__header h1{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0 0 .25rem;overflow:hidden}.sensor-detail-page__type{color:#888;margin:0;font-size:.9rem}.sensor-detail-page__status{white-space:nowrap;border-radius:12px;padding:.3rem .75rem;font-size:.85rem;font-weight:600}.sensor-detail-page__status--active{color:#2e7d32;background:#e8f5e9}.sensor-detail-page__status--inactive{color:#888;background:#fafafa}.sensor-detail-page__current,.sensor-detail-page__thresholds,.sensor-detail-page__history{margin-bottom:2rem}.sensor-detail-page__current h2,.sensor-detail-page__thresholds h2,.sensor-detail-page__history h2{margin:0 0 1rem}.sensor-detail-page__reading{align-items:baseline;gap:1rem;display:flex}.sensor-detail-page__value{font-size:2.5rem;font-weight:700}.sensor-detail-page__timestamp{color:#888;font-size:.85rem}
