:root{color-scheme:light;--pr:#183470;--prd:#102655;--ac:#c9a24b;--bg:#fff;--tx:#1b2430;--card:#fff;--bd:#dfe5ee;--ibd:#b7c2d1;--inp:#fff;--th:#eef2fa;--zb:#f8fafd;--rb:#e8edf4;--mu:#5d6b7c;--lk:#183470;--cd:#eef2fa;
--ok:#e6f6ec;--okb:#7ac797;--okt:#14341f;--er:#fdeceb;--erb:#e08a84;--ert:#5a1511;--wa:#fff7de;--wab:#e3c15a;--wat:#4a3a00;--in:#e8f3fb;--inb:#8fc0e4;--int:#12354f;
--g1:#d9f2e1;--g1t:#14673a;--g2:#e6e9ed;--g2t:#47535f;--g3:#fde1df;--g3t:#9b1c13;--g4:#fff0c2;--g4t:#7a5a00}
*{box-sizing:border-box}
html{background:var(--bg);min-height:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx)}
a{color:var(--lk)}
.top{background:#fff;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:6px 22px;padding:10px 24px;flex-wrap:wrap}
.top a,.top .lk{color:var(--pr);text-decoration:none;background:none;border:0;font:inherit;font-weight:500;padding:4px 0;cursor:pointer}
.top a:hover,.top .lk:hover{text-decoration:underline}
.top form{margin:0}
.brand{display:flex;align-items:center}.brand img{display:block;height:46px;width:auto}
.sp{flex:1}.who{color:var(--mu);font-size:14px}
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(115deg,#0f2250 0%,#183470 55%,#2c56a8 100%);border-bottom:3px solid var(--ac)}
.hero::before{content:"";position:absolute;top:0;right:0;bottom:0;left:35%;background:repeating-linear-gradient(115deg,rgba(255,255,255,.08) 0 12px,transparent 12px 34px)}
.hero-in{position:relative;max-width:960px;margin:0 auto;padding:30px 16px 64px}
.hero h1{margin:0;color:#fff;font:600 28px/1.2 Georgia,"Times New Roman",serif;letter-spacing:.3px}
.hero p{margin:6px 0 0;color:#c9d6f0;font-size:15px}
main{flex:1;width:100%;max-width:960px;margin:-42px auto 34px;padding:0 16px;position:relative}
.card{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:22px 24px;margin-bottom:20px;box-shadow:0 1px 3px rgba(24,52,112,.06),0 8px 22px rgba(24,52,112,.05)}
h1,h2{margin:0 0 12px;color:var(--pr)}h2{font-size:19px}
.card>h2{padding-bottom:10px;margin-bottom:16px;border-bottom:1px solid var(--rb)}
label{display:block;margin:12px 0 4px;font-weight:600;font-size:14px}
input,select,textarea{width:100%;padding:10px 12px;font:inherit;color:var(--tx);border:1px solid var(--ibd);border-radius:6px;background:var(--inp)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--pr);box-shadow:0 0 0 3px rgba(24,52,112,.18)}
.btn{display:inline-block;margin-top:14px;padding:10px 22px;font:inherit;font-weight:600;color:#fff;background:var(--pr);border:0;border-radius:6px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--prd)}.btn.red{background:#b42318}.btn.gray{background:#5b6b7b}.btn.sm{margin:0;padding:5px 12px;font-size:14px}
.msg{padding:11px 14px;border-radius:6px;margin-bottom:14px;border:1px solid}
.ok{background:var(--ok);border-color:var(--okb);color:var(--okt)}.err{background:var(--er);border-color:var(--erb);color:var(--ert)}
.warn{background:var(--wa);border-color:var(--wab);color:var(--wat)}.info{background:var(--in);border-color:var(--inb);color:var(--int)}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}
.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.tabs a{padding:9px 18px;border-radius:20px;background:#fff;border:1px solid var(--bd);text-decoration:none;color:var(--pr);font-weight:500;box-shadow:0 1px 3px rgba(24,52,112,.08)}
.tabs a:hover{background:var(--th)}
.tabs a.on{background:var(--pr);color:#fff;border-color:var(--pr)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}
th{background:var(--th);color:var(--pr);text-align:left}th,td{padding:9px 10px;border-bottom:1px solid var(--rb)}
tr:nth-child(even) td{background:var(--zb)}
td form{display:flex;gap:6px;margin:0}td input{width:150px;padding:5px 8px}
.badge{display:inline-block;padding:2px 9px;border-radius:12px;font-size:12px;font-weight:600}
.b-on{background:var(--g1);color:var(--g1t)}.b-off{background:var(--g2);color:var(--g2t)}.b-lock{background:var(--g3);color:var(--g3t)}.b-temp{background:var(--g4);color:var(--g4t)}
code{background:var(--cd);padding:2px 6px;border-radius:4px}
.muted{color:var(--mu);font-size:14px}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.plist a{display:block;padding:14px 14px 14px 56px;border:1px solid var(--bd);border-radius:8px;color:var(--pr);font-weight:600;text-decoration:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23183470' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E") no-repeat 16px center/26px 26px}
.plist a:hover{border-color:var(--pr);box-shadow:0 4px 14px rgba(24,52,112,.14)}
main.authwrap{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:none;margin:0;padding:44px 16px}
.authwrap .msg{width:100%;max-width:880px}
.auth{display:flex;width:100%;max-width:880px;background:#fff;border:1px solid var(--bd);border-radius:14px;overflow:hidden;box-shadow:0 14px 44px rgba(24,52,112,.16)}
.auth-art{position:relative;flex:1.05;display:flex;align-items:flex-end;padding:44px 36px;color:#fff;overflow:hidden;background:linear-gradient(150deg,#0f2250,#183470 60%,#2c56a8)}
.auth-art::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 14px,transparent 14px 38px)}
.auth-art>div{position:relative}
.auth-art h2{margin:0 0 10px;color:#fff;font:600 26px/1.25 Georgia,"Times New Roman",serif}
.auth-art p{margin:0 0 18px;color:#c9d6f0}
.auth-art ul{list-style:none;margin:0;padding:0}
.auth-art li{position:relative;padding:6px 0 6px 26px;color:#e6edfa}
.auth-art li::before{content:"";position:absolute;left:0;top:12px;width:11px;height:11px;border-radius:50%;background:var(--ac)}
.auth-form{flex:1;padding:40px 36px}
.auth-form .logo{display:block;width:240px;max-width:100%;height:auto;margin:0 0 4px}
.auth-form h1{margin:18px 0 4px;font:600 22px/1.2 Georgia,"Times New Roman",serif}
.auth-form p.s{margin:0 0 14px;color:var(--mu);font-size:14px}
.foot{padding:16px;border-top:1px solid var(--bd);background:#fff;color:var(--mu);font-size:13px;text-align:center}
@media(max-width:700px){.auth{flex-direction:column}.auth-art{padding:26px 24px}.auth-art ul{display:none}.auth-form{padding:28px 24px}}
@media(max-width:600px){main{margin-top:-34px}.card{padding:16px}.top{padding:8px 14px}.brand img{height:38px}.hero-in{padding:22px 16px 54px}.hero h1{font-size:24px}td input{width:110px}}
/* ===== login page ===== */
main.authwrap{position:relative;justify-content:center;padding:56px 16px;background:linear-gradient(180deg,#fff 0%,#f2f5fa 100%)}
main.authwrap::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#102655,#2c56a8);box-shadow:0 2px 0 var(--ac)}
.auth{max-width:900px;min-height:540px;border-radius:16px;box-shadow:0 22px 56px rgba(24,52,112,.15),0 2px 6px rgba(24,52,112,.06)}
.auth-art{flex:1 1 46%;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:48px 40px 0;
  background:url(login-art.svg) no-repeat left bottom/100% auto,
  radial-gradient(circle at 88% 8%,rgba(120,165,235,.38),transparent 46%),
  linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px) 0 0/34px 34px,
  linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px) 0 0/34px 34px,
  linear-gradient(160deg,#0e2150,#183470 62%,#244b95)}
.auth-art::before{content:none}
.auth-art>div{position:static}
.auth-art h2{margin:0 0 12px;font:600 27px/1.25 Georgia,"Times New Roman",serif;color:#fff;border:0;padding:0}
.auth-art p{margin:0 0 22px;max-width:300px;color:#c9d6f0}
.auth-art ul{display:block;list-style:none;margin:0;padding:0}
.auth-art li{position:relative;padding:7px 0 7px 30px;color:#e6edfa;font-size:15px}
.auth-art li::before{content:"";position:absolute;left:0;top:9px;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a24b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center/12px 12px}
.auth-form{flex:1 1 54%;display:flex;flex-direction:column;justify-content:center;padding:44px 48px}
.auth-form .logo{width:230px;margin:0 auto 22px}
.auth-form h1{margin:0 0 4px;text-align:center;font:600 24px/1.2 Georgia,"Times New Roman",serif;color:var(--pr)}
.auth-form p.s{margin:0 0 10px;text-align:center;color:var(--mu);font-size:14px}
.auth-form input{padding:12px 14px 12px 44px;background-color:#fff;background-repeat:no-repeat;background-position:14px center;background-size:18px 18px}
.auth-form input::placeholder{color:#9aa7b8}
.auth-form input.ico-user{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a8aa3' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
.auth-form input.ico-lock{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a8aa3' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E")}
.auth-form .btn{width:100%;margin-top:20px;padding:13px;font-size:16px;letter-spacing:.3px;background:linear-gradient(#1d3f85,#163068);box-shadow:0 3px 8px rgba(24,52,112,.28)}
.auth-form .btn:hover{background:linear-gradient(#183a7a,#102655)}
.auth-form .help{margin:18px 0 0;text-align:center;color:var(--mu);font-size:13px}
@media(max-width:700px){.auth{min-height:0}.auth-art{display:none}.auth-form{padding:30px 22px}main.authwrap{padding:28px 14px}}