:root{--page:#f6f3ec;--card:#fdfcf9;--chip:#f0ece1;--ink:#1b1a17;--ts:#6f6a5e;--tt:#a39c8d;--hair:#e7e1d4;--hair-strong:#d8d0bf;--ana:#c77b28;--bobby:#17808b;--best:#d99c33;--good:#2e7d4f;--bad:#b3402e;--font:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--page)}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit}input,select{color:var(--ink);border:1px solid var(--hair-strong);background:#fff;border-radius:8px;padding:7px 9px;font-family:inherit;font-size:13px}input:focus,select:focus{outline-offset:1px;outline:2px solid #17808b59}label{color:var(--ts);font-size:11px}.hdr{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hair);background:#f6f3eceb;align-items:center;gap:12px;padding:12px 28px;display:flex;position:sticky;top:0}.logo{letter-spacing:-.02em;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.logo .dots{gap:3px;display:inline-flex}.logo .dots i{border-radius:3px;width:9px;height:9px}.tripname{color:var(--ts);background:0 0;border:none;border-radius:6px;min-width:60px;padding:4px 6px;font-size:13px}.tripname:hover{background:var(--chip)}.sp{flex:1}.tabs{background:var(--chip);border-radius:12px;gap:4px;padding:4px;display:flex}.tab{color:var(--ts);background:0 0;border:none;border-radius:9px;padding:7px 16px;font-size:13px;font-weight:500;position:relative}.tab.on{color:var(--ink);background:#fff;box-shadow:0 1px 4px #1e190a14}.tab .lockdot{background:var(--good);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:6px}.wrap{max-width:1500px;margin:0 auto;padding:22px 28px 60px}.cols{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}@media (width<=980px){.cols{grid-template-columns:1fr}.panel{position:static}}.panel{flex-direction:column;gap:14px;display:flex;position:sticky;top:66px}.card{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:18px 20px;box-shadow:0 1px 3px #1e190a0a}.card h2{letter-spacing:-.01em;font-size:16px;font-weight:700}.card .sub{color:var(--ts);margin-top:2px;font-size:12.5px}.chead{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.mono{letter-spacing:.14em;text-transform:uppercase;color:var(--tt);font-size:10px;font-weight:600}.seg{background:var(--chip);border-radius:10px;padding:3px;display:flex}.seg button{color:var(--ts);white-space:nowrap;background:0 0;border:none;border-radius:8px;flex:1;padding:7px 4px;font-size:12px;font-weight:500}.seg button.on{background:var(--ink);color:#fff}.row{align-items:center;gap:8px;margin-top:8px;display:flex}.row label{color:var(--ink);flex:1;align-items:center;gap:7px;font-size:13px;display:flex}.tdot{border-radius:3px;flex:none;width:9px;height:9px}.row select{flex:1;max-width:170px}.linkbtn{color:var(--ana);background:0 0;border:none;padding:2px;font-size:12px;font-weight:600}.pillrow{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.npill{border:1px solid var(--hair-strong);color:var(--ts);background:#fff;border-radius:999px;padding:4px 10px;font-size:11.5px}.npill.on{background:var(--ink);border-color:var(--ink);color:#fff}.npill b{font-weight:600}.btn{border:none;border-radius:11px;width:100%;padding:12px;font-size:14px;font-weight:600;display:block}.btn.primary{background:var(--ink);color:#fff}.btn.ghost{background:var(--chip);color:var(--ink)}.total{letter-spacing:-.03em;font-size:34px;font-weight:700}.split{text-align:right;font-size:12.5px;line-height:1.5}.ovrow{border-bottom:1px solid var(--hair);justify-content:space-between;padding:9px 0;font-size:13px;display:flex}.ovrow:last-child{border-bottom:none}.ovrow .k{color:var(--ts)}.ovrow .v{font-weight:600}.warn{color:#8a5a13;background:#f7ecd9;border-radius:8px;margin:6px 6px 0 0;padding:4px 9px;font-size:11.5px;display:inline-block}.scen{text-align:left;border:1px solid var(--hair);background:#fff;border-radius:12px;align-items:center;gap:14px;width:100%;margin-top:8px;padding:12px 16px;display:flex}.scen:hover{border-color:var(--hair-strong)}.scen.sel{border:2px solid var(--best);background:#fdf8ee}.scen .rank{color:var(--tt);flex:none;width:34px;font-size:12px;font-weight:700}.scen .rank .best{letter-spacing:.1em;color:var(--best);font-size:8.5px;display:block}.scen .price{flex:none;width:78px;font-size:19px;font-weight:700}.scen .meta{min-width:0;color:var(--ts);flex:1;font-size:12px;line-height:1.45}.scen .right{text-align:right;color:var(--tt);flex:none;font-size:11px;line-height:1.5}.badge-locked{color:var(--good);letter-spacing:.08em;background:#e3efe7;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:700}.viz-scroll{padding-bottom:6px;overflow-x:auto}.viz{position:relative}.viz .ruler{border-left:1px solid var(--hair);position:absolute;top:0;bottom:0}.viz .ruler span{color:var(--tt);white-space:nowrap;font-size:10px;position:absolute;top:0;left:4px}.band-seg{border-radius:12px;padding:8px 10px 8px 24px;position:absolute;overflow:hidden}.band-seg .cname{white-space:nowrap;font-size:13.5px;font-weight:700}.band-seg .cnights{opacity:.75;white-space:nowrap;font-size:10.5px}.nightbtns{gap:3px;display:flex;position:absolute;top:6px;right:6px}.nightbtns button{width:18px;height:18px;color:var(--ink);background:#ffffffbf;border:none;border-radius:6px;font-size:12px;line-height:1}.nightbtns button:disabled{opacity:.35;cursor:default}.seam{text-align:center;position:absolute;transform:translate(-50%)}.seam .ic{border:1.5px solid var(--hair-strong);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;margin:0 auto;font-size:12px;display:flex}.seam .st{color:var(--ts);white-space:nowrap;margin-top:34px;font-size:9.5px}.lane-chip{border:1px solid var(--hair);white-space:nowrap;background:#fff;border-radius:9px;padding:5px 8px;font-size:10.5px;line-height:1.4;position:absolute;box-shadow:0 2px 6px #1e190a0f}.lane-chip b{font-size:11px}.lane-chip .dot{border-radius:2.5px;width:7px;height:7px;margin-right:5px;display:inline-block}.meetpill{background:var(--ink);color:#fff;white-space:nowrap;z-index:5;border-radius:999px;padding:5px 11px;font-size:10.5px;font-weight:500;position:absolute;transform:translate(-50%)}.tlabel{font-size:11.5px;font-weight:700;position:absolute}.tlabel small{color:var(--tt);font-size:10px;font-weight:400;display:block}.dstrip{align-items:stretch;gap:0;margin-top:6px;display:flex}.dchipcol{flex-direction:column;justify-content:center;gap:6px;display:flex}.dchip{text-align:center;border-radius:9px;padding:6px 10px;font-size:10.5px;font-weight:700;line-height:1.3}.dchip small{opacity:.75;font-weight:400;display:block}.dcity{text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-self:stretch;min-width:0;padding:12px 10px;display:flex}.dcity b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.dcity small{opacity:.75;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.dtrn{border:1.5px solid var(--hair-strong);z-index:2;background:#fff;border-radius:50%;flex:none;justify-content:center;align-self:center;align-items:center;width:30px;height:30px;margin:0 -2px;font-size:11px;display:flex}.legcard{margin-bottom:16px}.leghead{align-items:center;gap:9px;margin-bottom:10px;display:flex}.leghead h3{font-size:15px;font-weight:700}.legtag{letter-spacing:.12em;color:var(--tt);font-size:9.5px;font-weight:700}.opt{background:var(--chip);border-radius:9px;align-items:center;gap:12px;margin-top:6px;padding:9px 12px;font-size:12.5px;display:flex}.opt b{white-space:nowrap;text-overflow:ellipsis;flex:none;width:150px;font-size:13px;overflow:hidden}.opt .m{width:70px;color:var(--ts);flex:none}.opt .t{color:var(--ts);flex:1}.opt .p{font-weight:700}.opt .x{color:var(--tt);background:0 0;border:none;padding:2px 4px;font-size:13px}.addform{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.addform select,.addform input{flex:none}.addform .grow{flex:1;min-width:110px}.addform .btn-add{background:var(--ink);color:#fff;border:none;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600}.empty{border:1.5px dashed var(--hair-strong);text-align:center;color:var(--ts);border-radius:12px;margin-top:8px;padding:18px;font-size:13px}.setgrid{gap:16px;max-width:860px;display:grid}.trow{flex-wrap:wrap;align-items:center;gap:9px;margin-top:10px;display:flex}.trow .name{width:150px;font-weight:600}.trow .city{text-transform:uppercase;width:76px}.trow span{color:var(--ts);font-size:12px}.crow{background:var(--chip);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;display:flex}.crow .code{text-transform:uppercase;width:64px;font-weight:700}.crow .cityname{width:130px}.crow .staylabel{flex:1;min-width:130px}.crow .num{width:74px}.crow .mini{width:56px}.arrows{flex-direction:column;display:flex}.arrows button{color:var(--ts);background:0 0;border:none;padding:1px 4px;font-size:9px;line-height:1.2}.arrows button:disabled{opacity:.25}.prog{background:var(--chip);border-radius:5px;height:8px;margin-top:10px;overflow:hidden}.prog i{background:var(--good);border-radius:5px;height:100%;transition:width .25s;display:block}.citem{border-bottom:1px solid var(--hair);align-items:center;gap:12px;padding:11px 4px;font-size:13px;display:flex}.citem:last-child{border-bottom:none}.citem input[type=checkbox]{width:17px;height:17px;accent-color:var(--good);flex:none}.citem .ic{background:var(--chip);border-radius:9px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;display:flex}.citem .meta{flex:1;min-width:0}.citem .meta small{color:var(--ts);font-size:11.5px;display:block}.citem .who{width:76px;color:var(--ts);flex:none;font-size:11.5px}.citem .plan{text-align:right;flex:none;width:74px;font-weight:600}.citem .paid{flex:none;width:84px}.citem .delta{text-align:right;flex:none;width:60px;font-size:12px;font-weight:600}.citem.done .meta,.citem.done .plan{opacity:.55}.d-under{color:var(--good)}.d-over{color:var(--bad)}.note{color:var(--ts);font-size:12.5px;line-height:1.55}.bigempty{text-align:center;color:var(--ts);padding:56px 20px;font-size:14px}.bigempty b{color:var(--ink);margin-bottom:6px;font-size:18px;display:block}
