.calendar{padding:var(--qc-5);border:1px solid var(--qc-line);border-radius:var(--qc-radius-lg);background:var(--qc-white);box-shadow:var(--qc-shadow)}.calendar-head{justify-content:space-between;align-items:center;gap:var(--qc-3);margin-bottom:var(--qc-4);display:flex}.calendar-head strong{font-family:var(--qc-font-display);font-size:var(--qc-text-xl);color:var(--qc-forest);text-transform:capitalize;font-weight:500;line-height:1.2;display:block}.calendar-head small{color:var(--qc-muted);font-size:var(--qc-text-xs)}.calendar-nav{border:1px solid var(--qc-line-strong);border-radius:var(--qc-radius-pill);background:var(--qc-white);width:2.75rem;height:2.75rem;color:var(--qc-forest);transition:background var(--qc-transition), border-color var(--qc-transition);place-items:center;display:grid}.calendar-nav:hover:not([disabled]){background:var(--qc-paper-deep);border-color:var(--qc-forest)}.calendar-nav[disabled]{opacity:.35;cursor:not-allowed}.calendar-months{gap:var(--qc-5);grid-template-columns:repeat(2,1fr);display:grid}.calendar-month-label{margin-bottom:var(--qc-2);font-family:var(--qc-font-display);font-size:var(--qc-text-lg);color:var(--qc-forest);text-transform:capitalize;text-align:center}.week,.days{text-align:center;grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.week{margin-bottom:var(--qc-2);color:var(--qc-muted);font-size:var(--qc-text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.days i{display:block}.days button{border-radius:var(--qc-radius);min-height:2.75rem;color:var(--qc-ink);font-size:var(--qc-text-sm);font-variant-numeric:tabular-nums;transition:background var(--qc-transition), color var(--qc-transition), border-color var(--qc-transition);background:0 0;border:1px solid #0000;place-items:center;display:grid;position:relative}.days button:hover:not([disabled]){background:var(--qc-paper-deep);border-color:var(--qc-line-strong)}.days button.today{border-color:var(--qc-olive);font-weight:700}.days button.blocked{background:var(--qc-sand);color:var(--qc-muted);cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}.days button.administrative{color:var(--qc-bark);cursor:not-allowed;background:repeating-linear-gradient(135deg,#ddd4c6 0 4px,#eae3d7 4px 8px)}.days button.preparation{background:repeating-linear-gradient(135deg, var(--qc-gold-soft) 0 4px, #fbf4e6 4px 8px);color:var(--qc-warning);cursor:not-allowed;font-weight:700;text-decoration:none}.days button.range-start,.days button.range-end{background:var(--qc-forest);border-color:var(--qc-forest);color:#fff;font-weight:600}.days button.range-start{border-top-right-radius:var(--qc-radius-sm);border-bottom-right-radius:var(--qc-radius-sm)}.days button.range-end{border-top-left-radius:var(--qc-radius-sm);border-bottom-left-radius:var(--qc-radius-sm)}.days button.in-range{background:var(--qc-olive-soft);border-radius:var(--qc-radius-sm);color:var(--qc-forest);border-color:#0000}.calendar-hint{margin-top:var(--qc-4);padding:var(--qc-3);border-radius:var(--qc-radius);background:var(--qc-paper-deep);color:var(--qc-ink-soft);font-size:var(--qc-text-sm);text-align:center}.calendar-hint b{color:var(--qc-forest)}.legend{gap:var(--qc-2) var(--qc-4);margin-top:var(--qc-4);padding-top:var(--qc-4);border-top:1px solid var(--qc-line);color:var(--qc-muted);font-size:var(--qc-text-xs);grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));display:grid}.legend span{align-items:center;gap:var(--qc-2);display:flex}.legend i{border-radius:var(--qc-radius-sm);background:var(--qc-paper);border:1px solid var(--qc-line-strong);flex:none;width:.875rem;height:.875rem}.legend .blocked-key{background:var(--qc-sand);border-color:var(--qc-sand-deep)}.legend .preparation-key{background:repeating-linear-gradient(135deg, var(--qc-gold) 0 3px, var(--qc-gold-soft) 3px 6px);border-color:var(--qc-gold)}.legend .administrative-key{border-color:var(--qc-line-strong);background:repeating-linear-gradient(135deg,#c9bfae 0 3px,#eae3d7 3px 6px)}.legend .selected-key{background:var(--qc-forest);border-color:var(--qc-forest)}@media (max-width:720px){.calendar{padding:var(--qc-4)}.calendar-months{gap:var(--qc-6);grid-template-columns:1fr}.calendar-month-label{padding-bottom:var(--qc-2);border-bottom:1px solid var(--qc-line);text-align:left}.days button{min-height:2.875rem;font-size:var(--qc-text-base)}}
