:root{--background:#f4f6f8;--panel:#fff;--ink:#17202a;--muted:#667085;--line:#dfe4ea;--accent:#1677ff;--accent-hover:#0d68e0;--success:#168a53;--danger:#c53447}*{box-sizing:border-box}html{background:var(--background);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--background);min-height:100vh;color:var(--ink);margin:0;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.site-layout{min-height:100vh}.battery-page{background:#101020;height:100vh;min-height:560px;overflow:hidden}.battery-calculator-frame{background:#101020;border:0;width:100%;height:100%;display:block}.page-shell{min-height:100vh;padding:40px 20px}.tool-shell{width:min(880px,100%);margin:0 auto}.tool-header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}.tool-label{color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.tool-header h1{letter-spacing:-.02em;margin:0;font-size:26px;line-height:1.25}.connection-pill{border:1px solid var(--line);max-width:280px;color:var(--muted);background:var(--panel);white-space:nowrap;text-overflow:ellipsis;border-radius:7px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:inline-flex;overflow:hidden}.connection-pill>span{background:#98a2b3;border-radius:50%;flex:none;width:7px;height:7px}.connection-pill.online{color:var(--success);background:#f2fbf6;border-color:#b8dfcc}.connection-pill.online>span{background:var(--success)}.firmware-summary,.flasher-card{border:1px solid var(--line);background:var(--panel);border-radius:10px}.firmware-summary{grid-template-columns:minmax(210px,1.2fr) 2fr auto;align-items:center;gap:24px;margin-bottom:12px;padding:16px 18px;display:grid}.firmware-name{flex-direction:column;gap:4px;min-width:0;display:flex}.firmware-name span,.firmware-summary dt,.hash-line span{color:var(--muted);font-size:11px}.firmware-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.firmware-summary dl{grid-template-columns:repeat(4,minmax(62px,1fr));gap:18px;margin:0;display:grid}.firmware-summary dl div{min-width:0}.firmware-summary dt{margin-bottom:4px}.firmware-summary dd{color:#344054;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:12px}.hash-line{flex-direction:column;gap:4px;min-width:140px;display:flex}.hash-line code{color:#475467;font:11px/1.4 Cascadia Code,Consolas,monospace}.flasher-card{padding:24px}.firmware-source-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding-bottom:18px;display:flex}.firmware-source-row>div:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.firmware-source-row strong{color:#344054;font-size:12px;font-weight:650}.firmware-source-row span{color:var(--muted);font-size:11px;line-height:1.5}.firmware-source-actions{flex:none;align-items:center;gap:10px;display:flex}.firmware-file-input{display:none}.compact-button{height:34px;padding:0 13px;font-size:12px}.compact-button:disabled,.text-button:disabled{cursor:wait;opacity:.58}.text-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px 2px;font-size:11px}.text-button:hover:not(:disabled){color:var(--accent-hover)}.browser-warning{color:#9e2435;background:#fff5f6;border:1px solid #f3bcc4;border-radius:7px;margin-bottom:18px;padding:10px 12px;font-size:12px;line-height:1.5}.status-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.state-message{color:#475467;align-items:center;gap:9px;min-width:0;font-size:13px;line-height:1.5;display:flex}.state-icon{width:20px;height:20px;color:var(--accent);border:1px solid #cbd3dc;border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.state-success{color:var(--success)}.state-success .state-icon{color:var(--success);border-color:#9ed1b8}.state-error{color:var(--danger)}.state-error .state-icon{color:var(--danger);border-color:#edb2ba}.progress-number{color:#344054;font-variant-numeric:tabular-nums;flex:none;font-size:16px}.progress-track{background:#e9edf2;border-radius:999px;height:7px;margin-top:14px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s;display:block}.actions{gap:10px;margin-top:24px;display:flex}.primary-button,.secondary-button{cursor:pointer;border-radius:7px;height:42px;font-size:13px;font-weight:650}.primary-button{border:1px solid var(--accent);color:#fff;background:var(--accent);min-width:150px;padding:0 22px}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.primary-button:disabled{cursor:wait;opacity:.58}.secondary-button{color:#344054;background:#fff;border:1px solid #cfd6df;padding:0 18px}.secondary-button:hover{background:#f7f8fa}.erase-option{color:#344054;cursor:pointer;align-items:flex-start;gap:9px;width:fit-content;margin-top:16px;display:flex}.erase-option input{accent-color:var(--accent);margin:3px 0 0}.erase-option span{flex-direction:column;gap:2px;display:flex}.erase-option b{font-size:12px;font-weight:600}.erase-option small{color:var(--muted);font-size:11px;line-height:1.5}.log-toolbar{border-top:1px solid var(--line);align-items:center;gap:12px;margin-top:22px;padding-top:14px;display:flex}.log-toggle{color:#475467;cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;padding:3px 0;font-size:12px;display:flex}.log-toggle span{align-items:center;gap:8px;display:flex}.log-toggle i{background:#98a2b3;border-radius:50%;width:7px;height:7px}.log-toggle b{color:var(--accent);font-weight:600}.copy-log-button{color:#475467;cursor:pointer;background:#fff;border:1px solid #cfd6df;border-radius:6px;padding:6px 10px;font-size:11px}.copy-log-button:hover{background:#f7f8fa}.terminal{color:#cbd5e1;background:#111827;border:1px solid #d6dce4;border-radius:7px;max-height:360px;margin-top:13px;padding:12px;font:10px/1.65 Cascadia Code,Consolas,monospace;overflow:auto}.terminal div{white-space:pre-wrap;overflow-wrap:anywhere;grid-template-columns:30px 1fr;display:grid}.terminal span{color:#667085;-webkit-user-select:none;user-select:none}@media (width<=760px){.page-shell{padding:24px 14px}.tool-header{align-items:flex-start}.tool-header h1{font-size:22px}.firmware-summary{grid-template-columns:1fr;gap:14px}.firmware-summary dl{border-top:1px solid var(--line);padding-top:13px}.hash-line{flex-direction:row;justify-content:space-between}}@media (width<=520px){.tool-header{flex-direction:column;gap:12px}.connection-pill{max-width:100%}.flasher-card{padding:18px}.firmware-source-row{flex-direction:column;align-items:flex-start;gap:12px}.firmware-source-actions{width:100%}.firmware-source-actions .compact-button{flex:1}.firmware-summary dl{grid-template-columns:1fr 1fr}.status-row{align-items:flex-start}.actions{flex-direction:column}.primary-button,.secondary-button{width:100%}.hash-line{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}}
