@charset "UTF-8";:root{color-scheme:light;--cream-50: #fdfbf7;--cream-100: #f7f4eb;--cream-200: #efece1;--cream-300: #e7e3d6;--cool-100: #eef2f5;--cool-200: #e3e8ec;--cool-300: #d2dae2;--cool-400: #a5b1c2;--cool-500: #7c8a9c;--ink-900: #1e272e;--ink-800: #2c3a47;--ink-700: #3d4d5c;--ink-600: #566574;--ink-500: #6b7a89;--ink-400: #8a98a6;--accent-600: #3f7a78;--accent-500: #4d908d;--accent-400: #6ba8a5;--accent-100: #e3efee;--accent-50: #f1f7f6;--danger-600: #c0564f;--danger-500: #d06a64;--danger-100: #f7e6e4;--warn-500: #c8924a;--warn-100: #f7eede;--success-600: #4d8a6b;--success-500: #5fa07f;--success-100: #e4f0ea;--info-600: #4a7396;--info-500: #5d8bb0;--info-100: #e6eef5;--surface: var(--cream-50);--surface-raised: #ffffff;--surface-soft: var(--cream-100);--surface-muted: var(--cool-100);--glass-bg: rgba(255, 255, 255, .66);--glass-border: rgba(255, 255, 255, .7);--hairline: rgba(44, 58, 71, .08);--hairline-strong: rgba(44, 58, 71, .14);--hairline-cool: rgba(165, 177, 194, .28);--shadow-xs: 0 1px 2px rgba(44, 58, 71, .04);--shadow-sm: 0 2px 8px rgba(44, 58, 71, .04), 0 1px 2px rgba(44, 58, 71, .03);--shadow-md: 0 6px 24px rgba(44, 58, 71, .06), 0 2px 6px rgba(44, 58, 71, .04);--shadow-lg: 0 12px 40px rgba(44, 58, 71, .08), 0 4px 12px rgba(44, 58, 71, .05);--shadow-xl: 0 24px 60px rgba(44, 58, 71, .1), 0 8px 24px rgba(44, 58, 71, .06);--shadow-glow: 0 0 0 4px rgba(165, 177, 194, .18);--shadow-accent: 0 8px 24px rgba(77, 144, 141, .18);--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 22px;--r-2xl: 28px;--r-pill: 999px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .16s;--dur: .28s;--dur-slow: .52s;--font-sans: "Plus Jakarta Sans", "Inter", "Noto Sans Thai", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-sans);background:var(--surface);color:var(--ink-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;width:100%;min-width:0;overflow-x:clip}body{font-family:var(--font-sans);background:radial-gradient(1100px 700px at 12% -8%,rgba(165,177,194,.14),transparent 60%),radial-gradient(900px 600px at 110% 10%,rgba(77,144,141,.08),transparent 55%),linear-gradient(180deg,var(--cream-50) 0%,var(--cream-100) 100%);background-attachment:fixed;color:var(--ink-800);line-height:1.55;letter-spacing:-.006em}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid transparent;border-radius:var(--r-md);min-height:44px;padding:0 16px;cursor:pointer;font-weight:600;letter-spacing:-.01em;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-400);outline-offset:2px}input,select,textarea{width:100%;border:1px solid var(--hairline-strong);border-radius:var(--r-md);min-height:44px;padding:10px 13px;background:var(--surface-raised);color:var(--ink-800);transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}input::placeholder,textarea::placeholder{color:var(--ink-400)}input:hover,select:hover,textarea:hover{border-color:var(--cool-400)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-400);box-shadow:0 0 0 4px #4d908d1f;background:var(--surface-raised)}textarea{min-height:108px;resize:vertical;line-height:1.6}label{display:grid;gap:7px;color:var(--ink-700);font-size:.86rem;font-weight:600;letter-spacing:-.005em}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{letter-spacing:-.022em;color:var(--ink-900);font-weight:700}::selection{background:#4d908d38;color:var(--ink-900)}.eyebrow{color:var(--accent-600);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin:0 0 6px}.helper{color:var(--ink-500);font-size:.82rem;font-weight:500}.primary{background:linear-gradient(135deg,var(--accent-500),var(--accent-600));color:#fff;box-shadow:var(--shadow-accent)}.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 30px #4d908d42}.secondary{background:linear-gradient(135deg,var(--ink-800),var(--ink-700));color:#fff;box-shadow:0 6px 18px #2c3a4729}.secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 30px #2c3a473d}.danger{background:linear-gradient(135deg,var(--danger-500),var(--danger-600));color:#fff;box-shadow:0 6px 18px #c0564f38}.danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 30px #c0564f4d}.ghost{border:1px solid var(--hairline-strong);background:var(--surface-raised);color:var(--ink-700);box-shadow:var(--shadow-xs)}.ghost:hover:not(:disabled){border-color:var(--cool-400);background:var(--cool-100);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0) scale(.97)}.error{color:var(--danger-600);font-weight:600;font-size:.85rem}.empty{color:var(--ink-500);padding:16px 0;font-size:.9rem;text-align:center}.empty-state{border-radius:var(--r-lg);padding:28px 20px;background:var(--surface-soft);color:var(--ink-500);text-align:center;font-size:.9rem;border:1px dashed var(--hairline-cool)}.status{display:inline-flex;align-items:center;border-radius:var(--r-pill);padding:4px 10px;background:var(--cool-100);color:var(--ink-600);font-size:.74rem;font-weight:700;letter-spacing:.01em}.status.approved{background:var(--success-100);color:var(--success-600)}.status-pill{border-radius:var(--r-pill);padding:5px 11px;background:var(--info-100);color:var(--info-600);font-size:.74rem;font-weight:700}.status-pill.ok{background:var(--success-100);color:var(--success-600)}.toast{position:fixed;left:50%;bottom:110px;z-index:60;width:min(440px,100% - 32px);border-radius:var(--r-lg);padding:13px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-lg);transform:translate(-50%);animation:toast-in .32s var(--ease-spring) both;font-size:.88rem;font-weight:600}.error-toast{color:var(--danger-600);background:#f7e6e4d9}.wide{width:100%}.actions{display:flex;gap:10px;flex-wrap:wrap}.list{display:grid;gap:8px}.form-grid,.stack-form{display:grid;gap:14px}.checkbox-line{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink-700);font-size:.88rem}.checkbox-line input{width:20px;height:20px;min-height:0;accent-color:var(--accent-500);cursor:pointer}.panel,.metric,.auth-card{position:relative;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.panel{padding:22px;margin-bottom:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-head h3{font-size:1.02rem;font-weight:700}.panel-head span{color:var(--ink-500);font-size:.84rem}.panel-head a{color:var(--accent-600);font-weight:700;font-size:.84rem;text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.panel-head a:hover{color:var(--accent-500)}.page-head,.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h2,.topbar h1{font-size:clamp(1.45rem,2.4vw,2rem);font-weight:700;letter-spacing:-.028em;margin-top:2px}.page-head span{display:block;margin-top:6px;color:var(--ink-500);font-size:.86rem}.summary-grid,.admin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px}.metric{display:grid;gap:6px;padding:18px;background:var(--surface-raised)}.metric span{color:var(--ink-500);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.metric small{color:var(--ink-400);font-size:.8rem}.metric strong{font-size:1.7rem;font-weight:700;letter-spacing:-.025em;color:var(--ink-900)}.content-grid,.two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.receipt-form,.filters,.scan-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end}.table{overflow-x:auto;margin:0 -4px;padding:0 4px}.row,.tr{display:grid;gap:12px;align-items:center;width:100%;min-height:48px;padding:12px 0;border-bottom:1px solid var(--hairline);text-align:left;background:transparent;color:inherit}.row{grid-template-columns:minmax(0,1fr) auto}.tr{grid-template-columns:repeat(4,minmax(0,1fr))}.tr.min-width,.admin-tr{min-width:620px}.tr.head{color:var(--ink-500);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1.5px solid var(--hairline-strong);min-height:40px}.row strong,.tr span{overflow-wrap:anywhere;font-weight:600;color:var(--ink-800)}.row small,.news-item p{display:block;color:var(--ink-500);margin-top:3px;font-size:.82rem}.clickable{cursor:pointer;border:0;border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.clickable:hover{background:var(--cream-100)}.qr-panel{display:flex;align-items:center;justify-content:space-between;gap:18px}.qr-panel img{width:180px;height:180px;border-radius:var(--r-lg);padding:8px;background:#fff;box-shadow:var(--shadow-sm)}.image-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.receipt-preview{display:grid;gap:12px;margin-bottom:16px}.receipt-preview img{display:block;width:100%;max-height:380px;object-fit:contain;border-radius:var(--r-lg);background:var(--cream-100);border:1px solid var(--hairline)}.receipt-preview a{color:var(--accent-600);font-weight:600;text-decoration:none}.bar-chart{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:80px minmax(120px,1fr) 90px;gap:12px;align-items:center}.bar-row span,.bar-row strong{font-size:.84rem;font-weight:600}.bar-row div{height:10px;border-radius:var(--r-pill);background:var(--cool-200);overflow:hidden}.bar-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-500),var(--accent-400));transition:width var(--dur-slow) var(--ease-out)}.liff-shell{position:relative;min-height:100vh;background:radial-gradient(800px 500px at 8% -6%,rgba(165,177,194,.16),transparent 60%),radial-gradient(700px 460px at 108% 4%,rgba(77,144,141,.1),transparent 58%),linear-gradient(180deg,var(--cream-50) 0%,var(--cream-100) 70%,var(--cream-50) 100%);color:var(--ink-800);overflow-x:hidden}.liff-login-screen,.liff-app,.fresh-page{width:min(520px,100%);margin:0 auto;padding:20px 18px 120px}.liff-login-screen,.fresh-login{min-height:100vh;display:grid;align-content:center;gap:18px}.liff-page{width:min(1140px,100% - 28px);margin:0 auto;padding:22px 0 48px}.login-hero,.point-card,.glass-card,.upload-card,.reward-card,.campaign-card,.news-card,.mini-card{position:relative;overflow:hidden;border:1px solid var(--glass-border);border-radius:var(--r-2xl);background:var(--glass-bg);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1)}.login-hero{display:grid;gap:18px;padding:34px 26px;animation:rise var(--dur-slow) var(--ease-out) both}.login-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(420px 220px at 88% -10%,rgba(77,144,141,.1),transparent 60%),radial-gradient(380px 240px at -10% 110%,rgba(165,177,194,.12),transparent 60%);pointer-events:none}.brand-pill,.date-chip,.tiny-label{width:max-content;border-radius:var(--r-pill);padding:6px 12px;background:var(--accent-100);color:var(--accent-600);font-size:.74rem;font-weight:700;letter-spacing:.04em}.login-hero h1{position:relative;max-width:12ch;color:var(--ink-900);font-size:clamp(2.1rem,11vw,3.4rem);font-weight:700;line-height:1.02;letter-spacing:-.035em}.login-hero p{position:relative;color:var(--ink-600);line-height:1.65;font-size:.96rem}.login-actions{display:grid;gap:10px;animation:rise var(--dur-slow) .1s var(--ease-out) both}.line-button,.soft-button,.liff-shell .primary,.liff-shell .secondary{min-height:52px;border-radius:var(--r-lg);font-weight:700}.line-button,.liff-shell .primary{background:linear-gradient(135deg,var(--accent-500),var(--accent-600));color:#fff;box-shadow:var(--shadow-accent)}.line-button:hover:not(:disabled),.liff-shell .primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 36px #4d908d4d}.soft-button{border:1px solid var(--hairline-strong);background:var(--surface-raised);color:var(--ink-700);box-shadow:var(--shadow-xs)}.soft-button:hover:not(:disabled){border-color:var(--cool-400);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.liff-shell .secondary{background:linear-gradient(135deg,var(--ink-800),var(--ink-700));color:#fff;box-shadow:0 8px 22px #2c3a472e}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 18px;animation:slide-down var(--dur) var(--ease-out) both}.mobile-header h1{margin-top:8px;color:var(--ink-900);font-size:clamp(1.7rem,8vw,2.4rem);font-weight:700;line-height:1.08;letter-spacing:-.03em}.icon-button{min-width:48px;min-height:44px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-raised);color:var(--ink-600);font-weight:700;box-shadow:var(--shadow-xs)}.icon-button:hover{border-color:var(--cool-400);background:var(--cool-100)}.point-card{display:grid;gap:12px;min-height:230px;padding:26px;background:radial-gradient(420px 240px at 14% 6%,rgba(107,168,165,.4),transparent 56%),radial-gradient(360px 220px at 96% 14%,rgba(165,177,194,.26),transparent 54%),linear-gradient(145deg,#243341,#2c4a4a 42%,#3a6462 72%,#4d908d);color:#fff;box-shadow:var(--shadow-lg),inset 0 1px #ffffff29,inset 0 -40px 80px #1e272e47;animation:rise var(--dur-slow) 80ms var(--ease-out) both,card-drift 6s ease-in-out infinite}.point-card:before,.point-card:after{content:"";position:absolute;inset:0;pointer-events:none}.point-card:before{background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 34%),repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 1px,transparent 1px 12px)}.point-card:after{background:radial-gradient(circle at 30% 34%,transparent 0 22px,rgba(255,255,255,.05) 23px,transparent 24px),radial-gradient(circle at 72% 64%,transparent 0 18px,rgba(255,255,255,.04) 19px,transparent 20px);opacity:.7}.card-shine{position:absolute;inset:-40% -70%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.3) 50%,transparent 58%);transform:translate(-40%);animation:shine-sweep 4.2s ease-in-out infinite}.point-topline,.tier-line{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;color:#ffffffc7;font-weight:600;font-size:.84rem}.point-card strong{position:relative;z-index:1;font-size:clamp(4.2rem,22vw,6.8rem);font-weight:700;line-height:.92;letter-spacing:-.04em}.tier-line{align-items:center}.tier-line span:first-child{border-radius:var(--r-pill);padding:7px 13px;background:#ffffff2e;color:#fff;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 20px}.quick-actions button{display:grid;place-items:center;gap:8px;min-height:92px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);color:var(--ink-700);font-size:.84rem;font-weight:600;box-shadow:var(--shadow-sm);animation:pop var(--dur) var(--ease-out) both}.quick-actions button:hover{border-color:var(--cool-400);transform:translateY(-3px);box-shadow:var(--shadow-md);color:var(--accent-600)}.app-icon{display:inline-block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:currentColor;overflow:visible}.app-icon path{vector-effect:non-scaling-stroke}.action-icon,.nav-icon{width:26px;height:26px}.detailed-icon{filter:drop-shadow(0 1px 0 rgba(255,255,255,.6))}.tab-stage{animation:rise var(--dur-slow) .14s var(--ease-out) both}.tab-stage.loading{animation:loading-breathe 1.1s ease-in-out infinite alternate}.tab-panel{display:grid;gap:14px;animation:tab-in var(--dur) var(--ease-out) both}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.section-title h2{font-size:1.3rem;font-weight:700;letter-spacing:-.025em}.section-title span{color:var(--ink-500);font-size:.86rem}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-card{display:grid;gap:8px;padding:20px;background:var(--surface-raised);box-shadow:var(--shadow-sm)}.mini-card span{color:var(--ink-500);font-weight:600;font-size:.78rem}.mini-card strong{color:var(--ink-900);font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.reward-pass{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px}.reward-pass img{width:110px;height:110px;border-radius:var(--r-lg);background:#fff;padding:8px;box-shadow:var(--shadow-sm)}.feed-list,.timeline,.reward-grid,.campaign-strip{display:grid;gap:10px}.feed-item,.timeline-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:64px;border:1px solid var(--hairline);border-radius:var(--r-xl);padding:14px 16px;background:var(--surface-raised);color:var(--ink-800);text-align:left;box-shadow:var(--shadow-xs);animation:list-in var(--dur) var(--ease-out) both;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.feed-item small,.timeline-item small,.reward-card p,.campaign-card p,.news-card p{display:block;margin-top:4px;color:var(--ink-500);line-height:1.55;font-size:.84rem}.timeline-item{grid-template-columns:16px minmax(0,1fr) auto}.timeline-dot{width:11px;height:11px;border-radius:var(--r-pill);background:var(--accent-500);box-shadow:0 0 0 5px #4d908d24}.timeline-dot.minus{background:var(--danger-500);box-shadow:0 0 0 5px #c0564f24}.minus-text{color:var(--danger-600)}.upload-card{display:grid;gap:16px;padding:20px;background:var(--surface-raised);box-shadow:var(--shadow-sm)}.file-drop{position:relative;display:grid;place-items:center;min-height:190px;border:1.5px dashed var(--hairline-cool);border-radius:var(--r-xl);background:linear-gradient(135deg,rgba(77,144,141,.04),transparent),var(--cream-100);text-align:center;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.file-drop:hover{border-color:var(--accent-400);background:linear-gradient(135deg,rgba(77,144,141,.08),transparent),var(--cream-50)}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0;border:0}.file-drop strong{max-width:260px;overflow-wrap:anywhere;color:var(--ink-800)}.file-drop small{color:var(--ink-500)}.file-icon{width:60px;height:60px;color:var(--accent-500);animation:icon-bounce 2.2s ease-in-out infinite}.file-icon:before,.file-icon:after{display:none}.reward-card{display:grid;grid-template-columns:78px minmax(0,1fr);gap:14px;align-items:center;padding:16px;background:var(--surface-raised);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.reward-card button{grid-column:1/-1}.reward-card:hover,.campaign-card:hover,.news-card:hover,.feed-item:hover{transform:translateY(-4px);border-color:var(--cool-400);box-shadow:var(--shadow-lg)}.reward-art{display:grid;place-items:center;width:78px;height:78px;border-radius:var(--r-lg);background:var(--accent-50);color:var(--accent-600);font-weight:700;border:1px solid var(--hairline)}.campaign-card{display:grid;gap:14px;padding:20px;background:var(--surface-raised);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.news-card{display:grid;gap:10px;padding:22px;background:var(--surface-raised);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.news-ribbon{position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--accent-500),var(--cool-400))}.liff-bottom-nav{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));z-index:40;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:min(500px,100% - 24px);min-height:72px;padding:8px;border:1px solid var(--glass-border);border-radius:var(--r-2xl);background:var(--glass-bg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);transform:translate(-50%);animation:nav-dock var(--dur-slow) var(--ease-out) both}.liff-bottom-nav button{display:grid;place-items:center;gap:4px;min-height:56px;border-radius:var(--r-xl);background:transparent;color:var(--ink-500);font-size:.7rem;font-weight:600;transition:color var(--dur-fast) var(--ease-out),background var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.liff-bottom-nav button.active{background:var(--accent-100);color:var(--accent-600);transform:translateY(-5px);box-shadow:var(--shadow-sm)}.liff-bottom-nav button.active .nav-icon{animation:nav-icon-pop .36s var(--ease-spring) both}.fresh-loyalty{position:relative;min-height:100vh;background:radial-gradient(680px 440px at 8% -4%,rgba(165,177,194,.18),transparent 60%),radial-gradient(620px 420px at 106% 2%,rgba(77,144,141,.12),transparent 58%),linear-gradient(180deg,var(--cream-50) 0%,var(--cream-100) 60%,var(--cream-50) 100%);color:var(--ink-800);overflow-x:hidden}.fresh-loyalty *,.fresh-loyalty *:before,.fresh-loyalty *:after{box-sizing:border-box}.fresh-page{width:100%;max-width:520px;margin:0 auto;padding:20px clamp(12px,4vw,18px) calc(120px + env(safe-area-inset-bottom))}.fresh-app{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}.fresh-app>*,.fresh-panel,.fresh-content,.fresh-header,.fresh-header-brand,.fresh-header-brand>div,.fresh-section-title>*,.fresh-score-top>*,.fresh-score-bottom>*{min-width:0}.fresh-login{min-height:100vh;display:grid;align-content:center;gap:16px}.fresh-login-card{display:grid;gap:18px;padding:32px 24px;border:1px solid var(--glass-border);border-radius:var(--r-2xl);background:var(--glass-bg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(20px) saturate(1.15);backdrop-filter:blur(20px) saturate(1.15);animation:rise var(--dur-slow) var(--ease-out) both}.fresh-brand-mark,.fresh-kicker,.fresh-section-title span,.fresh-news-card>span,.fresh-campaign-card span{color:var(--accent-600);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.fresh-login-card h1{color:var(--ink-900);font-size:clamp(1.9rem,9vw,2.6rem);font-weight:700;line-height:1.05;letter-spacing:-.032em}.fresh-login-card p{color:var(--ink-600);line-height:1.65;font-size:.94rem}.fresh-brand-lockup,.fresh-header-brand{display:flex;align-items:center;gap:12px}.fresh-brand-lockup{animation:slide-down var(--dur) var(--ease-out) both}.fresh-logo-frame{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--hairline);box-shadow:var(--shadow-sm);overflow:hidden}.fresh-logo-frame.compact{width:44px;height:44px;border-radius:var(--r-md)}.fresh-logo-frame img{width:70%;height:70%;object-fit:contain}.fresh-brand-copy{display:flex;flex-direction:column;line-height:1.2}.fresh-brand-copy strong{font-size:1.05rem;font-weight:700;color:var(--ink-900);letter-spacing:-.02em}.fresh-brand-copy small{color:var(--ink-500);font-size:.78rem;font-weight:600}.fresh-login-actions{display:grid;gap:10px;animation:rise var(--dur-slow) .1s var(--ease-out) both}.fresh-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--glass-border);border-radius:var(--r-xl);background:var(--glass-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);animation:slide-down var(--dur) var(--ease-out) both}.fresh-header-brand{flex:1 1 auto;min-width:0}.fresh-header-actions{display:flex;flex:0 0 auto;gap:8px}.fresh-header h1{color:var(--ink-900);font-size:1.1rem;font-weight:700;letter-spacing:-.022em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fresh-logout{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;min-height:38px;border-radius:var(--r-md);color:var(--accent-600);font-weight:600;font-size:.8rem;background:var(--surface-raised);border:1px solid var(--hairline);box-shadow:var(--shadow-xs);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.fresh-logout:hover{border-color:var(--cool-400);background:var(--cool-100);transform:translateY(-1px)}.fresh-score-card{position:relative;overflow:hidden;display:grid;gap:12px;min-height:220px;padding:24px;border-radius:var(--r-2xl);background:radial-gradient(400px 220px at 12% 6%,rgba(107,168,165,.42),transparent 56%),radial-gradient(340px 210px at 96% 12%,rgba(165,177,194,.24),transparent 54%),linear-gradient(145deg,#243341,#2c4a4a 44%,#3a6462,#4d908d);color:#fff;box-shadow:var(--shadow-lg),inset 0 1px #ffffff29,inset 0 -36px 70px #1e272e42;animation:rise var(--dur-slow) 80ms var(--ease-out) both,card-drift 6s ease-in-out infinite}.fresh-score-card:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.16),transparent 32%),repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 12px);pointer-events:none}.fresh-card-pattern{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.5}.fresh-card-pattern path{vector-effect:non-scaling-stroke}.fresh-card-pattern pattern path{stroke:#ffffff0f;stroke-width:1}.fresh-card-pattern .grid-fill{fill:#ffffff06}.fresh-card-pattern .flow{fill:none;stroke:#ffffff1f;stroke-width:2.4;stroke-linecap:round}.fresh-card-pattern .soft{stroke:#6ba8a566;stroke-width:2}.fresh-card-pattern .fine{stroke:#ffffff2e;stroke-width:1.2}.fresh-score-top,.fresh-score-main,.fresh-score-bottom{position:relative;z-index:1}.fresh-score-top,.fresh-score-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#fffc;font-weight:600;font-size:.84rem}.fresh-score-top>:last-child,.fresh-score-bottom>:last-child{overflow-wrap:anywhere;text-align:right}.fresh-score-top{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.fresh-score-main{display:flex;align-items:baseline;gap:8px}.fresh-score-main strong{font-size:clamp(3.6rem,20vw,5.4rem);font-weight:700;line-height:.9;letter-spacing:-.04em}.fresh-score-main span{color:#ffffffb3;font-size:.9rem;font-weight:600}.fresh-tier-pill{border-radius:var(--r-pill);padding:6px 12px;background:#ffffff2e;color:#fff;font-weight:600;font-size:.8rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fresh-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;animation:rise var(--dur-slow) .12s var(--ease-out) both}.fresh-action-card{display:grid;place-items:center;gap:8px;min-height:92px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);color:var(--ink-700);font-size:.82rem;font-weight:600;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out);min-width:0;padding-inline:8px;overflow-wrap:anywhere}.fresh-action-card:hover{border-color:var(--cool-400);transform:translateY(-4px);box-shadow:var(--shadow-md);color:var(--accent-600)}.fresh-action-card:active{transform:scale(.97)}.fresh-action-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);background:var(--accent-50);color:var(--accent-600)}.fresh-action-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.fresh-action-icon svg path,.fresh-file-drop svg path,.fresh-list-icon svg path{vector-effect:non-scaling-stroke}.fresh-action-icon.upload{background:var(--accent-50);color:var(--accent-600)}.fresh-action-icon.reward{background:var(--info-100);color:var(--info-600)}.fresh-action-icon.activity{background:var(--warn-100);color:var(--warn-500)}.fresh-content{display:grid;gap:14px;animation:rise var(--dur-slow) .16s var(--ease-out) both}.fresh-content.is-loading{pointer-events:none}.fresh-content.is-loading>*{animation:shimmer-breathe 1.4s ease-in-out infinite}.fresh-panel{display:grid;gap:14px;animation:tab-in var(--dur) var(--ease-out) both}.fresh-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.fresh-section-title h2{font-size:1.25rem;font-weight:700;letter-spacing:-.025em;color:var(--ink-900);margin-top:2px}.fresh-section-title p,.fresh-section-title>span,.fresh-section-title>.fresh-text-button{color:var(--ink-500);font-size:.84rem;font-weight:600}.fresh-text-button{border:0;background:transparent;color:var(--accent-600);font-weight:700;font-size:.84rem;cursor:pointer;min-height:0;padding:0;transition:color var(--dur-fast) var(--ease-out)}.fresh-text-button:hover{color:var(--accent-500)}.fresh-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fresh-summary-card,.fresh-qr-card,.fresh-list-item,.fresh-upload-form,.fresh-reward-card,.fresh-campaign-card,.fresh-timeline-item,.fresh-news-card{position:relative;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.fresh-summary-card{display:grid;gap:6px;padding:18px}.fresh-summary-card span{color:var(--ink-500);font-weight:600;font-size:.78rem}.fresh-summary-card strong{color:var(--ink-900);font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.fresh-summary-card small{color:var(--ink-400);font-size:.8rem}.fresh-summary-card.tier strong{color:var(--accent-600)}.fresh-summary-card.pending strong{color:var(--warn-500)}.fresh-qr-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px}.fresh-qr-card span{color:var(--accent-600);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.fresh-qr-card h3{font-size:1rem;font-weight:700;margin-top:4px;color:var(--ink-900)}.fresh-qr-card p{color:var(--ink-500);font-size:.84rem;margin-top:4px}.fresh-qr-card img{width:96px;height:96px;border-radius:var(--r-md);background:#fff;padding:6px;box-shadow:var(--shadow-xs)}.fresh-list,.fresh-campaigns,.fresh-timeline,.fresh-reward-grid{display:grid;gap:10px}.fresh-list-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 14px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-raised);color:var(--ink-800);text-align:left;box-shadow:var(--shadow-xs);cursor:pointer;animation:list-in var(--dur) var(--ease-out) both}.fresh-list-item:hover{border-color:var(--cool-400);transform:translateY(-2px);box-shadow:var(--shadow-md)}.fresh-list-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-md);background:var(--cream-100);color:var(--accent-600)}.fresh-list-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.fresh-list-item strong,.fresh-timeline-item strong{font-weight:600;color:var(--ink-900);font-size:.9rem}.fresh-list-item small,.fresh-timeline-item small,.fresh-reward-card p,.fresh-campaign-card p,.fresh-news-card p{display:block;margin-top:3px;color:var(--ink-500);line-height:1.5;font-size:.82rem}.fresh-list-item em{font-style:normal;font-weight:700;font-size:.78rem;color:var(--warn-500)}.fresh-list-item em.ok{color:var(--success-600)}.fresh-upload-form{display:grid;gap:14px;padding:20px}.fresh-file-drop{position:relative;display:grid;place-items:center;gap:8px;min-height:190px;border:1.5px dashed var(--hairline-cool);border-radius:var(--r-xl);background:linear-gradient(135deg,rgba(77,144,141,.04),transparent),var(--cream-100);text-align:center;cursor:pointer;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.fresh-file-drop:hover{border-color:var(--accent-400);background:linear-gradient(135deg,rgba(77,144,141,.08),transparent),var(--cream-50)}.fresh-file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0;border:0}.fresh-file-drop svg{width:56px;height:56px;color:var(--accent-500);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;animation:icon-bounce 2.4s ease-in-out infinite}.fresh-file-drop svg path:first-child{fill:#4d908d0f}.fresh-file-drop strong{max-width:260px;overflow-wrap:anywhere;color:var(--ink-800);font-size:.92rem}.fresh-file-drop small{color:var(--ink-500);font-size:.82rem}.fresh-form-grid{display:grid;gap:12px}.fresh-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fresh-dev-login-grid{gap:6px}.fresh-form-actions{margin-top:8px}.fresh-field{display:grid;gap:7px}.fresh-field span{color:var(--ink-700);font-size:.84rem;font-weight:600}.fresh-field input{min-height:48px;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface-raised);color:var(--ink-800);padding:10px 13px;font-weight:500;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.fresh-field input:focus{outline:none;border-color:var(--accent-400);box-shadow:0 0 0 4px #4d908d1f}.fresh-primary,.fresh-secondary,.fresh-ghost{min-height:48px;border-radius:var(--r-lg);font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.fresh-primary{background:linear-gradient(135deg,var(--accent-500),var(--accent-600));color:#fff;border:0;box-shadow:var(--shadow-accent)}.fresh-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px #4d908d4d}.fresh-secondary{background:linear-gradient(135deg,var(--ink-800),var(--ink-700));color:#fff;border:0;box-shadow:0 6px 18px #2c3a4729}.fresh-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px #2c3a473d}.fresh-ghost{border:1px solid var(--hairline-strong);background:var(--surface-raised);color:var(--ink-700);box-shadow:var(--shadow-xs)}.fresh-ghost:hover:not(:disabled){border-color:var(--cool-400);background:var(--cool-100);transform:translateY(-2px)}.fresh-primary:active:not(:disabled),.fresh-secondary:active:not(:disabled),.fresh-ghost:active:not(:disabled){transform:scale(.97)}.fresh-wide{width:100%}.fresh-reward-card,.fresh-campaign-card{display:grid;gap:14px;padding:18px}.fresh-reward-card:hover,.fresh-campaign-card:hover{border-color:var(--cool-400);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.fresh-reward-card{grid-template-columns:78px minmax(0,1fr);align-items:center}.fresh-reward-medal{display:grid;place-items:center;width:78px;height:78px;border-radius:var(--r-lg);background:var(--accent-50);color:var(--accent-600);font-weight:700;font-size:1.1rem;border:1px solid var(--hairline)}.fresh-reward-card h3,.fresh-campaign-card h3,.fresh-news-card h3{font-size:1rem;font-weight:700;color:var(--ink-900);letter-spacing:-.02em}.fresh-reward-card .fresh-secondary,.fresh-campaign-card .fresh-secondary{min-height:40px;font-size:.84rem}.fresh-campaign-card span{margin-bottom:2px}.fresh-timeline-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;animation:list-in var(--dur) var(--ease-out) both}.fresh-dot{width:10px;height:10px;border-radius:var(--r-pill);background:var(--accent-500);box-shadow:0 0 0 5px #4d908d24}.fresh-dot.minus{background:var(--danger-500);box-shadow:0 0 0 5px #c0564f24}.fresh-timeline-item em{font-style:normal;font-weight:700;color:var(--success-600)}.fresh-timeline-item em.minus{color:var(--danger-600)}.fresh-news-card{display:grid;gap:10px;padding:20px}.fresh-news-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--accent-500),var(--cool-400))}.fresh-reward-img-frame{border-radius:var(--r-lg);overflow:hidden;background:var(--cream-100);aspect-ratio:16/10}.fresh-reward-img-frame img{width:100%;height:100%;object-fit:cover}.fresh-news-img-frame{border-radius:var(--r-lg);overflow:hidden;background:var(--cream-100);aspect-ratio:16/9}.fresh-news-img-frame img{width:100%;height:100%;object-fit:cover}.fresh-empty{color:var(--ink-500);padding:16px;text-align:center;font-size:.88rem;border-radius:var(--r-md);background:var(--cream-100)}.fresh-bottom-nav{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));z-index:40;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:min(500px,100% - 24px);min-height:70px;padding:8px;border:1px solid var(--glass-border);border-radius:var(--r-2xl);background:var(--glass-bg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);transform:translate(-50%);animation:nav-dock var(--dur-slow) var(--ease-out) both}.fresh-bottom-nav button{display:grid;place-items:center;gap:3px;min-height:54px;border-radius:var(--r-xl);background:transparent;color:var(--ink-500);font-size:.68rem;font-weight:600;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur) var(--ease-out),transform var(--dur) var(--ease-out);min-width:0;padding-inline:4px}.fresh-bottom-nav button.active{background:var(--accent-100);color:var(--accent-600);transform:translateY(-5px);box-shadow:var(--shadow-sm)}.fresh-bottom-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.fresh-bottom-nav svg path{vector-effect:non-scaling-stroke}.fresh-toast{position:fixed;left:50%;bottom:100px;z-index:60;width:min(440px,100% - 32px);border-radius:var(--r-lg);padding:12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-lg);transform:translate(-50%);animation:toast-in .32s var(--ease-spring) both;font-size:.86rem;font-weight:600}.fresh-error{color:var(--danger-600)}.fresh-modal-overlay{position:fixed;inset:0;background:#1e272e8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;animation:rise var(--dur) var(--ease-out) both}.fresh-modal-card{background:var(--surface-raised);border:1px solid var(--glass-border);border-radius:var(--r-2xl);width:100%;max-width:340px;padding:26px 22px;text-align:center;box-shadow:var(--shadow-xl);position:relative;animation:freshModalShow .3s var(--ease-spring) both}.fresh-modal-head{margin-bottom:18px}.fresh-modal-badge{display:inline-block;font-size:.74rem;font-weight:700;color:var(--accent-600);text-transform:uppercase;letter-spacing:.1em;background:var(--accent-100);padding:5px 11px;border-radius:var(--r-pill)}.fresh-modal-head h3{margin:12px 0 4px;color:var(--ink-900);font-size:1.15rem;font-weight:700}.fresh-modal-head p{margin:0;font-size:.82rem;color:var(--ink-500);font-weight:500}.fresh-modal-qr{display:inline-block;background:var(--cream-100);border-radius:var(--r-xl);padding:16px;margin-bottom:18px;border:1.5px dashed var(--hairline-cool)}.fresh-modal-qr img{width:200px;height:200px;display:block;border-radius:var(--r-md)}.fresh-modal-code{margin-bottom:16px;background:var(--cool-100);padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--hairline);display:flex;flex-direction:column;align-items:center;gap:5px}.fresh-modal-code span{font-size:.7rem;color:var(--ink-500);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.fresh-modal-code code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92rem;font-weight:700;color:var(--ink-900);word-break:break-all;-webkit-user-select:all;user-select:all}.fresh-modal-note{margin:0 0 20px;font-size:.84rem;color:var(--ink-600);font-weight:500;line-height:1.5}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(700px 460px at 12% -6%,rgba(165,177,194,.16),transparent 60%),radial-gradient(620px 420px at 108% 8%,rgba(77,144,141,.1),transparent 58%),linear-gradient(180deg,var(--cream-50) 0%,var(--cream-100) 100%)}.auth-card{display:grid;gap:16px;width:min(420px,100%);padding:28px 26px;animation:rise var(--dur-slow) var(--ease-out) both}.admin-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;background:var(--surface)}.sidebar,.admin-sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:18px;padding:22px 16px;background:var(--surface-raised);border-right:1px solid var(--hairline);overflow-y:auto}.sidebar nav,.admin-sidebar nav{display:grid;gap:4px;flex:1}.sidebar a,.admin-sidebar a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--r-md);color:var(--ink-600);text-decoration:none;font-weight:600;font-size:.88rem;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.sidebar a span,.admin-sidebar a span{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:var(--cream-100);color:var(--ink-500);font-size:.78rem;font-weight:700;flex-shrink:0}.sidebar a:hover,.admin-sidebar a:hover{background:var(--cream-100);color:var(--ink-900);transform:translate(2px)}.sidebar a.active,.admin-sidebar a.active{background:var(--accent-100);color:var(--accent-600)}.sidebar a.active span,.admin-sidebar a.active span{background:var(--accent-500);color:#fff}.admin-content{padding:28px 32px 48px;max-width:100%;overflow-x:hidden;animation:rise var(--dur-slow) var(--ease-out) both}.admin-auth-page{min-height:100vh;display:grid;place-items:center;padding:20px}.admin-auth-card{width:min(420px,100%);padding:30px 26px;animation:rise var(--dur-slow) var(--ease-out) both}.admin-auth-brand,.admin-brand{display:flex;align-items:center;gap:12px}.admin-auth-brand img,.admin-brand img{width:44px;height:44px;border-radius:var(--r-md);background:#fff;padding:6px;border:1px solid var(--hairline);box-shadow:var(--shadow-xs)}.admin-auth-brand h1,.admin-brand h1{font-size:1.15rem;font-weight:700;letter-spacing:-.022em}.admin-user-card{display:grid;gap:4px;padding:16px;border-radius:var(--r-lg);background:var(--cream-100);border:1px solid var(--hairline)}.admin-user-card strong{color:var(--ink-900);font-size:.92rem;font-weight:700}.admin-user-card small{color:var(--ink-500);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.admin-user-card button{margin-top:8px;min-height:36px;font-size:.82rem}.admin-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.admin-page-head h2{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700;letter-spacing:-.028em;margin-top:2px}.admin-page-head span{display:block;margin-top:6px;color:var(--ink-500);font-size:.86rem}.admin-panel,.admin-metric{border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.admin-panel{padding:22px}.admin-metric{position:relative;display:grid;gap:6px;padding:18px;overflow:hidden}.admin-metric:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--accent-500),var(--cool-400));opacity:.7}.admin-metric span{color:var(--ink-500);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.admin-metric strong{font-size:1.7rem;font-weight:700;letter-spacing:-.025em;color:var(--ink-900)}.admin-metric small{color:var(--ink-400);font-size:.8rem}.admin-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.admin-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end;padding:18px;margin-bottom:18px}.admin-two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.admin-tr{min-width:620px}.admin-tr.four{grid-template-columns:1fr 1.3fr .8fr .8fr}.admin-tr.five{grid-template-columns:.55fr 1.25fr .8fr .8fr .9fr}.admin-tr.audit{grid-template-columns:1fr .9fr 1.3fr 1fr .8fr}.admin-list{display:grid;gap:8px}.admin-list.compact{gap:6px}.admin-list-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;min-height:50px;padding:11px 14px;border-radius:var(--r-md);border:1px solid var(--hairline);color:inherit;text-decoration:none;background:var(--cream-100);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.admin-list-item:hover{background:var(--cool-100);border-color:var(--cool-400);transform:translate(2px)}.admin-list-item span{display:grid;place-items:center;min-width:36px;height:32px;padding:0 8px;border-radius:var(--r-sm);background:var(--accent-100);color:var(--accent-600);font-weight:700;font-size:.78rem}.admin-list-item strong{color:var(--ink-900);font-weight:600;font-size:.9rem;overflow-wrap:anywhere}.admin-list-item small{color:var(--ink-500);font-size:.8rem}.role-picker{display:flex;gap:8px;flex-wrap:wrap}.scan-camera{position:relative;display:grid;gap:12px;padding:16px;border-radius:var(--r-lg);background:var(--ink-900)}.scan-camera video{width:100%;max-height:320px;border-radius:var(--r-md);background:#000}.scan-actions{display:flex;gap:8px;justify-content:center}.pickup-preview{display:grid;gap:4px;padding:16px;border-radius:var(--r-md);background:var(--cream-100)}.pickup-preview strong{color:var(--ink-900);font-size:1rem}.pickup-preview span,.pickup-preview small{color:var(--ink-500);font-size:.84rem}.master-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.master-tabs button{display:grid;gap:2px;padding:12px 16px;min-height:56px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink-600);text-align:left;cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.master-tabs button strong{font-size:.86rem;font-weight:700}.master-tabs button small{font-size:.74rem;color:var(--ink-400)}.master-tabs button:hover{border-color:var(--cool-400);transform:translateY(-2px)}.master-tabs button.active{border-color:var(--accent-400);background:var(--accent-50);color:var(--accent-600)}.master-tabs button.active strong{color:var(--accent-600)}.master-workspace{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1fr);gap:18px;align-items:start}.master-form{display:grid;gap:14px}.master-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.master-field{display:grid;gap:6px}.master-field span{color:var(--ink-700);font-size:.82rem;font-weight:600}.master-field input,.master-field select,.master-field textarea{min-height:44px;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface-raised);color:var(--ink-800);padding:10px 12px;font-weight:500;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.master-field textarea{min-height:90px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.84rem}.master-field input:focus,.master-field select:focus,.master-field textarea:focus{outline:none;border-color:var(--accent-400);box-shadow:0 0 0 4px #4d908d1f}.master-field small{color:var(--ink-400);font-size:.78rem}.master-json,.master-check{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem;color:var(--ink-600);background:var(--cream-100);border:1px solid var(--hairline);border-radius:var(--r-md);padding:12px;white-space:pre-wrap;overflow-x:auto}.master-check{display:flex;align-items:center;gap:8px;white-space:normal}.master-advanced summary{cursor:pointer;font-weight:600;color:var(--ink-600);padding:8px 0}.master-advanced pre{background:var(--cream-100);border:1px solid var(--hairline);border-radius:var(--r-md);padding:12px;overflow-x:auto;font-size:.8rem}.master-list-panel{border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm);overflow:hidden}.master-table{overflow-x:auto}.master-row{display:grid;gap:10px;align-items:center;min-width:560px;padding:12px 16px;border-bottom:1px solid var(--hairline)}.master-row.head{color:var(--ink-500);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;background:var(--cream-100)}.master-row.clickable{cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.master-row.clickable:hover,.master-row.selected{background:var(--cream-100)}.master-row.selected{background:var(--accent-50)}.master-row span{overflow-wrap:anywhere;font-weight:500;color:var(--ink-700)}.premium-shell{position:relative;min-height:100vh;background:radial-gradient(680px 440px at 8% -4%,rgba(165,177,194,.16),transparent 60%),radial-gradient(620px 420px at 106% 2%,rgba(77,144,141,.1),transparent 58%),linear-gradient(180deg,var(--cream-50) 0%,var(--cream-100) 60%,var(--cream-50) 100%);color:var(--ink-800);overflow-x:hidden}.premium-app{width:min(520px,100%);margin:0 auto;padding:20px 18px 120px;display:grid;gap:18px}.premium-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--glass-border);border-radius:var(--r-xl);background:var(--glass-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);animation:slide-down var(--dur) var(--ease-out) both}.premium-header h1{color:var(--ink-900);font-size:1.1rem;font-weight:700}.premium-header .date-chip{border-radius:var(--r-pill);padding:5px 11px;background:var(--accent-100);color:var(--accent-600);font-size:.74rem;font-weight:700}.logout-pill{border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-raised);color:var(--accent-600);font-weight:600;padding:0 14px;min-height:38px;box-shadow:var(--shadow-xs)}.premium-score-card{position:relative;overflow:hidden;display:grid;gap:12px;min-height:220px;padding:24px;border-radius:var(--r-2xl);background:radial-gradient(400px 220px at 12% 6%,rgba(107,168,165,.42),transparent 56%),radial-gradient(340px 210px at 96% 12%,rgba(165,177,194,.24),transparent 54%),linear-gradient(145deg,#243341,#2c4a4a 44%,#3a6462,#4d908d);color:#fff;box-shadow:var(--shadow-lg),inset 0 1px #ffffff29;animation:rise var(--dur-slow) 80ms var(--ease-out) both,card-drift 6s ease-in-out infinite}.premium-score-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.16),transparent 32%);pointer-events:none}.score-flow-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.4}.score-flow-lines circle{fill:#fff6}.score-gloss{position:absolute;inset:-40% -70%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.28) 50%,transparent 58%);transform:translate(-40%);animation:shine-sweep 4.2s ease-in-out infinite;pointer-events:none}.score-main{position:relative;z-index:1;display:flex;align-items:baseline;gap:8px}.score-main strong{font-size:clamp(3.6rem,20vw,5.4rem);font-weight:700;line-height:.9;letter-spacing:-.04em}.score-main span{color:#ffffffb3;font-size:.9rem;font-weight:600}.obsidian-badge{border-radius:var(--r-pill);padding:6px 12px;background:#ffffff2e;color:#fff;font-weight:600;font-size:.8rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bento-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;animation:rise var(--dur-slow) .12s var(--ease-out) both}.bento-card{position:relative;overflow:hidden;display:grid;place-items:center;gap:8px;min-height:92px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);color:var(--ink-700);font-size:.82rem;font-weight:600;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.bento-card:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(77,144,141,.04),transparent);opacity:0;transition:opacity var(--dur) var(--ease-out)}.bento-card:hover{border-color:var(--cool-400);transform:translateY(-4px);box-shadow:var(--shadow-md);color:var(--accent-600)}.bento-card:hover:after{opacity:1}.bento-upload,.bento-reward,.bento-activity{position:relative;overflow:hidden;display:grid;place-items:center;gap:8px;min-height:92px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);color:var(--ink-700);font-size:.82rem;font-weight:600;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.bento-card>span:last-child{position:relative;z-index:1}.icon-bubble,.glass-3d-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);background:var(--accent-50);color:var(--accent-600)}.bento-reward .glass-3d-icon{background:var(--info-100);color:var(--info-600)}.bento-activity .glass-3d-icon{background:var(--warn-100);color:var(--warn-500)}.summary-bento .mini-card{display:grid;gap:6px;padding:18px}.tier-card{display:grid;gap:6px;padding:18px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.tier-card strong{color:var(--accent-600);font-size:1.5rem;font-weight:700}.pending-card{display:grid;gap:6px;padding:18px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.pending-card strong{color:var(--warn-500);font-size:1.5rem;font-weight:700}.premium-upload-card{display:grid;gap:14px;padding:20px;border:1px solid var(--hairline);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.neon-upload-zone{position:relative;display:grid;place-items:center;gap:8px;min-height:190px;border:1.5px dashed var(--hairline-cool);border-radius:var(--r-xl);background:var(--cream-100);text-align:center;cursor:pointer;transition:border-color var(--dur) var(--ease-out)}.neon-upload-zone:hover{border-color:var(--accent-400)}.file-up-illustration{width:56px;height:56px;color:var(--accent-500);animation:icon-bounce 2.4s ease-in-out infinite}.floating-form{display:grid;gap:14px}.floating-field{position:relative;display:grid}.floating-field input{min-height:52px;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface-raised);padding:18px 13px 10px;font-weight:500}.floating-field input:focus{outline:none;border-color:var(--accent-400);box-shadow:0 0 0 4px #4d908d1f}.floating-field span{position:absolute;top:8px;left:14px;font-size:.7rem;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;pointer-events:none}.floating-field input:focus+span,.floating-field input:not(:placeholder-shown)+span,.floating-field input[type=date]+span{color:var(--accent-600)}.premium-submit{min-height:50px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--accent-500),var(--accent-600));color:#fff;border:0;font-weight:700;box-shadow:var(--shadow-accent);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.premium-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px #4d908d4d}.fintech-nav{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));z-index:40;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:min(500px,100% - 24px);min-height:70px;padding:8px;border:1px solid var(--glass-border);border-radius:var(--r-2xl);background:var(--glass-bg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);transform:translate(-50%);animation:nav-dock var(--dur-slow) var(--ease-out) both}.fintech-nav button{display:grid;place-items:center;gap:3px;min-height:54px;border-radius:var(--r-xl);background:transparent;color:var(--ink-500);font-size:.68rem;font-weight:600;cursor:pointer;position:relative;transition:color var(--dur-fast) var(--ease-out),background var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.fintech-nav button.active{background:var(--accent-100);color:var(--accent-600);transform:translateY(-5px);box-shadow:var(--shadow-sm)}.nav-glow{display:none}.fintech-nav button.active .nav-glow{display:block;position:absolute;top:4px;width:28px;height:3px;border-radius:var(--r-pill);background:var(--accent-500)}.nav-flat-icon{width:22px;height:22px}.min-h-screen{min-height:100vh}.px-6{padding-left:24px;padding-right:24px}.pb-28{padding-bottom:112px}.flex{display:flex}.grid{display:grid}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-3{gap:12px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tab-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes list-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shine-sweep{0%,38%{transform:translate(-40%)}70%,to{transform:translate(40%)}}@keyframes card-drift{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes icon-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes loading-breathe{0%{filter:saturate(.9);opacity:.78}to{filter:saturate(1.05);opacity:1}}@keyframes shimmer-breathe{0%,to{opacity:1}50%{opacity:.6}}@keyframes nav-dock{0%{opacity:0;transform:translate(-50%,26px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes nav-icon-pop{0%{transform:scale(.8) rotate(-8deg)}65%{transform:scale(1.16) rotate(4deg)}to{transform:scale(1) rotate(0)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes freshModalShow{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.stagger>*{animation:rise var(--dur-slow) var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:70ms}.stagger>*:nth-child(3){animation-delay:.14s}.stagger>*:nth-child(4){animation-delay:.21s}.stagger>*:nth-child(5){animation-delay:.28s}.stagger>*:nth-child(6){animation-delay:.35s}.stagger>*:nth-child(7){animation-delay:.42s}.stagger>*:nth-child(8){animation-delay:.49s}.skeleton{position:relative;overflow:hidden;background:var(--cream-200);border-radius:var(--r-md)}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);transform:translate(-100%);animation:shimmer 1.6s infinite}@keyframes shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.sidebar,.admin-sidebar{position:fixed;top:0;left:0;z-index:50;width:248px;transform:translate(-100%);transition:transform var(--dur) var(--ease-out)}.admin-content{padding:20px 16px 48px}.content-grid,.two-column,.admin-two-column,.admin-dashboard-grid,.master-workspace{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.fresh-summary-grid,.summary-bento,.mini-grid{grid-template-columns:1fr}.fresh-actions,.bento-actions,.quick-actions{gap:8px}.fresh-action-card,.bento-card,.quick-actions button{min-height:84px}}@media(max-width:420px){.fresh-app{gap:14px}.fresh-header{gap:8px;padding:12px}.fresh-header-brand{gap:9px}.fresh-logo-frame.compact{width:40px;height:40px}.fresh-header-actions{gap:6px}.fresh-logout{min-height:36px;padding-inline:10px}.fresh-score-card{min-height:200px;padding:20px}.fresh-score-main strong{font-size:clamp(3.2rem,19vw,4.4rem)}.fresh-action-card{font-size:.76rem}.fresh-bottom-nav{width:calc(100% - 16px);padding:6px}}@media(max-width:360px){.fresh-page{padding-inline:10px}.fresh-header-actions .fresh-logout{width:36px;padding:0;font-size:0;gap:0}.fresh-header-actions .fresh-logout svg{width:16px;height:16px}.fresh-score-card{padding:18px}.fresh-score-top,.fresh-score-bottom{gap:8px;font-size:.74rem}.fresh-action-card{min-height:80px;padding-inline:5px;font-size:.7rem}.fresh-action-icon{width:40px;height:40px}.fresh-bottom-nav button{font-size:.6rem;padding-inline:2px}.fresh-two-column{grid-template-columns:minmax(0,1fr)}}
