/* 以参考图350px视口为基准，原生端转换为rpx，Web端保留px验证布局。 */
page,body{margin:0;background:#f4f6f9;color:#28333f;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:12px}*{box-sizing:border-box}button{font:inherit;margin:0;padding:0;border:0;background:none;line-height:normal;color:inherit}button::after{border:0}button[disabled]{opacity:.35}.page{padding:12px 12px 50px;max-width:540px;margin:auto}.datebar{height:49px;background:#fff;border-radius:12px;display:flex;align-items:center;gap:6px;padding:7px}.arrow{flex-shrink:0;width:35px;height:35px;background:#f4f6f9;border-radius:8px;font-size:24px;color:#52667e}.datebar picker,.datepicker{flex:1;text-align:center}.date{font-size:16px;font-weight:700;letter-spacing:.2px;white-space:nowrap}.weekday{font-size:11px;color:#90a0b6;font-weight:500}.latest{background:#eaf4fc;color:#3784c7;border-radius:5px;font-size:10px;padding:6px;white-space:nowrap}.segment{display:flex;background:#eaf0f4;border-radius:9px;padding:3px;gap:2px}.segment button{flex:1;height:29px;font-size:13px;font-weight:600;color:#8b9db5;border-radius:6px}.markets{margin:10px 0}.markets .active{background:#fff;border:1px solid #488ee5;color:#3484d4;box-shadow:0 1px 4px #d5dce6}.views{margin:10px 0}.views .active{background:#fff;color:#28333f}.card{background:#fff;border-radius:12px;padding:14px 12px;margin-bottom:10px}.heading{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;gap:8px;margin-bottom:12px}.small,.sync{font-weight:400;font-size:10px;color:#6e819d}.sync{font-size:9px;white-space:nowrap}.sync::first-letter{color:#0ba68f}.metrics{display:grid;grid-template-columns:1fr 1fr;border:1px solid #edf1f7;border-radius:10px;overflow:hidden}.metric{padding:10px 11px;min-width:0}.metric:nth-child(odd){border-right:1px solid #edf1f7}.metric:nth-child(-n+2){border-bottom:1px solid #edf1f7}.label{color:#71829b;font-size:10px;margin-bottom:3px}.number{font-size:21px;line-height:25px;font-weight:700;letter-spacing:.1px}.unit{font-size:9px;color:#8b9eba;margin-left:3px;font-weight:400}.hint{color:#8b9eba;font-size:10px;margin-top:5px}.high{color:#f23d46}.low{color:#08a68f}.compare{margin-top:9px;padding:8px 7px;display:flex;align-items:center;justify-content:space-between;background:#f5f7fa;border-radius:7px;gap:5px;font-size:9px;color:#71829b;white-space:nowrap}.compare>text:first-child,.compare>span:first-child{color:#52667e;font-weight:600}.compare b{font-weight:600;color:#34404d;margin-left:2px}.chartcard{padding-bottom:17px}.chart{width:100%;height:218px;display:block;margin-top:6px}.chartnote{text-align:center;color:#9aa8bc;font-size:9px;margin:2px 0 10px;min-height:13px}.legend{display:flex;justify-content:center;gap:18px;color:#63748e;font-size:10px;margin-top:9px}.line::before{content:"";display:inline-block;width:13px;border-top:2px solid;margin:0 4px 2px 0}.line.dashed::before{border-top-style:dashed}.blue::before{color:#347fc4}.red::before{color:#ff526b}.bands{gap:17px}.peak{color:#ef8738}.flat{color:#4c96cd}.valley{color:#0ba68f}.groups{padding-bottom:14px}.groups .heading{margin-bottom:10px}.groups .small{font-size:9px}.group{padding:9px 0 4px;border-bottom:2px solid;margin:0 1px 6px}.group:last-child{margin-bottom:0}.groupmain,.grouprange{display:flex;align-items:center;justify-content:space-between}.groupmain>text:first-child,.groupmain>span:first-child{font-weight:600}.groupvalue{font-size:15px;font-weight:700;color:#303c48}.grouprange{color:#8b9eba;font-size:10px;line-height:16px;margin:2px 0 0 12px;gap:5px}.columns{display:flex;gap:7px}.column{flex:1;min-width:0}.row{height:22px;display:flex;align-items:center;gap:8px;border-left:2px solid;padding:0 4px}.row:nth-child(odd){background:#f6f8fa}.time{font-size:10px;color:#71829b;font-variant-numeric:tabular-nums}.tag{font-size:9px;white-space:nowrap}.price{font-size:12px;font-weight:600;color:#35404b;margin-left:auto;font-variant-numeric:tabular-nums}.detail .heading{margin-bottom:12px}.footer{text-align:center;color:#a2aebe;font-size:10px;line-height:17px;margin-top:16px}.empty{text-align:center;padding:65px 12px;color:#90a0b6}.emptytitle{font-size:16px;color:#52667e;font-weight:600;margin-bottom:12px}.emptybutton{margin:25px auto 0;padding:10px 18px;color:#3484d4;background:#eaf4fc;border-radius:6px;display:block;width:max-content}@media(max-width:340px){.row{gap:4px}.compare{font-size:8px}.number{font-size:19px}.groups .small{font-size:8px}}

.webnav{height:54px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.datepicker{position:relative}.datepicker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.datebar button,.segment button{cursor:pointer}button:focus-visible{outline:2px solid #3484d4;outline-offset:2px}.preview-root{max-width:540px;margin:auto} .row{border-left-color:currentColor}.groups .group{border-color:currentColor}

.grouprange>text:first-child,.grouprange>span:first-child{flex:1;min-width:0}.grouprange>text:last-child,.grouprange>span:last-child{flex-shrink:0}

html{scrollbar-width:none}::-webkit-scrollbar{display:none}.metric>div:nth-child(2){white-space:nowrap}.number{font-size:20px}.grouprange>span:first-child{font-size:9px}

.overview .metric{padding:9px 11px}.overview .heading{margin-bottom:10px}.overview .compare{padding-top:7px;padding-bottom:7px}.chartcard .heading{margin-bottom:6px}.chartcard .chart{margin-top:0}.chartcard{padding-bottom:14px}

.coverage,.comparisonnote{color:#8b9eba;font-size:10px;line-height:15px;margin:-5px 0 7px}.comparisonnote{margin:5px 0 0}.grouprange{align-items:flex-start}.grouprange>span:last-child{font-size:9px}

/* 企微浏览器内保持单页布局，兼容全面屏底部安全区。 */
.page{padding-bottom:calc(30px + env(safe-area-inset-bottom, 0px))}button,input{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}

/* 跨省统一登录入口：登录区独立排版，不覆盖登录后的电价卡片。
 * 桌面保持居中的窄表单，手机保留足够边距；状态消息预留空间避免按钮跳动。
 */
.login-view{background:#f3f6fb;background-image:radial-gradient(ellipse at 15% 0%,#deebfc 0,transparent 55%),radial-gradient(ellipse at 100% 100%,#e9eff9 0,transparent 50%)}
.login-view .preview-root{max-width:none}.login-view .webnav{display:none}
.login-shell{width:100%;max-width:456px;min-height:100vh;min-height:100svh;margin:auto;padding:64px 24px 32px;display:flex;flex-direction:column;justify-content:center}
.login-brand{display:flex;align-items:center;flex-direction:column;margin-bottom:30px}
.brand-mark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:#2468c9;border:1px solid #3678d8;border-radius:17px;color:#fff;box-shadow:0 8px 20px #2468c91c;margin-bottom:15px}.brand-mark svg{width:32px;height:32px}
.brand-name{font-size:25px;font-weight:700;letter-spacing:2px;color:#1b314f}.brand-caption{font-size:12px;color:#71819a;letter-spacing:3px;margin-top:9px}
.login-card{padding:30px 28px 25px;background:#fff;border:1px solid #e7edf5;border-radius:18px;box-shadow:0 12px 40px #273c5e06}
.login-kicker{font-size:11px;letter-spacing:1px;color:#3475cd;display:block;margin-bottom:10px}.login-card h1{font-size:21px;line-height:1.4;margin:0;color:#24364f;font-weight:650}.login-card p{font-size:12px;line-height:1.7;color:#8994a5;margin:9px 0 25px}.login-card label{display:block;font-size:13px;color:#4c5b70;font-weight:500;margin:19px 0 9px}
.login-card input{display:block;box-sizing:border-box;width:100%;height:48px;border:1px solid #dfe5ee;border-radius:8px;padding:10px 13px;font:inherit;font-size:16px;background:#fafbfd;color:#263442;transition:border-color .15s,box-shadow .15s}.login-card input::placeholder{color:#a6afbd;font-size:13px}.login-card input:focus{outline:none;border-color:#4c87dc;box-shadow:0 0 0 3px #397edb14;background:#fff}
.login-submit{width:100%;height:48px;background:#286bcc;color:#fff;border:0;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;letter-spacing:3px}.login-submit:hover{background:#205fb9}.login-submit:disabled{opacity:.6;cursor:wait}.login-message{min-height:22px;margin:12px 0 7px;color:#b43737;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.login-help{text-align:center;color:#9aa4b3;font-size:11px;margin-top:20px;line-height:1.6}
.login-footer{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:28px;color:#94a1b3;font-size:11px}.login-footer i{width:3px;height:3px;border-radius:50%;background:#bcc8d7}
@media(max-width:380px){.login-shell{padding:32px 20px 24px}.login-card{padding:25px 22px 22px}.login-brand{margin-bottom:24px}.login-card h1{font-size:20px}}
@media(max-height:720px){.login-shell{padding-top:26px;padding-bottom:22px}.login-brand{margin-bottom:22px}.brand-mark{width:48px;height:48px;margin-bottom:10px}.login-footer{margin-top:22px}}

/* 省份切换独立于日前/实时市场选择，切换时清空旧省数据。 */
.row.market{border-left-color:#c4cfdf}

.disclosure{font-size:10px;color:#8291a7;text-align:center;margin:0 0 10px;line-height:1.6}

.groupnote{font-size:10px;line-height:1.7;color:#8b9eba;margin-top:12px}

/* 紧凑单行工具栏：账号、地区、退出分别占固定位置，长账号省略且保留title。
 * 不减少省份切换的点击高度；窄屏通过缩短间距为账号留出空间。
 */
.workspace-bar{display:grid;grid-template-columns:minmax(0,1fr) 112px auto;align-items:center;gap:8px;background:#fff;border:1px solid #e8edf4;border-radius:11px;padding:8px 10px;margin-bottom:10px}
.accountbar{display:contents}.account-identity{grid-column:1;grid-row:1;display:flex;align-items:center;gap:6px;min-width:0}.account-avatar{width:25px;height:25px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#edf4ff;color:#5284c9;border-radius:50%}.account-avatar svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:#43526a}
.logout-button{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;min-height:34px;padding:0 5px;border:0;background:transparent;border-radius:6px;color:#8a98ab;font-size:11px;cursor:pointer}.logout-button svg{width:13px;height:13px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.logout-button:hover{background:#f5f8fc;color:#3e6ba7}
.region-row{grid-column:2;grid-row:1;min-width:0}.region-label{display:none}.province-picker{display:flex;gap:2px;background:#f0f3f8;border-radius:7px;padding:3px;margin:0}.province-picker button{flex:1;min-width:0;min-height:30px;border-radius:5px;font-size:12px;color:#8a98ac;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.province-picker button.active{background:#fff;color:#286bcc;font-weight:600;box-shadow:0 1px 4px #183e7210}.province-picker button:hover:not(.active){color:#4c6e9e;background:#e7edf5}
@media(min-width:440px){.workspace-bar{grid-template-columns:minmax(0,1fr) 140px auto;gap:12px;padding:8px 12px}}
@media(max-width:340px){.workspace-bar{gap:5px;padding:7px 8px;grid-template-columns:minmax(0,1fr) 102px auto}.account-avatar{width:22px;height:22px}.account-identity{gap:4px}.account-name{font-size:11px}.logout-button{padding:0 2px;font-size:10px;gap:3px}}
