.drop-zone {
    border: 2px dashed #ced4da;
    border-radius: .5rem;
    padding: 2rem 1rem;
    text-align: center;
    background: #f8f9fa;
    transition: background-color .15s, border-color .15s, padding .15s;
    cursor: pointer;
    display: block;
}
.drop-zone.dragover { background: #e7f1ff; border-color: #0d6efd; }
.drop-zone.compact { padding: .75rem 1rem; }
.drop-zone input[type=file] { display: none; }

.file-card { font-size: .9rem; }
.file-card .stat { display: inline-block; margin-right: 1rem; }
.file-card .stat-label { color: #6c757d; }
.file-card .badge { font-weight: 500; }

.summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .5rem .75rem; }

.diff-row { padding: .25rem 0; border-bottom: 1px solid #f1f3f5; }
.diff-row:last-child { border-bottom: none; }
.diff-label { color: #6c757d; font-size: .85rem; }

.preview-map { height: 160px; border-radius: .375rem; margin-top: .5rem; }
.leaflet-container { background: #eee; }

.min-w-0 { min-width: 0; }
.strava-row .meta { font-size: .8rem; }
.strava-row .btn-icon { padding: .1rem .4rem; font-size: .85rem; line-height: 1.4; }

/* Toasts */
#toast-container {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    pointer-events: none;
}
.toast-msg {
    min-width: 220px;
    max-width: 360px;
    padding: .55rem .9rem;
    border-radius: .375rem;
    box-shadow: 0 .25rem .75rem rgba(0,0,0,.15);
    font-size: .9rem;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .25s, transform .25s;
    pointer-events: auto;
    color: #fff;
    background: #0d6efd;
}
.toast-msg.toast-show { opacity: 1; transform: translateY(0); }
.toast-success { background: #198754; }
.toast-info    { background: #0d6efd; }
.toast-warning { background: #ffc107; color: #212529; }
.toast-error   { background: #dc3545; }

/* Replay marker: keep crisp circle */
.replay-marker { pointer-events: none; }

/* Mobile polish */
#preset-bar { flex-wrap: wrap; }
@media (max-width: 575.98px) {
    .container { padding-left: .75rem; padding-right: .75rem; }
    h1 { font-size: 1.6rem; }
    .drop-zone { padding: 1.25rem .75rem; }
    .drop-zone.compact { padding: .5rem .75rem; }
    .strava-row { flex-direction: column; align-items: stretch !important; }
    .strava-row .d-flex.gap-1 { justify-content: flex-end; margin-top: .25rem; }
    .preview-map { height: 140px; }
    canvas.speed-chart,
    canvas.altitude-chart,
    canvas.hr-power-chart { max-height: 130px !important; }
    .replace-prompt { flex-direction: column; align-items: stretch !important; }
    .replace-prompt > * { width: 100%; }
    #toast-container { left: .5rem; right: .5rem; bottom: .5rem; }
    .toast-msg { min-width: 0; max-width: 100%; }
}
