body { font-family: 'Poppins', sans-serif; background: #f8f9fa; color: #333; }
.hero { background: linear-gradient(135deg, #0c6a93, #06a9f2); color: white; padding: 4rem 1rem; text-align: center; }
.hero h1 { font-weight: 700; margin-bottom: 1rem; }
.hero p { font-size: 1.1rem; max-width: 600px; margin: 0 auto; opacity: 0.9; }

.tool-container { max-width: 800px; margin: -2rem auto 4rem; background: white; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); padding: 2rem; position: relative; z-index: 10; border: 1px solid rgba(12, 106, 147, 0.08); }

.dropzone { border: 2px dashed #007acc; border-radius: 12px; padding: 3rem 1rem; text-align: center; background: #f0f8ff; cursor: pointer; transition: all 0.3s ease; }
.dropzone.dragover { background: #e0f0ff; border-color: #005fa3; }
.dropzone i { font-size: 3rem; color: #007acc; margin-bottom: 1rem; }
.dropzone h3 { font-size: 1.2rem; font-weight: 600; color: #0c6a93; margin-bottom: 0.5rem; }
.dropzone p { color: #555; font-size: 0.9rem; margin-bottom: 1.5rem; }

#fileInput { display: none; }

.btn-custom { background: #007acc !important; color: white !important; border: none; padding: 0.8rem 3.5rem; min-width: 240px; border-radius: 12px !important; font-weight: 600; font-size: 1.05rem; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 4px 6px rgba(0,0,0,0.05); }
.btn-custom:hover { background: #005fa3 !important; color: white !important; transform: translateY(-2px); box-shadow: 0 8px 15px rgba(0,122,204,0.3); }

.btn-modern { padding: 0.65rem 1.75rem; border-radius: 12px !important; font-weight: 600; font-size: 0.85rem; display: inline-flex; align-items: center; gap: 8px; margin: 8px 10px; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 4px 6px rgba(0,0,0,0.05); }
.btn-modern:hover { transform: translateY(-2px); box-shadow: 0 8px 15px rgba(0,0,0,0.1); }
.btn-modern:active { transform: translateY(0); box-shadow: 0 2px 4px rgba(0,0,0,0.05); }

/* Refined Action Buttons for Success State */
.btn-action-primary {
    background: linear-gradient(135deg, #10b981, #059669) !important;
    color: white !important;
    border: none;
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
}
.btn-action-primary:hover {
    background: linear-gradient(135deg, #059669, #047857) !important;
    color: white !important;
    box-shadow: 0 8px 20px rgba(16, 185, 129, 0.4);
}

.btn-action-studio {
    background: linear-gradient(135deg, #0c6a93, #06a9f2) !important;
    color: white !important;
    border: none;
    box-shadow: 0 4px 15px rgba(6, 169, 242, 0.3);
}
.btn-action-studio:hover {
    background: linear-gradient(135deg, #095373, #058bc7) !important;
    color: white !important;
    box-shadow: 0 8px 20px rgba(6, 169, 242, 0.4);
}

.btn-action-secondary {
    background: white !important;
    color: #475569 !important;
    border: 2px solid #cbd5e1 !important;
}
.btn-action-secondary:hover {
    background: #f8fafc !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
}

.btn-cta { background: linear-gradient(135deg, #f0932b, #ffbe76) !important; color: #fff !important; border: none; box-shadow: 0 4px 15px rgba(240, 147, 43, 0.4); }
.btn-cta:hover { background: linear-gradient(135deg, #e58e26, #f0932b) !important; color: #fff !important; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(240, 147, 43, 0.5); }

.success-area { display: none; text-align: center; background: #e8f5e9; border: 1px solid #c8e6c9; border-radius: 8px; padding: 2rem; margin-top: 2rem; }
.success-area i { font-size: 3rem; color: #2e7d32; margin-bottom: 1rem; }
.success-area h4 { color: #2e7d32; font-weight: 700; margin-bottom: 0.5rem; }

/* Validator specific */
.results-area { display: none; margin-top: 2rem; }
.error-list { max-height: 300px; overflow-y: auto; text-align: left; background: #fff5f5; border: 1px solid #ffcdd2; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; }
.error-item { margin-bottom: 0.5rem; padding-bottom: 0.5rem; border-bottom: 1px solid #ffebee; font-size: 0.9rem; }
.error-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.error-item strong { color: #d32f2f; }

/* Shifter specific */
.settings-area { display: none; background: linear-gradient(180deg, #ffffff, #f8fbff); border: 1px solid #ddd; border-radius: 8px; padding: 2rem; text-align: center; }
.settings-area input { font-size: 1.5rem; text-align: center; max-width: 200px; margin: 1rem auto; display: block; border-radius: 8px; border: 2px solid #ccc; padding: 0.5rem; }

/* Footer */
.footer-tools { background: #222; color: #fff; padding: 2rem; text-align: center; margin-top: auto; }
.footer-tools a { color: #03A9F3; margin: 0 10px; text-decoration: none; }
.footer-tools a:hover { text-decoration: underline; }

/* Aspect Ratio Calculator */
.calculator-card { background: white; border-radius: 16px; padding: 2rem; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.preset-btn { border: 2px solid #e0e0e0; background: white; border-radius: 8px; padding: 0.8rem; text-align: center; cursor: pointer; transition: all 0.2s; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.preset-btn:hover { border-color: #007acc; background: #f0f8ff; }
.preset-btn.active { border-color: #007acc; background: #e0f0ff; font-weight: 700; color: #007acc; box-shadow: 0 4px 10px rgba(0,122,204,0.15); }

.sim-container { background: #e9ecef; border-radius: 12px; height: 400px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; padding: 1rem; border: 1px solid #dee2e6; }
.sim-target { background: #1a1a1a; display: flex; align-items: center; justify-content: center; position: relative; box-shadow: 0 5px 15px rgba(0,0,0,0.3); overflow: hidden; transition: all 0.3s ease; }
.sim-video { background: url('data:image/svg+xml;utf8,<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><rect width="40" height="40" fill="%23007acc" opacity="0.8"/><circle cx="20" cy="20" r="10" fill="%23ffffff" opacity="0.3"/></svg>') repeat; display: flex; align-items: center; justify-content: center; position: relative; transition: all 0.3s ease; }

/* Safe Zones */
.safe-zone-overlay { position: absolute; inset: 0; pointer-events: none; border: 2px dashed rgba(255,255,255,0.4); display: none; }
.safe-zone-overlay .sz-top { position: absolute; top: 0; left: 0; right: 0; height: 15%; background: rgba(255,0,0,0.2); }
.safe-zone-overlay .sz-bottom { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: rgba(255,0,0,0.2); }
.safe-zone-overlay .sz-right { position: absolute; bottom: 20%; right: 0; top: 30%; width: 15%; background: rgba(255,0,0,0.2); }

.ffmpeg-box { background: #2d2d2d; color: #a6e22e; padding: 1rem; border-radius: 8px; font-family: monospace; font-size: 0.9rem; word-break: break-all; margin-top: 1rem; border: 1px solid #1a1a1a; }
.btn-copy { position: absolute; top: 10px; right: 10px; background: rgba(255,255,255,0.1); border: none; color: white; padding: 4px 8px; border-radius: 4px; font-size: 0.8rem; cursor: pointer; transition: background 0.2s; }
.btn-copy:hover { background: rgba(255,255,255,0.2); }

/* How-To Steps Styles */
.howto-section {
    margin-top: 4rem;
    margin-bottom: 3rem;
}
.howto-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: #0b2a42;
    margin-bottom: 2rem;
    text-align: center;
}
.step-card {
    background: #ffffff;
    border: 1px solid rgba(12, 106, 147, 0.08);
    border-radius: 16px;
    padding: 2rem 1.5rem;
    height: 100%;
    box-shadow: 0 4px 20px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-align: center;
}
.step-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(12, 106, 147, 0.08);
}
.step-number {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #0c6a93, #06a9f2);
    color: white;
    font-size: 1.5rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 10px rgba(6, 169, 242, 0.3);
}
.step-card h4 {
    font-size: 1.15rem;
    font-weight: 600;
    color: #0c6a93;
    margin-bottom: 0.75rem;
}
.step-card p {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.6;
    margin: 0;
}

/* FAQ Accordion Styles */
.faq-section {
    margin-top: 4rem;
    margin-bottom: 5rem;
}
.faq-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: #0b2a42;
    margin-bottom: 2rem;
    text-align: center;
}
.faq-accordion {
    max-width: 800px;
    margin: 0 auto;
}
.faq-item {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    margin-bottom: 1rem;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.01);
    transition: border-color 0.3s, box-shadow 0.3s;
}
.faq-item:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}
.faq-item[open] {
    border-color: #0c6a93;
    box-shadow: 0 4px 20px rgba(12, 106, 147, 0.08);
}
.faq-item summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    font-weight: 600;
    color: #0b2a42;
    cursor: pointer;
    outline: none;
    list-style: none; /* Hide default arrow */
    user-select: none;
    font-size: 1.05rem;
}
.faq-item summary::-webkit-details-marker {
    display: none; /* Hide default arrow in Safari */
}
.faq-item summary::after {
    content: '\f078'; /* fontawesome caret down */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.9rem;
    color: #64748b;
    transition: transform 0.3s ease, color 0.3s ease;
}
.faq-item[open] summary::after {
    transform: rotate(180deg);
    color: #0c6a93;
}
.faq-item .faq-answer {
    padding: 1.25rem 1.5rem;
    color: #4a5568;
    background: #f8fafc;
    border-top: 1px solid #edf2f7;
    line-height: 1.7;
    font-size: 0.95rem;
}
.faq-item .faq-answer p:last-child {
    margin-bottom: 0;
}