/* =========================================
   1. SHARED THEME VARIABLES
   ========================================= */
:root {
    --col-purple: #4A144B;
    --col-pink: #ff3399;
    --col-gold: #d4af37;
    
    /* Friendly Pastels */
    --bg-body: #fdfbf7;
    --bg-soft-pink: #fff0f6;
    --bg-soft-purple: #f3eafa;
    --bg-white: #ffffff;
    
    --text-dark: #2d2d2d;
    --text-light: #666;
    
    --font-head: 'Playfair Display', serif;
    --font-body: 'Outfit', sans-serif;
    
    --radius-card: 24px;
    --shadow-soft: 0 10px 40px rgba(0,0,0,0.05);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body { 
    background-color: var(--bg-body); color: var(--text-dark); 
    font-family: var(--font-body); line-height: 1.6; overflow-x: hidden;
}

.story {
    background-color:#ffffff;
}

a { text-decoration: none; color: inherit; transition: 0.3s; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 25px; background-color: var(--bg-white); }

/* =========================================
   2. HEADER
   ========================================= */
header {
    border-top-left-radius:20px;
    border-top-right-radius:20px;
    padding: 20px 40px; display: flex; justify-content: space-between; align-items: center;
    background: white; border-bottom: 1px solid rgba(0,0,0,0.05);
}
.brand { font-family: var(--font-head); font-size: 1.8rem; font-weight: 700; color: var(--col-purple); display: flex; align-items: center; gap: 5px; }
.brand span { color: var(--col-pink); font-size: 2rem; line-height: 0; margin-bottom: 5px; }
.cancel-btn { font-size: 0.9rem; font-weight: 600; color: #888; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.cancel-btn:hover { color: var(--col-purple); }

/* =========================================
   3. MAIN LAYOUT (Split View)
   ========================================= */
.submit-wrapper {
    display: grid; grid-template-columns: 1.5fr 1fr; gap: 60px;
    padding: 60px 0;
}

/* --- LEFT: FORM SECTION --- */
.form-header { margin-bottom: 40px; }
.page-title { font-family: var(--font-head); font-size: 3rem; margin-bottom: 15px; color: var(--col-purple); line-height: 1.1; }
.page-sub { font-size: 1.1rem; color: var(--text-light); }

.story-form {
    background: white; padding: 40px; border-radius: var(--radius-card);
    box-shadow: var(--shadow-soft);
}

.form-group { margin-bottom: 25px; }
.label { font-weight: 700; font-size: 0.9rem; color: #444; margin-bottom: 8px; display: block;float:left; }
.sub-label { font-size: 0.8rem; color: #999; font-weight: 400; margin-left: 5px; }

.input-field {
    width: 100%; padding: 15px; border: 1px solid #eee; border-radius: 12px;
    font-family: var(--font-body); font-size: 1rem; outline: none; background: #fafafa;
    transition: 0.3s;
}

input[type="checkbox"] {
    width: auto !important;
}
.input-field:focus { background: white; border-color: var(--col-purple); box-shadow: 0 0 0 3px var(--bg-soft-purple); }

textarea.input-field { height: 300px; resize: vertical; line-height: 1.6; }

/* Checkbox Style */
.checkbox-group { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; }
.checkbox-group input { margin-top: 5px; accent-color: var(--col-purple); }
.checkbox-label { font-size: 0.9rem; color: #666; line-height: 1.4; }

.btn-submit {
    background: var(--col-purple); color: white; padding: 18px 40px; border: none;
    border-radius: 50px; font-weight: 700; font-size: 1.1rem; cursor: pointer;
    width: 100%; margin-top: 30px; transition: 0.3s;
}
.btn-submit:hover { background: var(--col-pink); transform: translateY(-3px); box-shadow: 0 10px 20px rgba(255, 51, 153, 0.2); }

/* --- RIGHT: GUIDANCE SIDEBAR --- */
.guidance-box {
    position: sticky; top: 40px;
}

.tip-card {
    background: var(--bg-soft-purple); padding: 30px; border-radius: var(--radius-card);
    margin-bottom: 30px;
}
.tip-icon { font-size: 1.5rem; color: var(--col-purple); margin-bottom: 15px; }
.tip-title { font-family: var(--font-head); font-size: 1.5rem; margin-bottom: 10px; }
.tip-list { list-style: none; padding: 0; }
.tip-list li { 
    position: relative; padding-left: 20px; margin-bottom: 12px; 
    font-size: 0.95rem; color: #555; 
}
.tip-list li::before { 
    content: '•'; color: var(--col-pink); position: absolute; left: 0; font-weight: bold; 
}

.prompt-card {
    background: var(--bg-soft-pink); padding: 30px; border-radius: var(--radius-card);
}
.prompt-tag { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; color: var(--col-pink); letter-spacing: 1px; }
.prompt-text { font-family: var(--font-head); font-size: 1.3rem; margin-top: 10px; line-height: 1.4; font-style: italic; }

/* --- SUCCESS MODAL --- */
.modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.6); z-index: 200; display: none; 
    justify-content: center; align-items: center; backdrop-filter: blur(5px);
}
.modal-box {
    background: white; width: 400px; padding: 40px; border-radius: 30px;
    text-align: center; animation: popUp 0.3s ease; position: relative;
}
@keyframes popUp { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }

.modal-close-icon {
    position: absolute; top: 16px; right: 20px; font-size: 1.1rem;
    color: #999; cursor: pointer; transition: color 0.2s ease;
}
.modal-close-icon:hover { color: #333; }

.check-circle { 
    width: 70px; height: 70px; background: #e8f5e9; border-radius: 50%; 
    display: flex; justify-content: center; align-items: center; 
    margin: 0 auto 20px auto; color: #2e7d32; font-size: 2rem; 
}

/* Responsive */
@media (max-width: 900px) {
    .submit-wrapper { grid-template-columns: 1fr; gap: 20px; padding:20px; }
    .guidance-box { order: -1; position: static; } /* Tips on top for mobile */
    .page-title { font-size: 1.75rem; font-weight:bold; }
    .story-form { padding:20px; margin-bottom: 50px; }
    .tip-title { display: inline-block; margin-left: 10px; }
    .form-header { padding: 20px;  margin-bottom: 0px; }