:root{--me-turquoise: #55BAC3;--me-royal: #1F519E;--me-turquoise-100: #EAF6F7;--me-turquoise-200: #C5E6E9;--me-turquoise-300: #9CD4D9;--me-turquoise-400: #7AC6CC;--me-turquoise-500: #55BAC3;--me-turquoise-600: #3FA0A9;--me-turquoise-700: #2E848C;--me-turquoise-800: #1F6269;--me-royal-100: #E8EEF6;--me-royal-200: #BFCFE5;--me-royal-300: #8FACD0;--me-royal-400: #5A80B7;--me-royal-500: #2F63AB;--me-royal-600: #1F519E;--me-royal-700: #163F7C;--me-royal-800: #0F2D59;--me-ink: #0F1B2E;--me-ink-2: #2B3A55;--me-slate: #5C6B85;--me-slate-2: #8A95AB;--me-line: #D8DEE8;--me-line-2: #E9ECF2;--me-paper: #F5F7FB;--me-paper-2: #FAFBFD;--me-white: #FFFFFF;--me-bg: var(--me-white);--me-card: var(--me-white);--me-hairline: var(--me-line);--me-focus: var(--me-turquoise);--r-xs: 2px;--r-sm: 4px;--r-md: 8px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--shadow-xs: 0 1px 2px rgba(15,27,46,.06);--shadow-sm: 0 2px 6px rgba(15,27,46,.08), 0 1px 2px rgba(15,27,46,.05);--shadow-md: 0 8px 24px -8px rgba(15,27,46,.12), 0 2px 6px rgba(15,27,46,.06);--shadow-lg: 0 24px 48px -16px rgba(15,27,46,.18), 0 4px 12px rgba(15,27,46,.08);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}@font-face{font-family:Futura Std;src:url(/fonts/FuturaStd-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Futura Std;src:url(/fonts/FuturaStd-Heavy.otf) format("opentype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Futura Std;src:url(/fonts/FuturaStd-Heavy.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/HelveticaNeueLTStd-Lt.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/HelveticaNeue.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:MElleHK;src:url(/fonts/MElleHK-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:MElleHK;src:url(/fonts/MElleHK-Xbold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:MElleHK;src:url(/fonts/MElleHK-Xbold.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:MHeiHK;src:url(/fonts/MHeiHK-Light.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:MHeiHK;src:url(/fonts/MHeiHK-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:MHeiHK;src:url(/fonts/MHeiHK-Xbold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:MHeiHK;src:url(/fonts/MHeiHK-Xbold.otf) format("opentype");font-weight:900;font-style:normal;font-display:swap}:root{--font-display: "Futura Std", "Futura", "Helvetica Neue", sans-serif;--font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-cn-display: "MElleHK", "蒙納雅麗體", "PingFang HK", serif;--font-cn-body: "MHeiHK", "蒙納黑體", "PingFang HK", "Microsoft JhengHei", sans-serif}body{font-family:var(--font-body);color:var(--me-ink);background:var(--me-paper-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-topbar{background:var(--me-royal);color:#fff;position:relative;overflow:hidden}.app-topbar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:32px 32px}.app-topbar-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1280px;margin:0 auto;padding:18px 32px}.app-topbar .brand{display:flex;align-items:center;gap:14px}.app-topbar .brand img{height:38px;width:auto;filter:brightness(0) invert(1)}.app-topbar .brand .divider{width:1px;height:28px;background:#ffffff4d}.app-topbar .product{font-family:var(--font-display);font-weight:500;letter-spacing:.14em;font-size:12px;text-transform:uppercase;color:#ffffffd9}.app-topbar .product b{display:block;font-weight:900;font-size:20px;letter-spacing:-.01em;text-transform:none;color:#fff}.app-topbar .user{display:flex;align-items:center;gap:14px}.app-topbar .user-email{font-family:var(--font-body);font-size:13px;color:#ffffffd9}.app-topbar .user-pill{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.18em;text-transform:uppercase;background:var(--me-turquoise);color:var(--me-royal-800);padding:5px 10px;border-radius:999px}.app-topbar .user-pill.is-button{border:0;cursor:pointer;transition:background .15s ease,transform .1s ease}.app-topbar .user-pill.is-button:hover{background:#b5e2d9}.app-topbar .user-pill.is-button:active{transform:translateY(1px)}.app-topbar .link-btn{background:transparent;border:0;font-family:var(--font-body);font-size:13px;color:#ffffffd9;cursor:pointer;padding:4px 0;text-decoration:underline;text-decoration-color:#ffffff4d;text-underline-offset:3px;transition:color .15s ease,text-decoration-color .15s ease}.app-topbar .link-btn:hover{color:#fff;text-decoration-color:#ffffffb3}.app-topbar .logout{font-family:var(--font-body);font-size:13px;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.4);padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .15s ease}.app-topbar .logout:hover{background:#ffffff1a;border-color:#fff9}.app-main{max-width:1280px;margin:0 auto;padding:32px}@media (max-width: 720px){.app-topbar-inner{padding:14px 18px;flex-wrap:wrap;gap:12px}.app-topbar .user-email{display:none}.app-main{padding:18px}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--me-line)}.page-head .kicker{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--me-turquoise-700);margin:0 0 8px}.page-head h1{font-family:var(--font-display);font-weight:900;font-size:36px;line-height:1.05;letter-spacing:-.02em;margin:0;color:var(--me-ink)}.page-head p{font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--me-slate);margin:6px 0 0;max-width:520px}.page-head .actions{display:flex;gap:10px;flex-wrap:wrap}.btn{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;padding:10px 18px;border-radius:8px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease;text-decoration:none}.btn:focus-visible{outline:2px solid var(--me-turquoise);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--me-royal);color:#fff}.btn-primary:hover:not(:disabled){background:var(--me-royal-700)}.btn-secondary{background:var(--me-turquoise);color:var(--me-royal-800)}.btn-secondary:hover:not(:disabled){background:var(--me-turquoise-600);color:#fff}.btn-ghost{background:#fff;color:var(--me-ink);border-color:var(--me-line)}.btn-ghost:hover:not(:disabled){background:var(--me-paper);border-color:var(--me-slate-2)}.btn-danger-ghost{background:#fff;color:#b5384b;border-color:#e6bfc6}.btn-danger-ghost:hover:not(:disabled){background:#fbeef1}.btn-sm{padding:7px 12px;font-size:12px}.upload-row{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;margin-bottom:24px}.upload-row>*{min-width:0}@media (max-width: 920px){.upload-row{grid-template-columns:1fr}}.card{background:#fff;border:1px solid var(--me-line);border-radius:var(--r-lg);padding:24px}.card-title{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--me-slate);margin:0 0 14px}.upload-zone{position:relative;border:2px dashed var(--me-turquoise-300);background:var(--me-turquoise-100);border-radius:var(--r-lg);padding:28px;display:flex;align-items:center;gap:20px;transition:all .2s ease;cursor:pointer}.upload-zone:hover{border-color:var(--me-turquoise);background:var(--me-turquoise-200)}.upload-zone.is-drag{border-color:var(--me-royal);background:var(--me-royal-100)}.upload-zone.is-busy{opacity:.7;cursor:progress}.upload-zone .icon{flex:0 0 auto;width:78px;height:78px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-sm);color:var(--me-slate-2);border:0;padding:0;transition:all .18s cubic-bezier(.2,.8,.2,1)}.upload-zone .icon svg{width:36px;height:36px}.upload-zone .icon.go-btn{cursor:pointer}.upload-zone .icon.go-btn:disabled{cursor:not-allowed;opacity:.55}.upload-zone .icon.go-btn.is-ready{background:var(--me-royal);color:#fff;box-shadow:0 0 0 6px #1f519e1f,0 12px 28px -8px #1f519e8c,0 4px 10px #0f1b2e2e;animation:go-pulse 1.8s ease-in-out infinite}.upload-zone .icon.go-btn.is-ready:hover{background:var(--me-royal-700);transform:scale(1.04);animation:none}.upload-zone .icon.go-btn.is-busy{background:var(--me-turquoise);color:#fff;animation:none}.upload-zone .icon.go-btn .spin{animation:go-spin .9s linear infinite;transform-origin:center}@keyframes go-pulse{0%,to{box-shadow:0 0 0 6px #1f519e1a,0 12px 28px -8px #1f519e8c,0 4px 10px #0f1b2e2e}50%{box-shadow:0 0 0 12px #1f519e2e,0 14px 32px -8px #1f519ea6,0 4px 10px #0f1b2e2e}}@keyframes go-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-zone .file-queue{list-style:none;margin:12px 0 0;padding:8px;background:#ffffffa6;border:1px solid var(--me-turquoise-300);border-radius:var(--r-md);display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}.upload-zone .file-queue li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:6px 10px;background:#fff;border-radius:6px;font-family:var(--font-body);font-size:12px;color:var(--me-ink)}.upload-zone .file-queue .qname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.upload-zone .file-queue .qsize{font-variant-numeric:tabular-nums;color:var(--me-slate-2);font-size:11px}.upload-zone .file-queue .qremove{background:transparent;border:0;color:var(--me-slate-2);cursor:pointer;font-size:18px;line-height:1;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;transition:all .12s ease}.upload-zone .file-queue .qremove:hover:not(:disabled){background:#fbeef1;color:#b5384b}.upload-zone .text{flex:1;min-width:0}.upload-zone .text h3{font-family:var(--font-display);font-weight:900;font-size:18px;margin:0 0 4px;color:var(--me-ink)}.upload-zone .text p{font-family:var(--font-body);font-size:13px;line-height:1.5;color:var(--me-ink-2);margin:0}.upload-zone .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.upload-zone input[type=file]{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.category-card{display:flex;flex-direction:column;gap:10px}.category-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.category-card .card-head .card-title{margin:0}.category-card .new-cat-btn{padding:5px 10px;font-size:11px}.category-card .new-cat-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--me-turquoise-100);border:1px solid var(--me-turquoise-300);border-radius:8px}.category-card .new-cat-form input{flex:1;min-width:140px;font-family:var(--font-body);font-size:13px;padding:8px 12px;border:1px solid var(--me-line);border-radius:6px;background:#fff;color:var(--me-ink)}.category-card .new-cat-form input:focus{outline:2px solid var(--me-turquoise);outline-offset:-1px;border-color:var(--me-turquoise)}.category-card .new-cat-err{width:100%;font-family:var(--font-body);font-size:12px;color:#b5384b}.category-card .chip.is-custom{position:relative;padding-left:18px}.category-card .chip.is-custom:before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--me-turquoise)}.category-card .chip.is-custom.is-active:before{background:#fff}.category-card label{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--me-slate)}.category-card .field{position:relative}.category-card select{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-body);font-size:14px;padding:12px 36px 12px 14px;border:1px solid var(--me-line);border-radius:8px;background:#fff;color:var(--me-ink);cursor:pointer}.category-card select:focus{outline:2px solid var(--me-turquoise);outline-offset:-1px;border-color:var(--me-turquoise)}.category-card .field:after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:2px solid var(--me-slate);border-bottom:2px solid var(--me-slate);transform:translateY(-65%) rotate(45deg);pointer-events:none}.category-card .quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.chip{font-family:var(--font-body);font-size:12px;padding:5px 10px;border:1px solid var(--me-line);border-radius:999px;background:#fff;cursor:pointer;color:var(--me-ink-2);transition:all .15s ease}.chip:hover{border-color:var(--me-turquoise);color:var(--me-royal)}.chip.is-active{background:var(--me-royal);color:#fff;border-color:var(--me-royal)}.usage-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;font-family:var(--font-body);font-size:12px}.usage-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.usage-text{color:var(--me-royal-700);font-weight:500}.usage-text b{font-weight:700}.usage-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--me-royal-100);color:var(--me-royal-700);white-space:nowrap}.usage-pill.is-free{background:var(--me-royal-100);color:var(--me-royal-700)}.usage-pill.is-standard{background:var(--me-turquoise-200);color:var(--me-turquoise-800)}.usage-pill.is-plus{background:var(--me-royal);color:#fff}.usage-bar{height:4px;border-radius:2px;background:var(--me-royal-100);overflow:hidden}.usage-bar-fill{height:100%;border-radius:2px;background:var(--me-royal);transition:width .3s ease,background .3s ease}.usage-row.is-near .usage-bar-fill{background:#d97706}.usage-row.is-near .usage-text{color:#92400e}.usage-row.is-over .usage-bar-fill{background:#dc2626}.usage-row.is-over .usage-text{color:#991b1b}.upload-progress{margin-top:14px;display:flex;flex-direction:column;gap:6px}.upload-progress-bar{height:6px;border-radius:999px;background:var(--me-line-2);overflow:hidden}.upload-progress-fill{height:100%;background:linear-gradient(90deg,var(--me-turquoise),var(--me-royal));transition:width .2s ease}.upload-progress-stage{font-family:var(--font-body);font-size:12px;color:var(--me-slate)}.upload-status{margin-bottom:24px;background:var(--me-turquoise-100);border:1px solid var(--me-turquoise-300);border-radius:var(--r-md);padding:14px 18px;font-family:var(--font-body);font-size:13px;color:var(--me-royal-800)}.upload-status .err{margin-top:6px;color:#b5384b}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px}@media (max-width: 920px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.kpi-grid{grid-template-columns:1fr}}.kpi{background:#fff;border:1px solid var(--me-line);border-radius:var(--r-lg);padding:22px;position:relative;overflow:hidden;min-width:0}@media (max-width: 540px){.kpi{padding:18px}}.kpi .label{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--me-slate);margin:0 0 14px}.kpi .value{font-family:var(--font-display);font-weight:900;font-size:32px;line-height:1;color:var(--me-ink);letter-spacing:-.02em;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.kpi .value .unit{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--me-slate);letter-spacing:.04em}.kpi .sub{font-family:var(--font-body);font-size:12px;color:var(--me-slate);margin:8px 0 0}.kpi.is-feature{background:var(--me-royal);color:#fff;border-color:var(--me-royal)}.kpi.is-feature .label{color:#ffffffb3}.kpi.is-feature .value{color:#fff}.kpi.is-feature .sub{color:#ffffffb3}.kpi.is-feature:after{content:"";position:absolute;right:16px;bottom:16px;width:64px;height:36px;background:linear-gradient(to top,var(--me-turquoise) 0% 30%,transparent 30%) 0 100% / 12px 30% no-repeat,linear-gradient(to top,var(--me-turquoise) 0% 55%,transparent 55%) 16px 100% / 12px 55% no-repeat,linear-gradient(to top,var(--me-turquoise) 0% 80%,transparent 80%) 32px 100% / 12px 80% no-repeat,linear-gradient(to top,var(--me-turquoise) 0% 100%,transparent 100%)48px 100% / 12px 100% no-repeat;opacity:.9;border-radius:2px}.kpi-bars{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;align-items:end;height:36px;margin-top:14px}.kpi-bars span{background:var(--me-turquoise);border-radius:2px 2px 0 0;opacity:.65}.kpi-bars span.is-current{background:var(--me-royal);opacity:1}.cat-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;margin:14px 0 10px;background:var(--me-line-2)}.cat-bar span{height:100%}.cat-list{display:flex;flex-direction:column;gap:6px}.cat-list .row{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:12px;color:var(--me-ink-2)}.cat-list .dot{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.cat-list .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-list .amt{font-weight:700;color:var(--me-ink);font-family:var(--font-display);font-variant-numeric:tabular-nums}.chart-row{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:16px}@media (max-width: 920px){.chart-row{grid-template-columns:1fr}}.chart{background:#fff;border:1px solid var(--me-line);border-radius:var(--r-lg);padding:22px;min-width:0;overflow:hidden}@media (max-width: 540px){.chart{padding:16px}}.chart .bars,.chart .bars .bar{min-width:0}.chart h3{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--me-slate);margin:0 0 16px}.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:130px}.bars .bar{background:var(--me-turquoise);border-radius:4px 4px 0 0;position:relative;transition:background .15s ease}.bars .bar:hover,.bars .bar.is-current{background:var(--me-royal)}.bars .bar .lbl{position:absolute;bottom:-22px;left:0;right:0;text-align:center;font-family:var(--font-body);font-size:10px;color:var(--me-slate)}.bars .bar .v{position:absolute;top:-16px;left:0;right:0;text-align:center;font-family:var(--font-display);font-weight:700;font-size:10px;color:var(--me-ink)}.chart-x{padding-bottom:26px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 16px}.section-head h2{font-family:var(--font-display);font-weight:900;font-size:22px;margin:0;letter-spacing:-.01em}.section-head .right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.section-head .count{font-family:var(--font-body);font-size:13px;color:var(--me-slate)}.filterbar{background:#fff;border:1px solid var(--me-line);border-radius:var(--r-lg);padding:14px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr .7fr .7fr auto;gap:10px;margin-bottom:16px;align-items:end}@media (max-width: 1024px){.filterbar{grid-template-columns:1fr 1fr}}@media (max-width: 540px){.filterbar{grid-template-columns:1fr}}.filterbar .field{display:flex;flex-direction:column;gap:4px;min-width:0}.filterbar .field label{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--me-slate)}.filterbar input,.filterbar select{font-family:var(--font-body);font-size:13px;padding:9px 12px;border:1px solid var(--me-line);border-radius:8px;background:var(--me-paper-2);color:var(--me-ink);width:100%;min-width:0;max-width:100%;box-sizing:border-box}.filterbar input[type=date],.filterbar input[type=number]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:38px}.filterbar input:focus,.filterbar select:focus{outline:2px solid var(--me-turquoise);outline-offset:-1px;border-color:var(--me-turquoise);background:#fff}.filterbar .search{position:relative}.filterbar .search input{padding-left:34px}.filterbar .search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--me-slate-2)}.filterbar .clear-wrap{align-self:end}.rlist{display:flex;flex-direction:column;gap:12px}.rcard{background:#fff;border:1px solid var(--me-line);border-radius:var(--r-lg);overflow:hidden;transition:all .15s ease;cursor:pointer;position:relative}.rcard:hover{border-color:var(--me-turquoise);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.rcard-head{display:flex;align-items:center;gap:14px;padding:12px 18px;background:var(--me-paper);font-family:var(--font-body);font-size:13px;border-bottom:1px solid var(--me-line-2)}.rcard-head .num{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--me-royal)}.rcard-head .vendor-line{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--me-ink-2);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.rcard-head .badge{font-family:var(--font-display);font-weight:700;font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;border-radius:4px;flex:0 0 auto}.badge-mixed{background:var(--me-royal-100);color:var(--me-royal)}.badge-printed{background:#e6f4ec;color:#2a8c5a}.badge-handwritten{background:#fff3db;color:#8c6b19}.badge-auto{background:var(--me-turquoise-100);color:var(--me-turquoise-800)}.badge-manual{background:#f1ecf7;color:#5d3a8c}.badge-low{background:#fff3db;color:#8c6b19}.rcard-head .when{font-family:var(--font-body);font-size:11px;color:var(--me-slate);font-variant-numeric:tabular-nums;flex:0 0 auto}.rcard-body{display:grid;grid-template-columns:200px 1fr;gap:0}.rcard-body>*{min-width:0}@media (max-width: 720px){.rcard-body{grid-template-columns:1fr}}.rcard-body .thumb{position:relative;background:var(--me-paper);display:grid;place-items:center;border-right:1px solid var(--me-line-2);min-height:140px;overflow:hidden}.rcard-body .thumb img{width:160px;height:110px;object-fit:cover;border-radius:4px;box-shadow:0 6px 14px -6px #0f1b2e4d,0 1px 2px #0f1b2e33;transform:rotate(-1.5deg)}.rlist.density-detailed .rcard-body .thumb img{width:180px;height:140px}.rlist.density-compact .rcard-body .thumb img{width:120px;height:80px}.rcard-body .thumb-art{width:80%;aspect-ratio:4/3;border-radius:4px;position:relative;box-shadow:0 6px 14px -6px #0f1b2e4d,0 1px 2px #0f1b2e33;transform:rotate(-1.5deg);overflow:hidden;background:linear-gradient(180deg,#fff,#fafafa)}.thumb-art.rose{background:radial-gradient(circle at 20% 20%,rgba(213,84,100,.18),transparent 40%),repeating-linear-gradient(180deg,transparent 0 20px,rgba(213,84,100,.05) 20px 21px),linear-gradient(180deg,#fcefef,#f8e1e3)}.thumb-art.rose:before{content:"";position:absolute;left:8%;top:12%;width:40%;height:14%;background:#d5546466;border-radius:2px;opacity:.6}.thumb-art.rose:after{content:"$";position:absolute;left:8%;bottom:16%;font-family:serif;font-weight:700;color:#3c00008c;font-size:22px;font-style:italic}.thumb-art.cream{background:repeating-linear-gradient(0deg,transparent 0 16px,rgba(120,90,40,.06) 16px 17px),linear-gradient(160deg,#faf1dd,#f5e5c0)}.thumb-art.cream:before{content:"";position:absolute;right:10%;top:14%;width:28%;height:28%;background:radial-gradient(circle,#c133338c,#c1333300 60%);border-radius:50%}.thumb-art.cream:after{content:"正式收據";position:absolute;left:8%;top:14%;font-family:MHeiHK,serif;font-size:10px;color:#c13333b3;writing-mode:vertical-rl;letter-spacing:.25em}.thumb-art.thermal{background:linear-gradient(180deg,#fff,#f0f0f0)}.thumb-art.thermal:before{content:"";position:absolute;left:0;right:0;top:6%;height:3px;background:repeating-linear-gradient(90deg,var(--me-ink) 0 1px,transparent 1px 3px);opacity:.35;box-shadow:0 8px 0 -1px var(--me-line),0 16px 0 -1px var(--me-line),0 24px 0 -1px var(--me-line),0 32px 0 -1px var(--me-line)}.thumb-art.thermal:after{content:"";position:absolute;left:12%;right:12%;bottom:12%;height:18%;background:repeating-linear-gradient(90deg,var(--me-ink) 0 2px,transparent 2px 4px);opacity:.8}.rcard-body .data{padding:18px 22px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px 28px;align-items:start;position:relative}.rcard-body .data:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:var(--me-royal);border-radius:0 2px 2px 0}.field-row{display:flex;flex-direction:column;gap:2px;min-width:0}.field-row .lbl{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--me-slate)}.field-row .val{font-family:var(--font-body);font-size:14px;color:var(--me-ink);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-row .val.cn{font-family:var(--font-cn-body)}.field-row .val.muted{color:var(--me-slate-2)}.field-row .val.low{background:linear-gradient(180deg,transparent 60%,rgba(255,220,130,.55) 60%);padding:0 2px}.field-row .val.total{font-family:var(--font-display);font-weight:900;font-size:20px;color:var(--me-ink);letter-spacing:-.01em;white-space:normal}.field-row .val.total .ccy{font-size:12px;color:var(--me-slate);font-weight:700;margin-left:4px}.rcard-body .vendor-display{grid-column:1 / -1;display:flex;align-items:baseline;gap:12px;margin-bottom:4px;flex-wrap:wrap}.rcard-body .vendor-display .en{font-family:var(--font-display);font-weight:900;font-size:18px;color:var(--me-ink);letter-spacing:-.01em}.rcard-body .vendor-display .cn{font-family:var(--font-cn-display);font-weight:700;font-size:18px;color:var(--me-royal)}.rcard-body .notes{grid-column:1 / -1;font-family:var(--font-body);font-size:12px;color:var(--me-slate);line-height:1.5;font-style:italic;border-top:1px dashed var(--me-line);padding-top:10px;margin-top:4px}.rcard-body .duplicate-warning{grid-column:1 / -1;background:#fff3db;border:1px solid #F0D294;color:#8c6b19;padding:8px 12px;border-radius:var(--r-md);font-family:var(--font-body);font-size:12px}.rlist.density-compact .rcard-body{grid-template-columns:1fr}.rlist.density-compact .rcard-body .thumb{display:none}.rlist.density-compact .rcard-body .data{padding:12px 18px;grid-template-columns:2fr 1fr 1fr 1fr;gap:6px 16px}.rlist.density-compact .rcard-body .vendor-display{grid-column:1;margin:0}.rlist.density-compact .rcard-body .vendor-display .en,.rlist.density-compact .rcard-body .vendor-display .cn{font-size:14px}.rlist.density-compact .rcard-body .notes,.rlist.density-compact .field-row .lbl{display:none}.rlist.density-compact .field-row .val.total{font-size:14px;font-weight:700}.rlist.density-detailed .rcard-body .thumb{min-height:220px}.rlist.density-detailed .rcard-body .thumb-art{width:86%}.rlist.style-minimal .rcard{box-shadow:none;border-color:var(--me-line-2)}.rlist.style-minimal .rcard-head{background:#fff;border-bottom:1px solid var(--me-line-2)}.rlist.style-minimal .rcard-body .data:before{display:none}.rlist.style-playful .rcard{border-color:transparent;background:linear-gradient(180deg,#fff 0%,var(--me-turquoise-100) 100%);box-shadow:var(--shadow-sm)}.rlist.style-playful .rcard-head{background:var(--me-royal);color:#fff;border-bottom:0}.rlist.style-playful .rcard-head .num{color:var(--me-turquoise)}.rlist.style-playful .rcard-head .vendor-line{color:#ffffffbf}.rlist.style-playful .rcard-head .when{color:#ffffffa6}.rlist.style-playful .rcard-head .badge-mixed{background:var(--me-turquoise);color:var(--me-royal-800)}.rlist.style-playful .rcard-head .badge-auto{background:#fff3;color:#fff}.rlist.style-playful .rcard-body .data:before{background:var(--me-turquoise)}.tag-list{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;padding:0;list-style:none}.tag-chip{font-family:var(--font-body);font-size:11px;padding:3px 8px;border-radius:999px;background:var(--me-royal-100);color:var(--me-royal)}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1b2e80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease}.drawer-scrim.is-open{opacity:1;pointer-events:auto}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(640px,100vw);background:#fff;z-index:60;transform:translate(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;box-shadow:-20px 0 60px -20px #0f1b2e4d}.drawer.is-open{transform:translate(0)}.drawer-head{background:var(--me-royal);color:#fff;padding:22px 28px;display:flex;align-items:flex-start;gap:16px;position:relative;overflow:hidden}.drawer-head:after{content:"";position:absolute;right:-20px;bottom:-20px;width:160px;height:90px;background:linear-gradient(to top,rgba(85,186,195,.5) 0% 30%,transparent 30%) 0 100% / 22px 30% no-repeat,linear-gradient(to top,rgba(85,186,195,.5) 0% 55%,transparent 55%) 28px 100% / 22px 55% no-repeat,linear-gradient(to top,rgba(85,186,195,.5) 0% 80%,transparent 80%) 56px 100% / 22px 80% no-repeat,linear-gradient(to top,rgba(85,186,195,.5) 0% 100%,transparent 100%)84px 100% / 22px 100% no-repeat}.drawer-head .num{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#ffffffbf;margin:0 0 6px}.drawer-head h2{font-family:var(--font-display);font-weight:900;font-size:24px;line-height:1.2;margin:0;letter-spacing:-.01em}.drawer-head h2 .cn{font-family:var(--font-cn-display);font-weight:700;font-size:22px;color:var(--me-turquoise-200);display:block;margin-top:4px}.drawer-head .close{flex:0 0 auto;background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff;width:36px;height:36px;border-radius:8px;display:grid;place-items:center;cursor:pointer;transition:background .15s ease;z-index:1}.drawer-head .close:hover{background:#ffffff40}.drawer-body{flex:1;min-height:0;overflow:auto;padding:24px 28px 32px;display:flex;flex-direction:column;gap:24px}.drawer-body .receipt-image{width:100%;border:1px solid var(--me-line);border-radius:var(--r-md);overflow:hidden;position:relative;background:var(--me-paper);display:grid;place-items:center;min-height:240px}.drawer-body .receipt-image img,.drawer-body .receipt-image embed{width:100%;max-height:320px;object-fit:contain;display:block}.drawer-body .receipt-image .open-fullsize{position:absolute;top:8px;right:8px;background:#0f1b2eb3;color:#fff;font-family:var(--font-body);font-size:11px;padding:4px 8px;border-radius:999px;text-decoration:none}.drawer-body .receipt-image .open-fullsize:hover{background:var(--me-royal)}.drawer-body .receipt-image .thumb-art{width:70%;aspect-ratio:4/3}.fieldset{display:grid;grid-template-columns:1fr 1fr;gap:18px}.fieldset .full{grid-column:1 / -1}.fieldset .ifield{display:flex;flex-direction:column;gap:4px}.fieldset .ifield label{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--me-slate);display:flex;align-items:center;gap:6px}.fieldset .ifield label .low-flag{background:#fff3db;color:#8c6b19;font-size:9px;padding:1px 5px;border-radius:999px;letter-spacing:.1em}.fieldset .ifield input,.fieldset .ifield select,.fieldset .ifield textarea{font-family:var(--font-body);font-size:14px;padding:10px 12px;border:1px solid var(--me-line);border-radius:8px;background:var(--me-paper-2);color:var(--me-ink);width:100%}.fieldset .ifield input.low-conf,.fieldset .ifield select.low-conf,.fieldset .ifield textarea.low-conf{border-color:#f0d294;background:#fffaec}.fieldset .ifield input:focus,.fieldset .ifield select:focus,.fieldset .ifield textarea:focus{outline:2px solid var(--me-turquoise);outline-offset:-1px;border-color:var(--me-turquoise);background:#fff}.fieldset .ifield .stamp{font-family:var(--font-body);font-size:13px;color:var(--me-slate);padding:10px 12px;border:1px dashed var(--me-line);border-radius:8px;background:var(--me-paper-2)}.fieldset .ifield .stamp.empty{color:var(--me-slate-2);font-style:italic}.fieldset .ifield .stamp.low{border-color:#f0d294;background:#fffaec;color:#8c6b19}.fieldset .ifield textarea{min-height:70px;resize:vertical;font-family:var(--font-body)}.totals-block{background:var(--me-paper);border:1px solid var(--me-line);border-radius:var(--r-md);padding:16px 20px}.totals-block .row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;font-family:var(--font-body);font-size:14px;color:var(--me-ink-2)}.totals-block .row.grand{border-top:1px solid var(--me-line);margin-top:6px;padding-top:12px;font-family:var(--font-display);font-weight:900;font-size:22px;color:var(--me-ink)}.lineitems{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:13px}.lineitems th{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--me-slate);text-align:left;padding:8px 12px;border-bottom:1px solid var(--me-line)}.lineitems th.num{text-align:right}.lineitems th.act{width:32px}.lineitems td{padding:8px 12px;border-bottom:1px solid var(--me-line-2);color:var(--me-ink)}.lineitems td.num{text-align:right;font-variant-numeric:tabular-nums}.lineitems td input{width:100%;min-width:0;font-family:var(--font-body);font-size:13px;padding:6px 8px;border:1px solid var(--me-line);border-radius:6px;background:var(--me-paper-2);color:var(--me-ink)}.lineitems td input.num{text-align:right}.lineitems td input:focus{outline:2px solid var(--me-turquoise);outline-offset:-1px;border-color:var(--me-turquoise);background:#fff}.lineitems .remove-item-btn{background:transparent;border:0;cursor:pointer;color:var(--me-slate-2);font-size:18px;line-height:1;padding:0 4px}.lineitems .remove-item-btn:hover{color:#b5384b}.lineitems .empty{padding:14px 12px;color:var(--me-slate-2);font-style:italic;font-size:13px}.add-item-btn{margin-top:10px;background:transparent;color:var(--me-royal);border:1px dashed var(--me-royal-300);border-radius:6px;padding:6px 12px;font-family:var(--font-body);font-size:12px;cursor:pointer}.add-item-btn:hover{background:var(--me-royal-100)}.drawer-foot{flex:0 0 auto;border-top:1px solid var(--me-line);padding:16px 28px;display:flex;gap:10px;justify-content:flex-end;align-items:center;background:#fff}.drawer-foot .left{margin-right:auto}.drawer-foot .save-err{font-family:var(--font-body);font-size:12px;color:#b5384b;margin-right:auto}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--me-ink);color:#fff;padding:12px 20px;border-radius:999px;font-family:var(--font-body);font-size:13px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:all .2s ease;z-index:100}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.is-error{background:#b5384b}.toast .check{color:var(--me-turquoise);margin-right:8px}.empty-list{background:#fff;border:1px dashed var(--me-line);border-radius:var(--r-lg);padding:40px 24px;text-align:center}.empty-list h3{font-family:var(--font-display);font-weight:900;font-size:18px;margin:0 0 6px;color:var(--me-ink)}.empty-list p{font-family:var(--font-body);font-size:13px;color:var(--me-slate);margin:0}.app-footer{margin-top:48px;padding:24px 32px;border-top:1px solid var(--me-line);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-body);font-size:12px;color:var(--me-slate);max-width:1280px;margin-left:auto;margin-right:auto}.app-footer .stairs{display:inline-flex;align-items:end;gap:2px;height:14px}.app-footer .stairs span{width:4px;background:var(--me-turquoise);border-radius:1px}.app-footer .stairs span:nth-child(1){height:25%}.app-footer .stairs span:nth-child(2){height:50%}.app-footer .stairs span:nth-child(3){height:75%}.app-footer .stairs span:nth-child(4){height:100%;background:var(--me-royal)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:linear-gradient(180deg,var(--me-royal) 0%,var(--me-royal-800) 100%);position:relative;overflow:hidden}.auth-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:36px 36px}.auth-card{position:relative;z-index:1;width:100%;max-width:420px;background:#fff;border-radius:var(--r-lg);padding:36px 32px;box-shadow:var(--shadow-lg)}.auth-card .auth-brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:22px}.auth-card .auth-brand img{height:44px}.auth-card .auth-brand .kicker{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--me-turquoise-700)}.auth-card h1{font-family:var(--font-display);font-weight:900;font-size:24px;margin:0;text-align:center;color:var(--me-ink);letter-spacing:-.01em}.auth-card .subtitle{font-family:var(--font-body);font-size:13px;color:var(--me-slate);text-align:center;margin:6px 0 22px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:4px;font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--me-slate)}.auth-form input{font-family:var(--font-body);font-size:14px;padding:11px 14px;border:1px solid var(--me-line);border-radius:8px;background:var(--me-paper-2);color:var(--me-ink)}.auth-form input:focus{outline:2px solid var(--me-turquoise);outline-offset:-1px;border-color:var(--me-turquoise);background:#fff}.auth-error{margin:0;padding:10px 12px;background:#fbeef1;color:#b5384b;border-radius:8px;font-family:var(--font-body);font-size:13px}.auth-submit{margin-top:4px;background:var(--me-royal);color:#fff;border:0;border-radius:8px;padding:12px 18px;font-family:var(--font-display);font-weight:700;font-size:14px;cursor:pointer;transition:background .15s ease}.auth-submit:hover:not(:disabled){background:var(--me-royal-700)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{font-family:var(--font-body);font-size:13px;color:var(--me-slate);text-align:center;margin:16px 0 0}.auth-link{background:none;border:0;padding:0;cursor:pointer;color:var(--me-royal);font:inherit;font-weight:700}.auth-link:hover{text-decoration:underline}.auth-loading{font-family:var(--font-body);color:var(--me-slate);text-align:center;padding:60px 20px}.seg-toggle{display:inline-flex;background:var(--me-paper);border:1px solid var(--me-line);border-radius:999px;padding:3px;gap:2px}.seg-toggle button{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--me-slate);cursor:pointer;transition:all .15s ease}.seg-toggle button:hover{color:var(--me-ink)}.seg-toggle button.is-active{background:var(--me-royal);color:#fff;box-shadow:0 1px 3px #0f1b2e26}.seg-toggle button:disabled{cursor:default;opacity:.9}.model-card{padding:20px 22px;margin-bottom:16px}.model-card-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.model-card-title{margin:2px 0 6px;font-size:18px}.model-card .lede{max-width:46ch;margin:0}.model-select-wrap{flex:0 0 auto;display:flex;flex-direction:column;gap:6px}.model-select-label{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--me-slate)}.model-select{min-width:200px;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--me-ink);background:#fff;border:1px solid var(--me-line);border-radius:10px;padding:10px 14px;cursor:pointer;transition:border-color .15s ease}.model-select:hover{border-color:var(--me-turquoise)}.model-select:focus{outline:none;border-color:var(--me-royal);box-shadow:0 0 0 3px var(--me-royal-100)}.model-select:disabled{opacity:.6;cursor:default}.charts-bar{display:flex;justify-content:flex-end;margin-bottom:10px}.charts-toggle{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--me-line);border-radius:999px;padding:6px 14px 6px 8px;font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--me-slate);cursor:pointer;transition:all .15s ease}.charts-toggle:hover{border-color:var(--me-turquoise);color:var(--me-ink)}.charts-toggle.is-on{color:var(--me-royal);border-color:var(--me-royal-200);background:var(--me-royal-100)}.switch{width:32px;height:18px;border-radius:999px;background:var(--me-line);position:relative;transition:background .15s ease;border:0;padding:0;flex:0 0 auto;display:inline-block}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 2px #00000026}.switch.is-on{background:var(--me-royal)}.switch.is-on:after{transform:translate(14px)}.filter-clear{background:transparent;border:1px solid var(--me-line);color:var(--me-slate);border-radius:8px;padding:9px 12px;font-family:var(--font-body);font-size:12px;cursor:pointer;white-space:nowrap}.filter-clear:hover{color:var(--me-ink);border-color:var(--me-slate-2)}.h-scroll{overflow-x:auto}.h-scroll::-webkit-scrollbar{display:none}.admin-card{padding:0;overflow:hidden}.admin-table{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:14px}.admin-table thead th{text-align:left;padding:14px 18px;font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--me-slate);background:var(--me-royal-100);border-bottom:1px solid var(--me-line)}.admin-table tbody td{padding:12px 18px;border-bottom:1px solid var(--me-line);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr.is-saving{opacity:.55}.admin-table .email-cell{font-weight:500}.admin-table .self-pill{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--me-royal-100);color:var(--me-royal-700);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.admin-table select{font-family:var(--font-body);font-size:13px;padding:5px 8px;border:1px solid var(--me-line-2);border-radius:6px;background:#fff;cursor:pointer}.admin-table select:disabled{cursor:not-allowed;opacity:.6}.admin-table .usage-cell{min-width:140px}.admin-table .usage-cell .usage-fraction{display:block;font-variant-numeric:tabular-nums;font-size:13px;color:var(--me-royal-700);margin-bottom:4px}.admin-table .usage-cell .usage-bar{height:4px;background:var(--me-royal-100);border-radius:2px;overflow:hidden}.admin-table .usage-cell .usage-bar-fill{height:100%;border-radius:2px;background:var(--me-royal);transition:width .3s ease}.admin-table .usage-cell .usage-bar-fill.is-near{background:#d97706}.admin-table .usage-cell .usage-bar-fill.is-over{background:#dc2626}.admin-table .usage-cell .unlimited{color:var(--me-slate);font-style:italic}.admin-table .admin-status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;background:var(--me-royal-100);color:var(--me-royal-700)}.admin-table .admin-status.is-near{background:#fef3c7;color:#92400e}.admin-table .admin-status.is-over{background:#fee2e2;color:#991b1b}.admin-empty{padding:28px 18px;color:var(--me-slate);text-align:center}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f1b2e8c;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:var(--r-lg);padding:28px 28px 22px;width:min(480px,100%);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px;animation:pop-in .18s cubic-bezier(.2,.9,.3,1.2)}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal h2{font-family:var(--font-display);font-weight:900;font-size:22px;letter-spacing:-.01em;color:var(--me-ink);margin:0}.modal-sub{font-size:13px;color:var(--me-slate);line-height:1.55;margin:0}.modal-sub code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:1px 6px;border-radius:4px;background:var(--me-line-2);color:var(--me-ink)}.modal-radio{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--me-ink);line-height:1.4;cursor:pointer}.modal-radio input[type=radio]{margin-top:2px;accent-color:var(--me-ink)}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field>span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--me-slate)}.modal-field input,.modal-field select{font-family:var(--font-body);font-size:14px;padding:10px 12px;border:1px solid var(--me-line);border-radius:var(--r-md);background:#fff;transition:border-color .15s ease}.modal-field input:focus,.modal-field select:focus{outline:none;border-color:var(--me-royal);box-shadow:0 0 0 3px var(--me-royal-100)}.modal-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.modal-danger{border-top:4px solid #dc2626;padding-top:24px}.modal-danger h2{color:#991b1b}.temp-password{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--me-paper);border:1px solid var(--me-line);border-radius:var(--r-md)}.temp-password code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:16px;letter-spacing:.08em;color:var(--me-ink);-webkit-user-select:all;user-select:all}.btn-danger{background:#dc2626;color:#fff;border:0;padding:10px 18px;border-radius:var(--r-md);font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;cursor:pointer;transition:background .15s ease}.btn-danger:hover:not(:disabled){background:#991b1b}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.admin-table .actions-th{text-align:right}.admin-table .actions-cell{text-align:right;white-space:nowrap}.btn-row{font-family:var(--font-body);font-size:12px;font-weight:500;padding:5px 10px;border-radius:6px;background:transparent;border:1px solid var(--me-line);color:var(--me-slate);cursor:pointer;margin-left:6px;transition:all .12s ease}.btn-row:first-child{margin-left:0}.btn-row:hover:not(:disabled){background:var(--me-paper);border-color:var(--me-line-2);color:var(--me-ink)}.btn-row:disabled{opacity:.35;cursor:not-allowed}.btn-row-danger:hover:not(:disabled){background:#fee2e2;border-color:#fecaca;color:#991b1b}.admin-table tr.is-disabled-row{opacity:.55}.admin-table tr.is-disabled-row .email-cell{font-style:italic}.admin-table .admin-status.is-disabled{background:var(--me-line);color:var(--me-slate);text-transform:uppercase}.page-head{align-items:flex-start}.category-card .card-head .card-head-actions{display:flex;gap:6px;align-items:center}.modal.modal-wide{width:min(560px,100%)}.cat-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--me-line);border-radius:var(--r-md);background:var(--me-paper);max-height:360px;overflow-y:auto}.cat-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--me-line);background:#fff;position:relative}.cat-row:last-child{border-bottom:0}.cat-row.is-busy{opacity:.55}.cat-name-input{flex:1;font-family:var(--font-body);font-size:14px;padding:6px 8px;border:1px solid transparent;background:transparent;border-radius:6px;transition:border-color .15s ease,background .15s ease}.cat-name-input:hover:not(:disabled){border-color:var(--me-line);background:var(--me-paper)}.cat-name-input:focus{outline:none;border-color:var(--me-royal);background:#fff;box-shadow:0 0 0 3px var(--me-royal-100)}.cat-default-pill{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--me-turquoise-200);color:var(--me-turquoise-800);padding:4px 10px;border-radius:999px;white-space:nowrap}.cat-row-err{flex-basis:100%;margin-top:6px;font-size:12px;color:#991b1b;background:#fee2e2;padding:4px 10px;border-radius:6px}.cat-add{display:flex;gap:8px;align-items:stretch;margin-top:4px}.cat-add input{flex:1;font-family:var(--font-body);font-size:14px;padding:8px 12px;border:1px solid var(--me-line);border-radius:var(--r-md)}.cat-add input:focus{outline:none;border-color:var(--me-royal);box-shadow:0 0 0 3px var(--me-royal-100)}
