:root{--bg:#0b1220;--surface:#121a2b;--surface-2:#1b2742;--line:#1b2742;--primary:#3264ff;--primary-press:#2c61fe;--on-primary:#fff;--primary-soft:#8faeff;--text:#f0f2f5;--text-2:#8592a6;--star:#ffb21e;--ok:#3fcf8e;--danger:#ff5c5c;--r-card:12px;--gutter:16px;--tabbar-h:60px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,PingFang TC,Noto Sans TC,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px)}.num{font-variant-numeric:tabular-nums}@media (hover:hover){.chip:hover{background:#24345a}.chip[aria-pressed=true]:hover,.btn-primary:hover{background:var(--primary-press)}.icon-btn:hover span{filter:brightness(1.2)}}body{background:var(--bg);min-height:100dvh;margin:0}h1,h2,h3,p{margin:0}h1{font-size:22px;font-weight:500}h2{font-size:17px;font-weight:500}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--primary-soft);outline-offset:2px;border-radius:6px}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 16px) var(--gutter) calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px);flex-direction:column;gap:12px;margin:0 auto;display:flex}.muted{color:var(--text-2);font-size:13px}.small{font-size:13px}.card{background:var(--surface);border-radius:var(--r-card);padding:12px 14px}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:10px;display:flex}.chips{scrollbar-width:none;overscroll-behavior-x:contain;gap:8px;display:flex;overflow-x:auto}.chip{background:var(--surface-2);min-height:32px;color:var(--primary-soft);border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 14px;font-size:13px;transition:background-color .15s,transform .1s;display:inline-flex}.chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.chip:active{transform:scale(.97)}.btn-primary{background:var(--primary);min-height:44px;color:var(--on-primary);border-radius:999px;justify-content:center;align-items:center;gap:6px;font-weight:500;transition:background-color .15s,transform .1s;display:flex}.btn-primary:active{background:var(--primary-press);transform:scale(.98)}.icon-btn{color:var(--primary-soft);flex-direction:column;align-items:center;gap:4px;min-width:52px;font-size:12px;display:flex}.icon-btn span{background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.icon-btn.primary span{background:var(--primary);color:var(--on-primary)}.photo-ph{background:var(--surface-2);color:var(--text-2);justify-content:center;align-items:center;display:flex}.star{color:var(--star)}.ok{color:var(--ok)}.link{color:var(--primary-soft)}.auth-banner{max-width:560px;margin:calc(env(safe-area-inset-top) + 8px) auto 0;color:#ffd0d0;background:#3a1d1d;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;display:flex}.auth-banner .link{flex:none;min-height:32px}.auth-banner-x{color:#ffd0d0;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}@media (width<=592px){.auth-banner{margin-left:var(--gutter);margin-right:var(--gutter)}}.toast-wrap{z-index:40;pointer-events:none;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);padding:0 var(--gutter);justify-content:center;display:flex;position:fixed}.toast{pointer-events:auto;color:var(--text);background:#24345a;border-radius:12px;align-items:center;gap:14px;padding:10px 14px;font-size:14px;animation:.2s ease-out toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.sheet-backdrop{z-index:30;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{overscroll-behavior:contain;background:var(--surface);width:100%;max-width:560px;max-height:92dvh;padding:10px var(--gutter) calc(env(safe-area-inset-bottom) + 16px);border-radius:18px 18px 0 0;flex-direction:column;gap:12px;animation:.22s ease-out sheet-in;display:flex;overflow-y:auto}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}.sheet-grip{background:var(--surface-2);border-radius:2px;align-self:center;width:40px;height:4px}.field{background:var(--surface-2);border-radius:10px;flex-direction:column;flex:1;gap:2px;min-width:0;padding:6px 10px;display:flex}.field input{color:var(--text);font:inherit;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0;border:0;width:100%;padding:2px 0;font-size:16px}.field input:focus,.field select:focus{outline:none}.field select{color:var(--text);font:inherit;background:0 0;border:0;width:100%;padding:2px 0;font-size:16px}.field select option{background:var(--surface);color:var(--text)}.create-trip{flex-direction:column;gap:10px;display:flex}.btn-primary:disabled{opacity:.6}.btn-danger{min-height:44px;color:var(--danger);background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:6px;transition:background-color .15s;display:flex}.btn-danger:active{background:#3a1d1d}@media (hover:hover){.btn-danger:hover{background:#3a1d1d}}.cal-nav:disabled{opacity:.35}.panel{flex-direction:column;gap:12px;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stop-photo{border-radius:var(--r-card);background:var(--surface-2);height:180px;position:relative;overflow:hidden}.stop-photo img{object-fit:cover;width:100%;height:100%;display:block}.stop-photo .photo-ph{width:100%;height:100%}.photo-busy{background:#0b1220a6;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.photo-pick{cursor:pointer;justify-content:center;position:relative}.photo-pick:focus-within{outline:2px solid var(--primary-soft);outline-offset:2px}.photo-pick[aria-disabled=true]{opacity:.6;pointer-events:none}.seg{background:var(--surface);border-radius:999px;padding:3px;display:flex}.seg button{min-height:38px;color:var(--text-2);border-radius:999px;flex:1;justify-content:center;align-items:center;gap:4px;font-size:14px;transition:background-color .15s,color .15s;display:inline-flex}.seg button[aria-selected=true],.seg button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}@media (hover:hover){.seg button:not([aria-selected=true]):not([aria-pressed=true]):hover{color:var(--text)}}.expense-row{text-align:left;width:100%;transition:background-color .15s}.expense-row:active{background:var(--surface-2)}@media (hover:hover){.expense-row:hover{background:var(--surface-2)}}.field:focus-within{outline:2px solid var(--primary-soft)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.tabbar{z-index:10;background:var(--bg);border-top:.5px solid var(--line);padding:6px 0 calc(env(safe-area-inset-bottom) + 6px);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:96px;min-height:48px;color:var(--text-2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;transition:color .15s;display:flex}.tab.active{color:var(--primary-soft)}.tab.active svg{color:var(--primary)}.home{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 96px)}.trip-cards,.trip-rows{flex-direction:column;gap:10px;display:flex}.trip-card,.trip-row{text-align:left;width:100%;transition:background-color .15s,transform .1s}.trip-card:active,.trip-row:active{transform:scale(.99)}@media (hover:hover){.trip-card:hover,.trip-row:hover{background:#172238}}.trip-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.cover{height:96px;display:flex;position:relative}.cover .badge{position:absolute;top:10px;left:10px}.trip-card-body{flex-direction:column;gap:8px;padding:12px 14px;display:flex}.trip-card-body>span{display:flex}.trip-card-body>.muted{display:block}.trip-name{overflow-wrap:anywhere;font-size:17px;font-weight:500}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid!important}.stats>span{flex-direction:column;min-width:0;display:flex}.stats b{overflow-wrap:anywhere;font-weight:500}.next{border-top:.5px solid var(--line);align-items:center;gap:4px;padding-top:8px;display:flex!important}.trip-row{flex-direction:column;gap:4px;padding:12px 14px;display:flex}.trip-row .trip-name{font-size:15px}.trip-row b{font-weight:500}.badge{border-radius:999px;flex:none;padding:2px 9px;font-size:12px}.badge.soon{background:var(--surface-2);color:var(--primary-soft)}.cover .badge.soon,.badge.now{background:var(--primary);color:var(--on-primary)}.badge.done{color:var(--ok);background:#1c2a20}.past-toggle{align-self:flex-start;gap:4px;min-height:44px}.fab-wrap{z-index:9;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);padding:0 var(--gutter);pointer-events:none;justify-content:center;display:flex;position:fixed}.fab{pointer-events:auto;width:100%;max-width:528px}.cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.check-list{flex-direction:column;margin:8px 0 0;padding:0;list-style:none;display:flex}.check-list li{border-top:.5px solid var(--line);align-items:center;gap:8px;min-height:44px;display:flex}.check-list li:first-child{border-top:0}.check-label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;min-height:44px;display:flex}.check-label input{width:20px;height:20px;accent-color:var(--primary);flex:none}.check-label span{overflow-wrap:anywhere}.check-label .done{color:var(--text-2);text-decoration:line-through}.assignee{background:var(--surface-2);max-width:96px;color:var(--primary-soft);font:inherit;border:0;border-radius:999px;flex:none;min-height:32px;padding:4px 8px;font-size:13px}.icon-x{width:36px;height:36px;color:var(--text-2);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.icon-x:hover{background:var(--surface-2);color:var(--danger)}}.add-row{align-items:stretch;gap:8px;margin-top:10px;display:flex}.poll{flex-direction:column;gap:8px;display:flex}.poll ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.poll-opt{text-align:left;background:var(--surface-2);border-radius:10px;flex-direction:column;gap:6px;width:100%;padding:8px 10px;transition:background-color .15s;display:flex}.poll-opt[aria-pressed=true]{outline:1.5px solid var(--primary)}@media (hover:hover){.poll-opt:hover{background:#24345a}}.bar{background:var(--bg);border-radius:3px;height:6px;display:block;overflow:hidden}.bar>span{background:var(--primary);border-radius:3px;height:100%;transition:width .2s;display:block}.avatars{display:flex}.avatars span{border:2px solid var(--bg);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-left:-8px;font-size:12px;font-weight:500;display:flex}.trip-title{min-width:0;position:relative}.trip-title h1{overflow-wrap:anywhere;align-items:center;gap:4px;display:flex}.trip-switch{opacity:0;cursor:pointer;width:100%;height:34px;font-size:16px;position:absolute;inset:0 0 auto}.trip-switch:focus-visible+p,.trip-title:focus-within h1{outline:2px solid var(--primary-soft);outline-offset:2px;border-radius:6px}.avatars img{border:2px solid var(--bg);border-radius:50%;width:30px;height:30px;margin-left:-8px}.sync-error{max-width:560px;margin:calc(env(safe-area-inset-top) + 8px) auto 0;padding:8px var(--gutter);color:var(--danger);font-size:13px}.nearby{justify-content:space-between;margin-top:8px;display:flex}.day-head{justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}.day-total{color:var(--text);font-size:15px;font-weight:500}.day-head .chip:disabled{opacity:.45}.timeline{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.timeline li{touch-action:manipulation;position:relative}.timeline li.dragging{z-index:5}.timeline li.dragging .stop{outline:1.5px solid var(--primary);background:var(--surface-2)}.stop{align-items:center;gap:6px;padding:8px 12px 8px 2px;display:flex}.grip{color:#5f6b80;cursor:grab;touch-action:none;border-radius:8px;flex:none;justify-content:center;align-items:center;width:40px;height:44px;display:flex}.grip:active{cursor:grabbing;color:var(--primary-soft)}.stop-main{text-align:left;border-radius:8px;flex:1;min-width:0;min-height:44px}.stop-main>span{display:block}.stop-thumb{border-radius:8px;flex:none;width:52px;height:52px;overflow:hidden}.stop-thumb img{object-fit:cover;width:100%;height:100%;display:block}.stop-thumb .photo-ph{width:100%;height:100%}@media (hover:hover){.stop-main:hover .stop-name{color:var(--primary-soft)}}.stop-main .muted{align-items:center;gap:4px;display:flex}.stop-name{overflow-wrap:anywhere;font-weight:500}.lock{color:var(--star)}.late{color:var(--danger)}.price{text-align:right;white-space:nowrap;flex-direction:column;align-items:flex-end;display:flex}.move{align-items:center;gap:6px;padding:0 0 6px 44px;display:flex}.empty{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.trip-actions{grid-template-columns:1fr auto;gap:8px;margin-top:4px;display:grid}.btn-secondary{background:var(--surface-2);min-height:44px;color:var(--primary-soft);border-radius:999px;align-items:center;gap:6px;padding:0 16px;display:flex}.btn-secondary:active{transform:scale(.98)}@media (hover:hover){.grip:hover{color:var(--primary-soft);background:var(--surface-2)}.btn-secondary:hover{background:#24345a}}.day-pick{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.cal-nav{width:36px;height:36px;color:var(--primary-soft);border-radius:50%;justify-content:center;align-items:center;display:flex}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:6px;display:grid}.cal-h{color:var(--text-2);padding:4px 0;font-size:12px}.cal-d{height:38px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:8px;font-size:14px;transition:background-color .15s}.cal-d.in{background:var(--surface-2);color:var(--primary-soft)}.cal-d[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}@media (hover:hover){.cal-d:hover{background:#24345a}.cal-d[aria-pressed=true]:hover{background:var(--primary-press)}}.map-box{border-radius:var(--r-card);background:var(--surface);height:180px;overflow:hidden}.map-box svg{width:100%;height:100%;display:block}.place-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.place-item{align-items:center;gap:8px;padding:10px;display:flex}.place-link{border-radius:8px;flex:1;gap:12px;min-width:0;transition:opacity .15s;display:flex}.place-link:active{opacity:.7}.place-link>div:last-child{overflow-wrap:anywhere;min-width:0}.add-btn{background:var(--primary);width:44px;height:44px;color:var(--on-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background-color .15s,transform .1s;display:flex}.add-btn:active{background:var(--primary-press);transform:scale(.94)}@media (hover:hover){.place-link:hover{opacity:.85}.add-btn:hover{background:var(--primary-press)}}.thumb{border-radius:8px;flex:none;width:76px;height:76px}.stop-name{font-weight:500}.place{max-width:560px;margin:0 auto}.gallery{grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr;gap:2px;height:240px;display:grid;position:relative}.gallery>.photo-ph:first-child{grid-row:span 2}.back{top:calc(env(safe-area-inset-top) + 10px);background:#0000008c;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;left:12px}.credit{background:#0000008c;border-radius:4px;padding:2px 8px;font-size:12px;position:absolute;bottom:8px;left:10px}.place-body{padding-top:16px;padding-bottom:calc(env(safe-area-inset-bottom) + 24px)}.actions{justify-content:space-between;display:flex}.info{flex-direction:column;gap:10px;margin:0;list-style:none;display:flex}.info li{align-items:center;gap:10px;display:flex}.info svg{color:var(--text-2);flex:none}
