:root{--blue:#0b66e4;--dark:#06213c;--green:#19b66a;--red:#ff4d4f;--orange:#fa8c16;--purple:#7b61ff}
*{box-sizing:border-box}body{margin:0;font-family:Arial,"Microsoft YaHei",sans-serif;background:#f4f7fb;color:#182033}
.login-page{min-height:100vh;background:linear-gradient(135deg,#06213c,#0b66e4);display:flex;align-items:center;justify-content:center;padding:30px}
.login-card{width:560px;max-width:96vw;background:#fff;border-radius:18px;padding:42px;box-shadow:0 24px 80px rgba(0,0,0,.25);text-align:center}
.login-brand{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:20px}.login-card h1{font-size:32px;margin:10px 0 6px}.login-card h2{font-size:22px;margin:0 0 16px;color:#555}.login-desc{line-height:1.7;color:#666;border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5;padding:18px 0}
.login-form{text-align:left;margin-top:22px}.login-form label{font-weight:bold;margin-top:12px}.login-form input{height:44px;font-size:16px}.login-form button{width:100%;height:46px;margin-top:22px;border:0;border-radius:8px;background:#0b66e4;color:white;font-weight:bold;font-size:17px;cursor:pointer}
.login-msg{margin-top:12px;color:#ff4d4f;text-align:center}.login-tip{margin-top:18px;color:#666;background:#f7f9fc;padding:12px;border-radius:8px}
#app{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,#06213c,#04182b);color:white;padding:24px 16px;position:fixed;top:0;bottom:0}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sun{font-size:42px;color:#ffd731}.logo{font-size:36px;font-weight:900;color:#1ca0ff;font-style:italic}.sub{font-size:12px;letter-spacing:2px;color:#70c4ff}
nav button{width:100%;background:transparent;color:white;border:0;text-align:left;padding:13px 16px;margin:5px 0;border-radius:8px;font-weight:bold;font-size:16px;cursor:pointer}
nav button span{font-size:12px;color:#a9c7e9;font-weight:400}nav button.active,nav button:hover{background:#0b66e4}
.side-footer{position:absolute;left:16px;right:16px;bottom:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:14px;font-size:12px;line-height:1.6}
main{margin-left:250px;width:calc(100% - 250px);padding:0 28px 30px}header{min-height:116px;background:white;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:5px solid #f0cf25;box-shadow:0 2px 8px rgba(0,0,0,.05)}
h1{margin:0;font-size:30px}header p{margin:8px 0 0;font-size:18px;color:#666}.header-right{display:flex;align-items:center;gap:12px}.lang-tag{padding:10px 14px;background:#eef5ff;color:#0b66e4;border-radius:8px;font-weight:bold}.account{border:1px solid #d9e2ef;border-radius:10px;padding:14px 22px;text-align:center;background:#fff}.logout{background:#ff4d4f;color:white;border:0;border-radius:8px;padding:12px 14px;cursor:pointer;font-weight:bold}
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin:24px 0}.card{background:white;padding:22px;border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.06);border-left:6px solid var(--blue)}.card span{color:#6b7280}.card strong{display:block;font-size:32px;margin-top:10px}.green{border-color:var(--green)}.red{border-color:var(--red)}.orange{border-color:var(--orange)}.purple{border-color:var(--purple)}
.layout{display:grid;grid-template-columns:2fr 1.35fr;gap:18px;margin-bottom:18px}.panel{background:white;border-radius:12px;padding:20px;box-shadow:0 4px 14px rgba(0,0,0,.06)}.wide{min-width:0}.panel-title{display:flex;justify-content:space-between;align-items:center}h2{margin:0 0 16px;font-size:20px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:11px;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:middle}th{background:#f7f9fc;color:#333}.status{font-weight:bold}.online{color:var(--green)}.offline{color:#999}.warning{color:var(--orange)}.error{color:var(--red)}.locked{color:#8b5cf6}
.mini{background:#0b66e4;color:white;border:0;padding:8px 12px;border-radius:6px;cursor:pointer}.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kv div{padding:12px;background:#f7f9fc;border-radius:8px}.kv b{display:block;font-size:20px;margin-top:6px}.ota-box{line-height:2}
.btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn-grid button{border:0;border-radius:8px;padding:13px;background:#0b66e4;color:white;font-weight:bold;cursor:pointer}.btn-grid button:nth-child(2n){background:#19b66a}.btn-grid button:nth-child(3n){background:#fa8c16}.btn-grid button:nth-child(4n){background:#ff4d4f}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9;align-items:center;justify-content:center}.modal-content{background:white;width:860px;max-width:95vw;border-radius:14px;padding:24px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}label{display:block;color:#444}input,select{width:100%;padding:10px;border:1px solid #d8dee9;border-radius:6px;margin-top:6px}
@media(max-width:1200px){.cards{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}.sidebar{position:relative;width:100%}#app{display:block}main{margin:0;width:100%}.side-footer{position:static;margin-top:20px}}