:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#20272b;background:#07131f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.38;cursor:not-allowed}input,select{outline:none}.app{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) clamp(352px,29vw,410px)}.preview-area{min-width:0;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:30px;background:radial-gradient(ellipse at 50% 44%,rgba(35,72,94,.47),transparent 48%),radial-gradient(ellipse at 20% 80%,rgba(16,48,73,.42),transparent 48%),#06121e}.video-frame{aspect-ratio:9 / 16;height:min(calc(100dvh - 60px),900px);max-width:100%;overflow:hidden;background:#07131f;border:1px solid rgba(228,246,249,.12);border-radius:11px;box-shadow:0 28px 80px #00000073}.video-frame video{width:100%;height:100%;display:block;object-fit:contain}.edit-rail{min-width:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:#f7f7f4;border-left:1px solid #dce2e2;scrollbar-width:thin}.rail-inner{min-height:100%;max-width:460px;display:flex;flex-direction:column;padding:32px 27px 26px;margin:0 auto}.rail-inner h1{margin:0 0 34px;font-size:26px;letter-spacing:-.025em;font-weight:650;line-height:1.15}.editor-fields{min-width:0;margin:0;padding:0;border:0}.simple-field{display:flex;flex-direction:column;gap:9px}.simple-field>span,.route-head h2{color:#535d61;font-size:15px;font-weight:580}.simple-field>input{width:100%;height:45px;padding:0 14px;color:#1d292c;background:#fff;border:1px solid #d5dbda;border-radius:9px;font-size:16px}.simple-field>input:focus,.place-picker:focus-within,.stop-date:focus{border-color:#6c9a9e;box-shadow:0 0 0 3px #598d9321}.simple-field>input::placeholder,.place-picker input::placeholder{color:#9da8ab}.route-head{margin:30px 0 13px}.route-head h2{margin:0}.route-list{display:block}.route-item-wrap{min-width:0}.route-item{min-width:0;padding:10px 10px 8px;background:#fff;border:1px solid #dce1df;border-radius:10px;transition:border-color .15s,box-shadow .15s}.route-item:focus-within{border-color:#b8ccca;box-shadow:0 4px 18px #17373e0f}.route-item.dragging{opacity:.48}.route-item-main{display:flex;align-items:center;gap:7px;min-width:0}.route-number{flex:0 0 25px;color:#648b8d;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;cursor:grab;-webkit-user-select:none;user-select:none}.route-number:active{cursor:grabbing}.place-picker{position:relative;flex:1;min-width:0;height:37px;border:1px solid transparent;border-radius:7px}.place-picker>svg{display:none}.place-picker input{width:100%;height:100%;padding:0 7px;border:0;background:transparent;color:#172529;font-size:17px;font-weight:600;min-width:0}.place-results{position:absolute;z-index:30;top:39px;left:0;right:0;min-width:190px;max-height:250px;overflow:auto;padding:5px;border:1px solid #d5dfdc;border-radius:9px;background:#fff;box-shadow:0 15px 32px #132b2e2e}.place-results button{width:100%;min-height:40px;display:flex;align-items:center;gap:7px;padding:0 9px;border:0;border-radius:5px;background:transparent;color:#233236;text-align:left;font-size:15px}.place-results button:hover,.place-results button:focus{background:#edf3f1}.place-results button svg{display:none}.place-empty{padding:12px 8px;color:#778487;font-size:14px}.stop-actions{display:flex;align-items:center;flex:0 0 auto}.stop-actions button,.small-close{width:25px;height:28px;display:grid;place-items:center;padding:0;color:#5c6b6e;background:transparent;border:0;border-radius:5px}.stop-actions button:hover:not(:disabled),.small-close:hover{background:#edf2f0;color:#182a2d}.stop-date{display:block;width:calc(100% - 32px);height:28px;margin:2px 0 0 32px;padding:0 5px;border:1px solid transparent;border-radius:5px;background:transparent;color:#69767a;font-size:14px;color-scheme:light}.route-leg{height:35px;display:flex;align-items:center;gap:7px;margin-left:21px;color:#688d90}.route-line{width:1px;align-self:stretch;background:#a9c3c2;margin-right:7px}.route-leg select{height:28px;padding:0 20px 0 6px;border:0;border-radius:5px;background:transparent;color:#4e666b;font-size:14px}.route-leg select:hover,.route-leg select:focus{background:#e8efec}.add-stop{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:44px;margin-top:12px;border:1px dashed #a5bbba;border-radius:9px;background:transparent;color:#416e72;font-size:15px;font-weight:600}.add-stop:hover:not(:disabled){background:#edf3f0}.add-place-box{display:flex;align-items:center;gap:6px;margin-top:12px;padding:2px 7px;height:44px;background:#fff;border:1px solid #b3c6c4;border-radius:9px}.add-place-box .place-picker{flex:1}.rail-actions{margin-top:auto;padding-top:25px}.generate-button,.download-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:9px;font-size:16px;font-weight:650;text-decoration:none}.generate-button{color:#fff;background:#18383f;border:1px solid #18383f}.generate-button:hover:not(:disabled){background:#28535a}.generate-button:disabled{opacity:1;cursor:progress}.download-button{margin-top:10px;color:#204b52;background:#eef4f1;border:1px solid #b8cfca}.download-button:hover{background:#e0ede8}.toast{position:fixed;z-index:60;left:50%;bottom:23px;transform:translate(-50%);max-width:min(88vw,460px);display:flex;align-items:center;gap:12px;padding:12px 13px 12px 17px;border-radius:9px;background:#182e34;box-shadow:0 15px 35px #00000040;color:#fff;font-size:14px}.toast button{display:grid;place-items:center;padding:2px;border:0;background:transparent;color:#fff}@media (max-width: 760px){.app{display:flex;flex-direction:column}.preview-area{min-height:0;height:66dvh;padding:14px}.video-frame{height:min(calc(66dvh - 28px),700px)}.edit-rail{height:auto;min-height:34dvh;overflow:visible;border-left:0;border-top:1px solid #dce2e2}.rail-inner{width:min(100%,500px);padding:27px 22px 30px}.rail-inner h1{margin-bottom:25px}}@media (max-width: 380px){.rail-inner{padding-left:15px;padding-right:15px}.stop-actions button{width:23px}}
