@import url('https://fonts.googleapis.com/css2?family=Sofia+Sans+Extra+Condensed:ital,wght@1,800;1,900&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');

:root {
  --canvas: #0E0E10;
  --ink: #F5F3EF;
  --blue: #4DA3FF;
  --coral: #ed7653;
  --mint: #78cf95;
  --lilac: #232328;
  --line: rgba(255,255,255,.08);
  --muted: #A6A6AE;
  --muted-2: #6E6E76;
  --white: #18181B;
  --radius: 22px;
  --display: 'Sofia Sans Extra Condensed', sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
  font-family: 'Manrope', system-ui, sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #0E0E10; overscroll-behavior-y:none; touch-action:manipulation; -webkit-text-size-adjust:100%; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
body { margin: 0; min-width: 320px; min-height: 100dvh; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y:none; touch-action:manipulation; background: #0E0E10; }

.app-shell { min-height: 100dvh; display: block; }
.app { width: 100%; min-height: 100dvh; max-width: 480px; margin: 0 auto; position: relative; overflow: visible; background: var(--canvas); }

/* Safari amplia automaticamente campos menores que 16px ao receber foco. */
@supports (-webkit-touch-callout:none) {
  input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='color']),
  textarea,
  select { font-size:16px!important; }
}
.boot-screen { min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:17px; background:radial-gradient(circle at 72% 18%,rgba(var(--app-accent-rgb),.13),transparent 28%),var(--canvas); }.boot-screen .brand-lockup { font-size:28px; }.boot-screen .brand-lockup img { width:42px; height:42px; }.boot-screen p { color:var(--muted); font-size:12px; font-weight:700; }.boot-pulse { width:28px; height:3px; overflow:hidden; border-radius:999px; background:#38383c; }.boot-pulse::after { content:''; display:block; width:48%; height:100%; border-radius:inherit; background:var(--blue); animation:boot-pulse 1s ease-in-out infinite; } @keyframes boot-pulse { 50% { transform:translateX(110%); } }
.session-error-screen { min-height:100dvh; padding:28px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:radial-gradient(circle at 50% 32%,rgba(var(--app-accent-rgb),.12),transparent 34%),var(--canvas); }
.session-error-screen .brand-lockup { margin-bottom:34px; font-size:26px; }
.session-error-icon { width:54px; height:54px; display:grid; place-items:center; border:1px solid #57575b; border-radius:50%; background:#242428; color:var(--blue); }
.session-error-screen h1 { max-width:330px; margin:18px 0 7px; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:31px; line-height:1; text-transform:uppercase; }
.session-error-screen p { max-width:330px; margin:0 0 24px; color:var(--muted); font-size:12px; line-height:1.55; }
.session-error-screen .checkin-cta { width:min(100%,330px); }
.session-error-screen .session-browser-hint { max-width:330px; margin-top:18px; color:var(--muted); font-size:11px; line-height:1.5; }
.screen { padding: 22px 20px 112px; min-height: 100dvh; }
.screen.enter { animation: screen-in .25s ease-out; }
@keyframes screen-in { from { opacity: .35; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom: 31px; }
.brand { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size: 20px; font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.brand b { color: var(--blue); }
.top-actions, .row { display:flex; align-items:center; gap: 10px; }
.icon-btn { border: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--white); color: var(--ink); display:grid; place-items:center; position:relative; }
.notification-dot { width:8px; height:8px; border-radius:50%; background:var(--coral); position:absolute; top:7px; right:7px; border: 2px solid #fff; }
.avatar { object-fit:cover; border-radius:50%; width:42px; height:42px; background:#dce3fa; }
.avatar-initial { display:grid; place-items:center; flex:0 0 auto; background:#2e2e32; color:var(--app-accent-light); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:15px; font-weight:800; letter-spacing:.04em; }
.avatar.sm { width:36px; height:36px; }
.avatar-button { display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; }
.avatar-button:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.avatar.xs { width:27px; height:27px; border:2px solid #fff; margin-left:-8px; }
.avatar.xs:first-child { margin-left:0; }

h1,h2,h3,p { margin: 0; }
h1 { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size: 43px; font-weight:800; letter-spacing:.005em; line-height:.93; text-transform:uppercase; }
h1 em { font-style:normal; color:var(--blue); }
h2 { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:24px; font-weight:700; letter-spacing:.005em; text-transform:uppercase; }
.subtitle { color:var(--muted); margin-top:8px; font-size:15px; }
.section-head { display:flex; align-items:center; justify-content:space-between; margin:32px 0 13px; }
.text-link { color:var(--blue); background: none; border:0; font-weight:700; font-size:13px; padding:0; }

.rhythm-label { display:flex; align-items:center; gap:8px; margin: 30px 0 12px; font-size:15px; font-weight:700; }
.rhythm-label span { color:var(--blue); }
.week-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:7px; }
.day { min-width:0; }
.day-label { display:block; text-align:center; margin-bottom:7px; color:var(--muted); font-size:11px; font-weight:700; }
.day-cell { aspect-ratio: .75; border-radius:13px; overflow:hidden; position:relative; background: var(--lilac); display:grid; place-items:center; border:1px solid transparent; }
.day-cell img { width:100%; height:100%; object-fit:cover; }
.day-cell .check { position:absolute; right:4px; bottom:4px; width:18px; height:18px; border-radius:50%; background:var(--blue); color:white; display:grid; place-items:center; font-size:11px; }
.day-cell.today-prompt { background:var(--coral); color:white; font-size:24px; }
.day-cell.frozen { background:#276e96; border-color:#73c7ec; color:#f4fbff; }
.day-cell.future { border:2px dashed #bac2dc; color:#92a0c9; font-size:20px; }

.checkin-cta { margin-top:25px; width:100%; min-height:62px; border:0; background:var(--blue); color:white; border-radius:17px; display:flex; align-items:center; justify-content:center; gap:11px; font-weight:700; font-size:17px; transition: transform .15s ease, background .15s ease; }
.checkin-cta:hover { background:#2349e9; transform:translateY(-1px); }
.checkin-cta:disabled { cursor:wait; opacity:.72; transform:none; }
.helper { text-align:center; color:var(--muted); margin:11px 0 0; font-size:13px; }
.form-status { display:flex; align-items:center; justify-content:center; gap:7px; margin:12px 0 4px; color:var(--blue); font-size:12px; font-weight:700; }

.feed-card { border:1px solid var(--line); border-radius:18px; background:#fff; overflow:hidden; box-shadow:0 4px 8px rgba(0,0,0,.22); }
.feed-card + .feed-card { margin-top:16px; }
.post-head { padding:14px 14px 12px; display:flex; align-items:center; justify-content:space-between; }
.post-author { min-width:0; display:flex; align-items:center; gap:10px; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.post-author>div { min-width:0; }
.post-author:focus-visible { outline:2px solid var(--blue); outline-offset:4px; border-radius:9px; }
.post-identity { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.post-name { font-size:14px; font-weight:700; }
.post-badge { min-height:22px; display:inline-flex; align-items:center; gap:3px; padding:2px 6px 2px 3px; border-radius:999px; background:#2c2c30; color:var(--app-accent); }
.post-badge img { width:17px; height:17px; object-fit:contain; filter:drop-shadow(0 2px 2px rgba(0,0,0,.38)); }
.post-badge span { font-size:8px; font-weight:800; letter-spacing:.025em; }
.post-place { color:var(--muted); font-size:12px; margin-top:2px; }
.more { color:var(--muted); border:0; background:transparent; font-size:21px; line-height:1; }
.post-photo { display:block; width:100%; aspect-ratio: 4/4.4; object-fit:cover; }
.post-copy { padding:13px 14px 0; font-size:14px; line-height:1.4; }
.post-copy b { color:var(--ink); }
.post-actions { padding:13px 14px 15px; display:flex; align-items:center; gap:20px; color:var(--ink); }
.action { display:flex; align-items:center; gap:7px; border:0; background:transparent; padding:0; color:inherit; font-size:13px; }
.action.like.active { color:var(--coral); }
.action.save { margin-left:auto; }

.nav { height:78px; position:fixed; z-index:10; bottom:0; left:50%; transform:translateX(-50%); width:min(100%, 480px); padding:9px 18px max(10px, env(safe-area-inset-bottom)); display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,.96); border-top:1px solid var(--line); }
.nav-item { width:58px; height:58px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--muted); background:transparent; border:0; font-size:10px; font-weight:700; }
.nav-item.active { color:var(--blue); }
.nav-item.center { color:#fff; margin-top:-37px; background:var(--blue); width:64px; height:64px; border-radius:50%; border:6px solid var(--canvas); box-shadow:0 4px 0 #d8dffe; }
.nav-item.center span { display:none; }
.nav svg, .icon-btn svg, .action svg, .button svg { width:22px; height:22px; stroke-width:2.2; }
.search-box { min-height:50px; border:1px solid var(--line); border-radius:13px; background:#fff; display:flex; align-items:center; gap:10px; padding:0 14px; color:var(--muted); }.search-box input { min-width:0; width:100%; border:0; outline:0; color:var(--ink); font-size:15px; background:transparent; }.search-box input::placeholder { color:#8792ac; }
.filter-tabs { display:flex; gap:8px; margin:14px 0 24px; }.filter-tab { border:1px solid var(--line); background:transparent; color:var(--muted); border-radius:20px; padding:8px 13px; font-size:12px; font-weight:700; }.filter-tab.active { background:var(--ink); border-color:var(--ink); color:#fff; }
.discover-hero { min-height:172px; padding:22px; background:var(--blue); color:#fff; border-radius:18px; display:flex; justify-content:space-between; overflow:hidden; position:relative; }.discover-hero:after { content:''; width:140px; height:140px; border:20px solid rgba(255,255,255,.18); border-radius:50%; position:absolute; right:-64px; bottom:-76px; }.discover-hero p,.eyebrow { font-size:10px; letter-spacing:.08em; font-weight:700; }.discover-hero h2 { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:25px; line-height:1.02; letter-spacing:.005em; margin:11px 0 8px; }.discover-hero span { font-size:12px; color:#dce4ff; }.discover-hero button { z-index:1; width:38px; height:38px; border:0; border-radius:50%; color:var(--blue); background:#fff; display:grid; place-items:center; }
.people-list,.community-list { display:grid; gap:2px; }.person-row,.community-row,.notification-row { min-height:68px; display:grid; grid-template-columns:40px 1fr auto; align-items:center; gap:10px; border-bottom:1px solid var(--line); }.person-row b,.community-row b,.notification-row b { display:block; font-size:14px; }.person-row span,.community-row span,.notification-row span { display:block; color:var(--muted); font-size:12px; margin-top:2px; }.follow-button { border:1px solid var(--blue); background:#fff; color:var(--blue); padding:8px 10px; border-radius:9px; font-size:10px; font-weight:700; }.follow-button.following { color:var(--muted); border-color:var(--line); }.shortcut-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:22px; }.shortcut-row button { min-height:70px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:13px; padding:10px; font-size:11px; font-weight:700; }.shortcut-row button:disabled { color:#8b95ad; }.shortcut-row small { display:block; color:var(--muted); margin-top:3px; font-weight:500; }
.community-row { grid-template-columns:48px 1fr auto; }.community-row>img { width:48px; height:48px; object-fit:cover; border-radius:12px; }.my-community { margin-top:27px; border-radius:18px; overflow:hidden; background:var(--ink); color:#fff; position:relative; min-height:244px; }.my-community>img { width:100%; height:244px; object-fit:cover; opacity:.45; }.my-community>div { position:absolute; left:18px; right:18px; bottom:18px; }.my-community span,.event-card>span { font-size:10px; letter-spacing:.08em; font-weight:700; color:#d9e0fd; }.my-community h2 { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:25px; letter-spacing:.005em; margin:5px 0; }.my-community p,.my-community b { font-size:12px; color:#ebefff; }.my-community b { display:block; margin-top:14px; }
.created-community { margin-top:17px; border:1px solid #cbd3fb; background:#eef0ff; border-radius:14px; padding:14px; }.created-community span { display:block; color:var(--blue); font-size:10px; font-weight:700; letter-spacing:.07em; }.created-community b { display:block; margin-top:5px; font-size:16px; }.created-community p { color:var(--muted); font-size:12px; margin:4px 0 9px; }
.community-cover { height:188px; margin:22px -20px 0; overflow:hidden; position:relative; display:grid; place-items:center; background:linear-gradient(135deg,#1d1d21,#444448); }.community-cover img { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; }.community-cover-fallback { display:flex; align-items:center; gap:8px; color:var(--app-accent); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:17px; font-weight:800; }.community-title { padding:19px 0 14px; }.community-title>p { color:var(--blue); font-size:10px; font-weight:700; letter-spacing:.08em; }.community-title h1 { margin:7px 0 8px; font-size:30px; }.community-title>span { color:var(--muted); font-size:13px; line-height:1.4; }.community-tabs { margin:0 -20px; padding:0 20px; display:flex; gap:19px; overflow:auto; border-bottom:1px solid var(--line); }.community-tabs button { padding:12px 0; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font-size:12px; font-weight:700; }.community-tabs button.active { color:var(--blue); border-color:var(--blue); }.event-card { margin-top:22px; background:#eef0ff; border-radius:16px; padding:17px; }.event-card>span { color:var(--blue); }.event-card h2 { margin:8px 0 5px; font-size:20px; }.event-card p { color:var(--muted); font-size:13px; margin-bottom:13px; }.event-card .button { min-height:42px; width:100%; }
.community-ranking { margin-top:22px; }.community-ranking>p { color:var(--muted); font-size:11px; font-weight:700; margin-bottom:8px; }.community-rank-row { width:100%; display:grid; grid-template-columns:30px 38px 1fr auto; align-items:center; gap:9px; min-height:61px; padding:0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); font:inherit; text-align:left; cursor:pointer; transition:background .18s ease-out; }.community-rank-row:hover { background:#1e1e22; }.community-rank-row:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }.community-rank-row>b { color:var(--blue); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; }.community-rank-row>span { font-size:14px; font-weight:700; }.community-rank-row>strong { font-size:12px; color:var(--muted); }.events-stack .event-card + .event-card { margin-top:12px; }.event-card.challenge .progress { margin-top:13px; }.event-card.challenge .progress i { width:67%; background:var(--blue); }
.notification-list { margin-top:28px; }.notification-row { grid-template-columns:40px 1fr auto; min-height:76px; }.notification-row b { line-height:1.3; }.mini-action { width:34px; height:34px; display:grid; place-items:center; background:#eef0ff; border:0; color:var(--blue); border-radius:50%; }
.notification-row.unread { background:#252529; }
.notification-unread { width:8px; height:8px; border-radius:50%; background:var(--blue); }
.activity-screen,.activity-post-screen { padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
.activity-row { position:relative; grid-template-columns:40px minmax(0,1fr) 58px; gap:12px; align-items:start; padding:18px 0; }
.activity-row.unread { background:transparent; }
.activity-content { min-width:0; }
.activity-open { display:block; width:100%; padding:0; border:0; background:transparent; color:var(--ink); font:inherit; text-align:left; cursor:pointer; min-height:44px; }
.activity-open b,.activity-copy b { font-size:14px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }
.activity-open span,.activity-copy span { margin-top:5px; color:var(--muted); font-size:12px; }
.activity-thumbnail { display:grid; place-items:center; width:58px; height:58px; padding:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--surface,#222226); color:var(--muted); cursor:pointer; }
.activity-thumbnail img { display:block; width:100%; height:100%; object-fit:cover; }
.activity-kind { display:grid; place-items:center; height:40px; color:var(--muted); }
.activity-unread { position:absolute; top:14px; left:32px; width:9px; height:9px; border-radius:50%; background:var(--blue); border:2px solid var(--canvas); }
.mention-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.mention-actions button { min-height:44px; padding:8px 13px; border:1px solid var(--line); border-radius:8px; background:transparent; color:var(--ink); font:700 12px Manrope,sans-serif; cursor:pointer; }
.mention-actions button:first-child { border-color:var(--blue); background:var(--blue); color:#17171b; }
.mention-actions button:disabled { opacity:.55; cursor:wait; }
.mention-hint { margin:8px 0 0; font-size:12px; line-height:1.5; color:var(--muted); }
.mention-status { display:flex; align-items:center; gap:5px; margin:10px 0 0; font-size:12px; line-height:1.5; color:var(--muted); }
.mention-status.accepted { color:#91d6ac; }
.activity-error { margin-top:22px; font-size:14px; line-height:1.6; }
.activity-post-screen>h1 { margin-bottom:24px; }
.activity-detail-response { padding:0 4px 20px; }
.activity-screen button:focus-visible,.activity-post-screen button:focus-visible,.post-participant:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.post-participants { padding:12px 14px 6px; }
.post-participants>p { margin:0 0 8px; color:var(--muted); font-size:12px; }
.post-participants>div { display:flex; flex-wrap:wrap; gap:8px; }
.post-participant { display:inline-flex; align-items:center; gap:7px; max-width:100%; min-height:44px; padding:4px 8px 4px 4px; border:1px solid var(--line); border-radius:10px; background:transparent; color:var(--ink); font:700 12px Manrope,sans-serif; cursor:pointer; }
.post-participant>span:not(.avatar) { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.post-participant .avatar.xs { width:28px; height:28px; flex-shrink:0; margin:0; }
.post-participant .participant-pin { width:25px; height:25px; flex-shrink:0; object-fit:contain; }
.public-profile { text-align:center; margin-top:30px; }.public-avatar .avatar { width:86px; height:86px; border:4px solid #fff; box-shadow:0 0 0 2px var(--blue); }.public-profile h1 { font-size:29px; margin-top:16px; }.public-profile .handle { width:100%; margin-top:4px; text-align:center; }.public-profile .bio { margin:14px auto 0; }.public-stats { display:flex; justify-content:center; gap:24px; margin:24px 0; }.public-stats span { display:flex; flex-direction:column; color:var(--muted); font-size:11px; }.public-stats b { color:var(--ink); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:17px; }.secondary-cta { background:#eef0ff; color:var(--blue); }.profile-actions { display:flex; justify-content:center; gap:17px; margin-top:13px; }.profile-actions button { border:0; background:transparent; color:var(--muted); font-size:12px; font-weight:700; }.request-actions { display:flex; gap:6px; }.request-actions .decline { background:#fff0ed; color:#b84434; }




.public-communities { margin-top:25px; }
.public-community-list { display:flex; gap:9px; overflow:auto; padding-bottom:5px; scrollbar-width:none; }
.public-community-list article { min-width:190px; display:flex; align-items:center; gap:10px; padding:12px; border:1px solid #3b3b3f; border-radius:12px; background:#222226; }
.public-community-list article>span { width:35px; height:35px; flex:0 0 auto; display:grid; place-items:center; border-radius:10px; background:#2b2b2f; color:var(--blue); }
.public-community-list b,.public-community-list small { display:block; text-align:left; }
.public-community-list b { font-size:12px; }
.public-community-list small { max-width:130px; margin-top:2px; overflow:hidden; color:var(--muted); font-size:10px; white-space:nowrap; text-overflow:ellipsis; }

.rank-summary { margin-top:28px; padding:22px; border-radius:20px; background:var(--ink); color:white; position:relative; overflow:hidden; }
.rank-summary:after { content:''; position:absolute; width:170px; height:170px; background:var(--blue); opacity:.7; border-radius:50%; right:-85px; top:-72px; }
.rank-summary p { color:#bec8e0; font-size:13px; }
.rank-summary h2 { margin:8px 0 20px; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:31px; }
.rank-progress { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; color:#d7def3; font-size:12px; }
.progress { width:100%; height:7px; background:#334260; overflow:hidden; border-radius:20px; margin-top:8px; }
.progress i { display:block; height:100%; width:76%; background:var(--coral); border-radius:inherit; }
.leader-tabs { display:flex; padding:4px; background:#e9ecf6; border-radius:12px; margin:23px 0 17px; }
.leader-tab { flex:1; border:0; padding:9px 4px; border-radius:9px; background:transparent; color:var(--muted); font-weight:700; font-size:12px; }
.leader-tab.active { background:#fff; color:var(--ink); }
.leader-row { width:100%; display:grid; grid-template-columns:30px 42px 1fr auto; gap:10px; align-items:center; padding:13px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); font:inherit; text-align:left; cursor:pointer; }
.leader-row:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.leader-row:last-child { border:0; }.position { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-weight:700; color:var(--muted); }.position.top { color:var(--coral); }
.leader-name { font-size:14px; font-weight:700; }.leader-rank { font-size:12px; color:var(--muted); margin-top:2px; }.leader-score { font-size:14px; font-weight:700; color:var(--blue); }
.route-card { width:100%; margin:25px 0 3px; padding:17px; border:1px solid #454549; border-radius:16px; background:#1f1f23; color:var(--ink); font:inherit; text-align:left; cursor:pointer; overflow:hidden; transition:border-color .18s ease, transform .18s ease; }.route-card:hover { border-color:#68686c; transform:translateY(-1px); }.route-card:focus-visible,.rank-stop:focus-visible,.badge-placeholder:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }.route-card header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }.route-card header span { display:block; color:var(--app-accent); font-size:10px; font-weight:800; letter-spacing:.08em; }.route-card header b { display:block; margin-top:3px; color:#efeff3; font-size:12px; }.route-card header p { margin:0; color:var(--app-accent); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:17px; letter-spacing:.03em; }.route-card h2 { margin:15px 0 21px; font-size:24px; }.route-card h2 em { color:var(--blue); font-style:normal; }.route-line { display:flex; align-items:flex-start; }.route-node { display:grid; grid-template-columns:auto 1fr; grid-template-rows:16px auto auto; align-items:center; min-width:0; flex:1; position:relative; }.route-node i { grid-column:1; grid-row:1; width:14px; height:14px; border-radius:50%; border:3px solid #6a6a6e; background:#212125; z-index:1; }.route-node.current i { border-color:var(--blue); background:var(--app-accent-light); box-shadow:0 0 0 4px rgba(var(--app-accent-rgb),.12); }.route-node.rank i { border-color:#ed7653; background:#f39a79; }.route-node span { grid-column:1 / 3; grid-row:1; height:2px; background:#4a4a4e; margin-left:14px; transform:translateY(0); }.route-node small { grid-column:1; grid-row:2; margin-top:8px; color:var(--app-accent-light); font-size:10px; font-weight:800; }.route-node b { grid-column:1 / 3; grid-row:3; margin-top:2px; color:#a2a2a6; font-size:9px; font-weight:800; letter-spacing:.03em; white-space:nowrap; }.route-node.current b { color:var(--app-accent-light); }.route-node.rank b { color:#f39a79; }.route-card footer { margin-top:15px; padding-top:12px; border-top:1px solid #3b3b3f; color:#a9a9ad; font-size:11px; }.route-card.compact { margin:18px 0 0; padding:14px 15px; }.route-card.compact h2 { margin:10px 0 17px; }.route-card.compact footer { display:none; }
.freeze-card { display:grid; grid-template-columns:35px minmax(0,1fr) auto; gap:10px; align-items:start; margin:18px 0 3px; padding:13px; border:1px solid #3f5470; border-radius:14px; background:#1e252b; }.freeze-icon { width:35px; height:35px; display:grid; place-items:center; border-radius:10px; background:#25394a; color:#9ad6f2; }.freeze-card b { display:block; color:#e6f3f8; font-size:12px; }.freeze-card p { margin:3px 0 5px; color:#b6c5cd; font-size:10px; line-height:1.45; }.freeze-card small { color:#85a7b6; font-size:9px; font-weight:800; }.freeze-status { align-self:center; padding:5px 7px; border-radius:999px; background:#284151; color:#a8e1fb; font-size:9px; font-weight:800; white-space:nowrap; }.freeze-status.used { background:#343c43; color:#bfbfc3; }

.progress-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-top:28px; }.progress-heading>div>span { color:var(--app-accent); font-size:10px; font-weight:800; letter-spacing:.09em; }.progress-heading h1 { margin:6px 0 0; font-size:40px; line-height:.87; }.progress-heading h1 em { color:var(--blue); font-style:normal; }.progress-heading>b { display:flex; align-items:baseline; gap:3px; padding-bottom:5px; color:var(--blue); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:50px; line-height:.8; }.progress-heading>b small { color:#b6b6ba; font-family:'Manrope',sans-serif; font-size:11px; font-weight:800; }.rank-route-list { position:relative; margin-top:29px; padding:17px 16px 11px; border:1px solid #39393d; border-radius:16px; background:#1e1e22; }.rank-route-list h2 { margin:0 0 10px; font-size:21px; }.rank-stop { position:relative; width:100%; min-height:55px; display:grid; grid-template-columns:20px 1fr auto; align-items:center; gap:10px; padding:8px 0; border:0; background:transparent; color:var(--ink); font:inherit; text-align:left; cursor:pointer; }.rank-stop:not(:last-child)::after { content:''; position:absolute; z-index:0; top:35px; left:8px; bottom:-20px; width:1px; background:#434347; }.rank-stop i { position:relative; z-index:1; width:16px; height:16px; border:2px solid #67676b; border-radius:50%; background:#1e1e22; }.rank-stop b { display:block; font-size:13px; letter-spacing:.02em; }.rank-stop span { display:block; margin-top:2px; color:var(--muted); font-size:10px; }.rank-stop em { color:#7c7c80; font-size:14px; font-style:normal; }.rank-stop.done i { border-color:var(--app-accent-deep); background:var(--app-accent-deep); }.rank-stop.done i::after { content:'✓'; position:absolute; inset:-2px; display:grid; place-items:center; color:#141418; font-size:11px; font-style:normal; }.rank-stop.done b { color:#d4d4d8; }.rank-stop.current { margin:3px 0; padding:11px 9px; border-radius:10px; background:#29292d; }.rank-stop.current i { border-color:var(--app-accent); background:var(--app-accent); box-shadow:0 0 0 4px rgba(var(--app-accent-rgb),.1); }.rank-stop.current b { color:var(--app-accent-light); }.rank-stop.current em { color:var(--app-accent); }.rank-stop.current::after { left:17px; }.rank-stop.locked { opacity:.72; }.rank-stop.locked:hover { opacity:1; }.badge-gallery { margin:31px 0 18px; }.badge-gallery .section-head { margin-bottom:6px; }.badge-gallery .section-head span { color:var(--app-accent); font-size:10px; font-weight:800; letter-spacing:.08em; }.badge-gallery>p { max-width:38ch; margin:0 0 15px; color:var(--muted); font-size:12px; line-height:1.5; }.badge-placeholder-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.badge-placeholder { min-height:128px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:12px; border:1px dashed #525256; border-radius:12px; background:#1f1f23; color:var(--ink); }.badge-placeholder i,.placeholder-badge span { width:30px; height:30px; display:grid; place-items:center; margin-bottom:auto; border:1px dashed #6a6a6e; border-radius:50%; color:#9d9da1; font-size:16px; font-style:normal; }.badge-placeholder b { font-size:11px; line-height:1.25; }.badge-placeholder span { margin-top:4px; color:var(--muted); font-size:9px; line-height:1.35; }.placeholder-badge { font:inherit; color:var(--ink); cursor:pointer; }.placeholder-badge span { margin:0 auto 9px; }




.profile-user { margin-top:-42px; position:relative; display:flex; flex-direction:column; align-items:flex-start; }.profile-user .avatar { width:84px; height:84px; border:4px solid var(--canvas); }.profile-user h1 { font-size:32px; margin-top:13px; }.handle { display:block; width:100%; color:var(--muted); font-size:13px; font-weight:700; letter-spacing:.01em; margin:4px 0 0; text-align:left; }.bio { font-size:14px; line-height:1.45; margin-top:13px; max-width:31ch; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); margin:25px 0 26px; }.stat { border-right:1px solid var(--line); text-align:center; }.stat:last-child { border:0; }.stat b { display:block; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:21px; }.stat span { color:var(--muted); font-size:11px; }
.stats-four { grid-template-columns:repeat(4,1fr); gap:0; }.stats-four .stat { background:transparent; border-top:0; border-bottom:0; border-left:0; padding:0 4px; color:var(--ink); }.stats-four button.stat { border-right:1px solid var(--line); }.stats-four .stat b { font-size:18px; }.stats-four .stat span { font-size:10px; }.follow-request { width:100%; display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:9px; padding:11px; margin-top:21px; border:0; border-radius:13px; text-align:left; color:#515155; background:#f1f1f5; }.follow-request .avatar { width:36px; height:36px; }.follow-request b { display:block; font-size:12px; }.follow-request small { display:block; margin-top:2px; font-size:11px; }.follow-request i { font-size:22px; font-style:normal; }.activity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }.activity-grid img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:9px; }.badge.locked { opacity:.42; filter:grayscale(1); }
.rank-chip { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; background:#fff0ed; color:#c94630; border-radius:20px; font-size:12px; font-weight:700; }
.achievement-strip { display:flex; gap:9px; overflow:auto; padding:3px 0 8px; scrollbar-width:none; }.badge { min-width:82px; min-height:90px; border:1px solid var(--line); border-radius:14px; background:white; padding:11px; text-align:center; }.badge span { display:block; font-size:24px; }.badge b { font-size:10px; display:block; margin-top:8px; }
.settings-link { margin-top:27px; width:100%; min-height:48px; border:1px solid var(--line); color:var(--ink); background:#fff; border-radius:12px; font-weight:700; }
.profile-cta-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.profile-cta-row .settings-link { margin-top:27px; font-size:12px; }
.settings-row { width:100%; min-height:57px; display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:10px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; font-size:14px; font-weight:700; }
.settings-row:last-child { border-bottom:0; }.settings-row i { font-style:normal; font-size:24px; color:var(--muted); font-weight:400; }
.settings-section { margin-top:27px; }.settings-section>b { display:block; font-size:13px; margin-bottom:9px; }.form-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-top:30px; }.form-header h1 { font-size:30px; }.form-header .text-link { padding-top:10px; }.profile-form { margin-top:29px; display:grid; gap:17px; }.profile-form label { position:relative; display:grid; gap:7px; font-weight:700; font-size:13px; }.profile-form label>span { position:absolute; top:38px; left:13px; color:var(--muted); font-size:15px; }.profile-form input,.profile-form textarea,.profile-form select { width:100%; min-height:48px; border:1px solid var(--line); border-radius:12px; background:#fff; outline-color:var(--blue); color:var(--ink); padding:0 13px; font-size:15px; }.profile-form label>span + input { padding-left:27px; }.profile-form textarea { padding-top:12px; min-height:92px; resize:vertical; }.profile-form small { color:var(--muted); font-size:11px; line-height:1.35; font-weight:500; }.form-error { background:#fff0ed; color:#b84434; border-radius:10px; padding:11px; font-size:13px; font-weight:700; }.calendar-card { margin-top:29px; border:1px solid var(--line); border-radius:17px; background:#fff; padding:16px; }.calendar-card header { display:flex; align-items:center; justify-content:space-between; }.calendar-card header b { display:block; font-size:15px; }.calendar-card header span { color:var(--muted); font-size:12px; display:block; margin-top:3px; }.calendar-week,.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }.calendar-week { margin:21px 0 8px; }.calendar-week span { text-align:center; color:var(--muted); font-size:10px; font-weight:700; }.calendar-day { aspect-ratio:1; border:0; border-radius:7px; background:#f1f3f8; color:#8d98ae; font-size:11px; }.calendar-day.done { background:#dbe4ff; color:#2349e9; font-weight:700; }.calendar-day.today { background:var(--coral); color:#fff; font-weight:700; }.calendar-legend { display:flex; gap:13px; flex-wrap:wrap; margin:13px 2px; color:var(--muted); font-size:11px; }.calendar-legend span { display:flex; align-items:center; gap:5px; }.legend { width:11px; height:11px; border-radius:3px; background:#f1f3f8; }.legend.done { background:#dbe4ff; }.legend.today { background:var(--coral); }.legend.freeze { background:#b8f0dc; }
.danger { margin-top:20px; width:100%; min-height:49px; color:#c3463a; background:#fff0ed; border:0; border-radius:12px; font-weight:700; }
.switch { position:relative; width:42px; height:25px; }.switch input { position:absolute; opacity:0; }.switch span { display:block; height:100%; border-radius:20px; background:#c7cede; transition:background .15s ease; }.switch span:after { content:''; position:absolute; top:3px; left:3px; width:19px; height:19px; border-radius:50%; background:#fff; transition:transform .15s ease; }.switch input:checked + span { background:var(--blue); }.switch input:checked + span:after { transform:translateX(17px); }

.checkin-screen { display:flex; flex-direction:column; min-height:100dvh; padding-bottom:calc(112px + env(safe-area-inset-bottom)); }.back { align-self:flex-start; border:0; background:transparent; color:var(--ink); padding:0; display:flex; gap:7px; align-items:center; font-weight:700; }.checkin-screen h1 { margin-top:34px; font-size:37px; }.upload-box { margin:29px 0 18px; border:2px dashed #bcc7eb; border-radius:20px; min-height:300px; background:#eff1ff; display:grid; place-items:center; text-align:center; padding:20px; overflow:hidden; position:relative; }.upload-box img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }.upload-content { position:relative; }.upload-icon { width:62px; height:62px; border-radius:50%; display:grid; place-items:center; background:#fff; color:var(--blue); margin:0 auto 13px; }.upload-content h2 { font-size:18px; }.upload-content p { color:var(--muted); font-size:13px; margin-top:6px; }.upload-box.has-photo { place-items:end center; border-style:solid; border-color:var(--app-accent-deep); }.upload-box.has-photo .upload-content { z-index:1; width:calc(100% + 40px); margin:0 -20px -20px; padding:56px 20px 18px; color:#f2f2f6; background:linear-gradient(to bottom,rgba(11,11,15,0),rgba(11,11,15,.9) 52%); }.upload-box.has-photo .upload-icon { width:42px; height:42px; margin-bottom:8px; background:var(--app-accent); color:#141418; }.upload-box.has-photo .upload-content h2 { color:#f9f9fd; text-shadow:0 1px 2px rgba(0,0,0,.75); }.upload-box.has-photo .upload-content p { color:#dedee2; text-shadow:0 1px 2px rgba(0,0,0,.75); }.caption { width:100%; border:1px solid var(--line); border-radius:13px; resize:none; min-height:85px; padding:13px; background:white; color:var(--ink); outline-color:var(--blue); }.caption::placeholder { color:#8993ad; }.publish { margin-top:14px; }.file-input { display:none; }
.compose-section { margin-top:18px; }.compose-section>b { display:block; font-size:13px; }.compose-section small { color:var(--muted); font-size:11px; font-weight:500; }.workout-chips { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }.workout-chip { border:1px solid var(--line); border-radius:20px; background:#fff; padding:7px 10px; color:var(--muted); font-size:11px; font-weight:700; }.workout-chip.active { color:#fff; background:var(--blue); border-color:var(--blue); }.share-check { min-height:46px; margin-top:10px; border:1px solid var(--line); background:#fff; border-radius:11px; display:flex; align-items:center; gap:9px; padding:0 12px; font-size:13px; font-weight:700; }.share-check input { width:17px; height:17px; accent-color:var(--blue); }
.checkin-review { display:flex; flex-direction:column; min-height:100dvh; }.checkin-review h1 { margin-top:17px; }.review-orbit { width:88px; height:88px; border-radius:50%; background:#eef0ff; color:var(--blue); display:grid; place-items:center; margin:72px 0 25px; position:relative; }.review-orbit:after { content:''; position:absolute; inset:-9px; border:1px solid #cbd3fb; border-radius:50%; }.checkin-review .eyebrow { color:var(--blue); }.review-list { margin:28px 0; border-top:1px solid var(--line); }.review-list div { padding:14px 0; border-bottom:1px solid var(--line); font-size:13px; display:flex; align-items:center; gap:9px; }.review-list span { color:var(--mint); font-weight:700; }.review-list i { width:12px; height:12px; border-radius:50%; background:var(--coral); display:inline-block; }

.sheet-backdrop { position:fixed; inset:0; background:rgba(19,33,58,.38); z-index:30; display:flex; align-items:flex-end; }.sheet { width:min(100%,480px); margin:0 auto; background:#fff; border-radius:25px 25px 0 0; padding:14px 20px max(28px, env(safe-area-inset-bottom)); animation:sheet-in .25s ease-out; }.sheet-handle { width:37px; height:4px; border-radius:10px; background:#d3d9ea; margin:0 auto 21px; } @keyframes sheet-in { from { transform:translateY(100%); } to { transform:none; } }
.share-preview { background:var(--ink); color:white; border-radius:16px; aspect-ratio: 4/4.5; overflow:hidden; position:relative; }.share-preview img { width:100%; height:100%; object-fit:cover; opacity:.65; }.share-info { position:absolute; left:16px; right:16px; bottom:16px; }.share-info small { opacity:.8; }.share-info b { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:29px; display:block; margin-top:4px; }.share-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }.button { border:0; border-radius:12px; min-height:49px; display:flex; align-items:center; justify-content:center; gap:8px; font-weight:700; }.button.primary { color:white; background:var(--blue); }.button.secondary { color:var(--ink); background:var(--lilac); }
.toast { position:fixed; z-index:50; left:50%; transform:translateX(-50%); bottom:95px; width:calc(100% - 40px); max-width:400px; background:var(--ink); color:#fff; padding:13px 15px; border-radius:13px; font-size:14px; font-weight:600; animation:toast-in .2s ease-out,toast-out .22s ease-in calc(var(--toast-duration,3200ms) - 220ms) forwards; } @keyframes toast-in { from { opacity:0; transform:translate(-50%, 7px); } } @keyframes toast-out { to { opacity:0; transform:translate(-50%, -4px); } }

.community-publish-choice { padding-top:18px; }
.community-publish-choice > b { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.community-only-explainer { display:flex; align-items:flex-start; gap:9px; margin:11px 0 14px; padding:12px 13px; border-radius:12px; background:#232327; color:var(--app-accent-light); font-size:13px; line-height:1.45; }
.community-only-explainer svg { flex:0 0 auto; color:var(--blue); margin-top:1px; }
.community-check-list { display:grid; gap:8px; margin-top:12px; }
.community-check-list .share-check { min-height:58px; padding:10px 12px; border-radius:12px; border:1px solid #424246; background:#1e1e22; }
.community-check-list .share-check:has(input:checked) { border-color:var(--blue); background:#27272b; }
.community-check-list .share-check span { display:flex; flex-direction:column; gap:2px; }
.community-check-list .share-check span b { color:#f2f2f6; font-size:14px; }
.community-check-list .share-check span small { color:#afafb3; font-size:12px; }
.community-only-blocked { display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:start; margin:18px 0; padding:15px; border-radius:14px; background:#202024; color:#e6e6ea; }
.community-only-blocked > svg { color:var(--blue); }
.community-only-blocked div { display:grid; gap:3px; }
.community-only-blocked span { color:#bfbfc3; font-size:13px; line-height:1.4; }
.community-only-blocked button { grid-column:2; justify-self:start; color:var(--blue); font-weight:800; }

.auth-success-backdrop { position:fixed; inset:0; z-index:42; display:grid; align-items:end; padding:18px 14px max(18px,env(safe-area-inset-bottom)); background:rgba(4,4,8,.78); animation:auth-success-fade .2s ease-out; }
.auth-success-dialog { width:min(100%,440px); margin:0 auto; padding:24px 20px 20px; border-radius:16px; background:#1e1e22; color:var(--ink); box-shadow:0 8px 0 rgba(0,0,0,.22); animation:auth-success-in .32s cubic-bezier(.16,1,.3,1); }
.auth-success-icon { width:58px; height:58px; display:grid; place-items:center; margin-bottom:20px; border-radius:50%; background:var(--blue); color:#131317; }
.auth-success-dialog > p { margin:0 0 8px; color:var(--blue); font-size:11px; font-weight:900; letter-spacing:.1em; }
.auth-success-dialog h2 { margin:0; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:34px; line-height:.95; letter-spacing:-.025em; text-transform:uppercase; text-wrap:balance; }
.auth-success-copy { display:block; margin:16px 0 20px; color:#c0c0c4; font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
.auth-success-copy b { color:var(--app-accent-light); }
.auth-success-dialog .checkin-cta { margin:0; }
.auth-success-dialog > small { display:block; margin-top:12px; color:#8c8c90; font-size:11px; text-align:center; }
@keyframes auth-success-fade { from { opacity:0; } }
@keyframes auth-success-in { from { opacity:0; transform:translateY(24px); } }
.consent { position:fixed; z-index:20; left:12px; right:12px; bottom:90px; max-width:456px; margin:auto; background:var(--ink); color:#fff; border-radius:17px; padding:17px; }.consent h3 { font-size:15px; }.consent p { color:#d2d9e9; font-size:12px; line-height:1.4; margin:6px 0 13px; }.consent-actions { display:flex; gap:8px; }.consent button { border:0; border-radius:9px; padding:9px 10px; font-size:12px; font-weight:700; }.consent .accept { color:var(--ink); background:#fff; }.consent .essentials { color:#fff; background:#32415e; }
.empty { padding:48px 20px; text-align:center; color:var(--muted); }.empty b { color:var(--ink); display:block; margin:12px 0 5px; }.feed-empty { margin:4px 0 22px; border:1px dashed #4a4a4e; border-radius:14px; background:#1e1e22; }.feed-empty .checkin-cta { margin-top:22px; }.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

/* Dark Gold — product theme */
.app { background:var(--canvas); }
.app::before { content:''; position:absolute; inset:0; pointer-events:none; opacity:.52; background:radial-gradient(circle at 94% 0%, rgba(var(--app-accent-rgb),.12), transparent 28%), radial-gradient(circle at 0% 62%, rgba(237,118,83,.06), transparent 31%); }
.app > .screen { position:relative; }
.app > .nav { position:fixed; z-index:10; }
.app > .sheet-backdrop { position:fixed; z-index:30; }

/* Launch readiness: safety, legal consent and account controls */
.settings-row { text-decoration:none; cursor:pointer; }
.settings-row:focus-visible,.report-field input:focus-visible,.report-field select:focus-visible,.report-field textarea:focus-visible,.deletion-confirm-label input:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.moderation-label { display:flex; align-items:center; gap:6px; margin:9px 0 0; color:var(--app-accent); font-size:11px; font-weight:800; }
.report-backdrop { background:rgba(0,0,0,.68); backdrop-filter:blur(3px); }
.report-sheet { padding-inline:22px; }
.report-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:22px; }
.report-heading>span { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#2d2d31; color:var(--app-accent); }
.report-heading h2 { margin:0; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:25px; line-height:1; text-transform:uppercase; }
.report-heading p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.report-field { display:grid; gap:7px; margin-top:15px; color:var(--ink); font-size:12px; font-weight:800; }
.report-field small { color:var(--muted); font-weight:500; }
.report-field input,.report-field select,.report-field textarea { width:100%; border:1px solid #49494d; border-radius:12px; background:#17171b; color:var(--ink); font:inherit; }
.report-field input,.report-field select { min-height:49px; padding:0 13px; }
.report-field textarea { min-height:104px; padding:12px 13px; resize:vertical; }
.report-note { display:flex; align-items:flex-start; gap:7px; margin:16px 0; color:var(--muted); font-size:11px; line-height:1.45; }
.report-note svg { flex:0 0 auto; margin-top:1px; }
.report-actions { display:grid; grid-template-columns:1fr 1.25fr; gap:9px; }
.report-actions .button { min-height:49px; border-radius:12px; }
.delete-account-screen { padding-bottom:max(40px,env(safe-area-inset-bottom)); }
.danger-orbit { width:62px; height:62px; display:grid; place-items:center; margin:40px 0 18px; border:1px solid #704132; border-radius:50%; background:radial-gradient(circle at 38% 34%,#553126,#261b18 68%); color:#ff997f; box-shadow:0 12px 35px rgba(144,52,32,.2); }
.delete-account-screen h1 em { color:#ff8d73; font-style:normal; }
.deletion-summary { margin:26px 0; padding:17px; border:1px solid #4c3831; border-radius:14px; background:#29201d; }
.deletion-summary>b { color:#ffd0c4; font-size:13px; }
.deletion-summary ul { display:grid; gap:8px; margin:12px 0 0; padding-left:18px; color:#c5c5c9; font-size:12px; line-height:1.5; }
.deletion-confirm-label { display:grid; gap:9px; color:var(--ink); font-size:12px; font-weight:700; }
.deletion-confirm-label input { width:100%; min-height:50px; padding:0 13px; border:1px solid #684338; border-radius:12px; outline:none; background:#151519; color:var(--ink); font:inherit; }
.confirm-delete { margin-top:16px; background:#a53f2c; color:#fff; box-shadow:0 12px 26px rgba(165,63,44,.2); }
.confirm-delete:disabled { opacity:.55; box-shadow:none; }
.legal-acceptance { grid-template-columns:22px 1fr; align-items:start; gap:9px!important; padding:13px; border:1px solid #434347; border-radius:12px; background:#222226; font-weight:500!important; line-height:1.45; }
.legal-acceptance input { width:20px!important; min-height:20px!important; margin:1px 0 0; accent-color:var(--gold); }
.legal-acceptance>span { position:static!important; color:#ccccd0!important; font-size:11px!important; }
.legal-acceptance a { color:var(--app-accent); font-weight:800; }
.moderation-header { margin-top:34px; }
.moderation-header h1 { margin-top:8px; }
.moderation-header h1 em { color:var(--gold); font-style:normal; }
.moderation-loading { display:grid; place-items:center; gap:12px; min-height:230px; color:var(--muted); font-size:12px; }
.moderation-loading span { width:30px; height:30px; border:3px solid #454549; border-top-color:var(--gold); border-radius:50%; animation:moderation-spin .8s linear infinite; }
@keyframes moderation-spin { to { transform:rotate(360deg); } }
.moderation-list { display:grid; gap:12px; }
.moderation-card,.moderation-report { overflow:hidden; border:1px solid #404044; border-radius:15px; background:#1e1e22; box-shadow:0 12px 30px rgba(0,0,0,.16); }
.moderation-card>img { width:100%; max-height:360px; display:block; object-fit:cover; background:#121216; }
.moderation-card-copy { display:grid; gap:3px; padding:14px 15px 5px; }
.moderation-card-copy>b,.moderation-report b { color:var(--ink); font-size:13px; }
.moderation-card-copy>small,.moderation-report small { color:var(--app-accent); font-size:10px; }
.moderation-card-copy>p,.moderation-report p { margin:7px 0 4px; color:#c9c9cd; font-size:12px; line-height:1.45; }
.moderation-card-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:12px 15px 15px; }
.moderation-card-actions button { min-height:43px; display:flex; align-items:center; justify-content:center; gap:6px; border-radius:10px; font:inherit; font-size:11px; font-weight:800; }
.moderation-reject { border:1px solid #684438; background:#33241f; color:#ffad98; }
.moderation-approve { border:0; background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent-deep)); color:#141418; }
.moderation-report { display:grid; grid-template-columns:38px 1fr; gap:8px; padding:15px; }
.moderation-report>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#2c2c30; color:var(--app-accent); }
.moderation-report .moderation-card-actions { grid-column:1/-1; padding:6px 0 0; }
.moderation-empty { min-height:76px; display:flex; align-items:center; justify-content:center; gap:8px; padding:18px; border:1px dashed #434347; border-radius:13px; color:var(--muted); font-size:12px; text-align:center; }

/* Camera-first check-in and photo editor */
.camera-capture-stage { width:100%; min-height:330px; margin:28px 0 0; display:grid; place-items:center; align-content:center; gap:8px; border:1px dashed #67676b; border-radius:16px; background:radial-gradient(circle at 50% 42%,#2a2a2e,#1e1e22 68%); color:var(--ink); cursor:pointer; }
.camera-capture-stage>span { width:66px; height:66px; display:grid; place-items:center; margin-bottom:8px; border-radius:50%; background:var(--app-accent); color:#141418; box-shadow:0 4px 8px rgba(0,0,0,.28); }
.camera-capture-stage>b { font-size:16px; }
.camera-capture-stage>small { color:#c3c3c7; font-size:11px; }
.camera-capture-stage:focus-visible,.edit-photo-fab:focus-visible,.photo-filter:focus-visible,.photo-editor-controls button:focus-visible,.overlay-color-picker button:focus-visible { outline:2px solid var(--app-accent); outline-offset:3px; }
.checkin-photo-editor { margin:26px 0 4px; }
.photo-editor-stage { position:relative; overflow:hidden; aspect-ratio:4/5; border-radius:15px; background:#0E0E10; }
.photo-editor-stage>img { width:100%; height:100%; display:block; object-fit:cover; transform-origin:center; transition:filter .18s ease-out; will-change:transform; }
.edit-photo-fab { position:absolute; right:12px; bottom:12px; min-height:42px; display:flex; align-items:center; gap:7px; padding:0 14px; border:0; border-radius:999px; background:var(--app-accent); color:#141418; font:inherit; font-size:12px; font-weight:800; box-shadow:0 4px 8px rgba(0,0,0,.38); }
.photo-editor-controls { padding:17px 0 4px; }
.editor-control-title { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.editor-control-title b { display:block; font-size:14px; }
.editor-control-title span { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.editor-control-title>button,.photo-ready-row button { border:0; background:transparent; color:var(--app-accent); font:inherit; font-size:11px; font-weight:800; }
.photo-filter-row { display:flex; gap:12px; margin:18px -20px 4px; padding:2px 20px 10px; overflow-x:auto; scrollbar-width:none; }
.photo-filter-row::-webkit-scrollbar { display:none; }
.photo-filter { flex:0 0 58px; display:grid; justify-items:center; gap:6px; padding:0; border:0; background:transparent; color:#a2a2a6; font:inherit; font-size:10px; }
.photo-filter i { width:52px; height:52px; display:block; border-radius:50%; background-size:cover; background-position:center; outline:2px solid transparent; outline-offset:2px; }
.photo-filter.active { color:var(--app-accent-light); font-weight:800; }
.photo-filter.active i { outline-color:var(--app-accent); }
.photo-range { display:grid; gap:7px; margin-top:15px; }
.photo-range>span { display:flex; align-items:center; gap:6px; color:#d0d0d4; font-size:11px; font-weight:700; }
.photo-range input { width:100%; height:26px; margin:0; accent-color:var(--app-accent); }
.photo-position-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.photo-editor-actions { display:grid; grid-template-columns:.85fr 1.15fr; gap:9px; margin-top:18px; }
.photo-editor-actions .button { min-height:50px; }
.photo-ready-row { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.photo-ready-row>span { display:flex; align-items:center; gap:7px; color:#78cf95; font-size:11px; font-weight:800; }
.checkin-photo-editor.is-ready + .caption { margin-top:14px; }

/* Share overlay builder */
.share-backdrop { overscroll-behavior:contain; touch-action:none; }
.share-sheet { max-height:94dvh; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; }
.share-sheet-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:15px; }
.share-sheet-heading h2 { margin:0; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:25px; text-transform:uppercase; }
.share-sheet-heading p { margin:3px 0 0; color:var(--muted); font-size:11px; }
.share-close-button { width:40px; height:40px; flex:0 0 auto; display:grid; place-items:center; border:1px solid #4a4a4e; border-radius:50%; background:#28282c; color:var(--app-accent-light); }
.share-close-button:focus-visible { outline:2px solid var(--app-accent); outline-offset:3px; }
.post-community { display:flex; align-items:center; gap:6px; margin:0; padding:0 14px 10px; color:var(--app-accent); font-size:10px; font-weight:800; }
.share-overlay-preview { width:min(100%,320px); aspect-ratio:9/16; margin-inline:auto; isolation:isolate; }
.share-overlay-preview>img { opacity:1; }
.share-overlay-preview::after { content:''; position:absolute; z-index:1; left:12px; right:12px; bottom:44px; height:124px; border:1px solid color-mix(in srgb,var(--overlay-accent) 86%,var(--app-accent-light)); border-radius:14px; background:linear-gradient(145deg,color-mix(in srgb,var(--overlay-accent) 46%,rgba(29,29,33,.78)),rgba(22,22,26,.86)); box-shadow:0 4px 8px rgba(0,0,0,.35); backdrop-filter:blur(13px) saturate(1.12); -webkit-backdrop-filter:blur(13px) saturate(1.12); }
.share-overlay-preview.has-companions::after { height:159px; }
.share-overlay-preview.no-gradient::after { --overlay-accent:var(--app-accent); }
.share-athlete-lockup { position:absolute; z-index:2; left:22px; right:22px; bottom:104px; height:104px; }
.share-overlay-preview.has-companions .share-athlete-lockup { bottom:139px; }
.share-rank-badge { width:104px!important; height:104px!important; position:absolute!important; left:auto!important; right:4px!important; top:0!important; transform:none; object-fit:contain!important; opacity:1!important; filter:drop-shadow(0 4px 5px rgba(0,0,0,.58)); }
.share-athlete-lockup small { display:block; color:#fff; font-size:9px; font-weight:800; text-shadow:0 1px 3px rgba(0,0,0,.72); }
.share-athlete-lockup b { display:block; margin-top:3px; color:#fff; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:22px; line-height:.95; text-transform:uppercase; }
.share-athlete-lockup>div { position:absolute; left:0; top:55px; width:148px; min-width:0; }
.share-athlete-lockup b,.share-athlete-lockup small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.share-companions { position:absolute; z-index:2; left:22px; right:22px; bottom:109px; color:#fff; }
.share-companions>small { display:block; margin-bottom:4px; font-size:6px; font-weight:900; letter-spacing:.08em; text-shadow:0 1px 3px rgba(0,0,0,.72); }
.share-companions>div { display:flex; align-items:center; gap:9px; overflow:hidden; }
.share-companions>div>span { min-width:0; display:flex; align-items:center; gap:4px; }
.share-companions .avatar { width:18px; height:18px; flex:0 0 auto; border:1px solid rgba(255,255,255,.82); }
.share-companions b { max-width:72px; overflow:hidden; color:#fff; font-size:7px; text-overflow:ellipsis; white-space:nowrap; text-shadow:0 1px 3px rgba(0,0,0,.72); }
.share-rank-line { position:absolute; z-index:2; left:22px; right:22px; bottom:68px; display:block; color:#fff; text-transform:uppercase; }
.share-rank-line strong { display:block; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:18px; font-weight:700; line-height:1; letter-spacing:.01em; }
.share-rank-line span { display:block; margin-top:3px; color:#fff; font-size:8px; font-weight:800; text-shadow:0 1px 3px rgba(0,0,0,.72); }
.share-brand { position:absolute; z-index:2; right:22px; bottom:52px; color:#fff; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:11px; font-weight:800; }
.share-brand b { color:#fff; }
.overlay-color-picker { margin:16px 0 0; padding:0; border:0; }
.overlay-color-picker legend { margin-bottom:9px; color:#d0d0d4; font-size:11px; font-weight:800; }
.overlay-presets { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.overlay-presets button { min-width:0; display:grid; justify-items:center; gap:5px; padding:8px 4px 7px; border:1px solid transparent; border-radius:10px; background:#28282c; color:#a2a2a6; font:inherit; font-size:9px; cursor:pointer; }
.overlay-presets button i { width:18px; height:18px; border-radius:50%; background:var(--swatch); box-shadow:inset 0 0 0 1px rgba(0,0,0,.18); }
.overlay-presets button i.swatch-none { position:relative; border:1px solid #707074; background:#efeff3; }
.overlay-presets button i.swatch-none::after { content:''; position:absolute; left:8px; top:2px; width:2px; height:12px; border-radius:2px; background:#26262a; transform:rotate(42deg); }
.overlay-presets button.active { border-color:var(--swatch); color:var(--ink); }
.custom-color-control { min-height:52px; margin-top:8px; padding:7px 8px 7px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #3f3f43; border-radius:12px; background:#222226; color:#d0d0d4; cursor:pointer; transition:border-color .18s ease,background .18s ease; }
.custom-color-control.active { border-color:var(--swatch); background:color-mix(in srgb,var(--swatch) 9%,#222226); }
.custom-color-copy { min-width:0; display:flex; align-items:center; gap:9px; }
.custom-color-copy>i { width:24px; height:24px; flex:0 0 auto; border:2px solid rgba(255,255,255,.72); border-radius:50%; background:var(--swatch); box-shadow:0 3px 9px rgba(0,0,0,.32),inset 0 0 0 1px rgba(0,0,0,.16); }
.custom-color-copy>span { min-width:0; display:grid; gap:1px; }
.custom-color-copy b { color:#efeff3; font-size:10px; }
.custom-color-copy small { color:#a2a2a6; font-size:9px; letter-spacing:.04em; }
.custom-color-control>svg { color:var(--app-accent); }
.share-color-popover { margin-top:7px; padding:10px; border:1px solid #4a4a4e; border-radius:14px; background:#1e1e22; box-shadow:0 14px 32px rgba(0,0,0,.3); }
.share-sv-picker { position:relative; height:148px; overflow:hidden; border-radius:10px; background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent),hsl(var(--picker-hue) 100% 50%); touch-action:none; cursor:crosshair; }
.share-sv-picker i { position:absolute; width:17px; height:17px; border:2px solid #fff; border-radius:50%; background:transparent; box-shadow:0 1px 5px rgba(0,0,0,.75); transform:translate(-50%,-50%); pointer-events:none; }
.share-hue-row { margin-top:11px; display:grid; grid-template-columns:40px 1fr; align-items:center; gap:9px; color:#a2a2a6; font-size:9px; font-weight:800; }
.share-hue-row input { width:100%; height:15px; margin:0; appearance:none; border:0; border-radius:999px; background:linear-gradient(to right,#f00,var(--app-accent),#0f0,#0ff,#00f,#f0f,#f00); }
.share-hue-row input::-webkit-slider-thumb { width:18px; height:18px; appearance:none; border:2px solid #fff; border-radius:50%; background:transparent; box-shadow:0 1px 5px rgba(0,0,0,.72); }
.share-color-meta { margin-top:11px; display:grid; grid-template-columns:30px 1fr auto; align-items:end; gap:9px; }
.share-color-result { width:30px; height:30px; border:2px solid rgba(255,255,255,.74); border-radius:9px; background:var(--swatch); }
.share-color-meta label { display:grid; gap:3px; color:#88888c; font-size:7px; font-weight:900; letter-spacing:.08em; }
.share-color-meta input { width:100%; height:30px; padding:0 9px; border:1px solid #4a4a4e; border-radius:8px; background:#151519; color:#efeff3; font:800 10px Manrope,sans-serif; text-transform:uppercase; }
.share-color-meta button { height:30px; padding:0 13px; border:0; border-radius:8px; background:var(--app-accent); color:#16161a; font:800 9px Manrope,sans-serif; }

@media (prefers-reduced-motion:reduce) {
  .photo-editor-stage>img { transition:none; }
}
.app > .toast { position:fixed; z-index:50; }
.app > .consent { position:fixed; z-index:20; }
.brand { font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:25px; letter-spacing:.03em; }.brand b { color:var(--blue); }
.brand-lockup { display:flex; align-items:center; gap:8px; }.brand-lockup img { width:31px; height:31px; object-fit:contain; filter:drop-shadow(0 3px 6px rgba(0,0,0,.28)); }.brand-lockup span { white-space:nowrap; }
.subtitle,.helper,.handle,.post-place,.leader-rank,.community-title>span,.community-row span,.person-row span,.notification-row span { color:var(--muted); }
.icon-btn { background:#232327; color:var(--ink); border:1px solid #333337; }.notification-dot { border-color:#232327; }
.day-cell { background:#242428; border-color:#303034; }.day-cell .check { background:var(--blue); color:#16161a; }.day-cell.future { border-color:#626266; color:#6f6f73; }.day-cell.today-prompt { background:linear-gradient(135deg,#ef8a58,#be542c); color:#f5f5f9; }
.day-cell.frozen { background:linear-gradient(135deg,#3c8fba,#205b7d); border-color:#79c8e9; color:#f5fcff; }
.checkin-cta,.button.primary { background:linear-gradient(135deg,var(--app-accent-light) 0%,var(--app-accent) 52%,#747478 100%); color:#141418; box-shadow:0 8px 22px rgba(var(--app-accent-rgb),.19); }.checkin-cta:hover { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent) 52%,var(--app-accent-deep)); }
.feed-card,.calendar-card { background:#202024; border-color:#37373b; }.post-actions,.post-copy { color:var(--ink); }.more { color:var(--muted); }.action.like.active { color:#ff8967; }
.nav { background:rgba(19,19,23,.96); border-color:#303034; }.nav-item { color:#8a8a8e; }.nav-item.active { color:var(--blue); }.nav-item.center { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent-deep)); color:#141418; border-color:var(--canvas); box-shadow:0 5px 15px rgba(var(--app-accent-rgb),.2); }
.rank-summary { background:#1e1e22; border:1px solid #404044; }.rank-summary:after { background:var(--app-accent-deep); }.rank-summary p,.rank-progress { color:#c8c8cc; }.progress { background:#38383c; }.progress i { background:linear-gradient(90deg,var(--app-accent),#f4875e); }
.leader-tabs { background:#26262a; }.leader-tab.active { background:#353539; color:var(--ink); }.leader-name,.leader-score { color:var(--ink); }.leader-score { color:var(--blue); }.position.top { color:var(--blue); }
.search-box,.profile-form input,.profile-form textarea,.profile-form select { background:#222226; border-color:#3b3b3f; color:var(--ink); }.search-box input { background:transparent; color:var(--ink); }.search-box input::placeholder,.caption::placeholder { color:#7f7f83; }.filter-tab { border-color:#3b3b3f; color:var(--muted); }.filter-tab.active { background:var(--blue); border-color:var(--blue); color:#151519; }
.discover-hero { background:linear-gradient(135deg,#28282c,#17171b 67%); border:1px solid #4b4b4f; }.discover-hero p,.discover-hero span { color:#cfcfd3; }.discover-hero button { color:#151519; background:var(--blue); }
.follow-button { border-color:#58585c; background:#28282c; color:var(--app-accent-light); }.follow-button.following { border-color:#454549; color:#a2a2a6; background:#222226; }.shortcut-row button,.settings-link { background:#222226; color:var(--ink); border-color:#3b3b3f; }
.my-community { background:#16161a; border:1px solid #414145; }.my-community span,.event-card>span { color:var(--app-accent-light); }.my-community p,.my-community b { color:#e1e1e5; }.community-tabs { border-color:#3b3b3f; }.community-tabs button.active { color:var(--blue); border-color:var(--blue); }.event-card,.created-community { background:#252529; border-color:#47474b; }.event-card p,.created-community p { color:#afafb3; }.event-card.challenge .progress i { background:var(--blue); }

.members-heading { align-items:center; gap:14px; }
.members-heading > div { display:flex; align-items:center; gap:15px; }
.community-member-row { grid-template-columns:40px minmax(0,1fr) auto; }
.member-remove-button { min-height:38px; padding:0 11px; border:1px solid #684039; border-radius:10px; background:#2d211e; color:#ff9c85; font:inherit; font-size:10px; font-weight:800; }
.member-remove-button:focus-visible,.leave-community-button:focus-visible,.member-action-confirm:focus-visible { outline:2px solid #ff9c85; outline-offset:2px; }
.leave-community-button { width:100%; min-height:48px; margin-top:22px; border:1px solid #684039; border-radius:12px; background:#2d211e; color:#ff9c85; font:inherit; font-size:12px; font-weight:800; }
.community-owner-note { display:flex; align-items:center; justify-content:center; gap:7px; margin:22px 0 0; color:#b8b8bc; font-size:11px; font-weight:700; }
.member-action-sheet { text-align:center; }
.member-action-icon { width:48px; height:48px; display:grid; place-items:center; margin:2px auto 14px; border-radius:50%; background:#3b2621; color:#ff9c85; }
.member-action-sheet h2 { margin:0; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:25px; text-transform:uppercase; }
.member-action-sheet p { max-width:36ch; margin:8px auto 0; color:var(--muted); font-size:12px; line-height:1.5; }
.member-action-buttons { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:20px; }
.member-action-buttons .button,.member-action-confirm { min-height:50px; margin:0; }
.member-action-confirm { border:0; border-radius:12px; background:#7e3528; color:#fff3ed; font:inherit; font-size:12px; font-weight:800; }
.member-action-confirm:disabled { opacity:.55; cursor:wait; }
.community-invite-screen .form-header { margin-top:28px; }
.community-invite-screen .form-header h1 { margin-top:7px; }
.community-invite-search { margin-top:24px; background:#1e1e22; border-color:#434347; }
.community-invite-search input { color:#f7f7fb; background:transparent; }
.community-invite-search input::placeholder { color:#87878b; }
.invite-section { margin-top:28px; }
.invite-section .section-head { margin-bottom:5px; }
.invite-section .section-head h2 { font-size:17px; }
.invite-person { min-height:68px; }
.invite-user-button { flex:0 0 auto; min-width:82px; min-height:38px; padding:0 13px; border:1px solid #727276; border-radius:12px; background:#26262a; color:var(--app-accent); font-size:11px; font-weight:800; }
.invite-user-button.sent { display:flex; align-items:center; justify-content:center; gap:5px; border-color:#3d4937; background:#22291f; color:#a7c793; }
.community-invite-empty { min-height:92px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:18px; border:1px dashed #424246; border-radius:15px; color:#a1a1a5; text-align:center; }
.community-invite-empty b { color:#e5e5e9; font-size:13px; }
.community-invite-empty span { max-width:280px; font-size:12px; line-height:1.45; }
.community-invite-empty.compact { min-height:70px; }
.privacy-note { display:flex; align-items:flex-start; gap:7px; margin:24px 0 12px; color:#88888c; font-size:11px; line-height:1.45; }
.privacy-note svg { flex:0 0 auto; margin-top:1px; color:var(--app-accent); }
.mini-action { background:#2c2c30; color:var(--app-accent); }.request-actions .decline { background:#3a2622; color:#ff9a7f; }
.profile-user .avatar,.public-avatar .avatar { border-color:var(--canvas); box-shadow:0 0 0 2px var(--app-accent); }.rank-chip { background:#29292d; color:var(--app-accent); }.follow-request { background:#2f2f33; color:var(--app-accent-light); }.follow-request small { color:#b7b7bb; }.stats,.stats-four .stat,.stats-four button.stat { border-color:#3b3b3f; color:var(--ink); }.stat span { color:var(--muted); }.activity-grid img { border:1px solid #3d3d41; }.badge { background:#222226; border-color:#434347; }.badge.locked { opacity:.35; }.settings-row { color:var(--ink); border-color:#3b3b3f; }.danger { background:#3b2621; color:#ff9c85; }
.upload-box { background:#212125; border-color:#656569; }.upload-icon { background:#313135; color:var(--blue); }.caption { background:#222226; color:var(--ink); border-color:#3b3b3f; }.workout-chip { background:#222226; color:#adadb1; border-color:#3b3b3f; }.workout-chip.active { background:var(--blue); color:#141418; border-color:var(--blue); }.share-check { background:#222226; border-color:#3b3b3f; }.review-orbit { background:#2b2b2f; color:var(--blue); }.review-orbit:after { border-color:#5b5b5f; }.review-list { border-color:#3b3b3f; }.review-list div { border-color:#3b3b3f; }.review-list span { color:var(--mint); }
.sheet { background:#1e1e22; color:var(--ink); }.sheet-handle { background:#545458; }.button.secondary { background:#303034; color:var(--app-accent-light); }.share-preview { background:#0f0f0e; }.toast { background:var(--app-accent); color:#151519; }.consent { background:#222226; border:1px solid #434347; }.consent p { color:#bbbbbf; }.consent .accept { background:var(--blue); color:#151519; }.consent .essentials { background:#36363a; color:var(--ink); }
.profile-form small,.calendar-card header span,.calendar-legend { color:var(--muted); }.form-error { background:#3a2621; color:#ff9e87; }.calendar-day { background:#28282c; color:#7a7a7e; }.calendar-day.done { background:#49494d; color:var(--app-accent-light); }.calendar-day.today { background:linear-gradient(135deg,#ef8a58,#bf512c); }.legend.done { background:#49494d; }.legend.today { background:#d56b43; }.calendar-card .icon-btn { background:#29292d; }

@media (min-width: 600px) { body { background:#0E0E10; }.app-shell { display:grid; place-items:center; padding:24px 0; }.app { min-height:840px; border-radius:26px; box-shadow:0 20px 60px rgba(0,0,0,.38); }.nav { border-radius:0 0 26px 26px; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }

/* Icon system: status never depends on font glyphs. */
.day-cell .check svg { width:12px; height:12px; stroke-width:3; }.day-cell.today-prompt svg { width:21px; height:21px; stroke-width:1.9; }.day-cell.frozen svg { width:20px; height:20px; stroke-width:1.8; }.day-cell.future svg { width:18px; height:18px; }.rank-chip svg { width:14px; height:14px; }.rank-summary h2 svg { vertical-align:-2px; color:var(--blue); }.follow-request>svg { color:var(--app-accent-light); }.review-list span { display:grid; place-items:center; }.review-list span svg { width:16px; height:16px; stroke-width:3; }.rank-stop em { display:grid; place-items:center; font-size:0; }.rank-stop em svg { width:14px; height:14px; }.rank-stop.done i::after { content:none; }.badge-placeholder i svg,.placeholder-badge span svg { width:15px; height:15px; }.placeholder-badge span { font-size:0; }

/* The active milestone keeps the same visual axis as every other step. */
.rank-stop { min-height:66px; grid-template-columns:44px 1fr auto; gap:11px; padding:8px 0; }
.rank-stop i { margin-left:14px; }
.rank-stop:not(:last-child)::after { top:33px; left:21px; bottom:-33px; }
.rank-stop.current { margin:0; padding:8px 0; }.rank-stop.current::after { left:21px; }
.rank-stop.has-badge { min-height:66px; grid-template-columns:44px 1fr auto; gap:11px; }

/* Calendar — real account history, not template data. */
.calendar-screen { padding-bottom:104px; }
.calendar-title { margin:28px 0 24px; }
.calendar-title>span { color:var(--blue); font-size:11px; font-weight:900; letter-spacing:.12em; }
.calendar-title h1 { margin:7px 0 8px; font-size:42px; line-height:.86; }
.calendar-title h1 em { color:var(--blue); font-style:normal; }
.calendar-title p { max-width:360px; color:var(--muted); font-size:14px; line-height:1.45; }
.calendar-summary { display:grid; grid-template-columns:repeat(3,1fr); margin:20px 0 14px; border:1px solid #424246; border-radius:16px; background:#1c1c20; overflow:hidden; }
.calendar-summary article { min-width:0; padding:13px 9px; text-align:center; }
.calendar-summary article+article { border-left:1px solid #39393d; }
.calendar-summary span { display:block; color:var(--app-accent); font-size:8px; font-weight:900; letter-spacing:.1em; }
.calendar-summary b { display:block; margin:3px 0 1px; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:27px; line-height:1; }
.calendar-summary small { color:var(--muted); font-size:9px; }
.calendar-card { position:relative; margin-top:0; padding:15px 13px 16px; overflow:hidden; }
.calendar-month-nav { display:grid !important; grid-template-columns:38px 1fr 38px; gap:10px; align-items:center; }
.calendar-month-nav>div { text-align:center; min-width:0; }
.calendar-month-nav b { text-transform:capitalize; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:21px !important; letter-spacing:.02em; }
.calendar-month-nav .icon-btn { width:38px; height:38px; padding:0; display:grid; place-items:center; border-radius:50%; }
.calendar-month-nav .icon-btn.next svg { transform:rotate(0deg); }
.calendar-month-nav .icon-btn:disabled { opacity:.28; cursor:not-allowed; }
.calendar-week,.calendar-grid { gap:5px; }
.calendar-week { margin:18px 0 7px; }
.calendar-week span { color:#b4b4b8; font-size:9px; letter-spacing:.08em; }
.calendar-day { position:relative; display:grid; place-items:center; aspect-ratio:1; min-width:0; padding:0; overflow:hidden; border:1px solid #353539; border-radius:9px; background:#242428; color:#8d8d91; }
.calendar-day>span { font-size:11px; font-weight:800; }
.calendar-day>b { position:absolute; left:5px; top:4px; z-index:2; color:#f4f4f8; font-size:8px; line-height:1; text-shadow:0 1px 3px #000; }
.calendar-day img { width:100%; height:100%; object-fit:cover; }
.calendar-day>i { position:absolute; right:3px; bottom:3px; z-index:2; width:17px; height:17px; display:grid; place-items:center; border-radius:50%; background:var(--app-accent); color:#151519; box-shadow:0 2px 5px rgba(0,0,0,.35); }
.calendar-day>i svg { width:10px; height:10px; stroke-width:3; }
.calendar-day.done { background:#49494d; border-color:var(--app-accent-deep); }
.calendar-day.freeze { background:linear-gradient(145deg,#3e98c2,#205d80); border-color:#7fd3f3; color:white; }
.calendar-day.freeze>i { position:static; width:auto; height:auto; background:none; color:#f3fcff; box-shadow:none; }
.calendar-day.freeze>b { color:#fff; }
.calendar-day.today { box-shadow:inset 0 0 0 2px #ef8a58,0 0 0 1px #151519; }
.calendar-day.today:not(.done):not(.freeze) { background:#39261f; color:#ffad89; }
.calendar-day.future { opacity:.38; }
.calendar-day.spacer { visibility:hidden; pointer-events:none; }
.calendar-loading { position:absolute; inset:72px 12px 12px; display:grid; place-content:center; gap:8px; text-align:center; border-radius:12px; background:rgba(25,25,29,.88); backdrop-filter:blur(4px); color:var(--muted); font-size:11px; }
.calendar-loading i { width:22px; height:22px; margin:auto; border:2px solid #4b4b4f; border-top-color:var(--blue); border-radius:50%; animation:calendar-spin .8s linear infinite; }
.calendar-error { width:100%; margin-top:12px; padding:11px; border:1px solid #744337; border-radius:10px; background:#38241f; color:#ffae98; font-weight:800; }
.calendar-legend { margin-top:12px; justify-content:center; }
.legend.freeze { background:#3d96c0; }
@keyframes calendar-spin { to { transform:rotate(360deg); } }

.rank-collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 7px; }
.rank-collection-item { min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center; }
.rank-collection-item img { width:68px; height:68px; object-fit:contain; filter:drop-shadow(0 5px 5px rgba(0,0,0,.4)); }
.rank-collection-item b { max-width:100%; margin-top:4px; overflow:hidden; color:#eaeaee; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:11px; letter-spacing:.025em; text-overflow:ellipsis; white-space:nowrap; }
.rank-collection-item span { margin-top:1px; color:var(--muted); font-size:8px; line-height:1.25; }
.rank-collection-item.locked img { filter:drop-shadow(0 4px 4px rgba(0,0,0,.3)); }
.rank-collection-item.locked b { color:#707074; }
.rank-collection-item.unlocked img { animation:badge-enter .4s ease both; }
@keyframes badge-enter { from { opacity:0; transform:translateY(5px) scale(.94); } to { opacity:1; transform:none; } }

.community-zero-state { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:18px 0; padding:28px 22px; border:1px dashed #48484c; border-radius:14px; background:#1b1b1f; color:#949498; text-align:center; }
.community-zero-state>svg { color:var(--app-accent); }
.community-zero-state>b { margin-top:12px; color:#e8e8ec; font-size:15px; }
.community-zero-state>span { max-width:31ch; margin-top:5px; font-size:11px; line-height:1.5; }
.community-zero-state>.button { width:100%; margin-top:18px; }
.rank-stop-badge { position:relative; z-index:1; width:42px; height:42px; display:block; object-fit:contain; filter:drop-shadow(0 4px 4px rgba(0,0,0,.44)); }
.rank-stop.has-badge:not(:last-child)::after { top:33px; left:21px; bottom:-33px; }
.rank-stop.has-badge.current::after { left:21px; }
.rank-stop.has-badge.locked .rank-stop-badge { filter:none; }

/* First-run activation */
.onboarding { min-height:100dvh; display:flex; flex-direction:column; padding:22px 20px 28px; position:relative; }.onboarding-top { display:flex; align-items:center; justify-content:space-between; min-height:36px; }.onboarding-progress { height:3px; margin:25px 0 0; overflow:hidden; background:#303034; border-radius:999px; }.onboarding-progress i { display:block; height:100%; background:var(--blue); border-radius:inherit; transition:width .22s ease-out; }.onboarding-hero { margin:auto 0; padding:44px 2px 54px; }.onboarding-orbit { width:66px; height:66px; display:grid; place-items:center; margin-bottom:28px; border:1px solid #555559; border-radius:50%; color:var(--blue); background:#212125; box-shadow:inset 0 0 0 8px #1a1a1e; }.onboarding-hero>p,.onboarding-copy>p { color:var(--app-accent); font-size:10px; font-weight:800; letter-spacing:.09em; }.onboarding h1 { margin-top:12px; font-size:45px; }.onboarding-hero>span,.onboarding-copy>span { display:block; max-width:31ch; margin-top:14px; color:var(--muted); font-size:14px; line-height:1.5; }.onboarding-panel { flex:1; display:flex; flex-direction:column; padding-top:45px; }.onboarding-copy h1 { font-size:39px; }.onboarding-avatar { position:relative; width:82px; height:82px; display:grid; place-items:center; margin:26px 0 21px; overflow:visible; border:2px dashed #6b6b6f; border-radius:50%; background:#242428; color:var(--app-accent); }.onboarding-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }.onboarding-avatar i { position:absolute; right:-2px; bottom:-2px; width:27px; height:27px; display:grid; place-items:center; border:2px solid var(--canvas); border-radius:50%; background:var(--blue); color:#141418; font-style:normal; }.onboarding-form { display:grid; gap:16px; }.onboarding-form label { position:relative; display:grid; gap:7px; color:var(--ink); font-size:13px; font-weight:700; }.onboarding-form label>span { position:absolute; top:38px; left:13px; color:var(--muted); font-size:15px; }.onboarding-form input { width:100%; min-height:51px; padding:0 13px; border:1px solid #444448; border-radius:12px; outline-color:var(--blue); background:#222226; color:var(--ink); }.onboarding-form label>span + input { padding-left:28px; }.onboarding-form small { color:var(--muted); font-size:10px; line-height:1.4; font-weight:500; }.onboarding-interests { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }.onboarding-interest { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0 12px; border:1px solid #424246; border-radius:999px; background:#222226; color:#bababe; font-size:11px; font-weight:700; }.onboarding-interest.active { border-color:var(--app-accent); background:#303034; color:var(--app-accent-light); }.onboarding-privacy { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:25px; padding-top:18px; border-top:1px solid #37373b; }.onboarding-privacy b,.onboarding-privacy span { display:block; }.onboarding-privacy b { font-size:12px; }.onboarding-privacy span { margin-top:3px; color:var(--muted); font-size:10px; }.onboarding-choice { display:flex; padding:3px; border-radius:10px; background:#26262a; }.onboarding-choice button { min-height:30px; padding:0 8px; border:0; border-radius:8px; background:transparent; color:var(--muted); font-size:10px; font-weight:800; }.onboarding-choice button.active { background:#3a3a3e; color:var(--app-accent-light); }.onboarding-footer { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:16px; padding-top:18px; }.onboarding-footer.welcome { grid-template-columns:1fr; gap:12px; }.onboarding-footer .checkin-cta { margin:0; min-height:56px; font-size:15px; }.onboarding-footer>.text-link { white-space:nowrap; }.auth-link { width:100%; min-height:44px; border:1px solid #46464a; border-radius:12px; background:transparent; color:var(--app-accent); font:inherit; font-size:13px; font-weight:800; }.auth-link.inline { margin-top:12px; }

.profile-settings { position:absolute; z-index:2; top:14px; right:14px; width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(var(--app-accent-rgb),.42); border-radius:50%; background:#242428; color:var(--app-accent-light); box-shadow:0 3px 8px rgba(0,0,0,.2); }.profile-settings svg { width:21px; height:21px; }.community-cover-picker { position:relative; width:100%; min-height:172px; display:grid; place-items:center; overflow:hidden; border:1px dashed #656569; border-radius:14px; background:#212125; color:var(--app-accent); }.community-cover-picker.has-cover { border-style:solid; }.community-cover-picker>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.community-cover-picker>i { position:absolute; right:10px; bottom:10px; z-index:2; width:32px; height:32px; display:grid; place-items:center; border:2px solid var(--canvas); border-radius:50%; background:var(--blue); color:#141418; font-style:normal; }.community-cover-picker.is-preparing>img { opacity:.64; }.community-cover-status { position:relative; z-index:1; padding:8px 11px; border-radius:10px; background:rgba(17,17,21,.86); color:#f2f2f6; font-size:11px; font-weight:800; }.community-cover-empty { display:grid; place-items:center; gap:7px; text-align:center; }.community-cover-empty span { font-size:13px; font-weight:800; }.community-cover-empty small { color:#9c9ca0; font-size:10px; }.created-community { position:relative; display:grid; grid-template-columns:74px 1fr; gap:12px; overflow:hidden; }.created-community>img { width:74px; height:74px; object-fit:cover; border-radius:10px; }.created-community>div { min-width:0; }

.challenge-card { margin-top:22px; padding:17px; border:1px solid #555559; border-radius:14px; background:#242428; }.challenge-card header { display:flex; align-items:center; justify-content:space-between; gap:12px; }.challenge-card header span { color:var(--app-accent); font-size:10px; font-weight:800; letter-spacing:.08em; }.challenge-card header .text-link { font-size:11px; }.challenge-card h2 { margin:9px 0 5px; font-size:22px; }.challenge-card>p { color:#b1b1b5; font-size:12px; line-height:1.45; }.challenge-metric { display:flex; align-items:baseline; gap:6px; margin-top:17px; }.challenge-metric b { color:var(--app-accent-light); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:32px; line-height:1; }.challenge-metric b small { color:#a6a6aa; font-size:17px; }.challenge-metric span { color:#aaaaae; font-size:10px; font-weight:700; }.challenge-progress { height:7px; margin-top:9px; overflow:hidden; border-radius:999px; background:#404044; }.challenge-progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--app-accent),#ec8158); transition:width .22s ease-out; }.challenge-card footer { display:flex; align-items:center; gap:6px; margin-top:13px; padding-top:11px; border-top:1px solid #424246; color:#aeaeb2; font-size:10px; font-weight:700; }.challenge-card footer svg { color:var(--app-accent); }.challenge-card.complete { border-color:#6b7d4a; background:#24281d; }.challenge-card.complete .challenge-metric b,.challenge-card.complete footer svg { color:#9bd37f; }.challenge-note { margin:0; padding:12px; border-radius:11px; background:#242428; color:#adadb1; font-size:11px; line-height:1.45; }

.creator-badge-strip { display:flex; gap:9px; overflow:auto; padding:2px 0 5px; scrollbar-width:none; }.creator-badge { min-width:205px; display:grid; grid-template-columns:30px 1fr; align-items:center; gap:9px; padding:11px; border:1px solid #47474b; border-radius:12px; background:#212125; }.creator-badge i { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:#39393d; color:var(--app-accent); font-style:normal; }.creator-badge b,.creator-badge span { display:block; }.creator-badge b { font-size:11px; }.creator-badge span { margin-top:2px; color:#a0a0a4; font-size:9px; line-height:1.35; }.creator-badge-empty { padding:16px; border:1px dashed #49494d; border-radius:12px; color:var(--muted); font-size:11px; }.creator-badge-list { display:grid; gap:8px; margin-top:27px; }.creator-badge.admin { width:100%; grid-template-columns:30px 1fr auto; }.creator-badge.admin small { color:#b5b5b9; font-size:9px; font-weight:800; }.creator-badge-form { margin-top:28px; }.recap-entry { width:100%; display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:10px; margin-top:28px; padding:13px; border:1px solid #4a4a4e; border-radius:14px; background:#212125; color:var(--ink); text-align:left; }.recap-entry>span { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:#39393d; color:var(--app-accent); }.recap-entry b,.recap-entry small { display:block; }.recap-entry b { font-size:12px; }.recap-entry small { margin-top:3px; color:var(--muted); font-size:10px; }.recap-entry>svg { color:var(--app-accent); }.recap-card { position:relative; min-height:390px; display:flex; flex-direction:column; margin-top:28px; padding:20px; overflow:hidden; border:1px solid #555559; border-radius:16px; background:radial-gradient(circle at 90% 9%,rgba(var(--app-accent-rgb),.24),transparent 30%),#1e1e22; }.recap-brand { display:flex; align-items:center; gap:7px; color:var(--app-accent-light); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:19px; letter-spacing:.04em; }.recap-brand img { width:25px; height:25px; object-fit:contain; }.recap-card>p { margin-top:49px; color:var(--app-accent); font-size:10px; font-weight:800; letter-spacing:.09em; }.recap-card h2 { margin-top:11px; font-size:42px; line-height:.9; }.recap-card h2 em { color:var(--app-accent); font-style:normal; }.recap-stats { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:auto; }.recap-stats>div { padding:10px 0; border-top:1px solid #46464a; }.recap-stats b,.recap-stats span { display:block; }.recap-stats b { color:var(--app-accent-light); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:27px; }.recap-stats span { color:#aaaaae; font-size:9px; }.recap-challenge { margin-top:14px; padding:12px; background:#252529; border-radius:11px; }.recap-challenge span { display:flex; align-items:center; gap:6px; color:#d1d1d5; font-size:10px; font-weight:700; }.recap-challenge i { display:block; height:5px; margin-top:9px; overflow:hidden; border-radius:999px; background:#404044; }.recap-challenge i b { display:block; height:100%; border-radius:inherit; background:var(--app-accent); }.recap-card footer { margin-top:16px; color:#9d9da1; font-size:9px; }

.earned-badge { display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--ink); font:inherit; cursor:pointer; }.earned-badge img { width:55px; height:55px; margin:-2px auto 4px; object-fit:contain; filter:drop-shadow(0 5px 6px rgba(0,0,0,.38)); }.earned-badge b { margin-top:0; }.tag-athletes { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }.tag-athlete { min-height:34px; display:inline-flex; align-items:center; gap:5px; padding:4px 8px 4px 4px; border:1px solid #3b3b3f; border-radius:999px; background:#222226; color:#b3b3b7; font-size:10px; font-weight:700; }.tag-athlete .avatar.xs { width:25px; height:25px; margin:0; border-color:#222226; }.tag-athlete.active { border-color:var(--app-accent); background:#2f2f33; color:var(--app-accent-light); }.tag-athlete.active>svg { color:var(--app-accent); }.post-tags { display:flex; align-items:center; gap:6px; padding:10px 14px 0; color:#b1b1b5; font-size:11px; font-weight:700; }
.profile-achievements { margin-top:-4px; }.profile-achievements .section-head { margin:0 0 11px; }.featured-badge { min-width:104px; min-height:122px; border-color:#5c5c60; background:#242428; }.featured-badge img { width:72px; height:72px; margin:-7px auto 3px; }.featured-badge small { margin-top:3px; color:var(--app-accent); font-size:9px; }

.profile-rank-row { gap:8px; }.profile-rank-row .text-link { margin-left:auto; }.rank-badge-preview { width:48px; height:48px; display:grid; place-items:center; border:1px solid #66666a; border-radius:12px; background:#242428; }.rank-badge-preview img { width:43px; height:43px; object-fit:contain; filter:drop-shadow(0 4px 5px rgba(0,0,0,.4)); }.rank-badge-preview.compact { width:34px; height:34px; border-radius:10px; }.rank-badge-preview.compact img { width:31px; height:31px; }.patent-badge-strip { display:flex; gap:8px; overflow:auto; padding:2px 0 6px; scrollbar-width:none; }.patent-badge-empty { width:104px; height:104px; flex:0 0 auto; border:1px dashed #49494d; border-radius:12px; background:#1e1e22; }.patent-badge { min-width:115px; min-height:105px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:11px; border:1px dashed #525256; border-radius:12px; background:#202024; color:var(--ink); font:inherit; text-align:left; }.patent-badge i { width:29px; height:29px; display:grid; place-items:center; margin-bottom:auto; border:1px dashed #656569; border-radius:50%; color:#9a9a9e; font-style:normal; }.patent-badge b,.patent-badge span { display:block; }.patent-badge b { font-size:11px; }.patent-badge span { margin-top:3px; color:#a0a0a4; font-size:9px; line-height:1.25; }.patent-badge.png { min-width:160px; display:grid; grid-template-columns:50px 1fr; align-items:center; gap:9px; border-style:solid; border-color:#5f5f63; background:#242428; }.patent-badge.png .rank-badge-preview { width:50px; height:50px; }.patent-badge.png .rank-badge-preview img { width:46px; height:46px; }.public-badges { margin-top:28px; }.public-badges .section-head { margin:23px 0 10px; }
.profile-achievements { margin-top:27px; }
.patent-section-head { margin:0 0 8px; }
.patent-section-head h2 { font-size:20px; }

/* Perfil: evolução compacta primeiro, mídia real da semana logo em seguida. */
.profile-evolution { margin-top:27px; }
.profile-evolution .profile-achievements { margin-top:0; }
.profile-evolution .patent-badge-strip { gap:10px; padding-bottom:5px; }
.profile-evolution .patent-badge-icon { width:64px; min-height:88px; }
.profile-evolution .patent-badge-icon img { width:54px; height:54px; }
.profile-evolution .route-card.compact { margin-top:10px; }
.profile-week { margin-top:27px; }
.profile-week .section-head { margin-bottom:10px; }
.profile-evolution .text-link,.profile-week .text-link,.profile-rank-row .text-link { min-height:44px; display:inline-flex; align-items:center; }
.stats-four button.stat { min-height:44px; }
.profile-settings { width:44px; height:44px; }
.profile-user h1 { max-width:100%; overflow-wrap:anywhere; }
.profile-week-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.profile-week-grid img { display:block; min-width:0; border-radius:8px; background:#222226; }
.profile-week-empty { min-height:82px; display:grid; grid-template-columns:34px 1fr; align-items:center; gap:11px; padding:14px; border:1px dashed #46464a; border-radius:13px; color:#bdbdc1; }
.profile-week-empty>svg { color:var(--app-accent); }
.profile-week-empty b,.profile-week-empty span { display:block; }
.profile-week-empty b { color:#e5e5e9; font-size:12px; }
.profile-week-empty span { margin-top:3px; color:var(--muted); font-size:10px; line-height:1.4; }
.profile-week + .freeze-card { margin-top:24px; }
@media (max-width:350px) {
  .profile-evolution .patent-badge-icon { width:60px; }
  .profile-evolution .patent-badge-icon img { width:50px; height:50px; }
}

/* Arquivo semanal: o perfil principal mostra somente os sete dias mais recentes. */
.archive-heading { margin:34px 0 30px; }
.archive-heading h1 { margin:0; max-width:9ch; font-size:clamp(38px,11vw,52px); line-height:.88; text-wrap:balance; }
.archive-heading p { max-width:35ch; margin:14px 0 0; color:var(--muted); font-size:14px; line-height:1.55; }
.archive-heading>span { display:inline-block; margin-top:10px; color:var(--app-accent); font-size:12px; font-weight:800; }
.archive-week { margin-top:30px; }
.archive-week>header { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:11px; }
.archive-week>header h2 { margin:0; font-family:'Manrope',sans-serif; font-size:14px; letter-spacing:-.01em; text-transform:none; }
.archive-week>header span { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.archive-grid figure { min-width:0; margin:0; }
.archive-grid img { width:100%; aspect-ratio:1; display:block; border:1px solid #3d3d41; border-radius:9px; object-fit:cover; background:#222226; }
.archive-grid figcaption { padding:5px 2px 0; color:#a2a2a6; font-size:9px; font-weight:700; text-transform:capitalize; }
.archive-empty { margin-top:32px; }
.patent-badge-strip { display:flex; align-items:flex-start; gap:12px; overflow:auto; padding:4px 1px 10px; scrollbar-width:none; }
.patent-badge-strip::-webkit-scrollbar { display:none; }
.patent-badge-icon { width:72px; min-height:100px; flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:4px; padding:0; border:0; background:transparent; color:#9a9a9e; font:inherit; text-align:center; }
.patent-badge-icon img { width:60px; height:60px; display:block; object-fit:contain; filter:drop-shadow(0 4px 4px rgba(0,0,0,.46)); }
.patent-badge-icon>span { display:block; width:100%; }
.patent-badge-icon b,.patent-badge-icon small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.patent-badge-icon b { color:#e5e5e9; font-size:9px; line-height:1.25; letter-spacing:.02em; }
.patent-badge-icon small { margin-top:2px; color:#a0a0a4; font-size:8px; line-height:1.2; }
.patent-badge-icon.pending { width:76px; min-height:108px; padding-top:5px; border:1px dashed #49494d; border-radius:12px; background:#1e1e22; }
.patent-badge-pending { display:grid; place-items:center; color:#67676b; }
.patent-badge-icon:focus-visible { outline:2px solid var(--blue); outline-offset:2px; border-radius:12px; }
.public-badges { margin-top:27px; }

.photo-source-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:-6px 0 18px; }
.photo-source-actions button { min-height:46px; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 10px; border:1px solid #47474b; border-radius:11px; background:#242428; color:#dddde1; font:inherit; font-size:11px; font-weight:800; }
.photo-source-actions button:first-child { border-color:#656569; color:var(--app-accent-light); background:#29292d; }
.photo-source-actions button:hover { background:#2e2e32; }
.photo-source-actions button:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }

/* Perfil real: mídia persistente sem perder os campos em edição. */




.adjust-cover-button { min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:7px; margin-top:-10px; border:1px solid #4c4c50; border-radius:10px; background:#242428; color:var(--app-accent); font-size:12px; font-weight:800; }
.adjust-cover-button:hover { background:#2c2c30; }
.adjust-cover-button:focus-visible,.cover-crop-cancel:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.community-visibility-panel { margin-top:16px; padding:15px; border:1px solid #3b3b3f; border-radius:14px; background:#222226; }
.community-visibility-panel>label { display:grid; gap:8px; color:var(--ink); font-size:13px; }
.community-visibility-panel select { width:100%; min-height:46px; padding:0 12px; border:1px solid #46464a; border-radius:10px; background:#1b1b1f; color:var(--ink); font:inherit; }
.community-visibility-panel>p { margin-top:8px; color:var(--muted); font-size:11px; line-height:1.45; }
.community-viewer-list { display:grid; gap:2px; margin-top:13px; }
.community-viewer-list>label { min-height:54px; display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:9px; border-top:1px solid #37373b; }
.community-viewer-list .avatar { width:34px; height:34px; }
.community-viewer-list b,.community-viewer-list small { display:block; }
.community-viewer-list b { font-size:12px; }.community-viewer-list small { margin-top:2px; color:var(--muted); font-size:10px; }
.community-viewer-list input { width:18px; height:18px; accent-color:var(--blue); }
.community-viewer-list>p { padding:12px 0 3px; color:var(--muted); font-size:11px; }
.profile-avatar-picker { position:relative; width:76px; height:76px; margin:-32px 0 8px 13px; padding:0; overflow:visible; border:3px solid var(--canvas); border-radius:50%; background:transparent; }
.profile-avatar-picker .avatar { width:100%; height:100%; }
.profile-avatar-picker i { position:absolute; right:-3px; bottom:-3px; width:27px; height:27px; display:grid; place-items:center; border:2px solid var(--canvas); border-radius:50%; background:var(--blue); color:#141418; font-style:normal; }
.profile-avatar-edit-row { display:flex; align-items:center; gap:14px; min-height:58px; }
.profile-avatar-edit-row .profile-avatar-picker { flex:0 0 auto; }
.adjust-avatar-button { min-height:39px; display:inline-flex; align-items:center; justify-content:center; gap:7px; margin-top:-22px; padding:0 13px; border:1px solid #4c4c50; border-radius:10px; background:#242428; color:var(--app-accent); font-size:11px; font-weight:800; }
.adjust-avatar-button:focus-visible,.own-profile-avatar:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.profile-save-top { min-width:72px; min-height:38px; padding:0 13px; border:1px solid #59595d; border-radius:10px; background:#29292d; color:var(--app-accent); font:inherit; font-size:12px; font-weight:800; }
.profile-save-top:disabled { cursor:wait; opacity:.62; }
.profile-save-top:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.own-profile-avatar { display:block; margin:0; padding:0; border:0; border-radius:50%; background:transparent; }
.own-profile-avatar .avatar { display:block; }
.route-node.waypoint { flex:.55; }
.route-node.waypoint i { width:8px; height:8px; margin-top:3px; border:0; background:#6c6c70; }
.upload-box { color:var(--ink); }
.upload-content h2 { color:#efeff3; font-family:'Manrope',system-ui,sans-serif; font-size:15px; font-weight:800; letter-spacing:0; line-height:1.25; text-transform:none; }
.upload-content p { color:#b9b9bd; }
.route-line { position:relative; display:grid; grid-template-columns:max-content 1fr max-content; align-items:start; }
.route-line::before { content:''; position:absolute; z-index:0; top:7px; left:7px; right:7px; height:2px; background:#4a4a4e; }
.route-node { z-index:1; display:flex; flex:initial; flex-direction:column; align-items:flex-start; min-width:max-content; }
.route-node span { display:none; }
.route-node i { flex:0 0 auto; }
.route-node.waypoint { justify-self:center; min-width:8px; }
.route-node.rank { align-items:flex-end; justify-self:end; text-align:right; }
.route-node small { margin-top:8px; }
.route-node b { margin-top:2px; }
.crop-cover-screen { padding-bottom:38px; }
.crop-cover-header { margin-top:30px; }
.crop-cover-header h1 { font-size:32px; }
.crop-cover-header p { max-width:38ch; margin-top:8px; color:#afafb3; font-size:13px; line-height:1.5; }
.cover-crop-stage { position:relative; width:100%; aspect-ratio:48/13; margin-top:28px; overflow:hidden; border:1px solid #56565a; border-radius:14px; background:#202024; touch-action:none; cursor:grab; }
.cover-crop-stage:active { cursor:grabbing; }
.cover-crop-stage>img,.cover-crop-stage>canvas { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; user-select:none; pointer-events:none; }
.cover-crop-stage>span { position:absolute; inset:9px; border:1px solid rgba(var(--app-accent-rgb),.44); border-radius:8px; pointer-events:none; }
.cover-crop-hint { margin-top:10px; color:#a0a0a4; font-size:11px; line-height:1.45; }
.cover-crop-controls { display:grid; gap:20px; margin-top:27px; }
.cover-crop-controls label { display:grid; gap:10px; }
.cover-crop-controls label>span { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#e1e1e5; font-size:12px; }
.cover-crop-controls label>span small { color:#96969a; font-size:10px; font-weight:600; }
.cover-crop-controls output { color:var(--app-accent); font-weight:800; }
.cover-crop-controls input[type='range'] { width:100%; height:32px; margin:0; accent-color:var(--blue); cursor:pointer; }
.crop-avatar-screen { padding-bottom:38px; }
.avatar-crop-stage { position:relative; width:min(82vw,330px); aspect-ratio:1; margin:28px auto 0; overflow:hidden; border:2px solid var(--app-accent); border-radius:50%; background:#202024; box-shadow:0 6px 8px rgba(0,0,0,.28); touch-action:none; cursor:grab; }
.avatar-crop-stage:active { cursor:grabbing; }
.avatar-crop-stage>canvas { position:absolute; inset:0; width:100%; height:100%; user-select:none; pointer-events:none; }
.avatar-crop-stage>span { position:absolute; inset:7%; border:1px solid rgba(var(--app-accent-rgb),.42); border-radius:50%; pointer-events:none; }
.avatar-crop-hint { max-width:34ch; margin:12px auto 0; text-align:center; }
.avatar-crop-controls { margin-top:24px; }
.avatar-preview-screen>header { margin-top:31px; text-align:center; }
.avatar-preview-screen>header h1 { font-size:32px; }
.avatar-preview-screen>header p { margin-top:7px; color:var(--muted); font-size:13px; }
.avatar-preview-large { width:min(72vw,290px); aspect-ratio:1; margin:34px auto; padding:5px; border:2px solid var(--app-accent); border-radius:50%; background:#19191d; }
.avatar-preview-large .avatar { width:100%; height:100%; display:grid; place-items:center; border-radius:50%; font-size:54px; }
.avatar-preview-actions { display:grid; gap:10px; }
.avatar-preview-actions .checkin-cta,.avatar-preview-actions .cover-crop-cancel { min-height:52px; margin:0; }
@media (prefers-reduced-motion:reduce) { .avatar-crop-stage { scroll-behavior:auto; } }

/* Seletor de data do desafio: substitui o calendário branco nativo. */
.challenge-date-field { display:grid; gap:7px; }
.challenge-date-field>span { color:var(--ink); font-size:13px; font-weight:700; }
.challenge-date-trigger { width:100%; min-height:58px; display:grid; grid-template-columns:36px 1fr 20px; align-items:center; gap:10px; padding:8px 12px; border:1px solid #444448; border-radius:12px; background:#222226; color:#a0a0a4; text-align:left; transition:border-color .18s ease-out,background .18s ease-out; }
.challenge-date-trigger>svg:first-child { width:36px; height:36px; padding:8px; border-radius:10px; background:#2b2b2f; color:var(--blue); }
.challenge-date-trigger>svg:last-child { transition:transform .18s ease-out; }
.challenge-date-trigger[aria-expanded='true'] { border-color:var(--app-accent-deep); background:#252529; }
.challenge-date-trigger[aria-expanded='true']>svg:last-child { transform:rotate(180deg); }
.challenge-date-trigger.has-value>span>b { color:var(--app-accent-light); }
.challenge-date-trigger span,.challenge-date-trigger b,.challenge-date-trigger small { display:block; }
.challenge-date-trigger b { color:#c8c8cc; font-size:14px; font-weight:800; text-transform:capitalize; }
.challenge-date-trigger small { margin-top:2px; color:#a2a2a6; font-size:10px; font-weight:500; }
.challenge-date-trigger:focus-visible,.challenge-date-picker button:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.challenge-date-picker { padding:14px; border:1px solid #4a4a4e; border-radius:14px; background:#1e1e22; animation:challenge-calendar-in .18s cubic-bezier(.22,1,.36,1); transform-origin:top center; }
.challenge-date-picker header { display:grid; grid-template-columns:38px 1fr 38px; align-items:center; }
.challenge-date-picker header b { color:#eaeaee; font-size:14px; text-align:center; text-transform:capitalize; }
.challenge-date-picker header button { width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:10px; background:#29292d; color:#cacace; }
.challenge-date-picker header button:last-child svg { transform:rotate(-90deg); }
.challenge-date-week,.challenge-date-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.challenge-date-week { margin:15px 0 5px; }
.challenge-date-week span { color:#87878b; font-size:9px; font-weight:800; text-align:center; }
.challenge-date-day,.challenge-date-blank { aspect-ratio:1; min-width:0; }
.challenge-date-day { border:0; border-radius:9px; background:transparent; color:#e0e0e4; font-size:12px; font-weight:700; }
.challenge-date-day:not(:disabled):hover { background:#2f2f33; }
.challenge-date-day.today { box-shadow:inset 0 0 0 1px #727276; color:var(--app-accent-light); }
.challenge-date-day.selected { background:var(--blue); color:#141418; box-shadow:none; }
.challenge-date-day:disabled { color:#5c5c60; cursor:not-allowed; }
.challenge-date-picker footer { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; padding-top:11px; border-top:1px solid #353539; }
.challenge-date-picker footer button { min-height:32px; padding:0 5px; border:0; background:transparent; color:var(--app-accent); font-size:11px; font-weight:800; }
@keyframes challenge-calendar-in { from { opacity:0; transform:translateY(-5px) scale(.985); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .challenge-date-picker { animation:none; }.challenge-date-trigger,.challenge-date-trigger>svg:last-child { transition:none; } }
.push-setting-button { min-width:64px; min-height:34px; padding:0 11px; border:1px solid #5b5b5f; border-radius:10px; background:#27272b; color:var(--app-accent); font-size:10px; font-weight:800; }
.push-setting-button.active { border-color:#3f684c; background:#213126; color:#8dda9e; }
.push-setting-button:disabled { opacity:.55; }
.push-setting-button:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.cover-crop-actions { display:grid; grid-template-columns:.8fr 1.4fr; gap:10px; margin-top:30px; }
.cover-crop-actions .checkin-cta { min-height:52px; margin:0; border-radius:12px; font-size:14px; }
.cover-crop-cancel { min-height:52px; border:1px solid #46464a; border-radius:12px; background:#222226; color:#d5d5d9; font-size:13px; font-weight:800; }
.cover-crop-cancel:disabled,.cover-crop-actions .checkin-cta:disabled { cursor:wait; opacity:.65; }

/* Resumo de evolução: a badge ocupa o centro do arco e a meta seguinte fecha a leitura. */
.route-card,.route-card.compact { position:relative; width:100%; margin:22px 0 3px; padding:18px 18px 14px; overflow:hidden; border:1px solid rgba(var(--rank-tier-rgb,var(--app-accent-rgb)),.45); border-radius:16px; background:radial-gradient(circle at 50% 53%,rgba(var(--rank-tier-rgb,var(--app-accent-rgb)),.1),transparent 43%),#1e1e22; color:var(--ink); font:inherit; text-align:left; cursor:pointer; transition:border-color .18s ease-out,transform .18s ease-out; }
.route-card:hover { border-color:var(--rank-tier,var(--app-accent)); transform:translateY(-1px); }
.route-card:active { transform:translateY(0); }
.route-card-heading,.route-card.compact .route-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.route-card-heading div { min-width:0; }
.route-card-heading h2,.route-card.compact .route-card-heading h2 { margin:0; color:#efeff3; font-size:27px; line-height:.92; overflow-wrap:anywhere; }
.route-card .route-card-heading span { display:block; margin-top:5px; color:var(--rank-tier,var(--app-accent)); font-size:9px; font-weight:800; letter-spacing:.09em; }
.route-card .route-card-heading p { flex:0 0 auto; margin:1px 0 0; color:#b9b9bd; font-family:'Manrope',system-ui,sans-serif; font-size:10px; line-height:1.35; text-align:right; }
.route-card-heading p b { display:block; color:var(--app-accent); font-size:12px; }
.route-gauge { position:relative; width:min(100%,306px); height:181px; margin:4px auto 0; }
.route-gauge svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.route-gauge-tick { stroke:#424246; stroke-linecap:round; stroke-width:5; }
.route-gauge-tick.done { stroke:var(--app-accent); filter:drop-shadow(0 2px 2px rgba(var(--app-accent-rgb),.3)); }
.route-gauge-tick.current { stroke:var(--app-accent-light); stroke-width:7; filter:drop-shadow(0 3px 5px rgba(var(--app-accent-rgb),.55)); }
.route-card.complete .route-gauge-tick.done { stroke:#78cf95; }
.route-gauge-tick.prompt,.rank-theme .route-gauge-tick.prompt { stroke:var(--app-accent); stroke-width:7; opacity:.92; filter:drop-shadow(0 3px 5px rgba(var(--app-accent-rgb),.58)); }
.route-gauge-start,.route-gauge-end { position:absolute; bottom:0; width:25px; color:#8b8b8f; font-size:8px; font-weight:800; line-height:1; text-align:center; }
.route-gauge-start { left:10.5%; transform:translateX(-50%); }
.route-gauge-end { right:10.5%; transform:translateX(50%); }
.route-current-badge { position:absolute; top:52px; left:50%; width:144px; display:grid; justify-items:center; transform:translateX(-50%); text-align:center; }
.route-current-badge::before { content:''; position:absolute; top:8px; left:50%; width:74px; height:74px; border-radius:50%; background:rgba(var(--app-accent-rgb),.11); filter:blur(14px); transform:translateX(-50%); pointer-events:none; }
.route-current-badge img { position:relative; width:82px; height:82px; display:block; object-fit:contain; filter:drop-shadow(0 7px 7px rgba(0,0,0,.52)); }
.route-current-badge.preview img { opacity:.36; filter:grayscale(1) drop-shadow(0 5px 5px rgba(0,0,0,.38)); }
.route-current-badge small { margin-top:1px; color:#9e9ea2; font-size:7px; font-weight:800; letter-spacing:.11em; }
.route-current-badge b { max-width:144px; margin-top:2px; overflow:hidden; color:var(--app-accent-light); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:17px; line-height:.95; text-overflow:ellipsis; white-space:nowrap; }
.route-current-badge em { margin-top:4px; color:#bdbdc1; font-size:8px; font-style:normal; font-weight:800; letter-spacing:.04em; }
.route-current-badge.preview b { color:#b1b1b5; }
.route-stage-summary { display:grid; grid-template-columns:1fr 1px 1fr; align-items:center; gap:14px; margin:9px 0 0; padding:14px 0 1px; border-top:1px solid #37373b; }
.route-stage-summary>i { width:1px; height:28px; background:#424246; }
.route-stage-stat { display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:8px; min-width:0; }
.route-stage-stat strong { grid-row:1 / 3; color:var(--app-accent-light); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:29px; line-height:1; }
.route-stage-stat b { overflow:hidden; color:#e5e5e9; font-size:9px; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.route-stage-stat span { margin-top:3px; overflow:hidden; color:#86868a; font-size:7px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.route-stage-stat.remaining strong { color:#aeaeb2; }
.route-card.complete .route-stage-stat.remaining strong { color:#78cf95; }
.route-card .route-next-rank { display:grid; grid-template-columns:38px minmax(0,1fr) auto 18px; align-items:center; gap:10px; min-height:56px; margin:1px 0 0; padding:12px 0 0; border-top:1px solid #3c3c40; color:var(--ink); }
.route-next-rank>img { width:38px; height:38px; display:block; object-fit:contain; filter:drop-shadow(0 4px 4px rgba(0,0,0,.4)); }
.route-next-rank div { min-width:0; }
.route-next-rank small,.route-next-rank b { display:block; }
.route-next-rank small { color:#959599; font-size:7px; font-weight:800; letter-spacing:.09em; }
.route-next-rank b { margin-top:2px; overflow:hidden; color:#e5e5e9; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:15px; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.route-next-rank strong { color:var(--app-accent); font-size:10px; font-weight:800; white-space:nowrap; }
.route-next-rank>svg { color:#86868a; transform:rotate(-90deg); }
.route-card.complete .route-next-rank strong { color:#8bd7a2; }
@media (max-width:350px) {
  .route-card,.route-card.compact { padding-inline:14px; }
  .route-card-heading h2,.route-card.compact .route-card-heading h2 { font-size:24px; }
  .route-gauge { height:174px; }
  .route-current-badge { top:50px; }
  .route-current-badge img { width:60px; height:60px; }
  .route-stage-summary { gap:9px; }
  .route-stage-stat { column-gap:6px; }
  .route-stage-stat strong { font-size:25px; }
  .route-stage-stat b { font-size:8px; }
}

/* Ligas: cada patente mantém sua cor própria e o destaque global acompanha a liga conquistada. */
.rank-theme { --rank-tier:#958D7E; --rank-tier-rgb:149,141,126; position:relative; background:linear-gradient(180deg,rgba(var(--rank-tier-rgb),.15) 0,rgba(var(--rank-tier-rgb),.055) 22%,rgba(var(--rank-tier-rgb),0) 54%); isolation:isolate; }
.rank-theme-beginner { --rank-tier:#D28A50; --rank-tier-rgb:210,138,80; }
.rank-theme-intermediate { --rank-tier:#60BCDD; --rank-tier-rgb:96,188,221; }
.rank-theme-advanced { --rank-tier:#E4B65D; --rank-tier-rgb:228,182,93; }
.rank-theme-max { --rank-tier:#F04438; --rank-tier-rgb:240,68,56; }
.rank-theme::before { content:''; position:absolute; z-index:20; inset:0 0 auto; height:min(720px,100%); padding:1px; border-radius:inherit; background:linear-gradient(180deg,var(--rank-tier) 0%,rgba(var(--rank-tier-rgb),.72) 25%,rgba(var(--rank-tier-rgb),.2) 58%,rgba(var(--rank-tier-rgb),0) 88%); pointer-events:none; -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }



.rank-theme .profile-user .avatar,.rank-theme .public-avatar .avatar { box-shadow:0 0 0 2px var(--rank-tier),0 7px 18px rgba(0,0,0,.38); }
.rank-theme .league-chip { width:max-content; max-width:100%; margin-top:10px; padding:6px 9px; border:1px solid rgba(var(--rank-tier-rgb),.55); background:rgba(var(--rank-tier-rgb),.1); color:var(--rank-tier); font-size:10px; letter-spacing:.035em; }
.rank-theme .league-chip svg { flex:0 0 auto; }
.rank-theme .profile-rank-row { align-items:center; }
.rank-theme .profile-rank-row .league-chip { margin-top:0; }
.rank-theme .route-card { border-color:rgba(var(--rank-tier-rgb),.45); background:radial-gradient(circle at 50% 53%,rgba(var(--rank-tier-rgb),.1),transparent 43%),#1e1e22; }
.rank-theme .route-gauge-tick.done,.rank-theme .route-card.complete .route-gauge-tick.done { stroke:var(--rank-tier); filter:drop-shadow(0 2px 2px rgba(var(--rank-tier-rgb),.32)); }
.rank-theme .route-gauge-tick.current { stroke:var(--rank-tier); stroke-width:7; filter:drop-shadow(0 3px 5px rgba(var(--rank-tier-rgb),.58)); }
.rank-theme .route-card-heading p b,.rank-theme .route-current-badge b,.rank-theme .route-stage-stat strong { color:var(--rank-tier); }
.rank-theme .route-current-badge::before { background:rgba(var(--rank-tier-rgb),.12); }
.rank-theme .patent-badge-icon img { filter:drop-shadow(0 4px 4px rgba(0,0,0,.46)) drop-shadow(0 5px 8px rgba(var(--rank-tier-rgb),.16)); }
@media (min-width:600px) { .rank-theme { border-radius:26px; } }

/* Patentes pin: a silhueta é o ícone. Sem placas, bordas ou brilho metálico. */
.rank-pin-tone-starting { --rank-tier:#958D7E; --rank-tier-rgb:149,141,126; }
.rank-pin-tone-beginner { --rank-tier:#D28A50; --rank-tier-rgb:210,138,80; }
.rank-pin-tone-intermediate { --rank-tier:#60BCDD; --rank-tier-rgb:96,188,221; }
.rank-pin-tone-advanced { --rank-tier:#E4B65D; --rank-tier-rgb:228,182,93; }
.rank-pin-tone-max { --rank-tier:#F04438; --rank-tier-rgb:240,68,56; }
.league-pin { display:block; width:18px; height:18px; flex:0 0 18px; object-fit:contain; }
.post-badge { background:rgba(var(--rank-tier-rgb,var(--app-accent-rgb)),.1); color:var(--rank-tier,var(--app-accent)); }
.post-badge img { filter:drop-shadow(0 1px 1px rgba(0,0,0,.16)); }
.rank-badge-preview,.rank-badge-preview.compact { border:0; border-radius:0; background:transparent; }
.rank-badge-preview img,.rank-theme .patent-badge-icon img,.patent-badge-icon img,
.rank-collection-item img,.rank-stop-badge { filter:drop-shadow(0 2px 2px rgba(0,0,0,.16)); }
.route-current-badge::before { display:none; }
.route-current-badge img { width:64px; height:64px; padding:4px; transform:translateY(5px); filter:drop-shadow(0 2px 2px rgba(0,0,0,.16)); }
.route-current-badge.preview img { opacity:.5; filter:grayscale(1); }
.route-current-badge small { margin-top:6px; }
.route-card.rank-pin-tone-starting .route-gauge-tick.prompt { stroke:var(--app-accent); }
.route-card .route-gauge-tick.done { stroke:var(--rank-tier,var(--app-accent)); }
.route-card .route-gauge-tick.current { stroke:var(--rank-tier,var(--app-accent)); filter:drop-shadow(0 2px 2px rgba(0,0,0,.14)); }
.route-card .route-card-heading p b,.route-card .route-current-badge b,
.route-card .route-stage-stat strong { color:var(--rank-tier,var(--app-accent)); }
.share-rank-badge { filter:drop-shadow(0 2px 2px rgba(0,0,0,.18)); }

/* Identidade centralizada: nenhuma capa ou área reservada para ela. */
.profile-toolbar { height:12px; }
.profile-toolbar .profile-settings { top:14px; right:14px; width:44px; height:44px; }
.profile-user.profile-identity-centered { margin-top:0; align-items:center; text-align:center; }
.profile-identity-centered .avatar { width:96px; height:96px; }
.profile-identity-centered .avatar-initial { display:grid; place-items:center; }
.profile-identity-centered h1 { max-width:100%; margin-top:16px; overflow-wrap:anywhere; text-align:center; }
.profile-identity-centered .handle { max-width:100%; text-align:center; overflow-wrap:anywhere; }
.profile-identity-centered .bio { margin:12px auto 0; text-align:center; overflow-wrap:anywhere; }
.profile-identity-centered .profile-rank-row { width:100%; justify-content:center; flex-wrap:wrap; gap:6px 14px; }
.profile-identity-centered .profile-rank-row .text-link { margin-left:0; min-height:44px; }
.profile-identity-centered .league-chip { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:32px; }
.public-profile.profile-identity-centered .league-chip { margin-inline:auto; }
.profile-identity-centered .public-avatar { display:grid; place-items:center; }
.profile-avatar-edit-row { min-height:96px; justify-content:center; flex-wrap:wrap; gap:12px; }
.profile-avatar-edit-row .profile-avatar-picker { margin:0; }
.profile-avatar-edit-row .adjust-avatar-button { margin:0; min-height:44px; }
.profile-save-top { min-height:44px; }
@media (max-width:360px) {
  .profile-identity-centered h1 { font-size:28px; }
  .route-current-badge img { width:70px; height:70px; }
}
@media (prefers-reduced-motion:reduce) {
  .rank-collection-item.unlocked img { animation:none; }
}

/* Rota dividida pelas ligas de cada marco, não pela cor de quem a consulta. */
.rank-league-section { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.rank-league-heading { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.rank-league-heading .league-pin { width:30px; height:30px; flex-basis:30px; }
.rank-league-heading>div { flex:1; min-width:0; }
.rank-league-heading h3,.rank-collection-league h3 { margin:0; color:var(--rank-tier); font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:24px; line-height:1; }
.rank-league-heading p { margin:6px 0 0; color:var(--muted); font-size:10px; }
.rank-league-heading>span { color:var(--rank-tier); font-size:10px; font-weight:800; white-space:nowrap; }
.rank-league-section .rank-stop { min-height:68px; }
.rank-league-section .rank-stop.current { background:rgba(var(--rank-tier-rgb),.1); }
.rank-league-section .rank-stop.current b,.rank-league-section .rank-stop.current em { color:var(--rank-tier); }
.rank-league-section .rank-stop.done em { color:var(--rank-tier); }
.rank-league-section .rank-stop.locked { opacity:1; }
.rank-league-section .rank-stop.locked .rank-stop-badge { opacity:1; filter:none; }
.rank-league-section .rank-stop.locked b { color:#bebec2; }
.rank-league-section .rank-stop::after { background:rgba(var(--rank-tier-rgb),.28); }
.rank-collection-league { margin-top:28px; }
.rank-collection-league h3 { margin-bottom:16px; font-size:20px; }
.rank-collection-league .rank-collection-item.locked img { opacity:1; filter:none; }
.rank-collection-league .rank-collection-item.locked b { color:#bebec2; }
.patent-badge-strip,.profile-evolution .patent-badge-strip { flex-wrap:wrap; gap:4px; overflow:visible; padding:4px 0; }
.patent-badge-icon,.profile-evolution .patent-badge-icon,.public-badges .patent-badge-icon { width:44px; min-height:48px; height:48px; gap:0; justify-content:center; border-radius:10px; }
.patent-badge-icon img,.profile-evolution .patent-badge-icon img,.public-badges .patent-badge-icon img { width:34px; height:34px; }
.patent-badge-icon[aria-expanded="true"] { background:rgba(var(--app-accent-rgb),.12); }
.patent-badge-icon:hover { background:rgba(var(--app-accent-rgb),.08); }
.patent-pin-shine { display:block; position:relative; width:34px; height:34px; }
.patent-pin-shine::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.65) 49%,transparent 60%); background-size:300% 100%; background-position:150% 0; -webkit-mask:var(--pin-mask) center/contain no-repeat; mask:var(--pin-mask) center/contain no-repeat; animation:patent-shimmer 7s ease-out var(--shine-delay,0s) infinite; }
.patent-badge-detail { margin:8px 0 0; color:var(--ink); font-size:12px; line-height:1.6; }
.patent-badge-detail[hidden] { display:none; }
@keyframes patent-shimmer { 0%,74% { background-position:150% 0; opacity:0; } 78% { opacity:.75; } 93%,100% { background-position:-150% 0; opacity:0; } }
@media (prefers-reduced-motion:reduce) { .patent-pin-shine::after { animation:none; display:none; } }

/* Card 9:16: a mesma composição normalizada da imagem exportada em 1080px. */
.share-league-preview { container-type:inline-size; }
.share-league-preview::after { display:none; }
.share-league-card { position:absolute; z-index:2; left:4.444%; right:4.444%; bottom:7.552%; height:40.741cqw; border:1px solid color-mix(in srgb,var(--overlay-accent) 80%,transparent); border-radius:3.148cqw; background:linear-gradient(180deg,color-mix(in srgb,var(--overlay-accent) 48%,transparent),rgba(16,16,15,.94)); backdrop-filter:blur(13px); -webkit-backdrop-filter:blur(13px); color:#fff; }
.share-league-card.has-companions { height:50.926cqw; }
.share-league-identity { position:absolute; left:3.148cqw; top:6.667cqw; width:46.296cqw; }
.share-league-identity small { display:block; font-size:3.148cqw; font-weight:800; line-height:1.3; }
.share-league-identity>b { display:block; margin-top:1.111cqw; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:5.926cqw; font-weight:800; line-height:1.1; text-transform:uppercase; }
.share-league-identity>b,.share-league-identity small,.share-league-identity>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.share-league-identity>span { display:block; margin-top:3.148cqw; font-size:2.593cqw; font-weight:700; color:#efeff3; }
.share-league-achievement { position:absolute; right:4.815cqw; top:-4.444cqw; width:29.63cqw; margin:0; text-align:center; }
.share-league-achievement .share-rank-badge { position:static!important; display:block; width:24.074cqw!important; height:24.074cqw!important; margin:0 auto; filter:drop-shadow(0 2px 2px rgba(0,0,0,.18)); }
.share-league-achievement figcaption { margin-top:1.111cqw; }
.share-league-achievement b { display:block; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:4.444cqw; font-weight:800; line-height:1.05; white-space:nowrap; }
.share-league-achievement figcaption span { display:block; margin-top:.926cqw; font-size:2.778cqw; font-weight:800; line-height:1.2; white-space:nowrap; }
.share-league-achievement figcaption small { display:block; margin-top:.463cqw; font-size:2.407cqw; font-weight:600; line-height:1.2; }
.share-league-brand { position:absolute; right:3.148cqw; bottom:2.222cqw; font-family:'Sofia Sans Extra Condensed',sans-serif;font-style:italic; font-size:2.407cqw; font-weight:800; }
.share-league-companions { position:absolute; left:3.148cqw; right:3.148cqw; top:37.593cqw; }
.share-league-companions>small { display:block; margin-bottom:1.296cqw; font-size:2.037cqw; font-weight:800; }
.share-league-companions>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.111cqw; }
.share-league-companions>div>span { display:flex; align-items:center; gap:1.111cqw; min-width:0; }
.share-league-companions .avatar { width:4.444cqw; height:4.444cqw; border-radius:50%; opacity:1; font-size:1.852cqw; }
.share-league-companions b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:1.852cqw; }
.share-league-note { display:flex; align-items:center; justify-content:center; gap:8px; margin:16px 0 0; color:var(--muted); font-size:11px; text-align:center; }

/* O destaque do app acompanha a melhor liga já conquistada; a marca e as cores semânticas permanecem próprias. */
.app { --app-accent:#4DA3FF; --app-accent-rgb:77,163,255; --app-accent-light:#9CCBFF; --app-accent-deep:#2F7FD9; --app-accent-ink:#04121F; --blue:var(--app-accent); accent-color:var(--app-accent); }
/* Cada liga usa as mesmas cores do seu pin de patente (assets/badges/rank-pins.js). */
.app[data-accent-league="starting"] { --app-accent:#E4B65D; --app-accent-rgb:228,182,93; --app-accent-light:#F8D982; --app-accent-deep:#A96F18; --app-accent-ink:#171614; }
.app[data-accent-league="beginner"] { --app-accent:#E09A62; --app-accent-rgb:224,154,98; --app-accent-light:#F3BE8A; --app-accent-deep:#9E512A; --app-accent-ink:#1A0D04; }
.app[data-accent-league="intermediate"] { --app-accent:#6CCBEB; --app-accent-rgb:108,203,235; --app-accent-light:#B2E7F5; --app-accent-deep:#247EA7; --app-accent-ink:#03141C; }
.app[data-accent-league="advanced"] { --app-accent:#E4B65D; --app-accent-rgb:228,182,93; --app-accent-light:#FFE7A3; --app-accent-deep:#B87524; --app-accent-ink:#171614; }
.app[data-accent-league="max"] { --app-accent:#F2574B; --app-accent-rgb:242,87,75; --app-accent-light:#FF9A80; --app-accent-deep:#B52229; --app-accent-ink:#1A0505; }
.app .checkin-cta,.app .button.primary { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent) 52%,var(--app-accent-deep)); color:var(--app-accent-ink); box-shadow:0 8px 22px rgba(var(--app-accent-rgb),.18); }
.app .checkin-cta:hover,.app .button.primary:hover { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent) 67%,var(--app-accent-deep)); }
.app .nav-item.center { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent-deep)); color:var(--app-accent-ink); box-shadow:0 5px 15px rgba(var(--app-accent-rgb),.22); }
.app .profile-settings,.app .auth-link,.app .profile-save-top { border-color:rgba(var(--app-accent-rgb),.45); background:rgba(var(--app-accent-rgb),.12); color:var(--app-accent-light); }
.app .button.secondary { color:var(--app-accent-light); }
.app .avatar-initial { background:rgba(var(--app-accent-rgb),.17); color:var(--app-accent-light); }
.app .patent-badge-icon[aria-expanded="true"] { background:rgba(var(--app-accent-rgb),.12); }
.app .patent-badge-icon:hover { background:rgba(var(--app-accent-rgb),.08); }
.app .progress-heading>div>span,.app .rank-theme .route-card .route-card-heading span { color:var(--app-accent); }
.app .boot-screen,.app .session-error-screen { background:radial-gradient(circle at 62% 30%,rgba(var(--app-accent-rgb),.12),transparent 36%),var(--canvas); }
.app .session-error-icon { border-color:rgba(var(--app-accent-rgb),.42); background:rgba(var(--app-accent-rgb),.09); }

/* Destaques compartilhados entre telas seguem a liga, sem recolorir as patentes de outras ligas. */
.app::before { background:radial-gradient(circle at 94% 0%,rgba(var(--app-accent-rgb),.12),transparent 28%),radial-gradient(circle at 0% 62%,rgba(var(--app-accent-rgb),.045),transparent 31%); }
.app .camera-capture-stage { border-color:rgba(var(--app-accent-rgb),.5); background:radial-gradient(circle at 50% 42%,rgba(var(--app-accent-rgb),.1),#1e1e22 68%); }
.app .camera-capture-stage>span,.app .calendar-day.done>i,.app .upload-box.has-photo .upload-icon { background:var(--app-accent); }
.app .camera-capture-stage:focus-visible,.app .edit-photo-fab:focus-visible,.app .photo-filter:focus-visible,.app .photo-editor-controls button:focus-visible,.app .overlay-color-picker button:focus-visible,.app .share-close-button:focus-visible { outline-color:var(--app-accent-light); }
.app .edit-photo-fab { background:var(--app-accent-light); }
.app .editor-control-title>button,.app .photo-ready-row button,.app .photo-filter.active,.app .post-community { color:var(--app-accent-light); }
.app .photo-filter.active i { outline-color:var(--app-accent); }
.app .photo-range input { accent-color:var(--app-accent); }

.app .rank-summary { border-color:rgba(var(--app-accent-rgb),.36); background:radial-gradient(circle at 100% 0%,rgba(var(--app-accent-rgb),.1),transparent 45%),#1e1e22; }
.app .rank-summary::after { background:var(--app-accent); opacity:.48; }
.app .rank-summary .progress { background:rgba(var(--app-accent-rgb),.16); }
.app .rank-summary .progress i,.app .recap-challenge i b { background:linear-gradient(90deg,var(--app-accent-light),var(--app-accent),var(--app-accent-deep)); }
.app .rank-summary h2 svg { color:var(--app-accent); }
.app .recap-card { border-color:rgba(var(--app-accent-rgb),.42); background:radial-gradient(circle at 90% 9%,rgba(var(--app-accent-rgb),.18),transparent 30%),#1e1e22; }
.app .badge-gallery .section-head span,.app .progress-heading>b small { color:var(--app-accent-light); }
.app .route-card .route-next-rank strong { color:var(--rank-tier,var(--app-accent)); }

.app .calendar-summary { border-color:rgba(var(--app-accent-rgb),.36); }
.app .calendar-summary span { color:var(--app-accent-light); }
.app .calendar-day.done { background:rgba(var(--app-accent-rgb),.25); border-color:rgba(var(--app-accent-rgb),.7); }
.app .challenge-date-trigger[aria-expanded='true'],.app .challenge-date-picker { border-color:rgba(var(--app-accent-rgb),.55); }
.app .challenge-date-day.today { box-shadow:inset 0 0 0 1px var(--app-accent); color:var(--app-accent-light); }
.app .challenge-date-picker footer button { color:var(--app-accent-light); }

.app .follow-request { background:rgba(var(--app-accent-rgb),.13); color:var(--app-accent-light); }
.app .follow-request>svg { color:var(--app-accent); }
.app .follow-button:not(.following) { border-color:rgba(var(--app-accent-rgb),.45); background:rgba(var(--app-accent-rgb),.09); color:var(--app-accent-light); }
.app .discover-hero { border-color:rgba(var(--app-accent-rgb),.4); background:linear-gradient(135deg,rgba(var(--app-accent-rgb),.1),#17171b 67%); }
.app .my-community,.app .event-card,.app .created-community { border-color:rgba(var(--app-accent-rgb),.3); }
.app .my-community span,.app .event-card>span { color:var(--app-accent-light); }
.app .share-close-button,.app .share-color-meta button { color:var(--app-accent-light); }
.app .share-color-meta button { background:rgba(var(--app-accent-rgb),.17); }

/* Estados ativos, mídia e ações secundárias usam a mesma fonte de cor. */
.app .day-cell.today-prompt,.app .calendar-day.today:not(.done):not(.freeze) { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent-deep)); border-color:var(--app-accent); color:#151519; }
.app .calendar-day.today:not(.done):not(.freeze)>span { color:#151519; }
.app .legend.today { color:var(--app-accent-light); }
.app .upload-box.has-photo { border-color:rgba(var(--app-accent-rgb),.65); }
.app .photo-source-actions button:first-child,.app .adjust-avatar-button,.app .adjust-cover-button { border-color:rgba(var(--app-accent-rgb),.48); background:rgba(var(--app-accent-rgb),.1); color:var(--app-accent-light); }
.app .cover-crop-stage,.app .avatar-crop-stage,.app .avatar-preview-large { border-color:var(--app-accent); }
.app .cover-crop-stage>span,.app .avatar-crop-stage>span { border-color:rgba(var(--app-accent-rgb),.5); }
.app .cover-crop-controls output,.app .community-cover-picker { color:var(--app-accent-light); }
.app .community-cover-picker { border-color:rgba(var(--app-accent-rgb),.4); }
.app .profile-week-empty>svg,.app .archive-heading>span,.app .community-zero-state>svg { color:var(--app-accent-light); }
.app .featured-badge small,.app .post-tags { color:var(--app-accent-light); }
.app .rank-theme .featured-badge small,.app .rank-theme .profile-week-empty>svg { color:var(--rank-tier); }
.app .community-cover-fallback,.app .custom-color-control>svg,.app .community-only-explainer { color:var(--app-accent-light); }

.app .invite-user-button,.app .tag-athlete.active,.app .onboarding-interest.active,.app .onboarding-choice button.active { border-color:var(--app-accent); background:rgba(var(--app-accent-rgb),.16); color:var(--app-accent-light); }
.app .tag-athlete.active>svg,.app .privacy-note svg,.app .mini-action,.app .creator-badge i { color:var(--app-accent); }
.app .community-owner-note,.app .follow-request small,.app .challenge-card header span,.app .challenge-card footer svg { color:var(--app-accent-light); }
.app .challenge-card,.app .challenge-progress { border-color:rgba(var(--app-accent-rgb),.38); }
.app .challenge-metric b { color:var(--app-accent-light); }
.app .challenge-progress i { background:linear-gradient(90deg,var(--app-accent-light),var(--app-accent-deep)); }
.app .push-setting-button:not(.active) { border-color:rgba(var(--app-accent-rgb),.48); background:rgba(var(--app-accent-rgb),.1); color:var(--app-accent-light); }
.app .moderation-label,.app .moderation-card-copy>small,.app .moderation-report small,.app .moderation-report>span { color:var(--app-accent-light); }
.app .moderation-approve { background:linear-gradient(135deg,var(--app-accent-light),var(--app-accent-deep)); }
.app .toast { background:var(--app-accent-light); color:var(--app-accent-ink); }
.app .recap-entry>span,.app .recap-entry>svg,.app .recap-brand,.app .recap-card>p,.app .recap-card h2 em,.app .recap-stats b { color:var(--app-accent-light); }
@media (max-width:350px) { .route-current-badge img { width:60px; height:60px; } }
.app .settings-row.sign-out-row, .app .settings-row.sign-out-row svg { color:#ff8a7a; }
