.brand-logo{display:inline-flex;align-items:center;gap:11px;color:#172033}.brand-logo__mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#fff8ea,#fff);box-shadow:0 5px 16px #f5841f33;font-size:24px}.brand-logo__wordmark{display:flex;flex-direction:column;line-height:1}.brand-logo__wordmark strong{font-size:18px;letter-spacing:-.3px}.brand-logo__wordmark small{margin-top:5px;color:#8b96a9;font-size:9px;font-weight:700;letter-spacing:2.2px}.brand-logo--light{color:#fff}.brand-logo--light .brand-logo__wordmark small{color:#95afd8}.admin-layout{min-height:100vh}.admin-sider{position:sticky!important;top:0;height:100vh;overflow:hidden auto;box-shadow:3px 0 16px #0c23491f}.admin-sider__brand{display:flex;align-items:center;height:72px;padding:0 19px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-menu{padding:12px 8px;border-inline-end:0!important}.admin-menu .ant-menu-item{height:43px;margin-block:3px;line-height:43px}.admin-sider__version{position:sticky;bottom:0;padding:18px 24px;color:#718bb4;background:#102a56;font-size:9px;letter-spacing:1.5px}.admin-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 24px!important;border-bottom:1px solid #e8edf4;box-shadow:0 1px 7px #1c345408}.admin-header__collapse{width:40px;height:40px;color:#526078;font-size:18px}.admin-profile{display:flex;align-items:center;gap:10px;padding:5px 8px;border:0;border-radius:8px;background:transparent;cursor:pointer}.admin-profile:hover{background:#f4f7fb}.admin-profile__avatar{background:linear-gradient(145deg,#1769e0,#4b91ed)}.admin-profile__copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.35}.admin-profile__copy .ant-typography:first-child{font-size:13px}.admin-profile__copy .ant-typography:last-child{font-size:11px}.admin-main{min-width:0;padding:0 24px 36px}.admin-breadcrumb{padding:16px 0}@media(max-width:700px){.admin-profile__copy{display:none}.admin-header{padding:0 14px!important}.admin-main{padding:0 14px 24px}}.page-shell__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.page-shell__header h1{margin:0;color:#172033;font-size:24px;line-height:1.35}.page-shell__header p{margin:7px 0 0;color:#7a8699;font-size:14px}.page-shell__card{min-height:430px;box-shadow:0 3px 18px #1c34540e}.page-shell__card .ant-card-body{display:grid;min-height:430px;place-items:center}.page-shell__card--flow .ant-card-body{display:block;min-height:0}.dashboard-loading{display:grid;min-height:480px;place-items:center}.dashboard__heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.dashboard__heading h1{margin:0;font-size:24px}.dashboard__heading p{margin:7px 0 0;color:#7a8699}.stat-card,.dashboard-card{box-shadow:0 3px 18px #1c34540e}.stat-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.stat-card__icon{display:grid;width:42px;height:42px;border-radius:10px;place-items:center;font-size:19px}.stat-card__source{padding:3px 8px;border-radius:12px;color:#8a94a6;background:#f2f4f7;font-size:10px}.stat-card__source--live{color:#1769e0;background:#eaf2ff}.stat-card__value{min-height:42px;margin:7px 0 4px;color:#172033;font-size:28px;font-weight:650;line-height:42px}.stat-card__value small{margin-left:5px;font-size:12px;font-weight:500}.stat-card__value--empty{color:#98a2b3;font-size:16px;font-weight:500}.stat-card>.ant-card-body>.ant-typography{font-size:11px}.dashboard__lower{margin-top:16px}.dashboard-card{min-height:250px;box-shadow:0 3px 18px #1c34540e}.trend-widget .ant-card-body{min-height:260px}.trend-widget__chart{width:100%;height:230px}.trend-widget .ant-empty{margin-block:64px}.latest-widget{min-height:448px}.latest-widget .ant-list-item{padding-inline:4px}.dashboard__side-stack{display:grid;gap:16px}.quick-entry{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-entry .ant-btn{justify-content:flex-start}.platform-status__item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eef2f7}.platform-status__item:last-child{border-bottom:0}.platform-status__item span{display:flex;align-items:center;gap:9px;color:#526078}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(420px,1.08fr) minmax(440px,.92fr);background:#fff}.login-page__intro{position:relative;display:flex;align-items:center;overflow:hidden;padding:9vw;color:#fff;background:linear-gradient(145deg,#0b2551,#124da2 54%,#1769e0)}.login-page__mesh{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.3;background-image:radial-gradient(circle at 20% 20%,rgba(255,255,255,.35) 0 1px,transparent 1.5px);background-size:28px 28px;-webkit-mask-image:linear-gradient(135deg,#000,transparent 76%);mask-image:linear-gradient(135deg,#000,transparent 76%)}.login-page__intro:before,.login-page__intro:after{position:absolute;content:"";border-radius:50%;border:1px solid rgba(255,255,255,.12)}.login-page__intro:before{right:-13vw;bottom:-17vw;width:42vw;height:42vw}.login-page__intro:after{right:-5vw;bottom:-9vw;width:26vw;height:26vw;background:#ffffff09}.login-page__intro-content{position:relative;z-index:1;max-width:590px}.login-page__eyebrow{display:inline-block;margin-bottom:24px;padding:7px 12px;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:#ffffff14;font-size:12px;letter-spacing:1.5px}.login-page__intro h1{margin:0;font-size:clamp(36px,4vw,58px);line-height:1.22;letter-spacing:-2px}.login-page__intro p{max-width:510px;margin:26px 0;color:#bfd3f4;font-size:16px;line-height:1.9}.login-page__security{display:flex;align-items:center;gap:9px;color:#dce9fc;font-size:13px}.login-page__form-side{display:grid;place-items:center;padding:48px}.login-panel{width:min(100%,390px)}.login-panel__heading{margin:50px 0 30px}.login-panel__heading .ant-typography{margin:0 0 8px}.login-panel .ant-alert{margin-bottom:18px}.login-panel .ant-form-item{margin-bottom:20px}.login-panel__submit{height:44px;margin-top:5px;box-shadow:0 8px 18px #1769e033}.login-panel__auth-note{margin-top:18px;padding:10px 12px;border-radius:7px;color:#7a8699;background:#f5f7fa;text-align:center;font-size:12px}.login-panel__auth-note span{margin:0 9px;color:#c2c9d3}.login-panel footer{margin-top:48px;color:#a0a9b8;text-align:center;font-size:11px}@media(max-width:850px){.login-page{display:block}.login-page__intro{display:none}.login-page__form-side{min-height:100vh;padding:30px}}.city-operations{display:grid;gap:16px}.city-operations__heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.city-operations__heading h2{margin:0 0 5px!important;font-size:24px!important}.city-operations__filters,.city-operations__kpi,.city-operations .ant-card{box-shadow:0 3px 18px #1c34540e}.city-operations__filter{display:grid;gap:7px;color:#526078;font-size:12px}.city-operations__custom-range{display:flex;align-items:center;gap:8px}.city-operations__custom-range .ant-input{width:145px}.city-operations__loading{display:grid;min-height:420px;place-items:center}.city-operations__kpis .ant-statistic-content-prefix{color:#f28c28;font-size:20px}.city-operations__kpi{height:100%;border-top:3px solid #f28c28}.city-operations__kpi-helper{display:block;margin-top:6px;font-size:12px}.city-operations__chart{width:100%;height:320px}.city-operations__ranking{margin-top:0}.city-operations__quality p{margin:0 0 4px}.city-operations__quality .ant-collapse-header{padding-inline:0!important}@media(max-width:760px){.city-operations__heading{align-items:flex-start;flex-direction:column}.city-operations__custom-range{flex-wrap:wrap}}.user-portrait{display:grid;gap:16px}.user-portrait header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.user-portrait header h2{margin:0 0 5px!important;font-size:24px!important}.user-portrait .ant-card{box-shadow:0 3px 18px #1c34540e}.user-portrait__filters label{display:grid;gap:7px;color:#526078;font-size:12px}.user-portrait__filters label .ant-input{min-width:140px}.user-portrait__legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:14px;color:#718096;font-size:12px}.user-portrait__loading{min-height:480px;display:grid;place-items:center}.user-portrait__kpi{height:100%;border-top:3px solid #f28c28}.user-portrait__kpi .ant-statistic-content-prefix{color:#f28c28}.user-portrait__kpi small{display:block;margin-top:6px;color:#8691a6}.user-portrait__chart{width:100%;height:330px}.user-portrait__range-filter{justify-content:flex-end}.user-portrait__range-filter .ant-input{width:138px}.user-portrait__new-users{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.user-portrait__new-users .ant-statistic-content-prefix{color:#f28c28}.user-portrait__hero-kpi{height:100%;min-height:128px;padding:18px;border:1px solid #edf0f4;border-radius:12px;background:linear-gradient(145deg,#fffaf4,#fff)}.user-portrait__hero-kpi .ant-statistic-content-prefix{color:#f28c28}.user-portrait__hero-kpi small{display:block;margin-top:10px;color:#748198}.user-portrait__rhythm{display:grid;gap:7px;min-height:90px;padding:16px;border-radius:10px;background:#f7f9fc}.user-portrait__rhythm strong{font-size:20px;color:#273248}.user-portrait__funnel{display:grid;gap:12px}.user-portrait__funnel-row{display:grid;grid-template-columns:190px minmax(160px,1fr) 72px;gap:16px;align-items:center}.user-portrait__funnel-row>div:first-child{display:flex;justify-content:space-between;gap:10px}.user-portrait__funnel-row small{color:#778398}.user-portrait__funnel-row>b{text-align:right;color:#4f5b70}.user-portrait__active-kpi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;border-radius:10px;background:#fff8ef}.user-portrait__active-kpi small{grid-column:1 / -1;color:#748198}.user-portrait__behavior-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.user-portrait__behavior-grid>div{display:grid;gap:5px;padding:14px;border:1px solid #edf0f4;border-radius:9px}.user-portrait__behavior-grid span{color:#748198;font-size:12px}.user-portrait__section-title h3{margin:8px 0 2px!important}.user-portrait__composition-filter label{display:grid;gap:7px;color:#526078;font-size:12px}.user-portrait__rank-list--expanded{max-height:420px}.user-portrait__gender{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:10px}.user-portrait__definitions{color:#5f6d82}.user-portrait__definitions p{margin:0 0 9px}.user-portrait__region-list{display:grid;gap:8px;max-height:420px;overflow:auto}.user-portrait__region-row{display:grid;grid-template-columns:minmax(130px,1fr) auto 64px;gap:12px;align-items:center;padding:9px 10px;border-radius:8px;background:#f7f9fc}.user-portrait__region-row small{color:#7d899d;text-align:right}.user-portrait__rank-list{display:grid;gap:8px;max-height:260px;overflow:auto}.user-portrait__rank{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;gap:12px;align-items:center;padding:9px 10px;border-radius:8px;background:#f7f9fc}.user-portrait__rank small{color:#7d899d}.user-portrait__outcomes{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid #edf1f6;color:#657087}.user-portrait__rating{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:10px}.user-portrait__gap{min-height:165px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;border:1px dashed #d7dde8;border-radius:10px;background:#fafbfc}.user-portrait__gap b{font-size:30px;color:#9aa4b5}@media(max-width:760px){.user-portrait__rank{grid-template-columns:1fr auto}.user-portrait__rank small{grid-column:1 / -1}.user-portrait__new-users{align-items:flex-start;flex-direction:column}.user-portrait__funnel-row{grid-template-columns:1fr 60px}.user-portrait__funnel-row .ant-progress{grid-column:1 / -1;grid-row:2}.user-portrait__behavior-grid{grid-template-columns:1fr 1fr}}.user-data__stats .user-data__stat-card{height:132px}.user-data__stat-card .ant-card-body{height:100%;padding:16px 18px;display:flex;flex-direction:column;justify-content:center}.user-data__stat-card .ant-statistic-title{margin-bottom:4px}.user-data__stat-card .ant-statistic-content{font-size:30px;line-height:1.2}.user-data__stat-helper{margin-top:5px;font-size:12px;line-height:18px}.activity-analytics{display:grid;gap:16px}.activity-analytics header h2{margin:0 0 5px!important;font-size:24px!important}.activity-analytics>.ant-card,.activity-analytics>.ant-collapse{box-shadow:0 3px 18px #1c34540e}.activity-analytics__filters label{display:grid;gap:7px;color:#526078;font-size:12px}.activity-analytics__filters label .ant-input,.activity-analytics__filters label .ant-select{min-width:136px}.activity-analytics__loading{min-height:480px;display:grid;place-items:center}.activity-analytics__kpi{height:100%;border-top:3px solid #f28c28;background:linear-gradient(180deg,#fffaf5 0,#fff 65%)}.activity-analytics__kpi small{display:block;margin-top:7px;color:#7b8799}.activity-analytics__chart{width:100%}.activity-analytics__expand{display:block;margin:10px auto 0}.activity-analytics__participation{margin-bottom:14px}.activity-analytics__price-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;height:100%;align-content:center}.activity-analytics__price-metrics .ant-statistic{padding:14px;border:1px solid #edf0f5;border-radius:10px;background:#fbfcfe}.activity-analytics .ant-table small{color:#8b95a7}.activity-analytics .ant-alert+.ant-tabs,.activity-analytics .ant-alert+.ant-table-wrapper{margin-top:12px}@media(max-width:760px){.activity-analytics__chart{height:260px!important}.activity-analytics__price-metrics{grid-template-columns:1fr}}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#172033;background:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input{font:inherit}.auth-session-loading{min-height:100vh;display:grid;place-items:center}.page-enter{animation:pageEnter .26s ease-out}@keyframes pageEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important}}
