.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:12px 20px;border-radius:var(--radius-sm);font-size:15px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1}.btn:active{transform:scale(.97)}.btn--primary{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));color:#fff;box-shadow:0 8px 18px #075f6838}.btn--primary:active{background:var(--color-primary-dark)}.btn--secondary{background:linear-gradient(180deg,var(--color-accent-soft),#fff8eb);color:var(--color-primary);border:1px solid rgba(213,139,42,.22)}.btn--ghost{background:#ffffffa3;color:var(--color-text-2);border:1px solid var(--color-border-light)}.btn--danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn--text{background:transparent;color:var(--color-primary);padding:8px 12px}.btn--block{width:100%}.btn--sm{padding:8px 14px;font-size:13px;border-radius:var(--radius-sm)}.btn--lg{padding:16px 24px;font-size:16px}.btn--disabled,.btn:disabled{opacity:.45;pointer-events:none}.card{background:var(--color-bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid rgba(255,255,255,.68);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card--padded{padding:var(--space-4)}.card--inset{margin-bottom:var(--space-3)}.list-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#fffdf4b3;transition:background .15s ease;cursor:pointer}.list-row:active{background:#dff7f6c7}.list-row+.list-row{border-top:1px solid var(--color-border-light)}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:700;line-height:1.6;border:1px solid rgba(255,255,255,.62)}.tag--success{background:var(--color-success-soft);color:var(--color-success)}.tag--warning{background:var(--color-warning-soft);color:var(--color-warning)}.tag--danger{background:var(--color-danger-soft);color:var(--color-danger)}.tag--info{background:var(--color-info-soft);color:var(--color-info)}.tag--primary{background:var(--color-primary-soft);color:var(--color-primary)}.tag--default{background:var(--color-fill);color:var(--color-text-3)}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot--success{background:var(--color-success)}.dot--warning{background:var(--color-warning)}.dot--danger{background:var(--color-danger)}.dot--info{background:var(--color-info)}.dot--muted{background:var(--color-text-4)}.input,.textarea,.select{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:#ffffffb8;font-size:15px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;outline:none}.input:focus,.textarea:focus,.select:focus{border-color:var(--color-primary);background:var(--color-paper);box-shadow:0 0 0 4px #0f8f9a1a}.textarea{resize:none;min-height:80px}.input-group{margin-bottom:var(--space-4)}.input-label{display:block;font-size:13px;font-weight:600;color:var(--color-text-2);margin-bottom:var(--space-2)}.input-hint{font-size:12px;color:var(--color-text-4);margin-top:var(--space-1)}.divider{height:1px;background:var(--color-border-light)}.divider--text{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-4);font-size:12px;height:auto;background:none;margin:var(--space-4) 0}.divider--text:before,.divider--text:after{content:"";flex:1;height:1px;background:var(--color-border-light)}.app-header{position:sticky;top:0;z-index:100;height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-4);background:#fffdf4d1;border-bottom:1px solid var(--color-border-light);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header__title{font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--color-ink);flex:1;text-align:center;letter-spacing:0}.app-header__side{width:40px;display:flex;align-items:center}.app-header__side--right{justify-content:flex-end}.icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--color-text-2);transition:background .15s ease;background:#ffffff61}.icon-btn:active{background:var(--color-fill)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--app-max-width);height:calc(var(--bottom-nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#fffdf4e0;border-top:1px solid var(--color-border-light);display:flex;z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -10px 28px #15676f14}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-4);font-size:11px;font-weight:500;transition:color .2s ease}.bottom-nav__item--active{color:var(--color-primary-dark)}.bottom-nav__icon{font-size:22px;line-height:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#073c415c;z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.modal-sheet{width:100%;max-width:var(--app-max-width);background:linear-gradient(180deg,#fffdf4fa,#edfaf9fa);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-5);padding-bottom:calc(var(--space-5) + var(--safe-bottom));animation:slideUp .3s cubic-bezier(.16,1,.3,1);max-height:85vh;overflow-y:auto;border:1px solid rgba(255,255,255,.68);box-shadow:var(--shadow-xl)}.modal-sheet__handle{width:36px;height:4px;background:var(--color-border);border-radius:var(--radius-full);margin:0 auto var(--space-4)}.modal-sheet__title{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--color-ink);margin-bottom:var(--space-4);text-align:center}.modal-center{align-items:center}.modal-center .modal-sheet{border-radius:var(--radius-xl);margin:0 var(--space-5);animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.sticky-actions{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--app-max-width);padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--safe-bottom));background:#fffdf4e6;border-top:1px solid var(--color-border-light);display:flex;gap:var(--space-3);z-index:90;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -10px 28px #15676f14}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center}.empty-state__icon{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:#fffdf4b3;color:var(--color-primary);margin-bottom:var(--space-3);opacity:.88;box-shadow:var(--shadow-sm)}.empty-state__text{color:var(--color-text-4);font-size:14px}.section-title{font-size:13px;font-weight:700;color:var(--color-primary-dark);letter-spacing:0;padding:var(--space-4) var(--space-1) var(--space-2)}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.stat-card{background:#fffdf4d6;border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.68);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-card__label{font-size:12px;color:var(--color-text-3);margin-bottom:var(--space-1)}.stat-card__value{font-size:24px;font-weight:700;color:var(--color-text-1);line-height:1.2}.stat-card__value--primary{color:var(--color-primary)}.stat-card__value--success{color:var(--color-success)}.stat-card__unit{font-size:13px;font-weight:500;color:var(--color-text-3);margin-left:2px}.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#075f68eb;color:#fff;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;z-index:300;animation:fadeIn .2s ease;max-width:80%;text-align:center}.switch{position:relative;width:48px;height:28px;border-radius:var(--radius-full);background:#67868a52;transition:background .25s ease;cursor:pointer;flex-shrink:0}.switch--on{background:linear-gradient(135deg,var(--color-primary),var(--color-success))}.switch__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000026;transition:transform .25s ease}.switch--on .switch__thumb{transform:translate(20px)}.team-avatar{width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:var(--color-paper);flex-shrink:0;background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary-light));box-shadow:inset 0 1px #ffffff57,0 6px 14px #075f682e}.team-avatar--lg{width:80px;height:80px;font-size:28px;border-radius:var(--radius-lg)}.event-hero{min-height:174px;position:relative;color:var(--color-paper);background:linear-gradient(90deg,#075f68e6,#0f8f9a85),url(/assets/rural-chef-season-2-style.jpg) center 36% / cover no-repeat;border:1px solid rgba(255,255,255,.72);box-shadow:var(--shadow-lg)}.event-hero:after{content:"";position:absolute;inset:auto 0 0 0;height:54px;background:linear-gradient(180deg,transparent,rgba(255,253,244,.28));pointer-events:none}.event-hero__content{position:relative;z-index:1}.event-hero__eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-full);background:#fffdf42e;color:#ffffffeb;font-size:12px;font-weight:700;border:1px solid rgba(255,255,255,.24)}.event-hero__title{margin-top:14px;font-family:var(--font-display);font-size:27px;line-height:1.12;font-weight:900;color:#fffdf4;text-shadow:0 3px 16px rgba(6,55,60,.42);letter-spacing:0}.event-hero__meta{margin-top:8px;color:#ffffffdb;font-size:13px}.themed-icon-box{width:40px;height:40px;border-radius:var(--radius-sm);background:linear-gradient(180deg,#dff7f6f2,#fff2dcd1);color:var(--color-primary-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid rgba(255,255,255,.72)}.score-hero{color:var(--color-paper);padding:20px 16px 36px;background:linear-gradient(180deg,#075f68db,#0f8f9a9e),url(/assets/rural-chef-season-2-style.jpg) center top / cover no-repeat;box-shadow:var(--shadow-md)}.score-hero__activity{margin-top:10px;font-family:var(--font-display);font-size:22px;font-weight:900;line-height:1.25;color:#fffdf4;letter-spacing:0;text-shadow:0 3px 14px rgba(7,60,65,.34)}.score-seal{width:100px;height:100px;border-radius:26px;background:radial-gradient(circle at 34% 24%,rgba(255,255,255,.34),transparent 28%),linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));color:#fffdf4;display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:900;margin:0 auto;box-shadow:0 12px 26px #075f683d}.success-page{background:linear-gradient(180deg,#ecfdf5db,#e9f8fbeb 42%),url(/assets/rural-chef-season-2-style.jpg) center top / cover no-repeat}.qr-checking-page{background:linear-gradient(180deg,#075f68db,#0f8f9aa8),url(/assets/rural-chef-season-2-style.jpg) center top / cover no-repeat}.score-option{aspect-ratio:1;border-radius:var(--radius-lg);font-size:22px;font-weight:900;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;background:#fffdf4c7;color:var(--color-text-2);border:1px solid rgba(255,255,255,.72)}.score-option--selected{background:radial-gradient(circle at 34% 24%,rgba(255,255,255,.32),transparent 26%),linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));color:#fffdf4;box-shadow:0 8px 18px #075f6838;transform:scale(1.05)}:root{--color-primary: #0f8f9a;--color-primary-dark: #075f68;--color-primary-light: #34b9bd;--color-primary-soft: #dff7f6;--color-primary-50: #f2fbf9;--color-accent: #d58b2a;--color-accent-dark: #9f5b16;--color-accent-soft: #fff2dc;--color-ink: #0b4f55;--color-mist: #e8f8fb;--color-paper: #fffdf4;--color-success: #2ca86d;--color-success-soft: #ecfdf5;--color-warning: #d58b2a;--color-warning-soft: #fffbeb;--color-danger: #d94a3a;--color-danger-soft: #fef2f2;--color-info: #1689bd;--color-info-soft: #f0f9ff;--color-text-1: #173f42;--color-text-2: #38646a;--color-text-3: #67868a;--color-text-4: #91aaa9;--color-border: #cce7e7;--color-border-light: rgba(15, 143, 154, .14);--color-bg: #e9f8fb;--color-bg-elevated: rgba(255, 253, 244, .94);--color-fill: rgba(255, 255, 255, .62);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(21, 103, 111, .08);--shadow-md: 0 8px 20px rgba(21, 103, 111, .11);--shadow-lg: 0 16px 32px rgba(21, 103, 111, .14);--shadow-xl: 0 22px 48px rgba(21, 103, 111, .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "STKaiti", "KaiTi", "Kaiti SC", "Songti SC", "SimSun", serif;--app-max-width: 480px;--header-height: 56px;--bottom-nav-height: 60px;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--color-text-1);background:linear-gradient(180deg,#daf4f9f0,#f4fcfcf5),url(/assets/rural-chef-season-2-style.jpg) center top / cover fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100%}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}ul,ol{list-style:none}.app-shell{max-width:var(--app-max-width);margin:0 auto;min-height:100vh;background:linear-gradient(180deg,#e9f8fbe6,#f8fdfaf0),url(/assets/rural-chef-season-2-style.jpg) center top / cover;position:relative;box-shadow:0 0 46px #075f6829;overflow-x:hidden}.app-shell:before{content:"";position:fixed;top:0;left:50%;width:min(100%,var(--app-max-width));height:100vh;transform:translate(-50%);background:linear-gradient(180deg,#dbf6fa3d,#fffdf4d1 48%,#e9f8fbf0),url(/assets/rural-chef-season-2-style.jpg) center top / cover no-repeat;opacity:.2;pointer-events:none;z-index:0}.page{min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}.page-body{flex:1;padding:var(--space-4);padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--space-4))}.page-body--no-nav{padding-bottom:var(--space-4)}.scroll-y{overflow-y:auto;-webkit-overflow-scrolling:touch}.text-1{color:var(--color-text-1)}.text-2{color:var(--color-text-2)}.text-3{color:var(--color-text-3)}.text-4{color:var(--color-text-4)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-xs{font-size:12px}.text-sm{font-size:13px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:22px}.text-3xl{font-size:28px}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-1{flex:1}.min-w-0{min-width:0}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade{animation:fadeIn .25s ease}.animate-slide-up{animation:slideUp .3s ease}.animate-scale{animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.ink-title{font-family:var(--font-display);color:var(--color-ink);font-weight:800;letter-spacing:0}.event-script{font-family:var(--font-display);color:var(--color-primary-dark);font-weight:800;letter-spacing:0}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}
