@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{color-scheme:light;--bg: #f5f7fc;--panel: #ffffff;--panel-soft: #f9fafe;--panel-blue: #eff5ff;--text: #1e2a3e;--muted: #6c7a91;--line: #e9edf2;--brand: #0b2b5e;--brand-strong: #1f4a7a;--accent: #f5b042;--accent-soft: #fef7e6;--success: #2e7d32;--danger: #c62828;--shadow: 0 10px 30px rgba(0, 0, 0, .05)}*{margin:0;padding:0;box-sizing:border-box}*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{margin:0;min-height:100%}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.portal-stage{min-height:100vh;padding:16px 12px 90px}.app-container{max-width:450px;margin:0 auto;background:var(--panel);border-radius:32px;box-shadow:var(--shadow);overflow:hidden}.content-padding{padding:20px 18px 24px}.status-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:14px;font-weight:500;color:#2c3e66}.status-bar i,.section-title i,.stats-title i,.reward-badge i,.label i,.course-info i,.event-info i,.page-foot-note i,.status-bar-action i,.lion-detail i,.card-address i,.utility-pill i,.quick-swap i{margin-right:6px}.status-bar-action{border:none;background:transparent;color:#2c3e66;font-size:14px;font-weight:500;padding:0}.time{font-weight:600}.lion-greeting,.digital-card,.ai-match-header,.banner{background:linear-gradient(135deg,var(--brand) 0%,var(--brand-strong) 100%);color:#fff}.lion-greeting{border-radius:28px;padding:18px 20px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 8px 14px #0b2b5e26;gap:16px}.greeting-text,.steps-left,.att-text,.reward-badge,.ai-match-header,.stats-numbers,.lion-info{min-width:0}.shop-greeting{padding:14px 18px}.greeting-text h3{margin:0 0 4px;font-size:18px;font-weight:600}.title,.card-note,.match-desc,.showcase-detail,.page-foot-note,.att-subtext,.event-meta-line,.product-meta,.medal-meta{font-size:12px;line-height:1.5;color:var(--muted)}.lion-greeting .greeting-text p{margin:0;font-size:13px;line-height:1.4}.shop-greeting .greeting-text h3{margin-bottom:2px;font-size:16px}.shop-greeting .greeting-text p{font-size:12px}.lion-greeting .greeting-text p,.shop-greeting .greeting-text p,.ai-match-header p,.banner-text p,.digital-card .title,.digital-card .card-address,.digital-card .lion-detail{color:#ffffffd9}.shop-greeting .ai-badge{padding:6px 10px;font-size:11px}.ai-badge,.mini-badge{background:#ffd70033;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:8px 12px;border-radius:40px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.ai-badge i{color:#ffd966}.ai-badge,.steps-goal,.remind-badge,.remind-action,.reward-badge,.btn-small,.btn-swap,.btn-course{flex-shrink:0}.health-tip-card{background:var(--panel-blue);border-left:6px solid var(--accent);border-radius:20px;padding:16px;margin-bottom:24px;display:flex;gap:12px;align-items:flex-start}.tip-icon{background:#f5b04221;width:44px;height:44px;border-radius:30px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--accent)}.tip-content h4,.stats-title,.business-header h3{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--brand)}.tip-content p,.event-info p,.history-name,.history-item,.field small,.empty-card p,.auth-card p,.loading-card strong,.course-copy span,.course-info p{margin:0;font-size:13px;line-height:1.45}.tip-content p{font-size:14px;font-weight:500;line-height:1.4}.steps-card,.soft-card,.event-card,.match-card,.product-card,.stats-card,.cart-card,.checkout-summary,.auto-reminder-card,.quick-swap,.auth-card,.empty-card,.loading-card{background:var(--panel);border-radius:24px;border:1px solid var(--line)}.steps-card{padding:14px 18px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:0 4px 12px #00000008}.steps-left span,.swap-text span,.showcase-lion,.card-address,.course-copy span,.product-meta,.section-link-row a,.section-title span,.search-bar input::placeholder,.field small,.history-date,.check-status,.page-foot-note,.card-note{color:var(--muted)}.steps-left span,.section-title span,.section-link-row a,.swap-address,.showcase-lion,.page-foot-note,.card-note{font-size:12px}.steps-number{font-size:28px;font-weight:800;color:var(--brand)}.steps-number span{font-size:14px;color:var(--muted)}.steps-goal,.header-tag,.remind-badge,.remind-action,.reminder-switch,.tag,.match-tag{display:inline-flex;align-items:center;gap:6px;border-radius:30px;font-size:12px;font-weight:600}.steps-goal,.reminder-switch,.tag,.match-tag{background:#f0f4fa;padding:6px 12px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.quick-item,.grid-item{text-align:center;border:none;background:transparent;padding:0}.quick-icon,.grid-icon,.qr-icon,.showcase-icon,.course-icon,.match-avatar{background:#f0f4fa;width:56px;height:56px;margin:0 auto 8px;border-radius:28px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#2c3e66}.showcase-icon,.match-avatar,.product-img,.cart-media,.qr-placeholder{overflow:hidden}.showcase-icon img,.match-avatar img{width:100%;height:100%;object-fit:cover}.grid-icon{width:52px;height:52px;font-size:22px}.quick-label,.grid-label{font-size:11px;font-weight:500;color:#3a4a6b}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:16px 0 12px}.section-title h2{margin:0;font-size:18px;font-weight:700;color:var(--brand)}.section-title span,.section-title a,.section-link-row a,.header-tag,.match-tag,.remind-badge,.remind-action,.lion-price,.business-header i,.tip-content h4{color:var(--accent)}.section-title-icon{margin-right:6px}.stack-list,.form-stack,.course-list,.history-list{display:flex;flex-direction:column;gap:12px}.compact-stack{gap:10px}.event-card,.match-card,.cart-card,.history-item,.course-item,.business-course-item,.quick-swap{display:flex;align-items:center;gap:12px}.event-card{padding:14px;box-shadow:0 2px 6px #00000005}.event-card-link{color:inherit}.activity-event-card{align-items:stretch}.event-date,.event-date-badge,.history-date{background:var(--brand);color:#fff;border-radius:16px;padding:8px 12px;text-align:center;min-width:60px}.history-date{min-width:72px}.event-date .day,.event-date-badge .day{font-size:18px;font-weight:800;line-height:1}.event-date .month,.event-date-badge .month,.history-date{font-size:10px}.event-info,.event-info-grow,.match-info,.course-copy,.course-info,.cart-content,.product-info,.swap-text,.lion-info{flex:1}.event-info h4,.match-info h4,.product-title,.course-copy strong,.course-info strong,.showcase-name,.history-name,.business-header h3,.swap-text strong,.greeting-text h3,.digital-card h3,.empty-card h3,.auth-card h3{margin:0 0 4px;font-size:15px;font-weight:700}.event-info-grow{align-self:center}.match-info h4{font-size:16px}.remind-badge{margin-left:auto;background:var(--accent-soft);padding:6px 10px}.remind-action{justify-content:center;align-self:center;min-width:78px;border:none;background:var(--accent-soft);padding:8px 12px}.remind-action.active,.toggle-switch.active,.btn-small,.btn-buy,.btn-primary,.btn-course,.shelf-btn,.publish-need-btn{background:var(--accent);color:#fff}.remind-action.active,.btn-brand,.btn-brand-dark,.btn-primary,.btn-course,.btn-buy,.publish-need-btn{background:var(--brand)}.match-tag{padding:4px 10px;font-size:10px;color:#c47a2a}.remind-action:disabled,.btn-buy:disabled,.btn-primary:disabled,.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.business-card{background:linear-gradient(120deg,var(--panel-soft) 0%,#fff 100%);border-radius:24px;border:1px solid var(--line);padding:16px;margin-bottom:20px}.business-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.header-tag{margin-left:auto;background:var(--panel-blue);padding:4px 8px;border-radius:30px;font-size:12px}.ai-match{background:var(--panel-blue);border-radius:14px;padding:12px;margin:12px 0}.match-item{justify-content:space-between;margin-bottom:12px}.match-item:last-child{margin-bottom:0}.match-name,.showcase-name,.lion-price{font-weight:600}.match-score{margin-left:8px;font-size:12px;font-weight:600;color:var(--accent)}.match-subtext,.swap-text span,.showcase-detail,.showcase-business,.showcase-lion,.course-copy span,.course-info p,.product-meta,.medal-meta,.history-date,.check-status{font-size:11px}.btn-small,.btn-outline,.btn-swap,.btn-buy,.btn-primary,.btn-secondary,.btn-course,.shelf-btn,.publish-need-btn,.global-reminder-btn,.status-bar-action,.qty-button,.text-button,.qr-placeholder,.toggle-switch{transition:.2s ease}.btn-small,.btn-outline,.btn-swap,.btn-buy,.btn-primary,.btn-secondary,.btn-course,.publish-need-btn,.global-reminder-btn,.shelf-btn,.choice-card{border:none;border-radius:30px;font-size:12px;font-weight:600}.btn-small,.btn-swap,.btn-course,.btn-buy,.publish-need-btn{padding:7px 14px}.btn-swap{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:var(--accent);color:#fff}.btn-primary,.btn-secondary,.global-reminder-btn,.shelf-btn{min-height:42px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-secondary,.btn-outline,.choice-card,.qty-button{background:var(--panel-soft);color:var(--brand);border:1px solid var(--line)}.btn-outline{width:100%;padding:6px 12px;color:var(--accent);border-color:var(--accent)}.btn-primary.wide,.btn-secondary.wide{width:100%}.section-link-row{text-align:right}.course-list{margin-top:12px}.course-copy,.course-info{display:flex;flex-direction:column;gap:2px}.course-item{padding:10px 0;border-bottom:1px solid #edf2f7}.course-item:last-child{border-bottom:none}.course-item-icon,.course-icon i,.showcase-icon i,.match-avatar i,.product-img i,.cart-media i,.medal-icon i{font-size:22px}.attendance-box,.quick-swap{background:var(--accent-soft);border-radius:20px;padding:14px;justify-content:space-between;margin:20px 0}.quick-swap{margin:16px 0 8px}.att-text .label,.reward-badge{color:#b57c1c}.att-text .percent{font-size:24px;font-weight:800;color:#c47a2a}.reward-badge{background:#fff;border-radius:24px;padding:10px 14px;font-size:12px;font-weight:600;box-shadow:0 2px 6px #0000000d}.namecard-swap{background:#f0f4fa;border-radius:20px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.quick-swap>div,.namecard-swap>div{min-width:0}.quick-swap .btn-swap,.namecard-swap .btn-small{flex-shrink:0}.qr-icon{background:#fff;margin:0;width:48px;height:48px;border-radius:16px;font-size:24px}.swap-text{display:flex;flex-direction:column;gap:2px}.swap-address{color:#8a99b0}.utility-pills-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.utility-pill{background:var(--panel-blue);border:none;border-radius:40px;padding:8px 12px;font-size:13px;color:var(--text)}.page-calendar-header{margin:8px 0 16px}.month-year{font-size:20px;font-weight:700;color:var(--brand)}.nav-buttons{display:flex;gap:8px}.nav-buttons button{background:#f0f4fa;border:none;width:36px;height:36px;border-radius:30px;font-size:18px;color:#2c3e66}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{text-align:center;margin-bottom:8px;font-weight:600;font-size:13px;color:var(--muted)}.calendar-grid{gap:6px;margin-bottom:20px}.cal-day{aspect-ratio:1 / 1;background:var(--panel-soft);border-radius:40px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:var(--text);position:relative;border:none}.cal-day.today{background:var(--brand);color:#fff;font-weight:700}.cal-day.has-event{background:var(--accent-soft);border:1px solid var(--accent)}.cal-day.other-month{color:#bec9da}.event-dot{width:5px;height:5px;background:var(--accent);border-radius:10px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.cal-day.today .event-dot{background:#ffe5a3}.auto-reminder-card{padding:14px;margin-top:16px;display:flex;justify-content:space-between}.toggle-switch{width:44px;height:24px;background:#cbd5e1;border-radius:40px;display:flex;align-items:center;padding:2px;border:none}.toggle-knob{width:20px;height:20px;background:#fff;border-radius:20px;transition:transform .2s}.toggle-switch.active .toggle-knob{transform:translate(20px)}.global-reminder-btn{width:100%;margin-top:12px;background:var(--panel-blue);color:var(--brand)}.ai-match-header{border-radius:24px;padding:16px;margin-bottom:16px}.ai-match-header h3,.banner-text h4{margin:0 0 6px;font-size:16px;font-weight:600}.publish-need-btn{margin-top:10px}.match-card{background:var(--panel-soft);border-radius:20px;padding:14px}.business-showcase,.medal-grid{display:flex;overflow-x:auto;gap:14px;padding-bottom:8px;scrollbar-width:thin}.showcase-card,.compact-medal-card{min-width:160px;background:#fff;border-radius:24px;border:1px solid #edf2f7;padding:12px;text-align:center}.showcase-business,.medal-icon,.medal-name,.check-status.absent,.field small{color:var(--accent)}.business-course-item{align-items:center}.course-icon{width:48px;height:48px;font-size:20px}.btn-course{padding:6px 16px}.btn-brand-dark{background:var(--brand)}.search-bar{background:#f0f4fa;border-radius:32px;padding:10px 16px;display:flex;align-items:center;gap:8px;margin-bottom:16px}.search-bar i{color:#8a99b0;font-size:18px}.search-bar input,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:var(--panel-soft);color:var(--text)}.search-bar input{border:none;background:transparent;font-size:14px;outline:none}.banner{border-radius:24px;height:140px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.banner:after{content:"🎁";font-size:80px;opacity:.2;position:absolute;right:10px;bottom:0}.banner-text{text-align:center;z-index:1}.grid-icons,.product-grid,.form-grid,.choice-grid{display:grid;gap:14px}.grid-icons{grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-product-grid{margin-bottom:16px}.product-card{overflow:hidden;box-shadow:0 2px 8px #00000005}.product-img{background:#f9fafe;height:140px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #edf2f7;position:relative}.product-image{width:100%;height:100%;object-fit:cover}.product-symbol{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;color:var(--brand);font-size:48px}.product-symbol:before,.product-symbol:after{content:"";position:absolute;top:0;width:48px;height:28px;border-radius:0 0 18px 18px}.product-symbol:before{left:34%;background:#f5b042}.product-symbol:after{left:calc(34% + 40px);background:#163867}.product-symbol i{position:relative;z-index:1}.product-visual-seedling i,.product-visual-default i{font-size:46px}.product-visual-support i{font-size:44px}.product-visual-tea i,.product-visual-dining i{font-size:42px}.product-visual-tea:before,.product-visual-dining:before,.product-visual-default:before{left:32%}.product-visual-tea:after,.product-visual-dining:after,.product-visual-default:after{left:calc(32% + 40px)}.product-info{padding:12px 10px}.product-title{font-size:14px;font-weight:600;margin-bottom:6px;line-height:1.3;min-height:36px}.price-row,.quantity-row,.summary-row,.total-row,.switch-row,.checkout-summary>div,.attendance-ring-wrap,.stat-item,.reward-progress-head,.editor-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.price-row{align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.lion-price,.cart-amount,.total-row span,.percent-text{font-size:16px;font-weight:800}.old-price{font-size:12px;color:#8a99b0;text-decoration:line-through}.tag{background:var(--accent-soft);font-size:10px;padding:2px 6px;border-radius:999px;display:inline-block}.shelf-btn{width:100%;margin:8px 0 12px;color:var(--brand);font-weight:700;box-shadow:0 4px 8px #f5b04233}.soft-card,.checkout-summary,.loading-card,.auth-card,.empty-card{padding:16px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.section-head h3,.empty-card h3,.auth-card h3{margin:0;font-size:18px;color:var(--brand)}.section-head span{color:var(--accent);font-size:12px;font-weight:700}.form-grid.two-columns,.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:8px}.field span{font-size:13px;font-weight:700}.field input,.field select,.field textarea{border-radius:16px;padding:14px 15px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(11,43,94,.18);border-color:#0b2b5e4d}.choice-card{padding:14px;text-align:center;font-weight:800}.choice-card.is-selected{background:var(--panel-blue)}.cart-media{width:92px;height:92px;border-radius:20px;overflow:hidden;background:var(--panel-soft);display:flex;align-items:center;justify-content:center;color:var(--brand)}.qty-button{width:32px;height:32px;border-radius:50%;background:var(--panel-soft);color:var(--brand);font-weight:800}.text-button{border:none;background:transparent;color:#b24d4d;font-size:13px;font-weight:700}.checkout-summary{display:flex;flex-direction:column;gap:12px}.total-row{padding-top:12px;border-top:1px solid var(--line)}.digital-card{border-radius:28px;padding:20px;margin-bottom:24px;position:relative;overflow:hidden}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.digital-card h3{font-size:20px}.digital-card .title{margin:0 0 8px;font-size:13px;line-height:1.4}.lion-detail,.badge-row,.inline-actions,.editor-actions{display:flex;flex-wrap:wrap;gap:12px}.lion-detail{margin-top:8px;font-size:12px;opacity:.9}.card-address{margin-top:8px;font-size:12px}.qr-placeholder{width:64px;height:64px;border-radius:16px;background:#fff;color:var(--brand);font-size:32px;display:flex;align-items:center;justify-content:center;border:none}.mini-badge{background:#fff3;color:#fff}.stats-card{padding:16px;margin-bottom:20px;background:var(--panel-soft)}.stats-title{margin-bottom:12px;font-size:16px}.attendance-ring-wrap{align-items:center;flex-wrap:wrap}.ring-percent{position:relative;width:100px;height:100px;flex-shrink:0}.percent-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--accent);font-size:26px}.stats-numbers{flex:1}.stat-item{margin-bottom:10px;font-size:14px}.history-name{font-size:14px;font-weight:500}.reward-progress{margin-top:16px}.progress-bar-bg{background:#e2e8f0;border-radius:20px;height:8px;width:100%;margin-top:4px}.progress-fill{background:var(--accent);height:8px;border-radius:20px}.medal-section{margin-bottom:24px}.compact-medal-card{min-width:110px;background:var(--accent-soft)}.medal-icon{font-size:28px;margin-bottom:6px;display:flex;align-items:center;justify-content:center}.medal-name{font-size:11px;font-weight:600}.history-item{padding:12px 0;border-bottom:1px solid #edf2f7}.history-item:last-child{border-bottom:none}.check-status{color:var(--success)}.check-status.absent{color:var(--danger)}.editor-panel{margin-top:16px}.editor-actions{margin-top:10px}.switch-row{padding:10px 0}.auth-card,.empty-card,.loading-card{text-align:center}.auth-card,.empty-card{display:flex;flex-direction:column;gap:12px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(calc(100vw - 24px),450px);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:space-around;align-items:center;padding:8px 16px 20px;border-radius:28px 28px 0 0;z-index:20}.nav-item{text-align:center;font-size:11px;color:#8a99b0;flex:1;display:flex;flex-direction:column;align-items:center}.nav-item i{font-size:20px;display:block;margin-bottom:4px}.nav-item.active{color:var(--accent);font-weight:600}.toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:10px 20px;border-radius:40px;font-size:13px;z-index:1000;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s}.toast.is-visible{opacity:1}@media(max-width:560px){.portal-stage{padding:10px 10px 88px}.app-container{border-radius:32px}.grid-icons{grid-template-columns:repeat(5,1fr);gap:12px}.product-grid,.form-grid.two-columns,.choice-grid,.utility-pills-row{grid-template-columns:minmax(0,1fr)}.quick-grid{grid-template-columns:repeat(4,1fr)}.reward-progress-head,.editor-actions{flex-wrap:wrap}.btn-primary,.btn-secondary,.shelf-btn,.global-reminder-btn{width:100%}.bottom-nav{width:calc(100vw - 20px)}}
