/* Annule la règle d'accueil compacte de site.css, qui cible aussi cette application. */
body.almanach-page { height:auto; min-height:100vh; overflow-x:hidden; overflow-y:auto; background: radial-gradient(circle at 83% 15%, rgba(28, 92, 121, .24), transparent 29rem), var(--night); }
.almanach-page .site-header { position:relative; background:rgba(7, 17, 31, .9); }
.almanach-shell { max-width: 1600px; margin: 0 auto; padding: clamp(2.4rem, 5vw, 5rem); }
.almanach-intro { max-width: 750px; margin-bottom: 2.6rem; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 2rem; color:var(--muted); font-size:.72rem; letter-spacing:.06em; }
.breadcrumb a:hover { color:var(--cyan); }
.almanach-intro .eyebrow, .control-panel .eyebrow, .chart-panel .eyebrow { margin-bottom:.8rem; }
.almanach-intro h1, .control-panel h2, .chart-panel h2 { margin:0; font-family:Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.045em; line-height:1; }
.almanach-intro h1 { font-size:clamp(2.2rem, 6vw, 5.5rem); white-space:nowrap; }
.almanach-intro h1 span, .control-panel h2 span, .chart-panel h2 span { color:var(--cyan); }
.almanach-intro > p:last-child { max-width:650px; color:var(--muted); line-height:1.65; }
.almanach-layout { display:grid; grid-template-columns:minmax(250px, 300px) minmax(0, 1fr); gap:1.25rem; align-items:start; }
.control-panel, .chart-panel { border:1px solid var(--line); background:rgba(11, 28, 45, .72); box-shadow: 10px 12px 0 rgba(0,0,0,.18); }
.control-panel { padding:1.4rem; }
.control-panel__head { padding-bottom:1.3rem; border-bottom:1px solid var(--line); }
.control-panel h2, .chart-panel h2 { font-size:1.9rem; }
form { display:grid; gap:1.2rem; margin-top:1.4rem; }
fieldset { min-width:0; margin:0; padding:0; border:0; }
legend { width:100%; margin-bottom:.8rem; color:var(--muted); font-size:.67rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
label { display:grid; gap:.4rem; color:var(--text); font-size:.78rem; }
input, select { width:100%; min-width:0; padding:.65rem .55rem; color:var(--text); border:1px solid var(--line); border-radius:0; background:#07111f; font:inherit; }
input:focus-visible, select:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; margin-top:.75rem; }
.form-note { margin:.75rem 0 0; color:var(--muted); font-size:.67rem; line-height:1.5; }
.object-list { display:grid; grid-template-columns:1fr 1fr; gap:.2rem .5rem; }
.checklistbox { max-height:12.5rem; display:grid; grid-template-columns:1fr 1fr; gap:.2rem .5rem; overflow-y:auto; padding:.4rem .55rem; border:1px solid var(--line); background:#07111f; scrollbar-color:var(--cyan) #07111f; }
.event-toggles { display:flex; flex-wrap:wrap; gap:.75rem; }
.event-toggles label { display:flex; align-items:center; gap:.4rem; color:var(--muted); cursor:pointer; }
.event-toggles input { appearance:auto; width:auto; margin:0; accent-color:var(--cyan); }
.object-choice { display:flex; align-items:center; gap:.45rem; padding:.28rem 0; color:var(--muted); cursor:pointer; font-size:.76rem; }
.object-choice input { appearance:none; flex:0 0 .9rem; width:.9rem; height:.9rem; padding:0; border:1px solid currentColor; border-radius:50%; cursor:pointer; }
.object-choice input:checked { border-color:var(--object-color); background:var(--object-color); box-shadow:0 0 8px var(--object-color); }
.copy-button { width:100%; padding:.7rem .9rem; color:var(--cyan); border:1px solid var(--line); background:transparent; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.copy-button:hover, .copy-button:focus-visible { border-color:var(--cyan); background:rgba(57,217,255,.1); }
.form-actions { display:grid; gap:.55rem; }
.draw-button { width:100%; padding:.7rem .9rem; color:var(--night); border:1px solid var(--cyan); background:var(--cyan); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.draw-button:hover, .draw-button:focus-visible { color:var(--text); background:transparent; box-shadow:0 0 20px rgba(57,217,255,.18); }
.almanach-info { width:min(28rem, calc(100% - 2rem)); padding:1.6rem; color:var(--text); border:1px solid var(--line); background:var(--night-soft); box-shadow:10px 12px 0 rgba(0,0,0,.25); }
.almanach-info::backdrop { background:rgba(0,0,0,.62); }
.almanach-info form { margin:0; }
.almanach-info h2 { margin:0; font-family:Georgia, 'Times New Roman', serif; font-size:1.9rem; font-weight:400; line-height:1.05; }
.almanach-info h2 span { color:var(--cyan); }
.almanach-info p:not(.eyebrow) { margin:.9rem 0 1.2rem; color:var(--muted); line-height:1.6; }
.nowrap { white-space:nowrap; }
.save-button { width:100%; padding:.7rem .9rem; color:var(--night); border:1px solid var(--cyan); background:var(--cyan); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.save-button:hover, .save-button:focus-visible { color:var(--text); background:transparent; box-shadow:0 0 20px rgba(57,217,255,.18); }
.chart-panel { min-width:0; padding:clamp(1rem, 2.5vw, 1.8rem); }
.chart-panel__heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.week-label { max-width:220px; margin:0; color:var(--muted); font-size:.7rem; line-height:1.45; text-align:right; }
.canvas-wrap { overflow-x:auto; overflow-y:visible; border:1px solid var(--line); background:#050d17; }
#almanac-canvas { display:block; width:100%; min-width:650px; height:auto; }
.chart-note { display:flex; align-items:center; gap:.55rem; margin:1rem 0 0; color:var(--muted); font-size:.7rem; line-height:1.5; }
.chart-panel__heading .chart-note { margin-top:.4rem; }
.chart-panel__heading .chart-note + .chart-note { margin-top:.15rem; }
.legend-dot { width:.55rem; height:.55rem; border-radius:50%; background:var(--cyan); box-shadow:0 0 8px var(--cyan); }
.twilight-key { display:inline-flex; align-items:center; gap:.3rem; white-space:nowrap; }
.twilight-key::before { content:''; width:.52rem; height:.52rem; border-radius:50%; background:currentColor; box-shadow:0 0 7px currentColor; }
.twilight-key--civil { color:#63c9ef; }
.twilight-key--nautical { color:#347fb8; }
.twilight-key--astronomical { color:#1c4e87; }
@media (max-width:850px) { .almanach-layout { grid-template-columns:1fr; } }
@media (max-width:520px) { .almanach-shell { padding:2rem 1rem; }.field-row { grid-template-columns:1fr; }.chart-panel__heading { display:block; }.week-label { max-width:none; margin-top:.7rem; text-align:left; } }
