body{margin:0;padding:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;background:#f2f2f2;color:#2b2b2b}.container{max-width:1500px;margin:0 auto}.card{background:#fff;border:1px solid #d9d9d9;border-radius:2px;padding:4px;margin-bottom:12px}input,button{font-size:14px;border-radius:2px;border:1px solid #d1d5db;padding:0;background:#fff;color:#111827;box-sizing:border-box}button{cursor:pointer}.date-strip{margin:0;display:flex;gap:2px;overflow-x:auto;padding-bottom:0;background:transparent;min-width:0;z-index:1;flex:1 1 auto}.date-chip{white-space:nowrap;font-size:13px;padding:4px 9px;border:1px solid transparent;background:transparent;color:#5b5b5b;border-radius:2px;min-width:30px;line-height:1.1}.date-chip.active{border-color:#e0e0e0;background:#fff;color:#b35454}.field{position:relative;min-width:0;flex:0 0 auto;line-height:0}.autocomplete-wrap{position:relative;width:240px;max-width:100%;z-index:12}.autocomplete-wrap input{width:100%;min-width:0;box-sizing:border-box;border-radius:3px;border:1px solid #dfdfdf;font-size:13px;line-height:22px;padding:0 8px}.autocomplete-wrap input::placeholder{color:#b1b1b1}.autocomplete-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow-y:auto;border:1px solid #d1d5db;border-radius:8px;background:#fff;box-shadow:0 8px 20px #0f172a1f;z-index:10}.autocomplete-item{width:100%;text-align:left;border:none;border-bottom:1px solid #f0f2f4;border-radius:0;background:#fff;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;font-size:13px;cursor:pointer}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.active{background:#e7f1fd}.autocomplete-item small{color:#6b7280;margin-left:10px}.autocomplete-empty{padding:10px;font-size:13px;color:#6b7280}.planner-toolbar{display:flex;align-items:center;gap:8px;border-bottom:1px solid #e1e1e1;padding:2px 4px 5px}.toolbar-left{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;min-width:0;flex:1 1 auto}.timeline-wrap{overflow:hidden;border:1px solid #e5e5e5;border-top:none;border-radius:0 0 2px 2px;background:#fff}.timeline-rows{position:relative}.timeline-row{display:grid;grid-template-columns:clamp(160px,18vw,260px) 1fr;align-items:stretch;min-height:48px;border-top:1px solid #ededed}.timeline-city{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:#2b2b2b;padding:4px 8px 4px 6px;border-right:1px solid #e4e4e4;background:#fff;z-index:4;overflow:hidden}.timeline-city-name{font-size:clamp(14px,1.6vw,21px);font-weight:600;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-city-layout{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px}.timeline-city-left{min-width:0}.timeline-city-right{text-align:right}.timeline-city-head{display:flex;align-items:center;gap:6px}.timeline-city-country{font-size:11px;color:#8a8a8a;font-weight:500;margin-top:2px}.timeline-city-time{font-size:14px;line-height:1;color:#1f2937;font-weight:600}.timeline-city-meta{font-size:11px;font-weight:400;color:#97a0ad;margin-top:2px}.timeline-remove-x{border:none;background:transparent;color:#b5b5b5;cursor:pointer;font-size:13px;line-height:1;padding:0}.timeline-remove-x:hover{color:#555}.timeline-cells{display:grid;grid-template-columns:repeat(24,1fr);position:relative}.timeline-cell{border-left:1px solid #d8e6f7;border-bottom:1px solid #d8e6f7;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:1px 0;min-height:40px;background:#eef4fb;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.timeline-row:first-child .timeline-cell{border-top:1px solid #d8e6f7}.timeline-cell.daylight{background:#eef4fb}.timeline-cell.twilight{background:#edf4fd}.timeline-cell.night{background:#deebfb}.timeline-cell.active{z-index:3}.timeline-selection-indicator-global{position:absolute;top:0;bottom:0;left:0;width:0;border:2px solid #2f9b3f;border-radius:4px;box-sizing:border-box;pointer-events:none;z-index:6;transition:left .12s ease,width .12s ease,border-color .14s ease}.timeline-selection-handle{position:absolute;top:-1px;bottom:-1px;width:2px;background:#2f9b3f;border-radius:2px;cursor:ew-resize;pointer-events:auto;transition:background-color .14s ease}.timeline-selection-handle.left{left:-2px}.timeline-selection-handle.right{right:-2px}.timeline-selection-indicator-global.edge-hover{border-color:#2f9b3f #8fdb9a #2f9b3f #8fdb9a}.timeline-selection-indicator-global.edge-hover .timeline-selection-handle{background:#8fdb9a}.timeline-hover-indicator-global{position:absolute;top:0;bottom:0;left:0;width:0;box-sizing:border-box;border:1px solid #5f86b4;border-radius:4px;box-shadow:inset 0 0 0 1px #5f86b426;transition:left .15s ease,width .15s ease,opacity .12s ease;opacity:0;pointer-events:none;z-index:7}.timeline-hover-indicator-global.visible{opacity:1}.timeline-cell.day-divider:before,.timeline-cell.day-divider:after{content:"";position:absolute;top:-1px;bottom:-1px;width:2px;background:#c0d4ea;pointer-events:none}.timeline-cell.day-divider:before{left:-1px}.timeline-cell.day-divider:after{right:-1px}.timeline-now{position:absolute;top:0;left:50%;transform:translate(-50%);font-size:6px;color:#2f6db1;font-weight:600;background:transparent;padding:0;border-radius:0;z-index:8}.timeline-cell-item{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:.95}.timeline-item-hour{font-size:clamp(12px,1.4vw,18px);font-weight:700;color:#7fa3cb;line-height:1}.timeline-item-period{margin-top:0;font-size:clamp(7px,.7vw,9px);color:#8fa8c8;text-decoration:none;line-height:1;text-transform:lowercase}.timeline-item-tz{margin-top:0;font-style:normal;font-size:clamp(6px,.6vw,8px);color:#a6bbd5;line-height:1}.timeline-date-chip{margin:0;line-height:1.05;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:2px 4px;border-radius:999px;border:1px solid #7ea4cc;background:linear-gradient(180deg,#9cb9da,#7fa4cb)}.timeline-date-top{font-size:clamp(7px,.7vw,9px);font-weight:700;color:#e7f1fc;text-transform:uppercase}.timeline-date-bottom{font-size:clamp(10px,1.1vw,14px);font-weight:700;color:#fff;margin-top:1px}
