:root{color-scheme:dark;--background:#202225;--surface:#292c30;--surface-hover:#34383e;--border:#444a52;--text:#f1f5f6;--muted:#b0bac4;--accent:#51dfd1;--accent-hover:#75eadf;--accent-soft:#263f40;--accent-ink:#102e2b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--background);font-synthesis:none;font-weight:400;font-size:15px;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{touch-action:manipulation}a{color:inherit}h1,h2,h3,p{margin:0}svg{flex-shrink:0}button{transition:background .16s,transform .16s}button:active:not(:disabled){transform:translateY(1px)}.site-header{height:100px;border-bottom:1px solid var(--border);background:var(--surface)}.header-inner{max-width:960px;margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:21px;font-weight:750;letter-spacing:-.8px}.header-label{font-size:9px;letter-spacing:2px;color:var(--muted);font-weight:600}main{max-width:804px;margin:0 auto;padding:30px 32px 25px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--muted);margin-bottom:12px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 34px}.action-button{min-height:108px;border-radius:15px;border:1px solid transparent;text-align:left;display:flex;align-items:center;gap:15px;padding:22px 20px}.exchange-action{background:var(--accent);color:var(--accent-ink)}.exchange-action:hover{background:var(--accent-hover)}.discard-action{background:var(--surface);border-color:var(--accent);color:var(--accent)}.discard-action:hover{background:var(--accent-soft)}.action-icon{width:43px;height:43px;display:grid;place-items:center;flex-shrink:0;border-radius:12px}.exchange-action .action-icon{background:#102e2b20;color:var(--accent-ink)}.discard-action .action-icon{background:var(--accent-soft);color:var(--accent)}.action-button strong{font-size:14px;font-weight:600;display:block}.action-button small{display:block;margin-top:6px;font-size:11px}.exchange-action small{color:var(--accent-ink)}.discard-action small{color:var(--muted)}.action-arrow{margin-left:auto;opacity:.55}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--border)}.section-heading h2{font-size:15px;font-weight:650}.list-tools{display:flex;align-items:center;gap:8px}.list-tools>span{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted)}.icon-button{border:0;background:transparent;display:grid;place-items:center;width:44px;height:44px;border-radius:10px;color:var(--muted);flex-shrink:0}.icon-button:hover{background:var(--surface-hover)}.refresh-list{width:36px;height:36px}.empty-state{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 15px;color:var(--muted)}.empty-illustration{width:82px;height:100px;border-radius:25px;background:var(--surface);display:grid;place-items:center;position:relative;color:var(--accent);margin-bottom:24px;transform:rotate(-5deg)}.empty-illustration>span{position:absolute;right:-6px;bottom:1px;border:4px solid var(--background);background:var(--accent);color:var(--accent-ink);border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.empty-state h3{font-size:17px;color:var(--text);font-weight:550;letter-spacing:-.4px;margin-bottom:11px}.empty-state p{font-size:12px;line-height:1.9}.empty-caption{font-size:10px;display:flex;align-items:center;gap:6px;margin-top:26px;color:var(--muted)}.page-footer{padding:22px 0 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;color:var(--muted);letter-spacing:.1px;margin-top:24px}.footer-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.date-divider{font-size:10px;letter-spacing:.7px;font-weight:550;text-transform:uppercase;color:var(--muted);padding:23px 0 11px}.event-card{background:var(--surface);border:1px solid var(--border);border-radius:13px;margin-bottom:9px;padding:19px 21px;display:flex;gap:16px}.event-icon{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;flex-shrink:0}.exchange{background:var(--accent-soft);color:var(--accent)}.discard{background:var(--surface-hover);color:#c9d1d8}.event-content{flex:1;min-width:0}.event-topline{display:flex;justify-content:space-between;align-items:center}.event-topline h3{font-size:16px;letter-spacing:-.3px;font-weight:650}.event-topline time{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.event-tag{font-size:10px;display:inline-block;border-radius:4px;margin-top:7px;padding:3px 6px;font-weight:500}.battery-route{display:flex;align-items:center;gap:20px;margin:17px 0 14px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.battery-route small{font-size:8px;display:block;letter-spacing:1px;margin-bottom:5px;color:var(--muted)}.battery-route>svg{margin-top:12px;color:var(--muted)}.new-battery{color:var(--accent)}.event-details{font-size:10px;color:var(--muted)}.event-details summary{cursor:pointer;display:flex;align-items:center;gap:4px;list-style:none;width:fit-content;min-height:26px}.event-details summary::-webkit-details-marker{display:none}.event-details[open] summary>svg:last-child{transform:rotate(180deg)}.event-details p{line-height:1.7;padding:6px 0;color:var(--muted)}.discard-description{font-size:12px;color:var(--muted);margin:17px 0 8px}.button{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border:1px solid var(--border);border-radius:10px;padding:10px 16px;font-size:13px;font-weight:550;background:var(--surface);color:var(--text)}.load-more{margin:22px auto}.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.primary:hover:not(:disabled){background:var(--accent-hover)}.danger{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.text-button{border:0;background:transparent;color:var(--accent);display:flex;align-items:center;gap:7px;padding:12px 0;font-size:12px;font-weight:550}.error-box{background:#412d2e;border:1px solid #725052;color:#ffbdb5;border-radius:9px;padding:12px 14px;font-size:12px;line-height:1.6;margin:15px 0}.error-box p{margin-top:6px}.error-box .text-button{color:inherit;padding-bottom:0}.event-dialog{padding:24px;width:calc(100% - 32px);max-width:490px;max-height:calc(100dvh - 40px);border:1px solid var(--border);border-radius:21px;color:var(--text);background:var(--surface);box-shadow:0 24px 100px #00000040;overscroll-behavior:contain}.event-dialog::backdrop{background:#111315cc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}body:has(dialog[open]){overflow:hidden}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center}.dialog-heading h2{font-size:25px;letter-spacing:-.8px;font-weight:650}.dialog-heading .eyebrow{font-size:9px;margin-bottom:8px}.dialog-heading>p:last-child{font-size:12px;color:var(--muted);margin-top:9px}.form-fields{margin:23px 0 16px;display:flex;flex-direction:column;gap:15px}.code-field label{font-size:12px;font-weight:550;display:flex;align-items:center;gap:7px;margin-bottom:8px}.step-number{font-size:9px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--surface-hover);color:var(--muted)}.step-number.done{color:var(--accent);background:var(--accent-soft)}.code-input-row{display:flex;gap:8px}.code-input-row input{width:100%;min-width:0;min-height:46px;border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:11px 13px;outline:0;font-size:16px;color:var(--text);letter-spacing:1px}.code-input-row input::placeholder{color:#929ba5}.code-input-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #51dfd126}.scan-button{height:46px;width:49px;flex-shrink:0;display:grid;place-items:center;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--accent)}.scan-button.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.input-hint{display:block;font-size:9px;color:var(--muted);margin:5px 0 0 2px}.scanner-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#111315;color:var(--text)}.scanner-dialog::backdrop{background:#111315}.scanner{position:relative;height:100%;isolation:isolate}.scanner-view,.scanner-view video{position:absolute;inset:0;width:100%;height:100%}.scanner-view video{object-fit:cover}.scanner-header{position:absolute;inset:0 0 auto;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 40px max(24px,env(safe-area-inset-left));display:grid;grid-template-columns:1fr auto;gap:24px 16px;background:linear-gradient(#111315f2,#11131500)}.scanner-heading>p{color:var(--accent);font-size:12px;margin-bottom:8px}.scanner-heading h2{font-size:clamp(22px,4vw,30px);letter-spacing:-.6px}.scanner-header .icon-button{background:#272c32e6;color:#fff;border:1px solid #ffffff40}.scanner-progress{grid-column:1 / -1;display:flex;gap:7px}.scanner-progress>span{height:4px;flex:1;border-radius:4px;background:#ffffff40}.scanner-progress>.complete{background:var(--accent)}.scanner-progress>.current{background:#fff}.scan-guide{position:absolute;inset:130px 0 225px;display:grid;place-items:center;color:var(--accent);pointer-events:none}.scan-guide>svg{width:min(70vw,32dvh,300px);height:min(70vw,32dvh,300px);filter:drop-shadow(0 2px 8px #00000080)}.camera-loading,.camera-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#191c20;padding:130px 24px 240px;text-align:center;font-size:14px;line-height:1.7}.camera-error p{max-width:400px}.camera-error .light{background:var(--surface-hover);border-color:var(--border);color:var(--text)}.scanner-footer{position:absolute;inset:auto 0 0;padding:40px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:linear-gradient(#11131500,#111315ed 25%);text-align:center}.scanner-instruction{font-size:15px;font-weight:550}.scanner-example{font-size:12px;color:#d0d8df;margin-top:8px}.scanner-manual{margin:22px auto 0;min-height:48px;background:var(--surface);color:#fff;border-color:#fff5}.scanner-retained{color:#c0cad3;font-size:11px;margin-top:12px}.scan-success{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--accent);margin-bottom:15px;font-size:13px}.scanner-hint{max-width:460px;margin:0 auto 15px;padding:10px 12px;border-radius:8px;background:#412d2ef2;color:#ffbdb5;font-size:13px;line-height:1.6}.scan-remaining{width:100%;color:var(--accent)}.field-error{font-size:12px;color:#ffbdb5;line-height:1.6;margin-top:8px}.location-note{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);padding:13px 0;line-height:1.6}.dialog-footer{border-top:1px solid var(--border);padding-top:15px;margin-top:4px}.progress-label{display:block;color:var(--muted);text-align:center;font-size:10px;margin-bottom:12px}.submit-button{width:100%;min-height:48px}.submit-arrow{margin-left:auto}.submit-button>svg:first-child{margin-right:auto}.toast{position:fixed;bottom:max(26px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;background:var(--surface);color:#fff;padding:15px 20px;border-radius:12px;box-shadow:0 5px 20px #00000040;max-width:calc(100% - 32px);font-size:12px;z-index:5;white-space:nowrap;border:1px solid var(--accent)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.site-header{height:86px}.header-inner{padding:0 22px}.header-label{font-size:7px;letter-spacing:1.3px}.brand{font-size:19px}main{padding:24px 20px}.actions{gap:10px;margin:0 0 28px}.action-button{flex-direction:column;align-items:flex-start;padding:17px 15px;min-height:137px;gap:13px;border-radius:13px;position:relative}.action-icon{width:38px;height:38px;border-radius:10px}.action-arrow{position:absolute;right:15px;top:27px;width:15px}.action-button strong{font-size:12px}.action-button small{font-size:9px;margin-top:5px}.section-heading h2{font-size:14px}.list-tools>span{font-size:9px}.list-tools{gap:3px}.section-heading{padding-bottom:10px}.empty-state{min-height:310px}.empty-state h3{font-size:16px}.empty-state p{font-size:11px}.event-card{padding:16px 14px;gap:12px}.event-topline h3{font-size:14px}.battery-route{gap:14px;font-size:11px}.event-icon{width:34px;height:34px;border-radius:9px}.page-footer{font-size:9px}.event-dialog{padding:20px;width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:17px}.dialog-header{margin-bottom:13px}.form-fields{gap:12px;margin-top:18px}.dialog-heading h2{font-size:23px}.toast{white-space:normal;width:max-content}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}.brand-logo{display:block;width:146px;height:auto}.danger:hover:not(:disabled){background:var(--accent-hover)}.toast>svg{color:var(--accent)}@media(max-width:600px){.brand-logo{width:130px}}.login-main{max-width:560px;padding-top:60px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:30px}.login-card h1{font-size:25px;line-height:1.3;letter-spacing:-.6px;margin-top:22px}.login-card>p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:14px}.login-link{margin-top:26px;text-decoration:none}.login-loading{display:flex;align-items:center;gap:10px}.user-menu{display:flex;align-items:center;gap:14px;min-width:0;margin-left:20px}.user-name{font-size:12px;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-button{font-size:11px;padding:8px 11px;min-height:42px}.auth-notice{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:10;max-width:calc(100% - 30px)}@media(max-width:600px){.login-main{padding-top:30px}.login-card{padding:23px}.user-menu{gap:7px;margin-left:12px}.user-name{max-width:80px;font-size:10px}.logout-button{gap:5px;font-size:10px;padding:7px}}.event-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.event-actions .button{min-height:44px;padding:8px 12px;font-size:12px}
