html,body,#root{width:100%;min-height:100%;margin:0;padding:0}body{color:#111827;background:#f4f5f7;font-family:Arial,Helvetica,sans-serif}button,input{font-family:inherit}*{box-sizing:border-box}.layout{background:#f4f5f7;width:100%;min-height:100vh;display:flex}.sidebar{background:#fff;border-right:1px solid #e5e7eb;flex-shrink:0;width:260px;min-height:100vh;padding:20px 16px}.brand{border-bottom:1px solid #eef0f3;align-items:center;gap:12px;margin-bottom:18px;padding:6px 8px 22px;display:flex}.brand-mark{color:#fff;letter-spacing:.3px;background:#111827;border-radius:10px;place-items:center;width:44px;height:44px;font-size:13px;font-weight:700;display:grid}.brand h2{color:#111827;margin:0;font-size:17px;font-weight:700}.brand p{color:#6b7280;margin:4px 0 0;font-size:12px}.nav{flex-direction:column;gap:4px;display:flex}.nav-item{color:#4b5563;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;width:100%;padding:11px 12px;font-size:14px;font-weight:500}.nav-item:hover{color:#111827;background:#f3f4f6}.nav-item.active{color:#fff;background:#111827}.content{flex:1;min-width:0;padding:22px}.header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.header h1{color:#111827;letter-spacing:-.2px;margin:0;font-size:24px;font-weight:700}.header p{color:#6b7280;margin:6px 0 0;font-size:14px}.header-status{color:#374151;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:9px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;display:flex}.dot{background:#16a34a;border-radius:50%;width:8px;height:8px}.summary-grid{grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:16px;display:grid}.summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;justify-content:space-between;min-height:92px;padding:16px;display:flex}.summary-card span{color:#6b7280;font-size:13px;font-weight:500}.summary-card strong{color:#111827;font-size:26px;font-weight:700}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:16px;padding:18px}.panel-title{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.panel-title h3{color:#111827;margin:0;font-size:17px;font-weight:700}.panel-title p{color:#6b7280;margin:5px 0 0;font-size:13px}.tag{color:#374151;white-space:nowrap;background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;padding:6px 10px;font-size:12px}.tag.muted{color:#6b7280}.table-scroll{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid #eef0f3;padding:13px 10px;font-size:14px}th{color:#6b7280;background:#fff;font-size:12px;font-weight:700}td{color:#1f2937;font-weight:400}.right{text-align:right}.status{text-transform:capitalize;border-radius:999px;padding:5px 9px;font-size:12px}.status.success{color:#15803d;background:#ecfdf3}.status.neutral{color:#374151;background:#f3f4f6}.primary-small,.plain-small{cursor:pointer;border:0;border-radius:8px;margin-left:5px;padding:8px 10px;font-size:13px}.primary-small{color:#fff;background:#111827}.plain-small{color:#374151;background:#f3f4f6}.form{grid-template-columns:1fr 1fr 1fr auto;gap:10px;display:grid}.form input{color:#111827;border:1px solid #dfe3e8;border-radius:9px;outline:none;height:42px;padding:0 12px;font-size:14px}.form input:focus{border-color:#111827}.form button{color:#fff;cursor:pointer;white-space:nowrap;background:#111827;border:0;border-radius:9px;height:42px;padding:0 16px;font-size:14px}.empty-state{text-align:center;padding:44px 12px}.empty-state strong{color:#111827;margin-bottom:8px;font-size:15px;display:block}.empty-state p{color:#6b7280;margin:0;font-size:14px}.map-box{color:#64748b;text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;place-items:center;height:380px;padding:20px;font-size:14px;display:grid}.settings-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.setting-row{border-bottom:1px solid #eef0f3;justify-content:space-between;gap:12px;padding:13px 0;font-size:14px;display:flex}.setting-row span{color:#4b5563}.setting-row strong{color:#111827;text-align:right;font-weight:600}@media (width<=1180px){.summary-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=850px){.layout{display:block}.sidebar{border-bottom:1px solid #e5e7eb;border-right:0;width:100%;min-height:auto;padding:14px}.brand{margin-bottom:12px;padding:4px 4px 14px}.nav{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.nav-item{text-align:center;padding:10px 8px;font-size:13px}.content{padding:14px}.header{display:block}.header-status{width:fit-content;margin-top:12px}.summary-grid{grid-template-columns:repeat(2,1fr)}.form,.settings-grid{grid-template-columns:1fr}}@media (width<=520px){.brand h2{font-size:16px}.brand p{font-size:11px}.nav{grid-template-columns:repeat(2,1fr)}.summary-grid{grid-template-columns:1fr}.summary-card{min-height:82px}.panel{padding:14px}.panel-title{display:block}.tag{margin-top:10px;display:inline-block}table{min-width:700px}}.login-page{background:#f4f5f7;place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;width:100%;max-width:420px;padding:34px;box-shadow:0 18px 50px #11182714}.login-logo{color:#fff;background:#111827;border-radius:12px;place-items:center;width:52px;height:52px;margin-bottom:20px;font-size:14px;font-weight:700;display:grid}.login-card h1{color:#111827;margin:0;font-size:26px;font-weight:700}.login-card p{color:#6b7280;margin:8px 0 24px;font-size:14px}.login-form{gap:10px;display:grid}.login-form label{color:#374151;margin-top:6px;font-size:13px;font-weight:600}.login-form input{border:1px solid #dfe3e8;border-radius:10px;outline:none;height:44px;padding:0 12px;font-size:14px}.login-form input:focus{border-color:#111827}.login-form button{color:#fff;cursor:pointer;background:#111827;border:0;border-radius:10px;height:44px;margin-top:10px;font-size:14px;font-weight:600}.login-form button:disabled{opacity:.7;cursor:not-allowed}.login-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;padding:10px 12px;font-size:13px}.login-footer{color:#9ca3af;text-align:center;margin-top:22px;font-size:12px}.user-box{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:12px;padding:8px 8px 8px 12px;display:flex}.user-box span{color:#111827;font-size:13px;font-weight:600;display:block}.user-box small{color:#6b7280;margin-top:2px;font-size:11px;display:block}.user-box button{color:#fff;cursor:pointer;background:#111827;border:0;border-radius:8px;height:34px;padding:0 12px;font-size:13px}@media (width<=520px){.login-card{padding:24px}.user-box{justify-content:space-between;width:100%;margin-top:12px}}.code-box{align-items:center;gap:8px;display:flex}.code-box span{color:#111827;letter-spacing:.2px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;padding:6px 9px;font-size:13px;font-weight:600}.code-box button{color:#fff;cursor:pointer;background:#111827;border:0;border-radius:7px;padding:6px 9px;font-size:12px}td small{color:#6b7280;margin-top:3px;font-size:12px;display:block}td strong{color:#111827;font-size:13px}.download-link{color:#fff;background:#111827;border-radius:8px;padding:7px 10px;font-size:13px;text-decoration:none;display:inline-block}.last-updated{color:#6b7280;margin-top:6px;font-size:13px;display:block}.header-actions{align-items:center;gap:12px;display:flex}.refresh-btn{color:#111827;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px;font-size:14px}.filter-panel{margin-bottom:18px}.filter-grid{grid-template-columns:1.1fr .8fr .8fr 1.2fr auto;align-items:end;gap:12px;display:grid}.filter-field{flex-direction:column;gap:7px;display:flex}.filter-field label{color:#6b7280;font-size:13px}.filter-field input,.filter-field select{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:10px;outline:none;width:100%;padding:11px 12px}.filter-reset{color:#fff;cursor:pointer;background:#111827;border:1px solid #e5e7eb;border-radius:10px;padding:11px 14px}.date-cell{flex-direction:column;gap:5px;display:flex}.new-badge{color:#166534;background:#dcfce7;border-radius:999px;width:max-content;padding:3px 7px;font-size:11px}.download-link,.map-link{color:#fff;background:#111827;border-radius:8px;padding:7px 10px;font-size:13px;text-decoration:none;display:inline-block}.map-link{background:#2563eb}.muted-text{color:#9ca3af;font-size:13px}.status.danger{color:#991b1b;background:#fee2e2}.status.warning{color:#92400e;background:#fef3c7}.device-info{flex-direction:column;gap:3px;display:flex}.device-info small{color:#6b7280}@media (width<=900px){.filter-grid{grid-template-columns:1fr}.header-actions{flex-direction:column;align-items:stretch}}
