.login-page{box-sizing:border-box;background:linear-gradient(135deg,#0e1a32 0%,#162a52 52%,#164d63 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-page__ambient{filter:blur(2px);background:#5eddc329;border-radius:50%;position:absolute}.login-page__ambient--one{width:440px;height:440px;top:-220px;right:-120px}.login-page__ambient--two{width:520px;height:520px;bottom:-250px;left:-180px}.login-card{border-radius:16px;width:min(100%,420px);position:relative;box-shadow:0 24px 80px #05102359}.login-card .ant-card-body{padding:40px}.login-card__brand{color:#1677ff;margin-bottom:22px;font-size:34px;line-height:1}.login-card__title{margin-bottom:4px!important}.login-card__subtitle{color:#6d7787;margin-bottom:30px!important}.login-card__alert{margin-bottom:20px}.login-card .ant-btn{height:44px;margin-top:8px}@media (width<=480px){.login-card .ant-card-body{padding:32px 24px}}html,body,#root{min-width:320px;min-height:100%;margin:0}body{color:#162033;background:#f5f7fa}.admin-shell{min-height:100vh}.admin-sider{box-shadow:1px 0 14px #14223b14}.admin-sider__brand{color:#fff;letter-spacing:.04em;padding:23px 24px;font-size:20px;font-weight:800}.admin-sider__brand span{color:#78d6ca;letter-spacing:.11em;vertical-align:middle;margin-left:6px;font-size:11px;font-weight:700}.admin-header{background:#fff;border-bottom:1px solid #edf0f5;justify-content:space-between;align-items:center;height:64px;padding:0 28px;line-height:normal;display:flex}.admin-header__title{color:#14223c;font-size:17px;font-weight:700}.admin-header__subtitle{color:#7f8a9a;font-size:14px}.admin-content{padding:28px}.management-page{max-width:1440px;margin:0 auto}.page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.page-heading .ant-typography{margin-bottom:6px}.management-page__table{margin-top:16px}.filter-select{min-width:132px}.filter-form.ant-form-inline .ant-form-item{margin-bottom:8px}.ant-form-item .ant-select.filter-select-cascade{width:220px;max-width:100%}.filter-select-cascade .ant-select-content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.full-width{width:100%}.log-detail{max-width:440px;display:inline-block}.log-detail--multiline{white-space:pre-wrap;word-break:break-word;max-width:440px;display:inline-block}.dashboard{max-width:1440px;margin:0 auto}.dashboard__heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.dashboard__heading .ant-typography{margin-bottom:6px}.dashboard__alert{margin-bottom:16px}.dashboard__loading{justify-content:center;align-items:center;min-height:340px;display:flex}.dashboard__metrics{margin-bottom:16px}.dashboard-metrics-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}@media (width<=1199px){.dashboard-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=767px){.dashboard-metrics-grid{grid-template-columns:1fr}}.dashboard-metric{height:100%}.dashboard-metric .ant-statistic{margin-bottom:10px}.dashboard-metric .ant-statistic-content{color:#182b49;font-weight:700}.dashboard-metric--primary{background:linear-gradient(135deg,#f0f8ff,#fff 62%);border-color:#b8dbff}.dashboard-metric .ant-typography{font-size:13px}.dashboard__section{margin-top:16px}.dashboard-progress__summary{grid-template-columns:155px minmax(0,1fr);align-items:center;gap:32px;margin-bottom:18px;display:grid}.dashboard-progress__summary .ant-typography{margin:2px 0 0}.dashboard-tier-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.dashboard-tier{gap:6px;display:grid}.dashboard-card-state{border-top:1px solid #f0f0f0;gap:24px;margin-top:20px;padding-top:15px;display:flex}.dashboard-card-state span{color:#687385;font-size:13px}.dashboard-card-state strong{color:#1e2a3d;margin-left:4px}.dashboard-attention__total{color:#ad6800;align-items:center;gap:9px;margin-bottom:16px;font-size:15px;display:flex}.dashboard-attention__total strong{color:#1e2a3d;margin-left:auto;font-size:24px}.dashboard-attention__items{border-top:1px solid #f0f0f0}.dashboard-attention__items>div{border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.dashboard-actions{gap:10px;display:grid}.dashboard-chart-card .ant-card-head-wrapper{flex-wrap:wrap;gap:8px}.daily-trend-chart{flex-direction:column;width:100%;display:flex}.daily-trend-chart__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.daily-trend-chart__summary{gap:16px;display:flex}.daily-trend-chart__stat{flex-direction:column;display:flex}.daily-trend-chart__stat-label{color:#8c9ba5;font-size:12px}.daily-trend-chart__stat-value{color:#1e2a3d;font-size:16px;font-weight:700}.daily-trend-chart__legend{gap:14px;display:flex}.daily-trend-chart__legend-item{color:#596780;align-items:center;gap:6px;font-size:12px;display:flex}.daily-trend-chart__legend-item i{border-radius:2px;width:12px;height:3px}.daily-trend-chart__peak{font-size:12px}.daily-trend-chart__peak-label{color:#8c9ba5}.daily-trend-chart__peak-value{color:#1677ff;margin-left:4px;font-weight:600}.daily-trend-chart__container{width:100%;position:relative}.daily-trend-chart__svg{width:100%;display:block;overflow:visible}.daily-trend-chart__tooltip{color:#fff;pointer-events:none;white-space:nowrap;z-index:20;background:#0f172ae0;border-radius:8px;padding:8px 12px;transition:left .15s ease-out,top .15s ease-out;position:absolute;transform:translate(-50%,-115%);box-shadow:0 10px 25px -5px #0000004d}.daily-trend-chart__tooltip-date{text-align:center;border-bottom:1px solid #ffffff26;margin-bottom:4px;padding-bottom:4px;font-size:11px;font-weight:600}.daily-trend-chart__tooltip-row{align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.daily-trend-chart__tooltip-dot{border-radius:50%;width:6px;height:6px}.daily-trend-chart__tooltip-label{opacity:.85}.daily-trend-chart__tooltip-val{margin-left:auto;font-weight:700}.hourly-comparison-chart{flex-direction:column;width:100%;display:flex}.hourly-comparison-chart__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.hourly-comparison-chart__legend{gap:16px;display:flex}.hourly-comparison-chart__legend-item{color:#475569;align-items:center;gap:6px;font-size:12px;display:flex}.hourly-comparison-chart__legend-item i{border-radius:2px;width:14px;height:3px}.hourly-comparison-chart__line-today{border-radius:2px}.hourly-comparison-chart__line-yesterday{border-style:dashed}.hourly-comparison-chart__line-lastweek{border-style:dotted}.hourly-comparison-chart__peaks{font-size:12px}.hourly-comparison-chart__peak-tag{color:#64748b}.hourly-comparison-chart__peak-tag strong{color:#1e2a3d;margin-left:4px}.hourly-comparison-chart__container{width:100%;position:relative}.hourly-comparison-chart__svg{width:100%;display:block;overflow:visible}.hourly-comparison-chart__tooltip{color:#fff;pointer-events:none;z-index:20;background:#0f172aeb;border-radius:8px;min-width:140px;padding:8px 12px;transition:left .15s ease-out,top .15s ease-out;position:absolute;transform:translate(-50%,-115%);box-shadow:0 10px 25px -5px #00000059}.hourly-comparison-chart__tooltip-title{text-align:center;border-bottom:1px solid #ffffff26;margin-bottom:6px;padding-bottom:4px;font-size:11px;font-weight:600}.hourly-comparison-chart__tooltip-row{align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.hourly-comparison-chart__tooltip-dot{border-radius:50%;width:6px;height:6px}.hourly-comparison-chart__tooltip-val{margin-left:auto;font-weight:700}@media (width<=640px){.admin-header{padding:0 16px}.admin-header__subtitle{display:none}.admin-content{padding:18px 14px}.page-heading{flex-direction:column;align-items:stretch}.form-grid{grid-template-columns:1fr}.dashboard__heading{flex-direction:column;align-items:stretch}.dashboard-progress__summary{grid-template-columns:1fr;gap:12px}.dashboard-tier-grid{grid-template-columns:1fr}.dashboard-card-state{flex-wrap:wrap;gap:10px 18px}.daily-trend-chart__header,.hourly-comparison-chart__header{flex-direction:column;align-items:flex-start}}
