/* .FitFix ToolBox (c) 2026 Václav Koucký (Ve-Ka-AI). All rights reserved. */
:root{--app-accent: #6366f1;--app-accent-hover: #4f46e5;--app-accent-glow: rgba(99,102,241,0.4);--app-gradient: linear-gradient(135deg,#6366f1 0%,#06b6d4 100%);--brand-garmin: #007cc3;--brand-polar: #e31b23;--brand-suunto: #d92938;--brand-coros: #ff5200;--brand-wahoo: #00a3e0;--brand-apple: #ff2d55;--brand-strava: #fc5200}.studio-main-grid{display: grid;grid-template-columns: 460px 1fr;gap: 1.25rem;align-items: start;width: 100%}@media (max-width: 1100px){.studio-main-grid{grid-template-columns: 1fr}}.studio-left-column{width: 460px;display: flex;flex-direction: column;gap: 1rem}@media (max-width: 1100px){.studio-left-column{width: 100%}}.studio-right-column{flex: 1;min-width: 0;width: 100%;display: flex;flex-direction: column;gap: 1rem}.glass-panel{background: var(--card-bg,rgba(15,23,42,0.75));backdrop-filter: blur(16px);-webkit-backdrop-filter: blur(16px);border: 1px solid var(--card-border,rgba(255,255,255,0.08));border-radius: var(--radius,12px);padding: 1.25rem;box-shadow: var(--shadow-glass,0 8px 32px 0 rgba(0,0,0,0.37));display: flex;flex-direction: column;gap: 0.85rem;width: 100%;box-sizing: border-box}.progress-container{background: rgba(15,23,42,0.85);border: 1px solid rgba(56,189,248,0.3);border-radius: 12px;padding: 1rem 1.25rem;display: flex;flex-direction: column;gap: 0.65rem;box-shadow: 0 8px 24px rgba(0,0,0,0.4);margin-top: 0.5rem}.progress-header{display: flex;justify-content: space-between;align-items: center;font-size: 0.88rem;font-weight: 600}.progress-bar-bg{width: 100%;height: 10px;background: rgba(255,255,255,0.06);border-radius: 999px;overflow: hidden}.progress-bar-fill{height: 100%;width: 0%;background: linear-gradient(90deg,#38bdf8,#818cf8);border-radius: 999px;transition: width 0.1s ease-out}.progress-telemetry{display: flex;gap: 1rem;flex-wrap: wrap;font-size: 0.8rem;background: rgba(15,23,42,0.55);padding: 0.45rem 0.75rem;border-radius: 8px;border: 1px solid rgba(255,255,255,0.06);color: var(--text-muted);align-items: center;justify-content: space-between}.telemetry-group{display: flex;gap: 1rem;flex-wrap: wrap;width: 100%;justify-content: space-between}.telemetry-item{display: inline-flex;align-items: center;gap: 0.35rem}.telemetry-item strong{font-family: 'Outfit',monospace,sans-serif;font-size: 0.85rem}.progress-counters{display: flex;justify-content: space-between;font-size: 0.8rem;color: var(--text-muted);padding-top: 2px;flex-wrap: wrap;gap: 0.5rem}.summary-grid{display: grid;grid-template-columns: repeat(2,1fr);gap: 0.4rem 0.75rem;padding-top: 0.35rem}.summary-item{font-size: 0.75rem;color: var(--text-muted)}.summary-item strong{color: var(--text-main);font-weight: 700}.spinner{width: 16px;height: 16px;border: 2px solid rgba(255,255,255,0.3);border-top-color: var(--primary);border-radius: 50%;animation: spin 0.8s linear infinite;display: inline-block}@keyframes spin{to{transform: rotate(360deg)}}.brand-grid-compact{display: grid;grid-template-columns: repeat(2,1fr);gap: 0.65rem;width: 100%}.brand-card-compact{position: relative;background: rgba(15,23,42,0.6);border: 1px solid var(--card-border);border-radius: var(--radius-sm);padding: 0.75rem 0.6rem;display: flex;flex-direction: column;align-items: center;text-align: center;gap: 0.35rem;cursor: pointer;transition: all 0.2s cubic-bezier(0.4,0,0.2,1);overflow: hidden}.brand-card-compact::before{content: '';position: absolute;top: 0;left: 0;right: 0;height: 3px;background: transparent;transition: all 0.2s ease}.brand-card-compact:hover{background: rgba(30,45,74,0.85);border-color: var(--card-border-hover);transform: translateY(-2px)}.brand-card-compact.selected{background: rgba(30,45,74,0.95);border-color: var(--app-accent);box-shadow: 0 0 16px var(--app-accent-glow);transform: translateY(-1px)}.brand-card-compact.garmin::before{background: var(--brand-garmin)}.brand-card-compact.polar::before{background: var(--brand-polar)}.brand-card-compact.suunto::before{background: var(--brand-suunto)}.brand-card-compact.coros::before{background: var(--brand-coros)}.brand-card-compact.wahoo::before{background: var(--brand-wahoo)}.brand-card-compact.apple::before{background: var(--brand-apple)}.brand-card-compact.strava::before{background: var(--brand-strava)}.brand-icon-sm{font-size: 1.35rem}.brand-name-sm{font-family: var(--font-heading);font-weight: 700;font-size: 0.85rem;color: var(--text-main)}.brand-limit-tag-sm{font-size: 0.68rem;font-weight: 700;padding: 2px 6px;border-radius: var(--radius-pill);background: rgba(255,255,255,0.06);color: var(--text-muted)}.brand-card-compact.selected .brand-limit-tag-sm{background: rgba(99,102,241,0.25);color: #c7d2fe}.migration-banner{display: flex;align-items: center;justify-content: space-between;background: linear-gradient(135deg,rgba(99,102,241,0.12),rgba(6,182,212,0.12));border: 1px solid rgba(99,102,241,0.3);border-radius: var(--radius-md);padding: 0.85rem 1.25rem;gap: 1rem}.mig-side{display: flex;align-items: center;gap: 0.75rem}.mig-arrow{font-size: 1.3rem;color: var(--app-accent);display: flex;align-items: center;justify-content: center}.activity-diff-list{display: flex;flex-direction: column;gap: 0.65rem;max-height: 600px;overflow-y: auto;padding-right: 4px}.diff-card{background: rgba(15,23,42,0.65);border: 1px solid rgba(255,255,255,0.08);border-radius: var(--radius-sm);padding: 0.85rem 1rem;display: grid;grid-template-columns: 200px 1fr 1fr 140px;align-items: center;gap: 1rem;transition: all 0.2s ease}.diff-card:hover{background: rgba(30,45,74,0.85);border-color: rgba(99,102,241,0.4)}.activity-meta{display: flex;flex-direction: column;gap: 2px}.activity-name{font-weight: 700;font-size: 0.86rem;color: var(--text-main);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.activity-date{font-size: 0.74rem;color: var(--text-muted);display: flex;align-items: center;gap: 5px}.source-col,.target-col{display: flex;flex-direction: column;gap: 4px}.col-label{font-size: 0.68rem;text-transform: uppercase;letter-spacing: 0.04em;font-weight: 700;color: var(--text-dim)}.sport-badge,.device-badge{display: inline-flex;align-items: center;gap: 6px;font-size: 0.78rem;font-weight: 600;padding: 3px 8px;border-radius: var(--radius-sm);background: rgba(255,255,255,0.05);border: 1px solid rgba(255,255,255,0.08);color: var(--text-main);cursor: pointer;transition: all 0.2s ease;width: fit-content}.sport-badge:hover,.device-badge:hover{background: rgba(255,255,255,0.12);border-color: var(--app-accent)}.target-col .sport-badge{background: rgba(99,102,241,0.12);border-color: rgba(99,102,241,0.3);color: #c7d2fe}.target-col .device-badge{background: rgba(6,182,212,0.12);border-color: rgba(6,182,212,0.3);color: #a5f3fc}.timeline-warning{font-size: 0.7rem;color: var(--accent-amber);display: inline-flex;align-items: center;gap: 4px}.form-group-compact{display: flex;flex-direction: column;gap: 0.35rem}.form-label-compact{font-size: 0.78rem;font-weight: 700;color: var(--text-muted)}.custom-select-compact{width: 100%;background: rgba(15,23,42,0.8);border: 1px solid var(--card-border);border-radius: var(--radius-sm);padding: 0.55rem 0.75rem;color: var(--text-main);font-size: 0.82rem;outline: none}.custom-checkbox-row{display: flex;align-items: center;gap: 8px;font-size: 0.8rem;color: var(--text-main);cursor: pointer}.custom-checkbox-row input[type="checkbox"]{accent-color: var(--app-accent);width: 16px;height: 16px;cursor: pointer}.modal-overlay{position: fixed;top: 0;left: 0;right: 0;bottom: 0;background: rgba(5,8,16,0.85);backdrop-filter: blur(12px);-webkit-backdrop-filter: blur(12px);display: flex;align-items: center;justify-content: center;z-index: 9999;padding: 1.5rem;animation: fadeIn 0.25s ease-out}.modal-content{background: rgba(21,32,54,0.95);border: 1px solid var(--card-border-glow);border-radius: var(--radius-lg);box-shadow: var(--shadow-popup);width: 100%;max-width: 560px;max-height: 85vh;display: flex;flex-direction: column;overflow: hidden;animation: modalScaleUp 0.25s ease-out}.modal-header{padding: 1rem 1.25rem;border-bottom: 1px solid var(--card-border);display: flex;align-items: center;justify-content: space-between}.modal-title{font-size: 1.1rem;font-weight: 700;font-family: var(--font-heading);display: flex;align-items: center;gap: 8px}.modal-body{padding: 1.25rem;overflow-y: auto;display: flex;flex-direction: column;gap: 0.85rem}.modal-footer{padding: 0.85rem 1.25rem;border-top: 1px solid var(--card-border);display: flex;justify-content: flex-end;gap: 0.65rem}.catalog-search-input{width: 100%;background: rgba(15,23,42,0.8);border: 1px solid var(--card-border);border-radius: var(--radius-sm);padding: 0.65rem 0.85rem;color: var(--text-main);font-size: 0.85rem;outline: none}.catalog-items-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(150px,1fr));gap: 0.5rem;max-height: 300px;overflow-y: auto;padding-right: 4px}.catalog-item-btn{background: rgba(255,255,255,0.04);border: 1px solid rgba(255,255,255,0.08);border-radius: var(--radius-sm);padding: 0.55rem 0.65rem;display: flex;align-items: center;gap: 6px;color: var(--text-main);font-size: 0.78rem;cursor: pointer;transition: all 0.15s ease;text-align: left}.catalog-item-btn:hover{background: rgba(99,102,241,0.15);border-color: var(--app-accent)}.catalog-item-btn.selected{background: rgba(99,102,241,0.25);border-color: var(--app-accent);font-weight: 700}.humor-icon{font-size: 3rem;text-align: center}.humor-text{font-size: 0.92rem;line-height: 1.55;color: var(--text-main);text-align: center}.humor-highlight{color: var(--accent-amber);font-weight: 700}@keyframes modalScaleUp{from{opacity: 0;transform: scale(0.96)}to{opacity: 1;transform: scale(1)}}@media (max-width: 900px){.diff-card{grid-template-columns: 1fr;gap: 0.65rem}}.search-input-box{position: relative;display: flex;align-items: center;margin-bottom: 0.75rem}.search-input-box i{position: absolute;left: 12px;color: var(--text-dim);font-size: 0.85rem;pointer-events: none}.search-input{width: 100%;padding: 8px 12px 8px 34px;background: rgba(15,23,42,0.6);border: 1px solid var(--card-border);border-radius: var(--radius-sm);color: var(--text-main);font-size: 0.82rem;font-family: 'Inter',sans-serif;outline: none;transition: all 0.2s ease}.search-input:focus{border-color: var(--app-accent);background: rgba(15,23,42,0.9);box-shadow: 0 0 0 2px var(--app-accent-glow)}.filter-group{margin-bottom: 0.85rem}.filter-group:last-child{margin-bottom: 0}.filter-group-title{font-size: 0.74rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.05em;color: var(--text-dim);margin-bottom: 0.45rem;display: flex;justify-content: space-between;align-items: center}.filter-chips{display: flex;flex-wrap: wrap;gap: 0.4rem;max-height: 160px;overflow-y: auto;padding-right: 2px}.chip{font-size: 0.76rem;font-weight: 600;padding: 4px 10px;border-radius: 999px;background: rgba(255,255,255,0.05);border: 1px solid rgba(255,255,255,0.08);color: var(--text-muted);cursor: pointer;transition: all 0.15s ease;display: inline-flex;align-items: center;gap: 5px;user-select: none}.chip:hover{background: rgba(99,102,241,0.15);border-color: var(--app-accent);color: var(--text-main)}.chip.active{background: var(--app-gradient);border-color: transparent;color: #ffffff;box-shadow: 0 2px 8px rgba(99,102,241,0.35)}.chip.dimmed{opacity: 0.3;pointer-events: none}.chip .badge-count{font-size: 0.68rem;background: rgba(0,0,0,0.28);padding: 1px 6px;border-radius: 999px;font-weight: 700}.batch-table{width: 100%;border-collapse: separate;border-spacing: 0;font-size: 0.82rem;color: var(--text-main)}.batch-table th{background: rgba(15,23,42,0.9);backdrop-filter: blur(12px);-webkit-backdrop-filter: blur(12px);padding: 10px 12px;text-align: left;font-size: 0.74rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.05em;color: var(--text-muted);border-bottom: 1px solid var(--card-border);position: sticky;top: 0;z-index: 10}.batch-table td{padding: 9px 12px;border-bottom: 1px solid rgba(255,255,255,0.05);vertical-align: middle;background: transparent;transition: background 0.15s ease}.batch-table tr:hover td{background: rgba(99,102,241,0.08)}.batch-table tr.selected td{background: rgba(99,102,241,0.14)}.batch-table input[type="checkbox"]{accent-color: var(--app-accent);width: 16px;height: 16px;cursor: pointer;border-radius: 4px}.view-mode-toggle button{padding: 4px 10px;font-size: 0.74rem;font-weight: 600;border: none;background: transparent;color: var(--text-muted);cursor: pointer;transition: all 0.15s ease;display: inline-flex;align-items: center;gap: 5px}.view-mode-toggle button:hover{color: var(--text-main);background: rgba(255,255,255,0.06)}.view-mode-toggle button.active{background: var(--app-gradient);color: #ffffff}