:root{--paper: #f4efe6;--paper-deep: #ebe3d4;--ink: #1c1914;--muted: #6f675c;--pine: #1f6b4a;--pine-deep: #155338;--gold: #d4a017;--gold-soft: rgba(212, 160, 23, .16);--card: rgba(255, 252, 246, .92);--line: rgba(28, 25, 20, .08);--danger: #b42318;--radius: 18px;--tab-h: 64px;--font-display: "Songti SC", "STSong", "Source Han Serif SC", "Noto Serif SC", serif;--font-body: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 50% -10%,var(--gold-soft),transparent 55%),radial-gradient(ellipse 50% 40% at 100% 0%,rgba(31,107,74,.08),transparent 50%),var(--paper)}button,input{font:inherit}a{color:var(--pine)}.app-shell{min-height:100dvh;max-width:480px;margin:0 auto;padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}.page{padding:20px 20px 28px}.page-title{font-family:var(--font-display);font-size:28px;margin:8px 0 6px;letter-spacing:.02em}.page-lead,.empty-card p,.hint,.legal-section p{color:var(--muted);line-height:1.65;margin:0}.empty-card,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 10px 30px #1c19140a}.tab-bar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(480px,100%);height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding:6px 8px env(safe-area-inset-bottom);display:flex;background:#fffcf6f0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tab-item{flex:1;border:0;background:none;text-decoration:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;min-height:48px}.tab-item.active{color:var(--pine-deep);font-weight:650}.tab-dot{width:18px;height:3px;border-radius:99px;background:transparent}.tab-item.active .tab-dot{background:var(--pine)}.login-hero{text-align:center;padding:28px 8px 18px}.mark{width:72px;height:72px;margin:0 auto 14px;border-radius:22px;background:linear-gradient(160deg,#f7e7b0,#cfe8d6);display:grid;place-items:center;font-family:var(--font-display);font-size:30px;color:var(--pine-deep);box-shadow:inset 0 0 0 1px #1f6b4a1f}.login-hero h1{font-family:var(--font-display);margin:0;font-size:32px}.login-hero p{margin:8px 0 0;color:var(--muted)}.field{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:14px 16px;margin-bottom:10px}.row{display:flex;gap:8px}.row .field{flex:1}.btn{width:100%;border:0;border-radius:999px;min-height:48px;padding:0 18px;background:var(--pine);color:#f8f4ea}.btn:disabled{opacity:.55}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-text{width:auto;background:none;color:var(--pine);min-height:40px;padding:0 8px}.agree{display:flex;gap:10px;align-items:flex-start;margin:14px 0;color:var(--muted);font-size:13px}.check{width:20px;height:20px;border-radius:6px;border:1px solid var(--line);display:grid;place-items:center;flex:none;background:#fff}.check.on{background:var(--pine);color:#fff;border-color:var(--pine)}.error{color:var(--danger);font-size:13px;margin:0 0 10px}.mock{font-size:12px;color:var(--muted);margin:8px 0 0}.composer{display:flex;gap:8px;margin-top:16px}.composer input{flex:1}.composer .btn{width:auto}.profile-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}.avatar{width:56px;height:56px;border-radius:18px;background:linear-gradient(160deg,#f7e7b0,#cfe8d6);display:grid;place-items:center;font-family:var(--font-display);font-size:22px}.menu-list{display:grid;gap:8px}.menu-item{display:flex;justify-content:space-between;text-decoration:none;color:inherit;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:14px}.legal-page{padding-bottom:88px}.legal-section{margin:18px 0}.legal-section h2{font-size:16px;margin:0 0 8px}.legal-bar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(480px,100%);padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fffcf6f5}.top-skip{display:flex;justify-content:space-between;align-items:center}.chip-row{display:flex;gap:8px;margin:0 0 14px}.chip{border:1px solid var(--line);background:#fffdf8;border-radius:999px;padding:6px 12px;color:var(--muted);font-size:13px}.chip.on{background:var(--pine);color:#f8f4ea;border-color:var(--pine)}.product-list{display:grid;gap:12px}.product-card{display:grid;grid-template-columns:92px 1fr;gap:12px;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.product-cover{width:92px;height:92px;object-fit:cover;background:var(--paper-deep)}.product-cover.fallback{display:grid;place-items:center;font-size:12px;color:var(--muted)}.product-body{padding:10px 10px 10px 0}.product-body strong{display:block;margin:4px 0}.product-body p{margin:0;color:var(--muted);font-size:12px}.price-row{display:flex;justify-content:space-between;margin-top:8px}.price{color:var(--pine-deep);font-weight:700}.price small{margin-left:4px;font-weight:400;color:var(--muted)}.hero-cover{width:100%;height:200px;object-fit:cover;border-radius:18px;margin-bottom:12px}.spec-list{display:grid;gap:8px;margin:12px 0}.spec{display:flex;justify-content:space-between;width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:12px 14px}.spec.on{border-color:var(--pine);background:#eef6f1}.field input{display:block;width:100%;border:0;background:transparent;margin-top:6px}.chat-page{padding-bottom:96px}.chat-thread{display:grid;gap:10px;margin:12px 0}.bubble{border-radius:16px;padding:12px 14px;border:1px solid var(--line);background:var(--card)}.bubble.user{background:#eef6f1}.bubble.ai{background:#fffdf8}.chat-product-list{display:grid;gap:10px;margin-top:10px}.chat-product-card{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:10px;border-radius:12px;border:1px solid var(--line);background:#fff}.chat-product-card img{width:72px;height:72px;object-fit:cover;border-radius:10px}.sheet-backdrop{position:fixed;inset:0;background:#00000059;z-index:40;display:flex;align-items:flex-end}.sheet-panel{width:100%;max-height:78vh;overflow:auto;background:#fffdf8;border-radius:18px 18px 0 0;padding:16px;border:1px solid var(--line)}.seg-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.seg{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px}.seg.on{background:#eef6f1;border-color:var(--pine)}.chip-grid{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.chip{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff}.chip.on{border-color:var(--pine);background:#eef6f1}.trip-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.trip-card{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card)}.plan-page{padding-bottom:24px}.plan-map-wrap{position:relative;margin:12px 0;border-radius:14px;overflow:hidden;border:1px solid var(--line)}.plan-map-canvas{width:100%;height:52vh;min-height:280px;background:#e8eef0}.plan-map-fallback{padding:8px 12px;margin:0}.plan-map-list{margin:0;padding:8px 16px 12px;font-size:13px}.stop-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:8px}.stop-list li{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fffdf8}.feed-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.feed-card{display:block;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card)}.post-body{white-space:pre-wrap;line-height:1.55;margin:12px 0}.post-media img{max-width:100%;border-radius:12px;margin-top:8px}.comment-list{list-style:none;padding:0;display:grid;gap:10px}.comment-list li{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.section-title{font-size:1rem;margin:16px 0 8px}.field.area{min-height:160px;resize:vertical;width:100%;margin-top:8px}.guidebook-text{white-space:pre-wrap;font-size:14px;line-height:1.5;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;max-height:50vh;overflow:auto}
