:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#1b2839;background:#f4f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.shell{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr)}.sidebar{background:#192436;color:#9fadc0;padding:26px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;color:#f8fbff;font-size:15px;font-weight:750;padding:0 10px 30px}.brand-icon{display:grid;place-items:center;width:34px;height:34px;background:#3e6df2;color:white;border-radius:10px;font-size:18px}.brand small{display:block;color:#8fa0b5;font-weight:400;font-size:10px;margin-top:3px}.side-label{font-size:10px;letter-spacing:.12em;margin:18px 10px 9px;color:#798ba2}.nav{display:grid;gap:5px}.nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;font-size:13px;border-radius:8px}.nav a:hover{background:#24334a;color:white}.nav a.active{background:#304668;color:#fff}.nav .icon{font-size:15px;width:20px;text-align:center}.sidebar-bottom{margin:auto 10px 0;padding-top:30px;font-size:11px;line-height:1.7;color:#8393a7}.main{padding:28px 36px 60px;min-width:0;max-width:1700px;width:100%}.topline{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e6eaf0;padding-bottom:18px;margin-bottom:30px}.breadcrumbs{font-size:12px;color:#94a0ae}.userline{display:flex;gap:12px;align-items:center;font-size:12px;color:#5e6b7a}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e8efff;color:#4669d7;font-weight:700}.userline button{border:0;background:transparent;color:#68778a;font-size:12px;padding:6px}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}h1{font-size:26px;letter-spacing:-.03em;margin:0 0 8px}h2{font-size:16px;margin:0;color:#26364a}.sub,.hint{font-size:12px;color:#8290a0;line-height:1.7}.badge{font-size:11px;border:1px solid #dce5f3;border-radius:20px;color:#58749a;background:#f3f7ff;padding:7px 10px;white-space:nowrap}.columns{display:grid;grid-template-columns:minmax(300px,1fr) minmax(360px,1.05fr);gap:18px;align-items:start}.panel{background:#fff;border:1px solid #e6eaf0;border-radius:12px;padding:21px;box-shadow:0 2px 12px #1b355208;margin-bottom:17px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panelhead p{margin:5px 0 0}.btn{border:1px solid #4269df;background:#486fe6;color:white;border-radius:7px;padding:10px 14px;font-size:12px;font-weight:650}.btn:hover{background:#355bd1}.btn.secondary{background:white;border-color:#dce2e9;color:#556579}.btn.secondary:hover{background:#f3f6fa}.list{display:grid;gap:9px}.item{border:1px solid #e8edf2;border-radius:9px;background:white;display:flex;align-items:center;gap:12px;padding:10px;width:100%;text-align:left}.item:hover{background:#f8faff}.item.selected{border-color:#9db5fa;background:#f5f8ff}.item img{width:56px;height:62px;object-fit:cover;border-radius:7px;background:#e6ecf5}.item .info{flex:1;min-width:0}.name{display:block;color:#26364a;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta{display:block;color:#96a2af;font-size:11px;font-weight:400;margin-top:6px}.pill{font-size:10px;font-weight:500;color:#5677bb;background:#eaf0fc;border-radius:20px;padding:5px 8px;white-space:nowrap}.hiddenpill{color:#84909f;background:#f0f2f5}.form{display:grid;gap:15px}label{display:grid;gap:7px;color:#465568;font-size:12px;font-weight:600}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}input,textarea,select{width:100%;border-radius:7px;padding:10px 11px;border:1px solid #dbe2ea;background:#fff;color:#27374b;outline:none;font-size:13px}input:focus,textarea:focus,select:focus{border-color:#7493ed;box-shadow:0 0 0 3px #6285ef1c}input[readonly]{background:#f5f7fa;color:#8f9baa}textarea{resize:vertical;min-height:80px}.check{display:flex;align-items:center;gap:8px;font-size:12px}.check input{width:16px;height:16px;accent-color:#486fe6}.help{font-size:11px;color:#98a3b0;line-height:1.7}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.message{font-size:12px;line-height:1.5;color:#368366}.message.error{color:#cb5050}.empty{color:#95a1af;font-size:13px;padding:20px 2px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-weight:600;color:#95a0af;background:#f8f9fb}td,th{padding:12px;border-bottom:1px solid #eef1f5;white-space:nowrap}td{color:#42546a}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filters label{min-width:140px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{border:1px solid #e8edf3;border-radius:9px;padding:15px}.metric span{display:block;color:#8e9bab;font-size:11px}.metric strong{display:block;font-size:25px;color:#2a3b54;margin-top:9px}.metric small{color:#9ca7b4;font-size:10px}.cards-caption{font-size:11px;color:#9ca8b5;line-height:1.7;margin-top:15px}[hidden]{display:none!important}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#e6edff,transparent 45%),#f5f7fb}.login-card{width:min(430px,100%);background:white;padding:38px;border:1px solid #e6eaf1;border-radius:16px;box-shadow:0 16px 48px #304b8012}.login-card .brand{color:#202e40;padding:0 0 32px}.login-card .brand small{color:#9aa7b4}.login-card h1{font-size:24px}.login-card .form{margin-top:25px}.login-card .btn{width:100%;padding:12px}.login-note{margin:22px 0 0;font-size:11px;line-height:1.7;color:#9aa6b2}@media(max-width:900px){.shell{display:block}.sidebar{padding:15px 18px}.brand{padding:0}.side-label,.sidebar-bottom{display:none}.nav{display:flex;margin-top:13px;overflow-x:auto}.nav a{white-space:nowrap}.main{padding:22px 18px 45px}.columns{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.topline{margin-bottom:23px}.row{grid-template-columns:1fr}.panel{padding:16px}.pagehead{display:block}.badge{display:inline-block;margin-top:10px}.login-card{padding:26px}}
