*{box-sizing:border-box}html,body{margin:0;background:#101217;color:#eef1f5;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;min-height:100%}button,select,input{font:inherit}.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;min-height:100vh;gap:10px;padding:10px}.camera-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;min-height:calc(100vh - 20px)}.camera-card{background:#191d24;border:1px solid #303743;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-width:0}.camera-title{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:#20252d}.cam-state{font-size:13px;color:#9eabbc}.video-wrap{position:relative;background:#050607;flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.video{width:100%;height:100%;object-fit:contain;display:block;min-height:180px}.offline{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0b0d11;color:#d3dae4;font-weight:700}.offline.hidden{display:none}.rec-badge{position:absolute;top:9px;left:9px;background:rgba(155,0,0,.82);border-radius:6px;padding:5px 8px;font-weight:800;color:white}.controls{display:flex;gap:7px;padding:8px;background:#20252d}.controls button{flex:1}.side-panel{background:#191d24;border:1px solid #303743;border-radius:10px;padding:14px;min-width:0}.side-panel h2{margin:0 0 10px}.metric{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid #2a3039}.metric strong{font-size:20px}.motion-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.motion-row span{font-weight:700}.motion-on{background:#b20d24!important;color:white!important}.motion-off{background:#525b68!important;color:white!important}.small{font-size:12px;color:#aab4c2;margin-top:7px;line-height:1.45}.side-panel select,.side-panel button,.login-card button,.login-card input{width:100%;margin-top:8px;border:0;border-radius:8px;padding:11px}.side-panel select{background:#f6f7f9;color:#15171a}.side-panel button,.controls button{border:0;border-radius:7px;padding:9px 8px;background:#e9edf2;color:#17191d;font-weight:700;cursor:pointer}.side-panel button:hover,.controls button:hover{filter:brightness(.94)}.record-start{background:#e9edf2!important}.record-stop{background:#b20d24!important;color:#fff!important}.logout{margin-top:8px!important;background:#343b46!important;color:#fff!important}.message{margin-top:10px;min-height:24px;font-size:13px;word-break:break-word}.hidden{display:none!important}hr{border:0;border-top:1px solid #303743;margin:14px 0}.login-body{display:grid;place-items:center;min-height:100vh;padding:16px}.login-card{width:min(420px,100%);background:#191d24;border:1px solid #303743;border-radius:14px;padding:24px}.login-card h1{margin-top:0}.login-card input{background:white;color:#111;font-size:22px;letter-spacing:1px}.primary{background:#e9edf2!important;color:#111!important}.big{font-size:18px}.error{margin-top:14px;background:#501722;color:#ffd9df;border-radius:8px;padding:10px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.camera-grid{min-height:auto;grid-template-rows:auto auto}.camera-card{min-height:300px}.side-panel{margin-bottom:10px}}
@media(max-width:620px){.camera-grid{grid-template-columns:1fr}.camera-card{min-height:290px}.controls{flex-wrap:wrap}.controls button{min-width:30%}}
