*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{height:100vh;overflow:hidden}#root{height:100vh}.app{display:flex;height:100vh;background:#0f1117}.panel{width:280px;min-width:280px;background:#1a1d27;border-right:1px solid #2a2d3a;display:flex;flex-direction:column;gap:0;overflow-y:auto;padding:0 0 16px}.panel-header{padding:20px 16px 12px;border-bottom:1px solid #2a2d3a;position:sticky;top:0;background:#1a1d27;z-index:10}.panel-header h2{font-size:15px;font-weight:700;color:#e8e8e8;letter-spacing:.02em}.map-container{flex:1;position:relative}.map{width:100%;height:100%}.section{padding:12px 16px 0;display:flex;flex-direction:column;gap:6px}.section label{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.08em}.hint{font-size:11px;color:#555;line-height:1.4}.inline-row{flex-direction:row;gap:16px;align-items:flex-start}.inline-row>div{display:flex;flex-direction:column;gap:6px;flex:1}textarea{background:#0f1117;border:1px solid #2a2d3a;border-radius:8px;color:#e0e0e0;font-size:13px;font-family:SF Mono,Menlo,monospace;padding:10px 12px;resize:vertical;line-height:1.6;transition:border-color .2s}textarea:focus{outline:none;border-color:#4a9eff}input[type=range]{width:100%;accent-color:#4a9eff}.color-input{width:40px;height:32px;border:1px solid #2a2d3a;border-radius:6px;cursor:pointer;background:none;padding:2px}.btn-group{display:flex;gap:6px}.btn-group button{flex:1;padding:7px 8px;background:#0f1117;border:1px solid #2a2d3a;border-radius:6px;color:#aaa;font-size:12px;cursor:pointer;transition:all .15s}.btn-group button:hover{border-color:#4a9eff;color:#e0e0e0}.btn-group button.active{background:#4a9eff;border-color:#4a9eff;color:#fff;font-weight:600}.generate-btn{margin:16px 16px 0;padding:12px;background:linear-gradient(135deg,#4a9eff,#7c5eff);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.generate-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.reset-key{margin:12px 16px 0;padding:7px;background:none;border:1px solid #2a2d3a;border-radius:6px;color:#555;font-size:11px;cursor:pointer;transition:all .15s}.reset-key:hover{border-color:#ff6b6b;color:#ff6b6b}.status{margin:8px 16px 0;padding:8px 10px;background:#0f1117;border:1px solid #2a2d3a;border-radius:6px;font-size:12px;color:#88c8ff;line-height:1.4}.status.error{color:#ff8080;border-color:#ff404040}.stops-list{padding:6px 12px 0;display:flex;flex-direction:column;gap:5px}.stop-row{display:flex;align-items:center;gap:7px;position:relative}.day-badge{width:32px;min-width:32px;height:28px;border-radius:6px;font-size:11px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:opacity .15s}.day-badge:hover{opacity:.8}.place-input-wrap{flex:1;position:relative}.place-input{width:100%;background:#0f1117;border:1px solid #2a2d3a;border-radius:7px;color:#e0e0e0;font-size:13px;padding:6px 28px 6px 10px;font-family:-apple-system,PingFang SC,sans-serif;transition:border-color .15s}.place-input:focus{outline:none;border-color:#4a9eff}.coord-dot{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:#51cf66;pointer-events:none}.suggestions{background:#1e2130;border:1px solid #3a3d4a;border-radius:8px;list-style:none;z-index:9999;overflow:hidden;box-shadow:0 8px 24px #00000080}.suggestions li{padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:background .1s}.suggestions li:hover{background:#2a2d3a}.sug-hint{cursor:default;opacity:.6}.sug-hint:hover{background:transparent!important}.sug-name{font-size:13px;color:#e0e0e0;font-weight:500}.sug-addr{font-size:11px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delete-btn{width:24px;height:24px;flex-shrink:0;background:none;border:1px solid #2a2d3a;border-radius:5px;color:#555;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.delete-btn:hover{border-color:#ff6b6b;color:#ff6b6b}.detail-group button{font-size:11px;padding:7px 2px}.add-stop-btn{margin-top:4px;padding:7px;background:none;border:1px dashed #2a2d3a;border-radius:7px;color:#555;font-size:12px;cursor:pointer;transition:all .15s;text-align:center}.add-stop-btn:hover{border-color:#4a9eff;color:#4a9eff}.setup-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:#0f1117}.setup-card{background:#1a1d27;border:1px solid #2a2d3a;border-radius:16px;padding:36px;max-width:440px;width:90%;display:flex;flex-direction:column;gap:16px}.setup-card h1{font-size:22px;font-weight:700;color:#e8e8e8}.setup-card p{font-size:14px;color:#888;line-height:1.5}.setup-card ol{padding-left:20px;display:flex;flex-direction:column;gap:8px}.setup-card ol li{font-size:13px;color:#aaa;line-height:1.5}.setup-card ol li strong{color:#e0e0e0}.setup-card input[type=text]{padding:12px 14px;background:#0f1117;border:1px solid #2a2d3a;border-radius:8px;color:#e0e0e0;font-size:14px;font-family:SF Mono,monospace;transition:border-color .2s}.setup-card input[type=text]:focus{outline:none;border-color:#4a9eff}.setup-card button{padding:12px;background:linear-gradient(135deg,#4a9eff,#7c5eff);border:none;border-radius:8px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s}.setup-card button:disabled{opacity:.4;cursor:not-allowed}.footer{display:flex;align-items:center;gap:6px;justify-content:center;padding:12px 0 4px;font-size:11px;color:#555;border-top:1px solid #2a2a2a;margin-top:8px}@media (max-width: 768px){.app{flex-direction:column;height:100dvh;overflow:hidden}.map-container{height:55dvh;flex:none}.panel{width:100%;min-width:unset;border-right:none;border-top:1px solid #2a2d3a;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel-header{padding:12px 16px 10px}.panel-header h2{font-size:14px}.section{padding:10px 16px 0}.stops-list{padding:6px 16px 0}.generate-btn{margin:12px 16px 0}.inline-row{flex-direction:row;gap:12px}.btn-group button{padding:8px 6px;font-size:12px}.footer{padding:10px 0 8px}}
