@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@500;600;700;800&display=swap";.ui-icon[data-v-c179c73f]{vertical-align:-.125em;flex-shrink:0;width:1em;height:1em;display:inline-block}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{color:#1e293b;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f1f5f9;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}input,select,textarea{font-family:inherit}#app{width:100%;min-height:100vh}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gold:#e0b84d;--gold-bright:#f6d879;--gold-dark:#a47c24;--gradient-gold:linear-gradient(135deg, #f3d477 0%, #d5a936 100%);--bg:#101214;--bg2:#171a1d;--bg3:#1d2125;--surface:#171a1d;--surface-raised:#1d2125;--card:var(--surface);--color-muted:var(--text2);--input-bg:#121518;--border:#ffffff13;--border-strong:#e0b84d47;--text:#eef0f2;--text2:#a4abb2;--text3:#737c85;--success:#35b879;--danger:#e56868;--warning:#e5a94f;--info:#70a6e8;--control-track:#343a40;--shadow-sm:0 2px 8px #00000024;--shadow-md:0 14px 38px #00000038;--radius:10px;--radius-lg:16px}html.light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--gold:#96701d;--gold-bright:#bc8d22;--gold-dark:#7e5d18;--gradient-gold:linear-gradient(135deg, #e8c969 0%, #d6ab3e 100%);--bg:#f3f5f7;--bg2:#fff;--bg3:#f8f9fa;--surface:#fff;--surface-raised:#fff;--card:var(--surface);--color-muted:var(--text2);--input-bg:#fff;--border:#1f293318;--border-strong:#96701d52;--text:#202830;--text2:#5e6872;--text3:#87919a;--success:#198754;--danger:#c74646;--warning:#a66b12;--info:#3573bb;--control-track:#d7dce1;--shadow-sm:0 2px 8px #222d370b;--shadow-md:0 16px 42px #222d371c}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{background:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:DM Sans,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;transition:background-color .24s,color .24s}button,input,select,textarea{font:inherit}button{color:inherit}::selection{color:var(--text);background:#e0b84d3d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text3) 35%, transparent);border:2px solid var(--bg);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--gold) 70%, transparent)}.page-view{width:min(100%,1600px);max-width:1600px;margin-inline:auto;padding:0}.page-view h2,.page-header h1{color:var(--text);letter-spacing:-.035em;margin:0 0 22px;font:800 25px/1.25 Manrope,DM Sans,sans-serif}.card,.stat-card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:background-color .24s,border-color .24s,box-shadow .2s,transform .2s}.card{padding:22px}.card-title{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:700}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h1{margin:0}.header-date{color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:8px 12px;font-size:12px}.btn,.btn-outline,button.btn-outline{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:9px 15px;font-size:13px;font-weight:700;line-height:1.2;text-decoration:none;transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s;display:inline-flex}.btn-primary,.btn-submit{color:#211b0d;background:var(--gradient-gold);box-shadow:0 4px 12px #c4972a29}.btn-primary:hover:not(:disabled),.btn-submit:hover:not(:disabled){filter:saturate(1.06);transform:translateY(-1px);box-shadow:0 7px 18px #c4972a3d}.btn-outline{color:var(--text2);background:var(--surface);border-color:var(--border)}.btn-outline:hover:not(:disabled){color:var(--gold);background:color-mix(in srgb, var(--gold) 8%, var(--surface));border-color:var(--border-strong)}.btn-danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 9%, var(--surface));border-color:color-mix(in srgb, var(--danger) 18%, transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 15%, var(--surface))}.btn-sm{min-height:30px;padding:6px 10px;font-size:12px}button:disabled,.btn:disabled,.btn-outline:disabled,.btn-submit:disabled{opacity:.52;cursor:not-allowed;box-shadow:none;transform:none}input:not([type=checkbox]),select,textarea{min-height:40px;color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:9px;outline:0;padding:9px 12px;transition:border-color .18s,box-shadow .18s,background-color .24s}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2387919a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:38px}select:hover:not(:disabled){border-color:var(--border-strong)}select option{color:var(--text);background:var(--surface)}input::placeholder,textarea::placeholder{color:var(--text3)}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 16%, transparent)}input:disabled,select:disabled,textarea:disabled{opacity:.58;cursor:not-allowed}input[type=checkbox]{appearance:none;border:1px solid var(--border);background:var(--control-track);cursor:pointer;border-radius:999px;flex:none;width:38px;height:22px;margin:0;transition:background .2s,border-color .2s,box-shadow .2s;position:relative}input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}input[type=checkbox]:checked{border-color:var(--gold);background:var(--gold)}input[type=checkbox]:checked:after{transform:translate(16px)}input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 20%, transparent);outline:0}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox].row-select{cursor:pointer;position:relative;appearance:none!important;border:1px solid var(--text3)!important;background:var(--surface)!important;width:16px!important;height:16px!important;min-height:16px!important;box-shadow:none!important;border-radius:4px!important;flex:0 0 16px!important;padding:0!important}input[type=checkbox].row-select:after{width:8px;height:5px;box-shadow:none;opacity:0;background:0 0;border-top:0;border-bottom:2px solid #171a1d;border-left:2px solid #171a1d;border-right:0;border-radius:0;transition:opacity .12s,transform .12s;position:absolute;top:3px;left:2px;transform:rotate(-45deg)scale(.7);content:""!important;display:block!important}input[type=checkbox].row-select:checked{border-color:var(--gold)!important;background:var(--gold)!important;box-shadow:none!important}input[type=checkbox].row-select:checked:after{opacity:1;transform:rotate(-45deg)scale(1)}input[type=checkbox].row-select:indeterminate{border-color:var(--gold)!important;background:var(--gold)!important;box-shadow:none!important}input[type=checkbox].row-select:indeterminate:after{opacity:1;border:0;border-top:2px solid #171a1d;width:8px;height:0;top:6px;left:3px;transform:none}.checks{gap:10px 12px!important}.checks label{min-height:48px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:10px;margin:0;padding:10px 13px;font-size:13px;font-weight:600;transition:border-color .18s,background .18s,color .18s;display:inline-flex}.checks label:has(input:checked){color:var(--text);background:color-mix(in srgb, var(--gold) 8%, var(--surface));border-color:var(--border-strong)}table{border-collapse:separate;border-spacing:0;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:13px 15px;font-size:13px}th{color:var(--text3);background:var(--bg3);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:800}tr:last-child td{border-bottom:0}tbody tr:hover td{background:color-mix(in srgb, var(--gold) 4%, transparent)}.data-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.data-table th{border-bottom:1px solid var(--border);padding:14px 15px}.data-table thead th{z-index:1;position:sticky;top:0}.data-table{table-layout:fixed;width:max-content;min-width:100%}.resizable-table-heading{position:relative}.column-resizer-handle{z-index:3;cursor:col-resize;touch-action:none;width:8px;height:100%;position:absolute;top:0;right:-1px}.column-resizer-handle:after{content:"";background:color-mix(in srgb, var(--text3) 38%, transparent);width:1px;transition:background .15s,width .15s;position:absolute;top:24%;bottom:24%;left:3px}.column-resizer-handle:hover:after,.column-resizer-handle:active:after{background:var(--gold);width:3px;left:2px}.data-table tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--bg3) 42%, var(--surface))}.data-table tbody tr:hover td{background:color-mix(in srgb, var(--gold) 7%, var(--surface))}.data-table td{color:var(--text2)}.data-table th:last-child,.data-table td:last-child{text-align:right;white-space:nowrap;min-width:120px}.data-table td:last-child button,.data-table td:last-child .btn-outline{margin-left:5px}.tag{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;min-height:24px;padding:4px 9px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.tag.on,.tag.done,.tag.success,.tag.idle{color:var(--success);background:color-mix(in srgb, var(--success) 11%, transparent);border-color:color-mix(in srgb, var(--success) 18%, transparent)}.tag.off,.tag.cancelled,.tag.fail{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:color-mix(in srgb, var(--danger) 18%, transparent)}.tag.washing,.tag.pending{color:var(--warning);background:color-mix(in srgb, var(--warning) 11%, transparent);border-color:color-mix(in srgb, var(--warning) 20%, transparent)}.tag.topup{color:var(--info);background:color-mix(in srgb, var(--info) 11%, transparent);border-color:color-mix(in srgb, var(--info) 18%, transparent)}.tag.refund{color:#aa8bec;background:#8b5cf61c;border-color:#8b5cf633}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:11px;gap:4px;max-width:100%;margin-bottom:20px;padding:4px;display:inline-flex}.tabs button{min-height:34px;color:var(--text2);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 13px;font-size:12px;font-weight:700;transition:color .18s,background .18s,box-shadow .18s}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--text);background:var(--bg3);box-shadow:var(--shadow-sm)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#080a0c9e;justify-content:center;align-items:center;padding:20px;animation:.18s both overlay-in;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:520px;max-height:min(88vh,900px);color:var(--text);background:var(--surface-raised);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);border-radius:18px;padding:26px;animation:.22s cubic-bezier(.2,.75,.25,1) both modal-in;overflow-y:auto}.modal h3{color:var(--text);letter-spacing:-.025em;margin:0 0 20px;font:800 18px/1.3 Manrope,DM Sans,sans-serif}.modal label{color:var(--text2);margin:0 0 14px;font-size:12px;font-weight:700;display:block}.modal input:not([type=checkbox]),.modal select,.modal textarea{width:100%;margin-top:7px}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:9px;margin-top:22px;padding-top:16px;display:flex}.loading,.empty{color:var(--text3);text-align:center;padding:52px 16px;font-size:13px}.error,.success{border:1px solid;border-radius:10px;padding:11px 14px;font-size:13px}.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:color-mix(in srgb, var(--danger) 20%, transparent)}.success{color:var(--success);background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 20%, transparent)}.auth-page{background:radial-gradient(ellipse at 18% 18%, color-mix(in srgb, var(--gold) 10%, transparent), transparent 36%), var(--bg);place-items:center;min-height:100svh;padding:42px 24px;display:grid;overflow:hidden}.auth-shell{background:var(--surface);border:1px solid var(--border);width:min(1080px,100%);min-height:620px;box-shadow:var(--shadow-md);border-radius:26px;grid-template-columns:1.04fr .96fr;display:grid;position:relative;overflow:hidden}.auth-story{background:linear-gradient(145deg, color-mix(in srgb, var(--gold) 11%, var(--surface)) 0%, var(--surface) 58%);border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;min-width:0;padding:52px;display:flex;position:relative;overflow:hidden}.auth-story:before,.auth-story:after{content:"";pointer-events:none;border:1px solid color-mix(in srgb, var(--gold) 16%, transparent);border-radius:50%;position:absolute}.auth-story:before{width:440px;height:440px;bottom:-150px;right:-190px}.auth-story:after{width:330px;height:330px;bottom:-95px;right:-135px}.auth-brand{z-index:1;align-items:center;gap:12px;display:inline-flex;position:relative}.auth-brand svg{filter:drop-shadow(0 7px 14px #c4972a38);width:42px;height:42px}.auth-brand span{color:var(--gold);letter-spacing:.08em;font:800 17px/1 Manrope,DM Sans,sans-serif}.auth-story-copy{z-index:1;max-width:430px;margin:auto 0;padding:48px 0;position:relative}.auth-kicker{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;font-weight:800;display:inline-flex}.auth-kicker:before{content:"";background:var(--gold);width:20px;height:1px}.auth-story h2{max-width:420px;color:var(--text);letter-spacing:-.055em;margin:22px 0 14px;font:800 clamp(30px,4vw,44px)/1.13 Manrope,DM Sans,sans-serif}.auth-story-copy p{max-width:400px;color:var(--text2);font-size:14px;line-height:1.8}.auth-story-foot{z-index:1;color:var(--text3);letter-spacing:.02em;font-size:11px;position:relative}.auth-card{width:100%;max-width:none;color:var(--text);box-shadow:none;background:0 0;border:0;border-radius:0;align-self:center;padding:62px clamp(30px,5vw,68px)}.auth-card .auth-header{text-align:left;margin-bottom:30px}.auth-card .auth-header h1{color:var(--text);letter-spacing:-.04em;margin:0 0 8px;font:800 27px/1.2 Manrope,DM Sans,sans-serif}.auth-card .auth-header p{color:var(--text2);font-size:13px}.auth-card .auth-icon{width:42px;height:42px;color:var(--gold);background:color-mix(in srgb, var(--gold) 10%, var(--surface));border:1px solid var(--border-strong);border-radius:13px;place-items:center;margin-bottom:20px;font-size:20px;display:grid}.auth-card .field{margin-bottom:18px}.auth-card .field label{color:var(--text2);margin-bottom:7px;font-size:12px;font-weight:700;display:block}.auth-card .field input:not([type=checkbox]){width:100%;min-height:46px}.auth-card .btn-submit{letter-spacing:.01em;border-radius:10px;width:100%;min-height:46px;margin-top:5px;font-size:14px}.auth-theme-toggle{z-index:3;width:38px;height:38px;color:var(--text2);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:11px;place-items:center;transition:all .18s;display:grid;position:absolute;top:20px;right:20px}.auth-theme-toggle:hover{color:var(--gold);border-color:var(--border-strong);transform:translateY(-1px)}.auth-note{color:var(--text3);text-align:center;margin-top:18px;font-size:11px;line-height:1.6}.auth-default{color:var(--text2);background:color-mix(in srgb, var(--gold) 6%, var(--surface));border:1px solid color-mix(in srgb, var(--gold) 14%, var(--border));border-radius:9px;justify-content:center;align-items:center;gap:7px;margin:14px 0 0;padding:10px 11px;font-size:10px;display:flex}.auth-default code{color:var(--gold);background:var(--bg3);border:1px solid var(--border);border-radius:5px;padding:3px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.auth-card .error,.auth-card .success{text-align:left;margin-bottom:16px}.dash{width:min(100%,1600px);max-width:1600px;margin-inline:auto}.stats-grid{gap:14px}.stat-card{min-height:108px;padding:20px}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{border-radius:13px;width:46px;height:46px}.stat-value{letter-spacing:-.035em;font-family:Manrope,DM Sans,sans-serif}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=720px){.auth-page{padding:18px}.auth-shell{border-radius:20px;grid-template-columns:1fr;width:min(480px,100%);min-height:0}.auth-story{display:none}.auth-card{padding:64px 28px 34px}.page-view h2,.page-header h1{font-size:22px}.page-header{flex-direction:column;align-items:flex-start}.card{padding:17px}.data-table{max-width:100%;display:block;overflow-x:auto}.modal{padding:21px}.checks label{flex:100%}.settings-grid{grid-template-columns:1fr!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
