:root{font-synthesis:none;text-rendering:optimizeLegibility;color:#1f1f1f;background:#f4f7fb}@font-face{font-family:Poppins;src:url(/assets/poppins-500-BblA7dQf.ttf) format("truetype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Poppins;src:url(/assets/poppins-700-CNzhNbUJ.ttf) format("truetype");font-style:normal;font-weight:700;font-display:swap}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}.app-layout{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;overflow:hidden;background:#fff!important;border-right:1px solid #f0f0f0;box-shadow:1px 0 4px #1018280a;z-index:10}.brand{height:60px;display:flex;align-items:center;gap:12px;padding:0 16px;color:#172033;border-bottom:1px solid #f0f0f0}.brand.collapsed{padding:0 16px;justify-content:center}.brand-logo{width:38px;height:38px;flex:none;object-fit:contain}.brand strong{display:block;font-family:STKaiti,KaiTi,serif;font-size:18px;letter-spacing:4px}.brand span{display:block;margin-top:1px;color:#98a2b3;font-size:9px;letter-spacing:1.2px}.sider-menu-scroll{position:absolute;inset:60px 0 68px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overscroll-behavior:contain}.sider-menu-scroll::-webkit-scrollbar{display:none}.app-sider .ant-menu{min-height:100%;margin-top:0;padding:12px 8px;border-inline-end:none!important;background:#fff!important}.app-sider .ant-menu-sub{background:#fff!important}.app-sider .ant-menu-item,.app-sider .ant-menu-submenu-title{width:100%;margin:4px 0}.app-sider .ant-menu-item-selected{color:#1677ff!important;background:#e6f4ff!important}.sider-account{position:absolute;left:0;right:0;bottom:0;min-height:68px;width:100%;padding:12px 16px;display:flex;align-items:center;gap:10px;border:0;border-top:1px solid #f0f0f0;color:#344054;background:#fff;text-align:left;cursor:pointer}.sider-account:hover,.sider-account.active{background:#f7fbff}.sider-account>div:not(.ant-avatar){min-width:0;flex:1;display:flex;flex-direction:column}.sider-account strong{font-size:13px}.sider-account span{overflow:hidden;color:#8c8c8c;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.sider-account>.anticon{color:#98a2b3}.app-header{position:sticky;top:0;z-index:9;height:60px!important;min-height:60px;line-height:normal!important;padding:0 22px!important;display:flex;align-items:center;gap:10px;background:#fff!important;border-bottom:1px solid #f0f0f0}.collapse-button{font-size:18px}.header-search{width:min(420px,42vw);display:flex;align-items:center;border:1px solid #d9e2ef;background:#f8fafc;border-radius:7px;padding-right:9px}.header-search kbd{flex:none;padding:2px 7px;color:#98a2b3;background:#fff;border:1px solid #e4e7ec;border-radius:4px;font-size:11px;box-shadow:0 1px 1px #0000000a}.app-header>.ant-space{margin-left:auto}.header-divider{height:26px;width:1px;background:#f0f0f0}.profile-menu{cursor:pointer}.profile-avatar{background:#e6f4ff!important;color:#1677ff!important;font-weight:700}.profile-copy b,.profile-copy small{display:block;line-height:1.4}.profile-copy small{color:#87928e;font-size:11px}.app-content{padding:20px 22px 34px;overflow:hidden}.page-heading{margin:0 0 16px}.page-heading .ant-typography{margin:4px 0 2px!important}.page-heading h2.ant-typography{color:#172033;font-size:24px;font-weight:650;line-height:1.3}.page-heading-title-row{display:flex;align-items:center;gap:8px}.eyebrow{color:#1677ff!important;font-size:10px;font-weight:700;letter-spacing:1.5px}.section-row{margin-top:12px}.login-page{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;display:grid;grid-template-columns:49.1% 50.9%;grid-template-rows:minmax(0,1fr);overflow:hidden;color:#000;background:#fff;font-family:Poppins,PingFang SC,Microsoft YaHei,sans-serif}.login-panel{min-width:0;min-height:0;height:100%;position:relative;overflow:hidden;background:#fff}.login-form-wrap{width:min(404px,calc(100% - 48px));position:absolute;top:50%;margin-left:clamp(48px,11.4vw,175px);transform:translateY(-50%)}.login-heading{margin:0;text-align:left}.login-heading h1{margin:0;color:#000;font-family:inherit;font-size:32px;font-weight:500;line-height:1.5}.login-heading p{margin:5px 0 0;color:#000;font-size:16px;font-weight:500;line-height:1.65}.login-alert{margin:14px 0 -28px;font-family:PingFang SC,Microsoft YaHei,sans-serif}.login-form{margin-top:42px}.login-field+.login-field{margin-top:20px}.login-field>label,.login-password-label label{display:block;color:#000;font-size:14px;font-weight:500;line-height:20px}.login-password-label{display:flex;align-items:center;justify-content:space-between}.login-password-label button,.login-support button{padding:0;border:0;color:#0c2a92;background:transparent;font-family:inherit;cursor:pointer}.login-password-label button{font-size:13px;font-weight:500;line-height:19px}.login-form .ant-form-item{margin:0}.login-form .ant-input,.login-form .ant-input-affix-wrapper{height:42px;min-height:42px;border-color:#d9d9d9;border-radius:10px;color:#000;font-family:inherit;font-size:14px;font-weight:500;box-shadow:none}.login-form .ant-input{padding:9px 12px}.login-form .ant-input-affix-wrapper{padding:0 10px}.login-form .ant-input-affix-wrapper .ant-input{height:40px;min-height:40px;padding:0}.login-form .ant-input::placeholder{color:#d9d9d9;opacity:1}.login-form .ant-input:hover,.login-form .ant-input-affix-wrapper:hover{border-color:#9daa94}.login-form .ant-input:focus,.login-form .ant-input-affix-wrapper-focused{border-color:#3a5b22;box-shadow:0 0 0 2px #3a5b221f}.login-form .ant-form-item-explain-error{padding:2px 4px 0;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:10px}.login-remember{margin-top:14px;color:#000;font-family:inherit;font-size:13px;font-weight:500;line-height:19px}.login-remember .ant-checkbox{transform:scale(.72);transform-origin:left center}.login-remember .ant-checkbox+span{padding-inline-start:0}.login-remember .ant-checkbox-checked .ant-checkbox-inner{border-color:#3a5b22;background:#3a5b22}.login-submit{height:42px;margin-top:14px;border-color:var(--login-accent)!important;border-radius:10px;background:var(--login-accent)!important;font-family:inherit;font-size:13px;font-weight:700;box-shadow:none;transition:border-color 1.2s ease,background-color 1.2s ease,box-shadow .2s ease}.login-submit:not(:disabled):hover{border-color:var(--login-accent-hover)!important;background:var(--login-accent-hover)!important}.login-divider{width:400px;max-width:100%;height:18px;position:relative;display:grid;place-items:center;margin-top:32px}.login-divider:before{content:"";width:100%;height:1px;position:absolute;background:#f0f0f0}.login-divider span{position:absolute;padding:0 4.5px;color:#000;background:#fff;font-size:9px;font-weight:500;line-height:14px}.login-socials{display:grid;grid-template-columns:1fr;margin-top:16px}.login-socials button{width:100%;height:40px;min-width:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:4px 16px;border:1px solid #d9d9d9;border-radius:10px;color:#000;background:#fff;font-family:inherit;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.login-socials button:hover{border-color:#9daa94;background:#fbfcfa}.login-socials button:disabled{color:#8c8c8c;background:#fafafa;cursor:wait}.login-socials .anticon{width:20px;height:20px;display:inline-grid;place-items:center;flex:none;font-size:18px}.login-support{margin:17.77px 0 0;color:#000;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;font-weight:500;line-height:23px;text-align:center}.login-support button{margin-left:5px;font-size:14px}.login-visual{min-width:0;min-height:0;width:100%;height:100%;position:relative;overflow:hidden;border-radius:45px 0 0 45px;background:#f3f1ed}.login-visual img{width:100%;height:100%;position:absolute;inset:0;display:block;object-fit:cover;opacity:0;transform:scale(1.015);transition:opacity 1.2s ease,transform 6s ease}.login-visual img.is-active{opacity:1;transform:scale(1)}@media(max-width:960px){.login-page{grid-template-columns:1fr}.login-panel{display:grid;place-items:center;padding:32px 24px}.login-form-wrap{width:min(404px,100%);position:static;margin:0;transform:none}.login-visual{display:none}}@media(max-width:480px){.login-panel{padding:36px 20px}.login-heading h1{font-size:28px}.login-heading p{font-size:14px}.login-form{margin-top:32px}.login-socials{margin-top:14px}.login-socials button{width:100%}}@media(max-height:660px){.login-heading h1{font-size:26px;line-height:1.3}.login-heading p{margin-top:3px;font-size:13px;line-height:1.5}.login-form{margin-top:24px}.login-field+.login-field{margin-top:14px}.login-form .ant-input,.login-form .ant-input-affix-wrapper,.login-submit{height:36px;min-height:36px}.login-form .ant-input-affix-wrapper .ant-input{height:34px;min-height:34px}.login-remember,.login-submit{margin-top:9px}.login-divider{margin-top:16px}.login-socials{margin-top:10px}.login-socials button{height:36px}.login-socials .anticon{width:18px;height:18px;font-size:16px}.login-support{margin-top:10px}}@media(prefers-reduced-motion:reduce){.login-submit,.login-visual img{transition:none}}.metric-card{height:100%;min-height:118px;overflow:hidden;position:relative;border:1px solid #e8edf5;border-radius:9px;background:#fff;box-shadow:0 1px 2px #1018280a,0 4px 12px #10182809;transition:border-color .2s,box-shadow .2s,transform .2s}.metric-card:hover{border-color:#c9ddf8;box-shadow:0 2px 4px #1018280d,0 10px 24px #10182813;transform:translateY(-1px)}.metric-card .ant-card-body{padding:11px 14px 10px}.metric-card-head,.metric-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.metric-card-head .ant-typography{color:#667085;font-size:12px;font-weight:500}.metric-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;color:#1677ff;background:#e6f4ff;font-size:14px}.metric-tone-blue .metric-icon{color:#08979c;background:#e6fffb}.metric-tone-gold .metric-icon{color:#d46b08;background:#fff7e6}.metric-value{min-height:26px;display:flex;align-items:baseline;gap:4px;margin-top:4px;color:#172033;font-size:23px;font-weight:650;line-height:1.1;letter-spacing:-.4px}.metric-value small{color:#667085;font-size:12px;font-weight:500;letter-spacing:0}.metric-card-foot{margin-top:6px}.metric-card .ant-tag{margin:0;font-size:10px;line-height:18px}.metric-note{display:block;overflow:hidden;margin-top:4px;color:#667085;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.mini-bars{height:17px;display:flex;align-items:flex-end;gap:3px}.mini-bars i{width:3px;min-height:4px;display:block;border-radius:2px;background:#91caff}.metric-tone-blue .mini-bars i{background:#87e8de}.metric-tone-gold .mini-bars i{background:#ffd591}.panel-card{height:100%;border-color:#e8edf5;background:#fff;box-shadow:0 1px 2px #1018280a}.panel-card .ant-card-head{min-height:54px;padding:0 22px;border-bottom:0}.panel-card .ant-card-head-title{padding:16px 0;color:#172033;font-size:15px;font-weight:650;line-height:1.35}.card-title-block{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.card-title-block>.ant-typography:first-child{color:#172033;font-size:15px;font-weight:650;line-height:1.35}.card-subtitle{display:block;margin-top:2px;font-size:11px;font-weight:400;color:#8c9692}.positive{color:#1677ff;font-size:12px}.embedded-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.page-surface-card>.ant-card-body{padding:14px}.full-width{width:100%}.dashboard-surface-card>.ant-card-body{padding:16px}.system-modal .ant-modal-content{height:min(680px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;padding:0;border-radius:14px;box-shadow:0 24px 70px #10182833}.system-modal .ant-modal-header{margin:0;padding:20px 24px 16px;border-bottom:1px solid #eef1f5}.system-modal .ant-modal-title{color:#172033;font-size:17px;font-weight:650}.system-modal .ant-modal-close{top:16px;inset-inline-end:18px}.system-modal .ant-modal-body{min-height:0;flex:1;padding:20px 24px;overflow-y:auto;overscroll-behavior:contain}.system-modal .ant-modal-footer{margin:0;padding:14px 24px 18px;border-top:1px solid #eef1f5}.member-create-modal .ant-modal-content{height:min(500px,calc(100vh - 48px))}.member-create-modal .ant-modal-body{padding-block:14px}.member-create-modal .ant-form-item{margin-bottom:14px}.member-account-divider{margin:4px 0 14px!important}.member-account-section{display:grid;gap:12px;padding-bottom:4px}.member-account-section .ant-typography:first-child{color:#172033;font-size:14px}.member-account-section .ant-typography:last-child{font-size:12px;line-height:1.6}.member-account-switch-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.member-account-switch-row>span{display:grid;gap:2px}.member-account-fields{padding-top:2px}.resizable-table .ant-table-thead>tr>th{position:relative}.resizable-table .ant-table-thead>tr>th:not(:last-child):before{display:none!important}.table-column-resizer{width:12px;position:absolute;z-index:4;top:0;right:-6px;bottom:0;cursor:col-resize;touch-action:none}.table-column-resizer:after{content:"";width:1px;position:absolute;top:25%;right:5px;bottom:25%;background:#d9e2ef;transition:width .15s,top .15s,bottom .15s,background .15s}.table-column-resizer:hover:after,.is-resizing-table-column .table-column-resizer:after{width:2px;top:14%;bottom:14%;background:#1677ff}.is-resizing-table-column{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.filter-bar .ant-input-affix-wrapper,.filter-bar .ant-select-single,.filter-bar .ant-picker{min-height:34px}.echart{width:100%}.chart-default{height:250px}.chart-donut,.chart-compact{height:190px}.chart-room-type{height:280px}.chart-world-map{height:260px}.analytics-primary-row>.ant-col{display:flex}.analytics-primary-row .analytics-equal-card{width:100%;height:100%}.analytics-primary-row .analytics-equal-card>.ant-card-body{height:358px;overflow:hidden}.analytics-primary-row .analytics-trend-chart{height:310px}.system-template-icon{color:#1677ff;font-size:16px}.appointment-calendar-table .ant-table-cell{vertical-align:top}.appointment-day-cell{min-height:86px;display:grid;align-content:start;gap:5px}.appointment-day-cell>b{color:#667085;font-size:11px;font-weight:600}.appointment-booking-chip{overflow:hidden;padding:5px 7px;border-left:3px solid #1677ff;border-radius:5px;background:#e6f4ff;color:#0958d9;font-size:11px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.occupancy-card .ant-card-body{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(170px,1.1fr);align-items:center;gap:14px;padding:16px}.occupancy-card .chart-donut{width:100%}.legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;color:#697772;font-size:12px}.legend-grid span{min-height:58px;display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;column-gap:7px;padding:10px;border:1px solid #edf1f6;border-radius:8px;background:#fafcff}.legend-grid small{overflow:hidden;color:#667085;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.legend-grid b{color:#172033;font-size:16px}.dot{width:8px;height:8px;margin-right:7px;border-radius:50%;display:inline-block}.dot.vacant{background:#1677ff}.dot.occupied{background:#ff4d4f}.dot.cleaning{background:#faad14}.dot.service{background:#8c8c8c}.activity-timeline{margin-top:8px}.activity-timeline .ant-typography{margin:1px 0!important;font-size:12px}.activity-timeline .ant-timeline-item{padding-bottom:21px}.guest-avatar{background:#e6f4ff!important;color:#1677ff!important;font-size:11px!important}.staff-avatar{background:#e6f4ff!important;color:#1677ff!important}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.filter-bar{margin-bottom:14px}.page-surface-card .ant-table-wrapper .ant-table-thead>tr>th{padding:9px 12px;font-size:12px;line-height:18px}.page-surface-card .ant-table-wrapper .ant-table-tbody>tr>td{padding:8px 12px;font-size:12px;line-height:18px}.page-surface-card .ant-table-wrapper .ant-btn.ant-btn-sm{height:26px;padding-inline:8px}.room-board .ant-card-body{padding:24px}.room-legend{color:#667085;font-size:12px}.room-state{width:9px;height:9px;display:inline-block;margin-right:7px;border-radius:2px}.room-state.空闲,.room-tile.空闲{--room-color: #1677ff;--room-bg: #e6f4ff}.room-state.已预订{--room-color: #722ed1;--room-bg: #f9f0ff}.room-state.已入住,.room-tile.已入住{--room-color: #ff4d4f;--room-bg: #fff2f0}.room-state.保洁中,.room-tile.保洁中{--room-color: #d48806;--room-bg: #fff7e6}.room-state.维护中,.room-tile.维护中{--room-color: #8c8c8c;--room-bg: #fafafa}.room-state{background:var(--room-color)}.room-group{padding-top:28px}.room-group+.room-group{margin-top:24px;border-top:1px solid #f0f0f0}.room-group .ant-typography{margin:0 0 12px!important}.room-grid{display:grid;grid-template-columns:repeat(10,minmax(72px,1fr));gap:10px}.room-tile{min-height:76px;padding:10px;border:1px solid color-mix(in srgb,var(--room-color) 38%,white);border-left:3px solid var(--room-color);border-radius:6px;background:var(--room-bg);color:var(--room-color);text-align:left;cursor:pointer}.room-tile span,.room-tile small,.room-tile em{display:block}.room-tile span{font-size:16px;font-weight:700}.room-tile small{margin-top:10px;font-size:10px}.room-tile em{overflow:hidden;margin-top:4px;color:#667085;font-size:10px;font-style:normal;white-space:nowrap;text-overflow:ellipsis}.room-calendar-wrap{margin-top:22px;overflow:auto;border:1px solid #e8edf5;border-radius:8px}.room-calendar-grid{display:grid;min-width:1080px;background:#fff}.calendar-corner,.calendar-day,.calendar-room,.calendar-cell{min-height:52px;border-right:1px solid #edf0f5;border-bottom:1px solid #edf0f5}.calendar-corner{position:sticky;left:0;z-index:4;display:flex;align-items:center;padding:0 14px;color:#667085;background:#fafafa;font-size:11px;font-weight:600}.calendar-day{position:sticky;top:0;z-index:3;display:grid;place-items:center;align-content:center;gap:2px;color:#667085;background:#fafafa;font-size:10px}.calendar-day b{color:#344054;font-size:11px}.calendar-day.today{background:#e6f4ff}.calendar-day.today b{color:#1677ff}.calendar-day.pre-opening{color:#98a2b3;background:#f2f4f7}.calendar-day.pre-opening b{color:#98a2b3}.calendar-room{position:sticky;left:0;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:7px 14px;background:#fff}.calendar-room b{color:#172033;font-size:13px}.calendar-room span{overflow:hidden;margin-top:2px;color:#98a2b3;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.calendar-cell{display:grid;place-items:center;align-content:center;gap:3px;min-width:86px;padding:5px;cursor:default}.calendar-cell span{font-size:9px;font-weight:600}.calendar-cell small{width:100%;overflow:hidden;font-size:9px;text-align:center;white-space:nowrap;text-overflow:ellipsis}.calendar-cell.空闲{color:#0958d9;background:#e6f4ff}.calendar-cell.已预订{color:#531dab;background:#f9f0ff}.calendar-cell.已入住{color:#cf1322;background:#fff1f0}.calendar-cell.保洁中{color:#ad6800;background:#fff7e6}.calendar-cell.维护中{color:#595959;background:#f5f5f5}.calendar-cell.未开放{color:#98a2b3;background:#f2f4f7}.approval-layout{display:grid;grid-template-columns:minmax(330px,.75fr) minmax(520px,1.25fr);gap:16px}.approval-list .ant-card-body{padding:0}.approval-item{padding:18px 22px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .2s}.approval-item:hover,.approval-item.selected{background:#f7fbff}.approval-item.selected{box-shadow:inset 3px 0 #1677ff}.approval-item .ant-typography{margin:7px 0 5px!important}.approval-item p{font-size:12px}.approval-item>.ant-flex:last-child{font-size:11px}.approval-detail .ant-card-body{padding:28px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0;padding:20px;background:#f8fafc;border:1px solid #eaecf0;border-radius:7px}.detail-grid span{display:grid;gap:5px}.detail-grid small{color:#98a2b3}.approval-steps{display:flex;align-items:center;margin:20px 0 28px;overflow-x:auto}.approval-steps span{min-width:max-content;display:flex;align-items:center;gap:6px;color:#98a2b3;font-size:11px}.approval-steps span.done{color:#1677ff}.approval-steps span.current{padding:8px 11px;background:#e6f4ff;color:#1677ff;border-radius:5px;font-weight:600}.approval-steps>i{width:38px;min-width:18px;height:1px;margin:0 8px;background:#d9e2ef}.approval-comment{padding-top:20px;border-top:1px solid #f0f0f0}.approval-comment .ant-flex{margin-top:12px}.rank-list{display:grid}.rank-list>div{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f0f0f0}.rank-list>div>b{color:#1677ff}.rank-list span{display:grid}.rank-list small{color:#98a2b3;font-size:10px}.compact-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compact-stats span{padding:14px;background:#f8fafc}.compact-stats b,.compact-stats small{display:block}.compact-stats b{font-size:20px;color:#1677ff}.compact-stats small{margin-top:3px;color:#98a2b3}.region-list{display:grid;gap:16px}.region-list span{display:flex;justify-content:space-between;padding-bottom:9px;border-bottom:1px solid #f0f0f0;color:#667085}.region-list b{color:#172033}.workflow-shell{height:calc(100vh - 177px);min-height:620px;display:grid;grid-template-columns:222px minmax(500px,1fr) 282px;background:#fff;border:1px solid #e5eaf1;border-radius:9px;overflow:hidden;box-shadow:0 4px 14px #1018280d}.node-library,.node-settings{padding:20px;background:#fff}.node-library{border-right:1px solid #e8ecf2}.node-settings{border-left:1px solid #e8ecf2}.node-library .ant-typography,.node-settings .ant-typography{margin:4px 0 14px!important}.library-label,.field-label{display:block;margin:22px 0 9px;color:#667085;font-size:10px;font-weight:700;letter-spacing:.6px}.library-node{width:100%;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;margin-bottom:7px;padding:10px;border:1px solid #e5eaf1;border-radius:8px;background:#fff;color:#344054;text-align:left;cursor:grab}.library-node:hover{border-color:#91caff;color:#1677ff;background:#f7fbff}.library-node .anticon:last-child{color:#98a2b3;font-size:10px}.workflow-canvas{position:relative;overflow:auto;background-color:#f7f9fc;background-image:radial-gradient(#cfd7e5 1px,transparent 1px);background-size:20px 20px}.canvas-toolbar{position:sticky;z-index:2;top:0;display:flex;justify-content:space-between;align-items:center;padding:12px;background:#ffffffe6;border-bottom:1px solid #e8ecf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.flow-track{width:430px;min-height:100%;margin:0 auto;padding:58px 20px;display:flex;flex-direction:column;align-items:center}.flow-node{width:280px;min-height:66px;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid #dfe5ee;border-left:3px solid #1677ff;border-radius:9px;box-shadow:0 4px 14px #10182812}.flow-node>span{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:7px;background:#e6f4ff;color:#1677ff}.flow-node>div{flex:1}.flow-node small,.flow-node b{display:block}.flow-node small{margin-bottom:4px;color:#98a2b3;font-size:9px}.flow-node b{color:#172033;font-size:12px}.flow-node.start{border-left-color:#1677ff}.flow-node.start>span{background:#e6f4ff;color:#1677ff}.flow-node.branch{border-left-color:#4096ff}.flow-node.branch>span{background:#f0f5ff;color:#0958d9}.flow-line{width:1px;height:34px;background:#91a3bd}.branch-lines{width:226px;height:32px;position:relative;border-top:1px solid #91a3bd}.branch-lines:before{content:"";position:absolute;left:50%;top:-32px;height:32px;border-left:1px solid #91a3bd}.branch-lines i{position:absolute;top:0;height:32px;border-left:1px solid #91a3bd}.branch-lines i:first-child{left:0}.branch-lines i:last-child{right:0}.branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.branch-grid .flow-node{width:208px}.node-settings .ant-select{width:100%}.settings-tip{display:flex;gap:10px;margin-top:28px;padding:13px;background:#e6f4ff;color:#1677ff;border-radius:7px}.settings-tip span{display:grid;gap:3px}.settings-tip small{color:#667085;line-height:1.5}.setting-card{height:100%;position:relative;padding:20px;border:1px solid #e8edf5;border-radius:10px;background:#fff}.setting-card .setting-icon{width:40px;height:40px;display:grid;place-items:center;background:#e6f4ff;color:#1677ff;border-radius:8px;font-size:18px}.setting-card .ant-typography{margin:16px 0 5px!important}.setting-card .ant-btn{display:block;margin:16px 0 0 -15px}.customer-link{display:flex;align-items:center;gap:9px;padding:0;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.customer-link span{display:flex;flex-direction:column}.customer-link b{color:#1677ff}.customer-link small{color:#98a2b3}.customer-detail-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px}.customer-profile-card{height:max-content;text-align:center}.customer-profile-card h4{margin:14px 0 3px}.profile-tags{margin-top:14px}.profile-facts{display:grid;gap:14px;margin:22px 0;padding:18px 0;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;text-align:left}.profile-facts span{display:flex;justify-content:space-between;gap:12px}.profile-facts small{color:#98a2b3}.profile-facts b{color:#344054;font-size:12px}.customer-facts{margin:0}.customer-detail-main{min-width:0}.level-config{display:grid;gap:16px;padding-top:10px}.level-config label{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px}.customer-notes .ant-timeline{margin-top:8px}.customer-notes .ant-timeline-item{padding-bottom:26px}.customer-notes .ant-typography{margin:6px 0 0!important}.member-detail-card{width:100%}.member-detail-card h4{margin:0 0 3px!important}.member-detail-back{flex:none;color:#475467}.staff-detail-layout{display:grid;grid-template-columns:minmax(230px,30%) minmax(0,1fr);gap:16px;width:100%}.staff-detail-left,.staff-detail-right{min-width:0;display:grid;align-content:start;gap:16px}.staff-profile-summary{text-align:center}.staff-profile-summary .ant-card-body{min-height:236px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.staff-profile-summary h4{margin:4px 0 0!important}.staff-profile-summary .ant-typography{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.staff-english-name{color:#1677ff;font-size:12px}.staff-portrait-card .ant-card-body{width:100%;aspect-ratio:693 / 919;display:grid;place-items:center;overflow:hidden;padding:0;background:#f7f9fc}.staff-portrait-card img{width:100%;height:100%;object-fit:cover;object-position:center top}.staff-attendance-card .ant-card-body{padding:0}.attendance-calendar{overflow:hidden;border-radius:0 0 10px 10px;background:#fff}.attendance-toolbar{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;border-bottom:1px solid #edf1f6;background:linear-gradient(90deg,#fbfcfe,#f7faff)}.attendance-month-switcher{display:flex;align-items:center;gap:5px}.attendance-month-switcher strong{min-width:90px;color:#172033;font-size:13px;text-align:center}.attendance-legend{display:flex;align-items:center;justify-content:flex-end;gap:18px}.attendance-legend span{display:inline-flex;align-items:center;gap:6px;color:#667085;font-size:10px}.attendance-legend i{width:9px;height:9px;border-radius:50%;background:#d0d5dd;box-shadow:0 0 0 3px #d0d5dd2e}.attendance-legend .normal i{background:#38a169;box-shadow:0 0 0 3px #38a16924}.attendance-legend .warning i{background:#d99a18;box-shadow:0 0 0 3px #d99a1824}.attendance-legend .absent i{background:#e5484d;box-shadow:0 0 0 3px #e5484d21}.attendance-month{min-height:398px;padding:18px 16px 22px}.attendance-weekdays,.attendance-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.attendance-days{row-gap:8px}.attendance-days>*{justify-self:center}.attendance-weekdays{margin-bottom:7px}.attendance-weekdays span{padding:5px 0;color:#667085;font-size:9px;font-weight:600;text-align:center}.attendance-weekdays .weekend{color:#98a2b3}.attendance-day{width:50px;height:50px;min-width:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #e7ecf2;border-radius:50%;color:#475467;background:#fbfcfe;transition:transform .18s,border-color .18s,box-shadow .18s}.attendance-day:not(.empty):hover{z-index:1;border-color:#b8c8dc;box-shadow:0 7px 18px #10182814;transform:translateY(-1px)}.attendance-day b{font-size:12px;line-height:1}.attendance-day small{overflow:hidden;max-width:100%;padding:0 4px;color:#98a2b3;font-size:8px;white-space:nowrap;text-overflow:ellipsis}.attendance-day.normal{border-color:#a7dfbc;color:#237b4b;background:linear-gradient(145deg,#f0fbf4,#e5f7ec)}.attendance-day.normal small{color:#34885a}.attendance-day.warning{border-color:#f0d28a;color:#a66800;background:linear-gradient(145deg,#fffaf0,#fff2cf)}.attendance-day.warning small{color:#ad7411}.attendance-day.absent{border-color:#f3b3b5;color:#b4232a;background:linear-gradient(145deg,#fff5f5,#ffe7e8)}.attendance-day.absent small{color:#c43a40}.attendance-day.weekend:not(.normal):not(.warning):not(.absent){border-style:dashed;color:#98a2b3;background:#f8fafc}.attendance-day.today{outline:2px solid rgba(22,119,255,.34);outline-offset:1px}.attendance-day.empty{border-color:transparent;background:transparent}.staff-activity-card .ant-card-body{min-height:356px;padding-top:24px}.staff-activity-card .ant-timeline-item{padding-bottom:30px}.staff-activity-card .ant-timeline-item-content>div{display:grid;gap:5px}.account-credentials{display:grid;gap:12px;margin-top:18px}.account-credentials>span{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:14px;padding:12px 14px;border:1px solid #e8edf5;border-radius:8px;background:#f8fafc}.org-chart-shell{position:relative;min-height:520px;overflow:auto;background:#fff}.org-chart-shell:fullscreen{width:100vw;height:100vh;padding:24px;background:#f7f9fc}.org-fullscreen-button{position:sticky;top:0;left:100%;z-index:8}.org-chart{width:max-content;min-width:100%;padding:34px 24px 48px}.org-root{position:relative;width:184px;margin:0 auto 44px}.org-root.has-children:after{content:"";position:absolute;left:50%;top:100%;height:26px;border-left:1px solid #b9cbe2}.org-root .org-node{width:184px;height:104px;position:relative;border-color:#91caff;background:#f7fbff;box-shadow:0 4px 14px #1677ff12}.org-root-logo{width:22px;height:22px;object-fit:contain}.org-sibling-row{--org-row-gap: 12px;position:relative;display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--org-row-gap);width:max-content}.org-level-one{--org-row-gap: 20px;margin-inline:auto}.org-branch,.org-child-branch,.org-team-branch{position:relative;width:max-content;display:flex;flex-direction:column;align-items:center}.org-connected{position:relative}.org-connected:before{content:"";position:absolute;left:50%;top:-18px;height:18px;border-left:1px solid #c6d4e5}.org-sibling-row>.org-connected:after{content:"";position:absolute;left:calc(var(--org-row-gap) / -2);right:calc(var(--org-row-gap) / -2);top:-18px;border-top:1px solid #c6d4e5}.org-sibling-row>.org-connected:first-child:after{left:50%}.org-sibling-row>.org-connected:last-child:after{right:50%}.org-sibling-row>.org-member-node.org-connected:before{top:-19px;height:19px}.org-sibling-row>.org-member-node.org-connected:after{top:-19px}.org-node{width:132px;min-height:72px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:7px;padding:8px 9px;border:1px solid #dce5f0;border-radius:8px;color:#344054;background:#fff;text-align:left;box-shadow:0 1px 2px #1018280a}.org-department-branch{position:relative;width:max-content;display:flex;flex-direction:column;align-items:center}.org-department-branch.has-children>.org-node:not(.org-add-node):after{content:"";position:absolute;left:50%;top:100%;height:12px;border-left:1px solid #c6d4e5}.org-department-branch>.org-node{width:144px;height:104px;position:relative;gap:0}.org-node-title{min-width:0;display:flex;align-items:center;justify-content:center;gap:5px}.org-node-title>.anticon{color:#1677ff}.org-node-title b{overflow:hidden;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.org-department-branch>.org-node>.org-node-title{flex:0 0 38px;border-bottom:1px solid #e5eaf1;font-family:KaiTi,STKaiti,楷体,serif}.org-department-branch>.org-node>.org-node-title b{font-size:15px;font-weight:700}.org-node-toggle{position:absolute;left:50%;bottom:-9px;z-index:2;width:18px;height:18px;display:grid;place-items:center;padding:0;border:1px solid #d9e2ef;border-radius:50%;color:#667085;background:#fff;font-size:8px;cursor:pointer;transform:translate(-50%)}.org-node-toggle:hover{border-color:#91caff;color:#1677ff}.org-leaders{min-height:0;max-height:55px;display:grid;gap:3px;overflow-y:auto;padding-top:5px;border-top:1px solid #eef1f5;scrollbar-width:thin}.org-department-branch>.org-node>.org-leaders{flex:1;align-content:center;max-height:none;padding-top:3px;border-top:0}.org-leader{min-height:24px;display:flex;align-items:center;justify-content:center;gap:6px}.org-leader[draggable=true]{cursor:grab}.org-leader[draggable=true]:active{cursor:grabbing;opacity:.68}.org-leader b{min-width:0;overflow:hidden;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.org-node-drop-ready{border-color:#69b1ff;box-shadow:0 0 0 3px #1677ff1a}.org-drop-overlay{position:absolute;z-index:5;inset:0;display:grid;overflow:hidden;border-radius:7px;background:#fffffff0}.org-drop-overlay button{border:0;color:#0958d9;background:transparent;font-size:11px;font-weight:650;cursor:copy}.org-drop-overlay button+button{border-top:1px dashed #91caff}.org-drop-overlay button:hover{background:#e6f4ff}.org-children-row{margin-top:30px}.org-root-children{--org-row-gap: 20px;margin-inline:auto}.org-level-two{--org-row-gap: 10px}.org-level-three,.org-members{--org-row-gap: 8px}.org-member-node{width:100px;height:88px;min-height:88px;flex:0 0 100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px;border:1px solid #e2e8f0;border-radius:8px;color:#344054;background:#fff;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.org-member-node:hover{border-color:#91caff;background:#f7fbff}.org-member-node[draggable=true]{cursor:grab}.org-member-node[draggable=true]:active{cursor:grabbing;opacity:.72}.org-member-node>span{width:100%;min-width:0;display:grid;gap:2px}.org-member-node b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.org-member-node b{font-size:11px}.org-add-node{width:46px;min-height:46px;align-items:center;justify-content:center;padding:0;border-style:dashed;border-color:#9dc4f3;color:#1677ff;background:#fbfdff;text-align:center;box-shadow:none;cursor:pointer}.org-add-node:hover{border-color:#1677ff;background:#e6f4ff}.org-add-node-drop-ready{border-color:#1677ff;color:#0958d9;background:#e6f4ff;box-shadow:0 0 0 3px #1677ff1f}.org-add-node>.anticon{font-size:16px}.org-action-node{width:100px;height:88px;flex:0 0 100px}.org-action-node .org-add-node{width:100px;height:88px;min-height:88px}.org-create-menu{width:124px;display:grid;gap:2px}.org-create-menu .ant-btn{justify-content:flex-start}.module-setup-page{min-height:420px;display:grid;place-items:center}.module-setup-page>.ant-card-body{width:100%}.module-setup-description{display:grid;gap:6px;text-align:center}.personal-card{padding:22px;border:1px solid #e8edf5;border-radius:10px;background:#fff;text-align:center}.personal-card h4{margin:14px 0 3px}.personal-card .ant-upload-wrapper,.personal-card .ant-upload{display:block;width:100%}.personal-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.personal-form label,.automation-config label{display:flex;flex-direction:column;gap:7px;color:#475467;font-size:11px}.personal-form .ant-select{width:100%}.personal-detail-layout{align-items:start}.personal-portrait-card .ant-card-body{padding:0;overflow:hidden}.personal-portrait-preview{width:100%;aspect-ratio:693 / 919;display:grid;place-items:center;overflow:hidden;background:#f7f9fc}.personal-portrait-preview img{width:100%;height:100%;object-fit:cover;object-position:center top}.personal-portrait-actions{width:100%;padding:14px;border-top:1px solid #eef1f5}.personal-portrait-actions .ant-upload-wrapper,.personal-portrait-actions .ant-upload{display:block;width:100%}.personal-profile-form-card .ant-form-item{margin-bottom:16px}.personal-security-row{margin-top:4px;padding-top:18px;border-top:1px solid #eef1f5}.personal-security-row h5{margin:0 0 3px!important}.personal-device-card>.ant-card-body>.ant-typography{display:block;margin-bottom:8px}.device-management{margin-top:22px;padding-top:20px;border-top:1px solid #eef1f5}.device-management>div:first-child{margin-bottom:8px}.device-management h5{margin:0 0 4px!important}.device-management .ant-list-item{padding:14px 4px}.device-icon{color:#1677ff!important;background:#e6f4ff!important}.automation-shell{height:calc(100vh - 177px);min-height:650px;display:grid;grid-template-columns:220px minmax(520px,1fr) 284px;overflow:hidden;border:1px solid #e5eaf1;border-radius:9px;background:#fff;box-shadow:0 4px 14px #1018280d}.automation-library,.automation-config{min-width:0;overflow-y:auto;padding:14px;background:#fff}.automation-library{border-right:1px solid #e8ecf2}.automation-config{border-left:1px solid #e8ecf2}.automation-library>.ant-input-affix-wrapper{margin-top:12px}.automation-palette{display:flex;flex-direction:column;gap:7px;margin-top:12px}.automation-palette>button{display:flex;align-items:center;gap:10px;width:100%;padding:9px;border:1px solid #e8ecf2;border-radius:9px;color:#344054;background:#fff;text-align:left;cursor:grab}.automation-palette>button:hover{border-color:#91caff;background:#f7fbff}.automation-palette>button>span:last-child{min-width:0;display:flex;flex-direction:column}.automation-palette b{font-size:12px}.automation-palette small{overflow:hidden;color:#98a2b3;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.palette-icon{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;color:var(--node-color, #1677ff);background:var(--node-bg, #e6f4ff);font-size:15px}.node-trigger{--node-color:#1677ff;--node-bg:#e6f4ff}.node-approval{--node-color:#389e0d;--node-bg:#f6ffed}.node-condition{--node-color:#d46b08;--node-bg:#fff7e6}.node-delay{--node-color:#08979c;--node-bg:#e6fffb}.node-message{--node-color:#0958d9;--node-bg:#f0f5ff}.node-data{--node-color:#531dab;--node-bg:#f9f0ff}.automation-canvas{position:relative;overflow:auto;background-color:#f7f9fc;background-image:radial-gradient(#cfd7e5 1px,transparent 1px);background-size:20px 20px}.automation-world{position:relative;width:1500px;height:900px}.automation-edges{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}.automation-edges path{fill:none;stroke:#91a3bd;stroke-width:2}.automation-node{position:absolute;z-index:2;width:220px;min-height:104px;padding:12px 14px;border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 4px 14px #10182812;cursor:move;-webkit-user-select:none;user-select:none}.automation-node:hover{border-color:#91caff}.automation-node.selected{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff24,0 7px 18px #10182817}.automation-node>div{display:flex;align-items:center;justify-content:space-between}.automation-node .ant-tag{margin:0;font-size:10px}.automation-node h3{margin:9px 0 3px;color:#172033;font-size:13px}.automation-node p{overflow:hidden;margin:0;color:#98a2b3;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.node-port{position:absolute;top:40px;width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#91a3bd;box-shadow:0 0 0 1px #91a3bd}.node-port.input{left:-7px}.node-port.output{right:-7px;background:#1677ff;box-shadow:0 0 0 1px #1677ff}.canvas-help{position:sticky;left:16px;bottom:14px;z-index:4;width:max-content;padding:7px 10px;border:1px solid #e5eaf1;border-radius:8px;color:#667085;background:#fffffff0;font-size:11px}.automation-config>.ant-flex{min-height:34px;margin-bottom:12px}.automation-config label{margin-bottom:13px}.automation-config .ant-select{width:100%}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.config-empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#98a2b3;text-align:center}.config-empty>.anticon{font-size:30px}.config-empty b{color:#475467}@media(max-width:1200px){.room-grid{grid-template-columns:repeat(5,minmax(72px,1fr))}.embedded-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-shell{grid-template-columns:190px minmax(460px,1fr)}.node-settings{display:none}.approval-layout{grid-template-columns:1fr}.automation-shell{grid-template-columns:190px minmax(480px,1fr)}.automation-config{display:none}}@media(max-width:768px){.app-header{height:60px!important;min-height:60px;padding:0 12px!important;gap:5px}.header-search{display:none}.profile-copy,.profile-menu>.anticon{display:none}.app-content{padding:20px 12px 32px}.page-heading{align-items:flex-start}.page-heading h2{font-size:24px}.metric-card:hover{transform:none}.metric-value{font-size:21px}.embedded-metrics{grid-template-columns:1fr}.embedded-metrics .metric-card{min-height:112px}.occupancy-card .ant-card-body{grid-template-columns:1fr}.legend-grid{grid-template-columns:1fr 1fr}.room-grid{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:1fr}.workflow-shell{display:block;height:auto;min-height:650px}.branch-grid{transform:scale(.8)}.chart-default,.chart-room-type{height:230px}.customer-detail-layout,.staff-detail-layout,.personal-form{grid-template-columns:1fr}.attendance-toolbar{align-items:flex-start;flex-direction:column}.attendance-legend{flex-wrap:wrap;justify-content:flex-start}.attendance-day{width:42px;height:42px;min-width:42px}.automation-shell{display:block;min-height:650px}.automation-library{display:none}.automation-canvas{min-height:650px}}
