:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#1d2e40;background:#f4f6f9;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:0;border-radius:7px;background:#167b68;color:#fff;padding:11px 18px;cursor:pointer;font-weight:600}button:hover{filter:brightness(.94)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#edf1f5;color:#384c60}.danger{background:#fff0ed;color:#9e4033}input,select,textarea{display:block;border:1px solid #d7dee7;background:#fff;border-radius:6px;padding:11px;width:100%;color:#1d2e40;margin:7px 0 15px}input:focus,select:focus,textarea:focus{outline:2px solid #9bd6c7}label{font-weight:500}h1,h2,h3,p{margin-top:0}p{line-height:1.8;color:#647387}.eyebrow{font-size:11px;letter-spacing:2px;color:#7a8b9d;margin-bottom:10px}.brand{font-size:22px;font-weight:800;letter-spacing:1px}.login{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.login-intro{background:#102d36;padding:10vh 8vw;color:#fff;position:relative}.login-intro h1{font-size:clamp(32px,4vw,58px);line-height:1.4;margin-top:15vh}.login-intro p{color:#bdd3d7}.login-intro small{display:block;margin-top:70px;line-height:2;color:#87aaa9}.login-card{align-self:center;width:360px;max-width:85%;margin:auto}.login-card h2{font-size:28px}.login-card button{width:100%;margin-top:8px}#login-error,#modal-error{color:#ae3f37;margin:12px 0}aside{width:224px;background:#132c37;color:#f1f7f7;position:fixed;height:100vh;padding:32px 20px;display:flex;flex-direction:column}.subbrand{margin:10px 0 35px;color:#83a4ad;font-size:12px}nav button{width:100%;text-align:left;background:transparent;color:#b9cbd1;padding:13px 17px;margin-bottom:7px;font-weight:500}nav button.active{background:#234653;color:#fff;border-left:3px solid #54c2a5;border-radius:4px}.aside-bottom{margin-top:auto;font-size:12px;line-height:2.3}.aside-bottom span{color:#7f9da8;font-size:11px}main{margin-left:224px;padding:36px 42px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}header h1{font-size:28px;margin:0}.header-actions{display:flex;align-items:center;gap:18px;color:#728095}.banner{padding:20px 24px;background:#e7f1ef;border:1px solid #cce4df;border-radius:10px;margin-bottom:24px;line-height:1.8;color:#315d55}.banner strong{display:block;font-size:17px;margin-bottom:4px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.metric,.card{background:white;border:1px solid #e3e8ef;border-radius:10px;padding:22px}.metric span{color:#718093;font-size:13px}.metric b{display:block;font-size:34px;margin-top:13px;font-weight:650}.metric small{color:#8994a3}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card h3{font-size:17px;margin-bottom:14px}.card .row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #eff2f5;align-items:center}.badge{font-size:11px;padding:4px 8px;background:#f0f3f7;color:#728095;border-radius:4px;white-space:nowrap}.badge.good{background:#e5f5ec;color:#247650}.badge.warn{background:#fff2df;color:#987039}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filters input,.filters select{width:auto;max-width:190px;margin:0}.table-wrap{overflow:auto;border-radius:10px;border:1px solid #e3e8ef;background:#fff}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}th{background:#f9fafc;color:#758295;font-size:12px;font-weight:500;padding:15px}td{padding:15px;border-top:1px solid #eef1f5;font-size:13px}td button{font-size:12px;padding:7px 10px}.empty{text-align:center;padding:64px 20px;color:#8b97a7}.empty strong{display:block;color:#455a6a;font-size:18px;margin-bottom:12px}.muted{color:#8491a2;font-size:12px;line-height:1.7}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 16px}.section-title h2{font-size:18px;margin:0}footer{margin-top:45px;color:#95a1af;font-size:11px}.pagination{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.notice{padding:14px 18px;background:#fff8e9;color:#8b692b;border-radius:7px;margin:0 0 18px;line-height:1.8}#flash{padding:13px 18px;border:1px solid #baded3;background:#e4f5ee;color:#24614e;border-radius:8px;margin-bottom:18px}dialog{border:0;border-radius:12px;padding:28px;width:460px;max-width:92vw;box-shadow:0 20px 90px #0004}dialog::backdrop{background:#0c253966}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}dialog textarea{min-height:70px}.full{grid-column:1/-1}.preview{max-width:100%;max-height:55vh;border-radius:8px}.status-line{display:flex;justify-content:space-between;margin:12px 0}.settings{max-width:520px}pre{white-space:pre-wrap;word-break:break-all;background:#f2f5f7;padding:14px;border-radius:6px}button:focus-visible{outline:3px solid #66bfa9;outline-offset:3px}[hidden]{display:none!important}@media(max-width:1000px){main{padding:25px;margin-left:190px}aside{width:190px;padding:25px 14px}.grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.login{display:block}.login-intro{padding:30px}.login-intro h1{font-size:28px;margin:25px 0 15px}.login-intro small{display:none}.login-card{margin:40px auto}aside{position:static;width:100%;height:auto;padding:18px}nav{display:flex;overflow:auto;margin-top:15px}nav button{white-space:nowrap;width:auto;margin:0;padding:10px}.subbrand,.aside-bottom{display:none}main{margin:0;padding:22px 15px}header{gap:15px}.header-actions{gap:8px}header h1{font-size:24px}.grid{grid-template-columns:1fr}.metrics{gap:10px}.metric{padding:16px}.filters input,.filters select{max-width:155px}}
:root{--video-bg:#0d202b}.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.video-grid video{display:block;background:var(--video-bg);width:100%;aspect-ratio:16/9;border-radius:8px}.video-state{font-size:13px;min-height:24px;margin:13px 0;color:#3a655a}@media(max-width:900px){.video-grid{grid-template-columns:1fr}}
