*{box-sizing:border-box}body{margin:0;background:#0b1118;color:#e8eef5;font:14px/1.45 Arial,sans-serif}a{color:#7ec8ff;text-decoration:none}.topbar{height:58px;background:#101923;border-bottom:1px solid #273543;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.topbar b{font-size:17px;letter-spacing:.8px}.topbar span{font-size:11px;color:#8b9aaa;margin-left:14px;letter-spacing:1.5px}.topbar a{margin-left:18px}.login-bg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 15%,#1b3447,#080d13 65%)}.login-card{width:min(390px,92vw);padding:34px;background:#111c27;border:1px solid #2b3c4c;border-radius:14px;box-shadow:0 20px 70px #0008;text-align:center}.brand-mark{width:58px;height:58px;border-radius:15px;background:#087caa;display:grid;place-items:center;margin:auto;font-weight:bold;font-size:19px}.login-card h1{font-size:22px;margin:15px 0 0}.muted,.login-card .muted{color:#8d9baa}.login-card label,.form-grid label{display:block;text-align:left;margin:16px 0 6px;color:#b9c6d2}.login-card input,.form-grid input:not([type=checkbox]),.sidebar input{width:100%;padding:12px;border:1px solid #344656;border-radius:7px;background:#0a121a;color:#fff;outline:none}.login-card button,.panel button,.layout-buttons button{border:0;border-radius:7px;padding:11px 16px;background:#0786b8;color:#fff;font-weight:bold;cursor:pointer}.login-card button{width:100%;margin-top:22px}.login-card small{display:block;color:#708293;margin-top:20px}.alert{background:#542b30;padding:10px;border-radius:6px}.workspace{display:flex;height:calc(100vh - 58px)}.sidebar{width:245px;flex-shrink:0;background:#101923;border-right:1px solid #273543;padding:16px;display:flex;flex-direction:column;min-height:0}.sidebar h3{font-size:12px;letter-spacing:1.5px;color:#9aabba;margin:4px 0 14px}.sidebar input{padding:10px}.camera-list{overflow:auto;margin-top:12px}.camera-item{width:100%;display:flex;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid #24313d;background:transparent;color:#e5edf4;padding:11px 5px;cursor:pointer}.camera-item:hover{background:#1b2b39}.camera-item small{display:block;color:#8294a4;font-size:11px}.dot{width:8px;height:8px;background:#25c77a;border-radius:50%;display:inline-block;flex-shrink:0}.side-foot{margin-top:auto;padding-top:15px;color:#637687;font-size:10px;letter-spacing:1px}.viewer{flex:1;min-width:0;display:flex;flex-direction:column;padding:12px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 2px 12px}.toolbar .muted{margin-left:12px;font-size:12px}.layout-buttons{display:flex;gap:6px}.layout-buttons button{padding:8px 12px;background:#1b2b39;border:1px solid #344656}.layout-buttons button.active{background:#087fae;border-color:#149ed2}.layout-buttons .secondary{background:#273644}.camera-grid{flex:1;min-height:0;display:grid;gap:5px;background:#05090d}.grid-8{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.grid-16{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.grid-32{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.grid-64{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr))}.cam-slot{position:relative;background:#000;min-width:0;min-height:0;border:1px solid #283744;overflow:hidden}.cam-slot.selected{outline:2px solid #0da5df;outline-offset:-2px}.cam-slot video{width:100%;height:100%;object-fit:contain;background:#000}.cam-title{position:absolute;z-index:2;top:0;left:0;right:0;padding:5px 7px;background:linear-gradient(#000c,transparent);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cam-title small{color:#b5c3cf;margin-left:5px}.cam-state{position:absolute;bottom:4px;right:5px;background:#000a;padding:2px 5px;font-size:9px;color:#ffc45d}.cam-state.online{color:#35e69a}.cam-state.offline{color:#ff7474}.empty-slot{height:100%;display:grid;place-content:center;text-align:center;color:#526272;font-size:12px}.empty-slot small{font-size:9px}.admin-wrap{max-width:1200px;margin:25px auto;padding:0 18px}.admin-wrap h1{font-size:24px}.panel{background:#111c27;border:1px solid #2b3c4c;border-radius:10px;padding:20px;margin:18px 0}.panel h2{margin-top:0;font-size:18px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.form-grid label{margin:0}.checkline{display:flex!important;align-items:center;gap:8px}.camera-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:12px 0 18px}.camera-checks label{background:#0b141d;border:1px solid #2b3c4c;padding:9px;border-radius:6px}.camera-checks small{display:block;color:#8294a4;margin-left:22px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:12px}td,th{padding:10px;border-bottom:1px solid #293946;text-align:left}th{color:#9eb0bf;font-size:12px}.inline{display:inline}.small{padding:6px 9px!important;font-size:11px}.danger{background:#9b3b42!important}.notice{padding:11px;background:#123e35;border:1px solid #1d765f;border-radius:7px}.userbar{color:#aebdca}@media(max-width:800px){.workspace{height:auto;min-height:calc(100vh - 58px);flex-direction:column}.sidebar{width:100%;max-height:180px}.camera-list{display:flex;overflow:auto;gap:5px}.camera-item{min-width:130px;border:1px solid #293946}.side-foot{display:none}.viewer{height:calc(100vh - 250px);min-height:430px}.toolbar{align-items:flex-start;flex-direction:column}.layout-buttons{width:100%;flex-wrap:wrap}.layout-buttons button{flex:1}.grid-8,.grid-16{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.grid-32,.grid-64{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr))}.form-grid{grid-template-columns:1fr}.admin-wrap{padding:0 10px}.panel{padding:14px}}.form-grid select{width:100%;padding:12px;border:1px solid #344656;border-radius:7px;background:#0a121a;color:#fff;outline:none}
