:root{--bg:#070b10;--panel:#101720;--panel2:#151f2b;--line:#263444;--text:#eef5fb;--muted:#8fa0b2;--cyan:#25d9ff;--orange:#ff6b35;--green:#27d795}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:radial-gradient(circle at 75% 5%,#122839 0,transparent 28%),var(--bg);color:var(--text);font:15px/1.55 Inter,"Noto Sans TC",system-ui,sans-serif}
button,input{font:inherit}
button,a{transition:.18s}
.nav{height:68px;padding:0 max(24px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(7,11,16,.86);backdrop-filter:blur(14px);position:sticky;top:0;z-index:5}
.logo{color:#fff;text-decoration:none;font-weight:900;letter-spacing:.12em}.logo span{color:var(--cyan)}.logo b{margin-left:10px;padding:4px 7px;border:1px solid #385063;color:var(--muted);font-size:11px}
.nav-tools{display:flex;align-items:center;gap:18px}.lang-link{padding:5px 9px;border:1px solid #385063;color:var(--cyan);font-size:11px;font-weight:900;text-decoration:none}
.service-tabs{display:flex;align-self:stretch}.service-tab{min-width:120px;padding:0 20px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.08em;cursor:pointer}.service-tab:hover{color:#fff}.service-tab.active{border-bottom-color:var(--cyan);color:var(--cyan);background:rgba(37,217,255,.05)}
.account{display:flex;align-items:center;gap:14px;color:var(--muted)}.account button,.text-button{border:0;background:none;color:var(--cyan);cursor:pointer}
.shell{width:min(1160px,calc(100% - 36px));margin:auto;padding:54px 0 90px}.shell.narrow{width:min(900px,calc(100% - 36px))}
.hero{display:grid;grid-template-columns:1.35fr .65fr;gap:45px;align-items:end;padding:55px 0 68px}
.kicker{margin:0 0 12px;color:var(--cyan);font-size:11px;font-weight:900;letter-spacing:.18em}
h1,h2,p{margin-top:0}h1{font-size:clamp(52px,8vw,94px);line-height:.86;letter-spacing:-.055em;margin-bottom:26px}h1 span{color:transparent;-webkit-text-stroke:1px #64788b}h2{font-size:28px;margin-bottom:22px}
.lead{max-width:690px;color:#b7c5d2;font-size:19px}
.hero-card{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:#0c1219}
.hero-card div{min-height:105px;padding:19px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.hero-card div:last-child{border:0}.hero-card strong{font-size:25px;color:#fff}.hero-card span{font-size:11px;color:var(--muted)}
.proof-section{margin-bottom:42px}.proof-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:20px}.proof-heading h2{margin-bottom:0}.proof-heading>p{max-width:520px;margin-bottom:0;color:var(--muted)}
.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.proof-card{margin:0;display:grid;grid-template-columns:minmax(150px,220px) 1fr;align-items:center;overflow:hidden;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),#0c1219)}
.proof-image{height:330px;overflow:hidden;background:#070a10}.proof-image img{width:100%;height:100%;display:block;object-fit:cover;object-position:top}
.proof-card figcaption{padding:25px}.proof-card figcaption strong,.proof-card figcaption span{display:block}.proof-card figcaption strong{color:var(--cyan);font-size:25px}.proof-card figcaption span{margin-top:8px;color:#c4d0db}.proof-note{margin:12px 0 0;color:#68798a;font-size:11px}
.auth-grid,.app-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.app-grid{grid-template-columns:1.55fr .7fr}
.panel{background:linear-gradient(145deg,var(--panel),#0c1219);border:1px solid var(--line);padding:34px;margin-bottom:20px;box-shadow:0 20px 60px rgba(0,0,0,.18)}
.stack{display:grid;gap:17px}label{display:grid;gap:7px;color:#aebdca;font-size:13px;font-weight:700}
input{width:100%;min-height:48px;border:1px solid #334558;border-radius:5px;background:#090e14;color:#fff;padding:0 14px;outline:0}input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(37,217,255,.1)}
select{width:100%;min-height:48px;border:1px solid #334558;border-radius:5px;background:#090e14;color:#fff;padding:0 14px;outline:0}select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(37,217,255,.1)}
button.primary,a.primary,button.secondary{min-height:50px;border:0;border-radius:5px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:900;cursor:pointer}
button.primary,a.primary{background:var(--orange);color:#fff}button.secondary{background:var(--cyan);color:#071019}button:disabled{opacity:.55;cursor:wait}
small{color:var(--muted)}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.balance{display:flex;align-items:baseline;gap:6px}.balance span,.balance em{color:var(--muted);font-style:normal;font-size:12px}.balance strong{font-size:34px;color:var(--green)}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode{position:relative;padding:18px;border:1px solid #334558;background:#0a1017;cursor:pointer}.mode.active{border-color:var(--cyan);box-shadow:inset 0 0 0 1px var(--cyan)}.mode input{position:absolute;opacity:0}.mode b,.mode span{display:block}.mode b{font-size:18px;color:#fff}.mode span{color:var(--muted);font-size:11px}
.drop{min-height:210px;border:1px dashed #456078;background:rgba(4,9,14,.5);display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}.drop input{position:absolute;opacity:0;pointer-events:none}.drop-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--cyan);color:var(--cyan);font-weight:900;margin-bottom:12px}.drop b,.drop small{display:block}
.job-note{display:flex;justify-content:space-between;color:var(--muted)}.job-note strong{color:var(--orange)}
.side p,.side li{color:var(--muted)}.side ul{padding-left:19px}.side li{margin:10px 0}.side hr{border:0;border-top:1px solid var(--line);margin:30px 0}
.wechat{padding:17px;background:#09110e;border:1px solid #1b5139}.wechat span{display:block;color:var(--green);font-size:11px;font-weight:900}.wechat button{border:0;background:none;color:#fff;padding:2px 0;font-size:24px;font-weight:900;cursor:pointer}
.paypal-box{padding:20px;border:1px solid #27486c;background:#0b1420}.paypal-price{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.paypal-price strong{font-size:32px;color:#fff}.paypal-price span{color:var(--muted);font-size:12px}.paypal-button{width:100%;min-height:50px;border:0;border-radius:5px;background:#ffc439;color:#111;font-weight:900;cursor:pointer}.paypal-button:hover{background:#ffcf5a}
.progress{margin-top:20px;display:flex;align-items:center;gap:12px;color:var(--muted)}.progress i{width:18px;height:18px;border:2px solid #34495a;border-top-color:var(--cyan);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.result{margin-top:20px;padding:20px;border:1px solid #277454;background:#0c1b16;display:grid;gap:9px}.result b{color:var(--green);font-size:20px}.result span,.result code{color:#a9c4b8;overflow-wrap:anywhere}.result a{margin-top:8px}
.water-analysis{margin:20px 0;padding:18px;border:1px solid #2d5265;background:#0a1720;display:grid;grid-template-columns:1fr 1fr;gap:16px}.water-analysis div{min-width:0}.water-analysis span,.water-analysis strong{display:block}.water-analysis span{color:var(--muted);font-size:11px;text-transform:uppercase}.water-analysis strong{margin-top:5px;color:#fff;overflow-wrap:anywhere}.water-analysis b{color:var(--cyan);font-size:28px}.water-history{margin-top:22px}.water-history article{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.water-history span{display:block;color:var(--muted);font-size:11px}.water-history a{color:var(--cyan);font-weight:800;text-decoration:none}.water-history h3{margin:0 0 8px;font-size:14px;color:var(--muted)}
.history article{display:grid;grid-template-columns:1fr auto 60px;align-items:center;gap:18px;padding:16px 0;border-top:1px solid var(--line)}.history b,.history span{display:block}.history span{color:var(--muted);font-size:11px}.history a{color:var(--cyan)}.status{font-size:11px;text-transform:uppercase;color:var(--muted)}.status.completed{color:var(--green)}.status.refunded{color:#ffad7c}.empty{color:var(--muted)}
.toast{position:fixed;right:24px;bottom:24px;max-width:360px;padding:15px 18px;border:1px solid #42566a;background:#111b25;color:#fff;z-index:20;box-shadow:0 18px 50px #000}
.notice{padding:13px 15px;margin-bottom:20px;background:#13241d;border:1px solid #26593f;color:#bce8d2}.back{display:inline-block;margin-bottom:20px;color:var(--cyan);text-decoration:none}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:11px}.plus{color:var(--green)}.minus{color:var(--orange)}
.quick-credit{display:flex;gap:6px}.quick-credit button{min-width:42px;padding:7px 9px;border:1px solid #365269;border-radius:4px;background:#101c27;color:var(--cyan);font-weight:900;cursor:pointer}.quick-credit button:hover{border-color:var(--cyan);background:#173044}
.file-hash{display:block;max-width:260px;margin-top:4px;color:#68798a;font:10px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;white-space:normal}.file-download{display:inline-block;padding:7px 10px;border:1px solid #2f6574;border-radius:4px;color:var(--cyan);text-decoration:none;font-weight:800}.file-download:hover{border-color:var(--cyan);background:#102633}.file-missing{color:#68798a;font-size:12px}
.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:24px}.admin-actions form{padding:20px;border:1px solid var(--line);background:#0a1017}.admin-actions h2{margin-bottom:14px}.admin-logout{margin-top:22px}
.admin-service-tabs{display:grid;grid-template-columns:1fr 1fr;margin:28px 0 18px;border:1px solid var(--line);background:#080d12}.admin-service-tabs button{min-height:58px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-size:13px;font-weight:900;letter-spacing:.08em;cursor:pointer}.admin-service-tabs button:last-child{border-right:0}.admin-service-tabs button span{margin-left:8px;color:#68798a}.admin-service-tabs button.active{background:#10202a;color:var(--cyan);box-shadow:inset 0 -2px var(--cyan)}.admin-service-tabs button[data-admin-service="water"].active{background:#131b0d;color:#bafc45;box-shadow:inset 0 -2px #bafc45}.admin-service-panel{margin-top:0}
.hidden{display:none!important}
@media(max-width:800px){.shell{padding-top:25px}.hero,.auth-grid,.app-grid,.proof-grid,.admin-actions{grid-template-columns:1fr}.hero{padding-top:30px}.hero-card{grid-template-columns:1fr 1fr 1fr}.proof-heading{display:block}.proof-heading>p{margin-top:10px}.proof-card{grid-template-columns:145px 1fr}.proof-image{height:285px}.panel{padding:23px}.mode-grid{grid-template-columns:1fr}.history article{grid-template-columns:1fr auto}.history article a{grid-column:1/-1}.nav{height:auto;min-height:68px;padding-inline:18px;flex-wrap:wrap}.service-tabs{order:3;width:100%;height:48px}.service-tab{flex:1;min-width:0}.account span{display:none}.water-analysis{grid-template-columns:1fr}}
@media(max-width:480px){.proof-card{grid-template-columns:1fr}.proof-image{height:430px}.proof-card figcaption{padding:18px}}
.seo-panel{margin-bottom:42px}.seo-panel h2{margin-bottom:14px}.seo-panel p{max-width:900px;color:#b7c5d2}.seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.seo-grid article{padding:20px;border:1px solid #334558;background:#0a1017}.seo-grid strong,.seo-grid span{display:block}.seo-grid strong{color:#fff;font-size:18px}.seo-grid span{margin-top:8px;color:var(--muted);font-size:13px}
.danger-form{border-color:#6f2b2b!important;background:linear-gradient(145deg,#211016,#100b0e)!important}.danger-form h2{color:#ff9b8f}.danger-button,.danger-mini{border:1px solid #9d3a34!important;background:#6f211d!important;color:#fff!important;border-radius:5px;font-weight:900;cursor:pointer}.danger-button{min-height:50px;padding:0 20px}.danger-mini{min-width:54px;padding:7px 10px}.danger-button:hover,.danger-mini:hover{background:#982d27!important;border-color:#ff6b5c!important}

/* Water Temperature Lab */
body.water-mode{background:radial-gradient(circle at 76% 7%,rgba(112,225,255,.09),transparent 28%),linear-gradient(115deg,rgba(186,252,69,.035),transparent 38%),#090b0d}
body.water-mode .nav{border-bottom-color:#273039;background:rgba(9,11,13,.9)}
body.water-mode .service-tab[data-service="water"].active{border-bottom-color:#bafc45;color:#bafc45;background:rgba(186,252,69,.05)}
body.water-mode #authView .panel{border-color:#303a32;background:linear-gradient(145deg,#14191e,#0d1013)}
body.water-mode #authView button.primary,body.water-mode #authView button.secondary{background:#bafc45;color:#0b0e0f}
.water-lab-hero{position:relative;padding:72px 0 48px}.water-lab-hero h1{max-width:820px;margin:20px 0 25px;font-size:clamp(58px,9vw,106px);line-height:.82;text-transform:uppercase}.water-lab-hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #87929c}.water-lab-hero>div>p:last-child{max-width:650px;color:#aab3ba;font-size:17px;line-height:1.7}.water-lab-eyebrow,.water-lab-step{color:#bafc45;font:800 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em}.water-lab-eyebrow span{display:inline-block;width:28px;height:1px;margin-right:10px;background:#bafc45;vertical-align:middle}.water-lab-badge{position:absolute;right:0;bottom:55px;padding:13px 0 13px 20px;border-left:2px solid #bafc45}.water-lab-badge span,.water-lab-badge small,.water-lab-badge strong{display:block}.water-lab-badge span,.water-lab-badge small{color:#87929c;font:700 10px/1.6 ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em}.water-lab-badge strong{color:#f6f8f9;font-size:25px}
.app-grid.water-active{display:block}.app-grid.water-active>#obdPanel,.app-grid.water-active>.side{display:none}.water-lab{position:relative;color:#f6f8f9}.water-lab-account{position:absolute;right:20px;top:-52px;display:flex;align-items:baseline;gap:7px}.water-lab-account span,.water-lab-account em{color:#87929c;font-size:11px;font-style:normal}.water-lab-account strong{color:#bafc45;font-size:30px}.water-lab-workspace{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.water-lab-card{margin-bottom:18px;padding:28px;border:1px solid #273039;background:linear-gradient(145deg,rgba(20,25,30,.98),rgba(13,16,19,.98));box-shadow:0 25px 80px rgba(0,0,0,.18)}.water-lab-card h2{margin:12px 0 22px}.water-lab-drop{position:relative;min-height:210px;border:1px dashed #3b4852;background:rgba(255,255,255,.012);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;cursor:pointer;transition:.2s}.water-lab-drop:hover,.water-lab-drop.dragging{border-color:#bafc45;background:rgba(186,252,69,.04)}.water-lab-drop input{position:absolute;opacity:0;pointer-events:none}.water-lab-drop-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #273039;color:#bafc45;font-size:23px}.water-lab-drop b{max-width:88%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}.water-lab-drop small{color:#87929c}.water-lab-primary{width:100%;min-height:50px;border:0;border-radius:0;background:#bafc45;color:#0b0e0f;font:900 12px ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}.water-lab-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.water-lab-primary:disabled{opacity:.4;cursor:wait;transform:none}.water-lab-progress{min-height:30px;margin-top:14px;display:flex;align-items:center;gap:11px;color:#87929c}.water-lab-progress i{width:18px;height:18px;border:2px solid #344038;border-top-color:#bafc45;border-radius:50%;animation:spin .7s linear infinite}.water-lab-result-card{display:flex;flex-direction:column;min-height:390px}.water-lab-empty{margin:auto;text-align:center;color:#59636b}.water-lab-empty span{font-size:60px;font-weight:200}.water-lab-empty p{font:700 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em}.water-analysis{margin:auto 0;padding:0;border:0;background:transparent;display:block}.water-analysis>div{padding:15px 0;border-bottom:1px solid #273039}.water-analysis>div:first-child{padding-top:0}.water-analysis span{color:#87929c;font:700 10px ui-monospace,monospace;letter-spacing:.12em}.water-analysis strong{margin-top:9px;font:800 14px ui-monospace,monospace}.water-analysis .water-lab-temperature{border-bottom:0}.water-analysis .water-lab-temperature strong{display:flex;align-items:flex-start;color:#f6f8f9}.water-analysis .water-lab-temperature b{color:#f6f8f9;font:900 82px/.82 Inter,system-ui,sans-serif;letter-spacing:-.07em}.water-lab-temperature strong{color:#bafc45!important}.water-lab-modify{display:grid;grid-template-columns:.75fr 1.25fr;gap:42px;align-items:end}.water-lab-modify>div>p:last-child{margin-bottom:0;color:#87929c}.water-lab-modify select{border-color:#3c4841;background:#0b0f0d}.water-lab-modify .job-note strong{color:#bafc45}.water-lab-downloads{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.water-download-card{padding:24px;border:1px solid #36513a;background:#0c1710}.water-download-card span,.water-download-card strong{display:block}.water-download-card span{color:#87929c;font:700 10px ui-monospace,monospace;letter-spacing:.13em}.water-download-card strong{margin:7px 0 18px;color:#fff}.water-download-card a{min-height:48px;border:1px solid #bafc45;color:#bafc45;display:flex;align-items:center;justify-content:center;text-decoration:none;font-weight:900}.water-download-card.modified{background:#101b0c;border-color:#638333}.water-download-card.modified a{background:#bafc45;color:#0b0e0f}.water-history h3{color:#bafc45;font:800 11px ui-monospace,monospace;letter-spacing:.15em}.water-history article{grid-template-columns:1fr auto auto;border-top-color:#273039}.water-history .water-history-actions{display:flex;gap:8px}.water-history .water-history-actions a{padding:7px 10px;border:1px solid #3c5140;color:#bafc45;font-size:11px}.water-history .water-history-actions a:last-child{background:#bafc45;color:#0b0e0f}
@media(max-width:800px){.water-lab-hero{padding-top:48px}.water-lab-badge{position:static;margin:28px 0 0}.water-lab-account{position:static;justify-content:flex-end;margin:-4px 2px 12px}.water-lab-workspace,.water-lab-modify,.water-lab-downloads{grid-template-columns:1fr}.water-lab-card{padding:23px}.water-analysis .water-lab-temperature b{font-size:68px}.water-history article{grid-template-columns:1fr}.water-history .water-history-actions{grid-column:1/-1}}

/* Keep long ECU filenames inside the original fixed grid proportions. */
.water-lab-workspace{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.water-lab-card,.water-lab-result-card,.water-analysis,.water-analysis>div,.water-download-card,.water-history article>div:first-child{min-width:0}
.water-lab-drop{width:100%;min-width:0;overflow:hidden}
.water-lab-drop b{display:block;width:88%;max-width:88%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.water-analysis strong{max-width:100%;overflow-wrap:anywhere}
.water-lab-modify{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}
.water-lab-downloads{grid-template-columns:minmax(0,1fr)}
.water-download-card strong,.water-history article b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.water-history article{grid-template-columns:minmax(0,1fr) auto}
.water-target-row{display:flex;align-items:stretch;gap:8px;min-width:0}.water-target{min-width:62px;min-height:50px;padding:0 13px;border:1px solid #3b4840;background:#0b0f0d;color:#f6f8f9;font:900 13px ui-monospace,monospace;cursor:pointer}.water-target:hover:not(:disabled){border-color:#bafc45;color:#bafc45}.water-target.active{border-color:#bafc45;color:#bafc45;background:rgba(186,252,69,.08);box-shadow:inset 0 0 0 1px #bafc45}.water-target:disabled{opacity:.25;cursor:not-allowed}.water-custom-target{min-width:150px;min-height:50px;margin-left:auto;padding:0 12px;border:1px solid #3b4840;background:#0b0f0d;display:flex;grid-template-columns:auto 1fr auto;align-items:center;gap:7px}.water-custom-target span{color:#87929c;font:800 9px ui-monospace,monospace;letter-spacing:.1em}.water-custom-target input{width:50px;min-height:0;padding:0;border:0;background:transparent;color:#f6f8f9;font:900 15px ui-monospace,monospace;text-align:right;box-shadow:none}.water-custom-target input:focus{border:0;box-shadow:none}.water-custom-target em{color:#bafc45;font:900 12px ui-monospace,monospace;font-style:normal}
@media(max-width:800px){.water-lab-workspace,.water-lab-modify,.water-lab-downloads,.water-history article{grid-template-columns:1fr}}
@media(max-width:560px){.water-target-row{flex-wrap:wrap}.water-target{flex:1;min-width:54px}.water-custom-target{width:100%;margin-left:0}}
.water-inline-status{margin-top:14px;padding:14px 16px;border:1px solid #526978;background:#11191f;color:#f6f8f9;font-size:13px;font-weight:800;line-height:1.55;white-space:pre-line}
