
:root{--green:#39a900;--green2:#248400;--ink:#172026;--muted:#71808b;--bg:#f5f7f6;--card:#fff;--line:#e5e9e7;--danger:#d64545;--warn:#d88b00;--ok:#239447;--shadow:0 10px 30px rgba(23,32,38,.06)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}button,input,select{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}.muted{color:var(--muted)}.container{padding:28px;max-width:1500px;margin:auto}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.page-title{font-size:28px;margin:0 0 6px}.page-sub{margin:0 0 24px;color:var(--muted)}.section-title{font-size:17px;margin:0 0 15px}.metric{font-size:28px;font-weight:800;margin-top:8px}.metric small{font-size:13px;font-weight:500;color:var(--muted)}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand img{width:36px;height:36px;object-fit:contain;border-radius:8px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;background:#fff;border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{padding:0 0 25px}.sidebar .sidebar-brand{display:block}.sidebar .sidebar-brand img{width:100%;height:auto;max-height:190px;object-fit:contain;border-radius:0;display:block}.sidebar .sidebar-brand span{display:none}.nav-group{font-size:11px;text-transform:uppercase;color:#9aa3a8;font-weight:800;padding:12px 12px 7px}.nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:11px;color:#536068;margin:2px 0}.nav a.active,.nav a:hover{background:#eef8eb;color:var(--green2);font-weight:700}.nav-icon{width:20px;text-align:center}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:12px}.user-mini{display:flex;gap:10px;align-items:center;padding:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#eaf5e7;color:var(--green2);display:grid;place-items:center;font-weight:800}.main{margin-left:245px;min-height:100vh}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar-right{display:flex;align-items:center;gap:14px}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#aaa}.status-dot.online{background:var(--ok)}.status-dot.alert{background:var(--warn)}.status-dot.warning{background:var(--danger)}.status-dot.offline{background:#9aa3a8}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;background:#eef1f0}.pill.online{background:#e8f7ed;color:var(--ok)}.pill.alert{background:#fff2dc;color:var(--warn)}.pill.warning{background:#fde8e8;color:var(--danger)}.pill.offline{background:#eef0f1;color:#69747a}.pill.danger{background:#fde8e8;color:var(--danger)}.btn{padding:10px 15px;border-radius:10px;background:#eef1f0;color:var(--ink);font-weight:700}.btn.primary{background:var(--green);color:#fff}.btn.danger{background:#fff0f0;color:var(--danger)}.btn.small{padding:7px 10px;font-size:12px}.form{display:grid;gap:12px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.field input,.field select{width:100%;padding:11px 12px;border:1px solid #d9dfdc;border-radius:10px;background:#fff;outline:none}.field input:focus,.field select:focus{border-color:var(--green)}.notice{padding:12px;border-radius:10px;background:#f1f6f3;color:#4d5c55;font-size:13px}.notice.error{background:#fff0f0;color:var(--danger)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}.table th{color:#78848a;font-size:11px;text-transform:uppercase}.device-card{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.device-id{font-family:ui-monospace,monospace;font-size:12px;color:var(--muted)}.alert-card{border-left:4px solid var(--warn)}.alert-card.danger{border-left-color:var(--danger)}.weather-main{display:flex;align-items:center;justify-content:space-between}.weather-temp{font-size:42px;font-weight:800}.map-box{height:calc(100vh - 280px);min-height:520px;max-height:700px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}#map{height:100%;width:100%}.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f7faf7,#eef5ef)}.auth-card{width:min(440px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:var(--shadow)}.auth-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.auth-brand img{width:95px;height:95px;object-fit:contain}.auth-brand h1{margin:10px 0 2px;font-size:28px}.auth-brand p{margin:0;color:var(--muted);font-size:13px}.auth-links{text-align:center;margin-top:18px;font-size:13px}.auth-links a{color:var(--green2);font-weight:700}.divider{display:flex;align-items:center;gap:10px;color:#9aa3a8;font-size:12px;margin:16px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.google{display:block;text-align:center;padding:11px;border:1px solid #dfe4e1;border-radius:10px;font-weight:700}.device-type{font-weight:800;color:var(--green2);text-transform:uppercase;font-size:11px}.empty{padding:35px;text-align:center;color:var(--muted)}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.footer-note{font-size:11px;color:#99a1a5;margin-top:20px}@media(max-width:1050px){.sidebar{width:210px}.main{margin-left:210px}.grid-4{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{position:relative;width:100%;height:auto;border-right:0;border-bottom:1px solid var(--line)}.main{margin-left:0}.nav{display:flex;overflow:auto}.nav-group{display:none}.sidebar-bottom{display:none}.topbar{position:relative}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:18px}}


/* User profile popup */
.user-profile-trigger{display:flex;width:100%;align-items:center;gap:10px;padding:10px;background:transparent;border:0;border-radius:12px;text-align:left;color:inherit}
.user-profile-trigger:hover{background:rgba(255,255,255,.035)}
.user-settings-overlay{position:fixed;inset:0;background:rgba(0,8,7,.78);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;z-index:1000}
.user-settings-modal{width:min(460px,100%);background:linear-gradient(180deg,#071511 0%,#06120f 100%);border:1px solid #1b3933;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.5);padding:22px;color:#edf7f3}
.user-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.user-settings-head h2{margin:0;font-size:21px;color:#f4fbf8}
.user-settings-head p{margin:5px 0 0;color:#6fa49b;font-size:12px}
.user-settings-close{width:34px;height:34px;border-radius:9px;background:#10211d;border:1px solid #1b3933;color:#b9d0ca;font-size:22px;line-height:1}
.user-settings-close:hover{background:#143024;color:#fff}
.user-settings-modal .field label{color:#b9d0ca}
.user-settings-modal .field input{background:#091712;border-color:#1b3933;color:#edf7f3}
.user-settings-modal .field input::placeholder{color:#627e77}
.user-settings-modal .field input:focus{border-color:#39a900;box-shadow:0 0 0 2px rgba(57,169,0,.12)}
.user-settings-modal .notice{background:#0d211c;color:#a8c5bd;border:1px solid #1b3933}
.user-settings-modal .notice.error{background:#241514;color:#ff7777;border-color:#4a2521}
.user-settings-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.user-settings-actions .btn{min-width:105px}

/* Sidebar live date/time card */
.sidebar-time-card{
  margin:0 0 8px;
  padding:11px 12px;
  border:1px solid #16332c;
  border-radius:12px;
  background:#071511;
  color:#d7e7e2;
  text-align:center;
}
.sidebar-time-date{font-size:11px;font-weight:700;letter-spacing:.04em;color:#6fa49b;text-transform:uppercase;}
.sidebar-time-time{margin-top:2px;font-size:20px;font-weight:800;line-height:1.2;color:#edf7f3;font-variant-numeric:tabular-nums;}

.sidebar-copyright{
  margin-top:9px;
  padding:0 4px;
  text-align:center;
  color:#6f8f87;
  font-size:9px;
  line-height:1.4;
  letter-spacing:.01em;
}


/* Permanent farm-account deletion */
.user-settings-actions-spacer{flex:1}
.user-account-delete-overlay{position:fixed;inset:0;background:rgba(0,5,4,.84);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:1100}
.user-account-delete-modal{width:min(560px,100%);background:linear-gradient(180deg,#160c0b 0%,#0b1512 100%);border:1px solid #5b2924;border-radius:16px;box-shadow:0 28px 90px rgba(0,0,0,.65);padding:22px;color:#edf7f3}
.user-account-delete-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.user-account-delete-head h2{margin:0;font-size:21px;color:#fff}
.user-account-delete-head p{margin:5px 0 0;color:#d28a83;font-size:12px}
.user-account-delete-warning{display:flex;gap:14px;padding:15px;border:1px solid #5b2924;background:#24110f;border-radius:12px;margin-bottom:16px}
.user-account-delete-warning strong{display:block;color:#ff8f86;font-size:14px;margin-bottom:7px}
.user-account-delete-warning p{margin:5px 0;color:#d7b4b0;font-size:12px;line-height:1.5}
.user-account-delete-icon{width:36px;height:36px;min-width:36px;border-radius:50%;display:grid;place-items:center;background:#4a1715;border:1px solid #87332d;color:#ff6d64;font-weight:900;font-size:20px}
.user-account-delete-modal .field label{color:#d7b4b0}
.user-account-delete-modal .field input{background:#091712;border-color:#5b2924;color:#fff}
.user-account-delete-modal .field input:focus{border-color:#ff5148;box-shadow:0 0 0 2px rgba(255,81,72,.12)}
.user-account-delete-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.user-account-delete-actions .btn.danger{background:#b52f29;color:#fff}
.user-account-delete-actions .btn.danger:disabled{opacity:.45;cursor:not-allowed}
.user-account-delete-modal .notice{background:#0d211c;color:#a8c5bd;border:1px solid #1b3933;margin-top:12px}
.user-account-delete-modal .notice.error{background:#241514;color:#ff7777;border-color:#4a2521}
@media(max-width:560px){.user-settings-actions{flex-wrap:wrap}.user-settings-actions-spacer{display:none}.user-account-delete-actions{flex-direction:column}.user-account-delete-actions .btn{width:100%}}
