:root{--brand:#4c6ef5;--brand-d:#3b5bdb;--bg:#f4f6fa;--line:#e6e9f0;--text:#1b2333;--text-2:#5a6478;--text-3:#8b94a8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.login-wrap{background:radial-gradient(1100px 480px at 12% -8%, #e8edff 0%, transparent 62%), radial-gradient(900px 420px at 92% 108%, #fff1e6 0%, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100%;padding:32px 16px;display:flex}.login-box{border:1px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:1.05fr .95fr;width:100%;max-width:940px;display:grid;overflow:hidden;box-shadow:0 24px 70px #141e3c1f}.login-intro{color:#fff;background:linear-gradient(160deg,#3b5bdb 0%,#5b7cfa 52%,#7c4dff 100%);flex-direction:column;padding:44px 40px;display:flex}.login-intro h1{letter-spacing:-.5px;margin:0 0 12px;font-size:24px;line-height:1.4}.login-intro p{opacity:.9;margin:0 0 26px;font-size:14px;line-height:1.8}.login-logo{background:#ffffff2e;border:1px solid #ffffff47;border-radius:13px;place-items:center;width:46px;height:46px;margin-bottom:22px;font-size:20px;font-weight:700;display:grid}.login-feat{flex-direction:column;gap:13px;margin-top:auto;display:flex}.login-feat div{opacity:.94;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;display:flex}.login-feat .dot{background:#ffe08a;border-radius:50%;flex:0 0 6px;width:6px;height:6px;margin-top:7px}.login-form{padding:44px 40px}.demo-accounts{margin-top:6px}.demo-accounts .da{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:9px;padding:7px 10px;font-size:12px;transition:all .13s;display:flex}.demo-accounts .da:hover{border-color:var(--brand);background:#f7f9ff}.demo-accounts .da b{font-weight:600}.demo-accounts .da .scope{color:var(--text-3);margin-left:auto;font-size:11px}.app-layout{min-height:100%}.app-sider{border-right:1px solid var(--line);background:#fff!important}.app-brand{border-bottom:1px solid #eef1f6;align-items:center;gap:10px;padding:16px 18px;display:flex}.app-brand .logo{color:#fff;background:linear-gradient(135deg,#5b7cfa,#7c4dff 60%,#f76707);border-radius:9px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:15px;font-weight:700;display:grid}.app-brand b{font-size:14px;line-height:1.3;display:block}.app-brand span{color:var(--text-3);letter-spacing:.5px;font-size:11px;display:block}.app-header{border-bottom:1px solid var(--line);align-items:center;gap:14px;line-height:normal;display:flex;background:#fff!important;height:58px!important;padding:0 22px!important}.app-content{padding:20px 22px 40px}.page-title{letter-spacing:-.3px;margin:0;font-size:17px;font-weight:650}.page-desc{color:var(--text-3);margin:3px 0 0;font-size:12px}.kpi-card{border:1px solid var(--line);background:#fff;border-radius:13px;height:100%;padding:15px 16px;position:relative;overflow:hidden}.kpi-card .k-t{color:var(--text-3);font-size:12px}.kpi-card .k-v{letter-spacing:-.8px;font-variant-numeric:tabular-nums;margin:5px 0 2px;font-size:24px;font-weight:700}.kpi-card .k-v small{color:var(--text-3);margin-left:2px;font-size:13px;font-weight:600}.kpi-card .k-f{color:var(--text-3);font-size:12px}.kpi-card:after{content:"";opacity:.7;background:#eef2fe;border-radius:50%;width:80px;height:80px;position:absolute;top:-24px;right:-24px}.kpi-card>*{position:relative}.up{color:#0ca678;font-weight:600}.down{color:#e03131;font-weight:600}.lead-name{font-weight:550}.mono{font-variant-numeric:tabular-nums}.muted{color:var(--text-3)}.kanban{align-items:flex-start;gap:12px;padding-bottom:10px;display:flex;overflow-x:auto}.kanban-col{border:1px solid var(--line);background:#fafbfd;border-radius:11px;flex-direction:column;flex:0 0 244px;max-height:660px;display:flex}.kanban-col-h{border-bottom:1px solid var(--line);align-items:center;gap:7px;padding:11px 13px;font-size:12px;font-weight:600;display:flex}.kanban-col-h .cnt{color:var(--text-3);font-size:11px;font-weight:400}.kanban-col-b{flex-direction:column;gap:8px;padding:9px;display:flex;overflow-y:auto}.kanban-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;padding:10px 11px;transition:all .13s}.kanban-card:hover{border-color:#b9c8f7;box-shadow:0 6px 20px #141e3c17}.ant-table-tbody>tr.hl-row>td{background:#fffbf2!important}.ant-table-tbody>tr.import-row-bad>td{background:#fff5f5!important}.ant-table-tbody>tr.audit-row-key>td{background:#fff7f6!important}.m-list{flex-direction:column;gap:9px;padding:10px;display:flex}.m-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:11px 12px;transition:all .12s}.m-card:active{background:#f7f9ff}.m-card-h{align-items:center;gap:8px;margin-bottom:5px;display:flex}.m-card-h b{font-size:15px}.m-card-h .sp{margin-left:auto}.m-card-b{color:var(--text-2);flex-direction:column;gap:3px;font-size:12px;display:flex}.m-card-f{color:var(--text-3);border-top:1px dashed #eef1f6;align-items:center;gap:8px;margin-top:7px;padding-top:7px;font-size:12px;display:flex}.m-attend-row{border-bottom:1px solid #f2f4f8;align-items:center;gap:8px;padding:10px 12px;display:flex}.m-attend-row:last-child{border-bottom:none}.m-attend-name{flex:auto;min-width:0}.m-attend-name b{font-size:15px}.m-attend-btns{flex:none;gap:6px;display:flex}.m-attend-btns button{border:1px solid var(--line);min-width:54px;height:38px;color:var(--text-2);background:#fff;border-radius:9px;font-size:14px;transition:all .12s}.m-attend-btns button[data-on="1"][data-v=present]{color:#fff;background:#16a34a;border-color:#16a34a}.m-attend-btns button[data-on="1"][data-v=leave]{color:#fff;background:#d97706;border-color:#d97706}.m-attend-btns button[data-on="1"][data-v=absent]{color:#fff;background:#dc2626;border-color:#dc2626}.m-actionbar{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fffffff5;align-items:center;gap:10px;display:flex;position:sticky;bottom:0}@media (width<=768px){.app-content{padding:12px 10px 28px}.app-header{gap:8px;height:52px!important;padding:0 10px!important}.page-title{font-size:17px}.page-desc{font-size:12px}.ant-table-wrapper .ant-table-thead>tr>th,.ant-table-wrapper .ant-table-tbody>tr>td{font-size:12px;padding:7px 8px!important}.ant-modal{max-width:calc(100vw - 20px);margin:8px auto}}@media (width<=900px){.login-box{grid-template-columns:1fr}.login-intro{display:none}}.app-sider .ant-menu-submenu>.ant-menu-submenu-title{color:var(--text)!important;height:38px!important;font-size:14px!important;font-weight:500!important;line-height:38px!important}.app-sider .ant-menu-submenu-title:hover{background:#f4f6fb!important}.app-sider .ant-menu-submenu-open>.ant-menu-submenu-title{color:var(--brand-d)!important;background:#f7f9ff!important}.app-sider .ant-menu-submenu-arrow{color:var(--text-3)}.app-sider .ant-menu-item{height:36px!important;font-size:14px!important;line-height:36px!important}.app-sider .ant-menu-sub .ant-menu-item{padding-left:44px!important}.app-sider .ant-menu-item-selected{font-weight:500}.app-sider .ant-menu-item-selected:after{display:none}.app-sider .ant-menu-item-selected:before{content:"";background:var(--brand);border-radius:2px;width:3px;height:16px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.app-sider .ant-menu-submenu-title,.app-sider .ant-menu-item{transition:background .15s,color .15s}.kpi-card{transition:box-shadow .16s,transform .16s;box-shadow:0 1px 2px #141e3c0a}.kpi-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px #141e3c17}.kpi-card:after{opacity:.55}.ant-card{box-shadow:0 1px 2px #141e3c08}.ant-table-wrapper .ant-table-thead>tr>th{font-weight:600!important}.ant-table-wrapper .ant-table-tbody>tr.ant-table-row:hover>td{background:#f7f9ff!important}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#d3d8e3;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#b9c0cf}::-webkit-scrollbar-track{background:0 0}.app-brand .logo{box-shadow:0 4px 12px #7c4dff3d}.app-brand b{letter-spacing:-.2px}.app-header{box-shadow:0 1px #141e3c05}
