/* Search belongs to the timeline viewport, never to the scaled canvas. */
.project-timeline-search { position: absolute; top: 16px; left: 20px; z-index: 9; width: min(300px, calc(100% - 320px)); min-width: 170px; color: #294c3c; }
.project-timeline-search [hidden] { display: none !important; }
.project-timeline-search .timeline-search-field { display: flex; align-items: center; gap: 9px; height: 46px; margin: 0; padding: 0 12px; box-sizing: border-box; border: 1px solid #cbded2; border-radius: 13px; background: #fcfefdf2; box-shadow: 0 4px 18px #254a3510; backdrop-filter: blur(12px); }
.project-timeline-search .timeline-search-field:focus-within { border-color: #69aa8a; box-shadow: 0 0 0 3px #20825b12; }
.project-timeline-search .timeline-search-icon { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: #658975; stroke-width: 1.8; }
.project-timeline-search input[type="search"] { flex: 1; width: 0; min-width: 0; padding: 0; margin: 0; height: 40px; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent !important; color: #294c3c !important; -webkit-text-fill-color: #294c3c; font: inherit; font-size: 14px; }
.project-timeline-search input::placeholder { color: #6f887b; -webkit-text-fill-color: #6f887b; opacity: 1; }
.project-timeline-search input::-webkit-search-cancel-button { display: none; }
.project-timeline-search .timeline-search-clear { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 7px; color: #527361; background: transparent; font: inherit; font-size: 21px; cursor: pointer; }
.project-timeline-search .timeline-search-clear:hover { background: #e3f0e8; color: #087654; }
.project-timeline-search .timeline-search-spinner { width: 12px; height: 12px; flex: 0 0 12px; box-sizing: border-box; border: 1.5px solid #c5ded0; border-top-color: #25865b; border-radius: 50%; animation: timeline-search-spin .8s linear infinite; }
.project-timeline-search .timeline-search-panel { position: absolute; top: 54px; left: 0; width: min(380px, calc(100vw - 42px)); max-width: calc(100vw - 42px); overflow: hidden; border: 1px solid #cadfd2; border-radius: 13px; background: #fafffcfa; box-shadow: 0 12px 35px #234c3824; backdrop-filter: blur(16px); }
.project-timeline-search .timeline-search-results { max-height: min(460px, calc(100dvh - 220px)); overflow-y: auto; overscroll-behavior: contain; padding: 4px; scrollbar-width: none; }
.project-timeline-search .timeline-search-results::-webkit-scrollbar { display: none; }
.project-timeline-search .timeline-search-results:empty { display: none; }
.project-timeline-search .timeline-search-result { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 11px 12px; box-sizing: border-box; border: 0; border-radius: 8px; color: #2e4c3d; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.project-timeline-search .timeline-search-result + .timeline-search-result { border-top: 1px solid #e2ede6; }
.project-timeline-search .timeline-search-result:is(:hover, :focus-visible, [aria-selected="true"]) { background: #e6f2eb; color: #155e3f; outline: none; }
.project-timeline-search .timeline-search-result:active { background: #d8eadf; }
.project-timeline-search .timeline-search-result-copy { display: grid; gap: 5px; min-width: 0; flex: 1; }
.project-timeline-search .timeline-search-result strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; line-height: 1.6; }
.project-timeline-search .timeline-search-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 12px; line-height: 1.6; color: #536e5e; }
.project-timeline-search .timeline-search-result small { font-size: 11px; line-height: 1.5; color: #6a8275; }
.project-timeline-search .timeline-search-group-icon { flex: 0 0 22px; width: 22px; height: 22px; fill: #e6f1e9; stroke: #559473; stroke-width: 1.3; stroke-linejoin: round; }
.project-timeline-search .timeline-search-status { padding: 18px 14px; font-size: 12px; line-height: 1.6; color: #617a6b; }
.project-timeline-search .timeline-search-status button { padding: 3px 8px; border: 1px solid #bad7c7; border-radius: 6px; color: #247452; background: #e7f2eb; font: inherit; cursor: pointer; }
.project-timeline-search .timeline-search-status button:hover { background: #d5eadf; }
@keyframes timeline-search-spin { to { transform: rotate(360deg); } }
@media (max-width: 760px) {
  .project-timeline-search { top: 70px; left: 12px; width: calc(100% - 24px); min-width: 0; }
  .project-timeline-search input[type="search"] { font-size: 16px; }
  .project-timeline-search .timeline-search-panel { width: 100%; max-width: none; }
  .project-timeline-search .timeline-search-results { max-height: min(420px, calc(100dvh - 280px)); }
}
@media (prefers-reduced-motion: reduce) {
  .project-timeline-search .timeline-search-spinner { animation-duration: 1.8s; }
}
