:root{--ink:#193937;--muted:#617e7c;--sea:#217775;--line:#d6e5e3;--paper:#fdfefe;--foam:#e6f2f1}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;overscroll-behavior:none;background:var(--foam);color:var(--ink);font-family:'PingFang SC','Hiragino Sans GB',system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y}
body{position:relative}button{padding:0;font:inherit;color:inherit;border:0;cursor:pointer;-webkit-appearance:none;appearance:none}button:focus-visible{outline:3px solid #e6b74c;outline-offset:3px}button:active{transform:translateY(1px)}button[hidden]{display:none!important}svg{display:block;width:32px;height:32px;flex-shrink:0;pointer-events:none}button span,button img{pointer-events:none}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.topbar{position:absolute;top:max(22px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));right:70px;z-index:10;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.title{display:flex;align-items:center;gap:12px}.brand-mark{width:48px;height:48px;filter:drop-shadow(0 4px 7px #164b4320)}h1{font-size:22px;font-weight:650;letter-spacing:1px}#carName{display:block;font-size:12px;color:var(--muted);margin-top:4px}.icon-btn{width:42px;height:42px;border-radius:50%;background:#ffffffc9;display:grid;place-items:center;pointer-events:auto}.icon-btn svg{width:23px;height:23px}
.clean-meter{position:absolute;top:101px;left:30px;width:215px;z-index:8}.clean-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:8px}#cleanPct{font-variant-numeric:tabular-nums;color:var(--sea)}.clean-track{height:6px;background:#a5c6c24d;border-radius:8px;overflow:hidden}#cleanFill{height:100%;width:0;background:var(--sea);border-radius:inherit;transition:width .16s}.steps{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:11px;color:#728e8b}.steps .current{color:var(--sea);font-weight:600}.step-line{width:22px;height:1px;background:#9ab8b4}
.toolbar{position:absolute;z-index:10;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:stretch;gap:22px;padding:15px 19px;background:#fdfefeed;border:1px solid #ffffff;border-radius:23px;box-shadow:0 14px 40px #2a5c5920,0 1px 2px #2a5c591a;backdrop-filter:blur(16px);max-width:calc(100% - 40px)}.group-label{font-size:11px;color:var(--muted);margin-bottom:8px;line-height:1}.tool-row,.car-row{display:flex;gap:6px}.tools-group{padding-right:20px;border-right:1px solid var(--line)}.tool{width:73px;height:66px;border-radius:13px;background:#eef4f3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;border:1.5px solid transparent;font-size:12px;font-weight:600}.tool svg{width:40px;height:40px}.tool.active{border-color:#549d96;background:#e0f0eb}.tool[data-tool="wax"]{background:#fbf2d8}.car-btn{width:85px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:transparent;border:1.5px solid transparent;border-radius:13px;font-size:11px;white-space:nowrap}.car-btn img{width:82px;height:43px;object-fit:contain}.car-btn.active{border-color:#6da69e;background:#edf5f1}.action-row{display:flex;flex-direction:column;justify-content:center;gap:5px;border-left:1px solid var(--line);padding-left:17px}.action-btn{display:flex;gap:5px;align-items:center;justify-content:flex-start;background:transparent;height:32px;white-space:nowrap;font-size:11px;color:var(--muted)}.action-btn svg{width:25px;height:25px}.hint-bubble{position:absolute;left:50%;bottom:155px;transform:translate(-50%,5px);font-size:13px;white-space:nowrap;pointer-events:none;color:var(--muted);background:#fdfefebb;padding:8px 17px;border-radius:20px;opacity:0;transition:opacity .3s,transform .3s}.hint-bubble.show{opacity:1;transform:translate(-50%,0)}
.victory{position:absolute;z-index:12;bottom:159px;left:50%;transform:translate(-50%,12px);opacity:0;visibility:hidden;transition:opacity .3s,transform .3s;max-width:calc(100% - 32px)}.victory.show{opacity:1;visibility:visible;transform:translate(-50%,0)}.victory-card{display:flex;align-items:center;gap:14px;background:#fffffff5;padding:14px 18px;border-radius:20px;box-shadow:0 8px 35px #24514c1f;border:1px solid #fff;white-space:nowrap}.finish-mark{width:44px;height:44px}.victory h2{font-size:19px;font-weight:650}.victory p{font-size:11px;color:var(--muted);margin-top:4px}.next-btn{margin-left:14px;background:var(--sea);color:#fff;border-radius:11px;padding:12px 15px;display:flex;gap:10px;align-items:center;font-size:13px}.next-btn svg{width:17px;height:17px}.dismiss-btn{width:26px;height:34px;background:transparent;color:#879e99;font-size:24px}.loading{position:absolute;inset:0;z-index:30;background:var(--foam);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted);font-size:14px}.loading.hide{display:none}.spinner{width:32px;height:32px;border:3px solid #c8ded8;border-top-color:var(--sea);border-radius:50%;animation:spin .8s linear infinite}.fx{position:fixed;z-index:16;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}
@media(orientation:portrait){.toolbar{width:calc(100% - 32px);max-width:650px;display:grid;grid-template-columns:1fr auto;gap:12px;padding:15px;bottom:max(16px,env(safe-area-inset-bottom))}.cars-group{grid-column:1/-1;grid-row:1}.car-row{justify-content:space-between}.car-btn{flex:1;min-width:0;width:0;height:66px}.car-btn img{width:100%;max-width:110px;height:43px}.tools-group{border:0;padding:0;grid-row:2;align-self:center}.tools-group .group-label{display:none}.tool-row{gap:8px}.tool{width:92px;height:49px;flex-direction:row;gap:5px}.tool svg{width:34px;height:34px}.action-row{grid-row:2;padding-left:10px;flex-direction:row;gap:10px}.action-btn{flex-direction:column;height:auto;gap:0;font-size:10px}.action-btn svg{width:27px;height:27px}.hint-bubble{bottom:224px;font-size:12px}.victory{bottom:225px}.victory-card{gap:9px;padding:12px}.finish-mark{width:33px;height:33px}.next-btn{margin-left:3px;padding:12px 10px;font-size:12px;gap:3px}.victory h2{font-size:17px}.victory p{font-size:10px}.dismiss-btn{width:16px}.clean-meter{top:107px}}
@media(orientation:portrait) and (min-width:700px){.toolbar{padding:20px;gap:16px}.car-btn{height:86px}.car-btn img{max-width:138px;height:64px}.tool{width:130px;height:60px;font-size:14px}.tool svg{width:42px;height:42px}.action-row{gap:24px}.action-btn{font-size:12px}.hint-bubble{bottom:279px;font-size:14px}.victory{bottom:279px}.topbar{top:30px;left:34px}.clean-meter{left:36px;top:114px;width:240px}}
@media(max-height:550px) and (orientation:landscape){.topbar{top:12px;left:17px;right:65px}.brand-mark{width:35px;height:35px}h1{font-size:17px}#carName{font-size:10px;margin-top:2px}.title{gap:8px}.icon-btn{width:33px;height:33px}.clean-meter{left:19px;top:62px;width:156px}.clean-head{font-size:11px;margin-bottom:5px}.steps{font-size:9px;margin-top:5px}.toolbar{bottom:10px;padding:9px 13px;gap:13px;border-radius:18px}.group-label{display:none}.tools-group{padding-right:12px}.tool{width:65px;height:53px;font-size:11px}.tool svg{width:33px;height:33px}.car-btn{width:77px;height:53px;font-size:10px}.car-btn img{height:34px;width:74px}.action-row{padding-left:10px;gap:0}.action-btn{height:25px;font-size:10px}.action-btn svg{width:21px;height:21px}.hint-bubble{bottom:91px;padding:5px 12px;font-size:11px}.victory{bottom:94px}.victory-card{padding:10px 13px}.victory h2{font-size:16px}.finish-mark{width:34px;height:34px}.next-btn{padding:9px 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation-duration:.01ms!important}}
