:root{color:#1f2937;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f5f7fb}.app-bootstrap{min-height:100vh;display:grid;place-items:center;background:#f5f7fb}.app-shell{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;overflow-y:auto}.brand{height:64px;display:flex;align-items:center;gap:10px;color:#fff;padding:0 20px;font-weight:600;white-space:nowrap;overflow:hidden}.brand-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;color:#1677ff;background:#fff;font-size:17px;font-weight:800;flex:0 0 auto}.brand-mark.large{width:46px;height:46px;border-radius:12px;font-size:24px;margin-bottom:20px}.app-header{height:64px;padding:0 24px;background:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 4px #0f172a0d}.header-icon{font-size:18px;cursor:pointer}.user-entry{cursor:pointer}.app-content{padding:20px 24px 32px}.app-breadcrumb{margin-bottom:16px}.page-wrap{max-width:1600px;margin:0 auto}.page-heading{margin-bottom:20px;display:flex;justify-content:space-between;align-items:flex-start}.page-heading h3{margin:0 0 4px!important}.metric-card{position:relative;overflow:hidden}.metric-icon{float:right;padding:10px;border-radius:8px;font-size:20px}.metric-card .ant-statistic{padding-top:5px}.dashboard-row{margin-top:16px}.risk-dot{width:34px;height:34px;display:grid;place-items:center;border-radius:50%}.risk-dot.high{color:#ff4d4f;background:#fff1f0}.risk-dot.medium{color:#fa8c16;background:#fff7e6}.risk-dot.low{color:#1677ff;background:#e6f4ff}.freshness-card{margin-top:16px;display:flex;gap:8px;align-items:center;color:#667085}.freshness-time{margin-left:auto}.empty-icon{font-size:52px;color:#bfbfbf}.page-loading{display:grid;place-items:center;min-height:320px}.permission-tip,.table-toolbar{margin-bottom:16px}.modal-tip{margin-bottom:18px}.modal-actions{display:flex;justify-content:flex-end}.table-separator{border-left:1px solid #d9d9d9;height:14px;display:inline-block}.permission-groups{display:block;width:100%}.permission-group{padding:10px 0;border-bottom:1px solid #f0f0f0}.permission-group:last-child{border-bottom:0}.permission-group .ant-typography{display:block;margin-bottom:8px}.permission-group .ant-checkbox-wrapper{margin:0 16px 8px 0}.role-permission-view section{padding:12px 0;border-bottom:1px solid #f0f0f0}.role-permission-view section:last-child{border-bottom:0}.tag-list{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.permission-code{display:block;margin-top:3px;font-size:11px;opacity:.7}.login-screen{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 18% 25%,#dceeff 0,transparent 28%),#f6f9ff}.login-page{flex:1;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;padding:8vw 12vw 5vw}.login-intro h1{max-width:540px;margin:0 0 18px;font-size:clamp(28px,3.2vw,48px)}.login-intro p{max-width:480px;font-size:16px;color:#667085}.login-card{max-width:420px;justify-self:end;width:100%;box-shadow:0 18px 54px #0f172a1a}.login-tip{margin:18px 0}.legal-footer{min-height:54px;padding:16px 24px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 20px;color:#667085;background:#fff;border-top:1px solid #eef1f5;font-size:13px}.legal-footer a{color:#475467}.legal-footer a:hover{color:#1677ff}.legal-page-shell{min-height:100vh;display:flex;flex-direction:column;background:#f5f7fb}.legal-page-header{height:64px;padding:0 max(24px,calc((100vw - 1080px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #eef1f5}.legal-brand{display:flex;align-items:center;gap:10px;color:#1f2937;font-weight:600}.legal-page-content{width:min(100% - 32px,980px);margin:32px auto;flex:1}.legal-card{box-shadow:0 10px 32px #0f172a0f}.legal-card h1{font-size:30px}.legal-card h2{margin-top:28px;font-size:20px}.legal-card p{line-height:1.9}@media(max-width:768px){.app-content{padding:16px}.app-header{padding:0 14px}.app-header .ant-select{width:150px!important}.app-header .user-entry .ant-typography,.user-entry .anticon-down{display:none}.freshness-card{align-items:flex-start;flex-direction:column}.freshness-time{margin-left:0}.login-page{grid-template-columns:1fr;gap:36px;padding:48px 24px 32px}.login-card{justify-self:stretch}.login-intro h1{font-size:30px}.legal-page-header{padding:0 16px}.legal-brand>span:last-child{display:none}.legal-page-content{margin:16px auto}.legal-card .ant-card-body{padding:22px 18px}.legal-card h1{font-size:26px}}
