:root {
    --bg: #f9f7f3;
    --card-bg: #ffffff;
    --text: #333333;
    --accent: #00695c;
    --accent-light: #004d40;
    --soft: #e8f0e8;
    --border: #ddd;
}
body.dark {
    --bg: #121212;
    --card-bg: #1e1e1e;
    --text: #e0e0e0;
    --accent: #66bb6a;
    --accent-light: #388e3c;
    --soft: #26332e;
    --border: #444;
}
body { 
    font-family: Georgia, serif; 
    background: var(--bg); 
    color: var(--text); 
    max-width: 900px; 
    margin: 0 auto; 
    padding: 20px; 
    line-height: 1.8; 
    transition: background 0.3s, color 0.3s;
}
header { 
    text-align: center; 
    padding: 30px 20px; 
    background: linear-gradient(to bottom, var(--accent-light), var(--accent)); 
    color: white; 
    border-radius: 12px; 
    margin-bottom: 30px; 
}
h1 { margin: 0; font-size: 2.4em; }
h2 { margin-top: 0; color: var(--accent); }
section, details { 
    margin: 30px 0; 
    padding: 25px; 
    background: var(--card-bg); 
    border-radius: 12px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.08); 
    border: 1px solid var(--border);
}
#passage { font-size: 1.25em; font-style: italic; margin: 20px 0; }
.quote { font-style: italic; border-left: 4px solid var(--accent); padding-left: 18px; margin: 15px 0; }
button { 
    padding: 10px 18px; 
    background: var(--accent); 
    color: white; 
    border: none; 
    border-radius: 6px; 
    cursor: pointer; 
    margin: 5px; 
    transition: background 0.2s;
}
button:hover { background: var(--accent-light); }
input, select, textarea { 
    padding: 10px; 
    margin: 5px; 
    border-radius: 6px; 
    border: 1px solid var(--border); 
    box-sizing: border-box; 
}
textarea { width: 100%; resize: vertical; }
.nav-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 20px 0; }
.date-controls { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px; margin: 15px 0; }
#season-note { 
    font-style: italic; 
    margin: 15px 0 25px; 
    color: var(--accent); 
    font-size: 1.15em; 
    font-weight: 600; 
}
#hymn-link, #random-hymn { margin-top: 15px; font-style: italic; }
#hymn-link a, #random-hymn a { color: var(--accent); text-decoration: underline; }
.share-buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 15px; justify-content: center; }
.streak { text-align: center; font-size: 1.1em; margin: 15px 0; color: var(--accent); }
#dark-toggle { 
    position: fixed; top: 20px; right: 20px; 
    background: var(--accent); padding: 10px; 
    border-radius: 50%; width: 50px; height: 50px; 
    font-size: 1.4em; border: none; z-index: 1000;
}
footer { text-align: center; margin-top: 50px; font-size: 0.9em; color: #666; }
.modal { 
    display: none; position: fixed; top: 0; left: 0; 
    width: 100%; height: 100%; background: rgba(0,0,0,0.7); 
    justify-content: center; align-items: center; z-index: 2000;
}
.modal-content { 
    background: var(--card-bg); padding: 30px; max-width: 600px; 
    border-radius: 12px; max-height: 80vh; overflow-y: auto; 
}
#journal-status { font-style: italic; margin-top: 10px; text-align: center; }
summary { cursor: pointer; }
@media print {
    #dark-toggle, .nav-buttons, .date-controls, button, .share-buttons, footer a { display: none !important; }
}
a {
    color: var(--accent);
    text-decoration: underline;
}
a:hover {
    color: var(--accent-light);
}

body.dark a {
    color: #81c784; /* soft, readable green */
}
body.dark a:hover {
    color: #a5d6a7;
}