:root{--bg:#0b1a33;--surface:#122444;--surface2:#1d3153;--nav:#122444eb;--line:#2b405e;--line-strong:#3a5075;--line-accent:#22d3ee3d;--line-accent-strong:#22d3ee8c;--text:#e6f1ff;--text-2:#a3b4d0;--text-3:#8a9aba;--text-done:#7b8baa;--primary:#22d3ee;--primary-text:#67e8f9;--accent2:#a78bfa;--alert:#ff9db5;--alert-fill:#ff4d7d;--money:#fbbf24;--ok:#34d399;--grad:linear-gradient(135deg, #22d3ee 0%, #a78bfa 100%);--mic-grad:linear-gradient(145deg, #22d3ee, #a78bfa);--on-accent:#06122a;--t-primary:34,211,238;--t-accent2:167,139,250;--t-alert:255,77,125;--t-money:251,191,36;--t-ok:52,211,153;--t-neutral:147,164,195;--scrim:#060e1ea8;--glow:radial-gradient(120% 60% at 50% -10%, #22d3ee1a, transparent 60%);--font:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-d:"Chakra Petch", "Noto Sans SC", sans-serif;--font-n:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--w:480px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}.light{--bg:#faf9fd;--surface:#fff;--surface2:#edf3f3;--nav:#ffffffdb;--line:#dbe6e7;--line-strong:#c8d9da;--line-accent:#0b7f7838;--line-accent-strong:#0b7f788c;--text:#0a0a12;--text-2:#4a5c66;--text-3:#5a6b75;--text-done:#7a8a93;--primary:#0b7f78;--primary-text:#0b7f78;--accent2:#8b2fb0;--alert:#b42318;--alert-fill:#d92d20;--money:#b45309;--ok:#087443;--grad:#0b7f78;--mic-grad:#0b7f78;--on-accent:#fff;--t-primary:11,127,120;--t-accent2:139,47,176;--t-alert:217,45,32;--t-money:180,83,9;--t-ok:8,116,67;--t-neutral:90,107,117;--scrim:#0a0a126b;--glow:none}.light .hero{box-shadow:0 1px 2px #0a0a120a}.light .hero:before,.light .hero:after{display:none}.light .panel{box-shadow:0 1px 2px #0a0a120a}.light .photo{background:linear-gradient(135deg,#e4eeee,#d5e3e4 55%,#e8e4f3)}.light .action{background:linear-gradient(to top, var(--bg) 72%, #faf9fd00)}.light .num,.light .amt{letter-spacing:0;font-weight:700}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}h1,h2,h3,p,.sub,.hint,.s,.t{text-wrap-style:pretty}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}svg{flex-shrink:0}.app{width:100%;max-width:var(--w);background-color:var(--bg);background-image:var(--glow);min-height:100dvh;color:var(--text);font-family:var(--font);flex-direction:column;margin:0 auto;font-size:15px;line-height:1.55;display:flex;position:relative}.d{font-family:var(--font-d)}.num{font-family:var(--font-n);font-variant-numeric:tabular-nums;letter-spacing:.02em}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.money{color:var(--money)}.ok{color:var(--ok)}.alert{color:var(--alert)}.pri{color:var(--primary-text)}.vio{color:var(--accent2)}.top{padding:calc(20px + var(--safe-top)) 20px 12px;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.top h1{letter-spacing:-.3px;margin:0;font-size:28px;font-weight:700;line-height:1.2}.top .sub{color:var(--text-2);margin-top:6px;font-size:12px}.top .acts{flex-shrink:0;align-items:center;gap:8px;display:flex}.top-sub{padding:calc(14px + var(--safe-top)) 12px 10px;z-index:4;background:linear-gradient(to bottom, var(--bg) 80%, transparent);align-items:center;gap:6px;display:flex;position:sticky;top:0}.top-sub .ttl{flex:1;min-width:0;padding:0 4px}.top-sub h1{margin:0;font-size:22px;font-weight:700;line-height:1.25}.top-sub .sub{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.icon-btn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text-2);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn.bare{background:0 0;border-color:#0000}.pip{background:var(--alert-fill);width:8px;height:8px;box-shadow:0 0 8px var(--alert-fill);border-radius:50%;position:absolute;top:10px;right:10px}.content{flex-direction:column;flex:1;gap:12px;padding:4px 20px 24px;display:flex}.content.root{padding-bottom:calc(136px + var(--safe-bottom))}.content.has-action{padding-bottom:calc(150px + var(--safe-bottom))}.stack{flex-direction:column;gap:12px;display:flex}.hstack{align-items:center;gap:10px;display:flex}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.sec{justify-content:space-between;align-items:baseline;gap:8px;margin:10px 2px -2px;font-size:15px;font-weight:700;display:flex}.sec .more{color:var(--text-2);font-size:12px;font-weight:400}.hint{color:var(--text-2);margin:0 2px;font-size:12px;line-height:1.7}.divider{background:var(--line);height:1px}.hero{background:var(--surface);border:1px solid var(--line-accent-strong);border-radius:20px;padding:18px;position:relative;box-shadow:0 0 24px #22d3ee1a}.hero:before{content:"";border-top:2px solid var(--primary);border-left:2px solid var(--primary);border-top-left-radius:20px;width:14px;height:14px;position:absolute;top:-1px;left:-1px}.hero:after{content:"";border-bottom:2px solid var(--accent2);border-right:2px solid var(--accent2);border-bottom-right-radius:20px;width:14px;height:14px;position:absolute;bottom:-1px;right:-1px}.hero.op{border-color:#a78bfa8c;box-shadow:0 0 24px #a78bfa1a}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:6px 16px}.panel.pad{padding:16px}.panel.sel{border-color:var(--line-accent-strong);box-shadow:inset 0 0 0 1px var(--line-accent-strong)}.row{border-bottom:1px solid var(--line);align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 0;display:flex}.row:last-child{border-bottom:0}.row .main{flex:1;min-width:0}.row .t{font-size:15px;font-weight:500;line-height:1.45}.row .s{color:var(--text-2);margin-top:2px;font-size:12px;line-height:1.5}.row .end{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.row>svg{color:var(--text-3)}.row.em{background:rgba(var(--t,var(--t-primary)), .08);width:calc(100% + 32px);box-shadow:inset 3px 0 0 rgb(var(--t,var(--t-primary)));border-bottom-color:#0000;margin:0 -16px;padding:10px 16px 10px 19px}.ico{background:var(--surface2);width:40px;height:40px;color:var(--text-2);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.badge{white-space:nowrap;background:rgba(var(--t,var(--t-neutral)), .12);border:1px solid rgba(var(--t,var(--t-neutral)), .4);height:22px;color:var(--tc,var(--text-2));border-radius:6px;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.tone-primary{--t:var(--t-primary);--tc:var(--primary-text)}.tone-accent2{--t:var(--t-accent2);--tc:var(--accent2)}.tone-alert{--t:var(--t-alert);--tc:var(--alert)}.tone-money{--t:var(--t-money);--tc:var(--money)}.tone-ok{--t:var(--t-ok);--tc:var(--ok)}.tone-neutral{--t:var(--t-neutral);--tc:var(--text-2)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface2);height:32px;color:var(--text-2);white-space:nowrap;border-radius:16px;align-items:center;gap:6px;padding:0 12px;font-size:12px;display:inline-flex}.chip.lg{border-radius:12px;justify-content:center;height:44px;font-size:14px}.chip.on{background:rgba(var(--t,var(--t-primary)), .12);border-color:rgba(var(--t,var(--t-primary)), .55);color:var(--tc,var(--primary-text));font-weight:500}.seg{grid-template-columns:repeat(var(--n,2), minmax(0, 1fr));background:var(--surface2);border-radius:14px;gap:4px;padding:4px;display:grid}.seg>button,.seg>div{height:40px;color:var(--text-2);text-align:center;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-size:14px;display:flex}.seg>.on{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-accent-strong);font-weight:700}.seg.op>.on{box-shadow:inset 0 0 0 1px #a78bfa8c}.btn{height:50px;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);white-space:nowrap;text-align:center;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:700;display:flex}.btn.primary{background:var(--grad);color:var(--on-accent);border-color:#0000}.btn.ghost{background:0 0}.btn.sm{border-radius:12px;height:44px;padding:0 14px;font-size:14px}.btn.danger{color:var(--alert);background:0 0;border-color:#ff4d7d8c}.btn.text{color:var(--text-2);background:0 0;border-color:#0000;font-weight:500}.btn.grow{flex:1}.btn:disabled{opacity:.45}.action{width:100%;max-width:var(--w);padding:14px 20px calc(20px + var(--safe-bottom));background:linear-gradient(to top, var(--bg) 72%, #0b1a3300);z-index:6;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.action .line{gap:10px;display:flex}.action .hint{text-align:center}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--text-2);justify-content:space-between;gap:8px;font-size:12px;display:flex}.input{border:1px solid var(--line);background:var(--surface2);width:100%;min-height:49px;color:var(--text);border-radius:12px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:11px 14px;font-size:16px;display:flex}input.input,textarea.input,select.input{display:block}.input:focus,.input.focus{border-color:var(--line-accent-strong);box-shadow:0 0 0 3px #22d3ee1f}.input::placeholder{color:var(--text-3)}.input.pending{border-style:dashed;border-color:#fbbf2499}textarea.input{resize:vertical;min-height:96px;line-height:1.6}.input.num-in{font-family:var(--font-n);text-align:right}.toggle{background:var(--line-strong);border-radius:14px;flex-shrink:0;width:46px;height:28px;position:relative}.toggle:after{content:"";background:var(--text-2);border-radius:50%;width:20px;height:20px;transition:left .15s;position:absolute;top:4px;left:4px}.toggle.on{box-shadow:inset 0 0 0 1px var(--line-accent-strong);background:#22d3ee59}.toggle.on:after{background:var(--primary);left:22px}.check{border:1.5px solid var(--line-strong);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.check.on{background:var(--primary);border-color:var(--primary);color:var(--on-accent)}.radio{border:1.5px solid var(--line-strong);border-radius:50%;flex-shrink:0;width:22px;height:22px;position:relative}.radio.on{border-color:var(--primary)}.radio.on:after{content:"";background:var(--primary);border-radius:50%;position:absolute;inset:4px}.note{background:rgba(var(--t,var(--t-primary)), .07);border:1px solid rgba(var(--t,var(--t-primary)), .28);color:var(--tc,var(--text-2));border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.7;display:flex}.note svg{margin-top:3px}.big{font-family:var(--font-d);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.15}.mid{font-family:var(--font-d);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.2}.amt{font-family:var(--font-n);font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;font-size:15px;font-weight:500}.tabbar{width:calc(min(100%, var(--w)) - 24px);left:50%;bottom:calc(16px + var(--safe-bottom));background:var(--nav);border:1px solid var(--line-accent);z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:26px;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;height:72px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 16px 36px -18px #0009}.tab{color:var(--text-2);flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex;position:relative}.tab.on{color:var(--primary);font-weight:700}.mic{background:var(--mic-grad);width:72px;height:72px;color:var(--on-accent);border-radius:50%;justify-content:center;justify-self:center;align-items:center;margin-top:-40px;display:flex;box-shadow:0 0 0 6px #22d3ee1f,0 0 32px #22d3ee73}.scrim{background:var(--scrim);z-index:10;position:fixed;inset:0}.sheet{width:100%;max-width:var(--w);z-index:11;background:var(--surface);border-top:1px solid var(--line-accent);padding:10px 20px calc(24px + var(--safe-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:12px;max-height:88dvh;display:flex;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 -20px 40px #00000059}.grab{background:var(--line-strong);border-radius:2px;width:36px;height:4px;margin:0 auto 4px}.photo{color:var(--text-3);background:linear-gradient(135deg,#1d3153,#16294c 55%,#203a63);border-radius:14px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;display:block}.photo .cap{color:var(--text-2);font-size:11px;position:absolute;bottom:6px;left:8px}.photo .tag{background:var(--scrim);color:var(--text);border-radius:5px;padding:1px 6px;font-size:11px;position:absolute;top:6px;right:6px}.photo .tag.warn{background:rgba(var(--t-money), .92);color:#0a0a12;font-weight:700}.add-photo{color:var(--primary-text);border:1.5px dashed #22d3ee8c;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.fl{border-radius:50%;width:30px;height:30px;display:block;overflow:hidden}.avatar{background:var(--surface2);width:44px;height:44px;color:var(--text);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.lock{color:var(--text-3)}.pgrid{grid-template-columns:minmax(0,1fr) 80px 80px 38px;align-items:center;gap:10px 5px;font-size:14px;display:grid}.pgrid .h{color:var(--text-3);font-size:11px}.r{text-align:right}.dash{border:1.5px dashed rgba(var(--t-money), .7);border-radius:8px}.cell-in{border:1px solid var(--line);background:var(--surface2);text-align:right;width:100%;min-width:0;height:36px;font-family:var(--font-n);border-radius:8px;outline:none;padding:0 6px;font-size:14px}.cell-in:focus{border-color:var(--line-accent-strong)}.toast{left:50%;bottom:calc(110px + var(--safe-bottom));z-index:30;background:var(--surface2);border:1px solid var(--line-accent-strong);color:var(--text);border-radius:12px;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.wheel{height:calc(var(--row) * 5);background:var(--surface2);border-radius:14px;flex-shrink:0;position:relative;overflow:hidden}.wheel-band{left:8px;right:8px;top:calc(var(--row) * 2);height:var(--row);background:rgba(var(--t-primary), .12);border:1px solid rgba(var(--t-primary), .45);pointer-events:none;border-radius:10px;position:absolute}.wheel-scroll{scroll-snap-type:y mandatory;height:100%;padding:calc(var(--row) * 2) 0;box-sizing:border-box;scrollbar-width:none;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 30% 70%,#0000);mask-image:linear-gradient(#0000,#000 30% 70%,#0000)}.wheel-scroll::-webkit-scrollbar{display:none}.wheel-item{width:100%;height:var(--row);scroll-snap-align:center;color:var(--text-3);text-align:center;grid-template-columns:1fr 1fr 1fr;align-items:center;font-size:16px;display:grid}.wheel-item.trip{color:var(--text-2);font-weight:600}.wheel-item.on{color:var(--text);font-weight:700}.wheel-tag{color:var(--primary-text);font-size:12px;font-weight:500}.swipe{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;display:flex;overflow:auto hidden}.swipe::-webkit-scrollbar{display:none}.swipe-item{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%}.swipe-item .photo{border-radius:0}.swipe-cap{color:#fff;text-shadow:0 1px 2px #0009;pointer-events:none;font-size:12px;position:absolute;bottom:8px;left:10px}.swipe-count{color:#fff;pointer-events:none;background:#00000073;border-radius:10px;padding:1px 7px;font-size:11px;position:absolute;bottom:8px;right:10px}.swipe-arrow{color:#fff;background:#00000059;border-radius:16px;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.swipe-arrow.l{left:8px}.swipe-arrow.r{right:8px}.ver-strip{scrollbar-width:none;gap:8px;margin:0 -2px;padding:2px;display:flex;overflow-x:auto}.ver-strip::-webkit-scrollbar{display:none}.ver-card{text-align:left;background:var(--surface2);border:1px solid var(--line);min-width:116px;color:var(--text-2);border-radius:14px;flex-direction:column;flex:none;gap:2px;padding:10px 12px;font-size:14px;display:flex}.ver-card b{color:var(--text);font-weight:700}.ver-card.on{border-color:rgba(var(--t-primary), .7);background:rgba(var(--t-primary), .1);box-shadow:0 0 0 1px rgba(var(--t-primary), .35) inset}.ver-card.on .num:not(.faint){color:var(--text)}.ver-tag{background:rgba(var(--t-primary), .16);color:var(--primary-text);border-radius:8px;padding:0 6px;font-size:11px}@media print{@page{margin:12mm}html,body{background:#fff!important}.toast{display:none!important}.plan-doc{-webkit-print-color-adjust:exact;print-color-adjust:exact}.plan-doc .panel{break-inside:avoid;box-shadow:none}}.hscroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.plan-info+.plan-info{border-top:1px solid var(--line)}.kind-pick{background:var(--surface2);border:1px solid var(--line);height:44px;color:var(--primary-text);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:relative}.kind-pick span{color:var(--text-2);white-space:nowrap;font-size:10px;line-height:1}.kind-pick select{opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px;position:absolute;inset:0}
