/* Geotag Photos Online — page-specific styles (shared tool styles are in tools.css). */

/* ---------- Start illustration ---------- */
.tool-hero--geotag .hero-pin { top: 46%; }
.tool-hero--geotag .geo-hero-card { position: absolute; right: 14px; bottom: 14px; max-width: calc(100% - 28px); }

/* ---------- Photo list ---------- */
.geo-select-all { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 4px; font-size: .875rem; font-weight: 500; cursor: pointer; }
.geo-select-all input, .geo-item__check { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--primary-color); cursor: pointer; }
.geo-selected-count { margin: 0 0 10px; font-size: .8125rem; color: var(--text-color-secondary); }
@media (min-width: 960px) {
    .geo-list { max-height: min(60vh, 640px); overflow-y: auto; padding: 2px; margin: -2px; overscroll-behavior: contain; }
}
.geo-item { padding: 8px 4px 8px 12px; gap: 10px; }
.geo-item.is-current { box-shadow: 0 0 0 2px var(--primary-color) inset; }
.geo-item.is-error { opacity: .85; }
.geo-item__main {
    flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 0; border: 0;
    background: transparent; color: inherit; font: inherit; text-align: start; cursor: pointer; border-radius: 12px;
}
.geo-item__main:disabled { cursor: default; }
.geo-item__thumb { position: relative; }
.geo-item__num {
    position: absolute; left: 3px; top: 3px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px;
    display: grid; place-items: center; background: rgba(0,0,0,.6); color: #fff; font-size: 10px; line-height: 1;
}
.geo-item__remove { width: 40px; height: 40px; }
.geo-item__remove .material-symbols-rounded { font-size: 20px; }
.geo-status { display: flex; align-items: center; gap: 4px; }
.geo-status .material-symbols-rounded { font-size: 16px; flex: 0 0 auto; }
.geo-status span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.geo-status.is-new { color: var(--primary-color); font-weight: 600; }
.file-item.is-active .geo-status.is-new { color: inherit; }
.geo-status.is-removed { color: var(--error-color); font-weight: 600; }
.file-item.is-error .file-item__status span:last-child { white-space: normal; line-height: 1.35; }

/* ---------- Details ---------- */
.geo-details__source { margin: 0 0 12px; font-size: .9375rem; color: var(--text-color-secondary); }
.geo-details__source.is-new { color: var(--primary-color); font-weight: 600; }
.geo-details .kv { margin-bottom: 8px; }
.geo-details__actions { margin-top: 4px; }
.geo-details__actions .ts-btn--text { padding: 0 10px; }
.geo-danger { color: var(--error-color); }
.geo-details__actions .ts-btn:disabled { display: none; }
.geo-details__actions [hidden] { display: none; }

/* ---------- Set location ---------- */
.geo-form { margin-top: 18px; }
.geo-form:first-child { margin-top: 0; }
.geo-row { display: flex; gap: 8px; align-items: stretch; }
.geo-row .ts-input { flex: 1; min-width: 0; }
.geo-row .ts-btn { flex: 0 0 auto; min-height: 48px; }
.geo-row--short .ts-input { max-width: 200px; }
.geo-form select.ts-input { appearance: auto; }
.geo-form .ts-input:disabled { opacity: .55; }
.geo-error { margin: 6px 0 0; font-size: .8125rem; line-height: 1.45; color: var(--error-color); }
.geo-error:empty, .geo-download-status:empty, #geo-search-status:empty { display: none; }
.geo-results { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.geo-results:empty { display: none; }
.geo-result {
    width: 100%; display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border: 1px solid var(--outline-variant-color);
    border-radius: 12px; background: var(--surface-color); color: var(--text-color); font: 400 .875rem/1.4 var(--md-ref-typeface-plain);
    text-align: start; cursor: pointer;
}
.geo-result .material-symbols-rounded { font-size: 18px; color: var(--primary-color); }
.geo-result:hover { border-color: var(--primary-color); }
.geo-result.is-active { border-color: transparent; background: var(--primary-container-color); color: var(--on-primary-container-color); }

/* ---------- Download ---------- */
.geo-changes { margin: 0 0 12px; font-weight: 600; }
.geo-download-status { margin: 10px 0 0; font-size: .875rem; color: var(--text-color-secondary); }

@media (max-width: 480px) {
    .geo-row { flex-wrap: wrap; }
    .geo-row .ts-input { flex: 1 1 180px; }
    .geo-row--short .ts-input { max-width: none; }
}
