:root{--bg:#F3F5F8;--card:#fff;--ink:#141A26;--mut:#4B566B;--line:#E1E6EF;--brand:#0B6E70;--brand-d:#08494B;--nav:#101623;--danger:#A12B2B;--ok:#1F6B3E;--warn:#7A5400}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
.app{display:flex;flex-wrap:wrap;min-height:100vh}
nav{flex:0 0 220px;background:var(--nav);color:#C9D1E0;padding:20px 14px;display:flex;flex-direction:column;gap:6px}
nav .logo{font-weight:700;font-size:17px;color:#fff;padding:0 8px 16px}
nav button{background:none;border:0;color:#C9D1E0;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;min-height:44px}
nav button.on{background:#1C2638;color:#fff;font-weight:600}
nav button:hover{background:#18213A}
nav .sp{flex:1}
main{flex:1 1 640px;min-width:0;padding:24px 28px;display:flex;flex-direction:column;gap:18px}
h1{margin:0;font-size:22px}h2{margin:0 0 10px;font-size:15px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.col{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:14px}
label{display:block;font-weight:600;font-size:13px;margin:10px 0 4px}
input[type=text],input[type=password],input[type=number],select,textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid #C7CFDD;border-radius:10px;background:#fff}
textarea{resize:vertical;min-height:80px}
input[type=range]{width:100%}
button.b{min-height:40px;padding:0 16px;border-radius:10px;border:1px solid #C7CFDD;background:#fff;cursor:pointer;font-weight:600}
button.b:hover{border-color:var(--brand)}
button.p{background:var(--brand);border-color:var(--brand);color:#fff}button.p:hover{background:var(--brand-d)}
button.d{border-color:#D14343;color:var(--danger)}
button:disabled{opacity:.5;cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mut{color:var(--mut);font-size:12px}.ok{color:var(--ok);font-weight:600}.warn{color:var(--warn);font-weight:600}.bad{color:var(--danger);font-weight:600}
.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600;background:#E8ECF3}
.tag.ok{background:#E3F4EA}.tag.warn{background:#FFF1CC}.tag.bad{background:#FBE3E3}
video{width:100%;max-height:520px;background:#0D1424;border-radius:12px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--mut);font-size:12px}
.seg{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:#FAFBFD}
.kv{display:flex;gap:8px;margin-top:6px}.kv input{flex:1}
#toast{position:fixed;right:16px;bottom:16px;max-width:420px;display:flex;flex-direction:column;gap:8px;z-index:9}
#toast div{padding:10px 14px;border-radius:10px;background:#101623;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2)}
#toast div.e{background:#A12B2B}
.login{max-width:420px;margin:12vh auto;padding:0 16px}
@media(max-width:720px){nav{flex:1 1 100%;flex-direction:row;flex-wrap:wrap}nav .logo{width:100%}main{padding:16px}}
