/* .FitFix ToolBox (c) 2026 Václav Koucký (Ve-Ka-AI). All rights reserved. */
body{min-height: 100vh;margin: 0;display: flex;flex-direction: column}.fitfix-container{min-height: 100vh;display: flex;flex-direction: column;box-sizing: border-box}.fitfix-container>main{flex: 1 0 auto}.fitfix-container>footer{margin-top: auto}.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(21,32,54,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,16px);box-shadow: var(--shadow-glass,0 12px 40px 0 rgba(0,0,0,0.5));display: flex;flex-direction: column;overflow: hidden}.panel-header{padding: 0.85rem 1.25rem;background: rgba(15,23,42,0.7);border-bottom: 1px solid var(--border-glass,rgba(255,255,255,0.08));display: flex;justify-content: space-between;align-items: center}.panel-header h3{font-size: 0.95rem;font-weight: 700;color: var(--text-main,#f8fafc);margin: 0;display: flex;align-items: center;gap: 8px}.mode-switch-group{display: grid;grid-template-columns: 1fr 1fr;background: rgba(15,23,42,0.8);border: 1px solid var(--border-glass,rgba(255,255,255,0.08));border-radius: var(--radius-sm,8px);padding: 3px;gap: 4px}.mode-btn{background: transparent;color: var(--text-muted,#94a3b8);border: 1px solid transparent;padding: 7px 8px;border-radius: 6px;font-size: 0.75rem;font-weight: 700;cursor: pointer;display: flex;align-items: center;justify-content: center;gap: 5px;transition: all 0.2s ease;white-space: nowrap}.mode-btn:hover{color: var(--text-main,#fff);background: rgba(255,255,255,0.05)}.mode-btn.active{background: linear-gradient(135deg,rgba(56,189,248,0.25),rgba(129,140,248,0.25));color: var(--primary,#38bdf8);border-color: rgba(56,189,248,0.4);box-shadow: 0 2px 8px rgba(0,0,0,0.3)}.ingestion-summary-card{background: rgba(15,23,42,0.8);border: 1px solid var(--border-glass,rgba(255,255,255,0.08));border-radius: 10px;padding: 0.85rem 1rem;display: flex;flex-direction: column;gap: 0.65rem}.summary-card-header{display: flex;justify-content: space-between;align-items: center}.summary-badge{font-size: 0.72rem;font-weight: 700;color: var(--accent-green,#34d399);display: inline-flex;align-items: center;gap: 5px}.summary-badge i{color: var(--accent-green,#34d399)}.btn-change-folder{background: rgba(255,255,255,0.06);border: 1px solid var(--card-border,rgba(255,255,255,0.08));color: var(--text-muted,#94a3b8);font-size: 0.70rem;font-weight: 600;padding: 2px 7px;border-radius: 4px;cursor: pointer;transition: all 0.15s ease}.btn-change-folder:hover{background: rgba(56,189,248,0.15);border-color: var(--primary,#38bdf8);color: var(--primary,#38bdf8)}.summary-grid{display: grid;grid-template-columns: 1fr 1fr;gap: 0.45rem 0.85rem;font-size: 0.76rem;color: var(--text-muted,#94a3b8)}.summary-item strong{color: var(--text-main,#f8fafc)}.filter-accordion-container{display: flex;flex-direction: column;gap: 6px;margin-top: 4px}.accordion-item{background: rgba(15,23,42,0.6);border: 1px solid var(--border-glass,rgba(255,255,255,0.08));border-radius: 8px;overflow: hidden;transition: border-color 0.2s ease}.accordion-item[open]{border-color: rgba(56,189,248,0.35);background: rgba(15,23,42,0.85)}.accordion-header{padding: 8px 10px;font-size: 0.76rem;font-weight: 700;color: var(--text-main,#f8fafc);cursor: pointer;display: flex;justify-content: space-between;align-items: center;user-select: none;list-style: none}.accordion-header::-webkit-details-marker{display: none}.accordion-content{padding: 8px 10px 10px;display: flex;flex-wrap: wrap;gap: 5px;border-top: 1px solid rgba(255,255,255,0.05);max-height: 280px;overflow-y: auto}.filter-chip{background: rgba(255,255,255,0.05);border: 1px solid rgba(255,255,255,0.08);border-radius: 20px;padding: 3px 8px;font-size: 0.72rem;color: var(--text-muted,#94a3b8);cursor: pointer;display: inline-flex;align-items: center;gap: 5px;transition: all 0.15s ease}.filter-chip:hover{background: rgba(56,189,248,0.15);color: #fff;border-color: rgba(56,189,248,0.3)}.filter-chip.active{background: rgba(56,189,248,0.25);color: var(--primary,#38bdf8);border-color: var(--primary,#38bdf8);font-weight: 700}.badge-count{font-size: 0.68rem;background: rgba(255,255,255,0.1);padding: 1px 5px;border-radius: 10px}.candidate-group-card{background: rgba(15,23,42,0.75);border: 1px solid var(--border-glass,rgba(255,255,255,0.08));border-radius: 10px;padding: 0.75rem 0.85rem;display: flex;flex-direction: column;gap: 0.5rem;transition: all 0.2s ease}.candidate-group-card:hover{border-color: rgba(56,189,248,0.4)}.bridge-pin-wrapper{background: transparent !important;border: none !important;cursor: grab !important;user-select: none !important}.bridge-pin-wrapper:active{cursor: grabbing !important}.bridge-pin-a{width: 22px;height: 22px;background: #10b981;border: 3px solid #ffffff;border-radius: 50%;box-shadow: 0 0 12px rgba(16,185,129,0.9),0 2px 6px rgba(0,0,0,0.6);cursor: grab;transition: transform 0.15s ease;pointer-events: auto !important}.bridge-pin-a:hover{transform: scale(1.3)}.bridge-pin-b{width: 22px;height: 22px;background: #ef4444;border: 3px solid #ffffff;border-radius: 50%;box-shadow: 0 0 12px rgba(239,68,68,0.9),0 2px 6px rgba(0,0,0,0.6);cursor: grab;transition: transform 0.15s ease;pointer-events: auto !important}.bridge-pin-b:hover{transform: scale(1.3)}.bridge-pin-wp{width: 18px;height: 18px;background: #c084fc;border: 2.5px solid #ffffff;border-radius: 50%;box-shadow: 0 0 10px rgba(192,132,252,0.9),0 2px 5px rgba(0,0,0,0.5);cursor: grab;transition: transform 0.15s ease;pointer-events: auto !important}.bridge-pin-wp:hover{transform: scale(1.35)}.candidate-group-card.selected{border-color: var(--primary,#38bdf8);background: rgba(56,189,248,0.05);box-shadow: 0 0 16px rgba(56,189,248,0.15)}.group-card-header{display: flex;justify-content: space-between;align-items: center;padding-bottom: 5px;border-bottom: 1px solid rgba(255,255,255,0.06)}.group-title-left{display: flex;align-items: center;gap: 8px}.group-checkbox{width: 17px;height: 17px;accent-color: var(--primary,#38bdf8);cursor: pointer}.group-title-text{font-size: 0.84rem;font-weight: 700;color: var(--text-main,#fff)}.match-badge{font-size: 0.68rem;font-weight: 800;padding: 2px 6px;border-radius: 9999px;letter-spacing: 0.02em}.match-green{background: rgba(52,211,153,0.2);color: #34d399;border: 1px solid rgba(52,211,153,0.4)}.match-amber{background: rgba(251,191,36,0.2);color: #fbbf24;border: 1px solid rgba(251,191,36,0.4)}.match-blue{background: rgba(56,189,248,0.2);color: #38bdf8;border: 1px solid rgba(56,189,248,0.4)}.group-meta-sub{font-size: 0.70rem;color: var(--text-muted,#94a3b8)}.group-fragments-list{display: flex;flex-direction: column;gap: 4px}.fragment-item-row{display: flex;align-items: center;gap: 8px;background: rgba(15,23,42,0.6);border: 1px solid rgba(255,255,255,0.05);border-radius: 6px;padding: 5px 8px;font-size: 0.76rem;color: var(--text-main,#f8fafc);transition: all 0.15s ease;cursor: grab}.fragment-item-row:hover{background: rgba(255,255,255,0.06);border-color: rgba(56,189,248,0.3)}.fragment-item-row.is-dragging{opacity: 0.4;border-style: dashed}.fragment-item-row.drag-over{border-top: 2px solid var(--primary,#38bdf8)}.drag-handle{color: var(--text-muted,#94a3b8);cursor: grab;font-size: 0.85rem;user-select: none}.color-indicator-dot{width: 10px;height: 10px;border-radius: 50%;flex-shrink: 0}.fragment-info{flex: 1;min-width: 0;display: flex;justify-content: space-between;align-items: center}.fragment-name{font-weight: 600;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 200px}.fragment-stats{font-size: 0.70rem;color: var(--text-muted,#94a3b8);font-family: 'JetBrains Mono',monospace;white-space: nowrap}.settings-group{display: flex;flex-direction: column;gap: 8px}.form-group{display: flex;flex-direction: column;gap: 4px}.form-label{display: flex;justify-content: space-between;font-size: 0.76rem;font-weight: 600;color: var(--text-muted,#94a3b8)}.form-label span.val{color: var(--primary,#38bdf8);font-family: 'JetBrains Mono',monospace;font-weight: 700}input[type="range"]{width: 100%;height: 6px;background: #1e293b;border-radius: 3px;outline: none;accent-color: var(--primary,#38bdf8);cursor: pointer}.setting-row{display: flex;justify-content: space-between;align-items: center;font-size: 0.76rem;gap: 6px}.setting-label{color: var(--text-muted,#94a3b8);font-weight: 600}.custom-select,.custom-input{background: rgba(15,23,42,0.9);border: 1px solid var(--border-glass,rgba(255,255,255,0.08));color: var(--text-main,#f8fafc);padding: 5px 8px;border-radius: 6px;font-size: 0.76rem;outline: none;transition: border-color 0.2s ease}.custom-select:focus,.custom-input:focus{border-color: var(--primary,#38bdf8)}.middle-panel{display: flex;flex-direction: column;gap: 10px}.map-container-box{position: relative;border-radius: var(--radius-sm,8px);overflow: hidden;border: 1px solid var(--border-glass,rgba(255,255,255,0.08));background: #0b1120}#leafletMap{width: 100%;height: 100%;z-index: 1}.map-overlay-badge{position: absolute;top: 10px;left: 10px;z-index: 1000;background: rgba(15,23,42,0.88);backdrop-filter: blur(8px);border: 1px solid var(--border-glass,rgba(255,255,255,0.12));padding: 4px 10px;border-radius: 9999px;font-size: 0.72rem;font-weight: 700;color: var(--primary,#38bdf8);pointer-events: none;box-shadow: 0 4px 12px rgba(0,0,0,0.4)}.card-fullscreen-target.is-fullscreen{position: fixed !important;top: 0 !important;left: 0 !important;width: 100vw !important;height: 100vh !important;z-index: 99999 !important;border-radius: 0 !important;background: #090d16 !important;padding: 1rem !important;overflow: auto !important}.card-fullscreen-target.is-fullscreen .map-container-box{height: 60vh !important}.card-fullscreen-target.is-fullscreen .chart-canvas-wrapper{height: 25vh !important}.btn-action-sm{background: rgba(15,23,42,0.8);border: 1px solid var(--card-border,rgba(255,255,255,0.1));color: var(--text-muted,#94a3b8);border-radius: 6px;padding: 3px 8px;font-size: 0.72rem;cursor: pointer;display: inline-flex;align-items: center;gap: 5px;transition: all 0.2s ease}.btn-action-sm:hover{background: rgba(56,189,248,0.15);color: var(--primary,#38bdf8);border-color: rgba(56,189,248,0.4)}.chart-container-box{background: rgba(15,23,42,0.7);border: 1px solid var(--border-glass,rgba(255,255,255,0.08));border-radius: var(--radius-sm,8px);padding: 8px 12px;display: flex;flex-direction: column;position: relative}.chart-header-row{display: flex;justify-content: space-between;align-items: center;margin-bottom: 4px}.chart-canvas-wrapper{position: relative;width: 100%}#timelineChart{width: 100% !important;height: 100% !important}.split-markers-list{display: flex;flex-wrap: wrap;gap: 4px;margin-top: 6px;max-height: 44px;overflow-y: auto}.split-pill{background: rgba(244,63,94,0.18);color: var(--accent-red,#f43f5e);border: 1px solid rgba(244,63,94,0.35);padding: 2px 7px;border-radius: 9999px;font-size: 0.70rem;font-weight: 700;display: inline-flex;align-items: center;gap: 4px}.btn-remove-split{cursor: pointer;color: #fff;opacity: 0.7}.btn-remove-split:hover{opacity: 1}.segments-detail-table{width: 100%;border-collapse: collapse;font-size: 0.78rem;text-align: left}.segments-detail-table th{background: rgba(15,23,42,0.85);color: var(--text-muted,#94a3b8);font-weight: 700;padding: 8px 10px;border-bottom: 1px solid rgba(255,255,255,0.1);font-size: 0.74rem;white-space: nowrap}.segments-detail-table td{padding: 8px 10px;border-bottom: 1px solid rgba(255,255,255,0.05);color: var(--text-main,#f8fafc);font-family: 'JetBrains Mono',monospace;font-size: 0.76rem;white-space: nowrap}.segments-detail-table tbody tr{transition: background 0.15s ease;cursor: grab}.segments-detail-table tbody tr:hover{background: rgba(56,189,248,0.06)}.segments-detail-table tbody tr.is-dragging{opacity: 0.35}.segments-detail-table tbody tr.row-bridge-segment{background: rgba(192,132,252,0.08);border-left: 3px solid var(--accent-purple,#c084fc)}.summary-total-row td{background: rgba(15,23,42,0.9);border-top: 2px solid rgba(56,189,248,0.4);font-weight: 800;font-size: 0.82rem;color: #ffffff}.anomaly-box{background: rgba(251,191,36,0.1);border: 1px solid rgba(251,191,36,0.3);border-radius: 8px;padding: 8px 12px;font-size: 0.74rem;color: var(--accent-amber,#fbbf24);display: flex;align-items: center;gap: 8px}.anomaly-box.clean{background: rgba(52,211,153,0.08);border-color: rgba(52,211,153,0.25);color: var(--accent-green,#34d399)}.modal-overlay{position: fixed;top: 0;left: 0;width: 100vw;height: 100vh;background: rgba(0,0,0,0.75);backdrop-filter: blur(8px);z-index: 100000;display: flex;align-items: center;justify-content: center;padding: 1rem}.modal-card{background: var(--card-bg,rgba(21,32,54,0.95));border: 1px solid var(--card-border,rgba(255,255,255,0.12));border-radius: var(--radius,16px);box-shadow: 0 20px 60px rgba(0,0,0,0.8);max-width: 480px;width: 100%;overflow: hidden;animation: modalFadeIn 0.2s ease-out}@keyframes modalFadeIn{from{opacity: 0;transform: scale(0.95)}to{opacity: 1;transform: scale(1)}}.modal-header{padding: 1rem 1.25rem;background: rgba(15,23,42,0.8);border-bottom: 1px solid var(--border-glass,rgba(255,255,255,0.08));display: flex;justify-content: space-between;align-items: center}.btn-close-modal{background: transparent;border: none;color: var(--text-muted,#94a3b8);font-size: 1.4rem;cursor: pointer;line-height: 1}.btn-close-modal:hover{color: #fff}html{overflow-y: scroll !important;scrollbar-gutter: stable}::-webkit-scrollbar{width: 10px !important;height: 10px !important}::-webkit-scrollbar-track{background: #090d16 !important}::-webkit-scrollbar-thumb{background: rgba(255,255,255,0.22) !important;border-radius: 5px !important;border: 2px solid #090d16 !important}::-webkit-scrollbar-thumb:hover{background: var(--primary,#38bdf8) !important}.custom-scroll::-webkit-scrollbar{width: 5px;height: 5px}.custom-scroll::-webkit-scrollbar-thumb{background: rgba(255,255,255,0.15);border-radius: 9999px}.custom-scroll::-webkit-scrollbar-thumb:hover{background: rgba(56,189,248,0.4)}#leafletMap.bridge-drawing-active,#leafletMap.bridge-drawing-active .leaflet-container,#leafletMap.bridge-drawing-active .leaflet-grab,#leafletMap.bridge-drawing-active .leaflet-interactive{cursor: crosshair !important}.bridge-pin-wrapper{display: flex;align-items: center;justify-content: center;cursor: grab !important;transition: transform 0.1s ease}.bridge-pin-wrapper:active{cursor: grabbing !important;transform: scale(1.2)}.bridge-pin-a{width: 20px;height: 20px;background: #10b981;border: 3px solid #ffffff;border-radius: 50%;box-shadow: 0 0 14px rgba(16,185,129,0.9),0 2px 6px rgba(0,0,0,0.6)}.bridge-pin-b{width: 20px;height: 20px;background: #ef4444;border: 3px solid #ffffff;border-radius: 50%;box-shadow: 0 0 14px rgba(239,68,68,0.9),0 2px 6px rgba(0,0,0,0.6)}.bridge-pin-wp{width: 16px;height: 16px;background: #c084fc;border: 2px solid #ffffff;border-radius: 50%;box-shadow: 0 0 10px rgba(192,132,252,0.9),0 2px 5px rgba(0,0,0,0.5)}