/* 2026-07-22: approved soft-cloud visual layer.  This file deliberately does
   not change screen flow or the earth-wheel geometry/gesture code. */
:root {
  --paper: #fffaf0;
  --paper-deep: #f4ead9;
  --white: #fffdf8;
  --ink: #213245;
  --pine: #365b62;
  --pine-soft: #dcefee;
  --ocean: #4f76c6;
  --ocean-soft: #e2ebff;
  --sunset: #f37167;
  --sunset-soft: #ffe6e2;
  --amber: #f0b83f;
  --amber-soft: #fff0c7;
  --success: #4b9c87;
  --line: rgba(54,91,98,.14);
  --soft-shadow: 0 14px 32px rgba(72,99,132,.11);
  --shadow: 0 24px 74px rgba(72,99,132,.16);
}

body {
  background:
    radial-gradient(circle at 14% 12%, rgba(173,214,239,.38), transparent 27rem),
    radial-gradient(circle at 88% 86%, rgba(251,193,203,.3), transparent 25rem),
    #e9edf2;
}

.app-shell { border-color: rgba(255,255,255,.8); }
.screen { background: linear-gradient(180deg,#fffdf8 0%,var(--paper) 74%,#fbf1e6 100%); }
.paper-noise { opacity: .08; }
.prototype-label { background: rgba(54,91,98,.9); }

/* Clear type hierarchy: the colour stays in small labels and actions, not in a
   multi-colour header block. */
.home-header h1, .plan-header h1, .setup-intro h1, .poi-title-block h1 { color: var(--ink); letter-spacing: .02em; }
.home-header p, .plan-header p, .setup-intro p, .processing-copy p, .poi-intro, .review-summary span { color: #687681; }
.section-heading h2, .poi-section-title h2 { color: var(--ink); }
.section-heading > span, .poi-section-title > span { color: var(--ocean); }

.home-hero, .setup-intro, .profile-hero {
  border: 1px solid rgba(255,255,255,.92);
  box-shadow: var(--soft-shadow);
  overflow: hidden;
  position: relative;
}
.home-hero::after, .setup-intro::after {
  background: radial-gradient(circle,rgba(240,184,63,.85) 0 2px,transparent 3px) 0 0/20px 20px;
  content: "";
  height: 92px;
  opacity: .24;
  pointer-events: none;
  position: absolute;
  right: -14px;
  top: -8px;
  transform: rotate(18deg);
  width: 112px;
}
.search-box, .filter-button, .library-toolbar button { border-color: rgba(79,118,198,.14); background: rgba(255,255,255,.78); }
.search-box:focus-within { box-shadow: 0 0 0 4px rgba(79,118,198,.12); }

/* Home and library */
.cloud-import-card, .library-card, .video-card, .candidate-card, .review-summary, .processing-source-card, .processing-note, .trip-card, .profile-feature-card, .profile-menu, .poi-intro, .poi-evidence-note, .plan-match-card {
  border-color: rgba(54,91,98,.12);
  box-shadow: 0 10px 22px rgba(72,99,132,.07);
}
.cloud-import-card { background: linear-gradient(135deg,#e6f4f2 0%,#fff6e4 60%,#fde7ec 100%); }
.library-card:nth-child(3n+1) .library-cover, .video-card:nth-child(3n+1) .video-card-media { background-color: #dff1ef; }
.library-card:nth-child(3n+2) .library-cover, .video-card:nth-child(3n+2) .video-card-media { background-color: #e8edff; }
.library-card:nth-child(3n) .library-cover, .video-card:nth-child(3n) .video-card-media { background-color: #fff0cc; }
.library-card-action:active, .video-card:active { transform: scale(.985); }

/* AI processing and review */
.processing-stage, .processing-source-card { background: linear-gradient(145deg,#e8efff,#fffdf8 72%); }
.processing-rings { border-color: rgba(79,118,198,.34); }
.processing-progress-track { background: #dde7f7; }
.processing-progress-track span { background: linear-gradient(90deg,#4f76c6,#78bfc0 56%,#f0b83f); }
.processing-note { background: #fff8df; }
.review-summary { background: linear-gradient(135deg,#edf7f5,#fffaf0); }
.candidate-card { background: rgba(255,255,255,.88); }
.candidate-card.is-selected { background: #edf7f5; border-color: rgba(75,156,135,.54); box-shadow: 0 9px 22px rgba(75,156,135,.13); }
.candidate-select { border-color: #91b8b2; }
.candidate-card.is-selected .candidate-select { background: var(--success); }

/* POI and plan pages */
.poi-gallery { padding-bottom: 4px; }
.poi-photo { box-shadow: 0 10px 20px rgba(72,99,132,.12); }
.poi-tags span { background: #e8efff; color: var(--ocean); }
.poi-tags span:last-child { background: #fff0c7; color: #875c14; }
.poi-evidence-note { background: #fff7df; }
.day-tabs button { background: rgba(255,255,255,.74); border-color: rgba(79,118,198,.14); }
.day-tabs button.is-active { background: var(--ocean); box-shadow: 0 7px 16px rgba(79,118,198,.24); }
.plan-route-map { border-color: rgba(79,118,198,.12); box-shadow: var(--soft-shadow); }
.itinerary > * { border-color: rgba(54,91,98,.12); }
.stop-dot { background: var(--amber); }
.plan-chatbot-bubble { border-color: rgba(79,118,198,.18); box-shadow: var(--soft-shadow); }
.plan-chatbot-bubble::before { background: #fffdf8; border-color: rgba(79,118,198,.18); }

/* Plans and profile */
.trip-card.active-trip { background: linear-gradient(130deg,#dff1ef,#e7edff); }
.trip-card.archived-trip { background: #fff7e3; }
.profile-hero { background: linear-gradient(130deg,#dff1ef 0%,#e8edff 55%,#fff0cc 100%); }
.profile-feature-card { background: rgba(255,255,255,.82); }
.profile-menu { background: rgba(255,255,255,.75); }

/* Buttons and small interaction feedback */
.primary-button, .confirm-plan-button { background: var(--pine); box-shadow: 0 10px 18px rgba(54,91,98,.18); }
.primary-button:hover, .confirm-plan-button:hover { background: #294c53; }
.secondary-button { border-color: rgba(79,118,198,.25); color: var(--ocean); }
.icon-button.glass { background: rgba(255,255,255,.78); }

/* The supplied earth artwork sits inside the original circular gesture area;
   dimensions, clip-path, drag resistance and snapping stay untouched. */
.orbit-nav-earth { filter: none; }
.orbit-nav .orbit-destination .orbit-icon img { transform: scale(.667); }
.orbit-nav .orbit-destination.is-orbit-focus .orbit-icon img { transform: translateY(-1px) scale(.667); }
.orbit-nav .orbit-destination.is-orbit-focus .orbit-icon { background: #fffdf8; box-shadow: 0 12px 25px rgba(54,91,98,.21),0 0 0 6px rgba(240,184,63,.2); }
.orbit-nav .assistant-nav-button b, .orbit-nav .orbit-destination.is-orbit-focus b { background: rgba(255,253,248,.95); }

@media (prefers-reduced-motion: reduce) {
  .library-card-action:active, .video-card:active { transform: none; }
}

/* Bright Curious-Minds palette: remove the inherited deep blue-green, while
   reserving saturated colour for decisions, status and navigation. */
:root {
  --paper: #fff8eb;
  --paper-deep: #ffedd0;
  --white: #fffdf9;
  --ink: #464b87;
  --pine: #6272df;
  --pine-soft: #e6e8ff;
  --ocean: #58c6df;
  --ocean-soft: #ddf6fa;
  --sunset: #f382b5;
  --sunset-soft: #ffe1ee;
  --amber: #ffc83d;
  --amber-soft: #fff1bf;
  --success: #77c95e;
  --line: rgba(98,114,223,.16);
  --soft-shadow: 0 14px 32px rgba(105,112,196,.13);
  --shadow: 0 24px 74px rgba(105,112,196,.17);
  --display: "幼圆", "Microsoft YaHei", sans-serif;
  --body: "Microsoft YaHei", "PingFang SC", sans-serif;
}

body { background: radial-gradient(circle at 12% 10%,rgba(88,198,223,.34),transparent 26rem),radial-gradient(circle at 88% 86%,rgba(243,130,181,.3),transparent 25rem),#eef1ff; }
.prototype-label { background:#6272df; }
.screen { background:linear-gradient(180deg,#fffdf9 0%,#fff8eb 70%,#ffeef5 100%); }
.home-header h1,.plan-header h1,.setup-intro h1,.poi-title-block h1 { color:#464b87; font-family:var(--display); font-weight:400; }
.section-heading h2,.poi-section-title h2 { color:#464b87; font-family:var(--display); font-weight:400; }
.home-header p,.plan-header p,.setup-intro p,.processing-copy p,.poi-intro,.review-summary span { color:#7275a3; }
.section-heading > span,.poi-section-title > span { color:#58c6df; }
.cloud-import-card { background:linear-gradient(135deg,#ddf6fa 0%,#fff1bf 56%,#ffe1ee 100%); }
.home-hero::after,.setup-intro::after { background:radial-gradient(circle,#f382b5 0 2px,transparent 3px) 0 0/20px 20px; }
.search-box,.filter-button,.library-toolbar button { border-color:rgba(88,198,223,.3); }
.search-box:focus-within { box-shadow:0 0 0 4px rgba(88,198,223,.17); }
.cloud-import-card,.library-card,.video-card,.candidate-card,.review-summary,.processing-source-card,.processing-note,.trip-card,.profile-feature-card,.profile-menu,.poi-intro,.poi-evidence-note,.plan-match-card { border-color:rgba(98,114,223,.14); box-shadow:0 10px 22px rgba(105,112,196,.09); }
.library-card:nth-child(3n+1) .library-cover,.video-card:nth-child(3n+1) .video-card-media { background-color:#ddf6fa; }
.library-card:nth-child(3n+2) .library-cover,.video-card:nth-child(3n+2) .video-card-media { background-color:#e6e8ff; }
.library-card:nth-child(3n) .library-cover,.video-card:nth-child(3n) .video-card-media { background-color:#ffe1ee; }
.processing-stage,.processing-source-card { background:linear-gradient(145deg,#e6e8ff,#fffdf9 72%); }
.processing-rings { border-color:rgba(98,114,223,.42); }
.processing-progress-track { background:#e3e6ff; }
.processing-progress-track span { background:linear-gradient(90deg,#58c6df,#6272df 54%,#ffc83d); }
.processing-note,.poi-evidence-note { background:#fff5cd; }
.review-summary { background:linear-gradient(135deg,#ddf6fa,#fff8eb); }
.candidate-card.is-selected { background:#e6e8ff; border-color:#6272df; box-shadow:0 9px 22px rgba(98,114,223,.2); }
.candidate-select { border-color:#a9afea; }.candidate-card.is-selected .candidate-select { background:#6272df; }
.poi-tags span { background:#ddf6fa; color:#279dbb; }.poi-tags span:last-child { background:#fff1bf; color:#9a6d00; }
.day-tabs button { border-color:rgba(98,114,223,.22); }.day-tabs button.is-active { background:#6272df; box-shadow:0 7px 16px rgba(98,114,223,.28); }
.plan-route-map { border-color:rgba(88,198,223,.28); }.stop-dot { background:#f382b5; }
.plan-chatbot-bubble { border-color:rgba(243,130,181,.35); }.plan-chatbot-bubble::before { border-color:rgba(243,130,181,.35); }
.trip-card.active-trip { background:linear-gradient(130deg,#ddf6fa,#e6e8ff); }.trip-card.archived-trip { background:#fff1bf; }
.profile-hero { background:linear-gradient(130deg,#ddf6fa 0%,#e6e8ff 55%,#ffe1ee 100%); }
.primary-button,.confirm-plan-button,.link-entry-panel button { background:#6272df; border-color:#6272df; box-shadow:0 10px 18px rgba(98,114,223,.24); }
.primary-button:hover,.confirm-plan-button:hover,.link-entry-panel button:hover { background:#7786ec; }
.secondary-button { border-color:#58c6df; color:#279dbb; }.filter-chips button.is-selected { background:#f382b5; }.segmented-control button.is-selected { color:#6272df; }
.assistant-quick-actions button,.assistant-input .voice-button { color:#6272df; }.assistant-input .voice-button { background:#e6e8ff; }
.orbit-nav .orbit-destination.is-orbit-focus .orbit-icon { background:radial-gradient(circle at 50% 48%,#fffdf8 0 38%,rgba(255,253,248,.86) 43%,rgba(255,200,61,.27) 61%,rgba(255,200,61,0) 77%); border-color:transparent; box-shadow:0 8px 18px rgba(98,114,223,.16); }
.orbit-nav .orbit-destination.is-orbit-focus { color:#6272df; }
.cloud-ip-host--card,.cloud-ip-host--processing,.cloud-ip-host--loading { pointer-events:none; }
.orbit-nav .orbit-destination .orbit-icon img { filter:none; opacity:.86; }
.orbit-nav .orbit-destination.is-orbit-focus .orbit-icon img { opacity:1; }

/* Import choices: two illustrated, task-specific icons retain the existing
   warm-yellow tile and blue visual language, but no longer rely on glyphs. */
.import-option .upload-icon { overflow:hidden; }
.import-option .upload-icon img { display:block; width:34px; height:34px; }

/* The homepage upload cloud remains a calm visual cue, not a bouncing button. */
.cloud-import-trigger .nav-cloud-float,
.cloud-import-trigger .nav-cloud-companion.is-joyful .nav-cloud-float,
.cloud-import-trigger .nav-cloud-companion.is-joyful .nav-cloud-character { animation:none; }
.cloud-import-trigger:hover .cloud-ip-host,
.cloud-import-trigger:focus-visible .cloud-ip-host,
.cloud-import-trigger:active .cloud-ip-host { transform:rotate(-2deg); }

.orbit-nav .orbit-nav-item.is-active .orbit-icon { background:radial-gradient(circle at 50% 48%,#fffdf8 0 38%,rgba(255,253,248,.86) 43%,rgba(255,200,61,.27) 61%,rgba(255,200,61,0) 77%); border-color:transparent; box-shadow:0 8px 18px rgba(98,114,223,.16); }
#library-count { background:#e1edff; border:1px solid rgba(98,114,223,.28); color:#4956bf; font-weight:900; }

/* Itinerary: friendly display type is reserved for hierarchy and place names;
   time, durations and explanatory copy retain the body face for scanability. */
.day-tabs button b,
#itinerary .plan-route-map figcaption b,
#itinerary .day-heading span,
#itinerary .day-heading h2,
#itinerary .timeline-stop h3 { font-family:"幼圆","YouYuan","Microsoft YaHei",sans-serif; font-weight:700; }
.transfer-mode-button { align-items:center; background:transparent; border:0; color:inherit; display:inline-flex; font:inherit; gap:7px; min-height:32px; padding:0; text-align:left; }
.transfer-mode-button em { color:#6272df; display:none; font-family:"幼圆","YouYuan",sans-serif; font-size:9px; font-style:normal; font-weight:700; }
.day-panel.is-editing .transfer-mode-button { background:rgba(230,232,255,.64); border:1px dashed rgba(98,114,223,.45); border-radius:999px; cursor:pointer; padding:3px 9px; }
.day-panel.is-editing .transfer-mode-button em { display:inline; }
.day-tabs button.is-active,.day-tabs button.is-active b,.day-tabs button.is-active span { color:#fffdf9 !important; font-family:"幼圆","YouYuan","Microsoft YaHei",sans-serif; font-weight:700; text-shadow:0 1px 2px rgba(70,75,135,.24); }
.timeline-stop:not(.is-new-stop):not(.is-editing) { cursor:pointer; }
.timeline-stop:not(.is-new-stop):not(.is-editing):hover { box-shadow:0 10px 22px rgba(98,114,223,.13); }
.plan-route-map { overflow:visible; }
.plan-map-hotspots { inset:0; pointer-events:none; position:absolute; }
.plan-map-hotspot { align-items:center; background:#6272df; border:3px solid #fffdf9; border-radius:50%; box-shadow:0 5px 10px rgba(70,75,135,.18); color:#fffdf9; display:flex; font-size:10px; font-weight:900; height:26px; justify-content:center; padding:0; pointer-events:auto; position:absolute; transform:translate(-50%,-50%); width:26px; }
.plan-map-popover { background:#fffdf9; border:1px solid rgba(98,114,223,.2); border-radius:14px; box-shadow:0 12px 25px rgba(70,75,135,.18); max-width:168px; padding:9px; pointer-events:auto; position:absolute; z-index:6; }
.plan-map-popover b { color:#464b87; display:block; font-size:11px; }.plan-map-popover p { color:#7275a3; font-size:9px; line-height:1.45; margin:4px 0 7px; }.plan-map-popover button { background:#6272df; border:0; border-radius:8px; color:#fffdf9; font-size:9px; min-height:28px; width:100%; }

/* A single, fully opaque companion sits above every screen. It remains in the
   orbit wrapper so the face and body keep their shared component dimensions. */
.floating-chatbot {
  align-items:center !important;
  background:transparent !important;
  border:0 !important;
  color:#6272df !important;
  cursor:grab;
  display:flex !important;
  flex-direction:column;
  gap:0;
  height:94px !important;
  margin:0 !important;
  min-height:0 !important;
  opacity:1 !important;
  padding:0 !important;
  pointer-events:auto !important;
  position:absolute !important;
  touch-action:none;
  transition:filter 180ms ease, opacity 180ms ease !important;
  user-select:none;
  width:96px !important;
  z-index:18;
}
.floating-chatbot.is-chatbot-dragging { cursor:grabbing; filter:drop-shadow(0 12px 18px rgba(98,114,223,.26)); }
.floating-chatbot .orbit-icon { background:transparent !important; border:0 !important; height:88px !important; overflow:visible !important; width:94px !important; }
.floating-chatbot .nav-cloud-companion,
.floating-chatbot .nav-cloud-float,
.floating-chatbot .nav-cloud-character,
.floating-chatbot .nav-cloud-body,
.floating-chatbot .nav-cloud-face { opacity:1 !important; }
.floating-chatbot .nav-cloud-body { filter:url("#nav-cloud-remove-green") brightness(1.08) saturate(1.22) contrast(1.08) drop-shadow(0 5px 8px rgba(98,114,223,.18)) !important; }
.floating-chatbot b { background:rgba(255,253,248,.96); border-radius:999px; box-shadow:0 4px 12px rgba(98,114,223,.12); font-family:"幼圆","YouYuan",sans-serif; font-size:10px; line-height:20px; margin-top:-2px; padding:0 9px; }
.floating-chatbot.is-active b { background:#e6e8ff; color:#464b87; }

/* The plan action is no longer tied to a page-local cloud or a timed display.
   Each action has its own large hit target, so copy cannot disappear mid-tap. */
#plan-ai-adjust { align-items:stretch; display:block; padding-bottom:20px; }
#plan-ai-adjust .plan-chatbot-bubble {
  align-items:stretch;
  background:linear-gradient(135deg,#fffdf9,#fff7ea);
  display:grid !important;
  gap:8px;
  max-width:none;
  overflow:visible;
  padding:10px;
}
#plan-ai-adjust .plan-chatbot-bubble::before { display:none; }
#plan-ai-adjust .plan-assist-open { align-items:center; background:transparent; border:0; color:#464b87; cursor:pointer; display:grid; gap:3px 10px; grid-template-columns:1fr auto; min-height:58px; padding:6px 8px; text-align:left; width:100%; }
#plan-ai-adjust .plan-assist-open b { font-family:"幼圆","YouYuan",sans-serif; font-size:14px; }
#plan-ai-adjust .plan-assist-open span { color:#7275a3; font-size:10px; grid-column:1; line-height:1.45; }
#plan-ai-adjust .plan-assist-open i { color:#6272df; font-size:26px; font-style:normal; grid-column:2; grid-row:1 / span 2; }
#plan-ai-adjust .confirm-plan-button { border-radius:13px; font-size:12px; min-height:42px; width:100%; }

/* Approved map-working pose: crop only transparent padding, not the cloud edge.
   The original alpha channel stays untouched so its contour remains smooth. */
.cloud-profile-avatar { height:132px; overflow:hidden; position:relative; }
.profile-work-cloud { filter:drop-shadow(0 10px 13px rgba(98,114,223,.18)) saturate(1.06); height:auto; left:50%; max-width:none; position:absolute; top:-43px; transform:translateX(-50%); width:230px; }
.profile-detail-work-cloud { filter:drop-shadow(0 9px 11px rgba(98,114,223,.17)) saturate(1.06); height:112px; object-fit:cover; object-position:center 48%; width:112px; }

/* Travel record preview follows a small map-card language rather than a globe. */
.journey-map { background:linear-gradient(135deg,#dff6fa,#e8efff 58%,#fff1bf) !important; border:1px solid rgba(88,198,223,.3); border-radius:18px !important; box-shadow:inset 0 0 0 1px rgba(255,255,255,.6); overflow:hidden; }
.journey-map::before { background:repeating-linear-gradient(24deg,transparent 0 18px,rgba(70,75,135,.14) 19px 21px,transparent 22px 38px),repeating-linear-gradient(112deg,transparent 0 23px,rgba(70,75,135,.12) 24px 26px,transparent 27px 44px); content:""; inset:0; opacity:.7; position:absolute; }
.journey-map .route-stroke { border-color:#f382b5 !important; border-width:3px !important; }
.journey-map i { background:#6272df !important; border-color:#fffdf9 !important; box-shadow:0 0 0 2px rgba(243,130,181,.48); }

/* Editable profile fields. */
.profile-editor,.profile-memory-editor { display:grid; gap:10px; }
.profile-editor label,.profile-memory-editor label { align-items:center; background:#fffdf9; border:1px solid rgba(98,114,223,.2); border-radius:16px; color:#7275a3; display:grid; font-size:12px; gap:12px; grid-template-columns:78px 1fr; min-height:54px; padding:0 14px; }
.profile-editor input,.profile-memory-editor select { background:transparent; border:0; color:#464b87; font-family:"幼圆","YouYuan",sans-serif; font-size:14px; font-weight:700; min-width:0; outline:0; text-align:right; width:100%; }
.profile-memory-editor > p { color:#7275a3; font-size:11px; line-height:1.55; margin:0 0 4px; }
.profile-editor .primary-button,.profile-memory-editor .primary-button { margin-top:4px; min-height:46px; }

/* Favorite collection: horizontal cards can be swiped like a saved-video shelf. */
.profile-favorite-list { display:grid; gap:11px; grid-auto-columns:minmax(220px,78%); grid-auto-flow:column; grid-template-columns:none; overflow-x:auto; overscroll-behavior-x:contain; padding:2px 2px 12px; scroll-snap-type:x mandatory; scrollbar-width:none; }
.profile-favorite-list::-webkit-scrollbar { display:none; }
.profile-favorite-list .saved-video-row { align-items:start; grid-template-columns:72px minmax(0,1fr) auto; min-height:104px; scroll-snap-align:start; }
.profile-favorite-list .saved-video-thumb { height:88px; }
.profile-favorite-list .saved-video-row b { font-family:"幼圆","YouYuan",sans-serif; font-size:13px; line-height:1.4; }

/* Pannable / zoomable travel-map canvas. */
.travel-map-explorer { background:linear-gradient(145deg,#edf9fb,#fff8eb); border:1px solid rgba(88,198,223,.31); border-radius:22px; overflow:hidden; }
.travel-map-explorer > header { align-items:center; display:flex; justify-content:space-between; padding:14px 14px 10px; }
.travel-map-explorer > header b { color:#464b87; display:block; font-family:"幼圆","YouYuan",sans-serif; font-size:15px; }
.travel-map-explorer > header span { color:#7275a3; display:block; font-size:9px; margin-top:4px; }
.travel-map-controls { display:flex; gap:6px; }
.travel-map-controls button { background:#fffdf9; border:1px solid rgba(98,114,223,.22); border-radius:10px; color:#6272df; font-size:20px; height:34px; line-height:1; width:34px; }
.travel-map-viewport { background:#dff1f5; cursor:grab; height:270px; overflow:hidden; position:relative; touch-action:none; }
.travel-map-viewport:active { cursor:grabbing; }
.travel-map-canvas { background:linear-gradient(135deg,#e7f2fa,#cde8f0 68%,#e8f5dc); height:390px; left:-60px; position:absolute; top:-56px; transform-origin:center; transition:transform 170ms cubic-bezier(.2,.8,.2,1); width:calc(100% + 120px); }
.travel-map-land { background:linear-gradient(135deg,#fffdf8,#f6f1dd); border:1px solid rgba(98,114,223,.1); border-radius:46% 54% 45% 55%; position:absolute; }
.travel-map-land.land-one { height:145px; left:16%; top:20%; transform:rotate(-16deg); width:190px; }
.travel-map-land.land-two { height:120px; right:8%; top:8%; transform:rotate(26deg); width:142px; }
.travel-map-land.land-three { bottom:9%; height:126px; left:37%; transform:rotate(10deg); width:210px; }
.travel-map-route { border:3px dashed #f382b5; border-radius:50%; opacity:.82; position:absolute; }
.travel-map-route.route-one { height:118px; left:34%; top:31%; transform:rotate(-17deg); width:224px; }
.travel-map-route.route-two { border-color:#58c6df; height:89px; left:18%; top:49%; transform:rotate(18deg); width:190px; }
.travel-map-pin { align-items:center; background:transparent; border:0; color:#464b87; display:flex; flex-direction:column; font-family:"幼圆","YouYuan",sans-serif; font-size:10px; gap:3px; padding:0; position:absolute; transform:translate(-50%,-50%); z-index:3; }
.travel-map-pin i { background:#fffdf9; border:3px solid #a8b3df; border-radius:50%; box-shadow:0 5px 10px rgba(70,75,135,.15); display:block; height:17px; width:17px; }
.travel-map-pin.is-visited i { background:#f382b5; border-color:#fffdf9; box-shadow:0 0 0 3px rgba(98,114,223,.46),0 5px 10px rgba(70,75,135,.16); }
.travel-map-pin.is-selected i { background:#ffc83d; transform:scale(1.22); }
.travel-map-explorer[data-zoom="compact"] .travel-map-pin span { opacity:0; }
.travel-map-explorer[data-zoom="detail"] .travel-map-pin span { background:rgba(255,253,249,.9); border-radius:999px; padding:3px 7px; }
.travel-map-status { background:rgba(255,253,249,.8); color:#6272df; font-size:10px; margin:0; min-height:39px; padding:12px 14px; }

/* Real AMap footprint keeps the Demo palette while geographic content stays accurate. */
.profile-detail-content > .travel-map-explorer { margin:0 0 14px; }
.profile-detail-sheet.is-journey-detail { height:min(84dvh,760px); max-height:min(84dvh,760px); }
.travel-map-explorer > header { min-height:68px; }
.travel-map-explorer > header > div:first-child { min-width:0; }
.travel-map-controls button { align-items:center; display:flex; justify-content:center; padding:0; }
.travel-map-controls button:active { background:#f1efff; transform:scale(.96); }
.travel-map-viewport { height:300px; }
.travel-map-amap,.travel-map-fallback { inset:0; position:absolute; }
.travel-map-amap[hidden],.travel-map-fallback[hidden] { display:none; }
.travel-map-fallback { background:linear-gradient(145deg,#dff2f8,#e8f3f3 55%,#fff2d8); overflow:hidden; }
.travel-map-fallback::before,.travel-map-fallback::after { background:rgba(255,251,238,.78); border:1px solid rgba(98,114,223,.08); border-radius:48%; content:""; position:absolute; }
.travel-map-fallback::before { height:132px; left:8%; top:18%; transform:rotate(-14deg); width:48%; }
.travel-map-fallback::after { bottom:-12px; height:142px; right:3%; transform:rotate(12deg); width:54%; }
.travel-map-fallback-canvas { inset:0; position:absolute; z-index:1; }
.travel-map-fallback-pin { align-items:center; background:transparent; border:0; color:#464b87; display:flex; flex-direction:column; font:10px/1.2 "幼圆","YouYuan",sans-serif; gap:5px; padding:0; position:absolute; transform:translate(-50%,-50%); }
.travel-map-fallback-pin i { background:#fffdf9; border:3px solid #a8b3df; border-radius:50%; box-shadow:0 4px 10px rgba(70,75,135,.2); height:17px; width:17px; }
.travel-map-fallback-pin.is-visited i { background:#ef88bb; border-color:#fffdf9; box-shadow:0 0 0 3px rgba(98,114,223,.43),0 4px 10px rgba(70,75,135,.18); }
.travel-map-empty { align-items:center; color:#7275a3; display:flex; flex-direction:column; inset:0; justify-content:center; padding:28px; position:absolute; text-align:center; }
.travel-map-empty b { color:#464b87; font-family:"幼圆","YouYuan",sans-serif; font-size:14px; }
.travel-map-empty span { font-size:10px; line-height:1.5; margin-top:7px; }
.travel-map-loading { align-items:center; background:rgba(238,248,247,.86); color:#7275a3; display:flex; flex-direction:column; font-size:10px; gap:10px; inset:0; justify-content:center; position:absolute; z-index:5; }
.travel-map-loading[hidden] { display:none; }
.travel-map-loading span { animation:travel-map-pulse 1s ease-in-out infinite; background:#ef88bb; border:4px solid #fffdf9; border-radius:50%; box-shadow:0 0 0 4px rgba(98,114,223,.3); height:18px; width:18px; }
@keyframes travel-map-pulse { 50% { opacity:.55; transform:scale(.82); } }
.travel-map-marker { align-items:center; color:#464b87; display:flex; flex-direction:column; font:10px/1.2 "幼圆","YouYuan",sans-serif; gap:4px; white-space:nowrap; }
.travel-map-marker i { background:#fffdf9; border:3px solid #a8b3df; border-radius:50%; box-shadow:0 4px 10px rgba(70,75,135,.24); display:block; height:17px; width:17px; }
.travel-map-marker.is-visited i { background:#ef88bb; border-color:#fffdf9; box-shadow:0 0 0 3px rgba(98,114,223,.45),0 4px 10px rgba(70,75,135,.2); }
.travel-map-marker.is-city i { height:21px; width:21px; }
.travel-map-marker span { background:rgba(255,253,249,.9); border-radius:8px; box-shadow:0 3px 8px rgba(70,75,135,.1); max-width:120px; overflow:hidden; padding:3px 6px; text-overflow:ellipsis; }
.travel-map-info { color:#464b87; display:grid; font:11px/1.45 "幼圆","YouYuan",sans-serif; gap:3px; padding:2px 3px; }
.travel-map-info b { font-size:13px; }
.travel-map-info span { color:#7275a3; }
.travel-map-explorer .amap-logo,.travel-map-explorer .amap-copyright { opacity:.72 !important; }
.travel-map-explorer + .profile-detail-list { margin-top:14px; }
.plan-route-map.plan-live-map { overflow:hidden; pointer-events:auto; user-select:auto; }
.plan-live-map > header { min-height:58px; padding:10px 12px 8px; }
.plan-live-map .travel-map-viewport { height:210px; }
.plan-live-map .travel-map-status { min-height:34px; padding:10px 12px; }
@media (max-width:380px) { .travel-map-viewport { height:270px; } .travel-map-explorer > header { padding-inline:12px; } }
@media (max-width:380px) { .plan-live-map .travel-map-viewport { height:190px; } }

/* Processing: the working cloud is centred and enlarged; completion packs the
   map-and-pencil pose away before revealing one happy, normal cloud. */
.processing-assistant-row { gap:10px; grid-template-columns:110px minmax(0,1fr); min-height:110px; }
.processing-assistant-row > .cloud-ip-host { --cloud-ip-size:110px; height:110px; width:110px; }
.cloud-ip-host--processing[data-cloud-state="thinking"]::after { background-position:center 52%; background-size:155%; }
.cloud-ip-host--processing.is-completing::after { animation:cloud-work-pack .36s cubic-bezier(.32,.8,.3,1) both; background-image:url("assets/ui-v2/cloud-ip-work-map-pencil-v3.png"); background-position:center 52%; background-size:155%; }
.cloud-ip-host--processing.is-complete-reveal > .nav-cloud-companion { animation:cloud-idle-reveal .42s cubic-bezier(.22,.86,.32,1.18) both; }
.processing-skeleton { gap:7px; margin:4px 0 12px; }
.processing-skeleton span { min-height:12px; }
@keyframes cloud-work-pack { 0% { opacity:1; transform:translateY(0) scale(1) rotate(0); } 55% { opacity:1; transform:translateY(4px) scale(.88) rotate(-4deg); } 100% { opacity:0; transform:translateY(9px) scale(.56) rotate(5deg); } }
@keyframes cloud-idle-reveal { 0% { opacity:0; transform:translateY(8px) scale(.7); } 68% { opacity:1; transform:translateY(-3px) scale(1.06); } 100% { opacity:1; transform:none; } }

/* v1.5 visibility and layout corrections: keep the cloud, its label, and all
   dark-surface text readable without introducing a circular plate. */
.orbit-nav .assistant-nav-button { height:90px; width:94px; }
.orbit-nav .assistant-nav-button .orbit-icon { height:70px; width:92px; }
.assistant-nav-button .orbit-icon--cloud-companion::before { background:radial-gradient(ellipse at 52% 56%,#fffdf9 0 42%,rgba(255,253,249,.99) 56%,rgba(255,253,249,0) 76%); border-radius:48% 54% 46% 52%; content:""; inset:7px 9px 3px; pointer-events:none; position:absolute; z-index:-1; }
.assistant-nav-button .nav-cloud-companion { height:78px; width:78px; }
.assistant-nav-button .nav-cloud-float { animation:nav-cloud-soft-float 5.2s cubic-bezier(.45,0,.55,1) infinite; }
.assistant-nav-button b { margin-top:-7px !important; position:relative; z-index:3; }
@keyframes nav-cloud-soft-float { 0%,100% { transform:translateY(2px) scale(1); } 50% { transform:translateY(-2px) scale(1.012); } }

.cloud-profile-avatar { height:150px; }
.profile-work-cloud { top:-20px; width:250px; animation:profile-work-read 5.8s ease-in-out infinite; }
@keyframes profile-work-read { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0); } 24% { transform:translateX(calc(-50% - 2px)) translateY(-3px) rotate(-.8deg); } 53% { transform:translateX(calc(-50% + 2px)) translateY(1px) rotate(.7deg); } 78% { transform:translateX(calc(-50% - 1px)) translateY(-2px) rotate(-.35deg); } }

.journey-record-card { background:linear-gradient(90deg,#ddf6fa 0%,#eef5e7 44%,#fff6d9 100%); }
.journey-map { background:linear-gradient(90deg,rgba(221,246,250,0) 0%,rgba(218,239,255,.25) 14%,rgba(236,245,249,.8) 100%) !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; height:100% !important; right:0 !important; top:0 !important; width:54% !important; }
.journey-map::before { background:repeating-linear-gradient(113deg,transparent 0 19px,rgba(98,114,223,.13) 20px 23px,transparent 24px 43px),repeating-linear-gradient(28deg,transparent 0 24px,rgba(88,198,223,.16) 25px 28px,transparent 29px 52px) !important; opacity:.88 !important; }
.journey-map .route-stroke,.journey-map i,.journey-map b { display:none !important; }

#plan-ai-adjust .plan-chatbot-bubble { align-items:center; display:grid !important; gap:8px; grid-template-columns:62px minmax(0,1fr); padding:10px 12px; }
#plan-ai-adjust .cloud-ip-host--plan-prompt { --cloud-ip-size:58px; align-self:center; pointer-events:none; }
#plan-ai-adjust .plan-assist-open { grid-column:2; min-height:58px; padding:4px 2px; }
#plan-ai-adjust .confirm-plan-button { color:#fffdf9 !important; font-family:"幼圆","YouYuan",sans-serif; font-size:13px; font-weight:700; grid-column:1 / -1; letter-spacing:.04em; min-height:43px; opacity:1 !important; text-shadow:0 1px 2px rgba(70,75,135,.25); }
#plan-ai-adjust .confirm-plan-button:not([hidden]) { display:flex !important; }
#plan-day-tabs button.is-active,#plan-day-tabs button.is-active b,#plan-day-tabs button.is-active span { color:#fffdf9 !important; opacity:1 !important; text-shadow:0 1px 3px rgba(40,48,110,.36); }

.cloud-ip-host--processing[data-cloud-state="thinking"]::after { background-position:center 56%; }

.trip-card { overflow:hidden; }
.trip-share-button,.profile-share-button { align-items:center; background:rgba(255,253,249,.84); border:1px solid rgba(98,114,223,.22); border-radius:50%; color:#6272df; display:inline-flex; font-family:"幼圆","YouYuan",sans-serif; font-size:18px; height:36px; justify-content:center; left:auto !important; line-height:1; margin:0; position:absolute; right:13px; top:13px; transform:none; width:36px; z-index:3; }
.trip-card.is-longpressing { outline:2px solid rgba(243,130,181,.72); outline-offset:2px; transform:scale(.988); }

/* v1.5.1: plan edits retain a static map while synchronising its labels;
   the global chatbot remains the single plan-adjustment entry point. */
#plan-ai-adjust { display:none !important; }
.plan-route-map { pointer-events:none; }
.assistant-sheet { position:absolute; }
.existing-conversation-notice { background:rgba(255,253,248,.98); border:1px solid rgba(94,110,228,.25); border-radius:18px; box-shadow:0 14px 32px rgba(71,78,157,.18); color:#35418c; padding:14px; position:absolute; right:28px; top:62px; width:min(290px,calc(100% - 56px)); z-index:8; }
.existing-conversation-notice b,.existing-conversation-notice span { display:block; }
.existing-conversation-notice span { color:#737589; font-size:12px; line-height:1.55; margin-top:5px; }
.existing-conversation-notice button { background:#6472e8; border:0; border-radius:999px; color:#fff; font:inherit; font-size:13px; margin-top:10px; padding:8px 12px; }

/* v1.6: compact account cards and consistent component rhythm. */
.settings-avatar-trigger { appearance:none; background:transparent; border:0; cursor:pointer; padding:0; }
.profile-hero { gap:2px; min-height:0; padding:12px 18px 15px; }
.cloud-profile-avatar { height:126px; }
.profile-work-cloud { top:-11px; width:226px; }
.profile-identity > p { margin:2px 0 7px; }
.profile-identity .level-row { max-width:270px; }

.journey-record-card { background:linear-gradient(90deg,#ddf6fa 0%,#e8f4eb 33%,#fff5d7 70%,#ffe6f0 100%); }
.journey-map { background:linear-gradient(90deg,rgba(221,246,250,0) 0%,rgba(220,239,252,.12) 16%,rgba(226,241,249,.55) 44%,rgba(238,246,232,.78) 70%,rgba(255,245,215,.92) 100%) !important; width:59% !important; }
.journey-map::before { opacity:.56 !important; }

.timeline-stop > div { box-sizing:border-box; min-height:134px; transition:transform 240ms cubic-bezier(.2,.8,.2,1),box-shadow 240ms ease,border-color 240ms ease; }
.timeline-stop > div:active { transform:scale(.985); }
.timeline-stop > div:hover { border-color:rgba(98,114,223,.38); box-shadow:0 10px 22px rgba(98,114,223,.10); }

#plan-title { font-family:"幼圆","YouYuan",sans-serif; font-weight:800; letter-spacing:.015em; }
#plan-title .plan-title-dot { display:inline-block; font-family:Arial,sans-serif; font-size:.58em; transform:translateY(-.12em); vertical-align:middle; }

.trip-card > img { bottom:-32px; filter:drop-shadow(0 13px 12px rgba(73,102,184,.18)); right:-20px; width:150px; }
.trip-card.active-trip { background:linear-gradient(130deg,#ddf6fa 0%,#e5ebff 72%,#f9dcf0 100%); }

.cloud-ip-host--loading { position:relative; top:1cm; }
.loading-orbit { margin-top:calc(-126px + 1cm); }

.orbit-nav .orbit-destination.is-orbit-focus .orbit-icon { background:radial-gradient(circle at 50% 53%,rgba(255,255,255,0) 0 35%,rgba(255,235,165,.18) 49%,rgba(255,199,61,.38) 67%,rgba(255,199,61,0) 80%); box-shadow:none; }
.orbit-nav .orbit-destination.is-orbit-focus .orbit-icon::before { display:none; }

.auth-page,.settings-page { padding-top:24px; }
.auth-back-placeholder { visibility:hidden; }
.auth-cloud-mark { align-items:center; background:none; display:flex; height:150px; justify-content:center; }
.auth-cloud-mark img { filter:drop-shadow(0 14px 20px rgba(98,114,223,.17)); width:238px; }
.auth-intro { text-align:center; }
.auth-intro span { color:#f382b5; font-size:12px; font-weight:700; }
.auth-intro h2 { color:#414d99; font-size:25px; margin:7px 0; }
.auth-intro p { color:#70758f; font-size:12px; line-height:1.6; margin:0 auto; max-width:250px; }
.auth-mode-tabs { background:rgba(225,234,255,.72); border-radius:999px; display:grid; gap:4px; grid-template-columns:1fr 1fr; margin:24px 0 14px; padding:4px; }
.auth-mode-tabs button { background:transparent; border:0; border-radius:999px; color:#6570af; font-family:"幼圆","YouYuan",sans-serif; font-size:14px; min-height:40px; }
.auth-mode-tabs button.is-active { background:#fffdf9; box-shadow:0 5px 12px rgba(98,114,223,.14); color:#5263d7; font-weight:700; }
.auth-form,.settings-card { background:rgba(255,253,249,.89); border:1px solid rgba(98,114,223,.15); border-radius:22px; box-shadow:0 13px 28px rgba(98,114,223,.08); padding:16px; }
.auth-form label,.settings-card label { color:#4a579c; display:block; font-size:12px; font-weight:700; margin-bottom:13px; }
.auth-form input,.settings-card input { background:rgba(240,244,255,.75); border:1px solid rgba(98,114,223,.18); border-radius:14px; box-sizing:border-box; color:#404d94; display:block; font:inherit; margin-top:7px; min-height:47px; outline:0; padding:0 13px; width:100%; }
.auth-form input:focus,.settings-card input:focus { border-color:#6677e8; box-shadow:0 0 0 4px rgba(102,119,232,.13); }
.auth-form-hint { color:#8a8fa9; font-size:11px; line-height:1.5; margin:2px 0 13px; }
.auth-submit { min-height:48px; width:100%; }
.settings-hero { align-items:center; background:linear-gradient(125deg,#def5fa,#e9e9ff 58%,#ffe3ee); border:1px solid rgba(255,255,255,.88); border-radius:24px; display:flex; gap:12px; margin-bottom:18px; padding:16px; }
.settings-hero img { filter:drop-shadow(0 8px 12px rgba(98,114,223,.15)); width:94px; }
.settings-hero span { color:#f382b5; font-size:11px; font-weight:700; }
.settings-hero h2 { color:#414d99; font-size:23px; margin:3px 0; }
.settings-hero p { color:#71758f; font-size:10px; margin:0; }
.settings-card h2 { color:#46519a; font-size:17px; margin:0 0 14px; }
.settings-card .secondary-button { min-height:44px; width:100%; }

/* v1.6.12: only the explicitly annotated controls change. */
.poi-plan-return-button { grid-column:3; justify-self:end; }
.root-return-header .profile-share-button { justify-self:end; position:static; }
#app[data-screen="plan"] .floating-chatbot.has-plan-guidance > b {
  background:rgba(255,253,249,.97);
  border:1px solid rgba(98,114,223,.2);
  border-radius:14px;
  bottom:42px;
  box-shadow:0 8px 18px rgba(98,114,223,.16);
  color:#464b87;
  font-size:10px;
  left:84px;
  line-height:1.45;
  margin:0;
  padding:8px 10px;
  position:absolute;
  text-align:left;
  white-space:normal;
  width:190px;
}
#app[data-screen="plan"] .floating-chatbot.has-plan-guidance > b::before {
  background:inherit;
  border-bottom:1px solid rgba(98,114,223,.2);
  border-left:1px solid rgba(98,114,223,.2);
  content:"";
  height:10px;
  left:-6px;
  position:absolute;
  top:17px;
  transform:rotate(45deg);
  width:10px;
}

#app[data-screen="auth"] .bottom-nav,#app[data-screen="settings"] .bottom-nav,
#app[data-screen="auth"] .floating-chatbot-host,#app[data-screen="settings"] .floating-chatbot-host { display:none; }
#app[data-screen="poi-detail"] .floating-chatbot-host { display:none; }

/* Live integration additions aligned with the V1.6.13 baseline. */
.video-evidence-hero > video {
  background:#183b4a;
  height:100%;
  inset:0;
  object-fit:cover;
  position:absolute;
  width:100%;
  z-index:0;
}
.video-evidence-hero > :not(video) { position:relative; z-index:1; }
.poi-photo { position:relative; }
.poi-photo > img { height:100%; inset:0; object-fit:contain; object-position:center; position:absolute; width:100%; }
.poi-photo.has-photo > span { background:rgba(24,55,62,.78); color:#fff; position:relative; z-index:1; }
.poi-evidence-card {
  background:#eaf3fb;
  border:1px solid rgba(72,105,142,.14);
  border-radius:14px;
  margin:18px 0 24px;
  padding:15px 16px;
}
.poi-evidence-card b { color:#3e6f9e; display:block; font-size:12px; margin-bottom:7px; }
.poi-evidence-card p { color:#33464c; font-size:13px; line-height:1.65; margin:0; }
.poi-detail-screen .poi-evidence-card { display:none; }
.poi-detail-screen .poi-copy-section { position:relative; }
.poi-detail-screen .poi-photo.has-photo { background:#edf2f4; padding:17px; }
.poi-detail-screen .poi-photo.has-photo::before,
.poi-detail-screen .poi-photo.has-photo::after { display:none; }
.poi-detail-companion {
  align-items:center;
  display:flex;
  flex-direction:column;
  position:absolute;
  right:8px;
  transform:translateY(-62px);
  width:84px;
  z-index:4;
}
.poi-detail-companion span {
  background:#fffdf9;
  border:1px solid #f1bfd9;
  border-radius:999px;
  color:#df76ad;
  font-size:9px;
  font-weight:700;
  padding:6px 8px;
  white-space:nowrap;
}
.poi-detail-companion img {
  display:block;
  height:64px;
  margin-top:5px;
  object-fit:contain;
  width:78px;
}
.poi-detail-companion b {
  background:#fffdf9;
  border-radius:999px;
  color:#6570c7;
  font-size:9px;
  margin-top:-8px;
  padding:4px 10px;
}
.trip-context-pill {
  align-items:center;
  background:#fffdf8;
  border:1px solid rgba(58,78,82,.16);
  border-radius:999px;
  display:flex;
  font:inherit;
  gap:8px;
  justify-content:center;
  max-width:230px;
  min-height:40px;
  padding:8px 15px;
}
.trip-context-pill span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-context-menu {
  background:rgba(255,253,248,.98);
  border:1px solid rgba(58,78,82,.12);
  border-radius:16px;
  box-shadow:0 14px 38px rgba(35,60,65,.16);
  left:50%;
  max-height:240px;
  overflow-y:auto;
  padding:8px;
  position:absolute;
  top:70px;
  transform:translateX(-50%);
  width:min(78%,320px);
  z-index:12;
}
.plan-context-menu button {
  align-items:center;
  background:transparent;
  border:0;
  border-radius:12px;
  display:flex;
  font:inherit;
  justify-content:space-between;
  padding:11px 12px;
  text-align:left;
  width:100%;
}
.plan-context-menu button.is-selected { background:#edf4ee; }
.plan-context-menu b,.plan-context-menu small { display:block; }
.plan-context-menu small { color:#7d8886; font-size:10px; margin-top:4px; }
.assistant-confirm-plan { color:#fffdf9; font-family:"幼圆","YouYuan",sans-serif; margin:0 22px 10px; min-height:42px; text-shadow:0 1px 2px rgba(70,75,135,.25); width:calc(100% - 44px); }
.app-shell.is-shared-plan { padding-bottom:0; }
.app-shell.is-shared-plan .plan-screen { padding-bottom:32px; }
.app-shell.is-shared-plan .plan-header { grid-template-columns:1fr; }
.app-shell.is-shared-plan .plan-header > div { grid-column:1; }
