:root{--app:#f5f4ee;--brand:#0b7a3b;--brand-light:#e3f4e8;--text:#1a1a1a;--muted:#5f6672;--line:#e5e7eb;--food:#f97316;--food-text:#c2410c;--sight:#3b82f6;--hotel:#8b5cf6;--transport:#6b7280;--shop:#db2777;--other:#6b7280;--danger:#b91c1c;--shadow-soft:0 4px 20px #0000000f;--shadow-sheet:0 -10px 40px #00000026;--tabbar-h:76px;--safe-bottom:env(safe-area-inset-bottom,0px);--fab-size:60px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--app);color:var(--text);margin:0;font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;font-size:18px;line-height:1.5}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.app{max-width:480px;min-height:100vh;margin:0 auto;position:relative}.page{padding-bottom:calc(var(--tabbar-h) + 40px + var(--safe-bottom))}.page.no-tabbar{padding-bottom:calc(32px + var(--safe-bottom))}.page-head{z-index:20;background:var(--app);padding:calc(20px + env(safe-area-inset-top,0px)) 20px 16px;position:sticky;top:0}.page-title{word-break:keep-all;font-size:28px;font-weight:700;line-height:1.3}.page-sub{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:4px;font-size:18px;display:flex}.day-badge-text{color:var(--brand);font-size:20px;font-weight:600}.weather{align-items:center;gap:4px;display:inline-flex}.weather svg{color:#fb923c;width:24px;height:24px}.head-row{align-items:center;gap:12px;display:flex}.head-row .page-title{flex:1}.content{flex-direction:column;gap:20px;padding:0 20px;display:flex}.section-title{font-size:20px;font-weight:600}.muted{color:var(--muted)}.small{font-size:16px}.empty{color:var(--muted);text-align:center;padding:24px 8px}.hint{color:var(--muted);font-size:16px}.error{color:var(--danger);font-weight:600}.demo-note{background:#fff7d6;border:2px dashed #b08900;border-radius:14px;padding:8px 14px;font-size:16px;font-weight:600}.card{box-shadow:var(--shadow-soft);background:#fff;border-radius:20px;padding:20px}.card-flush{box-shadow:var(--shadow-soft);background:#fff;border-radius:20px;overflow:hidden}.btn{cursor:pointer;min-height:56px;color:var(--text);background:#fff;border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:18px;font-weight:600;text-decoration:none;display:inline-flex}.btn svg{flex-shrink:0;width:24px;height:24px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 4px 12px #0b7a3b4d}.btn-soft{background:var(--brand-light);color:var(--brand)}.btn-outline{background:#fff;border:2px solid #d1d5db}.btn-danger{color:var(--danger);background:#fff;border:2px solid #fca5a5}.btn-block{width:100%}.btn-lg{min-height:64px;font-size:20px;font-weight:700}.btn-row{gap:12px;display:flex}.btn-row>.btn{flex:1}.btn-row>.btn.wide{flex:1.5}.icon-btn{width:56px;height:56px;color:var(--brand);cursor:pointer;background:#fff;border:0;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;box-shadow:0 1px 3px #00000014}.icon-btn svg{width:28px;height:28px}.icon-btn.round{background:var(--app);color:var(--text);border-radius:50%}.chip-row{scrollbar-width:none;gap:12px;margin:0 -20px;padding:2px 20px 8px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:20px;flex-shrink:0;min-height:56px;padding:0 24px;font-size:18px;font-weight:600;box-shadow:0 1px 2px #0000000d}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 4px 10px #0b7a3b40}.segmented{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #f0f0f0;border-radius:999px;padding:4px;display:inline-flex}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:48px;padding:0 20px;font-size:16px;font-weight:700}.segmented button.on{background:var(--brand);color:#fff}.segmented.full{display:flex}.segmented.full button{flex:1}.k-sight{--k:var(--sight)}.k-food{--k:var(--food)}.k-hotel{--k:var(--hotel)}.k-transport{--k:var(--transport)}.k-shop{--k:var(--shop)}.k-other{--k:var(--other)}.k-dot{background:var(--k);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.map-box{background:#e8ece4;height:240px;position:relative}.map-box.fullscreen{z-index:80;height:auto;position:fixed;inset:0}.map-canvas{width:100%;height:100%}.map-btn{cursor:pointer;background:#fff;border:0;border-radius:14px;align-items:center;gap:6px;min-height:48px;padding:0 14px;font-size:16px;font-weight:700;display:inline-flex;position:absolute;bottom:12px;right:12px;box-shadow:0 2px 8px #0003}.map-close{top:calc(16px + env(safe-area-inset-top,0px));z-index:5;background:var(--text);color:#fff;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:6px;min-height:56px;padding:0 20px;font-size:18px;font-weight:700;display:inline-flex;position:absolute;right:16px;box-shadow:0 4px 12px #00000059}.map-close svg,.map-btn svg{width:22px;height:22px}.schematic{width:100%;height:100%;display:block}.schematic-note{background:#ffffffeb;border-radius:10px;padding:2px 10px;font-size:16px;font-weight:600;position:absolute;top:12px;left:12px}.gm-marker{color:#fff;cursor:pointer;border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 3px 8px #00000059}.gm-marker svg{width:20px;height:20px}.gm-marker.hotel{width:46px;height:46px}.gm-marker.is-selected{transform:scale(1.25);box-shadow:0 0 0 4px #0b7a3b80,0 3px 8px #00000059}.legend{border-bottom:1px solid #f3f4f6;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 20px;display:flex}.legend span{align-items:center;gap:6px;font-size:16px;font-weight:600;display:inline-flex}.legend .k-dot{width:22px;height:22px}.legend .k-dot svg{width:13px;height:13px}.selected{padding:20px}.selected-top{gap:16px;margin-bottom:16px;display:flex}.selected h3{font-size:20px;font-weight:600;line-height:1.35}.meta-row{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;display:flex}.star{color:var(--food-text);font-weight:700}.map-tip{color:var(--muted);padding:16px 20px;font-size:16px}.thumb{object-fit:cover;background:var(--k,#9ca3af);color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:88px;height:88px;display:flex}.thumb svg{width:40px;height:40px}.thumb.lg{width:100px;height:100px}.reminder{background:var(--brand-light);border-radius:20px;justify-content:space-between;align-items:center;gap:12px;padding:20px;display:flex;box-shadow:0 1px 3px #0000000f}.reminder h3{font-size:20px;font-weight:600}.reminder p{margin-top:4px}.reminder-actions{flex-direction:column;gap:8px;display:flex}.timeline{flex-direction:column;display:flex}.tl-row{gap:14px;padding-bottom:24px;display:flex;position:relative}.tl-row:last-child{padding-bottom:0}.tl-time{text-align:right;flex-shrink:0;width:54px;padding-top:8px;font-size:18px;font-weight:700}.tl-axis{flex-direction:column;align-items:center;display:flex;position:relative}.tl-dot{border:4px solid var(--app);z-index:1;width:40px;height:40px}.tl-dot svg{width:20px;height:20px}.tl-row:not(:last-child) .tl-axis:after{content:"";background:var(--line);width:3px;position:absolute;top:40px;bottom:-24px}.tl-card{text-align:left;min-width:0;box-shadow:var(--shadow-soft);cursor:pointer;background:#fff;border:0;border-radius:20px;flex:1;min-height:56px;padding:18px 20px}.tl-card.hotel{background:var(--brand-light);box-shadow:none;border:1px solid #0b7a3b33}.tl-card h4{font-size:20px;font-weight:600;line-height:1.35}.tl-card p{color:var(--muted);margin-top:4px}.tl-spent{color:var(--brand);margin-top:8px;font-size:16px;font-weight:700;display:inline-block}.timeline.compact .tl-row{padding-bottom:20px}.timeline.compact .tl-time{padding-top:4px}.timeline.compact .tl-dot{border:0;width:32px;height:32px}.timeline.compact .tl-dot svg{width:16px;height:16px}.timeline.compact .tl-row:not(:last-child) .tl-axis:after{width:2px;top:32px;bottom:-20px}.timeline.compact .tl-card{box-shadow:none;background:0 0;border-radius:0;padding:2px 0 4px}.tabbar{width:100%;max-width:480px;height:calc(var(--tabbar-h) + var(--safe-bottom));padding:8px 12px calc(8px + var(--safe-bottom));z-index:50;background:#fff;border-top:1px solid #f3f4f6;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{min-width:72px;min-height:56px;color:var(--muted);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:16px;font-weight:500;text-decoration:none;display:flex}.tab svg{width:28px;height:28px}.tab.active{background:var(--brand-light);color:var(--brand);flex-direction:row;gap:8px;padding:0 20px;font-size:18px;font-weight:700}.tab.active svg{width:24px;height:24px}.tabbar.with-fab{justify-content:space-between;padding-left:8px;padding-right:10px}.tabbar.with-fab .tab{min-width:62px}.tabbar.with-fab .tab.active{padding:0 14px}.fab{width:var(--fab-size);height:var(--fab-size);background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 6px 14px #0b7a3b59}.fab svg{width:36px;height:36px}.banner{z-index:60;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;font-size:18px;font-weight:700;display:flex;position:sticky;top:0}.banner.update{background:var(--brand);color:#fff}.banner.offline{color:var(--text);text-align:center;background:#fff7d6;border-bottom:2px solid #b08900;justify-content:center}.banner.viewer{color:var(--brand);border-bottom:1px solid var(--line);background:#fff;justify-content:center;font-size:16px}.banner button{min-height:48px;color:var(--brand);cursor:pointer;background:#fff;border:0;border-radius:12px;padding:0 16px;font-weight:700}.sheet-backdrop{z-index:90;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--app);width:100%;max-width:480px;max-height:92vh;box-shadow:var(--shadow-sheet);padding:16px 20px calc(32px + var(--safe-bottom));border-radius:32px 32px 0 0;overflow-y:auto}.sheet-handle{background:#d1d5db;border-radius:999px;width:64px;height:6px;margin:0 auto 16px}.sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.sheet-head h2{font-size:26px;font-weight:700;line-height:1.3}.sheet-body{flex-direction:column;gap:16px;display:flex}.facts{background:var(--app);border-radius:16px;flex-direction:column;gap:10px;padding:16px;display:flex}.card .facts{background:var(--app)}.sheet .facts{background:#fff}.fact{gap:12px;display:flex}.fact dt,.fact .fact-label{width:80px;color:var(--muted);flex-shrink:0}.fact dd{overflow-wrap:anywhere;min-width:0;margin:0}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-weight:700}.input{background:#fff;border:2px solid #d1d5db;border-radius:14px;width:100%;min-height:56px;padding:10px 14px;font-size:18px}textarea.input{resize:vertical;min-height:140px}.input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #0b7a3b33}.option-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.option-grid.cols-2{grid-template-columns:repeat(2,1fr)}.option{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:16px;min-height:56px;padding:6px 8px;font-size:18px;font-weight:600}.option.on{border-color:var(--brand);background:var(--brand-light);color:var(--brand)}.stepper{align-items:center;gap:16px;display:flex}.stepper .icon-btn{color:var(--text);border:2px solid var(--line);font-size:28px}.stepper-value{text-align:center;min-width:3em;font-size:22px;font-weight:700}.add-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.add-option{height:100px;box-shadow:var(--shadow-soft);cursor:pointer;background:#fff;border:1px solid #f3f4f6;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex;position:relative}.add-option svg{width:32px;height:32px;color:var(--brand)}.add-option.on{background:var(--brand-light);border:2px solid var(--brand);color:var(--brand);font-weight:700}.badge{background:var(--brand);color:#fff;border-radius:999px;padding:0 12px;font-size:16px;font-weight:700;position:absolute;top:-12px;box-shadow:0 2px 6px #0003}.confirm-card{border:2px solid var(--brand);box-shadow:var(--shadow-soft);background:#fff;border-radius:24px;padding:24px}.confirm-head{color:var(--brand);border-bottom:1px solid #f3f4f6;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:16px;font-size:20px;font-weight:700;display:flex}.confirm-head .k-dot{background:var(--brand);width:40px;height:40px}.confirm-head svg{width:24px;height:24px}.confirm-card h3{margin-bottom:16px;font-size:24px;font-weight:700}.confirm-card .facts{margin-bottom:24px}.food-card{text-align:left;cursor:pointer;border:0;gap:16px;width:100%;padding:16px;display:flex}.food-card .body{flex-direction:column;flex:1;min-width:0;display:flex}.food-card h3{font-size:20px;font-weight:600;line-height:1.35}.food-card .bottom{justify-content:space-between;align-items:flex-end;gap:8px;margin-top:auto;padding-top:6px;display:flex}.pill{white-space:nowrap;background:#f3f4f6;border-radius:999px;padding:4px 12px;font-size:16px;font-weight:700;display:inline-block}.pill.near{background:var(--brand-light);color:var(--brand)}.price{font-weight:700}.city-card{box-shadow:var(--shadow-soft);background:#fff;border-radius:20px;overflow:hidden}.city-cover{color:#fff;align-items:flex-start;height:120px;padding:16px 20px;display:flex;position:relative}.city-cover h3{text-shadow:0 1px 4px #0006;font-size:24px;font-weight:700}.city-toggle{cursor:pointer;background:#fff;border:0;justify-content:space-between;align-items:center;width:100%;min-height:64px;padding:0 20px;font-size:18px;font-weight:600;display:flex}.city-card.current .city-toggle{background:var(--brand-light);color:var(--brand);font-weight:700}.city-toggle svg{width:24px;height:24px;transition:transform .2s}.city-toggle.open svg{transform:rotate(180deg)}.city-days{flex-direction:column;gap:20px;padding:4px 20px 20px;display:flex}.day-block{border-radius:16px;padding:4px 0 0}.day-block.drop-over{background:var(--brand-light);outline:3px dashed var(--brand);outline-offset:4px}.day-block-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.day-block-head a{text-decoration:none}.day-block-title{align-items:center;min-height:48px;font-size:18px;font-weight:700;display:inline-flex}.drag-row{touch-action:none}.drag-grip{width:48px;min-height:48px;color:var(--muted);cursor:grab;touch-action:none;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.drag-grip svg{width:24px;height:24px}.dragging{opacity:.6}.drag-overlay{border:2px solid var(--brand);background:#fff;border-radius:16px;padding:14px 18px;font-weight:700;box-shadow:0 10px 30px #00000040}.tray{box-shadow:var(--shadow-soft);background:#fff;border-radius:20px;padding:16px 20px}.tray-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.tray-item{background:var(--app);border-radius:14px;align-items:center;gap:10px;min-height:56px;padding:4px 8px 4px 4px;display:flex}.tray-item .k-dot{width:32px;height:32px}.tray-item .k-dot svg{width:16px;height:16px}.tray-name{flex:1;min-width:0;font-weight:600}.day-select{background:#fff;border:2px solid #d1d5db;border-radius:12px;max-width:128px;min-height:48px;padding:0 8px;font-size:16px}.total-card{text-align:center;border-top:8px solid var(--brand);padding:24px}.total-card .big{color:var(--brand);margin:8px 0;font-size:48px;font-weight:700;line-height:1.1}.split{border-top:1px solid #f3f4f6;margin-top:20px;padding-top:20px;display:flex}.split>div{flex:1}.split>div+div{border-left:1px solid #f3f4f6}.split .label{color:var(--muted);font-size:16px}.split .value{margin-top:4px;font-size:20px;font-weight:700}.split .value.today{color:var(--food-text)}.cat-bar{background:#f3f4f6;border-radius:999px;height:20px;margin:20px 0 24px;display:flex;overflow:hidden}.cat-bar span{background:var(--k);height:100%}.cat-bar span+span{border-left:2px solid #fff}.cat-list{flex-direction:column;gap:16px;display:flex}.cat-row{align-items:center;gap:12px;display:flex}.cat-row .swatch{background:var(--k);border-radius:50%;width:20px;height:20px}.cat-row .name{flex:1}.cat-row strong{font-weight:700}.records{flex-direction:column;gap:20px;display:flex}.record{justify-content:space-between;align-items:center;gap:12px;display:flex}.record-left{align-items:center;gap:16px;min-width:0;display:flex}.record-icon{background:var(--k);color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.record-icon svg{width:30px;height:30px}.record h4{font-size:18px;font-weight:600}.record-amount{white-space:nowrap;font-size:20px;font-weight:700}.record .icon-btn{width:48px;height:48px;color:var(--danger)}.placeholder-card{box-shadow:none;text-align:center;border:2px dashed #d1d5db;font-weight:600}.summary-sheet{background:var(--app);flex-direction:column;gap:20px;padding-bottom:4px;display:flex}.bars{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.bar-row{grid-template-columns:4.5em 1fr auto;align-items:center;gap:10px;display:grid}.bar-label{flex-direction:column;font-weight:700;line-height:1.3;display:flex}.bar-label span{color:var(--muted);font-size:16px;font-weight:400}.bar-track{background:#f3f4f6;border-radius:999px;height:24px;overflow:hidden}.bar-fill{background:var(--brand);border-radius:999px;height:100%;display:block}.pie{flex-direction:column;align-items:center;gap:16px;display:flex}.pie svg{width:200px;max-width:70%}.driver{min-height:100vh;padding:calc(24px + env(safe-area-inset-top,0px)) 24px calc(32px + var(--safe-bottom));background:#fff;flex-direction:column;display:flex}.driver-body{text-align:center;flex-direction:column;flex:1;justify-content:center;padding:24px 0;display:flex}.driver-pill{background:var(--brand-light);color:var(--brand);border-radius:999px;align-self:center;margin-bottom:32px;padding:8px 24px;font-size:20px;font-weight:700}.driver-name{overflow-wrap:anywhere;margin-bottom:24px;font-size:48px;font-weight:700;line-height:1.1}.driver-divider{background:var(--brand);border-radius:999px;width:64px;height:6px;margin:0 auto 24px}.driver-address{overflow-wrap:anywhere;margin-bottom:40px;font-size:40px;font-weight:700;line-height:1.2}.driver-zh{background:var(--app);color:var(--muted);border-radius:20px;align-self:center;padding:16px 20px;font-size:24px;font-weight:500}.driver-call{border-radius:24px;width:100%;min-height:80px;font-size:24px;font-weight:700}.driver-call svg{width:32px;height:32px}.menu{flex-direction:column;display:flex}.menu-item{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f3f4f6;align-items:center;gap:16px;width:100%;min-height:64px;padding:8px 4px;font-size:18px;font-weight:600;text-decoration:none;display:flex}.menu-item:last-child{border-bottom:0}.menu-item .k-dot{border-radius:14px;width:44px;height:44px}.menu-item .k-dot svg{width:24px;height:24px}.menu-item .grow{flex:1}.menu-item .count{color:var(--muted);font-weight:500}.share-box{word-break:break-all;background:var(--app);border-radius:12px;padding:10px 14px;font-size:16px}.place-card h3{font-size:20px;font-weight:600}.place-card .tag{color:var(--k);align-items:center;gap:6px;font-size:16px;font-weight:700;display:inline-flex}.inline-icon{flex-shrink:0;width:22px;height:22px}.tap-link{min-height:48px;color:var(--brand);align-items:center;font-weight:600;display:inline-flex}.edit-bar{z-index:70;padding:calc(8px + env(safe-area-inset-top,0px)) 16px 8px 20px;color:#fff;background:#b45309;justify-content:space-between;align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex;position:sticky;top:0}.edit-bar span{align-items:center;gap:6px;min-width:0;display:inline-flex}.edit-bar button{color:#b45309;cursor:pointer;background:#fff;border:0;border-radius:14px;min-width:96px;min-height:52px;padding:0 20px;font-size:20px;font-weight:800;box-shadow:0 2px 6px #0003}.edit-entry{flex-shrink:0;min-height:48px;padding:0 16px}.edit-bar~main .page-head,.banner~main .page-head{position:relative;top:0}.code-boxes{justify-content:center;gap:14px;display:flex}.code-box{width:60px;height:68px;color:var(--brand);background:#fff;border:3px solid #d1d5db;border-radius:16px;justify-content:center;align-items:center;font-size:28px;display:flex}.code-box.filled{border-color:var(--brand)}.keypad{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.keypad button{min-height:68px;box-shadow:var(--shadow-soft);cursor:pointer;background:#fff;border:0;border-radius:18px;font-size:30px;font-weight:700}.keypad button:active{background:var(--brand-light)}.keypad .key-soft{background:var(--app);box-shadow:none;border:2px solid var(--line);font-size:20px}.name-grid{flex-wrap:wrap;gap:12px;display:flex}.name-chip{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:10px;min-height:56px;padding:0 20px;font-size:20px;font-weight:700;display:inline-flex}.name-chip.on{border-color:var(--brand);background:var(--brand-light)}.name-chip input{width:22px;height:22px;accent-color:var(--brand)}.name-dot{background:var(--c,#9ca3af);border-radius:50%;flex-shrink:0;width:14px;height:14px;display:inline-block}.creator-tag{background:color-mix(in srgb, var(--c) 12%, #fff);color:var(--c);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;margin-top:8px;padding:2px 10px;font-size:16px;font-weight:700;display:inline-flex}.btn-danger-solid{background:var(--danger);color:#fff;flex:1.5}.toast{left:50%;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:95;color:#fff;background:#1a1a1a;border-radius:20px;justify-content:space-between;align-items:center;gap:12px;width:calc(100% - 24px);max-width:456px;padding:12px 12px 12px 20px;font-size:18px;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.toast-action{color:#1a1a1a;cursor:pointer;background:#fde68a;border:0;border-radius:16px;flex-shrink:0;min-width:110px;min-height:60px;padding:0 20px;font-size:22px;font-weight:800}.big-actions{flex-direction:column;gap:12px;display:flex}.big-action{border:2px solid var(--line);min-height:84px;box-shadow:var(--shadow-soft);text-align:left;cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:16px;padding:0 20px;font-size:22px;font-weight:700;display:flex}.big-action .k-dot{border-radius:16px;width:52px;height:52px}.big-action .k-dot svg{width:28px;height:28px}.big-action small{color:var(--muted);font-size:16px;font-weight:500;display:block}.link-btn{min-height:48px;color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:18px;font-weight:700;text-decoration:underline}.person-row{align-items:center;gap:12px;display:flex}.person-row .name{flex:1;font-weight:700}.more-options summary{min-height:48px;color:var(--brand);cursor:pointer;align-items:center;font-weight:600;display:flex}.more-options[open] summary{margin-bottom:12px}.more-options>:not(summary)+*{margin-top:16px}.phone-number{letter-spacing:.02em;font-size:20px}.code-input{letter-spacing:.5em;text-align:center;font-size:28px}.code-input::placeholder{letter-spacing:normal;font-size:18px}.swipe{border-radius:20px;flex:1;min-width:0;position:relative;overflow:hidden}.swipe-content{z-index:1;touch-action:pan-y;height:100%;display:flex;position:relative}.swipe-content>*{flex:1;min-width:0}.swipe-delete{background:var(--danger);color:#fff;cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:18px;font-weight:700;display:flex;position:absolute;top:0;bottom:0;right:0}.swipe-delete svg{width:26px;height:26px}.swipe-content{background:#fff}.timeline:not(.compact) .swipe{box-shadow:var(--shadow-soft)}.timeline:not(.compact) .swipe .tl-card{box-shadow:none}.city-card>.swipe{border-radius:0}html,body{overflow-x:clip}.sheet,.form-page{overscroll-behavior:contain;touch-action:pan-y pinch-zoom;overflow-x:hidden}.input,.day-select,.money-input input{min-width:0;max-width:100%}input[type=date].input,input[type=time].input{appearance:none;text-align:left;display:block}input[type=date].input::-webkit-date-and-time-value{text-align:left}input[type=time].input::-webkit-date-and-time-value{text-align:left}:root{--glass:#ffffffa8;--glass-strong:#ffffffd1;--glass-border:#ffffffc7;--glass-shadow:0 8px 30px #3c322814, inset 0 1px 0 #ffffffd9;--blur:blur(22px) saturate(170%)}body{background:#f6f3ee}.bg-glow{z-index:-1;pointer-events:none;background:radial-gradient(42% 32% at 12% 8%,#0b7a3b29,#0000 70%),radial-gradient(40% 30% at 92% 18%,#f9731629,#0000 70%),radial-gradient(46% 34% at 80% 72%,#8b5cf624,#0000 70%),radial-gradient(44% 34% at 10% 88%,#3b82f621,#0000 70%),#f6f3ee;position:fixed;inset:0}.card,.card-flush,.city-card,.tray,.tl-card,.confirm-card,.add-option,.big-action,.option,.name-chip,.chip,.segmented,.nearby-item,.keypad button,.btn-outline,.code-box{background-color:var(--glass);border-color:var(--glass-border)}.card,.card-flush,.city-card,.tray,.confirm-card,.big-action,.add-option,.tl-card{border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.input,.day-select,.money-input input{background-color:var(--glass-strong);border-color:#78787847}.input:focus{background-color:#fff}.chip.on,.segmented button.on,.btn-primary,.fab{box-shadow:0 6px 16px #0b7a3b40}.option.on,.name-chip.on,.add-option.on{background:#e3f4e8b8;border-color:#0b7a3b8c}.reminder,.total-card,.confirm-card,.city-card,.city-card.current,.tl-card,.food-card,.big-action{background-image:none}.reminder{background-color:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.total-card{border-top:1px solid var(--glass-border)}.confirm-card{border:2px solid #0b7a3b73}.tl-card.hotel{background-color:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.city-cover{color:var(--text);background:0 0;align-items:center;gap:12px;height:auto;min-height:72px}.city-cover:before{content:"";background:var(--glow);width:14px;height:14px;box-shadow:0 0 0 4px color-mix(in srgb, var(--glow) 18%, transparent);border-radius:50%;flex-shrink:0}.city-cover h3{text-shadow:none}.city-card.current{border:2px solid #0b7a3b8c}.city-toggle,.city-card.current .city-toggle{background:0 0}.city-card .swipe-content,.timeline .swipe-content{background-color:#fffffff0}.page-head{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#f6f3eeb8}.tabbar{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-top:1px solid var(--glass-border);background:#ffffffad;box-shadow:0 -6px 24px #3c32280f}.tab.active{background:radial-gradient(120% 140% at 50% 140%,#0b7a3b47,#0000 70%),#ffffffd9;box-shadow:0 2px 10px #0b7a3b26,inset 0 1px #fff}.sheet{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-top:1px solid var(--glass-border);background:#f6f3eedb}.sheet-backdrop{background:#1e1e1e47}.facts,.sheet .facts{background:#ffffff8c}.toast{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#1a1a1acc;border:1px solid #ffffff1f}.edit-bar{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#b45309e0;box-shadow:0 6px 20px #b453094d}.banner.update{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#0b7a3be0}.banner.offline,.banner.viewer{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#ffffffb8}.map-btn,.schematic-note{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#ffffffc7}.icon-btn{background-color:#ffffffc7}.icon-btn.round{background-color:#fff9}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.page-head,.sheet{background:var(--app)}.tabbar{background:#fff}}@media (prefers-reduced-transparency:reduce){.page-head,.sheet{background:var(--app);-webkit-backdrop-filter:none;backdrop-filter:none}.tabbar,.card,.card-flush,.city-card,.tl-card,.reminder,.confirm-card,.big-action{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#fff}}@media (prefers-contrast:more){.card,.card-flush,.city-card,.tl-card,.reminder,.confirm-card,.big-action,.tabbar,.sheet{background-color:#fff;border:2px solid #1a1a1a}.muted,.hint{color:#333}}.page-title,.driver-name,.driver-address,.total-card .big{letter-spacing:-.01em}.total-card .big,.stat-value{font-variant-numeric:tabular-nums}.join-code-box{background:#e3f4e899;border:1px solid #0b7a3b40;border-radius:16px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.join-code{letter-spacing:.12em;color:var(--brand);font-variant-numeric:tabular-nums;font-size:34px;font-weight:800}.glass{-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);background:#ffffff9e;border:1px solid #ffffff8c;box-shadow:0 8px 28px #1e281e1f}.btn-glass{color:var(--brand);background:#fff9;border:1px solid #0b7a3b1f}.home{pointer-events:none;position:relative}.home>*{pointer-events:auto}.home-map{z-index:0;pointer-events:auto;background:#e8ece4;width:100%;max-width:480px;height:100lvh;position:fixed;top:0;left:50%;transform:translate(-50%)}.home-map .schematic-note{font-size:16px;top:calc(19% + 10px);left:auto;right:12px}.home-head,.map-tools,.home-content{z-index:1;position:relative}.home-head{top:calc(12px + env(safe-area-inset-top,0px));z-index:20;margin:calc(16px + env(safe-area-inset-top,0px)) 16px 0;border-radius:24px;padding:18px 20px;position:sticky}.edit-bar~main .home-head,.banner~main .home-head{margin-top:12px;position:relative;top:0}.home-head .page-title{font-size:26px}.map-tools{flex-direction:column;gap:10px;margin-top:max(24px,100svh - 450px);padding:0 16px 16px;display:flex}.map-tools .legend{border-bottom:1px solid #ffffff8c;border-radius:20px;flex-wrap:nowrap;gap:2px;padding:4px}.legend-chip{min-width:0;min-height:48px;color:var(--text);white-space:nowrap;cursor:pointer;transition:background-color .18s var(--ease-out), transform var(--press-ms) var(--ease-out);background:0 0;border:0;border-radius:16px;flex:1;justify-content:center;align-items:center;gap:5px;padding:0 4px;font-size:16px;font-weight:700;display:inline-flex}.legend-chip:active{transform:scale(.96)}.legend-chip.on{box-shadow:0 2px 10px #1e281e24, inset 0 0 0 2px var(--brand);background:#fffffff2}.map-tools-row{gap:10px;display:flex}.glass-btn{min-height:52px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);background:#ffffffb8;border:1px solid #fff9;border-radius:16px;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:17px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 6px 20px #1e281e1f}.glass-btn svg{flex-shrink:0;width:20px;height:20px}.map-tools .map-tip{text-align:center;color:var(--text);text-shadow:0 0 8px #ffffffe6;padding:0 4px;font-weight:600}.home-content{transition:opacity .26s var(--ease-out), transform .26s var(--ease-out);gap:14px;padding:0 16px}.home .reminder{-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);background:#ffffff9e;border:1px solid #ffffff8c;box-shadow:0 8px 28px #1e281e1f}.home .reminder .icon-btn{color:var(--brand);background:#ffffffd1;border-radius:14px;box-shadow:0 1px 3px #00000014}.home .demo-note,.glass-note{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff9e;border-radius:16px;padding:12px 16px}.day-plan{border-radius:24px;padding:18px 16px 20px 8px}.day-plan .section-title{margin-bottom:14px;padding-left:12px}.day-plan .hint{padding-left:12px}.day-plan .tl-card{background-color:#ffffffb3;border:1px solid #fffc;box-shadow:0 2px 10px #1e281e0f}.day-plan .tl-dot{border-color:#ffffffd9}.day-plan .tl-row:not(:last-child) .tl-axis:after{background:#78787840}.day-plan .tl-time{width:50px}.place-panel{left:50%;bottom:calc(var(--tabbar-h) + var(--safe-bottom));z-index:49;-webkit-backdrop-filter:blur(25px)saturate(170%);backdrop-filter:blur(25px)saturate(170%);width:100%;max-width:480px;transition:transform .32s var(--ease-drawer);background:#ffffffc7;border:1px solid #ffffff80;border-bottom:0;border-radius:32px 32px 0 0;padding:10px 20px 14px;position:fixed;transform:translate(-50%);box-shadow:0 -10px 36px #1e281e24}.place-panel:before{content:"";background:#96969673;border-radius:2px;width:40px;height:4px;margin:0 auto 10px;display:block}@starting-style{.place-panel{transform:translate(-50%)translateY(100%)}}.place-panel.leaving{transition-duration:.22s;transition-timing-function:var(--ease-out);transform:translate(-50%)translateY(100%)}.place-panel .selected{padding:0}.place-panel .selected-top{align-items:flex-start;gap:12px;margin-bottom:14px}.place-panel h3{font-size:21px;font-weight:700}.place-panel .icon-btn.round{flex-shrink:0}.app:has(.place-panel) .tabbar{box-shadow:none;background:#ffffffc7;border-top:1px solid #96969626;border-radius:0}.app:has(.place-panel) .home{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 210px)}.tabbar{-webkit-backdrop-filter:blur(25px)saturate(170%);backdrop-filter:blur(25px)saturate(170%);background:#ffffffbf;border-top:1px solid #ffffff80;border-radius:28px 28px 0 0;box-shadow:0 -8px 30px #1e281e1a}.tab{color:#4b5563f2;font-weight:700}.tab.active{background:var(--brand);color:#fff;min-height:48px;box-shadow:0 6px 16px #0b7a3b4d}.tab.active svg{color:#fff}@media (prefers-reduced-motion:reduce){.place-panel,.place-panel.leaving{transition:opacity .2s linear;transform:translate(-50%)}.place-panel.leaving{opacity:0}@starting-style{.place-panel{opacity:0;transform:translate(-50%)}}}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.glass,.glass-btn,.home .reminder,.place-panel,.tabbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}}:root{--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--press-ms:.16s}.btn,.chip,.option,.icon-btn,.tab,.fab,.name-chip,.big-action,.add-option,.keypad button,.tl-card,.food-card,.menu-item,.city-toggle,.segmented button,.nearby-item,.map-btn,.map-close,.link-btn,.toast-action,.edit-bar button,.banner button,.swipe-delete{transition:transform var(--press-ms) var(--ease-out), background-color .15s ease, color .15s ease, border-color .15s ease;-webkit-tap-highlight-color:transparent}.btn:active:not(:disabled),.chip:active,.option:active,.icon-btn:active,.fab:active,.name-chip:active,.add-option:active,.keypad button:active,.segmented button:active,.map-btn:active,.map-close:active,.toast-action:active,.edit-bar button:active,.banner button:active,.swipe-delete:active,.tab:active{transform:scale(.97)}.big-action:active,.tl-card:active,.food-card:active,.menu-item:active,.city-toggle:active,.nearby-item:active{transform:scale(.985)}.city-toggle svg{transition:transform .2s var(--ease-out)}.sheet-backdrop{transition:opacity .28s}.sheet{transition:transform .38s var(--ease-drawer)}@starting-style{.sheet-backdrop{opacity:0}.sheet{transform:translateY(100%)}}.sheet-backdrop.closing{opacity:0;transition-duration:.22s}.sheet-backdrop.closing .sheet{transition:transform .22s var(--ease-out);transform:translateY(100%)}.sheet.dragging{transition:none}.sheet-grab{touch-action:none;cursor:grab}.toast{transition:opacity .25s var(--ease-out), transform .25s var(--ease-out)}@starting-style{.toast{opacity:0;transform:translate(-50%)translateY(16px)}}.toast.leaving{opacity:0;transform:translate(-50%)translateY(16px)}.banner.update{transition:opacity .25s var(--ease-out), transform .25s var(--ease-out)}@starting-style{.banner.update{opacity:0;transform:translateY(-8px)}}.banner.update.leaving{opacity:0;transform:translateY(-8px)}.selected{transition:opacity .18s var(--ease-out)}@starting-style{.selected{opacity:0}}.city-days{transition:opacity .22s var(--ease-out), transform .22s var(--ease-out)}@starting-style{.city-days{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.btn:active:not(:disabled),.chip:active,.option:active,.icon-btn:active,.fab:active,.name-chip:active,.big-action:active,.add-option:active,.keypad button:active,.tl-card:active,.food-card:active,.menu-item:active,.city-toggle:active,.segmented button:active,.nearby-item:active,.map-btn:active,.map-close:active,.toast-action:active,.edit-bar button:active,.banner button:active,.swipe-delete:active,.tab:active{opacity:.75;transform:none}.sheet,.sheet-backdrop.closing .sheet{transition:opacity .2s;transform:none!important}@starting-style{.sheet{opacity:0;transform:none}.city-days,.banner.update{transform:none}.toast{transform:translate(-50%)}}.sheet-backdrop.closing .sheet{opacity:0}.toast.leaving{transform:translate(-50%)}.banner.update.leaving,.city-days{transform:none}.swipe-content{transition-duration:0s!important}}
