:root{color:#1f2933;background:#f4f6f9;--text: #1f2933;--heading: #111827;--muted: #6b7280;--subtle: #8a94a6;--line: #dde5ef;--line-soft: #edf1f6;--surface: #fff;--surface-muted: #f7f9fc;--brand: #f26d3d;--brand-strong: #e4572e;--brand-soft: #fff3ed;--admin: #173a7a;--admin-soft: #eef4ff;--shadow-sm: 0 8px 22px rgba(31, 41, 55, .06);--shadow-md: 0 18px 44px rgba(31, 41, 55, .12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}input,select{width:100%;min-height:42px;border:1px solid #e2ded9;border-radius:8px;background:#fff;color:#2f2d2b;padding:0 12px;outline:none}input:focus,select:focus{border-color:#ff7849;box-shadow:0 0 0 2px #ff784924}label{display:grid;gap:8px}label span{color:#2f2d2b;font-size:14px;font-weight:700}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #e7ebf0;padding:14px 16px;text-align:left}th{background:#f7f8fa;color:#5f6877;font-size:13px;font-weight:700;white-space:nowrap}td{color:#283142;font-size:14px;overflow-wrap:anywhere;white-space:normal}.app-root{min-height:100vh}.toast{position:fixed;top:20px;left:50%;z-index:100;transform:translate(-50%);border-radius:8px;background:#222;color:#fff;padding:10px 16px;box-shadow:0 12px 28px #0000002e}.login-page{display:grid;min-height:100vh;place-items:center;padding:28px}.mobile-login{background:#f8f7f5}.admin-login{background:#eef2f7}.login-card{display:grid;width:min(350px,100%);gap:18px}.admin-card{width:min(360px,100%);border:1px solid #d9dee7;border-radius:8px;background:#fff;padding:32px;box-shadow:0 12px 30px #222a3a14}.app-logo{display:grid;width:84px;height:84px;place-items:center;justify-self:center;border-radius:18px;background:#ff7849;color:#fff;font-size:38px;font-weight:900;box-shadow:0 14px 30px #ff78493d}.admin-logo{width:52px;height:52px;border-radius:8px;background:#173a7a;font-size:24px;box-shadow:0 10px 24px #173a7a33}.login-card h1{margin:0;text-align:center;font-size:25px}.login-card p,.muted{margin:0;color:#908982;line-height:1.65}.login-form{display:grid;gap:16px}.primary-button,.ghost-button,.admin-primary,.link-button,.icon-button,.tiny-button{border:0;border-radius:8px;min-height:42px;padding:0 16px;font-weight:700}.primary-button{background:#ff7849;color:#fff}.admin-primary{background:#173a7a;color:#fff}.ghost-button{border:1px solid #e2ded9;background:#fff;color:#34302c}.link-button{justify-self:end;min-height:auto;background:transparent;color:#ff7849;padding:0}.icon-button{display:inline-grid;width:38px;height:38px;min-height:38px;place-items:center;border:1px solid transparent;background:transparent;color:#2f2d2b;padding:0;font-size:22px}.tiny-button{min-height:28px;background:#fff4f0;color:#ff5f38;padding:0 10px;font-size:12px}.full{width:100%}.compact{min-height:36px;padding:0 14px}.demo-box,.demo-line{display:grid;gap:6px;border-radius:8px;background:#f3efec;color:#8c857e;padding:14px;text-align:center}.phone-shell{display:grid;min-height:100vh;align-items:start;justify-items:center;background:#4a4a4a}.phone-screen{position:relative;width:min(405px,100vw);min-height:100vh;background:#f6f4f2;overflow:visible}.mobile-content{display:grid;align-content:start;gap:14px;min-height:100vh;padding:20px 16px 88px;overflow:visible}.mobile-header,.store-header,.list-header,.section-title,.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.mobile-header{position:sticky;top:0;z-index:3;justify-content:flex-start;height:60px;border-bottom:1px solid #e7e2dc;background:#faf9f7f5;padding:0 16px}.mobile-header h2,.mobile-content h1,.mobile-content h2,.mobile-content h3,.admin-content h1,.admin-content h2{margin:0}.mobile-header h2{font-size:19px}.store-header{align-items:center;justify-content:flex-start;padding:6px 0 8px}.store-header h2{margin:0;font-size:22px}.store-header p,.store-header small{display:block;margin:4px 0 0;color:#9b948e}.avatar{display:grid;width:52px;height:52px;flex:0 0 auto;place-items:center;border-radius:50%;background:#fff0ea;color:#ff7849;font-weight:800;overflow:hidden}.avatar.large{width:62px;height:62px}.avatar img{width:100%;height:100%;object-fit:cover}.avatar>span,.member-detail-avatar>span,.avatar-option-visual{display:grid;place-items:center;line-height:1}.avatar-tone-sun{background:linear-gradient(135deg,#ffe2a8,#ff7c54);color:#6f2e00}.avatar-tone-city{background:linear-gradient(135deg,#d8f3ff,#3169d7);color:#07306c}.avatar-tone-sweet{background:linear-gradient(135deg,#ffe1ee,#ff73b3);color:#781140}.avatar-tone-cool{background:linear-gradient(135deg,#ece7ff,#7364ee);color:#1f1764}.avatar-tone-cat{background:linear-gradient(135deg,#fff0bd,#60c98d);color:#1f5a38}.avatar-tone-dog{background:linear-gradient(135deg,#ffe0b6,#b97937);color:#603104}.avatar-tone-neon{background:radial-gradient(circle at 32% 25%,#5bf3ff,transparent 28%),linear-gradient(135deg,#1d2442,#8c3dff);color:#effcff}.avatar-tone-flash{background:radial-gradient(circle at 70% 20%,#fff46a,transparent 26%),linear-gradient(135deg,#22262e,#00a884);color:#fff8a8}.panel-card,.metric-card,.tier-card,.history-card,.member-row,.recent-card,.cashier-panel,.action-card,.notice-card,.admin-panel{border:1px solid #e3ded9;border-radius:8px;background:#fff;box-shadow:0 4px 14px #2a231e0a}.panel-card,.metric-card,.tier-card,.history-card,.recent-card,.cashier-panel,.notice-card{padding:14px}.summary-grid{display:grid;gap:12px}.summary-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card span,.panel-card span,.summary-grid small{color:#908982}.metric-card strong{display:block;margin-top:12px;font-size:24px}.data-row{display:flex;justify-content:space-between;border-top:1px solid #eee9e4;padding:12px 0}.data-row:first-of-type{border-top:0}.button-stack{display:grid;gap:10px}.avatar-row{display:flex;align-items:center;gap:14px}.hidden-input{display:none}.form-hint{color:#9a938d;font-size:12px}.mobile-content>.panel-card>.avatar-row+label,.mobile-content>.panel-card>h3+label,.mobile-content>.panel-card>label+label,.mobile-content>.panel-card>label+.tip-list{margin-top:16px}.mobile-content>.panel-card>label+.form-hint{margin-top:6px}.tier-plan-box{display:grid;gap:12px;border:1px solid #ddd4cb;border-radius:8px;background:#fffaf7;padding:12px;box-shadow:inset 0 0 0 1px #fff9}.tip-list{margin:0;border-radius:8px;background:#f4f1ee;color:#8b837d;padding:14px 18px;line-height:1.8}.tier-card{display:grid;gap:12px;border-radius:8px}.tier-card:not(.editing){min-height:82px;grid-template-columns:minmax(0,1fr);align-items:center;cursor:pointer}.tier-card:not(.editing):hover{border-color:#f1b69d;background:#fffdfb;box-shadow:0 10px 24px #644a3a14}.tier-card:focus-visible{outline:3px solid rgba(255,120,73,.22);outline-offset:2px}.tier-card.editing{gap:18px;border:3px solid #ff7849;box-shadow:0 10px 26px #ff78491a}.tier-summary{display:grid;min-width:0;gap:12px}.tier-label{color:#7f7770;font-size:16px;line-height:1.2}.tier-price{display:flex;min-width:0;align-items:baseline;gap:10px;color:#2f2d2b;font-size:24px;line-height:1.1}.tier-price em{color:#ff5f38;font-style:normal;font-size:19px;font-weight:800}.tier-card.editing label span{color:#9b948e;font-size:16px;font-weight:500}.tier-card.editing input{min-height:42px;border-color:#e6ded8;border-radius:14px;color:#2f2d2b;font-size:17px}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tier-card.editing .button-row{margin-top:4px}.tier-card.editing .button-row button{min-height:44px;border-radius:14px;font-size:17px}.history-card{position:relative;display:grid;gap:8px}.pill,.amount-pill{display:inline-flex;align-items:center;border-radius:999px;background:#f2f4f8;color:#173a7a;padding:4px 10px;font-size:12px;font-weight:700;white-space:nowrap}.history-card .pill{position:absolute;top:12px;right:12px;color:#ff7849}.member-profile{display:grid;gap:14px}.member-profile-head{display:flex;align-items:center;gap:14px;min-width:0}.member-profile-identity{display:grid;gap:8px;min-width:0}.member-profile .member-profile-identity h3,.member-profile .member-profile-identity p{margin:0;overflow-wrap:anywhere}.member-profile .member-profile-identity h3{color:var(--heading);font-size:20px;line-height:1.25}.member-profile .member-profile-identity p{color:#20242c;font-size:18px;line-height:1.3}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-grid div,.balance-box{border-radius:8px;background:#f5f2ef;padding:14px}.balance-box{border:1px solid #ffd8ca;background:#fff6f1}.balance-box strong{display:block;color:#ff7849;font-size:28px;margin:6px 0 14px}.balance-box div{display:flex;flex-wrap:wrap;gap:10px 18px;border-top:1px solid #ffd8ca;padding-top:10px}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.segmented button{border:0;border-radius:999px;min-height:42px;background:#ebe6e2;color:#443e38;font-weight:800}.segmented button.active{background:#ff7849;color:#fff}.record-card{display:grid;gap:8px;border-radius:8px;background:#fff;padding:12px}.record-card div{display:flex;justify-content:space-between;gap:12px}.record-card b{color:#ff5f38;justify-self:end}.empty-state,.empty-table{color:#8d867f;text-align:center}.empty-state{margin:0;border-radius:8px;background:#fff;padding:14px}.empty-table{padding:22px 16px}.pagination-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;color:#667084;font-size:13px;flex-wrap:wrap;padding-top:12px}.pagination-controls label{display:flex;align-items:center;gap:8px}.pagination-controls label span{color:#667084;font-size:13px;white-space:nowrap}.pagination-controls select{width:auto;min-width:88px;min-height:34px;padding:0 8px}.pager-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pager-buttons button{border:1px solid #dfe5ee;border-radius:8px;min-height:32px;background:#fff;color:#173a7a;padding:0 10px;font-weight:700}.pager-buttons strong{min-width:52px;text-align:center;color:#293244}.phone-shell .pager-boundary,.phone-shell .page-size-control{display:none}.action-card{position:relative;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;border:1px solid #e5dfd9;padding:16px;text-align:left}.action-card small{grid-column:2;color:#8d867f}.action-card em{border-radius:999px;background:#f7f4f1;color:#ada69e;padding:4px 10px;font-size:12px;font-style:normal}.action-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:8px;background:#fff0ea;color:#ff7849;font-weight:900}.notice-card{background:#f4f1ee;color:#776f68}.list-header h1{margin:0}.member-search-row{display:flex;align-items:center;gap:10px}.member-action-button{width:86px;flex:0 0 86px}.search-input{flex:1 1 auto;min-width:0;background:#fff}.member-search-button{border:0;border-radius:8px;background:#2f6fe4;color:#fff;font-weight:700;box-shadow:0 8px 18px #2f6fe42e}.member-search-button:not(:disabled):hover{background:#245cc5;box-shadow:0 10px 22px #245cc538}.member-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:12px}.merchant-member-row-info{display:grid;gap:2px;min-width:0}.merchant-member-name-line{display:flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}.merchant-member-name-text{min-width:0;overflow:hidden;color:inherit;text-overflow:ellipsis}.merchant-member-gender,.merchant-member-age{white-space:nowrap}.merchant-member-meta-line{display:flex;align-items:baseline;gap:4px;min-width:0;overflow:visible;font-size:14px;line-height:1.28;white-space:nowrap}.merchant-member-mobile{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchant-member-separator,.merchant-member-age{flex:0 0 auto}.merchant-member-age{font-style:normal}.member-row b small{display:block}.merchant-member-meta-line,.member-row small,.recent-card span,.recent-card small{color:#8d867f}.member-row b{text-align:right}.cashier-view{gap:16px}.cashier-tabs button.active:nth-child(2){background:#2f6fe4}.recent-card{display:flex;align-items:center;justify-content:space-between;gap:10px;border-color:#ffc8ba;background:#fff5f1}.recent-card.blue{border-color:#c6bcff;background:#f5f3ff}.cashier-panel{display:grid;gap:12px;border-color:#ff9c8c}.cashier-panel.blue{border-color:#b8abff}.cashier-form-grid{display:grid;grid-template-columns:1fr 90px;gap:10px}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid #eee7e1;padding-top:12px}.keypad button{border:0;border-radius:8px;min-height:48px;background:#f7f5f3;color:#2f2d2b;font-size:21px;font-weight:800}.bottom-tabs{position:fixed;bottom:0;left:50%;z-index:20;display:grid;width:min(405px,100vw);grid-template-columns:repeat(4,minmax(0,1fr));transform:translate(-50%);border-top:1px solid #e6e0da;background:#fff;padding:6px 0 8px}.bottom-tabs button{border:0;background:transparent;color:#7e766f;min-height:44px;font-size:13px}.bottom-tabs button.active{color:#ff7849;font-weight:800}.modal-mask{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#0000008a;padding:18px}.modal-card{position:relative;display:grid;width:min(368px,100%);gap:14px;border-radius:8px;background:#fff;padding:24px;box-shadow:0 24px 60px #0000003d}.admin-modal{width:min(480px,100%)}.modal-card h2{margin:0;text-align:center}.avatar-picker{display:grid;gap:10px}.avatar-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.avatar-picker-head span{color:#3b352f;font-size:14px;font-weight:800}.avatar-picker-head small{color:#8d867f;font-size:12px}.avatar-option-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.avatar-option{display:grid;gap:6px;justify-items:center;min-width:0;min-height:78px;border:1px solid #eadfd7;border-radius:8px;background:#fff;color:#4d443d;padding:8px 4px;font-size:11px;font-weight:700}.avatar-option.active{border-color:#ff7849;background:#fff6f1;box-shadow:0 0 0 2px #ff784929}.avatar-option-visual{width:38px;height:38px;border-radius:50%;font-size:20px}.avatar-option>span:last-child{max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.modal-close{position:absolute;top:12px;right:12px;border:0;background:transparent;font-size:24px}.candidate-row{display:grid;grid-template-columns:1fr auto;gap:6px;border:1px solid #eee5df;border-radius:8px;background:#fff;padding:12px;text-align:left}.candidate-row span{color:#8d867f}.candidate-row b{grid-row:span 2;align-self:center}.admin-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh;background:#f3f6fa}.admin-shell.member-detail-shell{display:block;background:#f4f6f8}.admin-sidebar{display:grid;align-content:start;gap:8px;border-right:1px solid #dfe5ee;background:#f8fafc;padding:34px 24px}.sidebar-title{color:#667084;font-size:13px;margin-bottom:10px}.admin-sidebar button{border:0;border-radius:8px;background:transparent;color:#293244;min-height:42px;padding:0 14px;text-align:left;font-weight:700}.admin-sidebar button.active{background:#fff3e6;color:#b45e0a}.admin-main{min-width:0}.member-detail-shell .admin-main{min-height:100vh}.admin-topbar{height:60px;border-bottom:1px solid #dfe5ee;background:#fff;padding:0 28px}.admin-topbar div{display:flex;align-items:center;gap:10px}.admin-topbar small{color:#6b7280}.admin-content{display:grid;gap:18px;padding:28px}.member-detail-content{min-height:100vh;background:#f4f6f8;padding:0 24px 46px}.admin-content h1{font-size:28px}.admin-content p{margin:0;color:#667084}.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.admin-metrics .panel-card strong{display:block;margin-top:10px;color:#173a7a;font-size:24px}.admin-panel{position:relative;z-index:1;overflow:visible;padding:18px}.admin-panel>table{display:block;max-width:100%;overflow-x:auto}.admin-filter{position:relative;z-index:2;display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));align-items:end;gap:12px;border:1px solid #dfe5ee;border-radius:8px;background:#fff;padding:16px}.table-actions{display:flex;gap:8px}.table-actions button,.record-line button,td button{border:0;border-radius:8px;background:#eef2f8;color:#173a7a;min-height:30px;padding:0 10px;font-weight:700}.admin-detail{display:grid;gap:16px}.member-detail-page{display:grid;gap:20px;max-width:1282px;margin:0 auto}.member-detail-header{display:flex;align-items:center;gap:18px;min-height:68px;margin:0 -24px;border-bottom:1px solid #dde3ea;background:#fff;padding:10px 34px}.detail-back-button{display:grid;width:22px;height:22px;min-height:22px;place-items:center;border:0;background:transparent;color:#485466;padding:0;font-size:22px;line-height:1}.member-detail-header h1{margin:0;color:#242c38;font-size:24px;line-height:1.2}.member-detail-header p{margin:5px 0 0;color:#647386;font-size:12px}.member-profile-card,.member-record-card{border:1px solid #dce3eb;border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a08}.member-profile-card{display:grid;gap:18px;margin-top:0;padding:18px 20px}.member-profile-card-head,.member-record-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.member-profile-card h2,.member-record-head h2{margin:0;color:#252d39;font-size:21px}.status-badge,.record-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:20px;border-radius:999px;background:#14347c;color:#fff;padding:2px 10px;font-size:12px;font-weight:800}.status-badge.inactive{background:#7b8794}.record-count-pill{border:1px solid #dbe2eb;background:#fff;color:#263243;font-weight:700}.member-profile-body{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;min-height:116px;align-items:start}.member-detail-avatar{display:grid;width:56px;height:56px;place-items:center;overflow:hidden;border-radius:50%;background:linear-gradient(135deg,#e7eff8,#f7d8cb);color:#173a7a;font-size:20px;font-weight:900}.member-detail-avatar img{width:100%;height:100%;object-fit:cover}.member-detail-fields{display:grid;gap:12px;max-width:520px}.member-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.member-name-line strong{color:#2a3341;font-size:15px}.member-name-line span{color:#4a6388;font-size:13px}.member-detail-fields dl{display:grid;gap:12px;margin:0}.member-detail-fields dl div{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px}.member-detail-fields dt,.member-detail-fields dd{margin:0;color:#2e3745;font-size:13px}.member-detail-fields dt{color:#667386}.member-balance-section{display:grid;gap:14px;border-top:1px solid #dfe5ec;padding-top:18px}.member-balance-section h3{margin:0;color:#202938;font-size:16px}.member-balance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.member-balance-card{display:grid;min-height:74px;place-items:center;border:1px solid #e4e9ef;border-radius:8px;background:#f7f8fa;padding:12px;text-align:center}.member-balance-card span{color:#667386;font-size:12px}.member-balance-card strong{color:#303846;font-size:21px}.member-balance-card.highlight strong{color:#14347c}.member-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.member-record-card{display:grid;align-content:start;overflow:visible}.member-record-head{min-height:54px;border-bottom:1px solid #e2e7ee;padding:0 14px 0 18px}.member-record-head h2{display:inline-flex;align-items:center;gap:8px;font-size:21px}.member-record-head h2 span{color:#3b4656;font-size:18px}.member-record-table{display:table;width:100%;table-layout:fixed}.member-record-table th,.member-record-table td{height:58px;border-bottom:1px solid #edf0f4;padding:12px 14px;color:#4c5a6d;font-size:13px;white-space:normal}.member-record-table th{height:38px;background:#fff;color:#667386;font-size:12px}.member-record-table td strong{color:#283243;font-size:13px}.channel-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:22px;border-radius:999px;background:#eef1f5;color:#263243;padding:2px 8px;font-size:12px;font-weight:800}.channel-pill.method-wechat,.channel-pill.method-card{background:#14347c;color:#fff}.channel-pill.method-alipay{background:#eef1f5}.member-record-pager{padding:12px 14px 14px}.admin-profile-grid{display:grid;grid-template-columns:1.2fr repeat(4,minmax(0,1fr));gap:12px}.admin-profile-grid div{display:grid;gap:6px;border-radius:8px;background:#f7f8fb;padding:14px}.admin-profile-grid span{color:#667084}.admin-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.record-line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;border-top:1px solid #e7ebf0;padding:12px 0}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{grid-template-columns:repeat(4,minmax(0,1fr));padding:10px;overflow:auto}.sidebar-title{display:none}.admin-metrics,.admin-filter,.admin-profile-grid,.admin-record-grid,.member-balance-grid,.member-record-grid{grid-template-columns:1fr}.admin-content{padding:18px}.member-detail-content{padding:0 14px 32px}.member-detail-header{margin:0 -14px;padding:10px 18px}.member-profile-body{grid-template-columns:1fr}.member-detail-fields dl div{grid-template-columns:66px minmax(0,1fr)}.pagination-controls{justify-content:flex-start}.pager-boundary,.page-size-control{display:none}}body{background:var(--surface-muted);color:var(--text)}button,input,select{letter-spacing:0}button{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}button:not(:disabled):active{transform:translateY(1px)}input,select{min-height:44px;border-color:var(--line);background:#fbfcfe;color:var(--text);box-shadow:inset 0 1px #ffffffb8}input::placeholder{color:#a2acba}input:focus,select:focus{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px #f26d3d24}.app-select{position:relative;width:100%;min-width:0}.app-select.open{z-index:40}.app-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe;color:var(--text);padding:0 12px;text-align:left;box-shadow:inset 0 1px #ffffffb8}.app-select-trigger span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select-trigger:focus{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px #f26d3d24;outline:none}.app-select-trigger:not(:disabled):active{transform:none}.app-select-arrow{flex:0 0 auto;color:var(--subtle);font-size:12px;line-height:1}.app-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;width:100%;max-height:232px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:6px;box-shadow:0 18px 38px #1f29372e}.app-select-option{display:flex;align-items:center;width:100%;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--text);padding:0 10px;text-align:left;font-weight:700}.app-select-option.selected,.app-select-option.active,.app-select-option:not(:disabled):hover{background:var(--admin-soft);color:#2469f2}label span{color:#374151;font-size:13px}th,td{border-bottom-color:var(--line-soft)}th{background:#f8fafc;color:#607086}td{color:#273241}tr:hover td{background:#fbfcff}.toast{border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#111827eb;box-shadow:var(--shadow-md)}.login-page{padding:32px 20px}.mobile-login{background:linear-gradient(180deg,#ffffffc2,#f4f6f9e6),#f4f6f9}.admin-login{background:linear-gradient(180deg,#eef4ffb8,#f7f9fcf5),#f4f7fb}.login-card{width:min(384px,100%);gap:16px;border:1px solid rgba(221,229,239,.9);border-radius:8px;background:#fffffff0;padding:30px;box-shadow:var(--shadow-md)}.admin-card{width:min(392px,100%);border-color:#c4d1e2db;padding:32px}.app-logo{width:62px;height:62px;border-radius:8px;background:var(--brand);font-size:28px;box-shadow:0 14px 30px #f26d3d33}.admin-logo{width:54px;height:54px;background:var(--admin);box-shadow:0 14px 30px #173a7a2e}.login-card h1{color:var(--heading);font-size:26px;line-height:1.25}.login-card p,.muted{color:var(--muted)}.login-card>p{text-align:center}.primary-button,.ghost-button,.admin-primary,.link-button,.icon-button,.tiny-button{border-radius:8px}.primary-button{background:var(--brand);box-shadow:0 8px 18px #f26d3d2e}.primary-button:not(:disabled):hover{background:var(--brand-strong);box-shadow:0 10px 22px #e4572e38}.admin-primary{background:var(--admin);box-shadow:0 8px 18px #173a7a29}.admin-primary:not(:disabled):hover{background:#0f2f69;box-shadow:0 10px 22px #173a7a33}.ghost-button{border-color:var(--line);background:var(--surface);color:#283446}.ghost-button:not(:disabled):hover{border-color:#c7d2e0;background:#f8fafc}.link-button{color:var(--brand-strong)}.icon-button{color:#374151}.icon-button:not(:disabled):hover{border-color:var(--line);background:#f8fafc}.tiny-button{background:var(--brand-soft);color:var(--brand-strong)}.demo-box,.demo-line{border:1px solid var(--line-soft);background:#f8fafc;color:var(--muted)}.phone-shell{background:#dfe5ee}.phone-screen{width:min(414px,100vw);background:#f7f4f0;box-shadow:0 0 0 1px #1118270f,0 24px 70px #11182729}.mobile-content{gap:16px;padding:22px 16px 92px}.mobile-header{height:58px;border-bottom-color:#e8ddd5;background:#faf7f3f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-header h2{color:var(--heading);font-size:18px}.mobile-content h1{color:var(--heading);font-size:27px;line-height:1.2}.mobile-content h2{color:var(--heading);font-size:22px;line-height:1.25}.mobile-content h3{color:var(--heading);font-size:17px;line-height:1.3}.store-header{gap:13px;padding:8px 2px 6px}.store-header h2{color:var(--heading);font-size:23px;line-height:1.2}.store-header p,.store-header small{color:#81766e}.avatar{background:#fff2eb;color:var(--brand);box-shadow:inset 0 0 0 1px #f26d3d14}.panel-card,.metric-card,.tier-card,.history-card,.member-row,.recent-card,.cashier-panel,.action-card,.notice-card,.admin-panel{border-color:#e1d8cfeb;box-shadow:var(--shadow-sm)}.panel-card,.metric-card,.tier-card,.history-card,.recent-card,.cashier-panel,.notice-card{padding:16px}.metric-card{min-height:92px}.metric-card span,.panel-card span,.summary-grid small{color:#837a72}.metric-card strong{color:#20242c;font-size:25px;line-height:1.12}.data-row{align-items:center;flex-wrap:wrap;gap:8px 16px;border-top-color:#efe7df}.info-grid div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:4px 6px}.summary-grid>.panel-card,.admin-metrics>.panel-card,.metric-card{display:grid;align-content:start;gap:8px}.summary-grid>.panel-card strong,.admin-metrics>.panel-card strong,.metric-card strong{min-width:0;margin-top:0}.member-balance-card{gap:6px}.tip-list{background:#f8f1eb;color:#756b63}.pill,.amount-pill{background:var(--admin-soft);color:var(--admin);white-space:nowrap}.balance-box{border-color:#ffd9ca;background:#fff8f3}.balance-box strong{color:var(--brand-strong)}.segmented{gap:8px;border-radius:8px;background:#ede6df;padding:4px}.segmented button{border-radius:8px;background:transparent;color:#695f57}.segmented button.active{background:var(--surface);color:var(--brand-strong);box-shadow:0 5px 14px #5a46381f}.record-card,.empty-state{border:1px solid rgba(225,216,207,.85);box-shadow:var(--shadow-sm)}.record-card b{color:var(--brand-strong)}.pagination-controls{gap:10px 14px;position:relative;z-index:5;overflow:visible;border-top:1px solid var(--line-soft);color:var(--muted)}.page-size-control .app-select{width:96px;flex:0 0 96px}.page-size-control .app-select-trigger{min-height:34px;padding:0 10px;background:var(--surface)}.page-size-control .app-select-menu{top:auto;bottom:calc(100% + 6px);z-index:90}.pager-buttons button{border-color:var(--line);color:var(--admin)}.pager-buttons button:not(:disabled):hover{border-color:#b8c6dc;background:var(--admin-soft)}.action-card{border-color:#e1d8cfeb;background:var(--surface)}.action-card:not(:disabled):hover{border-color:#f1b69d;box-shadow:0 12px 28px #644a3a1a}.action-icon{border-radius:8px;background:var(--brand-soft);color:var(--brand-strong)}.notice-card{background:#fffaf5;color:#716861}.search-input{background:var(--surface)}.member-row{padding:14px}.member-row:not(:disabled):hover{border-color:#f1b69d;background:#fffdfb}.member-row b{color:#20242c}.cashier-view{grid-template-rows:auto auto auto auto minmax(0,1fr);gap:8px;height:100vh;height:100dvh;min-height:0;background:#faf9f7;overflow:hidden;padding:14px 16px 74px}.cashier-tabs{gap:16px;border-radius:0;background:transparent;padding:0}.cashier-tabs button{display:flex;min-height:48px;align-items:center;justify-content:center;gap:9px;border:1px solid #e3ded8;border-radius:8px;background:#fff;color:#2f2d2b;font-size:18px;font-weight:800;box-shadow:none}.cashier-tabs button.active{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:none}.cashier-tabs button:focus{outline:none}.cashier-tabs button:focus-visible{box-shadow:none}.recent-card{display:grid;gap:8px;border-color:#ffd0bf;border-radius:8px;background:#fff7f1;padding:10px 12px;box-shadow:none}.recent-card.blue{border-color:#c7d8ff;background:#f4f7ff}.cashier-tabs button.active:nth-child(2){border-color:#3b73e8;background:#3b73e8;color:#fff}.cashier-tab-icon{width:21px;height:21px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.7}.cashier-tabs button:nth-child(2) .cashier-tab-icon{fill:currentColor;stroke:currentColor;stroke-width:0}.cashier-view .recent-title{margin-top:2px;color:#837d75;font-size:16px;font-weight:800}.recent-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;color:#837d75;font-size:12px;line-height:1.35}.recent-card-head>span{min-width:0;overflow-wrap:anywhere}.recent-status{justify-self:end;flex:0 0 auto;border-radius:8px;background:#fff0e7;color:var(--brand-strong);padding:4px 9px;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap}.recent-card.blue .recent-status{background:#fff;color:#2469f2}.recent-identity{display:flex;flex-wrap:wrap;gap:5px 16px;align-items:baseline;min-width:0;color:#303030;font-size:14px;line-height:1.35}.recent-identity strong{min-width:0;color:#303030;font-weight:800;overflow-wrap:anywhere}.recent-money-row{display:flex;flex-wrap:wrap;gap:5px 12px;align-items:baseline;border-top:1px solid #e9ddd4;color:#7d776f;padding-top:7px;font-size:11px;line-height:1.35}.recent-money-row>span{min-width:0;overflow-wrap:anywhere}.recent-card.blue .recent-money-row{border-top-color:#dfe6f4}.recent-money-row strong{color:#303030;font-weight:800}.recent-money-row .recent-amount-value{color:var(--brand-strong)}.recent-card.blue .recent-amount-value{color:#2469f2}.recent-empty{border-color:#e5dfd8;background:#fff}.cashier-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-height:0;border-color:#ffc5b1;padding:12px}.cashier-panel.blue{border-color:#c6d4ec}.cashier-form-grid{align-items:start;grid-template-columns:minmax(0,1fr) 116px;gap:10px 12px}.cashier-control{display:grid;min-width:0;gap:7px}.cashier-field-label{color:#8c96a6;font-size:14px;font-weight:700;line-height:1.25}.cashier-field{display:flex;min-width:0;min-height:48px;align-items:center;border:1px solid #e2ded9;border-radius:8px;background:#fff;overflow:hidden}.cashier-field.active,.cashier-field:focus-within{border-color:#ff7849;box-shadow:0 0 0 2px #ff784924}.cashier-field span{flex:0 0 42px;color:#a2aab6;text-align:center;font-size:22px;font-weight:800}.cashier-field input{flex:1 1 0;min-width:0;min-height:46px;border:0;border-radius:0;padding:0 10px 0 0;box-shadow:none;color:#3b4350;font-size:18px;font-weight:700}.cashier-field input:focus{border:0;box-shadow:none}.cashier-phone-field span{flex:0 0 34px;font-size:18px}.cashier-phone-field input{font-size:15px}.cashier-phone-field input::placeholder{font-size:14px;letter-spacing:0}.cashier-side-action,.cashier-balance-card{min-height:48px;border-radius:8px;font-size:15px}.cashier-member-button{align-self:end;display:flex;align-items:center;justify-content:center;min-height:48px;min-width:0;border-radius:8px;color:#747d8d;font-size:13px;line-height:1.15;overflow-wrap:anywhere;padding:4px 8px;text-align:center;white-space:normal}.cashier-side-action{align-self:end;border:1px solid #f8dfe4;background:#fff4f7;color:#bd7a88;font-weight:800;line-height:1.15}.cashier-balance-card{display:grid;align-self:end;place-items:center;border:1px solid #dce9ff;background:#eff6ff;color:#8a93a3;line-height:1.25}.cashier-balance-card span{font-size:13px;font-weight:800}.cashier-balance-card strong{color:#2f65cb;font-size:15px;font-weight:900}.keypad{grid-template-rows:repeat(4,minmax(30px,1fr));min-height:0;gap:6px;border-top-color:#efe7df;padding-top:8px}.keypad button{height:100%;min-height:0;background:#fff;font-size:22px;box-shadow:inset 0 0 0 1px #ede5dd}.keypad button:not(:disabled):hover{background:#fff8f4}.cashier-panel .primary-button.full{min-height:44px;border-radius:8px;font-size:20px}.bottom-tabs{border-top-color:#e1d8cfe6;background:#fffffff0;box-shadow:0 -12px 30px #221c1714;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:7px 8px 9px}.bottom-tabs button{border-radius:8px;color:#7a7169}.bottom-tabs button.active{background:var(--brand-soft);color:var(--brand-strong)}.modal-mask{background:#0f172a75;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{border:1px solid rgba(221,229,239,.82);box-shadow:var(--shadow-md)}.modal-card h2{color:var(--heading)}.candidate-row{border-color:var(--line-soft)}.candidate-row:not(:disabled):hover{border-color:#c7d2e0;background:#f8fafc}.admin-shell{grid-template-columns:232px minmax(0,1fr);background:#f4f7fb}.admin-shell.member-detail-shell,.member-detail-content{background:#f4f7fb}.admin-sidebar{gap:6px;border-right-color:var(--line);background:#fff;padding:28px 22px;box-shadow:8px 0 28px #173a7a0a}.sidebar-title{color:var(--subtle);font-size:12px;font-weight:700}.admin-sidebar button{min-height:44px;color:#344054}.admin-sidebar button:not(.active):hover{background:#f6f8fb}.admin-sidebar button.active{background:#fff3e6;color:#99510b;box-shadow:inset 3px 0 #e58a24}.admin-topbar{height:64px;border-bottom-color:var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.admin-topbar strong{color:var(--heading)}.admin-logout-button{width:auto;min-width:54px;height:36px;min-height:36px;padding:0 12px;font-size:14px;white-space:nowrap}.admin-content{gap:20px;padding:30px}.section-title{align-items:flex-start}.admin-content h1{color:var(--heading);font-size:29px;line-height:1.2}.admin-content p{color:var(--muted)}.admin-metrics{gap:16px}.admin-metrics .panel-card{min-height:94px;border-color:var(--line);padding:18px}.admin-metrics .panel-card strong{color:var(--admin)}.admin-panel{overflow-x:auto;border-color:var(--line);padding:18px}.admin-panel h2{color:var(--heading)}.admin-panel>table{display:table;width:100%;min-width:720px;overflow:visible}.admin-filter{grid-template-columns:repeat(auto-fit,minmax(180px,240px));justify-content:start;border-color:var(--line);box-shadow:var(--shadow-sm)}.admin-filter button{width:min(180px,100%);justify-self:start;min-height:44px}.table-actions{flex-wrap:wrap}.table-actions button,.record-line button,td button{background:var(--admin-soft);color:var(--admin)}.table-actions button:not(:disabled):hover,.record-line button:not(:disabled):hover,td button:not(:disabled):hover{background:#dfeaff}.member-management-view{gap:18px;background:#f6f7fb}.member-management-head{display:grid;gap:8px}.member-management-head h1{font-size:32px;line-height:1.12;font-weight:900}.member-management-head p{color:#6f7786;font-size:15px;font-weight:600}.admin-member-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;border:1px solid #dce3ee;border-radius:8px;background:#fff;padding:16px 18px;box-shadow:0 1px 2px #0f172a05}.member-filter-field,.member-filter-range{display:grid;flex:1 1 190px;gap:8px;min-width:0;max-width:250px}.member-filter-range{flex-basis:210px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;border:0;margin:0;max-width:260px;padding:0}.member-filter-field>span,.member-filter-range legend{grid-column:1 / -1;color:#6d7686;font-size:15px;font-weight:800;line-height:1.2}.member-filter-range>span{color:#6d7686;font-size:18px;font-weight:800}.admin-member-filter input,.admin-member-filter .app-select-trigger{min-height:46px;border-color:#dde4ee;background:#fbfcff;color:#273142;font-size:15px;font-weight:700}.admin-member-filter input::placeholder{color:#98a2b3}.member-filter-actions{display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:10px;margin-left:auto;min-width:0}.member-filter-actions button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:154px;min-height:46px;font-size:15px;font-weight:800;box-shadow:none}.member-reset-button span,.member-export-button span{font-size:20px;line-height:1}.admin-member-table-panel{width:100%;overflow-x:auto;background:transparent}.admin-member-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed}.admin-member-table thead th{height:46px;border-bottom:1px solid #dfe4ec;background:#f8f8fb;color:#6c7585;padding:0 26px;font-size:15px;font-weight:800}.admin-member-table tbody td{height:54px;border-bottom:1px solid #dfe4ec;color:#303947;padding:0 26px;font-size:15px;font-weight:650;vertical-align:middle}.member-avatar-col{width:10%}.member-mobile-col{width:16%}.member-name-col{width:12%}.member-store-col{width:21%}.member-joined-col,.member-balance-col{width:16%}.member-action-col{width:9%}.admin-member-table th:first-child,.admin-member-table td:first-child,.admin-member-table th:last-child,.admin-member-table td:last-child{text-align:center}.member-mobile-cell{color:#2d3540;font-weight:800}.member-name-cell{font-weight:750}.member-date-cell{color:#738095;font-weight:700}.admin-member-avatar{display:inline-grid;width:38px;height:38px;place-items:center;overflow:hidden;border-radius:50%;background:#eef2f7;color:#173a7a;font-weight:900}.admin-member-avatar img{width:100%;height:100%;object-fit:cover}.admin-member-avatar.fallback{border:1px solid #d8e0eb}.member-balance-pill{display:inline-flex;align-items:center;justify-content:center;min-width:112px;min-height:30px;border-radius:999px;background:#123a78;color:#fff;padding:0 14px;font-size:15px;font-weight:900;white-space:nowrap}.member-row-action{width:36px;min-height:30px;border:0;background:transparent!important;color:#6f7786!important;padding:0;font-size:31px;font-weight:400;line-height:1}.member-row-action:not(:disabled):hover{background:transparent!important;color:#173a7a!important}.admin-member-pagination{padding:10px 0 0}.member-detail-page{gap:18px}.member-detail-header{border-bottom-color:var(--line);box-shadow:0 8px 22px #173a7a0a}.member-profile-card,.member-record-card{border-color:var(--line);box-shadow:var(--shadow-sm)}.status-badge,.record-count-pill{background:var(--admin)}.record-count-pill{background:var(--surface)}.member-balance-card{border-color:var(--line-soft);background:#f8fafc}.member-record-head,.member-record-table th,.member-record-table td{border-bottom-color:var(--line-soft)}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{grid-template-columns:repeat(4,minmax(112px,1fr));gap:8px;border-right:0;border-bottom:1px solid var(--line);padding:10px;overflow-x:auto;box-shadow:none}.admin-sidebar button{text-align:center}.admin-content{padding:18px}.admin-member-filter{display:grid;grid-template-columns:1fr}.member-filter-field,.member-filter-range,.member-filter-actions{width:100%;min-width:0}.member-filter-actions{justify-content:stretch}.member-filter-actions button{flex:1 1 0;min-width:0}.admin-metrics,.admin-filter,.admin-profile-grid,.admin-record-grid,.member-balance-grid,.member-record-grid{grid-template-columns:1fr}.section-title{display:grid}}@media(max-width:480px){.login-page{padding:18px}.login-card,.admin-card{padding:24px 20px}.phone-screen{box-shadow:none}.mobile-content{padding-inline:14px}.summary-grid.two{gap:10px}.metric-card{min-height:86px;padding:14px}.metric-card strong{font-size:22px}.cashier-tabs{gap:10px}.cashier-tabs button{min-height:46px;gap:8px;font-size:17px}.cashier-tab-icon{width:19px;height:19px}.recent-card{gap:9px;padding:12px 14px}.recent-card-head{font-size:12px}.recent-status{padding:4px 9px;font-size:12px}.recent-identity{gap:5px 18px;font-size:14px}.recent-money-row{gap:6px 10px;padding-top:8px;font-size:11px}.cashier-form-grid{grid-template-columns:minmax(0,1fr) 104px}.modal-card{padding:22px 18px}}@media(max-width:360px){.tier-card:not(.editing){grid-template-columns:1fr}}
