.tsf{display:flex;flex-wrap:wrap;align-items:stretch;gap:.6rem;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);padding:.6rem;position:relative}.tsf__route{display:flex;align-items:center;gap:.5rem;flex:1 1 340px;min-width:0}.tsf__field{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;border:1px solid var(--c-line);border-radius:10px;padding:.58rem .7rem;background:#fff;position:relative;cursor:text}.tsf__field:hover{border-color:var(--c-accent)}.tsf__field:focus-within{border-color:var(--c-accent);box-shadow:0 0 0 3px #2f9fc929}.tsf__ic{color:var(--c-accent);flex:0 0 auto;display:inline-flex;pointer-events:none}.tsf__input{border:0;background:transparent;font:inherit;font-size:.9rem;font-weight:600;color:var(--c-ink);width:100%;min-width:0;outline:none;-webkit-appearance:none}.tsf__input::placeholder{color:var(--c-muted);font-weight:500}.tsf__swap{flex:0 0 auto;width:36px;height:36px;border:1px solid var(--c-line);border-radius:50%;background:#fff;color:var(--c-accent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s}.tsf__swap:hover{border-color:var(--c-accent);background:var(--c-soft);transform:rotate(180deg)}.tsf__date{flex:0 0 auto;min-width:190px;cursor:pointer;text-align:left;appearance:none;font:inherit}.tsf__val{flex:1;font-size:.9rem;font-weight:600;color:var(--c-ink);white-space:nowrap}.tsf__date.is-set .tsf__val{color:var(--c-accent-ink)}.tsf__chev{color:var(--c-accent);flex:0 0 auto}.tsf__go{flex:0 0 auto;white-space:nowrap;padding-left:1.6rem;padding-right:1.6rem}.tsf--nudge{animation:tsf-nudge .5s ease;border-color:var(--c-accent)!important;box-shadow:0 0 0 3px #2f9fc938}@keyframes tsf-nudge{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.tsf__pop{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:40;background:#fff;border:1px solid var(--c-line);border-radius:12px;box-shadow:var(--shadow-lg);padding:.3rem;max-height:280px;overflow-y:auto}.tsf__pop[hidden]{display:none}.tsf__opt{display:block;width:100%;text-align:left;font:inherit;font-size:.9rem;font-weight:600;color:var(--c-ink);background:none;border:0;border-radius:8px;padding:.55rem .7rem;cursor:pointer}.tsf__opt:hover,.tsf__opt.is-active{background:var(--c-soft);color:var(--c-accent-ink)}@media(max-width:680px){.tsf{flex-direction:column}.tsf__route{flex-direction:column;flex:1 1 auto;align-items:stretch}.tsf__field{flex:1 1 auto}.tsf__date{min-width:0}.tsf__go{width:100%}.tsf__swap{align-self:center}.tsf__swap:hover{transform:rotate(90deg)}.tsf__swap svg{transform:rotate(90deg)}}.tcal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.tcal[hidden]{display:none}.tcal__backdrop{position:absolute;inset:0;background:#0f22338c;backdrop-filter:blur(3px)}.tcal__panel{position:relative;width:min(360px,100%);background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);padding:1.1rem 1.15rem 1.3rem;color:var(--c-ink);animation:tcal-pop .22s cubic-bezier(.2,.8,.3,1.2)}@keyframes tcal-pop{0%{opacity:0;transform:translateY(10px) scale(.97)}}.tcal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem}.tcal__head .script{font-size:1.3rem;line-height:1}.tcal__x{width:34px;height:34px;border:1px solid var(--c-line);border-radius:50%;background:#fff;color:var(--c-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tcal__x:hover{color:var(--c-ink);border-color:var(--c-accent)}.tcal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.tcal__nav span{font-weight:700}.tcal__nav button{width:34px;height:34px;border:1px solid var(--c-line);border-radius:10px;background:#fff;color:var(--c-accent-ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tcal__nav button:hover:not(:disabled){border-color:var(--c-accent);background:var(--c-soft)}.tcal__nav button:disabled{opacity:.3;cursor:default}.tcal__dow,.tcal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.tcal__dow{margin-bottom:4px}.tcal__dow span{text-align:center;font-size:.68rem;font-weight:700;color:var(--c-muted);text-transform:uppercase}.tcal__day{aspect-ratio:1;border:0;background:transparent;font:inherit;font-size:.86rem;font-weight:600;color:var(--c-ink);border-radius:9px;cursor:pointer}.tcal__day:hover:not(:disabled):not(.is-sel){background:var(--c-soft)}.tcal__day:disabled{color:#c2ccd4;cursor:default}.tcal__day.is-sel{background:var(--c-accent);color:#fff}.tcal__grid span{aspect-ratio:1}@media(max-width:520px){.tcal{align-items:flex-end;padding:0}.tcal__panel{width:100%;border-radius:22px 22px 0 0;padding-bottom:1.6rem}}
