*{box-sizing:border-box}body{margin:0;font-family:Arial;background:#f4f7fb;color:#172033}a{color:#2563eb;text-decoration:none}.login{max-width:520px;margin:60px auto}.card{background:white;border:1px solid #d9e2ef;border-radius:14px;padding:16px;margin:16px;box-shadow:0 2px 8px #0001}.app{display:flex;min-height:100vh}.side{width:280px;background:#101827;color:#dce8ff;position:fixed;top:0;bottom:0;overflow:auto}.brand{padding:20px;border-bottom:1px solid #263241}.brand h2{margin:0;color:white}.brand p{color:#a9bdd6}.nav{padding:10px}.nav a{display:block;color:#dce8ff;padding:11px;border-radius:10px;margin:5px 0}.nav a:hover{background:#1d2b3d}.main{margin-left:280px;width:calc(100% - 280px)}.top{background:white;border-bottom:1px solid #d9e2ef;padding:14px 20px;display:flex;justify-content:space-between;position:sticky;top:0}.container{padding:18px}.grid,.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.module-card,.metric{display:block;background:white;border:1px solid #d9e2ef;border-radius:16px;padding:16px;color:#172033}.metric{border-left:5px solid #2563eb}.metric .num{font-size:27px;font-weight:800}input,select,textarea{width:100%;padding:10px;border:1px solid #cdd8e6;border-radius:9px;margin:5px 0 10px}textarea{min-height:75px}button,.btn{border:0;border-radius:9px;background:#0b1f3a;color:white;padding:9px 12px;margin:3px;cursor:pointer}.green{background:#0f8b5f}.scroll{overflow:auto;max-height:520px;border:1px solid #e2e8f0;border-radius:10px}table{width:100%;border-collapse:collapse;background:white}th,td{border:1px solid #e2e8f0;padding:8px;text-align:left;vertical-align:top}th{background:#edf4ff}.notice{background:#fff7df;border-left:5px solid #f59f00;border-radius:10px;padding:12px;margin:10px 0}.danger{background:#fff1f0;border-left-color:#dc2626}.success{background:#ecfdf5;border-left-color:#0f8b5f}video,canvas{max-width:220px;border-radius:12px;background:#000}@media(max-width:850px){.side{position:relative;width:100%}.app{display:block}.main{margin-left:0;width:100%}}