/* CalWhat Calculator Platform - journeyToParadise Specific Styles */
/* This file contains calculator-specific styles */

.container {
            max-width: 100%;
            width: 100%;
            margin: 0 auto;
        }

        h1 {
            text-align: center;
            color: #fff;
            font-size: 2.5em;
            margin-bottom: 30px;
            font-weight: 300;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.2);
            cursor: pointer;
            transition: transform 0.2s ease;
        }

            h1:hover {
                transform: scale(1.02);
            }

        .dot {
            width: 100%;
            height: 100%;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bolder;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

            .dot:hover {
                transform: scale(1.1);
                box-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
            }

        .highlighted-dot {
            transform: scale(2);
            font-size: 0.8em;
            color: #fff;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);
            z-index: 999;
            animation: pulse 2s ease-in-out infinite;
        }

        @keyframes pulse {
            0%, 100% {
                box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
            }

            50% {
                box-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
            }
        }

        #dots-container {
            margin-top: 20px;
            display: flex;
            flex-wrap: wrap;
            gap: 5px;
            width: 100%;
            max-width: 100%;
            color: white;
            padding: 20px;
            background-color: rgba(255, 255, 255, 0.05);
            border-radius: 12px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
            align-items: center;
        }

        .arrow {
            line-height: 5px;
            font-size: 1.5em;
            font-weight: bold;
            color: rgba(255, 255, 255, 0.6);
            display: flex;
            align-items: center;
            justify-content: center;
            width: auto;
            height: auto;
        }

        .dot-wrapper {
            width: 15px;
            height: 15px;
            position: relative;
            flex-shrink: 0;
        }

            .dot-wrapper > .dot {
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
            }

        #bar-container {
            width: 100%;
            padding-bottom: 70px;
            margin-bottom: 20px;
        }

        .progress-bar {
            position: relative;
            width: 100%;
            height: 25px;
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            border-radius: 12px;
            overflow: visible !important;
            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        .marker {
            position: absolute;
            bottom: -10px;
            display: flex;
            flex-direction: column;
            align-items: center;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
            white-space: nowrap;
            text-overflow: ellipsis;
            padding: 0 5px;
            font-weight: 600;
            filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
        }

            .marker::after {
                content: '▲';
                color: #fff;
                font-size: 14px;
                margin-top: -60px;
                filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.3));
            }

            .marker span {
                display: block;
                font-size: 13px;
                margin-top: 2px;
                text-align: center;
                transform: rotate(90deg);
                font-weight: 500;
            }

        .card {
            background-color: #fff;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            margin-bottom: 20px;
            padding: 20px;
        }

        .switch {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 20px;
            margin: 20px 0;
            flex-wrap: wrap;
            background-color: #fff;
            padding: 20px;
            border-radius: 12px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
        }

            .switch label {
                display: flex;
                align-items: center;
                gap: 8px;
                color: #555;
                font-weight: 500;
                cursor: pointer;
                transition: color 0.2s ease;
                user-select: none;
            }

                .switch label:hover {
                    color: #667eea;
                }

            .switch input[type="radio"],
            .switch input[type="checkbox"] {
                cursor: pointer;
                width: 18px;
                height: 18px;
                accent-color: #667eea;
            }



        /* Responsive design */
        @media (max-width: 768px) {
            h1 {
                font-size: 2em;
            }

            .switch {
                gap: 15px;
                padding: 15px;
            }

                .switch label {
                    font-size: 0.9em;
                }

            #dots-container {
                padding: 15px;
                gap: 3px;
            }

            .dot-wrapper {
                width: 12px;
                height: 12px;
            }

            .highlighted-dot {
                transform: scale(1.8);
                font-size: 0.7em;
            }

            .marker span {
                font-size: 11px;
            }
        }

        @media (max-width: 480px) {
            body {
                padding: 10px;
            }

            h1 {
                font-size: 1.6em;
                margin-bottom: 20px;
            }

            .switch {
                gap: 10px;
                padding: 12px;
            }

            #dots-container {
                padding: 10px;
                gap: 2px;
            }

            .dot-wrapper {
                width: 10px;
                height: 10px;
            }

            .highlighted-dot {
                transform: scale(1.5);
                font-size: 0.6em;
            }

            .progress-bar {
                height: 20px;
            }

            .marker span {
                font-size: 10px;
            }
        }

        /* Focus styles for accessibility */
        *:focus-visible {
            outline: 2px solid #fff;
            outline-offset: 2px;
        }

        .switch input:focus-visible {
            outline: 2px solid #667eea;
        }

        /* Screen reader only */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border-width: 0;
        }

        /* Toast animations */
        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateX(100px);
            }

            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes slideOut {
            from {
                opacity: 1;
                transform: translateX(0);
            }

            to {
                opacity: 0;
                transform: translateX(100px);
            }
        }

        /* Loading state */
        .loading {
            pointer-events: none;
            opacity: 0.6;
        }

            .loading::after {
                content: "";
                position: fixed;
                top: 50%;
                left: 50%;
                width: 40px;
                height: 40px;
                margin: -20px 0 0 -20px;
                border: 4px solid rgba(255, 255, 255, 0.3);
                border-top-color: #fff;
                border-radius: 50%;
                animation: spin 0.8s linear infinite;
                z-index: 10001;
            }

        @keyframes spin {
            to {
                transform: rotate(360deg);
            }
        }

        /* Smooth transitions */
        #bar-container,
        #dots-container {
            transition: opacity 0.3s ease;
        }

        /* Title interactive states */
        h1 {
            user-select: none;
        }

            h1:active {
                transform: scale(0.98);
            }

        /* Dark mode (already dark, but add prefers-color-scheme support) */
        @media (prefers-color-scheme: light) {
            body {
                background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
            }

            .switch,
            .card {
                background-color: rgba(255, 255, 255, 0.9);
            }

            #dots-container {
                background-color: rgba(255, 255, 255, 0.3);
            }

            .arrow {
                color: rgba(0, 0, 0, 0.4);
            }

            h1 {
                color: #333;
                text-shadow: 2px 2px 4px rgba(255,255,255,0.3);
            }
        }

        /* Print styles */
        @media print {
            body {
                background: white;
                color: black;
            }

            .switch,
            #member-editor {
                display: none;
            }

            #bar-container,
            #dots-container {
                page-break-inside: avoid;
            }

            .highlighted-dot {
                animation: none;
            }

            @@page {
                margin: 2cm;
            }
        }

        /* Member Editor Styles */
        #member-editor {
            background-color: #fff;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            margin-bottom: 20px;
        }

        .editor-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 15px 20px;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            user-select: none;
            transition: background 0.3s ease;
        }

            .editor-header:hover {
                background: linear-gradient(135deg, #5568d3 0%, #653b8b 100%);
            }

            .editor-header h3 {
                margin: 0;
                font-size: 1.2em;
                font-weight: 500;
            }

            .editor-header .toggle-icon {
                transition: transform 0.3s ease;
                font-size: 1.2em;
            }

            .editor-header.collapsed .toggle-icon {
                transform: rotate(-90deg);
            }

        .editor-content {
            padding: 20px;
            max-height: 500px;
            overflow-y: auto;
            transition: max-height 0.3s ease, padding 0.3s ease;
        }

            .editor-content.collapsed {
                max-height: 0;
                padding: 0 20px;
                overflow: hidden;
            }

        .member-list {
            display: grid;
            gap: 10px;
            margin-bottom: 20px;
        }

        .member-item {
            display: grid;
            grid-template-columns: 100px 1fr auto;
            gap: 10px;
            padding: 10px;
            background-color: #f8f9fa;
            border-radius: 8px;
            align-items: center;
        }

            .member-item input {
                padding: 8px 12px;
                border: 2px solid #e0e0e0;
                border-radius: 6px;
                font-size: 0.95em;
                transition: border-color 0.2s ease;
            }

                .member-item input:focus {
                    outline: none;
                    border-color: #667eea;
                }

            .member-item .btn-delete {
                background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%);
                color: white;
                border: none;
                padding: 8px 15px;
                border-radius: 6px;
                cursor: pointer;
                font-size: 0.9em;
                transition: transform 0.2s ease, box-shadow 0.2s ease;
            }

                .member-item .btn-delete:hover {
                    transform: translateY(-2px);
                    box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3);
                }

        .btn-add-member {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            padding: 12px 24px;
            border-radius: 8px;
            cursor: pointer;
            font-size: 1em;
            font-weight: 500;
            width: 100%;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

            .btn-add-member:hover {
                transform: translateY(-2px);
                box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
            }

        .editor-actions {
            display: flex;
            gap: 10px;
            margin-top: 15px;
        }

            .editor-actions button {
                flex: 1;
                padding: 10px;
                border: none;
                border-radius: 8px;
                cursor: pointer;
                font-size: 0.95em;
                font-weight: 500;
                transition: transform 0.2s ease, box-shadow 0.2s ease;
            }

        .btn-save {
            background: linear-gradient(135deg, #48bb78 0%, #38a169 100%);
            color: white;
        }

            .btn-save:hover {
                transform: translateY(-2px);
                box-shadow: 0 4px 12px rgba(72, 187, 120, 0.3);
            }

        .btn-reset {
            background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
            color: white;
        }

            .btn-reset:hover {
                transform: translateY(-2px);
                box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
            }

        @media (max-width: 768px) {
            .member-item {
                grid-template-columns: 80px 1fr auto;
                gap: 8px;
                padding: 8px;
            }

                .member-item input {
                    font-size: 0.9em;
                    padding: 6px 10px;
                }

            .editor-header h3 {
                font-size: 1em;
            }
        }

        @media (max-width: 480px) {
            .member-item {
                grid-template-columns: 1fr;
                gap: 8px;
            }

                .member-item .btn-delete {
                    width: 100%;
                }
        }


        @media (max-width: 768px) {
            .seo-content {
                padding: 20px;
            }

                .seo-content.collapsed {
                    padding: 0 20px;
                }

            .seo-header h2 {
                font-size: 1.1em;
            }
        }