:root{--paper:#fff8fb;--card:#fff;--ink:#33242e;--muted:#927985;--rose:#dd5b86;--rose2:#fcdfeb;--lilac:#ece1fb;--cream:#fff0dc;--mint:#dff5ed;--line:#f0dce5;--shadow:0 10px 28px #62304112}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;overscroll-behavior-y:none}button,input,textarea,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:active{transform:translateY(1px)}.hidden{display:none!important}.screen{width:min(760px,100%);min-height:100vh;margin:auto;padding:max(20px,env(safe-area-inset-top)) 16px calc(92px + env(safe-area-inset-bottom))}.hero{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:8px 2px 18px}.hero p,.eyebrow,.modal-head p{margin:0;color:var(--rose);font-size:11px;font-weight:800;letter-spacing:.7px}.hero h1{margin:4px 0 2px;font-size:31px;letter-spacing:-1.2px}.hero small{color:var(--muted)}.actions{display:flex;gap:9px}.round,.fab{border:0;display:grid;place-items:center;background:#fff;box-shadow:0 5px 0 #e8d9df,0 9px 18px #5a243013;color:var(--rose);font-weight:900}.round{width:47px;height:47px;border-radius:17px;font-size:19px}.round i{font-size:10px;font-style:normal;position:absolute;margin-top:27px}.primary-round,.fab{background:linear-gradient(145deg,#ec769d,#cc3f6c);color:#fff;box-shadow:0 5px 0 #b93c62,0 10px 21px #d4567d44}.install-tip{display:flex;align-items:center;gap:10px;background:#fff0f5;border:1px solid #f9d8e5;border-radius:17px;padding:10px 12px;color:#8e6071;font-size:12px;margin-bottom:18px}.install-tip b{color:var(--rose);font-size:18px}.install-tip span{flex:1}.install-tip button{border:0;background:transparent;color:#bc8295;font-size:18px}.home-switch{display:flex;gap:9px;border-bottom:1px solid var(--line);margin-bottom:12px}.home-switch button{border:0;background:transparent;padding:10px 4px;color:var(--muted);font-weight:800}.home-switch button.active{color:var(--rose);border-bottom:3px solid var(--rose)}.heading{display:flex;align-items:end;justify-content:space-between;margin:16px 2px 10px}.heading h2{font-size:18px;margin:0}.heading p{color:var(--muted);font-size:11px;margin:0}.trip-list{display:grid;gap:12px}.trip{border:0;width:100%;text-align:left;padding:11px;background:#fff;border-radius:23px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.trip:active{transform:scale(.985)}.trip.selected{outline:2px solid var(--rose)}.cover{width:78px;height:84px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#f2bad0,#df648e);font-size:29px;overflow:hidden;flex:none}.cover img,.cover-preview img,.thumb img{width:100%;height:100%;object-fit:cover}.cover.lilac{background:linear-gradient(145deg,#d5bff6,#a384d2)}.cover.cream{background:linear-gradient(145deg,#ffe0b4,#f6aa74)}.cover.mint{background:linear-gradient(145deg,#b8e6d4,#65bfa5)}.trip-copy{min-width:0;flex:1}.trip h3{font-size:16px;margin:0 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip p{margin:0 0 7px;color:var(--muted);font-size:12px}.trip small{color:var(--rose);font-size:11px;font-weight:800}.mark{color:var(--muted);font-size:22px}.empty,.setting-card,.map-card,.weather-card{background:#fff;border-radius:21px;padding:20px;text-align:center;box-shadow:var(--shadow);color:var(--muted)}.empty b{display:block;color:var(--rose);font-size:25px;margin-bottom:7px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.quick{border:0;border-radius:17px;background:#fff;min-height:80px;display:grid;place-content:center;gap:6px;color:var(--ink);box-shadow:0 4px 12px #5c183a0c}.quick b{font-size:20px;color:var(--rose)}.quick span{font-size:11px;font-weight:800}.quick:nth-child(1){background:var(--rose2)}.quick:nth-child(2){background:var(--cream)}.quick:nth-child(3){background:var(--lilac)}.quick:nth-child(4){background:var(--mint)}.fab{position:fixed;right:max(20px,calc((100vw - 728px)/2));bottom:max(24px,env(safe-area-inset-bottom));width:58px;height:58px;border-radius:22px;font-size:31px;z-index:4}.detail{position:fixed;inset:0;z-index:5;background:var(--paper);overflow:auto;overscroll-behavior:contain}.detail-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;background:#fff8fbee;backdrop-filter:blur(12px);padding:5px 0 10px}.detail-head>div{text-align:center;min-width:0;max-width:65%}.detail-head h2{margin:0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-head small{color:var(--muted);font-size:11px}.plain{border:0;background:transparent;color:var(--rose);padding:9px;font-weight:800}.back{font-size:34px;line-height:16px}.summary{background:linear-gradient(135deg,#fff,#fff0f5);padding:16px 17px;border-radius:21px;box-shadow:var(--shadow);margin:4px 0 13px}.summary b{font-size:18px}.summary p{margin:6px 0 0;color:var(--muted);font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip,.badge{display:inline-flex;align-items:center;gap:3px;padding:4px 8px;border-radius:99px;background:var(--rose2);color:#b94b72;font-size:11px;font-weight:800}.tabs{display:flex;gap:4px;background:#f4eaf0;padding:4px;border-radius:16px;position:sticky;top:55px;z-index:2}.tabs button{border:0;background:transparent;min-width:0;flex:1;padding:10px 4px;border-radius:12px;color:var(--muted);font-size:12px;font-weight:800}.tabs button.active{background:#fff;color:var(--rose);box-shadow:0 2px 8px #7c3f5814}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:16px 0 10px;gap:9px}.toolbar h3{margin:0;font-size:17px}.toolbar .hint{margin:3px 0 0;color:var(--muted);font-size:11px}.add{border:0;border-radius:15px;padding:10px 13px;background:linear-gradient(145deg,#ec769d,#cc3f6c);box-shadow:0 3px 0 #b93c62;color:#fff;font-weight:900;white-space:nowrap}.timeline{display:grid;gap:10px}.day-separator{font-size:12px;color:#a96782;font-weight:900;margin:8px 2px 0}.place{background:#fff;border-radius:19px;padding:12px;display:flex;gap:10px;align-items:flex-start;box-shadow:0 5px 16px #5a243009}.place-photo{width:60px;height:60px;flex:none;border-radius:14px;background:var(--rose2);display:grid;place-items:center;overflow:hidden;font-size:24px}.time{width:45px;flex:none;color:var(--rose);font-size:12px;font-weight:900;padding-top:5px}.place-main{min-width:0;flex:1}.place-main b{font-size:15px}.place-main p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45;word-break:break-word}.place-note{white-space:pre-wrap}.place-edit{border:0;background:var(--rose2);color:var(--rose);border-radius:11px;padding:8px;font-size:12px}.emptyline{font-size:13px;color:var(--muted);text-align:center;padding:24px}.map-card{margin-top:14px;padding:0;overflow:hidden;text-align:left}.route-map{height:300px}.map-card-copy{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.map-card-copy b{display:block}.map-card-copy small{color:var(--muted)}.transport-toggle{display:flex;gap:7px;padding:12px 12px 0;overflow-x:auto}.transport-toggle button{border:0;border-radius:12px;background:#f7eef2;color:var(--muted);padding:8px 10px;font-size:12px;white-space:nowrap}.transport-toggle button.active{background:var(--rose);color:#fff}.route-info{padding:9px 14px 13px;color:var(--muted);font-size:12px}.marker-number{border:0!important;background:transparent!important}.marker-number span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--rose);color:#fff;font-weight:900;border:3px solid white;box-shadow:0 2px 7px #79304766}.check-row,.expense,.order-row{background:#fff;border-radius:16px;padding:12px;display:flex;align-items:center;gap:10px;margin-bottom:9px;box-shadow:0 4px 13px #5a243008}.check-row input{width:19px;height:19px;accent-color:var(--rose)}.check-row span{flex:1}.check-row.done span{text-decoration:line-through;color:var(--muted)}.mini-delete{border:0;background:transparent;color:#c64262;font-size:18px}.budget-total{background:linear-gradient(135deg,#e16a91,#9e79b6);color:#fff;border-radius:21px;padding:20px;margin:16px 0}.budget-total b{font-size:30px;display:block;margin-top:5px}.category{display:flex;justify-content:space-between;background:#fff;border-radius:14px;padding:12px;margin:8px 0}.budget-chart{height:9px;background:#f1e6eb;border-radius:99px;overflow:hidden;margin:6px 0 14px}.budget-chart i{display:block;height:100%;background:linear-gradient(90deg,#ee7ca0,#b783cb);border-radius:inherit}.more-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.more-grid button{border:0;background:#fff;border-radius:18px;padding:16px;text-align:left;box-shadow:var(--shadow);color:var(--ink);font-weight:800}.more-grid b{display:block;color:var(--rose);font-size:20px;margin-bottom:7px}.overlay{position:fixed;inset:0;z-index:20;background:#30242b78;display:flex;align-items:flex-end;justify-content:center}.modal{width:min(760px,100%);max-height:93vh;overflow:auto;background:var(--paper);border-radius:28px 28px 0 0;padding:20px 17px calc(env(safe-area-inset-bottom) + 20px);box-shadow:0 -10px 40px #1e071023}.modal.small{max-width:560px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:9px}.modal h2{margin:3px 0 0;font-size:21px}.close{border:0;background:#fff;border-radius:50%;width:37px;height:37px;color:var(--muted);font-size:25px}.soft-copy{font-size:13px;color:var(--muted);line-height:1.55}label{display:grid;gap:6px;margin-top:11px;color:#a66682;font-size:12px;font-weight:900}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px;outline:none;box-shadow:inset 0 1px 0 #fff}textarea{resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.submit,.secondary,.danger{border:0;border-radius:16px;padding:14px;margin-top:16px;width:100%;font-weight:900}.submit{background:linear-gradient(145deg,#ec769d,#cc3f6c);color:#fff;box-shadow:0 4px 0 #b93c62}.secondary{background:var(--cream);color:#8d5a44}.danger{background:#c64262;color:#fff}.compact{width:auto;margin:0;padding:11px 13px}.cover-picker{background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px;margin-top:12px;display:flex;align-items:center;gap:9px;color:#a66682;font-size:12px;font-weight:900}.cover-preview{height:45px;width:54px;border-radius:11px;background:var(--rose2);display:grid;place-items:center;overflow:hidden;margin-left:auto}.file-pill{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--lilac);color:#755b98;padding:9px 11px;border-radius:12px;cursor:pointer;white-space:nowrap}.file-pill input{display:none}.file-pill.full{margin:10px 0 0;width:100%}.text-btn{border:0;background:transparent;color:var(--rose);font-size:11px;font-weight:800}.map-pick-btn{width:100%;border:1px solid #f3cedc;background:#fff0f5;border-radius:15px;padding:12px;text-align:left;color:#b44871;font-weight:900}.map-pick-btn small{display:block;color:#a27687;font-weight:500;margin-top:2px}.image-strip{display:flex;gap:8px;margin-top:8px;min-height:0}.image-strip .thumb{width:58px;height:58px;border-radius:13px;overflow:hidden;background:var(--rose2)}.map-modal{max-width:760px}.search-row{display:flex;gap:8px}.search-row input{flex:1}.search-row button{border:0;border-radius:14px;background:var(--rose);color:white;font-weight:900;padding:0 15px}.poi-results{max-height:130px;overflow:auto;margin:7px 0}.poi-result{width:100%;border:0;background:#fff;border-radius:12px;padding:9px;text-align:left;margin:4px 0;color:var(--ink)}.poi-result small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.picker-map{height:min(46vh,390px);border-radius:18px;overflow:hidden;border:1px solid var(--line)}.picked-place{min-height:38px;font-size:12px;color:var(--muted);margin:10px 2px}.map-actions{display:flex;justify-content:space-between;gap:10px}.chat{display:grid;gap:8px;margin:10px 0;max-height:220px;overflow:auto}.bubble{max-width:90%;padding:12px 14px;border-radius:18px;font-size:13px;line-height:1.55}.assistant{background:#fff;border:1px solid #f1dce6}.user{background:var(--rose);color:#fff;justify-self:end}.ai-grid details{margin-top:11px;background:#fff;border:1px solid var(--line);padding:11px;border-radius:14px}.ai-grid summary{color:#a66682;font-size:12px;font-weight:900;cursor:pointer}.sticky-actions{position:sticky;bottom:-20px;background:linear-gradient(transparent,var(--paper) 25%);display:grid;grid-template-columns:.8fr 1.4fr;gap:9px;padding:20px 0 0}.sticky-actions .submit,.sticky-actions .secondary{margin:0}.import-preview{background:#fff;border-radius:15px;padding:12px;margin-top:13px;max-height:180px;overflow:auto;font-size:13px}.setting-card{text-align:left;margin:10px 0;padding:15px}.setting-card b{color:var(--ink)}.setting-card p{margin:6px 0;color:var(--muted);font-size:12px}.setting-card .submit,.setting-card .secondary{margin-top:8px}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:50;background:#34252e;color:white;border-radius:99px;padding:10px 16px;font-size:13px;box-shadow:0 5px 20px #0003;max-width:88%;text-align:center}.leaflet-popup-content{font-family:inherit;font-size:13px}.leaflet-control-attribution{font-size:9px!important}.note{color:var(--muted);font-size:11px;text-align:center;line-height:1.5}@media(max-width:380px){.two{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,1fr)}.tabs button{font-size:11px}.cover{width:66px;height:74px}.trip h3{font-size:15px}}/* v10 mobile viewport and AMap refinements */
html,body{width:100%;min-height:100%;overflow-x:hidden}.screen{min-height:100dvh}.detail{min-height:100dvh}.overlay{padding-top:env(safe-area-inset-top)}.picker-map,.route-map{width:100%;background:#f7eef2}.amap-missing{height:300px;display:grid;place-content:center;text-align:center;padding:24px;color:var(--muted);background:linear-gradient(145deg,#fff,#fff0f6)}.amap-missing b{color:var(--rose);font-size:17px;margin-bottom:7px}.amap-brand{font-size:11px;color:#a66682;margin:0 14px 12px}.route-map .amap-logo,.picker-map .amap-logo{opacity:.72}@media(max-width:540px){.screen{width:100%;padding-left:14px;padding-right:14px}.hero{padding-top:calc(6px + env(safe-area-inset-top))}.detail-head{padding-left:0;padding-right:0}.modal{width:100vw;border-radius:25px 25px 0 0}.map-modal{padding-left:14px;padding-right:14px}.picker-map{height:48dvh;min-height:310px}.route-map{height:42dvh;min-height:280px}.trip{border-radius:20px}.cover{width:72px;height:78px}.trip-copy{min-width:0}.trip h3{font-size:16px}.home-switch{position:sticky;top:0;z-index:3;background:var(--paper)}.tabs{top:0}}
.trip{touch-action:manipulation;-webkit-user-select:none;user-select:none}
