/* Profile geometry follows the 840px-wide reference, including its shallow hero. */
body[data-page="profile"] .hero{height:39.7619cqw;position:relative}
body[data-page="profile"] .hero-image{height:100%;width:100%;object-fit:cover;aspect-ratio:840/334}
body[data-page="profile"] .hero-continuation{display:none}
.profile-topbar{position:absolute;inset:0 0 auto;z-index:4;padding:10.83cqw 2.62cqw 0 3.1cqw;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.profile-topbar button{pointer-events:auto;background:#f9eddaea;color:#14292d;display:flex;align-items:center;justify-content:center;gap:1.9cqw;border-radius:5cqw;height:8.57cqw;padding:0 2.5cqw;font-size:2.62cqw;font-weight:700}
.profile-topbar button svg{width:3.57cqw;height:3.57cqw;stroke-width:2.3}
.profile-topbar .profile-back{width:8.57cqw;padding:0}
.profile-topbar .profile-back svg{width:4.52cqw;height:4.52cqw;stroke-width:2.5}
.profile-shell{position:relative;z-index:2;background:linear-gradient(115deg,#fffdf4,#fcf8ed 62%,#fffdf5);border-radius:2.38cqw 2.38cqw 0 0;margin-top:0;padding:0 2.38095cqw 100px 2.61905cqw}
.profile-identity{height:16.0714cqw;position:relative;display:flex;align-items:center;justify-content:flex-start;gap:9.1667cqw;padding:0;isolation:isolate}
.profile-identity .points{margin-top:.2cqw;padding:1.19cqw 2.02cqw;gap:1.67cqw;min-height:11.31cqw;border-radius:4.05cqw;background:linear-gradient(115deg,#fbf0d7,#faf0dce8);flex-shrink:0;min-width:26.43cqw}
.profile-identity .points b{font-size:3.81cqw;line-height:1.25}
.profile-identity .points small{font-size:2.38cqw;margin-top:.45cqw}
.profile-identity .points img{width:5cqw;height:5cqw}
.profile-identity .points .chevron{font-size:5cqw;color:#748079}
.profile-name-block{padding-top:.75cqw;min-width:0;align-self:center}
.profile-name-row{display:flex;align-items:center;gap:1.31cqw;white-space:nowrap;direction:ltr}
.profile-name-row h1{font-size:5.2381cqw;line-height:1.2;font-weight:850;letter-spacing:-.35px;margin:0;color:#0b2028;direction:rtl;max-width:26.67cqw;overflow:hidden;text-overflow:ellipsis}
.profile-verified{width:3.69cqw;height:3.69cqw;border-radius:38%;background:linear-gradient(130deg,#5bbfaf,#049985);color:#fff;display:grid;place-items:center;transform:rotate(12deg);flex-shrink:0}
.profile-verified svg{width:2.6cqw;height:2.6cqw;stroke-width:2.5;transform:rotate(-12deg)}
.profile-name-block p{margin:.8cqw 0 0;font-size:2.38cqw;color:#65717a;line-height:1.4;white-space:nowrap}
.profile-avatar{position:absolute;left:-.2381cqw;top:-12.2619cqw;width:27.381cqw;height:27.381cqw;z-index:2;border-radius:50%;overflow:hidden;background:#def0e4}
.profile-avatar>img{display:block;width:100%;height:100%;object-fit:cover}
.profile-edit{position:absolute;left:18.81cqw;bottom:1.6667cqw;z-index:3;border-radius:50%;width:7.7381cqw;height:7.7381cqw;background:#fbefd7;color:#0d2426;display:grid;place-items:center;box-shadow:0 1px 0 #fff9}
.profile-edit svg{width:3.57cqw;height:3.57cqw;fill:currentColor;stroke:#fbefd7;stroke-width:1.6}
.profile-personality{margin:0;border-radius:3.21cqw;overflow:hidden;aspect-ratio:798/337;position:relative}
.profile-personality>img{width:100%;height:100%;object-fit:contain;display:block}
.profile-personality[data-empty="true"]{background:#e7f3e9}
.profile-personality-empty-copy{position:absolute;right:4.7%;top:12%;width:49%;text-align:right;color:#0c4850;display:flex;flex-direction:column;align-items:flex-start;gap:1.15cqw}
.profile-personality-empty-copy[hidden]{display:none}
.profile-personality-empty-copy>span{font-size:2.65cqw;font-weight:750;color:#168575;line-height:1.6}
.profile-personality-empty-copy h2{font-size:4.65cqw;font-weight:900;line-height:1.35;letter-spacing:-.25px;margin:0;color:#103c47}
.profile-personality-empty-copy p{font-size:2.7cqw;line-height:1.85;color:#587d76;margin:0}
.profile-summary-grid{display:grid;grid-template-columns:364fr 423fr;gap:1.3095cqw;margin-top:1.9048cqw}
.profile-small-card{height:27.381cqw;border-radius:3.57cqw;background:radial-gradient(ellipse at 15% 5%,#fffef8,#fffcf3);border:1px solid #f4eada;box-shadow:0 .4cqw 1cqw #867c2a04;min-width:0;padding:1.67cqw 1.55cqw 1.43cqw}
.profile-card-heading{display:flex;align-items:center;gap:.85cqw;justify-content:flex-start;font-size:2.62cqw;font-weight:850;line-height:1.3;white-space:nowrap;color:#0d2731;margin:0}
.profile-card-heading>svg{width:3.57cqw;height:3.57cqw;flex-shrink:0;stroke:none;fill:currentColor}
.profile-bars-icon{color:#008e87}
.profile-heart-icon{color:#fa784f}
.profile-trophy-icon{color:#ffb626}
.transport-mix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.19cqw;align-items:end;padding:0 .6cqw;height:calc(100% - 3.406cqw)}
.mix-mode{display:flex;flex-direction:column;align-items:center;min-width:0;gap:.6cqw}
.mix-disc{width:7.14cqw;height:7.14cqw;border-radius:50%;display:grid;place-items:center;background:var(--mix-background)}
.mix-disc img{width:4.52cqw;height:4.52cqw;object-fit:contain}
.mix-bar-space{height:var(--mix-bar-height,5.36cqw);width:7.14cqw;display:flex;align-items:flex-end;justify-content:center}
.mix-bar{height:100%;width:6.67cqw;border-radius:1.25cqw;background:linear-gradient(110deg,var(--mix-color),var(--mix-color-end));box-shadow:inset 0 1px 1px #fff4}
.mix-mode[data-empty="true"] .mix-bar{display:none}
.mix-mode strong{font-size:2.38cqw;font-weight:850;color:#15303b;line-height:1.3;margin-top:.4cqw}
.mix-mode>span:last-child{font-size:1.9cqw;line-height:1.3;color:#617078;white-space:nowrap}
.favorite-route-trigger{display:block;width:100%;text-align:right;background:transparent;padding:0;color:#112d35;border-radius:2cqw}
.profile-route-track{display:flex;align-items:center;justify-content:space-between;position:relative;margin:3.57cqw 2.26cqw 0;direction:rtl;isolation:isolate}
.profile-route-track:before{content:"";position:absolute;left:0;right:0;height:.8333cqw;top:50%;transform:translateY(-50%);background:var(--route-color);z-index:-1}
.profile-route-stop{width:3.21cqw;height:3.21cqw;border: .65cqw solid var(--route-color);border-radius:50%;background:#fffdf5;box-shadow:0 1px 0 #fff}
.profile-route-line{padding:.65cqw 1.9cqw;border-radius:5cqw;background:var(--route-color);color:#fff;font-size:2.86cqw;font-weight:850;min-width:9.52cqw;text-align:center;line-height:1.5;white-space:nowrap}
.profile-route-stations{display:flex;justify-content:space-between;margin:.6cqw .6cqw 0;font-size:2.38cqw;font-weight:750;color:#132a35;line-height:1.6;gap:8px}
.profile-route-note{display:block;position:relative;font-size:2.14cqw;color:#6d747c;line-height:1.5;text-align:center;margin:1.55cqw 3.81cqw 0 0}
.profile-route-note svg{position:absolute;right:-3.57cqw;top:50%;transform:translateY(-50%);height:2.86cqw;width:2.86cqw;stroke-width:2.5;color:#102d35}
.profile-achievements{border-radius:3.57cqw;background:#fffdf4;border:1px solid #f2e6d3;height:28.9286cqw;padding:1.67cqw 2.26cqw 1.55cqw;margin-top:1.7857cqw}
.profile-achievements-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.profile-see-all{padding:0;background:none;color:#163743;display:flex;align-items:center;gap:1cqw;font-size:2.14cqw;white-space:nowrap;border-radius:7px}
.profile-see-all svg{width:2.86cqw;height:2.86cqw;stroke-width:2.4}
.profile-achievements-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4.76cqw;margin:2.14cqw 1.55cqw 0}
.achievement-preview{padding:0;text-align:center;background:none;min-width:0;color:#173542;border-radius:2cqw}
.achievement-preview>img{display:block;width:12.02cqw;height:12.02cqw;object-fit:contain;margin:0 auto .5cqw}
.achievement-preview>span{display:block;font-size:2.38cqw;line-height:1.4;white-space:pre-line;min-height:6.67cqw}
.profile-impact{height:26.7857cqw;margin-top:1.7857cqw;border-radius:3.57cqw;position:relative;overflow:hidden;background:linear-gradient(120deg,#dff0df,#dff0e6 80%);isolation:isolate}
.profile-impact-art{position:absolute;left:0;top:0;height:100%;width:35.5%;object-fit:cover;object-position:left bottom;z-index:-1;mask-image:linear-gradient(to right,#000 85%,transparent);-webkit-mask-image:linear-gradient(to right,#000 85%,transparent)}
.profile-impact-title{position:absolute;right:17.26cqw;top:2.2619cqw;margin:0;display:flex;align-items:center;gap:1.43cqw;font-size:2.38cqw;font-weight:850;line-height:1.4;white-space:nowrap;color:#0d3037}
.profile-impact-title img{width:3.81cqw;height:3.81cqw;object-fit:contain}
.profile-impact-values{position:absolute;left:29.7619cqw;right:17.2619cqw;bottom:1.3095cqw;top:6.7857cqw;border-radius:2.619cqw;background:#fffdf4f5;display:grid;grid-template-columns:146fr 151fr 106fr;padding:1.9cqw .36cqw .6cqw;gap:0}
.impact-stat{text-align:center;color:#285966;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.24cqw;min-width:0}
.impact-stat>img{width:4.76cqw;height:4.76cqw;object-fit:contain;margin-bottom:.3cqw}
.impact-stat strong{font-size:3.3333cqw;line-height:1.25;font-weight:900;color:#0e3442}
.impact-stat span{font-size:2.02cqw;line-height:1.45;white-space:nowrap}
.impact-stat sub{font-size:.7em}
.profile-comparison{position:absolute;right:0;top:2.2619cqw;bottom:1.9048cqw;width:15.8333cqw;border-radius:2.8571cqw;background:#fffdf4f2;padding:1.19cqw .8333cqw .6cqw;text-align:center;display:flex;align-items:center;flex-direction:column;color:#1b414b}
.profile-month{display:flex;align-items:center;gap:.71cqw;font-size:1.9cqw;font-weight:800;white-space:nowrap;direction:ltr;line-height:1.5}
.profile-month svg{width:3.57cqw;height:3.57cqw;fill:#00918a;stroke:none;flex-shrink:0}
.profile-month span{direction:rtl}
.profile-comparison>p{font-size:1.9cqw;line-height:1.7;margin:1.43cqw 0 .95cqw;color:#77828a}
.profile-comparison-divider{width:90%;height:1px;background:#f1ede2;margin:0 0 1.19cqw}
.profile-comparison strong{font-size:3.21cqw;font-weight:900;display:flex;align-items:center;gap:.7cqw;line-height:1.3}
.profile-comparison strong svg{width:2.62cqw;height:2.62cqw;color:#2a9a68;stroke-width:4}
.profile-comparison>span:last-child{font-size:2.02cqw;font-weight:650;line-height:1.5;margin-top:.5cqw;white-space:nowrap}
.profile-modal{padding:22px 18px 18px;width:94%;max-width:405px;max-height:88svh;overflow:auto;background:#fffdf4;border-radius:22px;text-align:right}
.profile-modal-heading{font-size:20px;padding-left:25px;margin:0 0 16px;display:flex;align-items:center;gap:7px;line-height:1.5}
.profile-modal-close{position:absolute;left:12px;top:7px;background:none;color:#728378;font-size:28px;border-radius:6px}
.profile-modal-ok{display:block;margin:17px auto 0;background:#008b7d;color:white;padding:9px 25px;border-radius:13px;font-size:14px;font-weight:700}
.profile-routes-list{display:flex;flex-direction:column;gap:12px}
.route-summary{padding:12px 14px 11px;background:#fffdf5;border:1px solid #f1e4cd;border-radius:20px;box-shadow:0 3px 9px #8b75300a}
.route-summary h3{font-size:14px;color:#213f43;margin:0;line-height:1.5}
.route-summary .profile-route-track{margin:12px 8px 0}
.route-summary .profile-route-track:before{height:4px}
.route-summary .profile-route-stop{width:16px;height:16px;border-width:3px}
.route-summary .profile-route-line{font-size:14px;padding:3px 16px;min-width:65px;border-radius:28px}
.route-summary .profile-route-stations{font-size:13px;margin:3px 0 0}
.route-summary p{font-size:12px;line-height:1.8;margin:7px 0 0;text-align:center;color:#748078}
.all-achievements-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px}
.all-achievement{display:flex;flex-direction:column;align-items:center;padding:9px 5px 8px;min-width:0;border-radius:16px;background:#fcf8eb;border:1px solid #eee7d7;color:#203d45;text-align:center}
.all-achievement>img,.achievement-medallion{width:70px;height:70px;object-fit:contain;margin-bottom:5px}
.achievement-medallion{border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--medal-light),var(--medal-color));border:5px solid var(--medal-edge);box-shadow:inset 0 0 0 2px #fff5;display:grid;place-items:center;position:relative}
.achievement-medallion>img{width:38px;height:38px;object-fit:contain}
.achievement-medallion>svg{width:35px;height:35px;color:#fff;fill:none;stroke:currentColor;stroke-width:2.3}
.achievement-medallion.locked{filter:saturate(.2);opacity:.6}
.all-achievement h3{font-size:12px;line-height:1.5;margin:0 0 3px;font-weight:800}
.all-achievement p{font-size:10px;line-height:1.6;margin:0 0 5px;color:#768074;min-height:32px}
.achievement-progress{width:85%;height:4px;background:#e6e6d9;border-radius:4px;overflow:hidden;margin-top:auto}
.achievement-progress i{display:block;height:100%;background:#008e80;border-radius:4px}
.achievement-progress-label{font-size:10px;line-height:1.7;color:#658073;margin-top:3px;white-space:nowrap}
.profile-editor{display:flex;flex-direction:column;gap:13px}
.profile-editor label{font-size:14px;color:#2c4d4e;display:flex;flex-direction:column;gap:6px}
.profile-editor input[type="text"]{border:1px solid #c9ded3;border-radius:12px;min-height:43px;padding:8px 11px;background:#fffef8;color:#203d45;width:100%}
.profile-editor input[type="file"]{font-size:12px;width:100%;max-width:100%}
.profile-editor-avatar{height:80px;width:80px;border-radius:50%;object-fit:cover;align-self:center;border:4px solid #e4f3e9}
.profile-editor .profile-modal-ok{margin:0 auto}
.profile-editor-feedback{font-size:12px;line-height:1.7;color:#8a4a38;margin:0}
@media(prefers-reduced-motion:reduce){.profile-shell{scroll-behavior:auto}}
body[data-page="profile"] .bottom-nav{height:calc(13.3333cqw + env(safe-area-inset-bottom));min-height:0;padding:.5952cqw 1.905cqw calc(.5952cqw + env(safe-area-inset-bottom));border-radius:4.167cqw 4.167cqw 0 0}
body[data-page="profile"] .bottom-nav button{height:12.1429cqw;min-width:14.3cqw;padding:.8333cqw .6cqw;gap:.357cqw;justify-content:center;font-size:2.38cqw;line-height:1.35;border-radius:4.167cqw}
body[data-page="profile"] .bottom-nav button.active{min-width:18.33cqw}
body[data-page="profile"] .bottom-nav svg,body[data-page="profile"] .bottom-nav img{width:5cqw;height:5cqw}
body[data-page="profile"] .bottom-nav button[data-tab="profile"] svg{fill:currentColor;stroke:currentColor}

.profile-logout{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;width:100%;margin:18px auto 0;background:#fffdf6;border:1px solid #c8ded2;border-radius:16px;color:#a14e3d;font-size:15px;font-weight:750}.profile-logout svg{width:23px;height:23px;stroke:currentColor;fill:none}.profile-logout:hover{background:#fff0e8}.profile-logout:focus-visible{outline:3px solid #008f86;outline-offset:3px}

/* All profile impact labels and figures are live DOM; no bitmap figures. */
.profile-impact-reference{display:none}
.preview-toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);z-index:60;background:#164b40;color:#fff;padding:12px 17px;max-width:360px;width:90%;border-radius:14px;text-align:center;font-size:12px;box-shadow:0 4px 20px #1233}

.transport-mix[data-unavailable="true"] .mix-bar{display:none}
