#app{width:100%;height:100%}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--platform-neutral-0: #ffffff;--platform-neutral-50: #fafbfc;--platform-neutral-100: #f5f7fa;--platform-neutral-200: #eaeef3;--platform-neutral-500: #6b7280;--platform-neutral-800: #0f172a;--primary-color: #8b5cf6;--platform-accent: #7c3aed;--ui-primary-readable: #6d28d9;--platform-bg: #f5f7fa;--platform-surface: #ffffff;--platform-border: #eaeef3;--platform-text: #0f172a;--platform-muted: #6b7280;--platform-shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--platform-shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--platform-radius: 8px;--platform-page-max: 1480px;--platform-focus-ring: 0 0 0 3px rgba(139, 92, 246, .1);--platform-table-row-hover: #f7f4ff;--platform-money: var(--warning-color);--platform-spacing-unit: 8px;--platform-spacing-xs: 4px;--platform-spacing-sm: 8px;--platform-spacing-md: 12px;--platform-spacing-lg: 16px;--platform-spacing-xl: 24px;--success-color: #67c23a;--warning-color: #e6a23c;--danger-color: #f56c6c;--info-color: #909399;--intent-primary: var(--primary-color);--intent-success: var(--success-color);--intent-money: var(--platform-money);--intent-danger: var(--danger-color);--intent-warning: var(--warning-color);--intent-text: var(--platform-text);--intent-text-muted: var(--platform-muted);--intent-border: var(--platform-border);--intent-border-soft: var(--platform-border);--intent-page-bg: var(--platform-bg);--intent-surface: var(--platform-surface);--intent-radius: var(--platform-radius);--intent-radius-sm: 6px;--intent-shadow: var(--platform-shadow-sm);--intent-shadow-md: var(--platform-shadow-md);--intent-spacing: var(--platform-spacing-unit);--intent-spacing-xs: var(--platform-spacing-xs);--intent-spacing-sm: var(--platform-spacing-sm);--intent-spacing-md: var(--platform-spacing-md);--intent-spacing-lg: var(--platform-spacing-lg);--intent-spacing-xl: var(--platform-spacing-xl)}html.dark{--platform-bg: #14171e;--platform-surface: #1d222b;--platform-border: #3d4655;--platform-text: #e5eaf3;--platform-muted: #b4c0cf;--platform-accent: #bca4fa;--ui-primary-readable: #bca4fa;--platform-table-row-hover: #302840;--platform-shadow-sm: 0 1px 3px rgba(0, 0, 0, .22)}html.dark body{background:var(--platform-bg)}body{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;color:var(--platform-text);background:radial-gradient(circle at 84% 0%,rgba(139,92,246,.1),transparent 30%),linear-gradient(180deg,#fafbfc 0%,var(--platform-bg) 42%,#eaeef3 100%)}.page-container{padding:22px;background:transparent;min-height:100vh;max-width:var(--platform-page-max);margin:0 auto;box-sizing:border-box}.card-container{background:var(--platform-surface);border:1px solid var(--platform-border);border-radius:var(--platform-radius);padding:20px;box-shadow:var(--platform-shadow-sm);transition:border-color .18s ease,box-shadow .18s ease}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-title{font-size:18px;font-weight:600;color:var(--platform-text)}.toolbar{margin-bottom:20px}.toolbar-right{display:flex;gap:10px}.pagination-container{display:flex;justify-content:flex-end;margin-top:20px;min-height:40px;align-items:center}.pagination-container .el-pagination,.el-pagination{min-height:32px}.el-card{--el-card-border-radius: var(--platform-radius);border-color:var(--platform-border)!important;box-shadow:var(--platform-shadow-sm)!important;transition:box-shadow .18s ease,transform .18s ease}.el-card:hover{box-shadow:var(--platform-shadow-md)!important}.el-card__header{padding:16px 18px;border-bottom:1px solid var(--platform-border);font-weight:700}.el-card__body{padding:18px}.el-button{--el-border-radius-base: 6px;font-weight:600;min-height:36px}.el-button--primary{--el-button-bg-color: var(--primary-color);--el-button-border-color: var(--primary-color);--el-button-hover-bg-color: var(--platform-accent);--el-button-hover-border-color: var(--platform-accent);box-shadow:0 8px 20px #8b5cf62e}.el-button--primary.is-link:not(.is-disabled){--el-button-text-color: var(--ui-primary-readable);--el-button-hover-link-text-color: var(--ui-primary-readable);--el-button-active-color: var(--ui-primary-readable)}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:6px!important;box-shadow:0 0 0 1px var(--platform-border) inset!important}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused,.el-textarea__inner:focus{box-shadow:0 0 0 1px #8b5cf694 inset,var(--platform-focus-ring)!important}.el-table{border-radius:var(--platform-radius);overflow:hidden;border:1px solid var(--platform-border)}.el-table th.el-table__cell{background:#f3f7fb!important;color:#334155;font-weight:700;height:44px;border-bottom-color:var(--platform-border)!important}.el-table td.el-table__cell{border-bottom-color:#eaeef3d1!important}.el-table .cell{line-height:1.45}.el-tag{border-radius:999px;font-weight:700}.filter-bar,.toolbar{border:1px solid var(--platform-border);border-radius:var(--platform-radius);background:#ffffffd6;box-shadow:0 6px 18px #14243a0a;row-gap:10px;column-gap:12px}.filter-bar{padding:14px}.el-form-item__label{color:#475569;font-weight:700}.el-descriptions__label{color:#64748b;font-weight:700}.page-header,.card-header,.toolbar,.toolbar-right,.header-actions{min-width:0}.el-empty{--el-empty-padding: 42px 0}.el-empty__description p{color:var(--platform-muted)}.el-loading-mask{background-color:#f8fbfeb8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}:root{--el-color-primary: var(--primary-color);--el-color-primary-light-3: #a78bfa;--el-color-primary-light-5: #c4b5fd;--el-color-primary-light-7: #ddd6fe;--el-color-primary-light-8: #ede9fe;--el-color-primary-light-9: #f5f3ff;--el-color-primary-dark-2: #7c3aed}.el-table__body tr:hover>td.el-table__cell{background:var(--platform-table-row-hover)!important}.el-tabs__item.is-active{color:var(--primary-color)!important}.el-tabs__active-bar,.el-pagination.is-background .el-pager li.is-active{background-color:var(--primary-color)!important}.el-button:active{transform:translateY(1px)}.el-dialog{border-radius:var(--platform-radius);overflow:hidden}.el-dialog__header,.el-drawer__header{margin-right:0;padding-bottom:14px;border-bottom:1px solid var(--platform-border)}*{scrollbar-width:thin;scrollbar-color:rgba(37,99,235,.32) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#2563eb42;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#2563eb80}*::-webkit-scrollbar-track{background:transparent}@media(max-width:900px){html,body,#app{width:100%;min-width:0;overflow-x:hidden}body{background:#edf3f9}.main-content,.page-container,.platform-dashboard,.dashboard,.tenant-list,.tenant-detail,.tenant-form,.tenant-create,.tenant-renew,.tenant-monitoring,.expiring-tenants{padding:12px!important;min-width:0}.card-container,.el-card{--el-card-padding: 14px;border-radius:8px!important}.page-header,.card-header,.filter-bar,.header-actions,.toolbar,.toolbar-right{align-items:stretch!important;flex-direction:column!important;flex-wrap:wrap;gap:10px}.page-header .el-button,.card-header .el-button,.filter-bar .el-button,.header-actions .el-button,.toolbar-right,.toolbar-right .el-button{width:100%}.el-row{margin-left:-6px!important;margin-right:-6px!important}.el-col{padding-left:6px!important;padding-right:6px!important;margin-bottom:12px}.el-form--inline{display:grid;grid-template-columns:1fr;gap:10px}.el-form--inline .el-form-item{width:100%;margin-right:0;margin-bottom:0}.el-form-item__content,.el-input,.el-select,.el-date-editor,.el-date-editor.el-input,.el-date-editor.el-input__wrapper,.el-date-editor--date,.el-date-editor--daterange,.el-input-number,.el-cascader{max-width:100%!important;width:100%!important}.el-form-item__label{justify-content:flex-start;line-height:1.35}.el-input__wrapper,.el-select__wrapper,.el-input-number,.el-textarea__inner{min-height:42px}.el-button{min-height:40px}.el-button-group{display:flex;flex-wrap:wrap;gap:6px;width:100%}.el-button-group .el-button{flex:1 1 auto;margin-left:0!important;border-radius:6px!important}.el-table{width:100%!important;font-size:12px}.el-table__inner-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.el-table .el-table__cell{padding:8px 0}.el-table .cell{padding:0 8px}.el-tabs__nav-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.el-pagination{justify-content:center;flex-wrap:wrap;gap:6px;white-space:normal}.el-pagination__total,.el-pagination__jump{width:100%;justify-content:center;text-align:center}.el-dialog{width:calc(100vw - 24px)!important;margin:8vh auto 0!important}.el-dialog__body{max-height:70vh;overflow-y:auto;padding:16px}.el-dialog__footer{display:grid;grid-template-columns:1fr;gap:8px;padding:0 16px 16px}.el-dialog__footer .el-button{width:100%;margin-left:0!important}.el-drawer{width:min(92vw,420px)!important}.el-popper,.el-select-dropdown,.el-picker-panel{max-width:calc(100vw - 24px)!important}.el-descriptions__body .el-descriptions__table{display:block;overflow-x:auto}.el-message-box{width:calc(100vw - 32px)!important}}:root{--ui-motion-fast: .15s;--ui-muted-readable: #5c6c7e}html.dark{--ui-muted-readable: #b4c0cf}.el-button{transition:background-color var(--ui-motion-fast),border-color var(--ui-motion-fast),box-shadow var(--ui-motion-fast),transform var(--ui-motion-fast)}.el-button:not(.is-disabled):not(.is-loading):active{transform:translateY(1px)}.el-button.is-disabled:active,.el-button.is-loading:active{transform:none}.el-button:focus-visible,.el-tabs__item:focus-visible,.el-pagination button:focus-visible{outline:2px solid var(--intent-primary);outline-offset:3px}.el-input__inner::placeholder,.el-textarea__inner::placeholder{color:var(--ui-muted-readable)}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset!important}.el-form-item.is-error .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-color-danger) inset,0 0 0 3px var(--el-color-danger-light-9)!important}.el-table :is(.money,.amount,.amount-value),.el-descriptions :is(.money,.amount),.metric-value,.stat-value{font-variant-numeric:tabular-nums}.el-tag{max-width:100%}.el-table .el-button.is-link{min-height:32px}.el-dialog__header,.el-drawer__header{background:var(--intent-surface)}.el-empty__description p{color:var(--ui-muted-readable);line-height:1.7}.filter-bar,.toolbar,.header-actions{flex-wrap:wrap}.visual-workspace :is(.page-header,.page-head){align-items:flex-start;gap:24px;margin-bottom:24px}.visual-workspace :is(.page-header,.page-head) :is(h1,h2){font-size:25px;line-height:1.4;letter-spacing:-.4px;margin-top:0}.visual-workspace :is(.page-subtitle,.page-description,.page-header p,.page-head span){max-width:720px;color:var(--intent-text-muted);line-height:1.7}.visual-workspace :is(.header-actions,.head-actions){display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end}.visual-workspace :is(.header-actions,.head-actions) .el-button+.el-button{margin-left:0}.visual-workspace .el-table{font-variant-numeric:tabular-nums}.visual-workspace .el-table .cell{line-height:1.65}.visual-workspace .el-table th.el-table__cell{font-size:13px;letter-spacing:.2px}.visual-workspace .filter-bar{box-shadow:none}.visual-workspace :is(.summary-card,.stat-card,.stat-tile,.summary-grid article,.vehicle-overview>div){box-shadow:none;border-radius:12px}.visual-workspace :is(.decision-metric strong,.summary-grid strong,.vehicle-overview strong,.summary-card strong){font-variant-numeric:tabular-nums;line-height:1.35}.visual-workspace :is(.summary-card,.stat-card):hover{transform:none}@media(max-width:900px){.visual-workspace :is(.header-actions,.head-actions){justify-content:flex-start}.visual-workspace :is(.page-header,.page-head) :is(h1,h2){font-size:22px}}html.dark .el-table th.el-table__cell{background:var(--el-fill-color-light)!important;color:var(--intent-text)}html.dark .filter-bar,html.dark .toolbar{background:var(--intent-surface)}html.dark .el-form-item__label,html.dark .el-descriptions__label{color:var(--intent-text-muted)}@media(prefers-reduced-motion:reduce){.el-button{transition:none!important}.el-button:not(.is-disabled):not(.is-loading):active{transform:none}}div.visual-login[class]{--login-accent: #087b56;--login-soft: #eaf7f1;--login-ink: #102d2b;min-height:100vh;padding:40px 24px;background:#f1f5f4;color:#172b3a}div.visual-login.visual-login--platform[class]{--login-accent: #6d42cb;--login-soft: #f2edfc;--login-ink: #25203d}div.visual-login.visual-login--loading[class]{--login-accent: #2563c7;--login-soft: #edf4ff;--login-ink: #17314b}div.visual-login[class]:before,div.visual-login[class]:after{display:none}.visual-login[class] .login-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);width:min(1120px,100%);min-height:650px;padding:0;gap:0;overflow:hidden;border:1px solid #dce5e7;border-radius:16px;background:#fff;box-shadow:none}.visual-login[class] :is(.brand-panel,.platform-panel,.loader-panel){display:flex;flex-direction:column;justify-content:space-between;margin:0;padding:38px;border:0;border-radius:0;background:var(--login-ink);color:#fff;overflow:hidden}.visual-login[class] :is(.brand-panel,.platform-panel,.loader-panel):before,.visual-login[class] :is(.brand-panel,.platform-panel,.loader-panel):after{display:none}.visual-login[class] :is(.brand-copy,.panel-copy,.loader-copy){position:relative;max-width:450px;margin-top:32px}.visual-login[class] :is(.brand-copy,.panel-copy,.loader-copy) h1{font-size:40px;line-height:1.25;letter-spacing:-.02em}.visual-login[class] :is(.brand-copy,.panel-copy,.loader-copy) p{max-width:360px;font-size:15px;line-height:1.8;color:#c8d6df}.visual-login[class] :is(.brand-mark,.platform-mark,.loader-mark){border:1px solid rgba(255,255,255,.18);background:#ffffff14;box-shadow:none}.visual-login[class] :is(.entry-card,.control-card,.route-card){margin-top:20px;padding:16px 0 0;width:100%;border:0;border-top:1px solid rgba(255,255,255,.18);border-radius:0;background:transparent}.visual-login[class] :is(.entry-card-header,.control-row,.route-card-header) strong{color:#e3eaf2}.visual-login[class] .entry-row{background:#ffffff0d}.visual-login[class] .entry-row.is-active{background:#ffffff1f}.visual-login[class] .login-box{align-self:center;margin:0;padding:36px 44px;width:100%;border:0;border-radius:0;background:#fff;box-shadow:none;animation:login-form-arrive .32s ease-out}.visual-login[class] .login-header{margin-bottom:28px}.visual-login[class] .login-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:14px;color:#4e6470;font-size:13px;text-decoration:none}.visual-login[class] .login-back:hover{color:var(--login-accent)}.visual-login[class] :is(.form-mark,.logo-wrapper){color:var(--login-accent);background:var(--login-soft)}.visual-login[class] .logo-wrapper .el-icon{color:var(--login-accent)!important}.visual-login[class] .portal-badge{background:var(--login-soft);color:var(--login-accent)}.visual-login[class] .login-title{color:#172b3a;font-size:28px}.visual-login[class] .login-subtitle{color:#596b7a;line-height:1.7}.visual-login[class] .account-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin:0 0 24px;padding:12px 0;border:0;border-top:1px solid #e5ebef;border-bottom:1px solid #e5ebef;border-radius:0;background:transparent}.visual-login[class] .account-guide>div{grid-column:1 / -1;margin-bottom:4px}.visual-login[class] .account-guide :is(a,button){display:inline-flex;align-items:center;min-height:44px;margin:0;color:var(--login-accent);font-size:13px;line-height:1.5;text-decoration:none}.visual-login[class] .login-form .el-form-item__label{height:auto;margin-bottom:8px;color:#34495e;font-weight:600}.visual-login[class] .login-form .el-form-item{margin-bottom:22px}.visual-login[class] .login-form .el-form-item__error{position:static;flex-basis:100%;width:100%;padding-top:6px;line-height:1.5;overflow-wrap:anywhere}.visual-login[class] .login-session-note{margin:0;color:#34495e;font-size:13px;line-height:1.6}.visual-login[class] .login-form .el-checkbox{height:auto;min-height:44px;white-space:normal}.visual-login[class] .login-form .el-checkbox__label{line-height:1.5;white-space:normal}.visual-login[class] .password-toggle{flex:none;min-width:44px;min-height:44px;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--login-accent);font:inherit;line-height:1.5;cursor:pointer}.visual-login[class] .password-toggle:hover{background:var(--login-soft)}.visual-login[class] .login-form .el-input__wrapper{min-height:48px;border-radius:10px!important}.visual-login[class] .login-form .el-input__inner{color:#172b3a}.visual-login[class] .login-form .el-input__inner::placeholder{color:#677889}.visual-login[class] .login-form .el-input__wrapper:not(.is-focus){box-shadow:0 0 0 1px #d5e0e7 inset!important}.visual-login[class] .login-button{--el-button-bg-color: var(--login-accent);--el-button-border-color: var(--login-accent);--el-button-hover-bg-color: var(--login-accent);--el-button-hover-border-color: var(--login-accent);min-height:48px;border-radius:10px;box-shadow:none;font-size:15px}.visual-login[class] :is(a,button,input):focus-visible{outline:2px solid var(--login-accent);outline-offset:4px}.visual-login[class] .route-art{width:100%;max-width:440px;margin:24px 0 12px;color:#c8d6df}.visual-login[class] .route-art svg{display:block;width:100%;height:auto;overflow:visible}.route-art .route-base{fill:none;stroke:currentColor;stroke-width:1.5;opacity:.35}.route-art .route-trace{fill:none;stroke:#fff;stroke-width:2.5;stroke-dasharray:480;stroke-dashoffset:0;animation:login-route-draw 2.4s ease-out}.route-art .route-node{fill:var(--login-ink);stroke:#fff;stroke-width:2}.route-art .route-node-core{fill:#fff}.route-art .route-grid{fill:none;stroke:currentColor;stroke-width:.6;opacity:.12}@keyframes login-route-draw{0%{stroke-dashoffset:480}to{stroke-dashoffset:0}}@keyframes login-form-arrive{0%{transform:translateY(8px)}to{transform:translateY(0)}}@media(max-width:900px){div.visual-login[class]{padding:24px 16px}.visual-login[class] .login-shell{display:block;min-height:0;max-width:480px;border-radius:16px}.visual-login[class] :is(.brand-panel,.platform-panel,.loader-panel){display:none}.visual-login[class] .login-box{padding:20px 24px 28px;animation:none}.visual-login[class] .login-title{font-size:25px}}@media(max-width:360px){div.visual-login[class]{padding:16px 12px}.visual-login[class] .login-box{padding:16px 20px 24px}.visual-login[class] .login-title{font-size:23px}.visual-login[class] .account-guide{grid-template-columns:1fr}}@media(prefers-color-scheme:dark){div.visual-login[class]{background:#111c24;color:#e7edf2}.visual-login[class] .login-shell{background:#1c2b36;border-color:#3b4f5c}.visual-login[class] .login-box{background:#1c2b36}.visual-login[class] .login-title,.visual-login[class] .account-guide strong,.visual-login[class] .login-form .el-input__inner{color:#edf3f7}.visual-login[class] .login-subtitle,.visual-login[class] .login-back,.visual-login[class] .account-guide span,.visual-login[class] .login-form .el-form-item__label,.visual-login[class] .el-checkbox__label,.visual-login[class] .login-session-note{color:#c4d1da}.visual-login[class] .account-guide{border-color:#465966}.visual-login[class] .account-guide :is(a,button){color:#a8ddc7}.visual-login--platform[class] .account-guide :is(a,button){color:#d3bfff}.visual-login--loading[class] .account-guide :is(a,button){color:#b6d0ff}.visual-login[class] .login-form .el-input__wrapper{background:#15232d}.visual-login[class] .password-toggle{color:#c4d1da}.visual-login[class] .password-toggle:hover{background:#263e4e}.visual-login[class] .login-form .el-input__inner::placeholder{color:#aebfc9}.visual-login[class] .login-form .el-input__wrapper:not(.is-focus){box-shadow:0 0 0 1px #617684 inset!important}.visual-login[class] .login-form .el-form-item__error,.visual-login[class] .error-message{color:#ffbbb3}.visual-login[class] .error-message{background:#3a2527;border-color:#7a4e51}.visual-login[class] .error-message :is(strong,span,small){color:inherit}}@media(prefers-reduced-motion:reduce){.visual-login[class] .login-box,.visual-login[class] .route-art *{animation:none!important;transition:none!important}}
