﻿/* Brand tokens: ../assets/css/cw-brand.css */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:linear-gradient(180deg,#fffaf8 0%,#fbf8f6 55%,#f8f9fb 100%);color:var(--text);line-height:1.5;
}
button,input{font:inherit}button{border:0;cursor:pointer}
a{text-decoration:none;color:inherit}
img{display:block}

/* ===== NAV ===== */
.navbar{
  position:sticky;top:0;z-index:1000;height:72px;
  background:rgba(255,252,251,.88);backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(0,0,0,.06)
}
.nav-inner{max-width:1400px;height:100%;margin:auto;padding:0 28px;display:flex;align-items:center;gap:28px}
.logo{font-size:25px;font-weight:900;letter-spacing:-1.2px;white-space:nowrap}
.logo:not(.cw-brand-logo) b{background:linear-gradient(90deg,var(--accent),var(--lavender));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{display:flex;gap:23px;align-items:center}
.nav-links a{font-size:14px;color:#666;font-weight:650;position:relative;padding:4px 0}
.nav-links a:hover,.nav-links a.active{color:#111}
.nav-links a.buddy-nav,
.nav-links a.nav-plan{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--accent);background:var(--accent-soft);
  padding:10px 14px;border-radius:999px;margin:-3px 0;
  white-space:nowrap;
}
.nav-links a.nav-plan{color:#8f4f68;font-weight:800}
.nav-links a.buddy-nav.active{background:#ffe1e8;color:#d94766}
.nav-links a.nav-plan::after,
.nav-links a.buddy-nav::after{display:none!important}
.nav-links a.active:not(.nav-plan):not(.buddy-nav)::after{content:"";position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);width:18px;height:3px;background:#111;border-radius:9px}
.search{margin-left:auto;width:min(330px,28vw);height:43px;background:linear-gradient(135deg,#fff1f4,#f1efff 70%);border:1px solid #eee6f0;border-radius:24px;display:flex;align-items:center;gap:9px;padding:0 15px;color:#8d8d8d}
.search input{border:0;outline:0;background:transparent;width:100%;font-size:13px;color:#333}
.publish{background:linear-gradient(135deg,var(--accent),#ff8a7b);color:#fff;padding:10px 16px;border-radius:22px;font-weight:800;font-size:13px;box-shadow:0 7px 16px rgba(255,111,145,.2)}
.user-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover}

/* ===== HERO ===== */
.hero-wrap{max-width:1400px;margin:22px auto 0;padding:0 28px}
.hero{
  min-height:390px;border-radius:28px;overflow:hidden;position:relative;
  background:
    radial-gradient(circle at 76% 22%,rgba(255,215,106,.55),transparent 18%),
    radial-gradient(circle at 92% 78%,rgba(119,216,197,.46),transparent 20%),
    linear-gradient(135deg,#ffdfe8 0%,#e8e1ff 50%,#dff7f0 100%);
  border:1px solid rgba(255,255,255,.82)
}
.hero:before{content:"";position:absolute;right:-80px;top:-100px;width:310px;height:310px;border:54px solid rgba(255,255,255,.28);border-radius:50%}
.hero:after{content:"";position:absolute;right:180px;bottom:-96px;width:240px;height:240px;border:34px solid rgba(255,255,255,.25);border-radius:50%}
.hero-content{position:relative;z-index:2;min-height:390px;display:flex;align-items:center;justify-content:space-between;gap:35px;padding:45px 48px;color:var(--text)}
.hero-copy{max-width:610px}
.eyebrow{display:inline-flex;gap:7px;align-items:center;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.88);padding:7px 12px;border-radius:999px;font-size:12px;margin-bottom:16px;color:#6d5d68;font-weight:800}
.hero h1{font-size:48px;line-height:1.06;letter-spacing:-1.8px;margin-bottom:14px;color:#29252e}
.hero p{font-size:15px;line-height:1.8;max-width:610px;color:#625c66}
.hero-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;align-items:center}
.hero-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 22px;border-radius:999px;background:#fff;color:#312c34;
  font-weight:800;font-size:14px;line-height:1.25;white-space:nowrap;
  min-height:48px;box-shadow:0 8px 18px rgba(99,74,91,.10);
}
.hero-btn-icon{font-size:16px;line-height:1;flex:none}
.hero-btn-label{flex:none}
.hero-btn-suffix{opacity:.85;font-size:15px;margin-left:2px}
.hero-btn.primary{
  background-color:var(--accent);
  background-image:linear-gradient(135deg,var(--accent) 0%,#ff8a7b 55%,var(--butter) 100%);
  color:#fff;box-shadow:0 10px 20px rgba(255,111,145,.28);
}
.hero-btn.primary .hero-btn-icon{filter:none}
.hero-btn.ghost{background:rgba(255,255,255,.72);color:#4f4650;border:1px solid rgba(255,255,255,.88);box-shadow:0 6px 14px rgba(99,74,91,.06)}
.hero-btn-planner{background:#fff;color:#5a3d52;border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 18px rgba(99,74,91,.08)}
.hero-btn-planner:hover{filter:brightness(.98)}
.hero-buddy-card{width:min(390px,37vw);flex:none;padding:22px;border-radius:24px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.92);backdrop-filter:blur(12px);box-shadow:0 18px 35px rgba(91,72,94,.12)}
.hero-buddy-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
.hero-buddy-label{font-size:11px;font-weight:900;color:#8b6878;background:#ffe6ee;padding:6px 9px;border-radius:999px}
.hero-buddy-count{font-size:11px;color:#7c737b}
.hero-buddy-card h3{font-size:19px;line-height:1.35;margin-bottom:7px}
.hero-buddy-card p{font-size:11px;line-height:1.7;color:#6f6871}
.hero-buddy-list{display:grid;gap:8px;margin:15px 0}
.hero-buddy-item{display:flex;align-items:center;gap:9px;padding:9px 10px;background:rgba(255,255,255,.78);border-radius:12px;border:1px solid rgba(236,226,232,.92)}
.hero-buddy-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}
.hero-buddy-item strong{display:block;font-size:11px}
.hero-buddy-item span{display:block;font-size:9px;color:#999;margin-top:2px}
.hero-buddy-cta{width:100%;padding:11px;border-radius:999px;background:#111;color:#fff;font-size:11px;font-weight:850}

/* ===== CONTENT ===== */
.container{max-width:1400px;margin:auto;padding:40px 28px calc(80px + env(safe-area-inset-bottom, 0px))}
.section{margin-bottom:52px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap:15px}
.section-head h2{font-size:26px;letter-spacing:-.4px}
.section-head p{font-size:13px;color:var(--muted);margin-top:6px}
.section-action{color:#666;font-size:13px;background:transparent;border:0;padding:0;cursor:pointer;font:inherit}
.section-action:hover{color:#111}
.section-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.publish--inline{margin-left:0}
.demo-chip{display:inline-block;font-size:11px;font-weight:800;color:#8f4f68;background:var(--accent-soft);padding:3px 8px;border-radius:999px;vertical-align:middle;margin-left:6px}
.post-demo-badge{right:auto;left:12px;top:12px;background:rgba(42,40,48,.78);color:#fff;margin-right:6px}
.post{position:relative}

/* ===== CITY TABS ===== */
.city-tabs{display:flex;gap:10px;overflow:auto;padding-bottom:4px;scrollbar-width:none;margin-bottom:24px;-webkit-overflow-scrolling:touch}
.city-tabs::-webkit-scrollbar{display:none}
.city-tab{background:#fff;border:1px solid var(--line);padding:10px 16px;border-radius:999px;color:#666;font-size:13px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;flex:none}
.city-tab.active,.city-tab:hover{background:linear-gradient(135deg,var(--accent),var(--lavender));color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(255,111,145,.2)}

/* ===== ROUTES ===== */
.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.route-card{background:var(--card);border-radius:20px;overflow:hidden;box-shadow:0 5px 20px rgba(0,0,0,.035);transition:.25s;cursor:pointer}
.route-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.route-card:nth-child(3n+1) .route-badge{background:rgba(255,111,145,.82)}
.route-card:nth-child(3n+2) .route-badge{background:rgba(155,140,255,.82)}
.route-card:nth-child(3n) .route-badge{background:rgba(73,185,139,.82)}
.route-card:nth-child(3n+1) .node{background:#fff0f4;color:#d94f72}
.route-card:nth-child(3n+2) .node{background:#f0edff;color:#776bd4}
.route-card:nth-child(3n) .node{background:#eafaf5;color:#3b9d79}

.route-media{height:230px;position:relative;overflow:hidden;background:linear-gradient(135deg,#fff5f8,#f3efff)}
.route-media img{width:100%;height:100%;object-fit:cover;object-position:left center;transition:.45s}
.post-cover[src$=".svg"]{object-fit:cover;object-position:left center;background:linear-gradient(135deg,#fff5f8,#f3efff)}
.route-card:hover .route-media img{transform:scale(1.045)}
.route-demo-ribbon{position:absolute;left:13px;top:13px;background:rgba(255,255,255,.92);color:#b04a72;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850;z-index:2;box-shadow:0 4px 10px rgba(0,0,0,.06)}
.route-ugc-ribbon{color:#5a4a8a;background:rgba(255,255,255,.94)}
.route-library-tabs{margin-bottom:14px}
.route-badge{position:absolute;left:13px;top:40px;background:rgba(0,0,0,.48);color:#fff;padding:6px 9px;border-radius:8px;font-size:11px;backdrop-filter:blur(8px)}
.route-save{position:absolute;right:13px;top:13px;width:35px;height:35px;border-radius:50%;background:rgba(255,255,255,.92);font-size:16px}
.route-body{padding:16px}
.route-title{font-size:16px;font-weight:800;line-height:1.42;margin-bottom:7px}
.route-sub{font-size:12px;color:#757575;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.route-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:13px;font-size:11px;color:#6f6f6f}
.route-stats span{background:#f7f7f7;padding:6px 8px;border-radius:7px}
.node-row{display:flex;gap:7px;align-items:center;overflow:hidden;margin-top:14px}
.node{font-size:10px;background:var(--accent-soft);color:#df3654;padding:5px 7px;border-radius:6px;white-space:nowrap}
.arrow{font-size:10px;color:#aaa}
.route-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:13px;border-top:1px solid #f1f1f1}
.author{display:flex;align-items:center;gap:8px}
.author img{width:27px;height:27px;border-radius:50%;object-fit:cover}
.author span{font-size:11px;color:#5f5f5f}
.rating{font-size:11px;color:#666}

/* ===== BUDDY SPOTLIGHT ===== */
.buddy-quick{display:grid;grid-template-columns:1.18fr .82fr;gap:16px;margin:-4px 0 52px}
.buddy-quick-main{position:relative;overflow:hidden;padding:24px 26px;border-radius:22px;background:linear-gradient(135deg,#ffe3eb 0%,#f4ddff 48%,#dfedf9 100%);border:1px solid rgba(255,255,255,.95);box-shadow:var(--shadow)}
.buddy-quick-main h2{font-size:24px;letter-spacing:-.5px;margin-bottom:6px}
.buddy-quick-main p{font-size:12px;color:#706772;max-width:620px}
.buddy-quick-main .quick-btn{margin-top:15px;background:#111;color:#fff;padding:10px 15px;border-radius:999px;font-size:11px;font-weight:850}
.buddy-quick-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.buddy-quick-pill{padding:6px 8px;background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.9);border-radius:999px;font-size:10px;color:#655c66}
.buddy-quick-side{background:#fff;border-radius:22px;padding:20px;border:1px solid #eee3e8;box-shadow:0 8px 24px rgba(88,67,89,.06)}
.buddy-quick-side .mini-label{font-size:10px;font-weight:900;color:#927080;margin-bottom:10px}
.buddy-quick-side strong{display:block;font-size:14px;line-height:1.45;margin-bottom:5px}
.buddy-quick-side p{font-size:10px;color:#8a8289;line-height:1.65}
.buddy-avatars{display:flex;align-items:center;margin-top:12px}
.buddy-avatars img{width:29px;height:29px;border-radius:50%;object-fit:cover;border:2px solid #fff;margin-left:-5px}
.buddy-avatars img:first-child{margin-left:0}
.buddy-avatars span{margin-left:8px;font-size:10px;color:#777}

/* ===== SPOT BOARD ===== */
.spot-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}
.spot-board{background:#111;color:#fff;border-radius:22px;padding:24px;min-height:315px;position:relative;overflow:hidden}
.spot-board::after{content:"";position:absolute;right:-60px;bottom:-70px;width:220px;height:220px;border:45px solid rgba(255,255,255,.06);border-radius:50%}
.spot-board-kicker{font-size:10px;font-weight:850;letter-spacing:.08em;color:#c8c0ca;margin-bottom:8px;position:relative;z-index:1}
.spot-board h3{font-size:21px;margin-bottom:5px;position:relative;z-index:1}
.spot-board p{font-size:12px;color:#bbb;position:relative;z-index:1}
.spot-path{position:relative;margin-top:28px;padding-left:24px;z-index:1}
.spot-path::before{content:"";position:absolute;left:6px;top:6px;bottom:8px;width:2px;background:#353535}
.path-item{position:relative;margin-bottom:20px;cursor:pointer}
.path-dot{position:absolute;left:-24px;top:2px;width:14px;height:14px;border:3px solid #111;background:#fff;border-radius:50%}
.path-item.current .path-dot{background:var(--accent);box-shadow:0 0 0 5px rgba(255,56,92,.16)}
.path-item strong{font-size:13px;display:block}
.path-item span{display:block;font-size:11px;color:#999;margin-top:3px}
.spot-list{display:grid;gap:12px}
.spot-item{background:#fff;border-radius:18px;padding:15px;display:flex;gap:12px;align-items:center;box-shadow:0 4px 16px rgba(0,0,0,.03);cursor:pointer;transition:.2s}
.spot-item:hover{transform:translateX(3px)}
.spot-thumb{width:92px;height:82px;border-radius:12px;object-fit:cover;flex:none}
.spot-item h4{font-size:14px;margin-bottom:4px}
.spot-item p{font-size:11px;color:#777;line-height:1.6}
.spot-meta{font-size:10px;color:#aaa;margin-top:6px}

/* ===== PERSONAL WALK FOOTPRINTS ===== */
.footprint-section-head{align-items:flex-end}
.footprint-head-actions{display:flex;gap:9px;align-items:center}
.footprint-add{background:linear-gradient(135deg,var(--accent),#ff9a7f 55%,var(--butter));color:#fff;padding:11px 16px;border-radius:999px;font-size:12px;font-weight:850;white-space:nowrap;box-shadow:0 8px 18px rgba(255,111,145,.18)}
.footprint-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 17px}
.footprint-tab{background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:999px;color:#736a75;font-size:12px;white-space:nowrap;transition:.18s}
.footprint-tab.active{background:linear-gradient(135deg,#ff6f91,#a18bff);border-color:transparent;color:#fff;box-shadow:0 6px 15px rgba(170,123,190,.18)}
.local-save-note{margin-left:auto;font-size:10px;color:#9b8a98;background:#f4eef8;padding:6px 9px;border-radius:999px}
.footprint-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.footprint-stat{padding:15px 17px;border-radius:16px;border:1px solid rgba(255,255,255,.9);background:linear-gradient(135deg,#fff0f4,#fff9e8);}
.footprint-stat:nth-child(2){background:linear-gradient(135deg,#f0edff,#f5f0ff)}
.footprint-stat:nth-child(3){background:linear-gradient(135deg,#e8faf4,#eef9ff)}
.footprint-stat strong{display:block;font-size:23px;line-height:1.1;margin-bottom:5px}
.footprint-stat span{font-size:11px;color:#786f7c}
.footprint-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.footprint-card{background:#fff;border:1px solid #eee8ec;border-radius:19px;overflow:hidden;box-shadow:0 5px 18px rgba(76,56,82,.035);transition:.22s}
.footprint-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.footprint-cover{height:155px;position:relative;overflow:hidden;background:#f4edf6}
.footprint-cover img{width:100%;height:100%;object-fit:cover}
.footprint-cover-badge{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.91);color:#6f6174;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:850;backdrop-filter:blur(6px)}
.footprint-card-body{padding:15px}
.footprint-card-title{font-size:14px;font-weight:850;line-height:1.5;margin-bottom:6px}
.footprint-card-desc{font-size:11px;color:#7e7580;line-height:1.7;min-height:37px}
.footprint-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.footprint-meta span{font-size:10px;color:#756c79;background:#f6f3f7;border-radius:7px;padding:5px 7px}
.footprint-stops-preview{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.footprint-stops-preview span{font-size:9px;color:#9a687e;background:#fff0f4;border-radius:6px;padding:4px 6px}
.footprint-card-note{font-size:10px;color:#a1848f;margin-top:10px;line-height:1.6}
.footprint-card-actions{display:flex;gap:8px;padding:0 15px 15px}
.footprint-card-actions button{flex:1;padding:9px 8px;border-radius:999px;font-size:10px;font-weight:800;background:#f6f2f7;color:#65596a}
.footprint-card-actions button.primary{background:#292431;color:#fff}
.footprint-card-actions button.remove{flex:0 0 auto;background:#fff0f4;color:#d45c78}
.footprint-card-actions button:hover{filter:brightness(.97)}
.footprint-empty{padding:35px 18px;text-align:center;background:#fff;border:1px dashed #e4dbe7;border-radius:18px;color:#938697;font-size:12px;line-height:1.8}
.route-spot-panel{animation:buddyReveal .28s ease-out}
.route-spot-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:10px}
.back-footprints{background:#fff;border:1px solid #e9e1e8;color:#6b5d70;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:800}
.route-link-badge{background:#eafaf5;color:#36896d;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:850}
.spot-save-button{margin-left:auto;flex:none;border-radius:999px;background:#fff0f4;color:#d44c70;padding:7px 9px;font-size:11px;font-weight:850;white-space:nowrap}
.spot-save-button.saved{background:#ffe1eb;color:#b83259}
.spot-item-copy{flex:1;min-width:0}
.footprint-modal{display:flex;flex-direction:column;gap:8px}
/* ===== WALK RECORDS: TIMELINE + SPOT LIST ===== */
.footprint-grid.walk-records-mode{grid-template-columns:1fr;gap:13px}
.walk-record-card{background:#f1eef0;border:1px solid #e9e3e8;border-radius:24px;padding:10px;box-shadow:0 6px 18px rgba(54,39,57,.045);transition:box-shadow .2s,border-color .2s}
.walk-record-card.expanded{padding:12px;background:#f1eef0;border-color:#e4dbe5;box-shadow:0 10px 28px rgba(54,39,57,.075)}
.walk-record-compact{display:grid;grid-template-columns:94px minmax(0,1fr) minmax(180px,.62fr) auto;align-items:center;gap:15px;min-height:106px;padding:5px}
.walk-record-compact-cover{width:94px;height:94px;object-fit:cover;border-radius:16px;background:#e8e1e8}
.walk-record-compact-main{min-width:0}
.walk-record-compact-kicker{font-size:10px;font-weight:850;color:#8d7b8e;margin-bottom:5px}
.walk-record-compact-main h3{font-size:16px;line-height:1.35;margin-bottom:7px;overflow-wrap:anywhere}
.walk-record-compact-meta{display:flex;gap:6px;flex-wrap:wrap;color:#837985;font-size:10px}
.walk-record-compact-meta span{padding:4px 7px;background:rgba(255,255,255,.72);border-radius:7px}
.walk-short-note{position:relative;min-width:0;background:#fff5c9;color:#6b5938;padding:12px 14px 11px;border-radius:3px;box-shadow:2px 4px 8px rgba(89,70,38,.09);transform:rotate(-.6deg);border-top:3px solid rgba(235,196,92,.55)}
.walk-short-note:before{content:"";position:absolute;top:-6px;left:18px;width:42px;height:12px;background:rgba(255,255,255,.56);transform:rotate(-4deg)}
.walk-short-note-label{display:block;font-size:9px;font-weight:900;letter-spacing:.07em;opacity:.68;margin-bottom:4px}
.walk-short-note p{font-size:11px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.walk-short-note.empty p{color:#a18e66}
.walk-record-toggle{white-space:nowrap;border-radius:999px;padding:10px 12px;background:#fff;color:#66576b;border:1px solid #e4dbe7;font-size:10px;font-weight:900}
.walk-record-toggle:hover{background:#292431;color:#fff;border-color:#292431}
.walk-record-expanded-content{padding-top:10px}
.walk-record-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:13px;align-items:stretch}
.walk-record-board{position:relative;overflow:hidden;min-width:0;background:#111;color:#fff;border-radius:21px;padding:23px 24px 21px;isolation:isolate}
.walk-record-board:after{content:"";position:absolute;z-index:-1;right:-92px;bottom:-128px;width:320px;height:320px;border:56px solid rgba(255,255,255,.055);border-radius:50%}
.walk-record-board:before{content:"";position:absolute;z-index:-1;right:-14px;bottom:-45px;width:190px;height:190px;border:27px solid rgba(255,255,255,.035);border-radius:50%}
.walk-record-kicker{display:inline-flex;align-items:center;gap:7px;color:#cfc6d0;font-size:10px;font-weight:850;letter-spacing:.04em;margin-bottom:12px}
.walk-record-kicker:before{content:"✓";display:inline-grid;place-items:center;width:19px;height:19px;background:#ff6f91;color:#171117;border-radius:50%;font-size:11px;font-weight:950}
.walk-record-board h3{font-size:clamp(20px,2vw,27px);line-height:1.3;letter-spacing:-.4px;margin-bottom:8px;max-width:95%}
.walk-record-board-meta{font-size:11px;color:#bcb4c0;line-height:1.65;margin-bottom:20px}
.walk-record-timeline{position:relative;padding-left:28px;margin-left:3px}
.walk-record-timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:12px;width:2px;background:#39363c}
.walk-record-step{position:relative;margin:0 0 14px;min-width:0}
.walk-record-step:last-child{margin-bottom:0}
.walk-record-step-dot{position:absolute;left:-28px;top:3px;width:14px;height:14px;border:3px solid #111;background:#fff;border-radius:50%;z-index:1}
.walk-record-step:first-child .walk-record-step-dot{background:#ff6f91;box-shadow:0 0 0 6px rgba(255,111,145,.17)}
.walk-record-step strong{display:block;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.walk-record-step span{display:block;margin-top:4px;color:#a9a1ae;font-size:11px;line-height:1.6}
.walk-record-spots-panel{min-width:0;display:flex;flex-direction:column;gap:11px}
.walk-record-spots-head{display:flex;align-items:center;justify-content:space-between;padding:5px 4px 2px;gap:8px}
.walk-record-spots-head strong{font-size:14px;color:#312c34}
.walk-record-spots-head span{font-size:10px;color:#948a96;background:#fff;padding:6px 9px;border-radius:999px;white-space:nowrap}
.walk-record-spots-list{display:grid;gap:11px;align-content:start}
.walk-record-spot{display:flex;align-items:center;gap:10px;min-width:0;background:#fff;border:1px solid rgba(235,229,235,.9);border-radius:17px;padding:10px;cursor:pointer;transition:transform .2s,box-shadow .2s}
.walk-record-spot:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(45,31,48,.06)}
.walk-record-spot img{width:82px;height:76px;border-radius:13px;object-fit:cover;flex:none;background:#eee}
.walk-record-spot-copy{flex:1;min-width:0}
.walk-record-spot-copy h4{font-size:14px;line-height:1.5;margin-bottom:5px;overflow-wrap:anywhere}
.walk-record-spot-copy p{font-size:11px;line-height:1.65;color:#7d747f;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.walk-record-spot-copy small{display:block;font-size:10px;line-height:1.55;color:#aaa;margin-top:6px}
.walk-record-spot .spot-save-button{margin-left:0;align-self:center}
.walk-record-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:3px}
.walk-record-actions button{border-radius:999px;padding:10px 13px;font-size:10px;font-weight:850}
.walk-record-open{background:#292431;color:#fff}
.walk-record-remove{background:#fff0f4;color:#d45c78}
.walk-memory{margin-top:12px;background:linear-gradient(110deg,#fff6f7,#f7f3ff 62%,#f0fbf7);border:1px solid #eee3ef;border-radius:17px;padding:13px 14px}
.walk-memory-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.walk-memory-head strong{display:block;font-size:12px;color:#3c3440}
.walk-memory-head span{display:block;font-size:10px;color:#96899a;margin-top:3px}
.walk-memory-private{font-size:10px;color:#8f8296;background:rgba(255,255,255,.72);padding:6px 9px;border-radius:999px;white-space:nowrap}
.walk-memory-fields{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:10px;align-items:start}
.walk-memory-field label{display:block;font-size:10px;font-weight:850;color:#7f7084;margin-bottom:5px}
.walk-memory textarea{display:block;width:100%;min-height:68px;resize:vertical;border:1px solid #e8deeb;background:rgba(255,255,255,.9);border-radius:11px;padding:10px 11px;font:inherit;font-size:11px;line-height:1.65;color:#433b47;outline:none}
.walk-memory-field.short textarea{min-height:68px;background:#fff5c9;border-color:#f0df9e}
.walk-memory textarea:focus{border-color:#c3a8e8;box-shadow:0 0 0 3px rgba(195,168,232,.16)}
.walk-memory-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:9px}
.walk-memory-hint{font-size:10px;color:#96899a}
.walk-memory-save{padding:9px 14px;border-radius:999px;background:#302a37;color:#fff;font-size:11px;font-weight:850;white-space:nowrap}
.walk-memory-save:hover{background:#51445c}
@media(max-width:1000px){
  .walk-record-compact{grid-template-columns:80px minmax(0,1fr) minmax(150px,.7fr) auto;gap:11px}
  .walk-record-compact-cover{width:80px;height:82px}
  .walk-record-layout{grid-template-columns:1fr}
  .walk-record-board{min-height:0}
  .walk-record-spots-panel{padding:2px 2px 0}
}
@media(max-width:700px){
  .walk-record-compact{grid-template-columns:70px minmax(0,1fr) auto;gap:10px;padding:3px}
  .walk-record-compact-cover{width:70px;height:78px;border-radius:12px}
  .walk-record-compact-main h3{font-size:13px}
  .walk-record-compact-meta span{font-size:9px}
  .walk-record-compact .walk-short-note{grid-column:2 / 4;grid-row:2;margin:2px 5px 8px 0}
  .walk-record-compact .walk-record-toggle{grid-column:3;grid-row:1;align-self:start;padding:8px 9px}
  .walk-memory-fields{grid-template-columns:1fr}
}
@media(max-width:560px){
  .footprint-grid.walk-records-mode{gap:12px}
  .walk-record-card{padding:7px;border-radius:19px}
  .walk-record-card.expanded{padding:8px}
  .walk-record-compact{grid-template-columns:58px minmax(0,1fr) auto;gap:9px;min-height:0}
  .walk-record-compact-cover{width:58px;height:64px;border-radius:10px}
  .walk-record-compact-kicker{font-size:9px}
  .walk-record-compact-main h3{font-size:12px;margin-bottom:5px}
  .walk-record-compact-meta{gap:4px}
  .walk-record-compact-meta span{padding:3px 5px;font-size:8px}
  .walk-record-compact .walk-short-note{padding:10px 11px}
  .walk-record-toggle{font-size:9px;padding:8px}
  .walk-record-layout{gap:9px}
  .walk-record-board{padding:21px 17px;border-radius:16px}
  .walk-record-board h3{font-size:20px}
  .walk-record-board-meta{margin-bottom:18px}
  .walk-record-step{margin-bottom:15px}
  .walk-record-spot{padding:9px;gap:8px;border-radius:14px;flex-wrap:wrap}
  .walk-record-spot img{width:70px;height:68px;border-radius:10px}
  .walk-record-spot-copy h4{font-size:12px}
  .walk-record-spot-copy p{font-size:10px}
  .walk-record-spot .spot-save-button{font-size:9px;padding:6px;margin-left:auto}
  .walk-memory{padding:11px;border-radius:14px}
  .walk-memory-head{align-items:flex-start}
  .walk-memory-private{font-size:9px}
  .walk-memory-footer{align-items:flex-start;flex-direction:column}
  .walk-memory-save{min-height:38px;align-self:stretch}
  .walk-record-actions button{flex:1}
}
.form-label{display:block;font-size:11px;font-weight:800;color:#5f5663;margin-top:10px}
.footprint-input{width:100%;border:1px solid #e8dfe9;background:#fffcff;border-radius:12px;padding:11px 12px;font-size:12px;outline:none;color:#37313b}
.footprint-input:focus{border-color:#c1a5e8;box-shadow:0 0 0 3px rgba(193,165,232,.14)}
.footprint-save-btn{margin-top:12px;align-self:flex-start;background:linear-gradient(135deg,var(--accent),#9b8cff)}
.toast{
  position:fixed;left:50%;transform:translateX(-50%);z-index:5000;
  bottom:calc(24px + env(safe-area-inset-bottom, 0px));
  max-width:min(92vw,420px);text-align:center;line-height:1.45;
  background:#28222d;color:#fff;padding:10px 15px;border-radius:999px;font-size:12px;box-shadow:0 8px 24px rgba(0,0,0,.18)
}

/* ===== COMMUNITY FEED ===== */
.feed-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.feed-tabs::-webkit-scrollbar{display:none}
.feed-tab{background:#fff;border:1px solid var(--line);padding:9px 14px;border-radius:999px;color:#777;font-size:12px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;flex:none}
.feed-tab.active{background:linear-gradient(135deg,var(--accent),var(--lavender));color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(255,111,145,.2)}
.feed{columns:4 250px;column-gap:18px}
.post{break-inside:avoid;background:#fff;border-radius:18px;overflow:hidden;margin-bottom:18px;box-shadow:0 4px 16px rgba(0,0,0,.03);cursor:pointer;transition:.22s;position:relative}
.post-type-badge{position:absolute;left:12px;top:12px;z-index:2;background:linear-gradient(135deg,var(--accent),var(--lavender));color:#fff;font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px}
.post-demo-ribbon{position:absolute;right:12px;top:12px;z-index:2;background:rgba(255,255,255,.92);color:#a86b82;font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px}
.post:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.post-cover{width:100%;max-height:440px;object-fit:cover;object-position:center}
.post-cover-demo{
  width:100%;min-height:220px;max-height:440px;aspect-ratio:16/10;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:18px 16px;box-sizing:border-box;position:relative;
  background:linear-gradient(145deg,#ffe8f0 0%,#ebe4ff 100%);color:#2d2430;
}
.post-cover-demo[data-type="路线"]{background:linear-gradient(145deg,#ff7a9a 0%,#9b8cff 100%);color:#fff}
.post-cover-demo[data-type="攻略"]{background:linear-gradient(145deg,#dce8ff 0%,#ffecc8 100%);color:#2d2430}
.post-cover-demo[data-type="打卡"]{background:linear-gradient(145deg,#ffe8f0 0%,#fff0c8 100%);color:#3d3538}
.post-cover-demo[data-type="拍照"]{background:linear-gradient(145deg,#d8e4ff 0%,#ecd8ff 100%);color:#2d2430}
.post-cover-demo[data-type="夜游"]{background:linear-gradient(160deg,#1a1528 0%,#5a4080 100%);color:#fff}
.post-cover-demo-kicker{font-size:10px;font-weight:850;opacity:.88;margin-bottom:8px;letter-spacing:.04em}
.post-cover-demo-type{font-size:24px;font-weight:900;line-height:1.2;letter-spacing:-.03em}
.post-cover-demo-city{font-size:12px;font-weight:700;margin-top:6px;opacity:.9}
.route-cover-demo{
  width:100%;height:100%;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:18px 16px;box-sizing:border-box;color:#fff;
}
.route-cover-demo[data-city="北京"]{background:linear-gradient(165deg,#fff0e8 0%,#c45c48 85%)}
.route-cover-demo[data-city="上海"]{background:linear-gradient(165deg,#eef6ff 0%,#4a90b8 90%)}
.route-cover-demo[data-city="成都"]{background:linear-gradient(165deg,#fff8f0 0%,#e87850 88%)}
.route-cover-demo[data-city="杭州"]{background:linear-gradient(165deg,#eefaf6 0%,#3a9e78 88%)}
.route-cover-demo[data-city="广州"]{background:linear-gradient(165deg,#fff5f8 0%,#9b8cff 85%)}
.route-cover-demo[data-city="深圳"]{background:linear-gradient(165deg,#f3efff 0%,#77d8c5 90%)}
.route-cover-demo-kicker{font-size:10px;font-weight:850;opacity:.9;margin-bottom:6px}
.route-cover-demo-type{font-size:20px;font-weight:900;line-height:1.25;text-shadow:0 1px 12px rgba(0,0,0,.15)}
.route-cover-demo-city{font-size:13px;font-weight:700;opacity:.92;margin-top:4px}
.post-body{padding:14px 14px 11px}
.post-title{font-size:14px;font-weight:800;line-height:1.55;margin-bottom:7px}
.post-desc{font-size:11px;color:#777;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.tag{font-size:9px;color:#e33855;background:var(--accent-soft);padding:4px 6px;border-radius:5px}
.post-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f2f2f2;padding:10px 14px 12px}
.post-user{display:flex;align-items:center;gap:7px}
.post-user img{width:25px;height:25px;border-radius:50%;object-fit:cover}
.post-user span{font-size:10px;color:#5f5f5f}
.post-actions{display:flex;gap:10px;color:#8b8b8b;font-size:11px}
.clickable{cursor:pointer}
.liked{color:var(--accent)!important}

/* ===== BUDDY ===== */
.buddy-section-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.buddy-section-note{font-size:11px;color:#8b6878;font-weight:850;margin:0 0 0 4px}
.buddy-collapse{background:#fff;border:1px solid #eadfe5;color:#765f6d;padding:7px 11px;border-radius:999px;font-size:10px;font-weight:800;box-shadow:0 5px 14px rgba(121,83,104,.06);transition:.2s}
.buddy-collapse:hover{background:#111;color:#fff;border-color:#111}
.buddy-section-hidden{display:none}
.buddy-section-visible{display:block;animation:buddyReveal .35s ease-out}
@keyframes buddyReveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.buddy-shell{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 12%,rgba(255,111,145,.18),transparent 28%),
    radial-gradient(circle at 88% 8%,rgba(155,140,255,.20),transparent 27%),
    radial-gradient(circle at 80% 92%,rgba(119,216,197,.20),transparent 30%),
    linear-gradient(135deg,#fff8f6 0%,#fff7fb 45%,#f7fbff 100%);
  border:1px solid #eee3e9;
  border-radius:28px;
  padding:30px;
  box-shadow:0 16px 38px rgba(95,70,101,.10);
}
.buddy-shell:before{
  content:"FIND YOUR WALK BUDDY";
  position:absolute;
  right:26px;
  top:18px;
  font-size:9px;
  font-weight:900;
  letter-spacing:1.7px;
  color:#a58da4;
  opacity:.75;
}
.buddy-shell:after{
  content:"";
  position:absolute;
  width:170px;height:170px;
  right:-55px;bottom:-65px;
  border-radius:50%;
  border:28px solid rgba(255,215,106,.28);
}
.buddy-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;position:relative;z-index:1}
.buddy-intro h3{font-size:28px;letter-spacing:-.7px;display:flex;align-items:center;gap:8px}
.buddy-intro h3:after{content:"热门招募中";font-size:10px;line-height:1;font-weight:800;color:#8f6a79;background:#ffe5ec;border:1px solid #ffd1dc;padding:6px 8px;border-radius:999px;letter-spacing:0}
.buddy-intro p{color:#6f6871;font-size:12px;margin-top:7px;max-width:610px}
.buddy-cta{background:linear-gradient(135deg,var(--accent),#ff9a7f 55%,var(--butter));color:#fff;padding:12px 18px;border-radius:999px;font-size:12px;font-weight:850;white-space:nowrap;box-shadow:0 10px 20px rgba(255,111,145,.23)}
.buddy-filters{display:flex;gap:8px;overflow:auto;scrollbar-width:none;margin-bottom:17px;position:relative;z-index:1;-webkit-overflow-scrolling:touch}
.buddy-filters::-webkit-scrollbar{display:none}
.buddy-filter{border:1px solid #eadfe5;background:rgba(255,255,255,.72);padding:9px 13px;border-radius:999px;color:#736d75;font-size:11px;white-space:nowrap}
.buddy-filter.active{background:linear-gradient(135deg,var(--accent),var(--lavender));color:#fff;border-color:transparent;box-shadow:0 7px 14px rgba(255,111,145,.22)}
.buddy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.buddy-card{
  background:var(--card);border-radius:20px;overflow:hidden;border:1px solid rgba(231,219,226,.92);
  box-shadow:0 6px 20px rgba(102,74,95,.06);transition:.25s;display:flex;flex-direction:column;
}
.buddy-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.buddy-media{position:relative;height:108px;overflow:hidden;background:linear-gradient(135deg,#fff5f8,#f3efff)}
.buddy-media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .45s ease}
.buddy-card:hover .buddy-media img{transform:scale(1.04)}
.buddy-media:after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,24,.08) 0%,rgba(20,16,24,.42) 100%);
  pointer-events:none;
}
.buddy-demo-ribbon{
  position:absolute;left:11px;top:11px;background:rgba(255,255,255,.94);color:#b04a72;
  padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850;z-index:2;box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.buddy-status{
  position:absolute;right:11px;top:11px;z-index:2;display:inline-flex;align-items:center;gap:5px;
  color:#2d8a66;font-size:10px;font-weight:800;background:rgba(255,255,255,.94);border:1px solid rgba(212,240,228,.95);
  border-radius:999px;padding:5px 9px;box-shadow:0 4px 10px rgba(0,0,0,.06);
}
.buddy-status-dot{width:6px;height:6px;border-radius:50%;background:#45aa82;box-shadow:0 0 0 3px rgba(69,170,130,.22)}
.buddy-status.closed{color:#888;background:rgba(255,255,255,.9);border-color:#e8e2e5}
.buddy-status.closed .buddy-status-dot{background:#aaa;box-shadow:none}
.buddy-city-pill{
  position:absolute;left:11px;bottom:10px;z-index:2;font-size:11px;font-weight:800;color:#fff;
  background:rgba(0,0,0,.45);padding:5px 9px;border-radius:8px;backdrop-filter:blur(8px);
}
.buddy-body{padding:14px 15px 15px;display:flex;flex-direction:column;flex:1;gap:0}
.buddy-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.buddy-avatar{width:28px;height:28px;font-size:11px}
.buddy-head-text{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.buddy-user-name{font-size:12px;font-weight:800;color:#3d3538;line-height:1.3}
.buddy-mood{font-size:10px;font-weight:800;color:#8f6a79;background:#ffe8ef;border:1px solid #ffd6e2;padding:3px 7px;border-radius:999px;white-space:nowrap}
.buddy-title{font-size:15px;font-weight:850;line-height:1.38;color:#2a2430;margin:0 0 6px;letter-spacing:-.02em}
.buddy-desc{
  font-size:12px;line-height:1.65;color:#6f6871;margin:0 0 12px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.buddy-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.buddy-meta-item{
  display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#5a525a;
  background:#f6f3f5;padding:6px 9px;border-radius:9px;line-height:1.2;
}
.buddy-meta-icon{font-size:12px;line-height:1;opacity:.92}
.buddy-seats{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.buddy-seats-bar{flex:1;height:5px;border-radius:999px;background:#efe8ec;overflow:hidden}
.buddy-seats-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--lavender));transition:width .35s ease}
.buddy-seats-label{font-size:10px;font-weight:800;color:#9a8790;white-space:nowrap}
.buddy-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;min-height:0}
.buddy-tag{font-size:10px;font-weight:750;color:#7d6a75;background:#fff5f8;border:1px solid #f0dde5;padding:4px 7px;border-radius:999px}
.buddy-join{
  width:100%;margin-top:auto;padding:11px 14px;border-radius:999px;border:none;cursor:pointer;
  font-size:12px;font-weight:850;color:#fff;
  background:linear-gradient(135deg,var(--accent),#ff9a7f 55%,var(--lavender));
  box-shadow:0 8px 18px rgba(255,111,145,.22);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.buddy-join:hover{filter:brightness(1.03);box-shadow:0 10px 22px rgba(255,111,145,.28)}
.buddy-join:active{transform:scale(.98)}
.buddy-card--demo .buddy-join{background:linear-gradient(135deg,#5f536e,#403847);box-shadow:0 8px 16px rgba(64,56,71,.18)}
.buddy-card--demo .buddy-join:hover{filter:brightness(1.06)}
.join{width:100%;margin-top:14px;background:linear-gradient(135deg,#fff,#fff7f9);border:1px solid #eddde4;border-radius:999px;padding:10px;font-size:11px;font-weight:800;color:#5b5058}
.join:hover{background:linear-gradient(135deg,#5f536e,#403847);color:#fff;border-color:#5f536e}
.status{position:absolute;right:14px;top:14px;color:#45aa82;font-size:10px;font-weight:800;background:#eafaf3;border:1px solid #d4f0e4;border-radius:999px;padding:5px 7px}
.status.closed{color:#999;background:#f4f2f3;border-color:#e8e2e5}

/* ===== EMPTY ===== */
.empty{display:none;padding:40px;text-align:center;color:#999;background:#fff;border-radius:18px;font-size:13px}

/* ===== MODALS ===== */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.56);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:18px;z-index:3000}
.modal.show{display:flex}
.modal-box{width:min(980px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;position:relative}
.close{position:absolute;right:15px;top:15px;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;z-index:3;font-size:20px}
.route-modal{display:grid;grid-template-columns:1.05fr .95fr}
.modal-cover-wrap{position:relative;min-height:560px;background:#f4edf6}
.modal-cover-wrap .modal-cover{width:100%;height:100%;min-height:560px;object-fit:cover;object-position:center}
.modal-cover-wrap #modalCoverDemo.modal-cover{position:absolute;inset:0;min-height:560px;height:100%}
.modal-info{padding:36px}
.modal-kicker{font-size:11px;color:#999;margin-bottom:10px}
.modal-info h2{font-size:26px;line-height:1.38;margin-bottom:10px}
.modal-info .lead{font-size:13px;color:#666;line-height:1.8}
.modal-stats{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.modal-stat{background:#f6f6f6;padding:8px 10px;border-radius:8px;font-size:11px;color:#666}
.modal-section{margin-top:23px}
.modal-section h4{font-size:13px;margin-bottom:10px}
.modal-section ul{padding-left:17px}
.modal-section li{font-size:12px;color:#666;margin-bottom:7px;line-height:1.55}
.buddy-modal{padding:34px}
.buddy-modal h2{font-size:24px;margin-bottom:7px}
.buddy-modal p{font-size:12px;color:#777}
.join-preview{margin-top:20px;padding:17px;border-radius:14px;background:#f8f8f8}
.join-preview strong{display:block;font-size:13px;margin-bottom:6px}
.route-modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.confirm{margin-top:0;background:#111;color:#fff;padding:11px 17px;border-radius:999px;font-size:12px;font-weight:800}
.confirm.secondary{background:#fff;color:#222;border:1px solid #ddd}

/* ===== FOOTER ===== */
footer{border-top:1px solid #e9e9e9;background:#fff;text-align:center;padding:42px 20px;color:#999;font-size:11px}
footer b{color:#333}

/* ===== RESPONSIVE ===== */
@media(max-width:1100px){
  .route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .buddy-grid{grid-template-columns:repeat(2,1fr)}
  .spot-layout{grid-template-columns:1fr}
  .footprint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav-inner{gap:12px}
  .nav-links{
    display:flex;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;gap:12px;
    padding:2px 0 4px;
  }
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{flex:none;font-size:13px}
  .search{margin-left:0;width:min(220px,34vw);flex-shrink:0}
}
@media(max-width:760px){
  .navbar{height:auto;min-height:72px;padding-bottom:10px}
  .nav-inner{padding:0 14px;gap:10px;flex-wrap:wrap;align-content:center}
  .logo{font-size:20px;flex-shrink:0}
  .search{width:auto;flex:1 1 120px;min-width:0;order:2}
  .user-avatar{flex:none;order:3;margin-left:0}
  .nav-links{order:4;flex:1 1 100%;max-width:100%;margin:0 -2px}
  .hero-actions{flex-direction:column;align-items:stretch;gap:10px}
  .hero-btn{width:100%;justify-content:center;padding:15px 22px;min-height:50px}
  .hero-wrap{padding:0 14px}
  .section-head{flex-direction:column;align-items:flex-start;gap:10px}
  .section-head h2{font-size:clamp(20px,5.2vw,26px);line-height:1.25}
  .section-head-actions{width:100%}
  .section-head-actions .publish--inline{width:100%;justify-content:center;display:inline-flex;align-items:center;min-height:44px}
  .section-action{align-self:flex-start;min-height:44px;display:inline-flex;align-items:center}
  .ww-planner-strip{flex-direction:column;align-items:stretch}
  .ww-planner-strip-btn{width:100%;justify-content:center;display:inline-flex;align-items:center;min-height:44px;text-align:center}
  #home,#buddies,#routes,#feed,#spots{scroll-margin-top:128px}
  .hero{min-height:500px}
  .hero-content{min-height:500px;display:block;padding:30px 24px}
  .hero-copy{max-width:none}
  .hero h1{font-size:37px}
  .hero p{font-size:13px}
  .hero-buddy-card{width:100%;margin-top:24px}
  .buddy-section-top{align-items:flex-start}
  .buddy-section-note{margin-top:4px}
  .container{padding:28px 14px 60px}
  .route-grid{grid-template-columns:1fr}
  .buddy-grid{grid-template-columns:1fr}
  .route-modal{display:block}
  .route-modal-actions{flex-direction:column}
  .route-modal-actions .confirm{width:100%}
  .modal-cover-wrap{min-height:300px}
  .modal-cover-wrap .modal-cover,.modal-cover-wrap #modalCoverDemo.modal-cover{height:300px;min-height:300px}
  .modal-info{padding:25px}
  .buddy-intro{align-items:flex-start;flex-direction:column}
  .footprint-section-head{align-items:flex-start;flex-direction:column}
  .footprint-head-actions{width:100%}
  .footprint-add{width:100%}
  .footprint-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .footprint-stat{padding:11px 9px}
  .footprint-stat strong{font-size:19px}
}
@media(max-width:480px){
  .hero h1{font-size:32px}
  .hero-buddy-card{padding:18px}
  .route-media{height:215px}
  .route-title{font-size:15px}
  .node-row{margin-top:10px}
  .spot-item{align-items:flex-start}
  .spot-thumb{width:82px;height:76px;flex:none}
  .footprint-grid{grid-template-columns:1fr}
  .footprint-summary{grid-template-columns:1fr 1fr}
  .footprint-tabs{
    flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding-bottom:4px;margin-right:-4px;
  }
  .footprint-tabs::-webkit-scrollbar{display:none}
  .footprint-tab{flex:none;min-height:44px;display:inline-flex;align-items:center}
  .local-save-note{flex:0 0 100%;margin-left:0;margin-top:4px}
  .spot-save-button{padding:6px 7px;font-size:10px;min-height:44px}
  .feed{columns:1;column-gap:0}
  .modal-box{border-radius:18px;max-height:calc(100dvh - 36px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))}
  .modal-info h2{font-size:22px}
}

/* ===== COMPACT WALK POINTS + LEVEL POPOVER ===== */
.points-section{margin-bottom:28px;position:relative;z-index:5}
.points-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px}
.points-head h2{font-size:22px;letter-spacing:-.35px}
.points-head p{font-size:12px;color:#7e7482;margin-top:4px}
.walk-points-card{position:relative;overflow:visible;border:1px solid rgba(255,255,255,.95);border-radius:20px;padding:13px 16px 10px;background:linear-gradient(105deg,#fff0f4 0%,#f4efff 48%,#edfaf5 100%);box-shadow:0 8px 22px rgba(102,75,116,.065);z-index:3}
.walk-points-card:after{content:"";position:absolute;width:120px;height:120px;border:20px solid rgba(255,255,255,.28);border-radius:50%;right:12%;top:-80px;pointer-events:none;z-index:-1}
.points-strip{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(10px,2vw,25px);min-height:52px}
.points-strip-main{display:flex;align-items:center;gap:11px;min-width:200px;flex:1}
.points-strip-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:13px;color:white;font-size:19px;background:linear-gradient(135deg,#ff7196,#a88aff 72%,#72d8c2);box-shadow:0 5px 12px rgba(194,112,170,.19)}
.points-strip-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.points-strip-copy strong{font-size:14px;font-weight:900;color:#302638;line-height:1.3}
.points-strip-copy span{font-size:10px;color:#897b8f;line-height:1.45}
.points-reward-pill{display:flex;align-items:baseline;gap:5px;flex:none;padding:9px 13px;border:1px solid rgba(255,255,255,.95);border-radius:14px;background:rgba(255,255,255,.75);white-space:nowrap}
.points-reward-pill strong{font-size:22px;line-height:1;color:#f0628b;font-weight:950;letter-spacing:-.5px}
.points-reward-pill span{font-size:10px;font-weight:800;color:#8a748d}
.points-total-pill{display:flex;align-items:baseline;gap:6px;flex:none;white-space:nowrap;padding:7px 2px}
.points-total-pill strong{font-size:23px;color:#302638;line-height:1;font-weight:950;font-variant-numeric:tabular-nums}
.points-total-pill span{font-size:10px;color:#8a7e90;font-weight:800}
.points-level-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;cursor:pointer;margin-left:0;padding:10px 12px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.98);border-radius:999px;font-size:11px;font-weight:900;color:#6f4f78;white-space:nowrap;transition:transform .18s,box-shadow .18s}
.points-level-chip:hover{transform:translateY(-1px);box-shadow:0 5px 13px rgba(119,91,138,.11)}
.points-level-chip:focus-visible{outline:3px solid rgba(255,105,145,.3);outline-offset:2px}
.points-level-arrow{display:inline-flex;align-items:center;justify-content:center;flex:none;width:29px;height:29px;margin-left:2px;border-radius:9px;background:linear-gradient(135deg,#ff6f91,#a174eb);color:#fff;font-size:20px;font-weight:1000;line-height:1;box-shadow:0 4px 10px rgba(213,92,144,.28);transition:transform .2s,filter .2s,box-shadow .2s}
.points-level-chip:hover .points-level-arrow{filter:saturate(1.18);box-shadow:0 5px 14px rgba(213,92,144,.36)}
.points-level-chip[aria-expanded="true"] .points-level-arrow{transform:rotate(180deg)}
.points-level-popover{position:absolute;right:8px;top:calc(100% + 9px);width:min(410px,calc(100vw - 36px));padding:17px;background:#fff;border:1px solid #eee4f0;border-radius:19px;box-shadow:0 18px 48px rgba(56,37,66,.19);z-index:1200;animation:pointsPopIn .18s ease-out;}
.points-level-popover[hidden]{display:none}
@keyframes pointsPopIn{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.points-popover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:11px;border-bottom:1px solid #f0eaf2}
.points-popover-head strong{font-size:15px;color:#33283b}
.points-popover-head p{font-size:10px;color:#998b9d;margin-top:3px;line-height:1.5}
.points-popover-close{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:50%;background:#f7f2f8;color:#7c6a83;font-size:19px;line-height:1}
.points-popover-current{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;padding:10px 11px;border-radius:12px;background:linear-gradient(100deg,#fff1f5,#f4efff)}
.points-popover-current span{font-size:10px;color:#8d7d93}
.points-popover-current strong{font-size:11px;color:#78518a}
.points-level-ladder{display:grid;grid-template-columns:1fr;gap:6px}
.points-tier{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:9px 10px;border:1px solid #f0eaf2;background:#fff;border-radius:12px;transition:background .18s,border-color .18s}
.points-tier.current{background:#fff3f6;border-color:#f5a9bf;box-shadow:0 3px 10px rgba(234,105,145,.08)}
.points-tier.achieved:not(.current){background:#fbfdfc;border-color:#e4f1eb}
.points-tier-icon{font-size:20px;line-height:1;text-align:center}
.points-tier-copy{min-width:0}
.points-tier h4{font-size:11px;line-height:1.4;color:#413645;overflow-wrap:anywhere}
.points-tier p{font-size:9px;color:#988b9c;margin-top:2px;line-height:1.45}
.points-tier-state{font-size:9px;color:#9a8da0;white-space:nowrap;text-align:right}
.points-tier.current .points-tier-state{color:#df5577;font-weight:900}
.points-popover-progress{margin-top:12px;padding:10px 11px;background:#faf7fb;border-radius:12px}
.points-next-line{display:flex;justify-content:space-between;align-items:center;gap:9px;margin:0 0 7px}
.points-next-line strong{font-size:10px;color:#55465c}
.points-next-line span{font-size:9px;color:#918394;text-align:right}
.points-progress-track{height:6px;background:#eee7f0;border-radius:999px;overflow:hidden}
.points-progress-fill{display:block;width:0;height:100%;background:linear-gradient(90deg,#ff7197,#a58aff,#7bd8c5);border-radius:999px;transition:width .35s ease}
.points-howto{margin-top:12px;padding-top:11px;border-top:1px solid #f0eaf2}
.points-howto strong{display:block;font-size:11px;color:#4d3c54;margin-bottom:6px}
.points-howto ol{margin:0;padding-left:17px}
.points-howto li{font-size:10px;color:#807285;line-height:1.65;margin:3px 0}
.points-howto-note{font-size:9px;color:#a095a6;line-height:1.55;margin-top:6px}
.points-reward-box{width:min(460px,100%);padding:34px 30px;text-align:center;background:linear-gradient(150deg,#fff,#fff6f8 48%,#f4efff)}
.points-reward-emblem{display:grid;place-items:center;width:70px;height:70px;border-radius:24px;margin:3px auto 16px;font-size:31px;color:#fff;background:linear-gradient(135deg,#ff6f91,#a38aff 68%,#79d8c6);box-shadow:0 12px 26px rgba(185,119,188,.24);transform:rotate(-5deg)}
.points-reward-box .modal-kicker{font-weight:900;letter-spacing:.12em;color:#a07792}
.points-reward-box h2{font-size:25px;color:#322b39;margin:4px 0 10px}
.points-reward-box p{font-size:12px;color:#7e7482;line-height:1.75}
.points-reward-number{font-size:48px;line-height:1.1;font-weight:950;letter-spacing:-1.5px;color:#fa698e;margin:12px 0 4px}
.points-reward-number span{font-size:13px;letter-spacing:0;color:#8d7d93;margin-left:5px}
.points-reward-level{display:inline-flex;align-items:center;gap:8px;margin:13px auto 16px;background:#fff;border:1px solid #eee2f0;border-radius:999px;padding:9px 13px;font-size:11px;color:#62546a}
.points-reward-level strong{color:#d9577b}
.points-reward-box .confirm{width:100%;background:linear-gradient(100deg,#ff6f91,#a18aff);box-shadow:0 8px 18px rgba(198,112,164,.2)}
@media(max-width:800px){
  .points-strip{gap:10px;flex-wrap:wrap}
  .points-strip-main{min-width:calc(100% - 105px);}
  .points-reward-pill{margin-left:auto}
  .points-total-pill{margin-left:auto}
  .points-level-chip{margin-left:auto}
  .points-level-popover{right:0}
}
@media(max-width:560px){
  .points-section{margin-bottom:24px}
  .points-head{align-items:flex-start;flex-direction:column;gap:2px}
  .points-head h2{font-size:20px}
  .walk-points-card{padding:12px;border-radius:17px}
  .points-strip{gap:8px}
  .points-strip-main{min-width:100%;flex:1 1 100%;}
  .points-strip-copy strong{font-size:13px}
  .points-strip-copy span{font-size:10px}
  .points-reward-pill{padding:8px 11px;margin-left:0}
  .points-total-pill{margin-left:0}
  .points-level-chip{margin-left:auto;max-width:100%;font-size:10px;padding:9px 10px}
  .points-guidance{align-items:flex-start;font-size:9px}
  .points-level-popover{right:-3px;width:min(390px,calc(100vw - 28px));padding:13px}
  .points-tier{grid-template-columns:25px minmax(0,1fr) auto;padding:8px}
  .points-tier-state{font-size:8px}
  .points-reward-box{padding:30px 22px}
}



/* ===== Long-form points bubble with visible progress ===== */
.walk-points-card{
  padding:24px 30px 18px;
  border:1px solid rgba(255,255,255,.96);
  border-radius:30px;
  background:linear-gradient(108deg,#fffafd 0%,#faf6ff 48%,#f6fbff 100%);
  box-shadow:0 12px 32px rgba(119,87,143,.075);
}
.walk-points-card:after{
  width:175px;height:175px;border-width:28px;right:5%;top:-124px;
  border-color:rgba(255,255,255,.34);
}
.points-card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1}
.points-card-eyebrow{font-size:15px;color:#8f7a95;font-weight:600;letter-spacing:.01em}
.points-sync-label{display:inline-flex;align-items:center;gap:7px;color:#9d8ca5;font-size:12px;white-space:nowrap}
.points-sync-label i{width:7px;height:7px;border-radius:50%;background:#70cbb2;box-shadow:0 0 0 4px rgba(112,203,178,.14)}
.points-reward-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:14px;position:relative;z-index:1}
.points-reward-display{display:flex;align-items:baseline;gap:10px;min-width:0}
.points-reward-display strong{font-size:clamp(42px,4.5vw,60px);line-height:.98;font-weight:1000;letter-spacing:-2px;color:#d85dce;background:linear-gradient(110deg,#ff5f9e 0%,#b35fe0 62%,#8d75e9 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.points-reward-display span{font-size:17px;font-weight:950;letter-spacing:.015em;color:#806b91}
.points-total-display{display:flex;align-items:baseline;gap:5px;white-space:nowrap;color:#897992}
.points-total-display span{font-size:12px;margin-right:5px}
.points-total-display strong{font-size:28px;line-height:1;font-weight:950;color:#34293d;font-variant-numeric:tabular-nums}
.points-total-display em{font-style:normal;font-size:12px}
.points-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:19px;position:relative;z-index:2}
.points-level-chip{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;min-width:0;padding:0;background:transparent;border:0;border-radius:14px;color:#493650;font-size:17px;font-weight:950;white-space:nowrap;transition:color .18s}
.points-level-chip:hover{transform:none;box-shadow:none;color:#8a5798}
.points-current-level-text{overflow:hidden;text-overflow:ellipsis}
.points-level-arrow{display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;margin-left:1px;border-radius:13px;background:linear-gradient(135deg,#ff5596 0%,#c04fe1 52%,#9061ee 100%);color:#fff;box-shadow:0 6px 14px rgba(181,77,197,.30),inset 0 1px 0 rgba(255,255,255,.28);transition:transform .22s,filter .2s,box-shadow .2s}
.points-level-arrow svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.points-level-chip:hover .points-level-arrow{filter:saturate(1.12);box-shadow:0 8px 18px rgba(181,77,197,.38),inset 0 1px 0 rgba(255,255,255,.28)}
.points-level-chip:focus-visible{outline:3px solid rgba(255,91,159,.28);outline-offset:4px}
.points-level-chip[aria-expanded="true"] .points-level-arrow{transform:rotate(180deg)}
.points-next-summary{display:flex;align-items:baseline;justify-content:flex-end;gap:16px;min-width:0;text-align:right}
.points-next-summary strong{font-size:15px;color:#584660;font-weight:900}
.points-next-summary span{font-size:14px;color:#95839e;white-space:nowrap}
.points-progress-track-main{height:11px;margin-top:12px;background:#eee5f0;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(74,43,83,.04);position:relative;z-index:1}
.points-progress-track-main .points-progress-fill{height:100%;background:linear-gradient(90deg,#ff659a 0%,#be6be0 56%,#9582f0 82%,#8bdac9 100%);box-shadow:0 1px 6px rgba(191,94,195,.22)}
.points-inline-hint{margin-top:15px;color:#9a879f;font-size:13px;line-height:1.6;position:relative;z-index:1}
.points-level-popover{top:calc(100% + 10px);right:12px}
@media(max-width:800px){
  .walk-points-card{padding:21px 22px 17px}
  .points-reward-display strong{font-size:48px}
  .points-reward-display span{font-size:15px}
  .points-progress-heading{align-items:flex-start;gap:12px}
  .points-level-chip{font-size:14px}
  .points-level-arrow{width:35px;height:35px;border-radius:12px}
  .points-next-summary{flex-direction:column;align-items:flex-end;gap:3px}
  .points-next-summary strong{font-size:12px}
  .points-next-summary span{font-size:11px}
}
@media(max-width:560px){
  .walk-points-card{padding:18px 17px 15px;border-radius:23px}
  .points-card-eyebrow{font-size:13px}
  .points-sync-label{font-size:10px}
  .points-reward-row{align-items:flex-end;margin-top:13px;gap:8px}
  .points-reward-display{gap:7px}
  .points-reward-display strong{font-size:43px;letter-spacing:-1.5px}
  .points-reward-display span{font-size:12px}
  .points-total-display{gap:3px}
  .points-total-display span{font-size:9px;margin-right:0}
  .points-total-display strong{font-size:22px}
  .points-total-display em{font-size:10px}
  .points-progress-heading{margin-top:16px;align-items:center}
  .points-level-chip{font-size:12px;gap:7px}
  .points-level-arrow{width:34px;height:34px;border-radius:12px}
  .points-level-arrow svg{width:20px;height:20px}
  .points-next-summary{max-width:48%}
  .points-next-summary strong{font-size:10px;line-height:1.4}
  .points-next-summary span{font-size:10px}
  .points-progress-track-main{height:9px;margin-top:10px}
  .points-inline-hint{font-size:10px;margin-top:12px}
  .points-level-popover{right:-4px;width:min(390px,calc(100vw - 28px));padding:13px}
}


/* ===== Final refinement: left-aligned level + gradient triangle only ===== */
.points-progress-heading{justify-content:flex-start}
.points-level-chip{
  flex:0 1 auto;
  justify-content:flex-start;
  text-align:left;
  margin-right:auto;
  min-width:0;
}
.points-current-level-text{
  display:inline-block;
  min-width:0;
  text-align:left;
}
.points-level-arrow{
  display:inline-block;
  width:13px;
  height:10px;
  margin-left:3px;
  padding:0;
  flex:none;
  border-radius:0;
  background:linear-gradient(135deg,#ff5f9e 0%,#cf5de0 52%,#9672ef 100%);
  color:transparent;
  font-size:0;
  line-height:0;
  box-shadow:none;
  clip-path:polygon(0 0,100% 0,50% 100%);
  transition:transform .2s ease,filter .2s ease;
}
.points-level-arrow svg{display:none}
.points-level-chip:hover .points-level-arrow{filter:saturate(1.12);box-shadow:none}
.points-level-chip[aria-expanded="true"] .points-level-arrow{transform:rotate(180deg)}
.points-next-summary{margin-left:auto}
@media(max-width:800px){
  .points-level-chip{margin-left:0;margin-right:auto}
  .points-next-summary{margin-left:auto}
}
@media(max-width:560px){
  .points-level-chip{margin-left:0;margin-right:auto}
  .points-level-arrow{width:12px;height:9px}
  .points-next-summary{margin-left:auto}
}

/* ===== Keep the level popover close to its gradient triangle trigger ===== */
#walkPointsCard .points-level-popover{
  right:auto;
  top:auto;
  left:12px;
  width:min(410px,calc(100vw - 36px));
  max-width:none;
  max-height:calc(100vh - 24px);
  overflow-y:auto;
  transform-origin:top left;
  margin:0;
}
#walkPointsCard .points-level-popover[hidden]{display:none}
@media(max-width:560px){
  #walkPointsCard .points-level-popover{padding:12px}
}

/* ===== Citywalk 社区 · 移动端与安全区 ===== */
.navbar {
  padding-top: env(safe-area-inset-top, 0px);
}
.nav-links a:not(.nav-plan):not(.buddy-nav) {
  padding: 8px 4px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.publish,
.footprint-add,
.buddy-cta {
  min-height: 44px;
}
.hero-buddy-cta{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 16px;min-height:44px;font-size:12px;
}
.modal {
  padding: max(18px, env(safe-area-inset-left)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom));
}
.user-avatar--initial,
.avatar-initial {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: #d94766;
  font-size: 13px;
  font-weight: 800;
}
.post-user .avatar-initial,
.author .avatar-initial,
.buddy-user .avatar-initial {
  width: 25px;
  height: 25px;
  font-size: 10px;
  flex: none;
}
.hero-buddy-avatar--demo {
  display: grid;
  place-items: center;
  background: #fff;
  font-size: 11px;
  font-weight: 800;
  color: #a86b82;
}
.hero-buddy-avatar--demo::after {
  content: attr(data-demo);
}
footer a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ===== UX polish: 联动条 / 导入提示 / 锚点 / 折叠积分 ===== */
#home,#buddies,#routes,#feed,#spots{scroll-margin-top:92px}

.footprint-points-bar{margin:0 0 16px;position:relative;z-index:4}
.footprint-points-card.walk-points-card{padding:14px 16px 12px;border-radius:18px;margin-top:0}
.footprint-points-card.walk-points-card:after{display:none}
.footprint-points-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.footprint-points-total{display:flex;align-items:baseline;gap:4px;color:#6f6278;font-size:12px;font-weight:800}
.footprint-points-total strong{font-size:22px;color:#34293d;font-weight:950;font-variant-numeric:tabular-nums}
.footprint-points-progress-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:10px;font-size:11px;color:#95839e}
.footprint-points-progress-meta strong{font-size:12px;color:#584660;font-weight:850}
.footprint-points-card .points-progress-track-main{height:8px;margin-top:8px}
.footprint-points-card .points-level-chip{font-size:14px}
.footprint-points-card .points-level-arrow{width:32px;height:32px;border-radius:11px}

.ww-planner-strip{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-bottom:28px;padding:14px 18px;border-radius:18px;
  background:linear-gradient(105deg,#fff0f4,#f0edff 55%,#eef9ff);
  border:1px solid rgba(155,140,255,.22);box-shadow:0 6px 18px rgba(87,62,88,.05);
}
.ww-planner-strip-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.ww-planner-strip-copy strong{font-size:14px;color:#3a2f40}
.ww-planner-strip-copy span{font-size:12px;color:#7a6d82;line-height:1.55}
.ww-planner-strip-btn{
  flex:none;padding:11px 18px;border-radius:999px;font-size:13px;font-weight:850;color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--lavender));box-shadow:0 6px 14px rgba(255,111,145,.25);
}

.import-guide-banner{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-bottom:24px;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #ecdce8;
  box-shadow:0 8px 22px rgba(90,68,92,.08);
}
.import-guide-banner[hidden]{display:none!important}
.import-guide-banner strong{display:block;font-size:14px;margin-bottom:4px;color:#3c3440}
.import-guide-banner p{font-size:12px;color:#7a7080;line-height:1.6;margin:0}
.import-guide-dismiss{
  flex:none;padding:10px 14px;border-radius:999px;background:#292431;color:#fff;font-size:12px;font-weight:800;
}

.points-section--fold{border:1px solid #eee3ea;border-radius:20px;padding:0 16px 16px;background:#fff}
.points-section--fold[open]{box-shadow:0 8px 24px rgba(76,56,82,.04)}
.points-fold-summary{
  list-style:none;cursor:pointer;padding:16px 4px;display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.points-fold-summary::-webkit-details-marker{display:none}
.points-fold-title{font-size:15px;font-weight:850;color:#3a2f40}
.points-fold-meta{font-size:12px;color:#8a7d90}
.points-section--fold .points-head{margin-top:8px}
.points-section--fold .walk-points-card{margin-top:4px}

.walk-record-card.collapsed .walk-short-note{display:none}
.walk-record-card.collapsed .walk-record-compact{
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:12px;
}

@media(max-width:700px){
  .walk-record-card.collapsed .walk-record-compact{grid-template-columns:64px minmax(0,1fr) auto}
  .walk-record-compact-kicker{font-size:10px}
  .walk-record-compact-main h3{font-size:13px}
}

.buddy-shell:before{opacity:.45}

a:focus-visible,button:focus-visible,.hero-btn:focus-visible,.city-tab:focus-visible,.feed-tab:focus-visible{
  outline:3px solid rgba(255,111,145,.42);outline-offset:2px;
}

.hero-buddy-item strong{font-size:12px;line-height:1.45}
.hero-buddy-item span{font-size:11px;color:#888}

button.user-avatar{border:none;cursor:pointer;font:inherit;font-weight:800}
.user-avatar--logged-in{background:linear-gradient(135deg,var(--cw-primary,#ff6f91),var(--cw-secondary,#a18cd1));color:#fff}
.cw-auth-modal{max-width:420px;padding:28px 30px 32px}
.cw-auth-lead{font-size:12px;color:#777;margin-bottom:16px;line-height:1.65}
.cw-auth-tabs{display:flex;gap:8px;margin-bottom:18px}
.cw-auth-tab{flex:1;padding:9px;border-radius:999px;border:1px solid #eddde4;background:#fff;font-size:12px;font-weight:700;color:#666}
.cw-auth-form{display:flex;flex-direction:column;gap:8px}
.cw-auth-form .footprint-save-btn{margin-top:10px}
.cw-auth-account-email{font-size:12px;color:#555;margin-bottom:14px;line-height:1.5}
.cw-auth-logout-btn{width:100%;margin-top:16px;padding:10px;border-radius:999px;border:1px solid #eddde4;background:#fff;font-size:12px;font-weight:700;color:#666;cursor:pointer}
.post-like-btn{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}
.post-like-btn.liked{color:#ff385c;font-weight:800}
