/* Planetoo World — visual system guided by the supplied low-poly town references.
   This final stylesheet changes presentation only; app and transaction states stay intact. */
:root {
  --paper:#f7f3e9; --white:#fffdf7; --ink:#243d34; --text:#405047;
  --muted:#65705f; --line:#dfdfd0; --purple:#526b47; --purple-dark:#3d5635;
  --lilac:#e9eddf; --lilac-ink:#45613c; --peach:#f5e0c8;
  --green:#3d6b53; --green-bg:#edf2e7; --amber:#846022; --amber-bg:#f7edda;
  --danger:#a35440; --world-surface:#fffdf7; --world-soft:#eeeddf;
  --world-shadow:0 8px 28px rgba(59,67,42,.055);
  --world-radius:24px;
}
html { scroll-padding-bottom:110px; }
body {
  background:#efecdf;
  background-image:radial-gradient(ellipse at 5% 0%,#f6dcc355,transparent 42%),radial-gradient(ellipse at 95% 30%,#d9e1ca55,transparent 42%);
  color:var(--text); font-size:15px; line-height:1.65;
  transition:background-color .25s ease;
}
body[data-world-phase="night"] { background-color:#1c2b40; background-image:radial-gradient(ellipse at 20% 0%,#39466677,transparent 70%); }
button, a, input, select, textarea, summary { touch-action:manipulation; }
button { transition:background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease; }
button:active:not(:disabled) { transform:none; opacity:.82; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #9e7647; outline-offset:4px; }
.app-shell {
  max-width:1120px; min-height:100dvh; padding:env(safe-area-inset-top,0px) 28px calc(120px + var(--safe-bottom));
  background:var(--paper); border:0; overflow:clip;
}
.app-shell>.demo-banner { margin:0 -28px; padding:4px 12px; background:#eae9dc; color:#65705f; font-size:11px; letter-spacing:.025em; }
.app-header { min-height:76px; padding:4px 0; border-bottom:1px solid var(--line); margin-bottom:20px; }
.brand { gap:8px; }
.brand-word { color:var(--ink); font-size:26px; letter-spacing:-.065em; }
.planet-mark,.icon-button { color:var(--purple); }
.mode-label { background:#f2f0e6; border-color:#d9ddce; color:var(--muted); font-size:12px; }
.view { padding-top:0; }
#view-discover { max-width:840px; margin:0 auto; }
#view-too,#view-profile { max-width:660px; margin:0 auto; }
#view-discover>.section-heading,#view-too>.too-welcome,#view-profile>.profile-card { padding-top:20px; }
.bottom-nav {
  width:min(calc(100% - 32px),500px); bottom:calc(12px + var(--safe-bottom));
  padding:7px 10px; min-height:68px; gap:5px; border:1px solid #fffdf7e6;
  border-radius:26px; background:rgba(255,253,247,.94);
  box-shadow:0 12px 40px #223f2d20,0 2px 7px #2c40271a;
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
}
.bottom-nav button { min-height:52px; border-radius:19px; color:#66735f; padding:5px 10px; gap:3px; }
.bottom-nav button.active { background:#e4ead7; color:#34532b; }
.bottom-nav button span { font-size:12px; }
.bottom-nav button svg { width:22px; height:22px; }
.btn { min-height:46px; border-radius:14px; font-size:14px; }
.btn.primary { background:var(--purple); border-color:var(--purple); color:#fff; }
.btn.secondary { background:var(--world-surface); border-color:#d9decd; color:var(--ink); }
.btn.ghost { color:#48623d; }
.btn.small { font-size:14px; min-height:44px; }
.badge,.pill { font-size:12px; }
.badge.neutral,.pill,.mini-tags span,.context-chips span,.theme-meta span,.app-tag { background:#edf0e4; color:#5f6c55; border-color:#dce1d0; }
.badge.pending,.badge.warning { background:#f6e8d0; color:#805b22; }
.badge.success { color:#386547; background:#e4efdf; }
.text-muted,.eyebrow,.subline,.small-eyebrow,.prototype-note,.app-note,.feed-toolbar,#feed-status { color:var(--muted); }
.eyebrow,.small-eyebrow { font-size:12px; }
.page-heading h1,.section-heading h1,.too-welcome h1 { color:var(--ink); }
.page-heading p,.section-heading p,.too-welcome p,.profile-card p { color:var(--muted); font-size:14px; }
/* The first screen belongs to the world; settings and meals become two calm chapters. */
.ps-root { --ps-ink:var(--ink); --ps-muted:var(--muted); --ps-line:var(--line); --ps-accent:var(--purple); color:var(--ink); }
.ps-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:5px 0 22px; }
.ps-heading-copy { min-width:0; }
.ps-heading h1 { color:var(--ink); font-size:clamp(27px,3.2vw,36px); font-weight:650; letter-spacing:-.045em; line-height:1.35; }
.ps-heading p { color:var(--muted); font-size:14px; line-height:1.75; margin-top:7px; }
.ps-eyebrow { font-size:12px; color:#69765a; letter-spacing:.1em; margin-bottom:7px; }
.ps-identity { flex:0 0 auto; max-width:370px; gap:11px; margin:0; }
.ps-family-avatar { width:44px; height:44px; border-radius:50%; color:#705636; background:#e8d5b9; box-shadow:inset 0 0 0 4px #f1e5d1; }
.ps-identity strong { font-size:14px; color:var(--ink); line-height:1.5; }
.ps-identity small { font-size:12px; color:var(--muted); line-height:1.5; }
.ps-member-select select { min-height:44px; max-width:118px; font-size:14px; padding:8px 10px; border:1px solid #cfd8bd; color:#48603d; background:#ecf0df; }
.ps-member-select small { font-size:11px; color:#71745f; margin-top:3px; }
.ps-below-world { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin-top:32px; align-items:start; }
.ps-room-section,.ps-meal { min-width:0; padding:24px; background:var(--world-surface); border:1px solid var(--line); border-radius:var(--world-radius); box-shadow:var(--world-shadow); scroll-margin-top:24px; }
.ps-section-heading { margin-bottom:20px; }
.ps-section-heading h2 { font-size:24px; color:var(--ink); line-height:1.45; font-weight:600; }
.ps-section-heading p { font-size:14px; line-height:1.75; color:var(--muted); margin-top:6px; }
.ps-room-card { border-color:#dedfcd; background:#f0eee2; border-radius:20px; box-shadow:none; }
.ps-room-top { padding:15px 16px 0; font-size:12px; color:#5e6c54; }
.ps-room-top span:last-child { font-size:12px; color:#687360; }
.ps-room-top span:first-child { color:#4c6242; }
.ps-room-caption { font-size:12px; color:#6e7464; padding:10px 16px 16px; }
.ps-room-caption strong { font-size:12px; color:#4e6944; }
.ps-room-art { min-height:0; }
.ps-room-actions { margin:14px 0 8px; gap:10px; }
.ps-btn { color:#49613f; background:#fffdf7; border-color:#d5ddc7; border-radius:14px; min-height:46px; font-size:14px; line-height:1.5; padding:11px 13px; }
.ps-btn.ps-primary { background:var(--purple); border-color:var(--purple); color:#fff; }
.ps-btn.ps-quiet { background:#e9eedf; color:#49613f; }
.ps-decor { border-color:var(--line); padding-bottom:16px; margin-bottom:20px; }
.ps-decor>summary,.ps-taste>summary { min-height:48px; font-size:14px; color:var(--ink); gap:8px; }
.ps-decor>summary>span,.ps-taste>summary>span { font-size:12px; color:var(--muted); }
.ps-decor>summary:after,.ps-taste>summary:after { color:#5f7950; }
.ps-field-label { color:#4a6040; font-size:14px; margin:16px 0 8px; }
.ps-name-row input { color:var(--ink); background:#fff; border-color:#ced8bf; font-size:16px; }
.ps-name-row button { font-size:14px; }
.ps-hint,.ps-save-note { font-size:12px; color:#66705d; line-height:1.75; }
.ps-theme { padding:9px; border-color:#dfe2d4; background:#f6f5ec; border-radius:13px; }
.ps-theme.selected { border-color:#7d9668; background:#eef2e4; box-shadow:0 0 0 1px #7d9668; }
.ps-theme strong { font-size:13px; color:#405b36; }
.ps-theme small { font-size:12px; color:#66735a; line-height:1.65; }
.ps-theme-swatch { height:48px; }
.ps-decoration-fields { gap:14px; }
.ps-decoration-fields>label { min-height:44px; font-size:14px; color:#4d6043; }
.ps-root select:not(.ps-member-select select) { min-height:44px; font-size:16px; color:var(--ink); background:#fff; border-color:#d2dbc6; border-radius:10px; padding:8px 10px; }
.ps-root input[type=checkbox] { width:18px; height:18px; accent-color:var(--purple); }
.ps-save-note { background:#eef0e3; border-radius:12px; padding:12px 14px; }
.ps-too-note { background:#ecf0e2; border:1px solid #dde5cf; border-radius:17px; padding:16px; margin:20px 0 0; }
.ps-too-note>span { width:34px; height:34px; border-radius:12px; background:#607a4e; font-size:14px; }
.ps-too-note p { color:#4f6542; font-size:14px; line-height:1.8; }
.ps-meal-card { border:0; padding:0; border-radius:0; background:transparent; }
.ps-meal-top { gap:12px; margin-bottom:10px; }
.ps-meal-top h3 { font-size:16px; color:#304a29; font-weight:600; line-height:1.6; }
.ps-meal-top p { font-size:12px; color:#66735d; line-height:1.7; }
.ps-step { width:30px; height:30px; line-height:28px; background:#e9eedb; border-color:#d5dfc7; color:#536b3f; font-size:12px; border-radius:50%; }
.ps-dish { background:transparent; padding:15px 0; gap:13px; border-color:#e6e7da; }
.ps-dish-copy strong { font-size:15px; color:#33492e; font-weight:600; }
.ps-dish-copy small { font-size:12px; color:#64715d; line-height:1.65; }
.ps-dish-copy b { font-size:15px; color:#3e5c30; }
.ps-dish-copy em { font-size:12px; color:#64715d; }
.ps-dish-art { width:74px; height:78px; border-radius:17px; }
.ps-dish-check { width:28px; height:28px; border-color:#ccd8bb; color:#5b7744; }
.ps-dish.selected .ps-dish-check { color:#fff; background:#607a4e; border-color:#607a4e; }
.ps-custom { padding:23px 0 17px; }
.ps-custom-icon { color:#a7783d; }
.ps-custom-intro strong { color:#5f4d2d; font-size:16px; line-height:1.55; }
.ps-custom-intro p { color:#76644a; font-size:12px; line-height:1.75; }
.ps-tier-tag { background:#f5e8cf; border-color:#e4d1aa; color:#7a5928; font-size:12px; padding:4px 7px; }
.ps-locked { background:#f4eddd; border-radius:14px; padding:14px; }
.ps-locked p { color:#76664b; font-size:13px; }
.ps-locked .ps-btn { background:#e9dabd; color:#604b27; min-height:44px; font-size:14px; padding:10px 12px; }
.ps-custom-toggle { color:#3f5733; font-size:14px; min-height:44px; margin-top:12px; }
.ps-recipe-grid { gap:14px; }
.ps-recipe-grid label>span { color:#5c6d4f; font-size:13px; margin-bottom:7px; }
.ps-recipe-preview { background:#f1eddc; border-color:#dfd7bd; border-radius:14px; padding:14px; }
.ps-recipe-preview span,.ps-recipe-preview small { color:#766743; font-size:12px; }
.ps-recipe-preview strong { font-size:14px; color:#5f502f; font-weight:600; line-height:1.75; }
.ps-taste { border-color:#e2e5d5; }
.ps-avoid { gap:6px 12px; }
.ps-avoid>label { color:#526449; font-size:13px; min-height:44px; }
.ps-taste textarea { color:var(--ink); border-color:#ced7c2; background:#fff; font-size:16px; border-radius:12px; }
.ps-taste textarea::placeholder { color:#728068; }
.ps-time-row { border-color:#e3e6d5; }
.ps-time-row>span { color:#425a35; font-size:14px; }
.ps-time-row small { font-size:12px; color:#66735b; line-height:1.65; }
.ps-total>span { color:#425a35; font-size:14px; }
.ps-total small { color:#66735b; font-size:12px; line-height:1.65; }
.ps-total>strong { color:#334f28; font-size:29px; }
.ps-validation { color:#8c4e27; background:#f6e9d9; font-size:13px; padding:12px 14px; }
.ps-request { border-color:#cbd6b9; background:#edf2e3; border-radius:18px; padding:18px; }
.ps-request-heading>span,.ps-request-heading>small { color:#5c6e42; font-size:12px; }
.ps-request h3 { color:#3c582c; font-size:17px; }
.ps-request li { color:#475e37; border-color:#d8e1c9; font-size:14px; }
.ps-request>p,.ps-request-status,.ps-simulation summary,.ps-simulation p { color:#60714e; font-size:12px; }
.ps-request-status i { background:#6f8c51; }
.ps-simulation { border-color:#d1ddbf; }
.ps-simulation summary { min-height:44px; line-height:44px; }
.ps-simulation .ps-btn { color:#415c30; background:#dce7cb; min-height:44px; font-size:13px; }
.ps-followup { max-width:600px; margin:24px auto 0; gap:12px; }
.ps-followup .ps-btn { font-size:14px; }
.ps-footer,.ps-live-status { max-width:700px; margin-left:auto; margin-right:auto; color:#64705b; font-size:12px; line-height:1.8; text-align:center; }
.ps-live-status:empty { min-height:0; }
.personal-legacy { max-width:800px; margin:28px auto 0; padding-top:10px; border-color:#d3dbc4; }
.personal-legacy>summary { min-height:58px; font-size:15px; color:#3e5632; }
.personal-legacy>summary small { font-size:12px; color:#66735b; }
.personal-legacy-body { padding-top:22px; border-color:#d3dbc4; }
/* Existing content tabs receive the same calm, tactile materials. */
.plan-card,.theme-card,.destination-card,.conversation-card,.account-list,.app-feature { background:var(--world-surface); border-color:#dce2d0; box-shadow:var(--world-shadow); }
.theme-card { border-radius:24px; }
.theme-art { --theme-surface:#e8e8d6; --theme-ink:#4e6842; --theme-shape:#c6d0b5; min-height:205px; }
.theme-art[data-palette="peach"] { --theme-surface:#efd9bc; --theme-ink:#76542b; --theme-shape:#dcb992; }
.theme-art[data-palette="green"] { --theme-surface:#dfe8cc; --theme-ink:#45613b; --theme-shape:#bfd0a4; }
.theme-art[data-palette="blue"] { --theme-surface:#dce7e8; --theme-ink:#3e626a; --theme-shape:#b6ced1; }
.theme-art-kicker,.theme-art-route span { font-size:12px; }
.theme-art-title { font-size:26px; font-weight:650; max-width:100%; }
.theme-author .avatar { background:#e6ecd8; border-color:#d3ddbf; color:#5a713f; }
.theme-author strong,.theme-author small,.theme-card-body>p,.theme-meta span { color:#64705a; }
.theme-card-body>p { font-size:14px; }
.theme-meta span { font-size:12px; }
.theme-card-body { padding:21px; }
.theme-author small { font-size:12px; }
.theme-actions .btn { font-size:14px; }
.discover-tabs { gap:8px; padding:5px; background:#eaeedf; border-radius:18px; }
.discover-tabs button { border:0; border-radius:13px; color:#5c6f4c; background:transparent; }
.discover-tabs button.active { background:#526b47; color:#fff; }
.feed-load { background:var(--world-surface); border-color:#d2ddc3; color:#49613c; }
.too-summary,.message-card,.chat-bubble,.app-promo,.fusion-station-card { background:#e9efdf; border-color:#d6dfc8; }
.too-copy>strong,.message-card strong,.fusion-service strong,.fusion-station-card h3 { color:#38542d; }
.too-copy>p,.theme-origin,.fusion-intent-card p,.fusion-station-card p,.fusion-station-meta,.fusion-service small,.fusion-inline-note,.fusion-wish-card p { color:#637252; }
.too-avatar { background:#60794e; }
.assistant-actions .btn,.destination-inline button,.quick-prompts button { color:#4d683c; }
.quick-service { border-color:#dce2cf; background:var(--world-surface); }
.quick-service>svg,.quick-service:nth-child(3)>svg { color:#637b4e; }
.quick-service:nth-child(2)>svg { color:#a17a45; }
.quick-service strong { color:#3d5433; }
.quick-service small { color:#69765e; font-size:12px; }
.destination-inline { background:#eeeede; border-color:#daddc8; }
.destination-inline strong,.destination-copy strong,.app-promo-copy h3,.account-row strong,.app-feature h3 { color:#2e4828; }
.destination-copy p,.destination-inline small,.app-promo-copy p,.account-row small,.app-feature p { color:#68735d; font-size:14px; }
.destination-symbol { background:#e7eddc; color:#617b48; }
.destination-symbol.v { background:#dce7d1; color:#567545; }
.destination-symbol.stay { background:#e5e5d2; color:#7d7950; }
.destination-symbol.dining { background:#f0dfc7; color:#a47c4b; }
.destination-symbol.park { background:#dde8c9; color:#72884c; }
.space-symbol,.app-feature>svg,.chevron,.account-row>svg { color:#6a8054; }
.app-promo-copy small { color:#64794d; font-size:12px; }
.chat-author { color:#5a7848; font-size:14px; }
.chat-bubble { color:#3e5a32; font-size:15px; }
.quick-prompts button { background:var(--world-surface); border-color:#d7dfc9; }
.composer { background:var(--world-surface); border-color:#cdd9bc; border-radius:22px; }
.composer textarea { color:var(--ink); }
.composer textarea::placeholder { color:#718465; }
.profile-avatar { background:#e0e8d2; color:#5d7844; }
.account-row+.account-row { border-color:#e3e7d7; }
.fusion-service { border-color:#d9e0cb; }
.fusion-service-icon { color:#79915f; }
.fusion-intent-card { border-color:#b0c192; }
.fusion-intent-card>small { color:#6b7c53; font-size:12px; }
.fusion-wish-card { border-color:#d9e0cd; }
.day-tabs button { color:#667557; border-color:#e0e5d5; background:#f3f5ec; }
.day-tabs button.active { color:#456335; background:#e6edda; border-color:#aabb91; }
.theme-origin { background:#edf1e3; border-color:#d2debf; }
.trip-summary,.plan-description,.plan-cta small { color:#68775a; }
.location-guardian { border-color:#d4dec6; background:#edf2e6; }
.guardian-icon { color:#6a8752; }
.guardian-copy strong { color:#3c572c; }
.guardian-copy small { color:#667958; }
/* Sheets maintain a readable paper surface above the scene. */
.modal-backdrop { background:#122c245e; }
.modal { width:min(100%,760px); background:var(--world-surface); box-shadow:0 -18px 80px #1a2d2540; }
.modal-header,.modal-footer { background:var(--world-surface); border-color:#e1e6d6; }
.modal-header h2 { color:#2c4827; }
.modal-header p,.modal-body>p,.modal-body ul,.modal-footer>p { color:#65755a; }
.modal-body { scrollbar-color:#c6d0b5 transparent; }
.close-btn { color:#5c724d; background:#edf1e3; min-width:44px; min-height:44px; }
.modal::before { background:#d7dfc9; }
.route-root { color:#344c2e; }
.route-root button { background:#f5f6ee; border-color:#d2ddc4; color:#426035; }
.route-root .route-button-primary { background:#526b47; border-color:#526b47; color:#fff; }
.route-root input,.route-root select,.route-root textarea { border-color:#d0dbc1; color:var(--ink); background:#fff; }
.route-root .route-presets [aria-pressed=true],.route-root .route-node-selected { background:#eaf0df; border-color:#a5bb8e; color:#3e5e30; }
.route-root .route-summary,.route-root .route-scene-status { background:#e9efde; color:#526c40; }
.route-root .route-edit-details { background:#f8f8f0; border-color:#dde4d0; }
.route-root .route-resource:has(input:checked) { background:#e9f0dc; border-color:#9fb685; }
.route-root .route-story-visual { background:linear-gradient(130deg,#e5eddb,#f1e7cf); }
.route-root .route-node-number { background:#dde8ce; }
.intent-root { --intent-ink:#334f2c; --intent-muted:#65775b; --intent-line:#d9e2cb; --intent-accent:#526b47; }
.intent-root .intent-banner,.intent-root .intent-tag { background:#edf1e3; color:#586e45; }
.intent-root .intent-active { background:#e7eed9; border-color:#a7bb8e; color:#405f30; }
.intent-root .intent-primary { background:#526b47; border-color:#526b47; color:#fff; }
.intent-root .intent-card { background:#f7f8ee; border-color:#d9e2cb; }
.toast { background:#2e4830; color:#fffdf6; border-radius:16px; font-size:14px; }
@media(min-width:1000px) {
  .app-shell { padding-left:40px; padding-right:40px; }
  .app-shell>.demo-banner { margin-left:-40px; margin-right:-40px; }
  .app-header { min-height:82px; }
  .ps-below-world { grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:28px; margin-top:36px; }
  .ps-room-section { position:sticky; top:24px; }
  .theme-feed { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  #view-discover>.app-promo { margin-bottom:30px; }
  .bottom-nav { bottom:20px; }
  .modal-backdrop { align-items:center; padding:24px; }
  .modal { border-radius:28px; }
  #modal-backdrop[data-panel='route'] .modal { width:min(100%,920px); }
}
@media(min-width:600px) and (max-width:999px) {
  .ps-heading { gap:20px; }
  .ps-heading-copy { flex:1; }
  .ps-heading h1 { font-size:30px; }
  .ps-identity { max-width:270px; flex-wrap:wrap; gap:7px; }
  .ps-identity>div { min-width:135px; }
  .ps-member-select { margin-left:auto; }
  .ps-room-section,.ps-meal { padding:26px; }
  .ps-room-art>svg { max-height:380px; }
}
@media(max-width:599px) {
  .app-shell { padding-left:16px; padding-right:16px; padding-bottom:calc(115px + var(--safe-bottom)); }
  .app-shell>.demo-banner { margin-left:-16px; margin-right:-16px; font-size:11px; padding:3px 10px; }
  .app-header { min-height:65px; margin-bottom:17px; }
  .brand-word { font-size:24px; }
  .header-actions .mode-label { font-size:12px; }
  .ps-heading { display:block; padding:0 0 18px; }
  .ps-heading h1 { font-size:27px; }
  .ps-heading p { font-size:14px; }
  .ps-eyebrow { font-size:11px; letter-spacing:.09em; margin-bottom:7px; }
  .ps-identity { max-width:none; margin-top:15px; gap:9px; }
  .ps-family-avatar { width:42px; height:42px; }
  .ps-identity>div { min-width:0; }
  .ps-identity strong { font-size:14px; }
  .ps-identity small { font-size:12px; }
  .ps-member-select select { min-height:44px; max-width:112px; font-size:14px; }
  .ps-member-select small { display:none; }
  .ps-below-world { margin-top:22px; gap:20px; }
  .ps-room-section,.ps-meal { padding:19px 16px; border-radius:22px; }
  .ps-section-heading h2 { font-size:23px; }
  .ps-room-actions { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:8px; }
  .ps-room-actions .ps-btn { padding:10px 8px; font-size:13px; }
  .ps-theme-grid { gap:7px; }
  .ps-theme { padding:7px; }
  .ps-theme small { font-size:12px; }
  .ps-theme strong { font-size:12px; }
  .ps-dish-art { width:64px; height:70px; }
  .ps-dish-copy strong { font-size:14px; }
  .ps-dish { gap:10px; }
  .ps-dish-copy small { font-size:12px; }
  .ps-custom-intro { gap:7px; }
  .ps-custom-intro strong { font-size:15px; }
  .ps-tier-tag { font-size:11px; padding:3px 5px; }
  .ps-custom-intro p { font-size:12px; }
  .ps-recipe-grid { gap:12px 10px; }
  .ps-decoration-fields { grid-template-columns:1fr; }
  .ps-decoration-fields>label { justify-content:space-between; }
  .ps-decoration-fields select { max-width:65%; flex:0 1 65%; }
  .ps-name-row { gap:7px; }
  .ps-name-row .ps-btn { padding:10px; font-size:13px; }
  .ps-total small,.ps-time-row small { font-size:12px; }
  .ps-followup { margin-top:20px; }
  .ps-footer { font-size:12px; text-align:left; }
  .personal-legacy { margin-top:22px; }
  .bottom-nav { width:calc(100% - 28px); padding:6px 8px; border-radius:24px; bottom:calc(10px + var(--safe-bottom)); }
  .bottom-nav button { min-height:51px; border-radius:18px; padding:5px 8px; }
  .modal { border-radius:25px 25px 0 0; }
  .modal-body { padding:18px; }
  .theme-art { min-height:210px; }
  .theme-art-title { font-size:25px; }
}
@media(max-width:375px) {
  .app-shell { padding-left:13px; padding-right:13px; }
  .app-shell>.demo-banner { margin-left:-13px; margin-right:-13px; }
  .header-actions .mode-label { display:none; }
  .ps-heading h1 { font-size:25px; }
  .ps-room-section,.ps-meal { padding:17px 13px; }
  .ps-room-top { gap:8px; padding-left:12px; padding-right:12px; }
  .ps-room-top span:last-child { max-width:50%; }
  .ps-family-avatar { width:38px; height:38px; }
  .ps-identity { gap:7px; }
  .ps-identity small { max-width:150px; }
  .ps-dish-art { width:58px; height:64px; }
  .ps-dish { gap:9px; }
  .ps-dish-check { width:25px; height:25px; }
  .ps-dish-copy em { display:none; }
}
@media(hover:hover) and (pointer:fine) {
  .btn.primary:hover,.ps-btn.ps-primary:hover,.intent-root .intent-primary:hover { background:#405b34; border-color:#405b34; }
  .btn.secondary:hover,.ps-btn:not(.ps-primary):hover,.route-root button:not(.route-button-primary):hover { background:#ecf0df; }
  .bottom-nav button:not(.active):hover { background:#eef1e6; }
  .theme-card:hover { box-shadow:0 12px 32px #3f522b0e; border-color:#becdaa; }
  .destination-card:hover,.fusion-service:hover { background:#f1f4e8; border-color:#b5c7a0; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  body,button,.ps-root *, .modal, .modal-backdrop { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
/* Discovery continues the same visual world, with the supplied town media. */
.theme-card .theme-art {
  --discovery-image:url('assets/planet/poster.webp');
  min-height:270px; justify-content:flex-end; gap:9px; padding:24px;
  background-color:#536545;
  background-image:linear-gradient(180deg,rgba(15,34,27,.04) 10%,rgba(13,31,24,.3) 43%,rgba(12,29,22,.91) 100%),var(--discovery-image);
  background-size:cover; background-position:center 37%;
  color:#fffdf5; text-shadow:0 1px 5px #10241940;
}
.theme-card .theme-art[data-palette="peach"] { --discovery-image:url('assets/planet/day-town.webp'); background-position:center 42%; }
.theme-card .theme-art[data-palette="green"] { --discovery-image:url('assets/planet/day-town.webp'); background-position:center 28%; }
.theme-card .theme-art[data-palette="blue"] {
  --discovery-image:url('assets/planet/night-town.webp');
  background-image:linear-gradient(180deg,rgba(10,20,43,.07) 10%,rgba(8,18,39,.34) 43%,rgba(7,17,37,.92) 100%),var(--discovery-image);
  background-position:center 45%;
}
.theme-card .theme-art[data-theme="theme-1"],
.theme-card .theme-art[data-theme="theme-8"],
.theme-card .theme-art[data-theme="theme-19"] { --discovery-image:url('assets/planet/poster.webp'); background-position:center 29%; }
.theme-card .theme-art[data-theme="theme-9"],
.theme-card .theme-art[data-theme="theme-16"],
.theme-card .theme-art[data-theme="theme-18"] { --discovery-image:url('assets/planet/night-town.webp'); background-position:center 42%; }
.theme-card .theme-art::before {
  content:'头号星球 · 视觉参考'; position:absolute; left:auto; right:14px; top:14px; bottom:auto;
  z-index:1; width:auto; height:auto; padding:5px 9px; border:1px solid #ffffff38;
  border-radius:20px; background:#132c2678; color:#fffdf5; opacity:1; transform:none;
  font-size:11px; line-height:1.5; letter-spacing:.025em; text-shadow:none;
}
.theme-card .theme-art::after { content:none; }
.theme-card .theme-art-kicker { color:#fffdf2; font-size:12px; letter-spacing:.075em; text-shadow:0 1px 5px #102419; }
.theme-card .theme-art-title { color:#fffdf5; font-size:26px; line-height:1.4; font-weight:650; max-width:100%; }
.theme-card .theme-art-route { gap:6px; padding-top:1px; }
.theme-card .theme-art-route span { color:#fffdf5; background:#102b2470; border-color:#ffffff45; font-size:12px; border-radius:20px; padding:4px 10px; }
@media(max-width:599px) {
  .theme-card .theme-art { min-height:260px; padding:22px 20px; }
  .theme-card .theme-art-title { font-size:25px; }
}
@media(max-width:375px) {
  .theme-card .theme-art { min-height:250px; padding:21px 18px; }
  .theme-card .theme-art-title { font-size:24px; }
}
