:root{--blue:#1758b6;--blue-dark:#123d7b;--navy:#182d4b;--ink:#21334a;--muted:#748298;--line:#e3e9f1;--paper:#f5f7fb;--pale:#eaf1fc;--red:#b83e40}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:14px/1.5 "Microsoft YaHei UI","PingFang SC",sans-serif;color:var(--ink);background:var(--paper)}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button{border:1px solid transparent;border-radius:5px;min-height:38px;padding:8px 16px;background:transparent;color:inherit;white-space:nowrap}a{color:var(--blue);text-decoration:none}button.primary{background:var(--blue);color:#fff;font-weight:600;box-shadow:0 2px 2px #144c9d0d}button.primary:hover{background:#104ba2}button.secondary{border-color:var(--line);background:#fff}button.secondary:hover{border-color:#b7c9e1;background:#f9fbff}input,textarea{width:100%;padding:10px 12px;background:#fff;border:1px solid #d9e1ed;border-radius:5px;color:var(--ink);min-width:0}input:focus,textarea:focus{outline:2px solid #1758b61a;border-color:var(--blue)}label{display:block;font-weight:500;margin:19px 0 8px}h1,h2,p{margin:0}h1{font-size:29px;line-height:1.3;font-weight:650;letter-spacing:-.5px}h2{font-size:19px;font-weight:650}p.subtext{color:var(--muted);margin-top:10px}.overline{font:600 10px/1.3 "Segoe UI",sans-serif;letter-spacing:1.7px;color:var(--blue);margin-bottom:9px}.hidden{display:none!important}.brand-square{width:36px;height:36px;display:inline-grid;place-items:center;flex:none;background:var(--blue);color:#fff;border-radius:7px;font:bold 25px "Segoe UI",sans-serif;letter-spacing:-2px;padding-right:2px}.login-screen{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(125deg,#edf3fc 0%,#f6f8fc 50%,#fff 100%)}.login-brand{display:flex;align-items:center;gap:12px;color:var(--navy);font-size:17px;font-weight:600;margin-bottom:34px}.login-form{width:416px;background:#fff;border:1px solid var(--line);padding:36px 38px;border-radius:8px}.login-form label{margin-top:23px}.login-form .primary{display:flex;justify-content:space-between;width:100%;margin-top:10px}.login-bottom{font-size:10px;letter-spacing:1.3px;color:#8b98ab;margin-top:24px}.message{min-height:20px;color:var(--red);font-size:12px;margin-top:14px;overflow-wrap:anywhere}.app{display:flex;height:100dvh;overflow:hidden}.sidebar{width:212px;flex:none;background:#fff;border-right:1px solid var(--line);padding:30px 16px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;color:var(--navy);font:bold 23px/1.15 "Segoe UI",sans-serif;margin:0 12px 43px}.brand-sub{display:block;font:11px/1.6 "Microsoft YaHei UI",sans-serif;letter-spacing:1px;margin-top:3px;color:#6c7b90}.nav-caption{font-size:10px;letter-spacing:1px;color:#9aa7b8;margin:0 16px 12px}.nav{text-align:left;color:#728199;width:100%;padding:12px 16px;margin:2px 0;display:flex;justify-content:space-between}.nav.active{color:var(--blue);background:var(--pale);font-weight:600}.count{font-size:11px;background:#dce9ff;border-radius:4px;padding:1px 6px}.sidebar-bottom{margin-top:auto;font-size:11px;color:#96a0b0;padding:16px 12px 0;border-top:1px solid var(--line)}.status-dot{display:inline-block;width:6px;height:6px;background:#4b9a77;border-radius:50%;margin-right:7px}.text-button{display:block;font-size:12px;padding:12px 0 0;min-height:20px;color:#6c7e98}main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:68px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:#fff;border-bottom:1px solid var(--line);font-size:12px;color:#8792a3}.slash{padding:0 12px;color:#c3ccda}.topbar #breadcrumb{color:#445775}.download-client{font-size:12px}.view{flex:1;min-height:0;padding:30px 36px 20px;display:flex;flex-direction:column}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:18px;flex:none}.toolbar{display:flex;gap:14px;align-items:center;margin-bottom:16px;flex:none}.toolbar input{width:290px;background:#fff}.toolbar span{color:#9ba5b4;font-size:12px;margin-left:auto}.table-wrap{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}th{text-align:left;background:#fafbfe;color:#8391a6;font-weight:500;height:40px;padding:8px 18px;border-bottom:1px solid var(--line)}td{height:47px;padding:8px 18px;border-bottom:1px solid #eff2f7;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}th:first-child{width:20%}th:nth-child(2){width:16%}th:nth-child(3){width:19%}th:nth-child(4){width:20%}th:nth-child(5){width:10%}th:nth-child(6){width:15%}.version-label{font-weight:650;color:#2b4464;font-size:13px}.badge{font-size:10px;padding:3px 7px;border-radius:4px;display:inline-block;background:#eef5f1;color:#48816c;white-space:nowrap}.badge.off{background:#f0f2f5;color:#8c97a6}.badge.error{background:#fff4e8;color:#b77b38}.row-button{color:var(--blue);padding:4px 0;min-height:25px;font-size:12px}.pagination{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#8491a4;margin-top:16px;flex:none}.pagination>div{display:flex;align-items:center;gap:12px}.pagination button{padding:5px 11px;min-height:31px;font-size:11px}.empty{text-align:center;color:#93a0b2;padding:40px}.settings-form{background:#fff;border:1px solid var(--line);border-radius:6px;padding:28px 32px;max-width:640px}.settings-form h2{margin-bottom:10px}.settings-form .primary{margin-top:22px}.field-hint{font-size:11px;color:#8796aa;line-height:1.7;margin-top:9px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.toggle-field{display:flex;align-items:center;padding-top:26px}.checkbox{display:flex;align-items:center;gap:10px;font-weight:400;margin:0;white-space:nowrap}.checkbox input{width:17px;height:17px;accent-color:var(--blue)}.editor{position:fixed;inset:0 0 0 auto;width:460px;padding:28px 30px;background:#fff;z-index:5;border-left:1px solid var(--line);box-shadow:-12px 0 45px #16284412;display:flex;flex-direction:column}.editor-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line)}.icon-button{font-size:27px;color:#91a0b5;padding:0 8px;line-height:1}.editor form{display:flex;flex-direction:column;flex:1;min-height:0}.editor textarea{resize:none;line-height:1.7;font-size:12px}.editor-actions{margin-top:auto;display:flex;gap:10px;padding-top:22px;flex-wrap:wrap}.danger-text{font-size:12px;color:var(--red);margin-left:auto;padding-right:0}.backdrop{position:fixed;inset:0;background:#172d4c28;z-index:4}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);padding:12px 22px;border-radius:5px;background:#213b5e;color:#fff;z-index:8;font-size:12px;max-width:80vw}#audit-view th{width:auto}#audit-view th:first-child{width:35%}@media(max-height:780px){.view{padding-top:22px}.page-heading{margin-bottom:18px}h1{font-size:25px}.topbar{height:58px}.editor{padding:20px 26px}.editor label{margin-top:12px}.editor textarea{height:80px}.editor .field-hint{margin-top:5px}.editor-heading{padding-bottom:14px}}@media(max-width:1000px){.sidebar{width:178px;padding-left:10px;padding-right:10px}.brand{font-size:20px;margin-left:6px}.brand-sub{font-size:10px}.topbar{padding:0 24px}.view{padding-left:24px;padding-right:24px}td,th{padding-left:12px;padding-right:12px}}@media(max-width:720px){.sidebar{width:132px;padding:22px 8px}.brand{font-size:0;margin:0 6px 30px}.brand-sub{display:none}.nav{font-size:12px;padding:10px}.nav-caption{margin-left:10px}.sidebar-bottom{padding:12px 5px}.topbar{padding:0 18px}.topbar>span{display:none}.view{padding:20px 18px}.page-heading{align-items:flex-start}.page-heading .primary{padding:7px 10px;font-size:12px}h1{font-size:23px}p.subtext{font-size:11px}.toolbar input{width:180px}.toolbar span{display:none}td,th{font-size:10px;padding:8px}.version-label{font-size:11px}.badge{font-size:9px;padding:2px 4px}.editor{width:min(460px,100vw)}.login-form{width:min(416px,90vw);padding:30px}.settings-form{padding:20px}}
