/* === Charte graphique Rastaplouss ===
   Couleurs tirées de l'affiche hero :
   - Rouge foncé : #8b1a1a (titres, accents)
   - Vert forêt  : #2c4a1e (nav, éléments principaux)
   - Jaune/or    : #c8a94e (highlights, stats)
   - Crème       : #f5f0e1 (fond)
   - Beige sable : #e8dcc8 (sidebar, cards)
   - Noir texte  : #1a1a1a
*/

/* === Reset & Base === */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    font-family: "Georgia", "Times New Roman", serif;
    color: #1a1a1a;
    background: #f5f0e1;
}
a { color: #8b1a1a; text-decoration: none; }
a:hover { text-decoration: underline; }

/* === Navbar === */
.navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 1.2rem;
    background: #2c4a1e;
    color: #f5f0e1;
    height: 50px;
    border-bottom: 3px solid #8b1a1a;
}
.navbar-brand {
    color: #f5f0e1;
    font-weight: bold;
    font-size: 1.2rem;
    font-family: "Georgia", serif;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.navbar-brand:hover { text-decoration: none; color: #c8a94e; }
.navbar-links a { color: #d4c9a8; margin-left: 1.2rem; font-size: 0.9rem; }
.navbar-links a:hover { color: #f5f0e1; }

/* === Flash messages === */
.flash { padding: 0.5rem 1rem; font-size: 0.9rem; }
.flash-error { background: #f5d0d0; color: #8b1a1a; border-left: 4px solid #8b1a1a; }
.flash-success { background: #d4e8c8; color: #2c4a1e; border-left: 4px solid #2c4a1e; }

/* === Landing === */
.landing {
    text-align: center;
    padding: 2rem 2rem 3rem;
    max-width: 800px;
    margin: 0 auto;
}
.landing-hero {
    margin: 0 auto 2rem;
    max-width: 320px;
}
.landing-hero img {
    width: 100%;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    border: 3px solid #2c4a1e;
}
.landing h1 {
    font-size: 2.2rem;
    margin-bottom: 0.4rem;
    color: #8b1a1a;
    font-family: "Georgia", serif;
    letter-spacing: 0.5px;
}
.landing .subtitle {
    color: #555;
    margin-bottom: 2rem;
    font-size: 1.05rem;
    font-style: italic;
}
.landing-stats {
    display: flex;
    justify-content: center;
    gap: 3rem;
    margin-bottom: 2.5rem;
}
.stat {
    display: flex;
    flex-direction: column;
    padding: 1rem 1.5rem;
    background: #e8dcc8;
    border-radius: 6px;
    border: 1px solid #d4c9a8;
}
.stat-number { font-size: 1.8rem; font-weight: bold; color: #8b1a1a; }
.stat-label { font-size: 0.85rem; color: #666; }

/* === Buttons === */
.btn {
    display: inline-block;
    padding: 0.65rem 1.8rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.95rem;
    font-family: "Georgia", serif;
    transition: background 0.2s;
}
.btn-primary {
    background: #8b1a1a;
    color: #f5f0e1;
}
.btn-primary:hover { background: #6d1414; text-decoration: none; }
.btn-small { padding: 0.3rem 0.8rem; font-size: 0.8rem; }
.btn-danger { background: #8b1a1a; color: #f5f0e1; }

/* === Auth form === */
.auth-form {
    max-width: 380px;
    margin: 3rem auto;
    padding: 2rem;
    background: #e8dcc8;
    border-radius: 8px;
    border: 1px solid #d4c9a8;
}
.auth-form h2 { margin-bottom: 1.5rem; color: #8b1a1a; }
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; margin-bottom: 0.3rem; font-size: 0.9rem; color: #444; }
.form-group input, .form-group select {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #c4b89a;
    border-radius: 4px;
    font-size: 0.95rem;
    background: #f5f0e1;
}
.form-group input:focus, .form-group select:focus {
    outline: none;
    border-color: #8b1a1a;
    box-shadow: 0 0 0 2px rgba(139, 26, 26, 0.15);
}

/* === Map layout === */
.map-container {
    display: flex;
    height: calc(100vh - 50px);
    overflow: hidden;
}

#map { flex: 1; min-width: 200px; }

.sidebar {
    overflow-y: auto;
    padding: 0.8rem;
    background: #e8dcc8;
    border-color: #d4c9a8;
}
.sidebar h3 {
    font-size: 0.95rem;
    color: #8b1a1a;
    margin-bottom: 0.6rem;
    font-family: "Georgia", serif;
}

.sidebar-left {
    width: 220px;
    min-width: 160px;
    border-right: 1px solid #d4c9a8;
}

.sidebar-right {
    width: 320px;
    min-width: 200px;
    border-left: 1px solid #d4c9a8;
}

/* === Resize handle === */
.resize-handle {
    width: 5px;
    cursor: col-resize;
    background: #d4c9a8;
    transition: background 0.2s;
}
.resize-handle:hover { background: #8b1a1a; }

/* === Vignes table === */
.vignes-table-wrapper { overflow-y: auto; max-height: calc(100vh - 140px); }
#vignes-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
#vignes-table th {
    position: sticky;
    top: 0;
    background: #d4c9a8;
    padding: 0.3rem 0.4rem;
    text-align: left;
    font-weight: 600;
    border-bottom: 2px solid #8b1a1a;
    color: #1a1a1a;
}
#vignes-table td { padding: 0.25rem 0.4rem; border-bottom: 1px solid #d4c9a8; }
#vignes-table tr:hover { background: #d4e8c8; cursor: pointer; }
#vignes-commune-name { font-size: 0.85rem; color: #666; margin-bottom: 0.5rem; font-style: italic; }

/* === Layer list === */
.layer-item {
    padding: 0.4rem 0;
    border-bottom: 1px solid #d4c9a8;
    font-size: 0.85rem;
}
.layer-item label { display: flex; align-items: center; gap: 0.4rem; cursor: pointer; }
.layer-opacity { width: 100%; margin-top: 0.2rem; accent-color: #8b1a1a; }

/* === Admin === */
.admin-page { max-width: 800px; margin: 2rem auto; padding: 0 1rem; }
.admin-page h2 { color: #8b1a1a; margin-bottom: 1rem; }
.admin-page h3 { color: #2c4a1e; margin: 1.5rem 0 0.8rem; }
table.admin-table { width: 100%; border-collapse: collapse; }
table.admin-table th, table.admin-table td { padding: 0.5rem; text-align: left; border-bottom: 1px solid #d4c9a8; }
table.admin-table th { background: #e8dcc8; color: #1a1a1a; }
