/**
 * Pitchinator Styles
 * AI-powered pitch generator with dark mode support
 */

/* Container overrides */
.container-wide {
    max-width: 1200px !important;
}

/* Disclaimer */
.disclaimer {
    background: #fff3cd;
    border-left: 5px solid #ffc107;
    padding: var(--space-lg);
    margin-bottom: var(--space-2xl);
    border-radius: var(--radius-md);
}

body.dark-theme .disclaimer {
    background: rgba(255, 193, 7, 0.1);
    border-color: #ffc107;
}

.disclaimer h3 {
    color: #856404;
    margin-bottom: var(--space-sm);
    font-size: var(--font-size-lg);
}

body.dark-theme .disclaimer h3 {
    color: #ffc107;
}

.disclaimer p {
    color: #856404;
    line-height: 1.6;
    margin: var(--space-xs) 0;
}

body.dark-theme .disclaimer p {
    color: var(--color-text);
}

/* Step Indicator */
.step-indicator {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--space-2xl);
    background: var(--color-bg-elevated);
    padding: var(--space-lg);
    border-radius: var(--radius-lg);
}

.step {
    flex: 1;
    text-align: center;
    padding: var(--space-lg);
    position: relative;
}

.step:not(:last-child)::after {
    content: '→';
    position: absolute;
    right: -1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-border);
    font-size: var(--font-size-2xl);
}

.step.active {
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
}

.step.active .step-number {
    background: var(--color-primary);
    color: white;
}

.step.completed {
    color: #27ae60;
}

.step.completed .step-number {
    background: #27ae60;
    color: white;
}

.step-number {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 50%;
    background: var(--color-border);
    color: var(--color-text-muted);
    margin-bottom: var(--space-sm);
    font-weight: var(--font-weight-bold);
}

.step-title {
    font-size: var(--font-size-sm);
    display: block;
}

/* Intro Text */
.intro-text {
    background: var(--color-accent);
    padding: var(--space-xl);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-xl);
    border-left: 4px solid var(--color-primary);
}

body.dark-theme .intro-text {
    background: var(--color-bg-elevated);
}

.intro-text h3 {
    color: var(--color-primary);
    margin-bottom: var(--space-md);
    font-size: var(--font-size-lg);
}

.intro-text p {
    margin-bottom: var(--space-md);
    line-height: 1.7;
}

.intro-text p:last-child {
    margin-bottom: 0;
}

/* Labels */
label {
    display: block;
    margin-top: var(--space-lg);
    margin-bottom: var(--space-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    font-size: var(--font-size-base);
}

.label-description {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    font-weight: normal;
    margin-top: var(--space-xs);
    font-style: italic;
}

/* Inputs */
input,
select,
textarea {
    width: 100%;
    padding: var(--space-md);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-base);
    font-family: inherit;
    background: var(--color-bg-elevated);
    color: var(--color-text);
    transition: all var(--transition-fast);
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(75, 46, 131, 0.1);
}

textarea {
    min-height: 100px;
    resize: vertical;
}

/* Tip Box */
.tip-box {
    background: #e8f4f8;
    padding: var(--space-lg);
    border-radius: var(--radius-sm);
    margin: var(--space-lg) 0;
    border-left: 4px solid #3498db;
    font-size: var(--font-size-sm);
}

body.dark-theme .tip-box {
    background: rgba(52, 152, 219, 0.1);
    border-color: #3498db;
}

.tip-box strong {
    color: #3498db;
}

/* Loading Indicator */
.loading {
    text-align: center;
    padding: var(--space-2xl);
    color: var(--color-primary);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
}

.loading::after {
    content: '...';
    animation: dots 1.5s steps(4, end) infinite;
}

@keyframes dots {
    0%, 20% { content: '.'; }
    40% { content: '..'; }
    60%, 100% { content: '...'; }
}

/* Results */
.results {
    background: var(--color-accent);
    padding: var(--space-xl);
    border-radius: var(--radius-md);
    border: 2px solid var(--color-primary);
    margin-top: var(--space-xl);
}

body.dark-theme .results {
    background: var(--color-bg-elevated);
}

.results h3 {
    color: var(--color-primary);
    margin-bottom: var(--space-lg);
}

.result-section {
    background: var(--color-bg-elevated);
    padding: var(--space-lg);
    border-radius: var(--radius-sm);
    margin-bottom: var(--space-lg);
    border-left: 4px solid #27ae60;
}

body.dark-theme .result-section {
    background: var(--color-bg);
}

.result-section h4 {
    color: #27ae60;
    margin-bottom: var(--space-md);
}

.result-section .content {
    white-space: pre-wrap;
    line-height: 1.8;
    color: var(--color-text);
}

/* Export Buttons */
.export-buttons {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-top: var(--space-xl);
}

.export-buttons .btn {
    margin-top: 0;
    flex: 1;
    min-width: 120px;
}

/* Hidden class */
.hidden {
    display: none !important;
}

/* Character Counter */
.char-counter {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-align: right;
    margin-top: var(--space-xs);
}

.char-counter.warning {
    color: #e74c3c;
    font-weight: var(--font-weight-bold);
}

.char-counter.good {
    color: #27ae60;
}

/* Button variants */
.btn-success {
    background: #27ae60;
    color: white;
}

.btn-success:hover {
    background: #1e8449;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .step-indicator {
        padding: var(--space-md);
    }

    .step {
        padding: var(--space-sm);
    }

    .step:not(:last-child)::after {
        display: none;
    }

    .step-title {
        display: none;
    }

    .export-buttons {
        flex-direction: column;
    }

    .export-buttons .btn {
        min-width: 100%;
    }
}

@media (max-width: 480px) {
    .intro-text {
        padding: var(--space-lg);
    }

    .step {
        padding: var(--space-xs);
    }

    .step-number {
        width: 35px;
        height: 35px;
        line-height: 35px;
    }
}

/* Print styles */
@media print {
    .disclaimer,
    .step-indicator,
    .btn,
    .export-buttons {
        display: none;
    }

    .results {
        border: none;
        box-shadow: none;
    }

    .result-section {
        page-break-inside: avoid;
    }
}