:root{--blue:#1976D2;--bg:#F4F7FB;--card:#fff;--text:#202124;--line:#DCE5EF;--green:#159947;--red:#D63D3D}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--text)}
header{background:var(--blue);color:white;padding:16px 24px;display:flex;justify-content:space-between;align-items:center}
header a{color:white;margin-left:18px;text-decoration:none}.container{max-width:1200px;margin:24px auto;padding:0 16px}
.card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px;box-shadow:0 4px 15px rgba(0,0,0,.04)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px}label{display:block;font-weight:700;margin:12px 0 6px}
.btn{display:inline-block;background:var(--blue);color:white;padding:9px 13px;border-radius:8px;border:0;text-decoration:none;cursor:pointer}
.btn.secondary{background:#687887}.badge{padding:5px 9px;border-radius:99px;color:#fff;font-size:12px;font-weight:700}.online{background:var(--green)}.offline{background:var(--red)}.unknown{background:#7C8994}
table{width:100%;border-collapse:collapse;background:white}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left}th{background:#EDF4FB}
.login{max-width:420px;margin:80px auto}.alert{background:#FFECEC;color:#8A2020;padding:12px;border-radius:8px}.actions{display:flex;gap:8px;flex-wrap:wrap}
video{width:100%;background:#000;border-radius:10px}
hr{border:0;border-top:1px solid var(--line);margin:22px 0}
.help{font-size:12px;color:#6B7785;margin-top:5px}.notice{padding:12px 14px;border-radius:8px;margin:12px 0}.notice.success{background:#EAF8EF;color:#116A35;border:1px solid #BDE6CB}.notice.error{background:#FFECEC;color:#8A2020;border:1px solid #F2C2C2}
