:root{--brand-color: #18a058;--surface-border: rgba(128, 128, 128, .24);--surface-border-subtle: rgba(128, 128, 128, .18);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}html.light{--surface-border: #c8d1de;--surface-border-subtle: #d3dae5}html,body,#app{width:100%;min-width:1024px;height:100%;margin:0}body{overflow:hidden}*,*:before,*:after{box-sizing:border-box}button,input,textarea,select{font:inherit}code{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.9em}.app-shell{height:100vh}.app-brand{height:60px;padding:0 14px;display:flex;align-items:center;gap:12px;overflow:hidden}.app-brand-copy{min-width:0;display:flex;flex-direction:column;white-space:nowrap}.app-header{height:60px;padding:0 24px}.app-header-row{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}.app-header-actions{display:flex;align-items:center;flex-shrink:0;gap:12px}.app-title{margin:2px 0 0;font-size:22px}.app-content{height:calc(100vh - 60px);overflow:hidden}.login-shell{position:relative;height:100vh;overflow:hidden;isolation:isolate}.login-scene,.login-scene-orb{position:absolute;pointer-events:none}.login-scene{inset:0;z-index:0;overflow:hidden;background:linear-gradient(rgba(128,128,128,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(128,128,128,.055) 1px,transparent 1px),linear-gradient(135deg,#f7faf9,#eef5f2 48%,#f6f8fb);background-size:48px 48px,48px 48px,auto}.login-scene-orb{width:420px;height:420px;border-radius:50%;filter:blur(2px);opacity:.56}.login-scene-orb-primary{top:-210px;left:18%;background:#18a05821}.login-scene-orb-secondary{right:-200px;bottom:-230px;background:#2080f01c}.login-topbar{position:absolute;z-index:4;top:0;left:0;right:0;height:76px;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--surface-border-subtle);background:#ffffffb8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-brand{display:flex;align-items:center;gap:12px}.login-brand-copy{display:flex;flex-direction:column;line-height:1.35}.login-brand-copy .n-text:first-child{color:#132019;font-size:16px}.login-brand-copy .n-text:last-child{color:#6c7771}.login-content{position:absolute;z-index:3;inset:76px 0 52px;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,470px);align-items:center;gap:clamp(60px,8vw,150px);padding:48px max(64px,calc((100vw - 1440px)/2));overflow:hidden}.login-filing-footer{position:absolute;z-index:4;right:0;bottom:0;left:0;height:52px;padding:0 28px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--surface-border-subtle);background:#ffffffad;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-card-wrap,.login-card{width:100%;max-width:470px;margin-left:auto}.login-card-wrap{overflow:visible}.login-card{border:1px solid rgba(45,65,54,.13);border-radius:18px;background:#ffffffe6;box-shadow:0 24px 70px #1c36281f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card .n-card__content,.login-panel-stack{overflow:hidden}.login-intro{width:min(680px,100%)}.login-kicker{margin-bottom:22px;color:#168b4e;font-size:12px;font-weight:700;letter-spacing:.18em}.login-title{margin:0 0 24px;color:#142019!important;font-size:clamp(42px,4.1vw,64px);font-weight:680;line-height:1.16;letter-spacing:-.035em}.login-description{display:block;max-width:580px;color:#66716b!important;font-size:16px;line-height:1.8}.login-capabilities{margin-top:40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.login-capability{min-width:0;padding:15px;display:flex;align-items:center;gap:11px;border:1px solid rgba(45,65,54,.11);border-radius:12px;background:#ffffff8f}.login-capability-icon{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#18a05814;font-size:18px}.login-capability strong,.login-capability small{display:block}.login-capability strong{color:#203027;font-size:14px}.login-capability small{margin-top:3px;overflow:hidden;color:#7b8580;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.login-auth-area{display:flex;align-items:center;min-width:0}.login-form,.login-session-alert{margin-top:20px}.login-card-heading{margin-bottom:4px}.login-card-heading span,.login-card-heading small{display:block}.login-card-heading span{color:#18231d;font-size:24px;font-weight:650}.login-card-heading small{margin-top:7px;color:#77817c;font-size:13px}.login-form-intro{display:block;margin-bottom:18px}.login-panel-enter-active,.login-panel-leave-active{transition:opacity .18s ease,transform .18s ease}.login-panel-enter-from{opacity:0;transform:translate(12px)}.login-panel-leave-to{opacity:0;transform:translate(-12px)}.login-card-shake{animation:login-card-shake .36s ease both}@keyframes login-card-shake{0%,to{transform:translate(0)}22%{transform:translate(-7px)}44%{transform:translate(7px)}66%{transform:translate(-4px)}82%{transform:translate(4px)}}@media(prefers-reduced-motion:reduce){.login-panel-enter-active,.login-panel-leave-active{transition:none}.login-card-shake{animation:none}}html.dark .login-scene{background:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(135deg,#0d1210,#111713 52%,#0d1319);background-size:48px 48px,48px 48px,auto}html.dark .login-topbar,html.dark .login-filing-footer{background:#0c110ebd;border-color:#ffffff14}html.dark .login-brand-copy .n-text:first-child,html.dark .login-title,html.dark .login-capability strong,html.dark .login-card-heading span{color:#f1f8f4!important}html.dark .login-brand-copy .n-text:last-child,html.dark .login-description,html.dark .login-capability small,html.dark .login-card-heading small{color:#e8f2ec94!important}html.dark .login-capability,html.dark .login-card{border-color:#ffffff1a;background:#141b17d1}.tree-node-label{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;line-height:1.35}.tree-node-label strong,.tree-node-label .n-text{display:block;max-width:100%}.soc-cell,.stack-cell,.identity-cell{display:flex;gap:8px}.soc-cell{align-items:center}.soc-cell>:first-child{flex:1}.stack-cell,.identity-cell{flex-direction:column;gap:2px}.modal-form{margin-top:16px}.modal-footer{display:flex;justify-content:flex-end;gap:12px}.device-modal{width:560px}.policy-modal{width:760px}.policy-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.span-2{grid-column:span 2}.form-suffix{margin-left:8px}.policy-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px}.policy-toolbar>div{display:flex;flex-direction:column;gap:4px}.system-note,.system-tabs,.ota-service-alert,.firmware-library-security-note,.firmware-library-limit-note{margin-top:16px}.native-setting-control{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.crud-empty-state{min-height:150px;display:flex;justify-content:center}.login-shell{--login-ink: #12211a;--login-muted: #66756d;--login-surface: rgba(255, 255, 255, .92);--login-canvas: #eef5f1;background:var(--login-canvas)}.login-shell:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 22%,rgba(24,160,88,.16),transparent 34%),radial-gradient(circle at 74% 78%,rgba(32,128,240,.1),transparent 30%),linear-gradient(145deg,#f8fbf9,#edf4f0 58%,#f6f8fb)}.login-showcase{min-width:0;align-self:stretch;display:grid;grid-template-rows:minmax(260px,1fr) 185px;gap:22px}.login-visual{position:relative;min-height:300px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(34,91,62,.12);border-radius:28px;background:linear-gradient(145deg,#ffffffb8,#e8f3ede6);box-shadow:inset 0 1px #ffffffe6}.login-visual-halo{position:absolute;width:380px;height:380px;border:1px solid rgba(24,160,88,.18);border-radius:50%;animation:login-halo 9s linear infinite}.login-visual-halo-two{width:270px;height:270px;border-color:#2080f029;animation-direction:reverse;animation-duration:7s}.login-device-card{position:relative;z-index:2;width:min(430px,76%);padding:18px;border:1px solid rgba(32,67,49,.16);border-radius:22px;background:#ffffffdb;box-shadow:0 24px 60px #294f3a29;transform:perspective(900px) rotateX(3deg) rotateY(-4deg)}.login-device-topline,.login-device-metrics{display:flex;align-items:center;justify-content:space-between;gap:10px}.login-device-topline{color:#50645a;font-size:11px;font-weight:750;letter-spacing:.16em}.login-live-dot{color:#168b4e;letter-spacing:.04em}.login-live-dot:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#18a058;box-shadow:0 0 0 5px #18a0581a}.login-device-mark{height:155px;display:grid;place-items:center}.login-device-mark img{width:84px;filter:drop-shadow(0 14px 22px rgba(24,160,88,.18))}.login-device-metrics span{flex:1;padding:10px 8px;border-radius:10px;background:#f2f7f4;color:#748078;font-size:10px;text-align:center}.login-device-metrics b{display:block;margin-bottom:2px;color:#1f3027;font-size:13px}.login-carousel{min-height:185px}.login-slide{height:100%;padding:6px 8px 30px;color:var(--login-ink)}.login-slide>span{color:#168b4e;font-size:11px;font-weight:750;letter-spacing:.16em}.login-slide h1{max-width:650px;margin:14px 0 10px;color:var(--login-ink);font-size:clamp(30px,3vw,46px);line-height:1.15;letter-spacing:-.03em}.login-slide p{max-width:590px;margin:0;color:var(--login-muted);font-size:14px;line-height:1.8}.login-card{background:var(--login-surface)!important}.login-card-heading span{color:var(--login-ink)!important}.login-card-heading small{color:var(--login-muted)!important}@keyframes login-halo{to{transform:rotate(360deg)}}html.dark .login-shell{--login-ink: #edf7f1;--login-muted: #9caaa2;--login-surface: rgba(20, 29, 24, .95);--login-canvas: #101713}html.dark .login-shell:before{background:radial-gradient(circle at 18% 22%,rgba(24,160,88,.18),transparent 34%),linear-gradient(145deg,#111914,#162019 58%,#111820)}html.dark .login-visual{border-color:#ffffff14;background:linear-gradient(145deg,#1b2720e6,#111c16f0)}html.dark .login-device-card{border-color:#ffffff17;background:#17221cf0}html.dark .login-device-topline{color:#9baba2}html.dark .login-device-metrics span{background:#202e26;color:#95a29b}html.dark .login-device-metrics b{color:#ecf6f0}@media(max-width:1100px){.login-content{grid-template-columns:minmax(0,1fr) 410px;gap:32px;padding-inline:36px}.login-device-card{width:86%}}.firmware-upload-modal{width:820px;max-height:calc(100vh - 48px)}.upload-steps{margin-bottom:24px}.firmware-dropzone{width:100%;min-height:150px;padding:24px;border:1px dashed currentColor;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;cursor:pointer;opacity:.72}.firmware-dropzone:hover,.firmware-dropzone.selected,.firmware-dropzone.dragging{color:var(--brand-color);opacity:1}.firmware-dropzone.disabled{cursor:not-allowed;opacity:.45}.firmware-dropzone input{display:none}.firmware-dropzone strong,.firmware-dropzone span{display:block}.bundle-file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.bundle-file-grid>div,.upload-result-list>div{padding:12px;border:1px solid rgba(128,128,128,.24);border-radius:8px}.bundle-file-grid span,.bundle-file-grid strong,.bundle-file-grid small{display:block}.bundle-file-grid strong{margin:4px 0}.bundle-ignored-note,.bundle-session-note{margin-top:12px}.upload-progress-box{margin-top:20px}.upload-progress-box>div{display:flex;justify-content:space-between;margin-bottom:8px}.upload-success-panel{text-align:center}.upload-success-icon{color:var(--brand-color);font-size:56px}.upload-result-list{margin:20px 0;display:grid;gap:10px;text-align:left}.upload-result-list>div{display:grid;grid-template-columns:100px 1fr}.upload-result-list dt,.upload-result-list dd{margin:0}.trip-cloud-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.trip-cloud-head h1{margin:4px 0 8px}.trip-cloud-head p{margin:0}.trip-cloud-kicker{color:var(--brand-color);font-weight:700;letter-spacing:.12em}.trip-cloud-alert,.trip-cloud-summary{margin-bottom:16px}.trip-cloud-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.trip-summary-card{padding:18px;border:1px solid var(--surface-border);border-radius:8px}.trip-summary-card span,.trip-summary-card strong,.trip-summary-card small{display:block}.trip-summary-card strong{margin:6px 0;font-size:24px}.trip-cloud-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;align-items:start}.trip-panel-heading,.trip-list-top,.trip-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.trip-panel-heading>div:first-child,.trip-chart-head>div:first-child{display:flex;flex-direction:column;gap:3px}.trip-list{width:100%;max-height:680px}.trip-list-item{padding:14px;border:1px solid var(--surface-border);border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.trip-list-item:hover,.trip-list-item.active{border-color:var(--brand-color)}.trip-list-device{margin:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-list-meta{display:flex;gap:10px}.trip-detail-column{min-width:0;display:flex;flex-direction:column;gap:16px}.trip-detail-stats,.trip-latest-strip,.disconnect-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.trip-detail-stats>div,.trip-latest-strip>div,.disconnect-grid>div{padding:12px;border:1px solid var(--surface-border-subtle);border-radius:8px}.trip-detail-stats span,.trip-detail-stats strong,.trip-latest-strip span,.trip-latest-strip strong{display:block}.trip-chart-head{margin:22px 0 10px}.trip-chart-legend span{display:inline-block;width:18px;height:3px;margin:0 5px 3px 12px}.trip-chart-legend .speed,.trip-speed-line{background:var(--brand-color);stroke:var(--brand-color)}.trip-chart-legend .temp,.trip-temp-line{background:#f0a020;stroke:#f0a020}.trip-timeline-chart{position:relative;height:260px;border:1px solid var(--surface-border);border-radius:8px;overflow:hidden}.trip-timeline-chart svg{width:100%;height:100%}.trip-grid-line{stroke:var(--surface-border)}.trip-speed-line,.trip-temp-line{stroke-width:3;vector-effect:non-scaling-stroke}.trip-chart-empty{position:absolute;inset:0;display:grid;place-items:center}.trip-bottom-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.trip-event-feed{margin-top:12px;display:flex;flex-direction:column;gap:8px}.trip-event-feed>div{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:8px}.trip-event-feed i{width:7px;height:7px;border-radius:50%;background:#f0a020}.trip-health-score{margin:8px 0;color:var(--brand-color);font-size:40px;font-weight:700}.device-detail-page{display:flex;flex-direction:column;gap:16px}.device-detail-header,.device-header-left,.device-name-line,.device-header-actions,.device-meta-line,.detail-panel-title,.health-row-head{display:flex;align-items:center;gap:12px}.device-detail-header,.detail-panel-title,.health-row-head{justify-content:space-between}.device-avatar,.device-overview-icon,.device-alert-icon,.detail-connection-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:var(--brand-color);background:color-mix(in srgb,var(--brand-color) 12%,transparent)}.device-identity h1{margin:0}.device-meta-line{margin-top:6px}.device-detail-main-grid,.device-detail-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.device-overview-grid,.device-info-grid,.battery-health-metrics,.wheel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.device-overview-card,.health-metric,.wheel-card,.detail-connection-item,.device-alert-row{padding:14px;border:1px solid rgba(128,128,128,.2);border-radius:8px}.device-overview-top,.detail-connection-item,.device-alert-row,.battery-health-layout{display:flex;align-items:center;gap:12px}.device-overview-label,.device-overview-value,.device-overview-note,.health-metric span,.health-metric strong,.wheel-info span,.wheel-info strong{display:block}.device-overview-value,.health-metric strong{margin-top:4px;font-size:20px}.battery-health-layout>*{flex:1}.battery-soc-block{text-align:center}.battery-voltage{font-size:24px;font-weight:700}.detail-connection-list,.device-alert-list{display:flex;flex-direction:column;gap:10px}.detail-connection-left,.device-alert-copy{flex:1}.wheel-visual{display:grid;place-items:center}.wheel-ring{width:110px;height:110px;border:8px solid rgba(128,128,128,.2);border-top-color:var(--brand-color);border-radius:50%;display:grid;place-items:center}.warning{color:#f0a020}@media(max-width:1280px){.app-content{min-width:960px}.login-content{grid-template-columns:minmax(0,1fr) 410px;gap:48px;padding-inline:40px}.login-title{font-size:46px}.login-description{max-width:480px;font-size:15px}.login-capabilities{gap:10px}.trip-cloud-workspace{grid-template-columns:300px minmax(0,1fr)}}.compact-tables .n-data-table .n-data-table-td,.compact-tables .n-data-table .n-data-table-th{padding-top:7px!important;padding-bottom:7px!important}
