:root { 
    --primary: #0056b3; /* Το μπλε του συνεδρίου σου */
    --success: #28a745; 
    --gray: #6c757d; 
    --light: #f8f9fa; 
}

body { 
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
    background: #f0f2f5; 
    padding: 20px; 
    color: #333; 
    line-height: 1.5; 
}

.wrapper { 
    max-width: 850px; 
    margin: auto; 
    background: #fff; 
    padding: 40px; 
    border-radius: 12px; 
    box-shadow: 0 10px 25px rgba(0,0,0,0.08); 
}

/* STEPPER */
.stepper { 
    display: flex; 
    justify-content: space-between; 
    margin-bottom: 40px; 
    position: relative; 
}

.stepper::before { 
    content: ""; 
    position: absolute; 
    top: 20px; 
    left: 5%; 
    width: 90%; 
    height: 2px; 
    background: #eee; 
    z-index: 1; 
}

.step-item { 
    position: relative; 
    z-index: 2; 
    text-align: center; 
    flex: 1; 
}

.step-dot { 
    width: 40px; 
    height: 40px; 
    background: #fff; 
    border: 2px solid #eee; 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    margin: 0 auto 8px; 
    font-weight: bold; 
    color: #999; 
}

.step-label { 
    font-size: 10px; 
    color: #888; 
    font-weight: 700; 
    text-transform: uppercase; 
}

.step-item.active .step-dot { 
    border-color: var(--primary); 
    background: var(--primary); 
    color: #fff; 
    box-shadow: 0 0 0 5px rgba(0,123,255,0.15); 
}

.step-item.completed .step-dot { 
    border-color: var(--success); 
    background: var(--success); 
    color: #fff; 
}

/* PANES */
.pane { display: none; } 
.active-pane { 
    display: block !important; 
    animation: fadeIn 0.4s ease; 
}

@keyframes fadeIn { 
    from { opacity: 0; transform: translateY(10px); } 
    to { opacity: 1; transform: translateY(0); } 
}

/* INPUTS */
input[type="text"], 
input[type="email"], 
input[type="tel"], 
select { 
    width: 100%; 
    height: 48px; 
    padding: 0 15px; 
    margin: 10px 0; 
    border: 1px solid #ddd; 
    border-radius: 8px; 
    box-sizing: border-box; 
    font-size: 15px; 
    background-color: #fff;
    display: block; 
    line-height: 48px; 
    appearance: none; 
    -webkit-appearance: none;
}

select {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat; 
    background-position: right 15px center; 
    background-size: 16px; 
    padding-right: 45px; 
    cursor: pointer;
}

textarea { 
    width: 100%; 
    padding: 15px; 
    margin: 10px 0; 
    border: 1px solid #ddd; 
    border-radius: 8px; 
    box-sizing: border-box; 
    font-size: 15px; 
    height: 300px !important; 
    resize: vertical; 
}

/* REVIEW STYLES */
.review-section { 
    background: #fcfcfc; 
    border: 1px solid #eee; 
    padding: 20px; 
    border-radius: 10px; 
    margin-bottom: 20px; 
}

.review-section h4 { 
    margin: 0 0 10px 0; 
    color: var(--primary); 
    border-bottom: 2px solid #f0f0f0; 
    padding-bottom: 5px; 
}

.review-row { 
    margin-bottom: 8px; 
    font-size: 14px; 
}

.review-label { 
    font-weight: bold; 
    color: #555; 
    width: 160px; 
    display: inline-block; 
}

/* BUTTONS */
.btn { 
    padding: 14px 28px; 
    border: none; 
    border-radius: 6px; 
    cursor: pointer; 
    font-weight: bold; 
    margin-top: 20px; 
    transition: 0.3s; 
    font-size: 15px; 
}

.btn-next { background: var(--primary); color: #fff; float: right; }
.btn-back { background: var(--gray); color: #fff; }
.btn-send { background: var(--success); color: #fff; width: 100%; font-size: 18px; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.loader { 
    border: 3px solid #f3f3f3; 
    border-top: 3px solid #fff; 
    border-radius: 50%; 
    width: 18px; 
    height: 18px; 
    animation: spin 1s linear infinite; 
    display: inline-block; 
    margin-right: 10px; 
    vertical-align: middle; 
}

@keyframes spin { 
    0% { transform: rotate(0deg); } 
    100% { transform: rotate(360deg); } 
}

.author-row { 
    border-bottom: 1px solid #eee; 
    padding: 15px 0; 
}

.flex-row { 
    display: flex; 
    gap: 10px; 
}

.flex-row input, 
.flex-row select { 
    flex: 1; 
}

#word-badge { 
    text-align: center; 
    padding: 8px; 
    background: #ffeef0; 
    color: #d73a49; 
    border-radius: 6px; 
    font-weight: bold; 
    margin: 10px 0; 
}

.valid-badge { 
    background: #e6ffed !important; 
    color: #22863a !important; 
}
/* Βελτίωση για κινητά τηλέφωνα */
@media (max-width: 600px) {
    .flex-row {
        flex-direction: column; /* Τα inputs γίνονται το ένα κάτω από το άλλο */
        gap: 0;
    }
    
    .wrapper {
        padding: 20px; /* Λιγότερο padding στα πλάγια */
    }

    .stepper::before {
        display: none; /* Κρύβουμε τη γραμμή στο κινητό γιατί τα βήματα στριμώχνονται */
    }
    
    .step-label {
        font-size: 8px; /* Μικρότερα γράμματα labels */
    }
}

/* Fix για το container των κουμπιών (για να μην χρησιμοποιείς floats) */
.button-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 30px;
}

/* Αν θες να κρατήσεις το float, πρόσθεσε αυτό στο pane για να μην "καταρρέει" */
.pane::after {
    content: "";
    display: table;
    clear: both;
}

/* Μικρή βελτίωση στο Hover των κουμπιών */
.btn:hover:not(:disabled) {
    filter: brightness(90%);
    transform: translateY(-1px);
}

.btn:active:not(:disabled) {
    transform: translateY(0);
}