.live-update-overlay[data-v-edfe19bb]{z-index:40;background:#08301c75;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.live-update-card[data-v-edfe19bb]{background:#fff;border-radius:22px;width:min(420px,100%);padding:20px 18px 16px;box-shadow:0 18px 40px #08301c2e}.live-update-card h2[data-v-edfe19bb]{margin:0 0 8px;font-size:22px}.live-update-version[data-v-edfe19bb]{color:var(--ink);margin:0;font-weight:800}.live-update-progress[data-v-edfe19bb]{background:var(--green-100);border-radius:999px;height:10px;margin-top:16px;overflow:hidden}.live-update-progress span[data-v-edfe19bb]{border-radius:inherit;background:linear-gradient(90deg,#1aa85f,#0f6b3c);height:100%;display:block}.live-update-progress span.is-busy[data-v-edfe19bb]{width:100%;animation:1.05s ease-in-out infinite live-update-indeterminate-edfe19bb}.live-update-percent[data-v-edfe19bb]{color:var(--green-800);margin:8px 0 0;font-weight:800}.live-update-actions[data-v-edfe19bb]{gap:10px;margin-top:16px;display:flex}.live-update-actions .btn[data-v-edfe19bb]{flex:1;width:auto;margin-top:0}@keyframes live-update-indeterminate-edfe19bb{0%,to{opacity:.35}50%{opacity:1}}@font-face{font-family:Noto Sans SC;src:url(./noto-sans-sc-400-DS5SpWNO.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(./noto-sans-sc-700-BmuLCgFi.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(./noto-sans-sc-800-CO8guXyM.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}:root{--green-950:#08301c;--green-900:#0c4a2c;--green-800:#0f6b3c;--green-700:#14804a;--green-600:#1b9a58;--green-100:#e5f6ec;--green-50:#f4faf6;--ink:#143024;--muted:#5d7468;--line:#d5e6db;--card:#fff;--gold-700:#8a5a00;--gold-100:#fff4d6;--danger:#b42318;--danger-bg:#fff0ee;--shadow:0 10px 28px #0f502d14;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Noto Sans SC,PingFang SC,HarmonyOS Sans,MiSans,OPPO Sans,Microsoft YaHei UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:#d7eee1;margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}.phone{background:radial-gradient(900px 280px at 80% -40px, #b7ebc9b3, transparent 60%), var(--green-50);width:min(480px,100%);min-height:100dvh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 40px #08301c14}.slide-in-enter-active,.slide-in-leave-active,.slide-out-enter-active,.slide-out-leave-active{transition:transform .34s cubic-bezier(.22,.8,.32,1)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.slide-in-enter-active,.slide-out-leave-active{z-index:30}.slide-in-leave-active,.slide-out-enter-active,.fade-enter-active,.fade-leave-active{z-index:1}.slide-in-enter-active,.slide-out-enter-active,.fade-enter-active{position:relative}.slide-in-leave-active,.slide-out-leave-active,.fade-leave-active{pointer-events:none;width:100%;min-height:100%;position:absolute;top:0;left:0}.slide-in-enter-active,.slide-in-leave-active,.slide-out-enter-active,.slide-out-leave-active,.fade-enter-active,.fade-leave-active{background:radial-gradient(900px 280px at 80% -40px, #b7ebc9b3, transparent 60%), var(--green-50);min-height:100dvh}.slide-in-enter-from{transform:translate(100%)}.slide-in-leave-to,.slide-out-enter-from{transform:translate(-22%)}.slide-out-leave-to{transform:translate(100%)}.fade-enter-from,.fade-leave-to{opacity:0}.tab-fade-enter-active,.tab-fade-leave-active{transition:opacity .2s}.tab-fade-enter-from,.tab-fade-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.slide-in-enter-active,.slide-in-leave-active,.slide-out-enter-active,.slide-out-leave-active,.fade-enter-active,.fade-leave-active,.tab-fade-enter-active,.tab-fade-leave-active,.auth-extra-enter-active,.auth-extra-leave-active,.human-track.shaking{transition:none;animation:none}}.hero{color:#fff;padding:calc(18px + env(safe-area-inset-top)) 18px 28px;background:linear-gradient(165deg,#149154 0%,#0f6b3c 58%,#0b4e2c 100%);position:relative;overflow:hidden}.hero:after{content:"";background:#ffffff1a;border-radius:50%;width:190px;height:190px;position:absolute;top:-58px;right:-48px}.hero>*{z-index:1;position:relative}.hero.compact{padding-bottom:22px}.hero-top,.back-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.back-row{justify-content:flex-start;align-items:center}.back-icon{color:#fff;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;margin-left:-10px;padding:0;display:grid}.back-icon svg{width:28px;height:28px;display:block}.back-icon:active{background:#ffffff29}.hero-action{color:#fff;background:0 0;border:0;align-self:center;margin-left:auto;padding:8px 0 8px 12px;font-size:16px;font-weight:800}.hero-action:active{opacity:.65}.detail-page{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.detail-paid{text-align:center;margin:2px 0 10px}.detail-paid span{color:var(--muted);font-size:13px;font-weight:700}.detail-paid strong{letter-spacing:-.04em;color:var(--green-800);font-variant-numeric:tabular-nums;margin-top:2px;font-size:36px;display:block}.detail-flag{justify-content:center;margin:0 0 8px;display:flex}.detail .receipt-row{align-items:flex-start}.detail .receipt-row span{color:var(--muted);font-weight:700}.detail .receipt-row strong{text-align:right;max-width:68%;font-weight:800}.detail .formula{margin:12px 0 0}.eyebrow{letter-spacing:.14em;opacity:.78;margin:0 0 2px;font-size:12px;font-weight:700}.hero h1,.section h2,.dialog h2{letter-spacing:-.03em;margin:0;font-weight:800}.hero h1{font-size:30px}.icon-btn,.ghost{color:#fff;background:#ffffff1f;border:1px solid #ffffff47;border-radius:999px;padding:8px 12px;font-weight:700}.vehicle-switch{scrollbar-width:none;gap:8px;margin-top:14px;display:flex;overflow-x:auto}.vehicle-switch::-webkit-scrollbar{display:none}.vehicle-pill{text-overflow:ellipsis;white-space:nowrap;color:#fff;background:#ffffff2e;border:0;border-radius:999px;flex:none;max-width:180px;padding:7px 14px;font-size:14px;font-weight:800;overflow:hidden}.vehicle-pill.on{color:var(--green-800);background:#fff}.month-switch{background:#ffffff1f;border-radius:999px;grid-template-columns:44px 1fr 44px;align-items:center;margin-top:16px;padding:4px;display:grid}.month-switch strong{text-align:center;font-size:16px}.month-switch button{color:#fff;background:#ffffff29;border:0;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;display:grid}.month-switch button:first-child{justify-self:start}.month-switch button:last-child{justify-self:end}.month-switch button svg{width:20px;height:20px;display:block}.month-switch button:disabled{opacity:.35}.stat-row,.tile-grid,.pair{gap:8px;display:grid}.stat-row{grid-template-columns:repeat(3,1fr);margin-top:16px}.stat,.tile{background:#ffffff24;border:1px solid #ffffff29;border-radius:16px;padding:10px 12px}.stat span,.tile span,.muted,.field span,.receipt span,.bar-label,.bar-value{color:var(--muted);font-size:12px;font-weight:700}.stat span{color:#ffffffc7}.stat strong,.tile strong,.paid,.grand strong{font-variant-numeric:tabular-nums;font-weight:800;display:block}.stat strong{margin-top:3px;font-size:18px}.page{padding:16px 16px calc(150px + env(safe-area-inset-bottom))}.day{color:var(--muted);margin:16px 2px 8px;font-size:13px;font-weight:800}.card{color:inherit;background:var(--card);box-shadow:var(--shadow);border-radius:20px;margin-bottom:10px;padding:14px;text-decoration:none;display:block}.card-top,.line,.receipt-row,.dialog-actions,.banner{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-top{align-items:flex-start}.card .line{flex-wrap:wrap;justify-content:flex-start}.station{margin:0;font-size:16px;font-weight:800}.when,.formula,.hint,.empty p,.settings p,.compare{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.5}.grade,.tag{border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.grade{background:var(--green-100);color:var(--green-800);margin-right:6px}.grade.g98{background:#d9fbe8}.grade.g0{color:#6d5214;background:#f3ead2}.paid{text-align:right;font-size:22px}.paid small{color:var(--muted);font-size:11px;font-weight:700;display:block}.meta{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:12px;font-weight:700}.tag{background:var(--gold-100);color:var(--gold-700)}.tag.plain{background:var(--green-100);color:var(--green-800)}.fab{z-index:20;right:max(16px,50vw - 224px);bottom:calc(86px + env(safe-area-inset-bottom));color:#fff;background:linear-gradient(#1aa85f,#0e7a44);border:0;border-radius:999px;padding:14px 18px;font-weight:800;position:fixed;box-shadow:0 12px 24px #0f7a4452}.tabbar{z-index:20;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border-radius:999px;grid-template-columns:1fr 1fr 1fr;width:min(448px,100% - 24px);padding:6px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 12px 30px #08301c29}.tabbar a{text-align:center;color:var(--muted);border-radius:999px;padding:11px 8px;font-weight:800;text-decoration:none}.tabbar a.router-link-active{background:var(--green-800);color:#fff}.empty,.section,.banner,.receipt,.dialog{box-shadow:var(--shadow);background:#fff;border-radius:22px}.empty{text-align:center;padding:28px 20px}.empty h2{margin:8px 0 0}.empty .btn{margin-top:18px}.empty svg{width:54px;height:54px;color:var(--green-700)}.section{margin-bottom:12px;padding:16px}.section h2{font-size:18px}.tile-grid{grid-template-columns:1fr 1fr;margin-top:12px}.tile{background:var(--green-50);border:1px solid var(--line)}.tile.wide{grid-column:1/-1}.tile.wide strong{font-size:28px}.tile strong{color:var(--green-900);margin-top:4px;font-size:20px}.tile.gold strong{color:var(--gold-700)}.mileage .btn{margin-top:4px}.mileage .tile{margin-top:12px}.compare{color:var(--ink);font-size:15px;font-weight:700}.insights{margin:8px 0 0;padding-left:1.15em}.insights li{margin:7px 0;font-weight:700;line-height:1.5}.station-row{margin-top:12px}.station-row strong{font-size:16px}.bar-row{grid-template-columns:58px 1fr auto;align-items:center;gap:8px;margin-top:10px;display:grid}.bar-track{background:var(--green-100);border-radius:999px;height:10px;overflow:hidden}.bar-fill{border-radius:inherit;background:linear-gradient(90deg,#7dcea0,#0f6b3c);height:100%}.bar-value{font-variant-numeric:tabular-nums;color:var(--ink);font-size:12px;font-weight:800}.big-number{letter-spacing:-.04em;color:var(--green-800);margin:8px 0 0;font-size:36px;font-weight:800}.big-number small{margin-left:4px;font-size:14px}.field{margin-bottom:14px;display:block}.field span{margin-bottom:6px;display:block}input,textarea{border:1px solid var(--line);background:#fff;border-radius:14px;outline:none;width:100%;padding:14px 12px;font-size:16px}textarea{resize:vertical;min-height:84px}input:focus,textarea:focus{border-color:var(--green-600);box-shadow:0 0 0 4px #1b9a5826}.pair{grid-template-columns:1fr 1fr}.chips{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.chips.cars{grid-template-columns:repeat(auto-fit,minmax(108px,1fr))}.chips.cars .chip{text-overflow:ellipsis;white-space:nowrap;padding:12px 8px;overflow:hidden}.chips.two{grid-template-columns:1fr 1fr;margin-bottom:14px}.chip{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 0;font-weight:800}.chip.on{background:var(--green-800);border-color:var(--green-800);color:#fff}.receipt{box-shadow:none;border:1px dashed #b7d7c4;padding:6px 14px 12px}.receipt-row{border-bottom:1px solid var(--green-100);font-variant-numeric:tabular-nums;padding:9px 0}.receipt-row strong{font-weight:800}.grand{border-bottom:0;padding-top:12px}.grand strong{color:var(--green-800);font-size:28px}.check{align-items:center;gap:8px;margin:8px 0 0;font-size:14px;font-weight:700;display:flex}.check input{width:18px;height:18px;accent-color:var(--green-700)}.btn,.btn.secondary,.btn.danger{border:0;border-radius:16px;width:100%;padding:15px 16px;font-size:16px;font-weight:800}.btn{color:#fff;background:linear-gradient(#1aa85f,#0e7a44)}.btn:disabled{opacity:.55}.btn.secondary{color:var(--danger);background:#fff;border:1px solid #f0c9c4;margin-top:10px}.btn.danger{background:var(--danger);color:#fff}.btn.quiet{background:var(--green-100);color:var(--green-900)}a.btn{text-align:center;box-sizing:border-box;text-decoration:none;display:block}.auth{min-height:100dvh;padding:calc(36px + env(safe-area-inset-top)) 32px calc(28px + env(safe-area-inset-bottom));color:var(--ink);background:#fff;flex-direction:column;display:flex}.auth-brand{text-align:center;margin-top:18px}.auth-mark{color:#fff;letter-spacing:-.04em;background:linear-gradient(160deg,#1aa85f,#0c5a34);border-radius:22px;place-items:center;width:72px;height:72px;margin:0 auto 16px;font-size:34px;font-weight:800;display:grid;box-shadow:0 14px 28px #0f6b3c38}.auth-brand h1{letter-spacing:.08em;margin:0;font-size:26px}.auth-brand p{color:var(--muted);margin:8px 0 0;font-size:14px}.auth-tabs{justify-content:center;gap:42px;margin:42px 0 6px;display:flex}.auth-tabs button{color:#8b9c93;background:0 0;border:0;padding:6px 2px 12px;font-size:16px;font-weight:700;position:relative}.auth-tabs button.on{color:var(--ink)}.auth-tabs button.on:after{content:"";background:var(--green-700);border-radius:99px;width:20px;height:3px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.auth-form{margin-top:8px}.auth-line{border-bottom:1px solid #e7eeea;align-items:center;gap:12px;min-height:56px;display:flex}.auth-line:focus-within{border-bottom-color:var(--green-700)}.auth-line .prefix{color:var(--ink);border-right:1px solid #e7eeea;flex:none;padding-right:12px;font-size:16px;font-weight:700}.auth-line input{width:auto;min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex:1;padding:16px 0}.auth-line input:focus{box-shadow:none;border-color:#0000}.auth-line input::placeholder{color:#b7c4bc;font-weight:400}.auth-line .eye{color:#8b9c93;background:0 0;border:0;flex:none;place-items:center;width:36px;height:36px;padding:0;display:grid}.auth-line .eye svg{width:22px;height:22px}.auth-error{min-height:20px;color:var(--danger);margin:12px 0 0;font-size:13px;font-weight:700}.auth-submit{color:#fff;background:linear-gradient(#1aa85f,#0e7a44);border:0;border-radius:999px;width:100%;height:48px;margin-top:18px;font-size:17px;font-weight:800}.auth-submit:disabled{opacity:.55}.auth-switch{text-align:center;color:var(--muted);margin:18px 0 0;font-size:14px}.auth-switch button{color:var(--green-800);background:0 0;border:0;padding:0;font-weight:800}.auth-other{margin-top:auto;padding-top:48px}.auth-other>p{color:#9aada3;align-items:center;gap:14px;margin:0 0 22px;font-size:12px;display:flex}.auth-other>p:before,.auth-other>p:after{content:"";background:#e7eeea;flex:1;height:1px}.auth-extra-enter-active,.auth-extra-leave-active{transition:opacity .22s,transform .22s}.auth-extra-enter-from,.auth-extra-leave-to{opacity:0;transform:translateY(-8px)}.auth-icons{justify-content:center;gap:42px;display:flex}.auth-icons button{color:#66786f;background:0 0;border:0;justify-items:center;gap:8px;padding:0;font-size:12px;font-weight:700;display:grid}.auth-icons img{object-fit:cover;border-radius:22%;width:48px;height:48px;display:block}.auth-icons button:active img{transform:scale(.96)}.human-mask{z-index:60;background:#08301c73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.human-sheet{width:min(480px,100%);padding:22px 18px calc(18px + env(safe-area-inset-bottom));background:#fff;border-radius:22px 22px 0 0;position:relative;box-shadow:0 -12px 40px #08301c29}.human-close{color:#66786f;background:0 0;border:0;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:10px;right:10px}.human-close svg{width:20px;height:20px}.human-board{aspect-ratio:300/132;background:#e7f3ec;border-radius:14px;margin-top:28px;position:relative;overflow:hidden}.human-bg,.human-piece{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;display:block;position:absolute}.human-bg{width:100%;height:100%;inset:0}.human-piece{filter:drop-shadow(0 4px 6px #08301c47);top:0;left:0}.human-refresh{width:32px;height:32px;color:var(--green-800);background:#ffffffeb;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:8px;right:8px}.human-refresh svg{width:18px;height:18px}.human-refresh:disabled{opacity:.45}.human-track{color:#8b9c93;background:#f3f7f5;border-radius:999px;height:46px;margin-top:14px;position:relative;overflow:hidden}.human-track span{pointer-events:none;place-items:center;height:100%;font-size:14px;font-weight:700;display:grid}.human-track.dim span{opacity:.35}.human-track.passed{background:var(--green-100);color:var(--green-800)}.human-track.shaking{animation:.42s human-shake}.human-knob{color:#fff;touch-action:none;background:linear-gradient(#1aa85f,#0e7a44);border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid;position:absolute;top:3px;left:3px;box-shadow:0 6px 14px #0f6b3c47}.human-knob svg{width:22px;height:22px}@keyframes human-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.profile-page{padding-top:0}.profile-card{z-index:1;grid-template-columns:72px 1fr;align-items:center;gap:14px;margin-top:-20px;display:grid;position:relative}.profile-card h2{margin:0;font-size:20px}.profile-card p{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:700}.avatar{background:var(--green-100);width:72px;height:72px;color:var(--green-800);box-shadow:var(--shadow);border:3px solid #fff;border-radius:50%;padding:0;font-size:28px;font-weight:800;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.menu{padding:6px 0}.menu .row{border:0;border-bottom:1px solid var(--green-100);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:15px 16px;display:flex}.menu .row:last-child{border-bottom:0}.menu .row span{font-weight:800}.menu .row em{color:var(--muted);align-items:center;gap:4px;font-style:normal;font-weight:700;display:flex}.menu .row svg{flex:none;width:18px;height:18px;display:block}.profile-logout{margin-top:4px}.vehicles h2{margin-bottom:4px}.vehicle-row{border:0;border-bottom:1px solid var(--green-100);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 2px;font-weight:800;display:flex}.vehicle-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vehicle-row svg{width:18px;height:18px;color:var(--muted);flex:none}.vehicles .btn{margin-top:14px}.photos{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo{aspect-ratio:1;background:var(--green-100);border:0;border-radius:16px;position:relative;overflow:hidden}button.photo{padding:0}.photo-open{background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.photo img{object-fit:cover;width:100%;height:100%}.photo.add{color:var(--green-800);font-weight:800}.photo-remove{z-index:1;color:#fff;background:#08301cb8;border:0;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;position:absolute;bottom:6px;right:6px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.secret{display:block;position:relative}.secret input{padding-right:64px}.secret .reveal{color:var(--green-800);background:0 0;border:0;padding:8px;font-size:13px;font-weight:800;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.time-field{border:1px solid var(--line);text-align:left;background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 12px;display:flex}.time-field strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:800}.time-field span{color:var(--green-800);font-size:13px;font-weight:800}.time-mask{z-index:50;background:#08301c61;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.time-sheet{width:min(480px,100%);padding:8px 12px calc(16px + env(safe-area-inset-bottom));background:#fff;border-radius:24px 24px 0 0;animation:.18s ease-out sheet-up;box-shadow:0 -12px 40px #08301c29}.time-sheet-bar,.time-heads{grid-template-columns:64px 1fr 64px;align-items:center;display:grid}.time-sheet-bar strong{text-align:center;font-size:16px}.time-text{color:var(--muted);background:0 0;border:0;padding:12px 4px;font-weight:800}.time-text.ok{color:var(--green-800);text-align:right}.time-heads{color:var(--muted);text-align:center;grid-template-columns:1.35fr .85fr .85fr .75fr .75fr;gap:4px;font-size:12px;font-weight:800}.time-cols{grid-template-columns:1.35fr .85fr .85fr .75fr .75fr;gap:4px;height:220px;margin:4px 0 12px;display:grid;position:relative}.time-highlight{background:var(--green-100);pointer-events:none;border-radius:12px;height:44px;position:absolute;top:88px;left:0;right:0}.time-col{z-index:1;scrollbar-width:none;position:relative;overflow-y:auto}.time-col::-webkit-scrollbar{display:none}.time-pad{height:88px}.time-col button{width:100%;height:44px;color:var(--muted);font-variant-numeric:tabular-nums;background:0 0;border:0;font-weight:700;display:block}.time-col button.on{color:var(--green-900);font-weight:800}.banner{background:var(--danger-bg);color:var(--danger);box-shadow:none;margin-bottom:12px;padding:12px 14px;font-weight:700}.banner p{margin:0}.banner button{color:var(--danger);background:0 0;border:0;font-weight:800}.cropper{z-index:80;color:#fff;background:#06140d;flex-direction:column;display:flex;position:fixed;inset:0}.cropper h2{padding:calc(16px + env(safe-area-inset-top)) 16px 8px;text-align:center;margin:0;font-size:18px}.crop-stage{flex:1;place-items:center;min-height:0;display:grid}.crop-box{touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.crop-box canvas{display:block}.crop-ring{pointer-events:none;border:2px solid #ffffffeb;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 0 9999px #06140d9e}.crop-failed{margin:0;font-weight:800}.crop-zoom{padding:8px 28px 0}.crop-zoom input{accent-color:#1aa85f;width:100%}.crop-actions{padding:16px 16px calc(16px + env(safe-area-inset-bottom));gap:12px;display:flex}.crop-actions .btn{flex:1;width:auto}.viewer{z-index:50;-webkit-user-select:none;user-select:none;background:#06120ceb;position:fixed;inset:0}.viewer-frame{inset:calc(64px + env(safe-area-inset-top)) 56px calc(84px + env(safe-area-inset-bottom));touch-action:none;place-items:center;display:grid;position:absolute;overflow:hidden}.viewer-frame.zoomed{cursor:grab}.viewer-frame.dragging{cursor:grabbing}.viewer-zoom{transform-origin:50%;place-items:center;width:100%;min-width:0;height:100%;min-height:0;display:grid}.viewer-zoom.ease{transition:transform .16s}.viewer-frame img{object-fit:contain;-webkit-user-drag:none;border-radius:12px;max-width:min(920px,100%);max-height:100%}.viewer-close,.viewer-nav{color:#fff;background:#ffffff29;border:0;place-items:center;display:grid;position:absolute}.viewer-close{top:calc(14px + env(safe-area-inset-top));border-radius:50%;width:40px;height:40px;right:14px}.viewer-close svg{width:22px;height:22px}.viewer-nav{border-radius:50%;width:40px;height:40px;top:50%;transform:translateY(-50%)}.viewer-nav.prev{left:12px}.viewer-nav.next{right:12px}.viewer-nav svg{width:22px;height:22px}.viewer-tools{left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom));justify-content:center;align-items:center;gap:14px;display:flex;position:absolute}.viewer-tools button{color:#fff;background:#ffffff29;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.viewer-tools button:disabled{opacity:.35}.viewer-tools svg{width:22px;height:22px;display:block}.viewer-count{text-align:center;color:#fff;min-width:64px;margin:0;font-weight:800}.mask{z-index:30;background:#08301c61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{width:min(360px,100%);padding:18px}.dialog p{color:var(--muted)}.dialog-actions{margin-top:14px}.dialog-actions .btn{flex:1;width:auto}.skeleton{background:linear-gradient(90deg,#e7f3eb,#f8fbf9 45%,#e7f3eb) 0 0/200% 100%;border-radius:20px;height:96px;margin-bottom:10px;animation:1.2s ease-in-out infinite shine}.settings p{margin-top:0}.settings .btn{margin-top:8px}@keyframes shine{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes sheet-up{0%{transform:translateY(16px)}to{transform:none}}@media (prefers-reduced-motion:reduce){.skeleton,.time-sheet{animation:none}}
