@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&family=Playfair+Display:wght@700&display=swap";.auth-message{color:#633071;background:#f3e8f5;border-radius:10px;margin-top:12px;padding:10px;font-size:9px;line-height:1.45}.auth-switch{text-align:center;width:100%;display:block}.age-card{display:none!important}.app-shell main:has(>.analysis-upload){flex-direction:column;display:flex}.app-shell main:has(>.analysis-upload)>.page-head{order:0}.app-shell main:has(>.analysis-upload)>.analysis-upload{order:1}:is(.app-shell main:has(>.analysis-upload)>.analysis-age-summary,.app-shell main:has(>.analysis-upload)>.analysis-age-note){order:2}.app-shell main:has(>.analysis-upload)>.analysis-result{order:3}.app-shell main:has(>.analysis-upload)>.analysis-history{order:4}.analysis-age-summary .analysis-start,.analysis-age-note .analysis-start{display:block!important}.analysis-start{margin-top:10px!important}.analysis-age-note .analysis-start{display:block;margin-top:11px!important}.analysis-fields{display:none!important}.analysis-upload:has(.analysis-drop>img):after{content:"✨ A kép feltöltve. Az automatikus adatfelismerés az online elemző kapcsolat bekötése után innen egyetlen gombnyomással indul.";color:#633071;background:#f3e8f5;border-radius:12px;margin-top:10px;padding:11px;font-size:9px;font-weight:700;line-height:1.5;display:block}.analysis-age-summary,.analysis-age-note{background:linear-gradient(135deg,#f5e7f6,#fff2df);border:1px solid #e5cfe5;border-radius:16px;margin-top:14px;padding:14px}.analysis-age-summary>small{letter-spacing:1.2px;color:#786d7c;font-size:7px;font-weight:900}.analysis-age-summary h2{margin:4px 0 9px;font-size:15px}.analysis-age-summary>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.analysis-age-summary>div span{text-align:center;background:#fff;border-radius:11px;padding:10px}.analysis-age-summary b,.analysis-age-summary span small{display:block}.analysis-age-summary b{color:#6d2f83;font-size:18px}.analysis-age-summary span small{color:#786d7c;font-size:7px}.analysis-age-summary p,.analysis-age-note{color:#786d7c;font-size:8px;line-height:1.4}.analysis-age-note b{color:#6d2f83}.age-card{background:linear-gradient(145deg,#fff,#f8edf8);border:1px solid #eadbec;border-radius:17px;grid-template-columns:45px minmax(0,1fr);gap:11px;margin:14px 0;padding:15px;display:grid}.age-card>span{color:#fff;background:linear-gradient(145deg,#ef6aa7,#74308a);border-radius:50%;place-items:center;width:43px;height:43px;font-size:24px;display:grid}.age-card small{letter-spacing:1.1px;color:#786d7c;font-size:8px;font-weight:800}.age-card h2{margin:3px 0;font-size:15px}.age-card p{color:#786d7c;font-size:8px;line-height:1.4}.age-card label{font-size:9px;font-weight:800;display:block}.age-card label input{border:1px solid #ddcedf;border-radius:10px;width:100%;margin-top:5px;padding:10px}.age-zones{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px;display:grid}.age-zones>span{background:#fff;border:1px solid #eaddec;border-radius:11px;padding:9px}.age-zones small,.age-zones b{display:block}.age-zones small{color:#8b758f;font-size:7px}.age-zones b{color:#6d2f83;margin-top:3px;font-size:11px}.age-zones em{color:#8b808e;grid-column:1/-1;font-size:7px}.analysis-upload,.analysis-fields,.analysis-result,.analysis-history{background:#fff;border:1px solid #eee4ef;border-radius:18px;margin-top:14px;padding:15px}.analysis-drop{text-align:center;background:linear-gradient(145deg,#f9eaf5,#fff5ec);border:2px dashed #d8b9dc;border-radius:16px;place-items:center;min-height:220px;display:grid;position:relative;overflow:hidden}.analysis-drop>img{object-fit:contain;background:#111;width:100%;max-height:390px}.analysis-drop>div>span{color:#e85894;font-size:43px;display:block}.analysis-drop h3{margin:5px;font-size:14px}.analysis-drop p{color:#786d7c;font-size:9px}.analysis-drop>label{color:#fff;white-space:nowrap;background:#6d2f83;border-radius:18px;padding:9px 13px;font-size:9px;font-weight:800;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 5px 15px #32143d55}.analysis-drop input{display:none}.analysis-privacy,.analysis-fields>p{color:#786d7c;font-size:9px;line-height:1.45}.metric-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.metric-inputs label,.zone-inputs label{color:#6e6272;font-size:8px;font-weight:800}.metric-inputs input,.zone-inputs input{border:1px solid #ddcedf;border-radius:10px;width:100%;margin-top:4px;padding:10px}.analysis-fields>h3{margin:14px 0 8px;font-size:11px}.zone-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:14px;display:grid}.analysis-result{text-align:center;background:linear-gradient(145deg,#fff7d8,#fff);border:2px solid #edcc68}.analysis-result>span{font-size:35px;display:block}.analysis-result>small{letter-spacing:1.5px;color:#9a6810;font-size:8px;font-weight:900}.analysis-result h2{margin:4px;font-family:Playfair Display,serif;font-size:24px}.analysis-result>p{color:#65596a;font-size:10px;line-height:1.5}.comparison{background:#f4e9f6;border-radius:12px;flex-direction:column;gap:5px;margin:12px 0;padding:11px;display:flex}.comparison strong{color:#6d2f83;font-size:10px}.comparison span{font-size:9px}.analysis-result em{color:#8b808e;font-size:7px}.analysis-history article{background:#faf6fa;border-radius:11px;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:7px;padding:9px;display:grid}.analysis-history article>span{color:#e85894;font-size:21px}.analysis-history strong,.analysis-history small{display:block}.analysis-history strong{font-size:9px}.analysis-history small{color:#786d7c;font-size:8px}.analysis-history b{color:#6d2f83;font-size:10px}.collection-alert{background:linear-gradient(135deg,#fff5bd,#fffaf0);border:2px solid #e2a92e;border-radius:18px;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;margin-top:14px;padding:16px;display:grid;box-shadow:0 9px 25px #b57b1d24}.collection-alert>span{color:#fff;background:#543065;border-radius:50%;place-items:center;width:55px;height:55px;font-size:30px;display:grid;box-shadow:0 5px 15px #4b235044}.collection-alert small{letter-spacing:1.5px;color:#9a6810;font-size:8px;font-weight:900}.collection-alert h2{color:#53305e;margin:3px 0;font-family:Playfair Display,serif;font-size:20px}.collection-alert p{color:#7b5010;margin:4px 0;font-size:10px;font-weight:900}.collection-alert strong{color:#78633b;font-size:8px;line-height:1.4;display:block}.achievement-modal{background:#fff;border:2px solid #e6b94d;border-radius:25px;width:min(100%,390px);position:relative;overflow:hidden;box-shadow:0 25px 70px #0009}.achievement-art{color:#fff;background-image:linear-gradient(#1b09221f,#2b0e3cbd),url(/assets/spinracing-bike-studio.png);background-position:50% 35%;background-size:cover;justify-content:center;align-items:center;min-height:275px;display:flex;position:relative}.achievement-type{text-align:center;letter-spacing:2px;text-shadow:0 2px 8px #000;font-size:10px;font-weight:900;position:absolute;top:22px;left:20px;right:20px}.achievement-big-icon{background:#2a1236e8;border:7px solid #f4cb57;border-radius:50%;place-items:center;width:112px;height:112px;font-size:55px;display:grid;box-shadow:0 0 0 8px #fff3,0 12px 32px #0008}.achievement-green-check{color:#fff;background:#28a64d;border:4px solid #fff;border-radius:50%;place-items:center;width:45px;height:45px;font-size:31px;font-weight:900;display:grid;position:absolute;bottom:62px;right:calc(50% - 76px);box-shadow:0 5px 15px #0006}.achievement-copy{text-align:center;padding:18px 20px 20px}.achievement-copy>small{letter-spacing:1.8px;color:#786d7c;font-size:8px;font-weight:800}.achievement-copy h2{margin:5px 0;font-family:Playfair Display,serif;font-size:25px}.achievement-copy p{color:#786d7c;margin:4px 0 10px;font-size:10px}.achievement-copy>strong{color:#16803a;margin:8px 0;font-size:16px;display:block}.achievement-copy>span{color:#6d2f83;margin-bottom:9px;font-size:9px;display:block}.badge-tile.earned{position:relative;background:#f4fff7!important;border:2px solid #45a663!important}.earned-check{z-index:2;color:#fff;background:#25a34a;border-radius:50%;place-items:center;width:27px;height:27px;font-size:20px;font-weight:900;display:grid;position:absolute;top:5px;right:5px;box-shadow:0 3px 9px #176b3280}.badge-tile .earned-label{color:#167437!important;background:#dff7e6!important;font-size:8px!important;font-weight:900!important;display:inline-block!important}.challenge.completed{position:relative;background:#f4fff7!important;border:2px solid #45a663!important}.challenge.completed small{color:#167437!important;font-size:11px!important;font-weight:900!important}.challenge-check{z-index:2;color:#fff;background:#25a34a;border-radius:50%;place-items:center;width:32px;height:32px;font-size:23px;font-weight:900;display:grid;position:absolute;top:8px;right:8px;box-shadow:0 3px 10px #176b3266}.event-list article.done>b{background:#25a34a;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;color:#fff!important;font-size:21px!important}.reward-image-modal{background:#16091f;border:2px solid #e6b94d;border-radius:24px;flex-direction:column;width:min(100%,430px);max-height:94vh;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 70px #0009}.reward-image-modal>img{object-fit:contain;width:100%;min-height:0;display:block}.image-close{z-index:3;border-radius:50%;width:36px;height:36px;box-shadow:0 3px 12px #0006;color:#4b2360!important;background:#fff!important}.reward-image-actions{background:#fff;padding:10px 14px 14px}.reward-image-actions span{color:#6e6272;text-align:center;margin-bottom:8px;font-size:9px;display:block}.coupon-preview-button{color:#fff;background:#6d2f83;border:0;border-radius:9px;margin-top:7px;padding:7px 9px;font-size:8px;font-weight:800}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}.badge-tile{border-radius:14px!important;min-height:162px!important;padding:11px 6px!important}.badge-tile .badge-icon{width:44px!important;height:44px!important;font-size:20px!important;box-shadow:inset 0 0 0 4px #fff9!important}.badge-tile h3{overflow-wrap:anywhere;margin-top:7px!important;font-size:10px!important;line-height:1.2!important}.badge-tile p{min-height:28px!important;margin-bottom:6px!important;font-size:8px!important;line-height:1.3!important}.badge-tile small{font-size:7px!important}.badge-tile .earned-label{padding:4px 6px!important;font-size:7px!important}@media (width<=350px){.badge-grid{gap:5px!important}.badge-tile{padding:9px 4px!important}.badge-tile h3{font-size:9px!important}}.user-list>div.user-missing{background:#fff4ed;border:1px solid #efb99f}.booked-ok{color:#287044!important}.booked-warning{font-weight:800;color:#a34322!important}.user-actions{flex-direction:column;gap:5px;display:flex}.user-actions select{width:100%}.delete-user{color:#a33d24;background:#fff;border:1px solid #e2a58f;border-radius:8px;padding:5px;font-size:8px;font-weight:800}.header-guest-name{text-overflow:ellipsis;white-space:nowrap;color:#4f285a;text-align:right;max-width:92px;font-size:9px;font-weight:800;overflow:hidden}.header-actions{min-width:0}.profile-shortcut{flex:none}@media (width<=390px){.header-guest-name{max-width:65px}.brand b{font-size:14px!important}.brand small{letter-spacing:1.8px!important}}.identity-card{background:#fff;border:1px solid #eee4ef;border-radius:17px;margin:14px 0;padding:15px}.identity-card>small{letter-spacing:1.2px;color:#786d7c;font-size:8px;font-weight:800}.identity-card h2{margin:4px 0 12px;font-size:16px}.identity-card>label:not(.consent-row){font-size:9px;font-weight:800;display:block}.identity-card>label input{border:1px solid #ddcedf;border-radius:11px;width:100%;margin-top:6px;padding:11px}.booked-name{color:#6d2f83;background:#f2e5f4;border:0;border-radius:10px;margin:8px 0 13px;padding:8px 10px;font-size:9px;font-weight:800}.consent-row{cursor:pointer;background:#faf5fa;border-radius:12px;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:9px;padding:11px;display:grid}.consent-row>input{accent-color:#6d2f83;height:18px;width:18px!important;margin:1px 0!important}.consent-row b,.consent-row small{display:block}.consent-row b{font-size:9px}.consent-row small{color:#786d7c;margin-top:3px;font-size:8px;line-height:1.45}.brand-avatar,.profile-avatar{overflow:hidden}.brand-avatar img,.profile-avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar-actions{align-items:center;gap:7px;margin:5px 0 7px;display:flex}.avatar-actions label,.avatar-actions button{color:#6d2f83;cursor:pointer;background:#f2e5f4;border:0;border-radius:10px;padding:7px 9px;font-size:8px;font-weight:800}.avatar-actions input{display:none}.page-head{text-shadow:0 2px 8px #120716;background-color:#321537!important;background-image:linear-gradient(#16071b12 0%,#2e123342 48%,#27102bd9 100%),url(/assets/spinracing-bike-studio.png)!important;background-position:top!important;background-repeat:no-repeat!important;background-size:100%!important;flex-direction:column!important;justify-content:flex-end!important;min-height:170px!important;display:flex!important}.page-head h1{margin-bottom:3px!important}.page-head p{margin-top:3px!important}.brand-avatar{color:#fff;background:linear-gradient(145deg,#ff7caf,#7e3ba0);border:2px solid #fff;border-radius:50%;flex:0 0 44px;place-items:center;width:44px;height:44px;font-size:11px;font-weight:800;display:grid;box-shadow:0 4px 14px #6d2f8355}.profile-shortcut{color:#6d2f83;background:#fff;border:1px solid #e0cfe3;border-radius:15px;padding:7px 10px;font-size:9px;font-weight:800}.login-screen{background-position:50% 18%!important;justify-content:flex-end!important;padding:20px 16px 24px!important;position:relative!important}.login-logo{text-shadow:0 3px 14px #000,0 1px 4px #000;z-index:2!important;top:max(22px, env(safe-area-inset-top))!important;margin:0!important;position:absolute!important;left:16px!important;right:16px!important}.login-logo h1{margin:0!important;font-size:30px!important}.login-logo>small{font-size:9px!important;font-weight:800!important}.login-card{z-index:2!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#fffffff0!important;border:1px solid #fff9!important;border-radius:22px!important;width:min(100%,370px)!important;padding:18px 20px!important;position:relative!important;box-shadow:0 14px 38px #16091f66!important}.login-card h2{margin:3px 0!important;font-size:23px!important}.login-card>p,.demo-confirm p{margin:6px 0!important;line-height:1.4!important}.login-card label{margin:12px 0!important}.login-card input{padding:11px!important}.login-help{margin-top:11px!important;padding:8px 10px!important}@media (height<=700px){.login-logo{top:12px!important}.login-logo h1{font-size:25px!important}.login-card{padding:14px 18px!important}.login-help{display:none!important}}.brand-logo{object-fit:cover;border:2px solid #fff;border-radius:50%;width:44px;height:44px;box-shadow:0 4px 14px #6d2f8355}.welcome{position:relative;background-image:linear-gradient(90deg,#1b1023b8 0%,#3e173d82 52%,#3511292e 100%),url(/assets/spinracing-virag-feri.png)!important;background-position:50% 58%!important;background-size:cover!important}.welcome>div{z-index:1;text-shadow:0 2px 8px #160719;position:relative}.hero-booking{color:#64246e;text-shadow:none;background:#fff;border-radius:18px;margin-top:14px;padding:9px 13px;font-size:10px;font-weight:800;text-decoration:none;display:inline-block;box-shadow:0 5px 16px #210d2b55}.booking-fab{z-index:35;color:#fff;background:linear-gradient(100deg,#ec4f9b,#ff8b42);border:2px solid #fff;border-radius:22px;align-items:center;gap:7px;padding:11px 15px;font-size:11px;font-weight:800;text-decoration:none;display:flex;position:fixed;bottom:82px;right:max(14px,50vw - 246px);box-shadow:0 9px 25px #bb3e7c66}.booking-fab span{font-size:15px}.login-logo>img{display:none}.login-screen{background-image:linear-gradient(150deg,#160a1f75,#45174468 65%,#6c203c55),url(/assets/spinracing-booking.jpg)!important;background-position:50%!important;background-size:cover!important}.reward-vault{background:linear-gradient(145deg,#fff8e9,#fff);border:1px solid #f0d9a8;border-radius:17px;margin-top:16px;padding:15px}.reward-vault>p{color:var(--muted);font-size:9px}.reward-vault>button{text-align:left;background:#fff;border:1px dashed #d6a847;border-radius:12px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;margin-top:8px;padding:10px;display:grid}.reward-vault>button>span{font-size:22px}.reward-vault strong,.reward-vault small{display:block}.reward-vault strong{font-size:10px}.reward-vault small{color:var(--muted);font-size:8px}.reward-vault b{color:#8a6120;font-size:8px}.reward-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#26152ed9;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.reward-coupon{text-align:center;color:#4b3010;background:radial-gradient(circle at 10% 10%,#fff5c7,#0000 25%),linear-gradient(155deg,#fffdf7,#ffe9bc);border:2px dashed #c98b25;border-radius:24px;width:min(100%,380px);padding:26px 22px;position:relative;box-shadow:0 25px 70px #0007}.reward-coupon:before,.reward-coupon:after{content:"";background:#26152e;border-radius:50%;width:22px;height:22px;position:absolute;top:55%}.reward-coupon:before{left:-12px}.reward-coupon:after{right:-12px}.coupon-close{color:#73511c;background:0 0;border:0;font-size:24px;position:absolute;top:8px;right:10px}.coupon-spark{color:#c78c27;letter-spacing:6px}.coupon-icon{margin:10px;font-size:46px;display:block}.reward-coupon>small{letter-spacing:2px;font-size:9px;font-weight:800}.reward-coupon h2{margin:6px;font-family:Playfair Display,serif;font-size:25px}.reward-coupon>p{font-size:11px;line-height:1.5}.coupon-hours{border-top:1px solid #d9b66f;border-bottom:1px solid #d9b66f;justify-content:center;align-items:center;gap:9px;margin:16px 0;padding:13px;display:flex}.coupon-hours strong{font-size:42px}.coupon-hours span{text-align:left;font-size:10px;font-weight:800}.coupon-code{color:#fff4d4;letter-spacing:1px;background:#4b3010;border-radius:6px;padding:6px 10px;font-family:monospace;font-size:10px;display:inline-block}.coupon-note{color:#80683e;font-size:8px!important}.reward-admin-list{flex-direction:column;gap:8px;display:flex}.reward-admin-list article{background:#fff8e8;border:1px solid #efd59e;border-radius:12px;grid-template-columns:42px minmax(0,1fr) 30px;align-items:center;gap:9px;padding:11px;display:grid}.reward-admin-list article>span{font-size:23px}.reward-admin-list strong,.reward-admin-list small{display:block}.reward-admin-list strong{font-size:10px}.reward-admin-list small{color:var(--muted);margin-top:3px;font-size:8px}.reward-admin-list p{color:#765322;margin:5px 0 0;font-size:8px}.reward-admin-list article>b{color:#a46c13;text-align:center;font-size:16px}.home-events{flex-direction:column;gap:8px;display:flex}.home-events>div{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:40px minmax(0,1fr) 35px;align-items:center;gap:9px;padding:11px;display:grid}.home-events>div>span{background:#f8eaf5;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.home-events strong,.home-events small{display:block}.home-events strong{font-size:11px}.home-events small{color:var(--muted);margin-top:3px;font-size:8px}.home-events b{color:var(--purple);text-align:right;font-size:10px}.header-actions{align-items:center;gap:7px;display:flex}.admin-pill{color:var(--purple);background:#f2e5f4;border:0;border-radius:15px;padding:7px 10px;font-size:9px;font-weight:800}.account-card{border:1px solid var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;margin:13px 0;padding:13px;display:flex}.account-card small,.account-card strong,.account-card span{display:block}.account-card small{color:var(--muted);font-size:8px}.account-card strong{margin:3px 0;font-size:11px}.account-card span{color:var(--purple);font-size:9px}.account-card button,.admin-top button,.admin-welcome button{color:var(--purple);background:#fff;border:1px solid #dccbdf;border-radius:10px;padding:8px 10px;font-size:9px;font-weight:800}.login-screen{color:#fff;background:radial-gradient(circle at 80% 10%,#db6da055,#0000 30%),linear-gradient(150deg,#4f205f,#8b3e89 65%,#ce638e);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:28px;display:flex}.login-logo{text-align:center;margin-bottom:25px}.login-logo .brand-mark{margin:auto}.login-logo h1{margin:10px 0 0;font-family:Playfair Display,serif}.login-logo>small{letter-spacing:3px;font-size:8px}.login-card{width:min(100%,390px);color:var(--ink);background:#fff;border-radius:22px;padding:24px;box-shadow:0 20px 50px #28122f55}.login-card h2{margin:5px 0;font-family:Playfair Display,serif;font-size:27px}.login-card>p,.demo-confirm p{color:var(--muted);font-size:11px;line-height:1.5}.login-card label{margin:18px 0;font-size:10px;font-weight:800;display:block}.login-card input{border:1px solid #ddcedf;border-radius:11px;width:100%;margin-top:7px;padding:13px;display:block}.login-help{color:var(--muted);background:#f7f0f7;border-radius:10px;margin-top:16px;padding:10px;font-size:9px;line-height:1.5}.demo-confirm{text-align:center}.demo-confirm>span{font-size:30px}.demo-confirm h3{margin:7px 0}.text-button{color:var(--purple);background:0 0;border:0;margin-top:10px;font-size:10px}.admin-shell{background:#f8f2f8;max-width:720px;min-height:100vh;margin:auto}.admin-top{color:#fff;background:linear-gradient(120deg,#552264,#954390);justify-content:space-between;align-items:center;padding:20px;display:flex}.admin-top h1{margin:3px 0;font-family:Playfair Display,serif;font-size:25px}.admin-welcome{border:1px solid var(--line);background:#fff;border-radius:17px;justify-content:space-between;align-items:center;margin-top:17px;padding:15px;display:flex}.admin-welcome small{color:var(--muted);font-size:8px}.admin-welcome h2{margin:4px 0;font-size:13px}.admin-welcome p{color:var(--purple);margin:0;font-size:9px}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0;display:grid}.admin-panel{border:1px solid var(--line);background:#fff;border-radius:17px;margin-top:12px;padding:15px}.user-list{flex-direction:column;gap:8px;display:flex}.user-list>div{background:#faf6fa;border-radius:11px;grid-template-columns:38px minmax(0,1fr) 92px;align-items:center;gap:8px;padding:9px;display:grid}.user-list strong,.user-list small{display:block}.user-list strong{text-overflow:ellipsis;font-size:10px;overflow:hidden}.user-list small{color:var(--muted);font-size:8px}.user-list select{background:#fff;border:1px solid #ddcedf;border-radius:8px;min-width:0;padding:7px;font-size:9px}.panel-text,.empty,.prototype-warning{color:var(--muted);font-size:10px;line-height:1.5}.hidden-file{display:none}.prototype-warning{color:#7b5422;background:#fff2dd;border-radius:10px;padding:10px}.own-profile-note{color:#623272;background:#f3e9f5;border-radius:12px;margin:14px 0;padding:11px 12px;font-size:10px;line-height:1.45}.demo-banner{color:#5a315d;background:linear-gradient(100deg,#fff0bf,#ffe2ef);border:1px solid #f1c878;border-radius:13px;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;padding:11px 12px;display:flex}.demo-banner b,.demo-banner span{display:block}.demo-banner b{letter-spacing:1px;font-size:10px}.demo-banner span{margin-top:2px;font-size:8px}.demo-banner a{color:var(--purple);background:#fff;border-radius:10px;flex:none;padding:7px 9px;font-size:8px;font-weight:800;text-decoration:none}.bottom-nav.demo-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}.demo-watch-card,.demo-comparison{border:1px solid var(--line);background:#fff;border-radius:18px;margin:14px 0;padding:16px;box-shadow:0 8px 24px #6d2f830c}.demo-watch-card>small,.demo-comparison>small{letter-spacing:1.3px;color:var(--muted);font-size:8px;font-weight:800}.demo-watch-card>p,.demo-comparison>p{color:var(--muted);font-size:10px;line-height:1.5}.demo-watch-screen{color:#fff;text-align:center;background:radial-gradient(circle at 70% 15%,#e76aa155,#0000 30%),linear-gradient(145deg,#331d3d,#7d347b);border:9px solid #28222c;border-radius:38px;width:170px;margin:16px auto;padding:18px;box-shadow:0 12px 25px #30163635}.demo-watch-screen>span{color:#ff7baa;font-size:22px;display:block}.demo-watch-screen>b{font-size:42px;line-height:1;display:block}.demo-watch-screen>small{letter-spacing:1px;font-size:8px}.demo-watch-screen>div{justify-content:center;gap:13px;margin-top:13px;display:flex}.demo-watch-screen em{font-size:9px;font-style:normal}.demo-analysis-result{margin-top:14px}.demo-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0;display:grid}.demo-metric-grid span{text-align:center;background:#f8eff8;border-radius:12px;padding:11px}.demo-metric-grid small,.demo-metric-grid b{display:block}.demo-metric-grid small{color:var(--muted);font-size:7px}.demo-metric-grid b{color:var(--purple);margin-top:4px;font-size:12px}.demo-zone>div{background:#efe4ef;border-radius:10px;height:8px;overflow:hidden}.demo-zone>div span{background:linear-gradient(90deg, var(--pink), var(--purple));border-radius:10px;height:100%;display:block}.demo-zone>b,.demo-zone>small{margin-top:6px;display:block}.demo-zone>b{font-size:11px}.demo-zone>small{color:var(--muted);font-size:8px}.demo-comparison h2{margin:5px 0 12px;font-size:17px}.demo-comparison>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.demo-comparison>div span{text-align:center;background:#f7edf7;border-radius:12px;padding:10px 5px}.demo-comparison>div b,.demo-comparison>div small{display:block}.demo-comparison>div b{color:var(--purple);font-size:11px}.demo-comparison>div small{color:var(--muted);margin-top:3px;font-size:7px}.demo-history{margin-bottom:20px}.admin-user-sync{color:var(--purple);background:#f5edf6;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin:0 0 11px;padding:9px 10px;font-size:8px;display:flex}.admin-user-sync button{color:var(--purple);background:#fff;border:1px solid #dac9de;border-radius:8px;flex:none;padding:6px 8px;font-size:8px;font-weight:800}.coach-view-banner{color:#fff;background:#34203b;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin:12px 0;padding:10px 12px;display:flex}.coach-view-banner b,.coach-view-banner span{display:block}.coach-view-banner b{letter-spacing:.8px;font-size:9px}.coach-view-banner span{color:#e5cfeb;text-align:right;font-size:8px}.admin-view-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.coach-admin-summary{background:linear-gradient(110deg,#fff0bd,#f8ddec);border:1px solid #edcf9a;border-radius:15px;align-items:center;gap:11px;margin:12px 0;padding:13px;display:flex}.coach-admin-summary>span{font-size:28px}.coach-admin-summary small,.coach-admin-summary b{display:block}.coach-admin-summary small{letter-spacing:1.1px;color:var(--muted);font-size:7px}.coach-admin-summary b{color:var(--purple);margin:3px 0;font-size:12px}.coach-admin-summary p{color:var(--muted);margin:0;font-size:8px}.password-card{border:1px solid var(--line);background:#fff;border-radius:14px;margin:13px 0;padding:15px}.password-card>small{letter-spacing:1.3px;color:var(--muted);font-size:8px}.password-card h2{margin:4px 0;font-size:16px}.password-card p{color:var(--muted);font-size:10px;line-height:1.45}.password-card label{margin:11px 0;font-size:10px;font-weight:800;display:block}.password-card input{border:1px solid #ddcedf;border-radius:10px;width:100%;margin-top:6px;padding:11px;display:block}.password-status{color:var(--purple);background:#f1e9f4;border-radius:9px;margin-top:10px;padding:9px;font-size:10px;font-weight:700}.event-guide{margin-top:25px}.event-intro{color:var(--muted);background:#f6edf7;border-radius:12px;padding:12px;font-size:10px;line-height:1.55}.event-list{flex-direction:column;gap:8px;display:flex}.event-list article{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:9px;padding:11px;display:grid}.event-list article>span{background:#f8edf5;border-radius:11px;place-items:center;width:38px;height:38px;font-size:19px;display:grid}.event-list article h3{margin:0 0 3px;font-size:12px}.event-list article p{color:var(--muted);margin:0;font-size:9px;line-height:1.4}.event-list article>b{color:var(--purple)}.event-list article.done{background:#fff7fd;border-color:#b765ae}.event-example{color:#fff;background:#34203b;border-radius:12px;margin-top:10px;padding:12px}.event-example small{letter-spacing:1.4px;color:#d9bedf;margin-bottom:5px;font-size:8px;display:block}.event-example code{font-size:11px}.app-shell{width:100%!important;max-width:min(520px,100vw)!important}.app-shell main,.level-card,.stat-grid,.next-badge,.mission{width:100%;max-width:100%}.level-card{overflow:hidden}.app-shell{overflow-x:hidden!important}.level-head>*,.between>*,.mission>div,.next-badge>div{min-width:0}.level-card>.between span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}.stat,.bottom-nav button{min-width:0}.stat small{overflow-wrap:anywhere;display:block}.next-badge{grid-template-columns:74px minmax(0,1fr)!important}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.challenge{grid-template-columns:52px minmax(0,1fr)!important}.rank-row{grid-template-columns:35px 38px minmax(0,1fr) auto!important}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.import-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}:root{color:#28172e;font-synthesis:none;--purple:#6d2f83;--purple2:#9a4caf;--pink:#ee6aa7;--peach:#ffb67c;--ink:#28172e;--muted:#786d7c;--card:#fff;--line:#eee4ef;background:#f4edf4;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 20% 0,#f7dcef 0,#0000 30%),#f4edf4;min-width:320px;margin:0}button,select,input{font:inherit}.app-shell{background:#fff8fc;max-width:520px;min-height:100vh;margin:auto;padding-bottom:92px;box-shadow:0 0 50px #4b205423}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#fff8fcdd;border-bottom:1px solid #f3e8f0;justify-content:space-between;align-items:center;height:76px;padding:12px 20px;display:flex;position:sticky;top:0}.brand{text-align:left;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg, var(--pink), var(--purple));border-radius:50% 50% 48% 52%;place-items:center;width:42px;height:42px;font-family:Playfair Display,serif;font-size:25px;display:grid;box-shadow:0 5px 15px #9a4caf55}.brand b{font-family:Playfair Display,serif;font-size:17px;display:block}.brand small{letter-spacing:2.7px;color:var(--purple);font-size:8px;font-weight:800}.avatar,.mini-avatar{color:var(--purple);background:linear-gradient(145deg,#fbd7e9,#e8c9ee);border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.avatar{border:2px solid #fff;width:42px;height:42px;box-shadow:0 3px 12px #6d2f8325}main{padding:0 18px 28px}.welcome{color:#fff;background:radial-gradient(circle at 90% 20%,#f6a2bf 0,#0000 35%),linear-gradient(135deg,#542365,#8e3d8d 60%,#dc648f);justify-content:space-between;align-items:center;min-height:184px;margin:0 -18px 20px;padding:30px 22px 34px;display:flex;overflow:hidden}.welcome h1,.page-head h1{margin:7px 0;font-family:Playfair Display,serif;font-size:30px;line-height:1.08}.welcome p{color:#fceafa;max-width:270px;margin:0;font-size:13px;line-height:1.5}.eyebrow{letter-spacing:2px;opacity:.82;font-size:10px;font-weight:800}.bike-orbit{border:1px solid #fff5;border-radius:50%;flex:0 0 78px;place-items:center;width:78px;height:78px;font-size:34px;display:grid;transform:translate(16px);box-shadow:0 0 0 13px #fff1,0 0 0 28px #fff1}.level-card,.next-badge,.mission,.profile-card,.chart-card,.import-card{border:1px solid var(--line);background:#fff;border-radius:18px;box-shadow:0 8px 24px #6d2f830c}.level-card{margin-top:-34px;padding:18px;position:relative}.level-head,.between,.section-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.level-head h2{margin:3px 0 12px;font-size:18px}.level-head small{letter-spacing:1.4px;color:var(--muted);font-size:9px;font-weight:800}.level-head strong{color:var(--purple);font-size:23px}.level-head strong small{font-size:11px}.progress{background:#f0e5ef;border-radius:10px;height:7px;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--pink), var(--purple2));border-radius:10px;height:100%;transition:width .5s;display:block}.level-card>.between{color:var(--muted);margin-top:7px;font-size:9px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 28px;display:grid}.stat{text-align:center;border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px 4px}.stat span{font-size:19px;display:block}.stat strong{margin:4px 0;font-size:17px;display:block}.stat small{color:var(--muted);font-size:8px}.section-title{margin:25px 2px 12px}.section-title h2{margin:0;font-size:16px}.section-title button{color:var(--purple);background:0 0;border:0;font-size:11px;font-weight:700}.next-badge{grid-template-columns:74px 1fr;align-items:center;gap:13px;padding:16px;display:grid}.next-badge h3,.mission h3,.challenge h3,.badge-tile h3{margin:0 0 3px;font-size:13px}.next-badge p,.mission p,.challenge p,.badge-tile p{color:var(--muted);margin:0 0 10px;font-size:10px;line-height:1.45}.next-badge small{text-align:right;color:var(--muted);margin-top:4px;font-size:9px;display:block}.badge-icon{background:linear-gradient(145deg,#fff1c7,#ffcc8f);border-radius:50%;place-items:center;width:56px;height:56px;margin:auto;font-size:25px;display:grid;box-shadow:inset 0 0 0 5px #fff9}.badge-icon.large{width:70px;height:70px;font-size:31px}.mission{justify-content:space-between;align-items:center;padding:14px;display:flex}.mission>div{align-items:center;gap:10px;display:flex}.mission-icon,.challenge-icon{background:#f6e8f7;border-radius:13px;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.mission p{margin:0}.mission>strong{color:var(--purple);white-space:nowrap;font-size:11px}.data-note{text-align:center;color:#a299a5;margin:28px 0;font-size:8px}.bottom-nav{z-index:30;width:min(520px,100%);height:74px;padding:7px 7px max(7px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);background:#fffdfef2;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 25px #4e205015}.bottom-nav button{color:#9c919f;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:3px;display:flex}.bottom-nav span{font-size:19px}.bottom-nav small{font-size:8px}.bottom-nav button.active{color:var(--purple);background:#f7edf7;font-weight:800}.page-head{color:#fff;background:linear-gradient(135deg,#6d2f83,#b6539a);margin:0 -18px 24px;padding:28px 22px}.page-head p{color:#f8e8f5;margin:8px 0 0;font-size:12px;line-height:1.5}.badge-grid{grid-template-columns:repeat(2,1fr);gap:11px;display:grid}.badge-tile{border:1px solid var(--line);text-align:center;background:#fff;border-radius:17px;min-height:190px;padding:17px 11px}.badge-tile.locked{background:#fbf8fb}.badge-tile.locked .badge-icon{filter:grayscale(.7);opacity:.65}.badge-tile h3{margin-top:10px}.badge-tile p{min-height:30px}.badge-tile small{color:var(--muted);margin-top:5px;font-size:9px;display:block}.earned-label{color:#6c3980;background:#f4e8f7;border-radius:12px;padding:5px 8px;font-size:9px;font-weight:800;display:inline-block}.challenge-list{flex-direction:column;gap:11px;display:flex}.challenge{border:1px solid var(--line);background:#fff;border-radius:17px;grid-template-columns:52px 1fr;gap:10px;padding:15px;display:grid}.challenge .between b{color:var(--purple);background:#f5e8f7;border-radius:12px;padding:5px;font-size:9px}.challenge small{text-align:right;color:var(--muted);margin-top:5px;font-size:9px;display:block}.chips{scrollbar-width:none;gap:7px;margin:0 -18px 15px;padding:0 18px 5px;display:flex;overflow:auto}.chips button{white-space:nowrap;color:var(--muted);background:#fff;border:1px solid #e6d8e7;border-radius:20px;padding:8px 12px;font-size:10px}.chips button.active{background:var(--purple);color:#fff;border-color:var(--purple)}.rank-list{flex-direction:column;gap:7px;display:flex}.rank-row{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:35px 38px 1fr auto;align-items:center;gap:9px;padding:10px;display:grid}.rank-row.me{background:#fff6fc;border:2px solid #b660ac}.place{text-align:center;font-weight:800}.place.p1{color:#d99d20}.place.p2{color:#7e858e}.place.p3{color:#b86c42}.mini-avatar{width:36px;height:36px}.rank-row strong{font-size:12px;display:block}.rank-row small{color:var(--muted);margin-top:2px;font-size:8px;display:block}.rank-row>b{color:var(--purple);font-size:13px}.privacy{color:var(--muted);background:#f4edf5;border-radius:10px;margin-top:14px;padding:10px;font-size:9px}.profile-card{align-items:center;gap:14px;padding:15px;display:flex}.profile-avatar{background:linear-gradient(145deg, var(--pink), var(--purple));color:#fff;border-radius:50%;place-items:center;width:62px;height:62px;font-weight:800;display:grid}.profile-card small{letter-spacing:1.4px;color:var(--muted);font-size:8px}.profile-card h2{margin:2px 0;font-size:17px}.profile-card p{color:var(--muted);margin:0;font-size:10px}.select-label{color:var(--muted);margin:16px 0;font-size:10px;font-weight:800;display:block}.select-label select{width:100%;color:var(--ink);background:#fff;border:1px solid #dbcddd;border-radius:12px;margin-top:6px;padding:12px;display:block}.detail-grid{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.detail{border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px}.detail small{color:var(--muted);margin-bottom:5px;font-size:9px;display:block}.detail strong{font-size:12px}.chart-card,.import-card{margin-top:16px;padding:16px}.bars{align-items:end;gap:9px;height:155px;padding-top:24px;display:flex}.bars>div{flex-direction:column;flex:1;justify-content:end;align-items:center;height:100%;display:flex;position:relative}.bars span{background:linear-gradient(var(--pink), var(--purple));border-radius:8px 8px 2px 2px;width:70%;max-width:32px;min-height:5px}.bars b{font-size:9px;position:absolute;top:-17px}.bars small{color:var(--muted);margin-top:5px;font-size:8px}.import-card h2{margin:5px 0;font-size:17px}.import-card p{color:var(--muted);font-size:10px;line-height:1.5}.import-card input{display:none}.primary{background:linear-gradient(90deg, var(--purple), var(--pink));color:#fff;border:0;border-radius:12px;width:100%;padding:12px;font-size:12px;font-weight:800}.primary:disabled{opacity:.6}.import-stats{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;display:grid}.import-stats span{text-align:center;background:#f8f1f8;border-radius:10px;padding:9px;font-size:12px;font-weight:800}.import-stats small{color:var(--muted);font-size:7px;font-weight:600;display:block}.import-card details{color:var(--muted);margin-top:10px;font-size:9px}.notice{z-index:15;color:#25613a;background:#e9f7ed;border-radius:12px;margin:8px 0;padding:12px 35px 12px 12px;font-size:10px;position:sticky;top:84px;box-shadow:0 6px 20px #0001}.notice button{color:inherit;background:0 0;border:0;font-size:18px;position:absolute;top:5px;right:7px}.loading{text-align:center;min-height:100vh;color:var(--purple);place-content:center;display:grid}.spinner{border:3px solid #eadbea;border-top-color:var(--purple);border-radius:50%;width:38px;height:38px;margin:auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=700px){.app-shell{border-radius:28px;min-height:calc(100vh - 40px);margin:20px auto;overflow:hidden}.bottom-nav{border-radius:0 0 28px 28px;bottom:20px}}
