:root{
  --card:rgba(255,255,255,.82);
  --card-strong:rgba(255,255,255,.92);
  --text:#e5e7eb;
  --muted:#cbd5e1;
  --pri:#111827;
  --line:rgba(148,163,184,.35);
  --ok:#059669;
  --danger:#dc2626;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,PingFang SC,sans-serif;color:var(--text)}

.app-shell{min-height:100vh;background:linear-gradient(130deg, rgba(2,6,23,.72), rgba(15,23,42,.52)), var(--page-bg) center/cover fixed no-repeat}
.route-register{--page-bg:url('https://images.unsplash.com/photo-1530789253388-582c481c54b0?auto=format&fit=crop&w=2200&q=80')}
.route-home{--page-bg:url('https://images.unsplash.com/photo-1449824913935-59a10b8d2000?auto=format&fit=crop&w=2200&q=80')}
.route-my{--page-bg:url('https://images.unsplash.com/photo-1469854523086-cc02fe5d8800?auto=format&fit=crop&w=2200&q=80')}
.route-messages{--page-bg:url('https://images.unsplash.com/photo-1476514525535-07fb3b4ae5f1?auto=format&fit=crop&w=2200&q=80')}
.route-search{--page-bg:url('https://images.unsplash.com/photo-1467269204594-9661b134dd2b?auto=format&fit=crop&w=2200&q=80')}
.route-admin{--page-bg:url('https://images.unsplash.com/photo-1480714378408-67cf0d13bc1f?auto=format&fit=crop&w=2200&q=80')}
.route-account{--page-bg:url('https://images.unsplash.com/photo-1491553895911-0055eca6402d?auto=format&fit=crop&w=2200&q=80')}
.route-trip{--page-bg:url('https://images.unsplash.com/photo-1488085061387-422e29b40080?auto=format&fit=crop&w=2200&q=80')}
.route-diary{--page-bg:url('https://images.unsplash.com/photo-1476900543704-4312b78632f8?auto=format&fit=crop&w=2200&q=80')}
.route-chat{--page-bg:url('https://images.unsplash.com/photo-1528127269322-539801943592?auto=format&fit=crop&w=2200&q=80')}

.top{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(15,23,42,.08);box-shadow:0 6px 24px rgba(15,23,42,.06);z-index:10}
.top-inner{width:100%;max-width:none;margin:0;display:flex;gap:12px;align-items:center;padding:10px 24px}
.brand{font-weight:800;display:flex;align-items:center;gap:8px;color:#0f172a}.brand img{height:48px;width:auto}
.nav{display:flex;gap:8px;flex-wrap:wrap}
.nav button{appearance:none;border:1px solid rgba(15,23,42,.10);background:rgba(255,255,255,.88);color:#0f172a;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer;transition:all .15s ease;display:inline-flex;gap:6px;align-items:center}
.nav button.active{background:rgba(236,72,153,.12);border-color:rgba(236,72,153,.35)}


.hero-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(120deg,rgba(15,23,42,.8),rgba(15,23,42,.58));color:#f8fafc;border-color:rgba(255,255,255,.22)}
.hero-text-wrap{display:flex;flex-direction:column;gap:6px}
.hero-kicker{margin:0;color:rgba(226,232,240,.86);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.hero-title{margin:0;font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.2}
.hero-lang{margin:0;color:rgba(226,232,240,.72);font-size:.9rem}
.hero-dots{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.hero-dot{width:10px;height:10px;border-radius:999px;border:1px solid rgba(255,255,255,.6);background:transparent;cursor:pointer;padding:0}
.hero-dot.active{width:20px;background:#fff;border-color:#fff}

.top-carousel{
  width:320px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  padding:6px 10px;
  background:linear-gradient(90deg, rgba(255,255,255,.92), rgba(248,250,252,.92));
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.auth-carousel-title{margin:0 0 8px;color:#0b1120;}
.auth-carousel-lang{margin:0 0 6px;color:#475569;font-weight:600}
.wrap{max-width:1320px;margin:16px auto;padding:0 16px;display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:16px}.full{grid-column:1/-1}
.card{background:var(--card);border:1px solid rgba(255,255,255,.30);border-radius:16px;padding:14px;box-shadow:0 18px 40px rgba(2,6,23,.35);backdrop-filter:blur(8px);color:#0f172a}
.grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.grid .full{grid-column:1/-1}
input,select,textarea{width:100%;padding:10px;border:1px solid rgba(148,163,184,.45);border-radius:10px;background:rgba(255,255,255,.95);color:#0f172a}textarea{min-height:90px}
input[type="file"]::file-selector-button{border:none;background:#e5e7eb;color:#111827;padding:.45rem .7rem;border-radius:8px;margin-right:.55rem;cursor:pointer}

.btn{border:none;background:#111827;color:#fff;padding:9px 12px;border-radius:10px;cursor:pointer}
.btn.sec{background:#374151}.btn.ghost{background:rgba(15,23,42,.08);color:#0f172a}.btn.danger{background:var(--danger)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hint{color:#334155;font-size:13px;margin:.2rem 0}
.trip{border:1px solid rgba(148,163,184,.35);padding:10px;border-radius:12px;margin-bottom:10px;background:var(--card-strong)}.meta{font-size:12px;color:#475569}

.diary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:560px}.diary-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;border:1px solid rgba(148,163,184,.45);cursor:pointer}.diary-grid-nine{max-width:640px}
.auth{max-width:480px;min-height:100vh;margin:0 auto;display:flex;align-items:center;justify-content:center;padding:18px}
.auth-simple .auth-panel{padding:20px 18px;background:rgba(255,255,255,.74);backdrop-filter:blur(8px)}
.auth-panel h2{margin:0 0 6px;font-size:1.8rem;color:#0b1120;letter-spacing:.3px}
.auth-panel .grid{grid-template-columns:1fr}

.chip{padding:4px 8px;border:1px solid rgba(148,163,184,.5);border-radius:999px;background:rgba(255,255,255,.8);font-size:12px;color:#0f172a}
dialog{border:none;border-radius:12px;padding:12px;max-width:min(900px,95vw)}dialog::backdrop{background:rgba(0,0,0,.55)}
@media (max-width:900px){.wrap{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.auth{max-width:92vw}.hero-banner{flex-direction:column;align-items:flex-start}.hero-dots{justify-content:flex-start}.top-carousel{min-width:unset;width:100%}.trip-square-search{width:220px;max-width:220px}}
.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid rgba(148,163,184,.5)}
.avatar.sm{width:28px;height:28px}.avatar.lg{width:64px;height:64px}
.msg-row{display:flex;margin:.4rem 0}.msg-row.me{justify-content:flex-end}
.msg-bubble{background:rgba(255,255,255,.88);border:1px solid rgba(148,163,184,.35);border-radius:10px;padding:.45rem .6rem;max-width:72%;color:#0f172a}
.avatar-btn{border:none;background:transparent;padding:0;display:inline-flex;align-items:center;cursor:pointer}
.profile-panel{position:fixed;top:64px;right:16px;z-index:30}
.profile-panel-card{width:min(420px,92vw);background:var(--card-strong);border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:12px;box-shadow:0 16px 30px rgba(15,23,42,.35);color:#0f172a}
.search-icon-btn{font-size:1.15rem;line-height:1;padding:6px 10px}
.trip-clickable{cursor:pointer}
.avatar-clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.avatar-clickable:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.3)}
.user-link{border:none;background:transparent;padding:0;font-size:1.08rem;font-weight:700;color:#0f172a;cursor:pointer;line-height:1.2}
.user-link:hover{text-decoration:underline}
.inline-link{border:none;background:transparent;color:#0f172a;font-weight:700;cursor:pointer;padding:0 2px}
.inline-link:hover{text-decoration:underline}
.msg-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 .3rem;border-radius:999px;background:#ef4444;color:#fff;font-size:.72rem;line-height:1;margin-left:.3rem;font-weight:700;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.chat-page{min-height:72vh;display:flex;flex-direction:column}
.chat-history{flex:1;min-height:420px;max-height:calc(72vh - 110px);overflow:auto}
.chat-input-row{position:sticky;bottom:0;background:rgba(248,250,252,.95);padding-top:.35rem}
.msg-head{display:flex;align-items:center;gap:.35rem;margin-bottom:.2rem}
.my-badge-side{align-self:flex-start}
.message-preview-list{display:grid;gap:4px;margin:.35rem 0 .55rem}
.search-user-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.search-user-item{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.lang-switch{border:1px solid rgba(148,163,184,.4);background:rgba(255,255,255,.9);color:#111827;padding:8px 10px;border-radius:10px;min-width:96px}
.admin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:10px}
.top-userbar{flex-wrap:nowrap;gap:8px;justify-content:flex-end;margin-left:auto}
.top-userbar .btn.ghost{background:rgba(15,23,42,.52);border:1px solid rgba(148,163,184,.35);color:#fff;white-space:nowrap}
.btn.liked{background:#111827;color:#fff}
.trip-likers{display:flex;align-items:center;gap:4px;margin:6px 0 2px}.trip-likers .avatar{width:22px;height:22px}
.comment-sort-select{min-width:90px;padding:6px 8px}
.trip-square-sort-select{min-width:118px;padding:7px 10px;border-radius:10px;border:1px solid rgba(148,163,184,.45);background:rgba(255,255,255,.92)}
.trip-square-toolbar{display:flex;align-items:center;gap:8px}.trip-square-search{width:280px;max-width:280px}
.btn.ghost.liked{background:#111827;color:#fff;border:1px solid rgba(255,255,255,.3)}
.trip-comments-block{margin-top:8px}
.brand span{white-space:nowrap}
.top-userbar .chip{max-width:none;white-space:nowrap;overflow:visible;text-overflow:clip;display:inline-block}
.top-name{max-width:none}
.home-message-aside{align-self:stretch;min-height:100%}
.msg-tabs .btn.active{background:#111827;color:#fff}
.follow-panel{position:fixed;top:72px;right:16px;z-index:31}
.follow-panel-card{width:min(420px,92vw);max-height:78vh;overflow:auto;background:var(--card-strong);border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:12px;box-shadow:0 16px 30px rgba(15,23,42,.35);color:#0f172a}
.no-wrap{flex-wrap:nowrap}
.group-member-row strong{white-space:nowrap}
.group-member-row .row{width:100%}
.group-member-check{margin-left:auto;flex:0 0 auto}

@media (min-width:901px){
  .route-home .wrap{align-items:start}
  .route-home .home-publish-card{grid-column:1}
  .route-home .home-message-aside{grid-column:2;grid-row:1}
}


/* Dot morph canvas host */
.dottext-host{ display:inline-block; }
.dottext-host canvas.dot-morph-canvas{ display:block; width:100%; height:100%; }

.dottext-hero{ width:100%; height:140px; }
.dottext-inline{ width:100%; height:60px; }
.dottext-inline canvas{ width:100% !important; height:60px !important; }

/* Center the hero dot text in auth card */
.auth-carousel-title{margin:0 0 8px;color:#0b1120;}
.auth-carousel-lang{ display:none !important; }

/* Make top carousel align nicely */
.top-carousel{ display:flex; align-items:center; justify-content:center; min-height:48px; }

/* login hero dot text bigger */
.auth-carousel-title.dottext-host{height:132px;}
.auth-carousel-title canvas{height:132px !important;}

/* hide removed carousel placeholder */
.top-carousel{display:none !important;}

.tab-unread-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 .3rem;border-radius:999px;background:#ef4444;color:#fff;font-size:.72rem;line-height:1;margin-left:.35rem;font-weight:700;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.feedback-success-dialog{position:fixed;inset:0;border:none;background:rgba(2,6,23,.42);display:grid;place-items:center;z-index:120;padding:0}
.feedback-success-card{width:min(420px,92vw);background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:18px 18px 14px;box-shadow:0 18px 40px rgba(15,23,42,.28)}
.feedback-success-card h3{margin:0 0 .35rem;color:#0f172a}.feedback-success-card p{margin:.2rem 0 1rem;color:#334155}
.image-preview-dialog{padding:0;background:rgba(255,255,255,.98);max-width:min(96vw,1280px);width:min(96vw,1280px)}
.image-preview-wrap{position:relative;display:flex;flex-direction:column;align-items:center;padding:18px 18px 12px;overflow:hidden}
.image-preview-stage{width:min(92vw,1180px);height:min(78vh,820px);display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;background:rgba(241,245,249,.88)}
.image-preview-img{position:relative;z-index:1;display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px}
.image-preview-close{position:absolute;top:12px;right:12px;z-index:20;width:36px;height:36px;appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(15,23,42,.82);color:#fff;font-size:22px;font-weight:800;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 22px rgba(2,6,23,.45);backdrop-filter:blur(2px)}
.image-preview-close:hover{background:rgba(15,23,42,.9)}

.my-diary-thumb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}
.my-diary-thumb-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;border:1px solid rgba(148,163,184,.45);cursor:pointer}

.thumb-tile{position:relative;padding:0;border:none;background:transparent;cursor:pointer;border-radius:8px;overflow:hidden}
.thumb-tile img{display:block;width:100%;height:100%;object-fit:cover}
.thumb-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(15,23,42,.45);color:#fff;font-size:1.1rem;font-weight:700}
.image-preview-toolbar{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-top:.6rem}

.account-diary-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,420px));gap:12px;justify-content:flex-start}
.account-diary-card{margin-bottom:0;align-self:start;max-width:420px;width:100%}
.msg-user-link{font-size:.95rem;font-weight:700}
.system-msg-card p{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:.4rem 0}
.system-actor-link{font-size:1rem}
@media (max-width:900px){.account-diary-list{grid-template-columns:1fr}}





/* share card */
.trip-detail-actions{margin-top:10px}

.sharecard-modal{
  position:fixed;inset:0;z-index:70;background:rgba(2,6,23,.62);
  display:flex;align-items:center;justify-content:center;padding:20px;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.sharecard-panel{
  width:min(96vw,980px);max-height:92vh;
  background:rgba(255,255,255,.96);border-radius:20px;padding:16px;
  box-shadow:0 24px 60px rgba(2,6,23,.35);
  display:flex;flex-direction:column;
}
.sharecard-toolbar{
  display:flex;justify-content:space-between;gap:12px;align-items:flex-start;
  margin-bottom:12px;flex:0 0 auto;
}
.sharecard-preview-wrap{
  display:flex;justify-content:center;align-items:flex-start;
  overflow:auto;padding:4px 0 2px;flex:1 1 auto;min-height:0;
}
.sharecard-loading{
  width:min(360px,86vw);aspect-ratio:3/4;border-radius:28px;
  display:grid;place-items:center;background:rgba(241,245,249,.9);color:#0f172a;font-size:16px
}
.sharecard-canvas{
  width:min(360px,86vw);aspect-ratio:3/4;border-radius:28px;overflow:hidden;
  background-size:cover;background-position:center center;position:relative;
  box-shadow:0 18px 50px rgba(2,6,23,.28);
  flex:0 0 auto;
}
.sharecard-canvas::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.08) 30%,rgba(255,255,255,.16) 62%,rgba(255,255,255,.22));
}
.sharecard-inner{
  position:relative;z-index:1;height:100%;display:flex;flex-direction:column;
  padding:4px 12px 8px;color:#fff;
}
.sharecard-brand{
  display:flex;justify-content:center;margin-top:-2px;margin-bottom:-2px;
}
.sharecard-logo{
  width:138px;max-width:49%;height:auto;display:block;object-fit:contain;
}
.sharecard-subtitle{
  margin-top:-10px;
  display:flex;align-items:center;justify-content:center;gap:5px;
  color:rgba(255,255,255,.96);
  text-align:center;
}
.sharecard-sub-text{
  font-size:9px;line-height:1.05;font-weight:700;letter-spacing:.35px;
  text-shadow:0 2px 10px rgba(15,23,42,.32);white-space:nowrap;
}
.sharecard-sub-deco{
  font-size:8px;line-height:1;color:rgba(255,255,255,.88);letter-spacing:.4px;
  text-shadow:0 2px 10px rgba(15,23,42,.28);white-space:nowrap;
}
.sharecard-title{
  margin:2px 0 6px;text-align:center;color:#fff;font-weight:900;
  font-size:clamp(17px,2.6vw,22px);line-height:1.06;letter-spacing:0;
  text-shadow:0 4px 18px rgba(15,23,42,.38);white-space:nowrap;
}
.sharecard-info-card,.sharecard-profile-card{
  background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.26);
  box-shadow:0 10px 24px rgba(15,23,42,.10);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.sharecard-info-card{border-radius:18px;padding:7px 10px 5px}
.sharecard-info-row{
  display:grid;grid-template-columns:80px 1fr;gap:8px;align-items:center;margin-bottom:5px;
}
.sharecard-info-row:last-child{margin-bottom:0}
.sharecard-pill{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:26px;padding:0 8px;border-radius:999px;
  background:linear-gradient(135deg,rgba(12,121,163,.95),rgba(62,188,233,.92));
  color:#fff;font-weight:800;font-size:11px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)
}
.sharecard-value{
  min-height:26px;display:flex;align-items:center;padding:0 1px;
  color:#0f172a;font-weight:800;font-size:11px;text-shadow:0 1px 0 rgba(255,255,255,.18)
}
.sharecard-value-wrap{
  align-items:flex-start;line-height:1.12;padding-top:0;padding-bottom:0;white-space:normal;
}
.sharecard-profile-card{margin-top:6px;border-radius:18px;padding:7px 10px 5px}
.sharecard-profile-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.sharecard-avatar{
  width:50px;height:50px;border-radius:999px;object-fit:cover;border:2px solid rgba(255,255,255,.58);box-shadow:0 8px 20px rgba(15,23,42,.18)
}
.sharecard-profile-main{min-width:0;flex:1}
.sharecard-nickname{
  margin:0;color:#0f172a;font-size:16px;line-height:1.02;font-weight:900;
}
.sharecard-bio{
  margin:2px 0 0;color:#334155;font-size:9px;line-height:1.08;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.sharecard-profile-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 8px
}
.sharecard-profile-item{
  display:flex;justify-content:space-between;gap:6px;padding:1px 0;border-bottom:1px solid rgba(255,255,255,.12);
}
.sharecard-profile-item span{color:#334155;font-size:9px;font-weight:700}
.sharecard-profile-item strong{color:#0f172a;font-size:9px;font-weight:900;text-align:right}
.sharecard-footer{
  margin-top:auto;background:rgba(251,239,228,.94);border:1px solid rgba(255,255,255,.55);
  border-radius:999px;padding:6px 10px 5px;text-align:center;color:#6d4024;
  box-shadow:0 10px 24px rgba(15,23,42,.14);backdrop-filter:blur(10px)
}
.sharecard-footer-title{
  font-size:10px;font-weight:900;line-height:1.08;color:#72452a;
}
.sharecard-footer-url{
  margin-top:2px;font-size:9px;font-weight:800;color:#5c3721;
  word-break:break-all;line-height:1.08;
}

@media (max-width: 640px){
  .sharecard-panel{padding:12px}
  .sharecard-toolbar{flex-direction:column}
  .sharecard-canvas,.sharecard-loading{width:min(86vw,360px)}
  .sharecard-title{font-size:clamp(17px,5vw,22px)}
}


/* share card icon & footer refinements */
.sharecard-profile-item span{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.sharecard-mini-icon{
  font-style:normal;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:12px;
  color:#57706f;
  opacity:.95;
}
.sharecard-footer{
  background:rgba(255,255,255,.20) !important;
  border:1px solid rgba(255,255,255,.26) !important;
  box-shadow:0 10px 24px rgba(15,23,42,.10) !important;
  backdrop-filter:blur(10px) !important;
  -webkit-backdrop-filter:blur(10px) !important;
}
.sharecard-footer-title{
  color:#fff !important;
  text-shadow:0 3px 12px rgba(15,23,42,.28);
  letter-spacing:.2px;
}
.sharecard-footer-url{
  color:#f8fafc !important;
  text-shadow:0 2px 8px rgba(15,23,42,.22);
}


/* merged glass container + white icons */
.sharecard-main-glass{
  margin-top:6px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 12px 30px rgba(15,23,42,.12);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-radius:22px;
  padding:8px 10px 8px;
}

.sharecard-info-card,
.sharecard-profile-card,
.sharecard-footer{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

.sharecard-profile-card{
  margin-top:8px;
  padding:6px 0 4px;
  border-top:1px solid rgba(255,255,255,.16) !important;
  border-radius:0 !important;
}

.sharecard-footer{
  margin-top:8px;
  padding:8px 4px 2px;
  border-top:1px solid rgba(255,255,255,.16) !important;
  border-radius:0 !important;
}

.sharecard-mini-icon{
  color:#ffffff !important;
  opacity:1 !important;
  text-shadow:0 2px 8px rgba(15,23,42,.25);
}

.sharecard-profile-item span{
  color:#eaf2ff !important;
}

.sharecard-profile-item strong{
  color:#ffffff !important;
  text-shadow:0 2px 8px rgba(15,23,42,.18);
}

.sharecard-footer-title{
  color:#ffffff !important;
  text-shadow:0 3px 12px rgba(15,23,42,.28);
}

.sharecard-footer-url{
  color:#ffffff !important;
  text-shadow:0 2px 8px rgba(15,23,42,.22);
}


/* export-only high-res card */
.sharecard-export-stage{
  position: fixed;
  left: -99999px;
  top: 0;
  width: 1080px;
  height: 1440px;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
}

.sharecard-canvas-export{
  width: 1080px !important;
  height: 1440px !important;
  aspect-ratio: auto !important;
  border-radius: 84px !important;
  background-size: cover !important;
  background-position: center center !important;
  box-shadow: none !important;
}

.sharecard-canvas-export .sharecard-inner{
  padding: 16px 36px 26px !important;
}

.sharecard-canvas-export .sharecard-logo{
  width: 360px !important;
  max-width: none !important;
}

.sharecard-canvas-export .sharecard-subtitle{
  margin-top: -14px !important;
  gap: 14px !important;
}

.sharecard-canvas-export .sharecard-sub-text{
  font-size: 30px !important;
  line-height: 1.15 !important;
}

.sharecard-canvas-export .sharecard-sub-deco{
  font-size: 24px !important;
}

.sharecard-canvas-export .sharecard-title{
  margin: 10px 0 20px !important;
  font-size: 88px !important;
  line-height: 1.06 !important;
}

.sharecard-canvas-export .sharecard-main-glass{
  margin-top: 10px !important;
  border-radius: 64px !important;
  padding: 26px 30px 24px !important;
}

.sharecard-canvas-export .sharecard-info-card{
  padding: 0 !important;
}

.sharecard-canvas-export .sharecard-info-row{
  grid-template-columns: 240px 1fr !important;
  gap: 24px !important;
  margin-bottom: 18px !important;
}

.sharecard-canvas-export .sharecard-pill{
  min-height: 78px !important;
  padding: 0 20px !important;
  font-size: 36px !important;
}

.sharecard-canvas-export .sharecard-value{
  min-height: 78px !important;
  font-size: 44px !important;
  line-height: 1.18 !important;
}

.sharecard-canvas-export .sharecard-value-wrap{
  padding-top: 6px !important;
  font-size: 34px !important;
  line-height: 1.18 !important;
}

.sharecard-canvas-export .sharecard-profile-card{
  margin-top: 22px !important;
  padding: 18px 0 10px !important;
}

.sharecard-canvas-export .sharecard-profile-top{
  gap: 22px !important;
  margin-bottom: 16px !important;
}

.sharecard-canvas-export .sharecard-avatar{
  width: 132px !important;
  height: 132px !important;
  border-width: 6px !important;
}

.sharecard-canvas-export .sharecard-nickname{
  font-size: 62px !important;
  line-height: 1.04 !important;
}

.sharecard-canvas-export .sharecard-profile-grid{
  gap: 8px 28px !important;
}

.sharecard-canvas-export .sharecard-profile-item{
  padding: 7px 0 !important;
}

.sharecard-canvas-export .sharecard-profile-item span{
  font-size: 26px !important;
}

.sharecard-canvas-export .sharecard-profile-item strong{
  font-size: 30px !important;
}

.sharecard-canvas-export .sharecard-mini-icon{
  width: 24px !important;
}

.sharecard-canvas-export .sharecard-footer{
  margin-top: 18px !important;
  padding: 18px 18px 12px !important;
}

.sharecard-canvas-export .sharecard-footer-title{
  font-size: 34px !important;
  line-height: 1.16 !important;
}

.sharecard-canvas-export .sharecard-footer-url{
  margin-top: 8px !important;
  font-size: 28px !important;
  line-height: 1.15 !important;
}


/* export fit fix: shrink export-only typography/layout so full content fits in 1080x1440 */
.sharecard-canvas-export .sharecard-inner{
  padding: 14px 32px 22px !important;
}

.sharecard-canvas-export .sharecard-logo{
  width: 320px !important;
}

.sharecard-canvas-export .sharecard-subtitle{
  margin-top: -12px !important;
  gap: 10px !important;
}

.sharecard-canvas-export .sharecard-sub-text{
  font-size: 24px !important;
}

.sharecard-canvas-export .sharecard-sub-deco{
  font-size: 18px !important;
}

.sharecard-canvas-export .sharecard-title{
  margin: 8px 0 16px !important;
  font-size: 72px !important;
  line-height: 1.05 !important;
}

.sharecard-canvas-export .sharecard-main-glass{
  margin-top: 6px !important;
  border-radius: 56px !important;
  padding: 22px 24px 18px !important;
}

.sharecard-canvas-export .sharecard-info-row{
  grid-template-columns: 216px 1fr !important;
  gap: 18px !important;
  margin-bottom: 14px !important;
}

.sharecard-canvas-export .sharecard-pill{
  min-height: 66px !important;
  font-size: 30px !important;
}

.sharecard-canvas-export .sharecard-value{
  min-height: 66px !important;
  font-size: 36px !important;
}

.sharecard-canvas-export .sharecard-value-wrap{
  font-size: 28px !important;
  line-height: 1.14 !important;
}

.sharecard-canvas-export .sharecard-profile-card{
  margin-top: 18px !important;
  padding: 14px 0 8px !important;
}

.sharecard-canvas-export .sharecard-profile-top{
  gap: 18px !important;
  margin-bottom: 12px !important;
}

.sharecard-canvas-export .sharecard-avatar{
  width: 110px !important;
  height: 110px !important;
}

.sharecard-canvas-export .sharecard-nickname{
  font-size: 54px !important;
}

.sharecard-canvas-export .sharecard-profile-grid{
  gap: 4px 20px !important;
}

.sharecard-canvas-export .sharecard-profile-item{
  padding: 5px 0 !important;
}

.sharecard-canvas-export .sharecard-profile-item span{
  font-size: 22px !important;
}

.sharecard-canvas-export .sharecard-profile-item strong{
  font-size: 24px !important;
}

.sharecard-canvas-export .sharecard-mini-icon{
  width: 20px !important;
}

.sharecard-canvas-export .sharecard-footer{
  margin-top: 14px !important;
  padding: 14px 14px 10px !important;
}

.sharecard-canvas-export .sharecard-footer-title{
  font-size: 28px !important;
}

.sharecard-canvas-export .sharecard-footer-url{
  margin-top: 6px !important;
  font-size: 22px !important;
}


/* attribution */
.sharecard-attribution{
  margin-top: 6px;
  text-align: center;
  font-size: 10px;
  line-height: 1.2;
  color: rgba(255,255,255,.82);
  letter-spacing: .2px;
  text-shadow: 0 2px 8px rgba(15,23,42,.22);
}

.sharecard-canvas-export .sharecard-attribution{
  margin-top: 8px !important;
  font-size: 20px !important;
  line-height: 1.18 !important;
}


/* share button icon */
.share-trigger-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

/* footer url clarity */
.sharecard-footer-url{
  font-family: Arial, Helvetica, sans-serif !important;
  letter-spacing: 0 !important;
  word-spacing: 0 !important;
  text-transform: none !important;
  font-variant-ligatures: none !important;
  -webkit-font-smoothing: antialiased;
}
.sharecard-canvas-export .sharecard-footer-url{
  font-family: Arial, Helvetica, sans-serif !important;
  letter-spacing: 0 !important;
  word-spacing: 0 !important;
  font-variant-ligatures: none !important;
}


/* INS-style share trigger button */
.share-trigger-btn-ins{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px !important;
  border-radius:14px !important;
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%) !important;
  color:#fff !important;
  box-shadow: 0 8px 20px rgba(37,117,252,.28);
  font-weight:700;
}
.share-trigger-btn-ins:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(37,117,252,.32);
}
.share-trigger-btn-ins .share-trigger-icon{
  width:22px;
  height:22px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.2);
  color:#fff;
  font-size:14px;
  line-height:1;
  font-weight:900;
}


/* refined INS-style share button: align with surrounding buttons */
.trip-detail-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.share-trigger-btn.share-trigger-btn-ins{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  height:48px;
  padding:0 16px !important;
  border-radius:12px !important;
  border:1px solid rgba(255,255,255,.12) !important;
  background:linear-gradient(135deg,#fd5c63 0%, #c13584 45%, #5851db 100%) !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(88,81,219,.22);
  font-weight:700;
  font-size:16px;
  line-height:1;
  white-space:nowrap;
  vertical-align:middle;
}

.share-trigger-btn.share-trigger-btn-ins:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(88,81,219,.28);
}

.share-trigger-btn.share-trigger-btn-ins .share-trigger-icon{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:800;
  flex:0 0 18px;
}


/* unified action button system for trip detail */
.trip-detail-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

.trip-detail-actions .btn{
  height:46px;
  padding:0 16px !important;
  border-radius:12px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:15px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  transition:all .18s ease;
}

/* like button */
.trip-detail-actions .btn.like-btn,
.trip-detail-actions .btn:first-child{
  background:#0f172a !important;
  color:#fff !important;
  border:1px solid rgba(15,23,42,.95) !important;
  box-shadow:0 6px 16px rgba(15,23,42,.14);
}

/* share button */
.trip-detail-actions .share-trigger-btn.share-trigger-btn-ins{
  background:linear-gradient(135deg,#fd5c63 0%, #c13584 45%, #5851db 100%) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 8px 20px rgba(88,81,219,.24);
}

/* edit button */
.trip-detail-actions .btn.edit-btn,
.trip-detail-actions .btn:last-child{
  background:rgba(255,255,255,.92) !important;
  color:#0f172a !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 6px 16px rgba(15,23,42,.08);
}

.trip-detail-actions .btn:hover{
  transform:translateY(-1px);
}

.trip-detail-actions .btn.edit-btn:hover,
.trip-detail-actions .btn:last-child:hover{
  background:#fff !important;
  box-shadow:0 8px 18px rgba(15,23,42,.12);
}

.trip-detail-actions .btn.like-btn:hover,
.trip-detail-actions .btn:first-child:hover{
  box-shadow:0 8px 18px rgba(15,23,42,.18);
}

.trip-detail-actions .share-trigger-btn.share-trigger-btn-ins:hover{
  box-shadow:0 10px 22px rgba(88,81,219,.28);
}

.trip-detail-actions .share-trigger-icon{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:12px;
  font-weight:800;
  flex:0 0 18px;
}


/* INS-like icon refinements */
.share-trigger-btn.share-trigger-btn-ins .share-trigger-icon{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:800;
  flex:0 0 18px;
}

/* edit button with ins-style icon */
.trip-detail-actions .btn.edit-btn-ins{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  height:46px;
  padding:0 16px !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.92) !important;
  color:#0f172a !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 6px 16px rgba(15,23,42,.08);
  font-size:15px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}

.trip-detail-actions .btn.edit-btn-ins:hover{
  transform:translateY(-1px);
  background:#fff !important;
  box-shadow:0 8px 18px rgba(15,23,42,.12);
}

.edit-trigger-icon{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,.06);
  color:#c13584;
  font-size:11px;
  line-height:1;
  font-weight:800;
  flex:0 0 18px;
}


/* final ins-like button icons */
.share-trigger-btn.share-trigger-btn-ins .share-trigger-icon{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:800;
  flex:0 0 18px;
}

.trip-detail-actions .btn.edit-btn-ins{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  height:46px;
  padding:0 16px !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.92) !important;
  color:#0f172a !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 6px 16px rgba(15,23,42,.08);
  font-size:15px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}

.trip-detail-actions .btn.edit-btn-ins:hover{
  transform:translateY(-1px);
  background:#fff !important;
  box-shadow:0 8px 18px rgba(15,23,42,.12);
}

.edit-trigger-icon{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,.06);
  color:#c13584;
  font-size:11px;
  line-height:1;
  font-weight:800;
  flex:0 0 18px;
}



/* itinerary structured display */
.trip-itinerary.rich{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:10px 0 12px;
}
.trip-itinerary.rich.compact{
  gap:8px;
  margin:8px 0 10px;
}
.trip-itinerary-overview,
.trip-itinerary-day{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.96));
  border:1px solid rgba(148,163,184,.22);
  border-radius:14px;
  padding:12px 14px;
  box-shadow:0 4px 14px rgba(15,23,42,.05);
}
.trip-itinerary.rich.compact .trip-itinerary-overview,
.trip-itinerary.rich.compact .trip-itinerary-day{
  border-radius:12px;
  padding:10px 12px;
}
.trip-itinerary-overview-title{
  font-size:13px;
  font-weight:800;
  color:#334155;
  margin-bottom:8px;
}
.trip-itinerary-day-header{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  flex-wrap:wrap;
}
.trip-itinerary-day-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:26px;
  padding:0 10px;
  border-radius:999px;
  background:linear-gradient(135deg,#fd5c63 0%, #c13584 45%, #5851db 100%);
  color:#fff;
  font-size:12px;
  font-weight:800;
  box-shadow:0 6px 14px rgba(88,81,219,.18);
}
.trip-itinerary-day-title{
  font-size:14px;
  font-weight:800;
  color:#0f172a;
}
.trip-itinerary-list{
  margin:0;
  padding-left:18px;
  color:#0f172a;
}
.trip-itinerary-list li{
  margin:0 0 6px;
  line-height:1.7;
  font-size:15px;
}
.trip-itinerary.rich.compact .trip-itinerary-list li{
  margin:0 0 4px;
  line-height:1.6;
  font-size:14px;
}
.trip-itinerary-time{
  display:inline-block;
  min-width:42px;
  margin-right:6px;
  color:#c13584;
  font-weight:800;
}
.trip-itinerary-more{
  font-size:12px;
  color:#64748b;
  padding:0 2px;
}
.trip-itinerary-empty{
  color:#64748b;
  font-size:14px;
  margin:8px 0;
}



/* =========================
   Mobile-first responsive polish
   ========================= */
@media (max-width: 768px){
  html, body{
    font-size:14px;
  }

  .app-shell,
  .page-shell,
  .page-wrap,
  .route-home,
  .route-trip,
  .route-profile,
  .route-messages{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .topbar,
  .nav-bar,
  .app-header,
  .site-header{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .topbar .row,
  .nav-bar .row,
  .app-header .row{
    flex-wrap:wrap !important;
    gap:8px !important;
  }

  .topbar .btn,
  .nav-bar .btn,
  .app-header .btn{
    height:40px !important;
    padding:0 12px !important;
    font-size:14px !important;
    border-radius:12px !important;
  }

  .main-grid,
  .home-grid,
  .dashboard-grid,
  .trip-layout,
  .profile-layout{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
  }

  .left-panel,
  .right-panel,
  .sidebar,
  .main-panel,
  .content-panel,
  .card,
  .panel,
  .trip-card,
  .profile-card,
  .message-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .card,
  .panel,
  .trip-card,
  .profile-card,
  .message-card{
    border-radius:16px !important;
    padding:14px !important;
  }

  .trip-square-toolbar{
    width:100% !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .trip-square-search,
  .trip-square-sort-select,
  .trip-square-filter-control,
  input,
  select,
  textarea,
  .input,
  .select,
  .textarea{
    width:100% !important;
    max-width:100% !important;
    font-size:16px !important; /* prevent iOS zoom */
    border-radius:12px !important;
  }

  textarea,
  .textarea{
    min-height:120px !important;
  }

  .trip-square-filters{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .trip-square-budget-filter{
    width:100% !important;
  }

  .trip-detail-actions,
  .action-row,
  .toolbar-actions{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:8px !important;
    width:100% !important;
  }

  .trip-detail-actions .btn,
  .action-row .btn,
  .toolbar-actions .btn{
    width:100% !important;
    min-width:0 !important;
    height:42px !important;
    font-size:14px !important;
    padding:0 10px !important;
  }

  .trip-detail-actions .share-trigger-btn span:last-child{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .trip-itinerary-day,
  .trip-itinerary-overview{
    padding:10px 12px !important;
    border-radius:12px !important;
  }

  .trip-itinerary-list li{
    font-size:14px !important;
    line-height:1.6 !important;
  }

  .trip-itinerary-day-title{
    font-size:13px !important;
  }

  .sharecard-panel,
  .sharecard-modal,
  .modal-panel{
    width:calc(100vw - 20px) !important;
    max-width:calc(100vw - 20px) !important;
    border-radius:18px !important;
    padding:12px !important;
  }

  .sharecard-preview-wrap{
    overflow:auto !important;
    justify-content:flex-start !important;
  }

  .sharecard-toolbar{
    gap:8px !important;
  }

  .sharecard-toolbar .btn{
    height:40px !important;
    padding:0 12px !important;
    font-size:14px !important;
  }

  .sharecard-canvas{
    transform-origin:top center !important;
  }

  .comment-row,
  .comment-input-row{
    display:flex !important;
    flex-direction:column !important;
    gap:8px !important;
  }

  .comment-row .btn,
  .comment-input-row .btn{
    width:100% !important;
  }

  .avatar,
  .user-avatar,
  .trip-avatar{
    width:40px !important;
    height:40px !important;
    border-radius:999px !important;
    flex:0 0 40px !important;
  }

  h1{
    font-size:24px !important;
    line-height:1.25 !important;
  }

  h2{
    font-size:20px !important;
    line-height:1.3 !important;
  }

  h3{
    font-size:18px !important;
    line-height:1.35 !important;
  }

  .mobile-stack,
  .row.mobile-stack{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
}

@media (max-width: 480px){
  .topbar,
  .nav-bar,
  .app-header,
  .site-header{
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .card,
  .panel,
  .trip-card,
  .profile-card,
  .message-card{
    padding:12px !important;
    border-radius:14px !important;
  }

  .trip-detail-actions,
  .action-row,
  .toolbar-actions{
    grid-template-columns:1fr 1fr !important;
  }

  .trip-detail-actions .btn:last-child{
    grid-column:1 / -1;
  }

  .trip-meta,
  .meta-row{
    display:flex !important;
    flex-direction:column !important;
    gap:4px !important;
    align-items:flex-start !important;
  }

  .sharecard-panel,
  .sharecard-modal,
  .modal-panel{
    width:calc(100vw - 12px) !important;
    max-width:calc(100vw - 12px) !important;
    padding:10px !important;
  }
}


/* ===== Mobile polish: real selectors ===== */
.auth-logo-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:6px 0 18px;
}
.auth-logo{
  height:64px;
  width:auto;
  display:block;
  object-fit:contain;
}
.auth-panel .auth-carousel-title{
  text-align:center;
  margin:6px auto 10px;
}
.auth-panel .hint{
  text-align:left;
}

@media (max-width: 768px){
  .top{
    position:static;
  }
  .top-inner{
    padding:10px 12px !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    align-items:stretch !important;
  }
  .brand{
    justify-content:center !important;
    width:100% !important;
  }
  .brand img{
    height:44px !important;
    margin:0 auto !important;
  }
  .nav{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    gap:8px !important;
    width:100% !important;
  }
  .nav button{
    width:100% !important;
    min-width:0 !important;
    min-height:42px !important;
    padding:8px 6px !important;
    border-radius:14px !important;
    justify-content:center !important;
    text-align:center !important;
    line-height:1.25 !important;
    font-size:14px !important;
    white-space:normal !important;
  }
  .top-userbar{
    margin-left:0 !important;
    width:100% !important;
    display:grid !important;
    grid-template-columns:minmax(110px,1fr) 44px minmax(96px,1fr) 72px !important;
    gap:8px !important;
    align-items:center !important;
  }
  .top-userbar .lang-switch,
  .top-userbar .chip,
  .top-userbar .btn,
  .top-userbar .avatar-btn{
    width:100% !important;
    min-width:0 !important;
  }
  .top-userbar .chip{
    text-align:center !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .auth{
    width:100% !important;
    max-width:100% !important;
    padding:24px 14px 40px !important;
    display:flex !important;
    justify-content:center !important;
  }
  .auth-panel{
    width:min(100%, 420px) !important;
    padding:18px 14px 16px !important;
    border-radius:18px !important;
    margin:0 auto !important;
  }
  .auth-logo{
    height:56px !important;
  }
  .auth-panel .auth-carousel-title{
    font-size:28px !important;
    text-align:center !important;
  }
  .auth-panel > div[style*="position:absolute"]{
    top:12px !important;
    right:12px !important;
  }
  .auth-panel .grid input,
  .auth-panel .grid button{
    width:100% !important;
  }

  .route-home .wrap,
  .route-search .wrap,
  .route-my .wrap,
  .route-messages .wrap{
    display:block !important;
    padding:0 10px !important;
    margin:12px auto !important;
  }

  .route-home .home-publish-card,
  .route-home .home-message-aside{
    width:100% !important;
    margin-bottom:12px !important;
  }

  .search-user-list{
    grid-template-columns:1fr !important;
  }
  .search-user-item{
    grid-template-columns:48px 1fr !important;
    gap:12px !important;
  }
  .search-user-item .avatar{
    width:48px !important;
    height:48px !important;
  }

  .route-search h4{
    margin:16px 0 8px !important;
  }
}

@media (max-width: 480px){
  .nav{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
  .top-userbar{
    grid-template-columns:1fr 44px 1fr !important;
  }
  .top-userbar .btn.ghost{
    grid-column:1 / -1;
  }
  .auth-panel{
    padding-top:72px !important;
  }
}


/* feature: publish page + simplified home */
.route-home .wrap,
.route-publish .wrap{
  align-items:start;
}
.route-publish .publish-page-card{
  max-width:1080px;
  margin:0 auto;
}
.route-publish .publish-page-card .grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.route-publish .publish-page-card .full{
  grid-column:1 / -1;
}
.route-home .card.full{
  width:100%;
}
.nav button{
  white-space:nowrap;
}
@media (max-width: 900px){
  .route-publish .publish-page-card .grid{
    grid-template-columns:1fr;
  }
}


/* publish page */
.route-publish{
  --page-bg:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=2200&q=80');
}
.publish-page-card{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.38);
  backdrop-filter:blur(10px);
}
.publish-page-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
  padding:18px 18px 14px;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,244,214,.92) 0%, rgba(255,226,214,.88) 48%, rgba(255,240,232,.92) 100%);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
}
.publish-page-kicker{
  margin:0 0 6px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#9a3412;
  font-weight:700;
}
.publish-page-hero h3{
  margin:0 0 6px;
  font-size:30px;
}

/* home trip cards */
.trip-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:14px;
}
.trip-feed-card{
  overflow:hidden;
  border-radius:28px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 20px 44px rgba(15,23,42,.12);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
}
.trip-feed-card:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 56px rgba(15,23,42,.16);
}
.trip-feed-cover{
  min-height:208px;
  padding:20px 18px 18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
}
.trip-feed-cover::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.24) 100%);
  pointer-events:none;
}
.trip-feed-cover>*{position:relative;z-index:1}
.trip-feed-cover-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  font-size:12px;
  color:#7c2d12;
  font-weight:700;
}
.trip-feed-place{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.trip-feed-title{
  margin:18px 0 10px;
  font-size:34px;
  line-height:1.12;
  color:#1f2937;
  letter-spacing:-.02em;
  word-break:break-word;
}
.trip-feed-time{
  margin:0;
  font-size:14px;
  line-height:1.5;
  color:#7c2d12;
  font-weight:600;
}
.trip-feed-body{
  padding:14px 16px 16px;
}
.trip-feed-user{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.trip-feed-summary{
  margin:0 0 12px;
  font-size:14px;
  color:#475569;
  line-height:1.6;
  min-height:44px;
}
.trip-feed-stats{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:13px;
  color:#0f172a;
  font-weight:600;
}
.trip-square-toolbar{
  align-items:center;
}

@media (max-width: 1024px){
  .trip-card-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 768px){
  .publish-page-hero{
    padding:16px 14px 12px;
    border-radius:18px;
  }
  .publish-page-hero h3{
    font-size:24px;
  }
  .trip-feed-cover{
    min-height:180px;
    padding:18px 16px 16px;
  }
  .trip-feed-title{
    font-size:28px;
  }
}


/* instagram-like icon nav */
.nav-iconbar{
  gap:10px;
}
.nav-iconbar button{
  position:relative;
  width:52px;
  min-width:52px;
  height:52px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  font-size:0;
}
.nav-iconbar .nav-ico{
  font-size:28px;
  line-height:1;
}
.nav-iconbar button::after{
  content:attr(data-tip);
  position:absolute;
  left:50%;
  top:calc(100% + 10px);
  transform:translateX(-50%) translateY(-4px);
  padding:8px 10px;
  border-radius:12px;
  background:rgba(15,23,42,.92);
  color:#fff;
  font-size:13px;
  line-height:1;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:all .18s ease;
  box-shadow:0 12px 28px rgba(15,23,42,.18);
}
.nav-iconbar button:hover::after{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.nav-iconbar button.active{
  border-color:#f9a8d4;
  background:#fdf2f8;
}

/* feedback page */
.route-feedback{
  --page-bg:url('https://images.unsplash.com/photo-1517841905240-472988babdf9?auto=format&fit=crop&w=2200&q=80');
}
.feedback-page-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.44);
  backdrop-filter:blur(10px);
}
.feedback-page-hero{
  padding:18px 18px 14px;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(254,242,242,.96) 0%, rgba(253,230,242,.9) 48%, rgba(255,237,213,.9) 100%);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
}
.feedback-page-kicker{
  margin:0 0 6px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#9d174d;
  font-weight:700;
}
.feedback-page-hero h3{
  margin:0 0 6px;
  font-size:30px;
}
.feedback-stats-card{
  margin-top:16px;
  padding:20px 18px;
  border-radius:22px;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(226,232,240,.9);
}
.feedback-stat-number{
  margin:4px 0 14px;
  font-size:40px;
  line-height:1;
  font-weight:800;
  color:#0f172a;
}

@media (max-width: 768px){
  .nav-iconbar{
    gap:8px;
    flex-wrap:wrap;
  }
  .nav-iconbar button{
    width:46px;
    min-width:46px;
    height:46px;
    border-radius:16px;
  }
  .nav-iconbar .nav-ico{
    font-size:24px;
  }
  .nav-iconbar button::after{
    display:none;
  }
  .feedback-page-hero{
    padding:16px 14px 12px;
    border-radius:18px;
  }
  .feedback-page-hero h3{
    font-size:24px;
  }
}


/* feedback page scenic background */
.route-feedback{
  --page-bg:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=2200&q=80');
}
.feedback-page-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.44);
  backdrop-filter:blur(10px);
  max-width:980px;
}
.feedback-page-hero.scenic{
  padding:22px 22px 18px;
  border-radius:24px;
  background:
    linear-gradient(135deg, rgba(15,23,42,.22), rgba(15,23,42,.08)),
    url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=80') center/cover no-repeat;
  color:#fff;
  box-shadow:0 16px 36px rgba(15,23,42,.14);
}
.feedback-page-hero.scenic .hint{color:rgba(255,255,255,.9);}
.feedback-page-kicker{
  margin:0 0 8px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#fde68a;
  font-weight:700;
}
.feedback-page-hero h3{margin:0 0 8px;font-size:32px;color:#fff;}
.feedback-stats-card{
  margin-top:16px;
  padding:20px 18px;
  border-radius:22px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(226,232,240,.9);
}
.feedback-stat-number{
  margin:4px 0 14px;
  font-size:40px;
  line-height:1;
  font-weight:800;
  color:#0f172a;
}
@media (max-width: 768px){
  .feedback-page-hero.scenic{padding:18px 16px 14px;border-radius:18px;}
  .feedback-page-hero h3{font-size:24px;}
}


.trip-detail-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:.8rem 0 1rem;
}
.trip-detail-meta-item{
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(226,232,240,.95);
}
.trip-detail-meta-label{
  font-size:12px;
  color:#64748b;
  margin-bottom:6px;
  font-weight:700;
}
.trip-detail-meta-value{
  color:#0f172a;
  font-weight:700;
  line-height:1.45;
  word-break:break-word;
}
@media (max-width: 768px){
  .trip-detail-meta-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  .trip-detail-meta-item{
    padding:12px 14px;
    border-radius:14px;
  }
}


/* keep flexible trip date and duration rows on one line in share card */
.sharecard-info-row-date{
  grid-template-columns:92px 1fr;
}
.sharecard-info-row-date .sharecard-pill{
  white-space:nowrap;
  font-size:10px;
  letter-spacing:-0.1px;
  padding:0 7px;
}
.sharecard-info-row-date .sharecard-value{
  white-space:nowrap;
  font-size:11px;
  min-width:0;
}


.sharecard-credit{
  margin-top:4px;
  font-size:8px;
  line-height:1.1;
  color:#f8fafc;
  text-shadow:0 2px 8px rgba(15,23,42,.22);
  opacity:.96;
}


.trip-feed-cover-meta{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.trip-feed-cover-meta .trip-feed-place{
  max-width:58%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.trip-feed-cover-meta .trip-feed-date{
  margin-left:auto;
  white-space:nowrap;
}

.sharecard-canvas{
  isolation:isolate;
}
.sharecard-inner{
  padding:6px 12px 10px;
}
.sharecard-main-glass{
  margin-top:8px;
}
.sharecard-footer{
  margin-top:8px !important;
  padding:7px 4px 4px !important;
}
.sharecard-footer-title{
  font-size:10px !important;
}
.sharecard-footer-url{
  margin-top:2px;
  font-size:9px !important;
}
.sharecard-credit{
  margin-top:4px !important;
  font-size:8px !important;
  line-height:1.15 !important;
  color:#f8fafc !important;
  text-shadow:0 2px 8px rgba(15,23,42,.25) !important;
  opacity:1 !important;
}


.trip-feed-cover-meta{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.trip-feed-place{
  max-width:58%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.trip-feed-date{
  margin-left:auto;
  white-space:nowrap;
}
.sharecard-credit{
  margin-top:4px !important;
  font-size:8px !important;
  line-height:1.15 !important;
  color:#ffffff !important;
  text-shadow:0 1px 4px rgba(0,0,0,.45) !important;
  opacity:1 !important;
}


.trip-feed-place{
  max-width:68% !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-weight:800 !important;
}

.auth-carousel-mobile-title{display:none !important;}
@media (max-width: 768px){
  .auth-logo-wrap{
    min-height:72px !important;
    margin:6px 0 10px !important;
  }
  .auth-logo{
    height:60px !important;
    opacity:1 !important;
    filter:drop-shadow(0 4px 10px rgba(255,255,255,.28));
  }
  .auth-panel{
    background:rgba(255,255,255,.84) !important;
    backdrop-filter:blur(10px) !important;
  }
  .auth-panel .auth-carousel-title{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    height:96px !important;
    margin:8px auto 14px !important;
  }
  .auth-panel .auth-carousel-title canvas{
    width:100% !important;
    height:96px !important;
  }
  .auth-carousel-mobile-title{
    display:none !important;
  }
}

.sharecard-footer{
  padding-bottom:10px !important;
}
.sharecard-credit{
  display:block !important;
  min-height:10px !important;
  margin-top:5px !important;
  font-size:8px !important;
  line-height:1.2 !important;
  color:#ffffff !important;
  text-shadow:0 1px 4px rgba(0,0,0,.45) !important;
  opacity:1 !important;
  white-space:normal !important;
}


/* final fixes: keep preview/export layout consistent */
#shareCardCapture .sharecard-main-glass,
#shareCardExport .sharecard-main-glass{
  margin-top:6px;
}

#shareCardExport{
  position:fixed !important;
  left:-20000px !important;
  top:0 !important;
  z-index:-1 !important;
  opacity:1 !important;
  pointer-events:none !important;
}

#shareCardCapture .sharecard-inner,
#shareCardExport .sharecard-inner{
  display:flex;
  flex-direction:column;
  height:100%;
  box-sizing:border-box;
}

#shareCardCapture .sharecard-main-glass,
#shareCardExport .sharecard-main-glass{
  display:flex;
  flex-direction:column;
  flex:1;
}

#shareCardCapture .sharecard-footer,
#shareCardExport .sharecard-footer{
  margin-top:auto;
  text-align:center;
}

#shareCardCapture .sharecard-credit,
#shareCardExport .sharecard-credit{
  display:none !important;
}

#shareCardExport .sharecard-attribution,
#shareCardCapture .sharecard-attribution{
  display:block !important;
}

#shareCardCapture .sharecard-title{
  font-size:clamp(17px,2.6vw,22px) !important;
  line-height:1.1 !important;
  white-space:normal !important;
  text-wrap:balance;
}

@media (max-width: 768px){
  .dottext-hero{
    height:96px !important;
  }
  .auth-carousel-title.dottext-host{
    height:96px !important;
  }
  .auth-carousel-title canvas{
    height:96px !important;
  }
}


/* preview footer fit fix */
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-inner{
  padding: 4px 10px 6px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-logo{
  width: 128px !important;
  max-width: 46% !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-title{
  margin: 1px 0 5px !important;
  font-size: clamp(16px,2.45vw,21px) !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-main-glass{
  margin-top: 4px !important;
  padding: 7px 9px 6px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-info-card{
  padding: 5px 8px 3px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-info-row{
  margin-bottom: 4px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-pill,
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-value{
  min-height: 24px !important;
  font-size: 10.5px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-profile-card{
  margin-top: 6px !important;
  padding: 4px 0 2px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-profile-top{
  margin-bottom: 3px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-avatar{
  width: 46px !important;
  height: 46px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-nickname{
  font-size: 14px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-profile-grid{
  gap: 0 8px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-profile-item{
  padding: 0 !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-profile-item span,
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-profile-item strong{
  font-size: 8.5px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-footer{
  margin-top: 6px !important;
  padding: 6px 4px 1px !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-footer-title{
  font-size: 9px !important;
  line-height: 1.05 !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-footer-url{
  margin-top: 1px !important;
  font-size: 8px !important;
  line-height: 1.05 !important;
}
.sharecard-canvas:not(.sharecard-canvas-export) .sharecard-attribution{
  margin-top: 3px !important;
  font-size: 8px !important;
  line-height: 1.05 !important;
}


/* sharecard preview/export sync fix */
.sharecard-preview-wrap{
  display:flex !important;
  justify-content:center !important;
  align-items:flex-start !important;
  overflow:auto !important;
  padding:16px 8px 24px !important;
  min-height:620px !important;
}
.sharecard-preview-viewport{
  width:410px;
  height:548px;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  overflow:hidden;
  border-radius:28px;
  flex:0 0 auto;
}
.sharecard-preview-stage{
  transform:scale(.38);
  transform-origin:top center;
  margin:0 !important;
  flex:0 0 auto;
}
.sharecard-export-stage{
  position:fixed;
  left:-20000px;
  top:0;
  pointer-events:none;
  z-index:-1;
}


/* ===== Achievement Center ===== */
.my-achievement-hub{
  background: linear-gradient(180deg, rgba(255,248,240,.96), rgba(255,255,255,.98));
  border: 1px solid rgba(227, 212, 192, .78);
}
.my-achievement-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.my-achievement-kicker{
  margin:0 0 6px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#b07b47;
}
.achievement-summary-shell{display:grid; gap:18px;}
.achievement-summary-top{display:grid; grid-template-columns: 1.25fr 1fr; gap:16px;}
.achievement-progress-card{
  display:flex; align-items:center; gap:20px; padding:20px; border-radius:24px;
  background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(250,243,235,.98));
  border:1px solid rgba(229,212,190,.9);
}
.achievement-progress-copy__value{font-size:30px; font-weight:700; color:#1f2937; margin-bottom:8px;}
.achievement-progress-copy p{margin:0 0 6px; color:#5b6472; line-height:1.6;}
.achievement-progress-ring{
  --achievement-progress:0%;
  width:132px; height:132px; border-radius:50%; flex:0 0 132px;
  background: conic-gradient(#2d6cdf var(--achievement-progress), rgba(45,108,223,.14) 0);
  display:grid; place-items:center; position:relative;
  box-shadow: inset 0 0 0 1px rgba(45,108,223,.08);
}
.achievement-progress-ring::after{
  content:''; position:absolute; inset:10px; border-radius:50%; background:#fff7f0;
}
.achievement-progress-ring__inner{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:4px; color:#1f2937;}
.achievement-progress-ring__inner strong{font-size:28px; line-height:1;}
.achievement-progress-ring__inner span{font-size:12px; color:#8a6a52;}
.achievement-progress-ring--sm{width:104px; height:104px; flex-basis:104px;}
.achievement-progress-ring--sm::after{inset:9px;}
.achievement-progress-ring--sm .achievement-progress-ring__inner strong{font-size:22px;}
.achievement-level-grid{display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px;}
.achievement-level-tile{
  padding:16px; border-radius:20px; background:#fff; border:1px solid rgba(229,212,190,.82);
  display:flex; flex-direction:column; gap:6px; min-height:120px;
}
.achievement-level-tile__icon{font-size:20px; color:#b07b47;}
.achievement-level-tile strong{font-size:28px; color:#1f2937;}
.achievement-level-tile small{font-size:14px; color:#8a6a52;}
.achievement-level-tile em{font-style:normal; font-size:12px; color:#98a2b3; margin-top:auto;}
.achievement-highlight-grid{display:grid; grid-template-columns: 1.2fr .8fr; gap:16px;}
.achievement-feature-card{
  border:1px solid rgba(226,208,186,.9); border-radius:24px; padding:20px; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(251,245,238,.95));
  cursor:pointer; text-align:left;
}
.achievement-feature-card h4{margin:10px 0 8px; font-size:24px; color:#1f2937;}
.achievement-feature-card p{margin:0; color:#5b6472; line-height:1.7;}
.achievement-feature-card__meta,.achievement-card__top,.achievement-card__bottom,.achievement-dialog__head,.achievement-dialog__summary,.achievement-feature-card__foot,.achievement-recent-list__head,.achievement-detail-hero__meta{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.achievement-feature-card__foot{margin-top:16px; font-size:12px; color:#98a2b3;}
.achievement-recent-list{
  border:1px solid rgba(226,208,186,.9); border-radius:24px; padding:18px; background:#fff;
  display:flex; flex-direction:column; gap:10px;
}
.achievement-recent-list__head h4{margin:0; font-size:16px;}
.achievement-recent-list__head span{font-size:12px; color:#98a2b3;}
.achievement-mini-card{
  display:flex; align-items:center; gap:12px; width:100%; padding:12px 14px; border-radius:18px;
  border:1px solid rgba(232,217,199,.85); background:rgba(251,246,241,.9); cursor:pointer; text-align:left;
}
.achievement-mini-card__icon{width:34px; height:34px; border-radius:12px; background:#fff; display:grid; place-items:center; color:#b07b47; font-size:18px;}
.achievement-mini-card__body{display:flex; flex-direction:column; gap:4px;}
.achievement-mini-card__body strong{font-size:14px; color:#1f2937;}
.achievement-mini-card__body small{font-size:12px; color:#98a2b3;}
.achievement-card-grid{display:grid; gap:14px;}
.achievement-card-grid--inline{grid-template-columns: repeat(3, minmax(0,1fr));}
.achievement-card-grid--dialog{grid-template-columns: repeat(2, minmax(0,1fr)); max-height:52vh; overflow:auto; padding-right:4px;}
.achievement-card{
  border-radius:22px; border:1px solid rgba(229,212,190,.9); background:#fff; padding:16px; display:flex; flex-direction:column; gap:10px; text-align:left; cursor:pointer;
}
.achievement-card.is-unlocked{background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,243,238,.98));}
.achievement-card.is-locked{background: linear-gradient(180deg, rgba(248,248,250,.96), rgba(242,243,246,.94)); opacity:.88;}
.achievement-card__icon{width:36px; height:36px; border-radius:14px; display:grid; place-items:center; background:rgba(176,123,71,.12); color:#b07b47; font-size:18px;}
.achievement-card strong{font-size:18px; color:#1f2937;}
.achievement-card p{margin:0; color:#5b6472; line-height:1.65; min-height:52px;}
.achievement-card__bottom{font-size:12px; color:#98a2b3; margin-top:auto;}
.achievement-level-pill,.achievement-tag{
  display:inline-flex; align-items:center; justify-content:center; padding:6px 10px; border-radius:999px; font-size:12px; white-space:nowrap;
}
.achievement-level-pill{background:rgba(176,123,71,.12); color:#8d5e2f;}
.achievement-level-pill.level-platinum{background:rgba(94,133,255,.12); color:#315ac8;}
.achievement-level-pill.level-gold{background:rgba(214,153,46,.15); color:#a06800;}
.achievement-level-pill.level-silver{background:rgba(115,128,150,.14); color:#556274;}
.achievement-level-pill.level-bronze{background:rgba(181,118,89,.15); color:#9a5a3a;}
.achievement-tag{background:rgba(45,108,223,.08); color:#2d6cdf;}
.achievement-empty{padding:20px; border-radius:18px; background:rgba(250,246,240,.82); color:#8a6a52; text-align:center;}
.achievement-empty-error{background:rgba(255,239,239,.85); color:#b54747;}
.achievement-overlay{
  position:fixed; inset:0; background:rgba(17,24,39,.48); z-index:90; display:flex; align-items:flex-end; justify-content:center; padding:20px;
}
.achievement-dialog{
  width:min(960px, 100%); max-height:88vh; overflow:auto; border-radius:28px; background:#fffaf5; box-shadow:0 24px 60px rgba(15,23,42,.24); padding:22px;
}
.achievement-dialog--detail{width:min(760px, 100%);}
.achievement-dialog__head{margin-bottom:18px; align-items:flex-start;}
.achievement-dialog__head h3{margin:.2rem 0 0; font-size:28px; color:#1f2937;}
.achievement-dialog__summary{padding:16px 18px; border:1px solid rgba(229,212,190,.85); border-radius:22px; background:#fff; margin-bottom:16px; justify-content:flex-start;}
.achievement-detail-hero{
  display:grid; grid-template-columns: 96px 1fr; gap:18px; padding:20px; border:1px solid rgba(229,212,190,.9); border-radius:24px; background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,242,236,.98));
}
.achievement-detail-hero.is-unlocked{box-shadow: inset 0 0 0 1px rgba(45,108,223,.08);}
.achievement-detail-hero__badge{width:96px; height:96px; border-radius:28px; display:grid; place-items:center; font-size:44px; color:#b07b47; background:rgba(176,123,71,.12);}
.achievement-detail-hero__copy p{margin:0 0 8px; line-height:1.7; color:#5b6472;}
.achievement-detail-grid{display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px; margin-top:16px;}
.achievement-detail-panel{padding:18px; border-radius:20px; border:1px solid rgba(229,212,190,.86); background:#fff;}
.achievement-detail-panel h4{margin:0 0 8px; color:#1f2937;}
.achievement-detail-panel p{margin:0; color:#5b6472; line-height:1.7;}

@media (max-width: 960px){
  .achievement-summary-top,.achievement-highlight-grid,.achievement-detail-grid,.achievement-card-grid--inline,.achievement-card-grid--dialog{grid-template-columns:1fr;}
}
@media (max-width: 720px){
  .my-achievement-head,.achievement-progress-card,.achievement-dialog__head{flex-direction:column; align-items:flex-start;}
  .achievement-progress-ring{width:112px; height:112px; flex-basis:112px;}
  .achievement-detail-hero{grid-template-columns:1fr;}
  .achievement-detail-hero__badge{width:72px; height:72px; border-radius:22px; font-size:34px;}
  .achievement-overlay{padding:12px; align-items:flex-end;}
  .achievement-dialog{padding:18px; border-radius:24px;}
}


/* ===== Profile Trophy Dock (PS-style) ===== */
.my-profile-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
}
.my-profile-hero__main{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.my-profile-hero__copy{min-width:0;}
.profile-trophy-dock{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin-left:auto;
  padding:12px 16px;
  min-height:96px;
  min-width:420px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(255,255,255,.74), rgba(246,248,252,.96));
  border:1px solid rgba(203,213,225,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 10px 24px rgba(15,23,42,.08);
}
.profile-trophy-chip{
  appearance:none;
  border:none;
  background:transparent;
  padding:0;
  width:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.profile-trophy-chip__icon{
  width:48px;
  height:48px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:24px;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82), 0 8px 18px rgba(15,23,42,.10);
}
.profile-trophy-chip strong{
  font-size:20px;
  line-height:1;
  color:#0f172a;
}
.profile-trophy-chip.level-platinum .profile-trophy-chip__icon{
  color:#58aaf7;
  background:linear-gradient(145deg, rgba(236,247,255,1), rgba(210,230,255,.96));
  border:1px solid rgba(125,177,255,.6);
}
.profile-trophy-chip.level-gold .profile-trophy-chip__icon{
  color:#c78b17;
  background:linear-gradient(145deg, rgba(255,248,219,1), rgba(255,232,164,.96));
  border:1px solid rgba(230,183,72,.62);
}
.profile-trophy-chip.level-silver .profile-trophy-chip__icon{
  color:#8e98a7;
  background:linear-gradient(145deg, rgba(249,251,253,1), rgba(222,229,239,.96));
  border:1px solid rgba(173,184,199,.62);
}
.profile-trophy-chip.level-bronze .profile-trophy-chip__icon{
  color:#b87549;
  background:linear-gradient(145deg, rgba(255,241,233,1), rgba(236,201,176,.98));
  border:1px solid rgba(206,143,102,.62);
}
.profile-trophy-chip:hover .profile-trophy-chip__icon{
  transform:translateY(-1px);
  transition:transform .15s ease;
}

/* ===== Achievement PS visual tune ===== */
.achievement-level-tile{
  position:relative;
  overflow:hidden;
  background:linear-gradient(160deg, rgba(255,255,255,.98), rgba(249,244,238,.95));
  box-shadow:0 10px 24px rgba(111,83,54,.08), inset 0 1px 0 rgba(255,255,255,.9);
}
.achievement-level-tile::after{
  content:'';
  position:absolute;
  inset:auto -20% -35% auto;
  width:120px;
  height:120px;
  border-radius:50%;
  background:radial-gradient(circle at center, rgba(255,255,255,.65), rgba(255,255,255,0));
  pointer-events:none;
}
.achievement-level-tile__icon{
  width:42px;
  height:42px;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:22px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82), 0 8px 18px rgba(15,23,42,.08);
}
.achievement-level-tile.level-platinum .achievement-level-tile__icon{
  color:#58aaf7;
  background:linear-gradient(145deg, rgba(236,247,255,1), rgba(210,230,255,.96));
  border:1px solid rgba(125,177,255,.6);
}
.achievement-level-tile.level-gold .achievement-level-tile__icon{
  color:#c78b17;
  background:linear-gradient(145deg, rgba(255,248,219,1), rgba(255,232,164,.96));
  border:1px solid rgba(230,183,72,.62);
}
.achievement-level-tile.level-silver .achievement-level-tile__icon{
  color:#8e98a7;
  background:linear-gradient(145deg, rgba(249,251,253,1), rgba(222,229,239,.96));
  border:1px solid rgba(173,184,199,.62);
}
.achievement-level-tile.level-bronze .achievement-level-tile__icon{
  color:#b87549;
  background:linear-gradient(145deg, rgba(255,241,233,1), rgba(236,201,176,.98));
  border:1px solid rgba(206,143,102,.62);
}
.achievement-card__icon,
.achievement-mini-card__icon{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82), 0 8px 18px rgba(15,23,42,.08);
}
.achievement-card .achievement-card__icon,
.achievement-mini-card .achievement-mini-card__icon{
  color:#b07b47;
}
.achievement-card .achievement-card__icon{
  width:42px;height:42px;border-radius:14px;
  display:grid;place-items:center;
}
.achievement-card .achievement-card__icon{
  background:linear-gradient(145deg, rgba(255,250,246,1), rgba(246,235,223,.96));
  border:1px solid rgba(229,212,190,.88);
}
.achievement-mini-card__icon{
  background:linear-gradient(145deg, rgba(255,250,246,1), rgba(246,235,223,.96));
  border:1px solid rgba(229,212,190,.88);
}
@media (max-width: 980px){
  .my-profile-hero{
    grid-template-columns:1fr;
    align-items:flex-start;
  }
  .profile-trophy-dock{
    min-width:0;
    width:100%;
    justify-content:flex-start;
  }
}
@media (max-width: 640px){
  .profile-trophy-dock{
    gap:10px;
    padding:10px 12px;
    min-height:auto;
  }
  .profile-trophy-chip{
    width:58px;
    gap:6px;
  }
  .profile-trophy-chip__icon{
    width:40px;
    height:40px;
    border-radius:14px;
    font-size:20px;
  }
  .profile-trophy-chip strong{
    font-size:18px;
  }
}


/* ===== Achievement trophy dock v6 ===== */
.my-profile-shell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.my-profile-main{flex:1; min-width:0;}
.my-profile-trophy-dock{
  margin-left:auto;
  display:grid;
  grid-template-columns:repeat(4, minmax(56px, 72px));
  gap:12px;
  padding:12px 14px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,247,249,.92));
  border:1px solid rgba(226,231,240,.9);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 10px 26px rgba(15,23,42,.05);
}
.my-profile-trophy-chip{
  appearance:none;
  border:0;
  background:transparent;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:0;
}
.my-profile-trophy-chip__icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  border:1px solid rgba(226,232,240,.95);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,246,248,.95));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
.my-profile-trophy-chip strong{
  font-size:16px;
  line-height:1;
  color:#0f172a;
  font-weight:800;
}
.my-profile-trophy-chip.is-platinum .my-profile-trophy-chip__icon{
  background:linear-gradient(180deg, rgba(239,247,255,.98), rgba(226,239,255,.96));
  border-color:rgba(146,186,255,.95);
}
.my-profile-trophy-chip.is-gold .my-profile-trophy-chip__icon{
  background:linear-gradient(180deg, rgba(255,248,224,.98), rgba(251,237,185,.96));
  border-color:rgba(233,190,78,.85);
}
.my-profile-trophy-chip.is-silver .my-profile-trophy-chip__icon{
  background:linear-gradient(180deg, rgba(249,250,252,.98), rgba(232,236,242,.96));
  border-color:rgba(188,196,208,.9);
}
.my-profile-trophy-chip.is-bronze .my-profile-trophy-chip__icon{
  background:linear-gradient(180deg, rgba(251,238,231,.98), rgba(242,213,196,.96));
  border-color:rgba(209,153,116,.88);
}

.achievement-svg-icon{
  width:28px;
  height:28px;
  display:block;
}
.achievement-level-tile__icon,
.achievement-mini-card__icon,
.achievement-card__icon,
.achievement-detail-hero__badge,
.achievement-dialog__summary-icon{
  display:grid;
  place-items:center;
}
.achievement-level-tile__icon .achievement-svg-icon{width:26px;height:26px;}
.achievement-mini-card__icon .achievement-svg-icon{width:20px;height:20px;}
.achievement-card__icon .achievement-svg-icon{width:22px;height:22px;}
.achievement-detail-hero__badge .achievement-svg-icon{width:42px;height:42px;}
.achievement-dialog__summary-icon .achievement-svg-icon{width:22px;height:22px;}

.achievement-level-tile:nth-child(1) .achievement-level-tile__icon{
  background:linear-gradient(180deg, rgba(239,247,255,.98), rgba(226,239,255,.96));
  border:1px solid rgba(146,186,255,.95);
}
.achievement-level-tile:nth-child(2) .achievement-level-tile__icon{
  background:linear-gradient(180deg, rgba(255,248,224,.98), rgba(251,237,185,.96));
  border:1px solid rgba(233,190,78,.85);
}
.achievement-level-tile:nth-child(3) .achievement-level-tile__icon{
  background:linear-gradient(180deg, rgba(249,250,252,.98), rgba(232,236,242,.96));
  border:1px solid rgba(188,196,208,.9);
}
.achievement-level-tile:nth-child(4) .achievement-level-tile__icon{
  background:linear-gradient(180deg, rgba(251,238,231,.98), rgba(242,213,196,.96));
  border:1px solid rgba(209,153,116,.88);
}
.achievement-level-tile__icon{
  width:46px;
  height:46px;
  border-radius:14px;
}
.achievement-card__icon,
.achievement-mini-card__icon,
.achievement-detail-hero__badge,
.achievement-dialog__summary-icon{
  background:#fff;
  border:1px solid rgba(226,231,240,.88);
}
.achievement-card__icon{border-radius:14px;}
.achievement-mini-card__icon{border-radius:12px;}
.achievement-detail-hero__badge{border-radius:28px;}
.achievement-dialog__summary-icon{border-radius:12px;}

@media (max-width: 860px){
  .my-profile-shell{
    flex-direction:column;
    align-items:flex-start;
  }
  .my-profile-trophy-dock{
    width:100%;
    grid-template-columns:repeat(4, minmax(0,1fr));
  }
}


/* ===== Achievement city switcher v7 ===== */
.achievement-city-switcher{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:12px;
}
.achievement-city-chip{
  appearance:none;
  border:1px solid rgba(226,208,186,.9);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,244,238,.96));
  border-radius:20px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:10px;
  text-align:left;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.achievement-city-chip:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.achievement-city-chip.active{
  border-color:rgba(176,123,71,.62);
  box-shadow:0 0 0 2px rgba(176,123,71,.10);
}
.achievement-city-chip__name{
  font-size:18px;
  font-weight:800;
  color:#1f2937;
}
.achievement-city-chip__meta{
  font-size:13px;
  color:#8a6a52;
}
.achievement-city-chip__icons{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.achievement-city-chip__icon{
  width:22px;
  height:22px;
  display:inline-grid;
  place-items:center;
}
.achievement-city-chip__icons em{
  font-style:normal;
  font-size:13px;
  color:#475569;
  margin-right:4px;
}
.achievement-card-grid--full{
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}
@media (max-width: 900px){
  .achievement-summary-top{
    grid-template-columns:1fr;
  }
}


.achievement-summary-shell--cities{
  padding-top: 4px;
}
.achievement-city-switcher--cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
}
.achievement-city-chip--page{
  min-height:136px;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
  padding:18px 20px;
}
.achievement-city-chip--page .achievement-city-chip__icons{
  margin-top:8px;
}
.achievement-city-chip__enter{
  display:inline-flex;
  margin-top:auto;
  padding-top:12px;
  font-size:13px;
  font-weight:700;
  color:#8b5e34;
}


.guides-shell{padding:20px}
.guides-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}
.guide-city-list{display:grid;gap:18px}
.guide-city-block{background:rgba(255,255,255,.55);border:1px solid rgba(180,138,95,.24);border-radius:24px;padding:20px}
.guide-city-block__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}
.guide-city-block__head h3{margin:0 0 6px;color:#0f172a;font-size:1.5rem}
.guide-city-block__head p{margin:0;color:#8b6b4f}
.guide-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.guide-entry-card{border:1px solid rgba(180,138,95,.24);background:rgba(255,255,255,.82);border-radius:22px;overflow:hidden;padding:0;cursor:pointer;text-align:left;color:#0f172a}
.guide-entry-card__cover{height:168px;background:#e5e7eb;overflow:hidden}
.guide-entry-card__cover img{width:100%;height:100%;object-fit:cover;display:block}
.guide-entry-card__body{padding:16px;display:grid;gap:10px}
.guide-entry-card__meta{display:flex;justify-content:space-between;gap:12px;color:#64748b;font-size:.86rem}
.guide-entry-card__body h4{margin:0;font-size:1.1rem;line-height:1.45;color:#111827}
.guide-entry-card__body p{margin:0;color:#475569;line-height:1.7}
.guide-entry-card__tags,.guide-tags{display:flex;gap:8px;flex-wrap:wrap}
.guide-entry-card__tags span,.guide-tags span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:rgba(191,145,95,.12);color:#8b6b4f;font-size:.8rem;font-weight:700}
.guide-detail-shell{padding:0;overflow:hidden}
.guide-detail-hero{position:relative;min-height:300px;padding:24px;display:flex;align-items:flex-end;background:linear-gradient(120deg, rgba(15,23,42,.72), rgba(15,23,42,.28));color:#fff}
.guide-detail-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:brightness(.72)}
.guide-detail-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(15,23,42,.12), rgba(15,23,42,.72));z-index:1}
.guide-back-btn{position:absolute;left:24px;top:24px;z-index:2;background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.26)}
.guide-detail-hero__body{position:relative;z-index:2;max-width:880px;display:grid;gap:10px}
.guide-kicker{margin:0;color:rgba(255,255,255,.76);font-size:.88rem;letter-spacing:.12em;text-transform:uppercase}
.guide-detail-hero__body h2{margin:0;font-size:clamp(1.6rem,2.8vw,2.5rem);line-height:1.3;color:#fff}
.guide-detail-hero__body p{margin:0;line-height:1.8;color:rgba(255,255,255,.88)}
.guide-detail-hero__meta{display:flex;gap:14px;flex-wrap:wrap;color:rgba(255,255,255,.72);font-size:.92rem}
.guide-article{padding:28px 24px 32px;display:grid;gap:16px;color:#0f172a}
.guide-lead{margin:0;font-size:1.03rem;line-height:1.95;color:#334155}
.guide-section{margin:10px 0 0;font-size:1.25rem;color:#0f172a}
.guide-paragraph{margin:0;line-height:1.95;color:#334155}
.guide-list{margin:0;padding-left:22px;color:#334155;display:grid;gap:8px;line-height:1.9}
@media (max-width: 768px){.guide-city-block__head{flex-direction:column}.guide-card-list{grid-template-columns:1fr}.guide-detail-hero{min-height:240px;padding:18px}.guide-back-btn{left:18px;top:18px}.guide-article{padding:22px 16px 28px}}


.guides-shell,.guide-detail-shell,.city-guide-hub-shell{padding:22px}
.city-guide-hub-hero{position:relative;overflow:hidden;border-radius:28px;padding:28px;background:linear-gradient(135deg, rgba(120,83,57,.18), rgba(255,255,255,.88));border:1px solid rgba(190,154,126,.28);box-shadow:0 18px 40px rgba(15,23,42,.06)}
.city-guide-hub-hero__copy h2{margin:0 0 8px;font-size:clamp(1.8rem,3vw,2.5rem);color:#0f172a}
.city-guide-hub-hero__copy p{margin:0;color:#475569}
.city-guide-hub-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.city-guide-hub-meta span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.76);border:1px solid rgba(190,154,126,.26);color:#7c5d43;font-weight:700}
.city-guide-hub-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.city-guide-topic-list{display:grid;gap:18px;margin-top:22px}
.city-guide-topic{background:rgba(255,255,255,.8);border:1px solid rgba(190,154,126,.24);border-radius:24px;padding:18px}
.city-guide-topic__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:14px}
.city-guide-topic__head h3{margin:0;font-size:1.3rem;color:#0f172a}
.city-guide-topic__head p{margin:6px 0 0;color:#6b7280}
.city-guide-topic__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.guide-entry-card--topic{min-height:100%}

@media (max-width: 900px){
  .city-guide-topic__grid{grid-template-columns:1fr}
  .city-guide-hub-actions{flex-direction:row}
}


.city-guide-topic__tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:8px 0 18px;
}
.city-guide-topic__tab{
  appearance:none;
  border:0;
  background:#f3f4f6;
  color:#475569;
  border-radius:12px;
  padding:10px 16px;
  font-weight:700;
  cursor:pointer;
}
.city-guide-topic__tab:hover{
  background:#eceff3;
  color:#0f172a;
}
.city-guide-topic__item-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
}
.city-guide-topic__item{
  appearance:none;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
  padding:0;
}
.city-guide-topic__item-cover{
  border-radius:14px;
  overflow:hidden;
  background:#f3f4f6;
  aspect-ratio: 1 / 0.75;
  box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.city-guide-topic__item-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.city-guide-topic__item-title{
  margin-top:10px;
  font-weight:800;
  color:#0f172a;
  line-height:1.35;
  font-size:15px;
}
@media (max-width: 1100px){
  .city-guide-topic__item-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 700px){
  .city-guide-topic__item-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .city-guide-topic__item-title{font-size:14px;}
}
