/* Kvali Core - stor kalender til leveringsdato (gulvberegneren). */

/* Knappen, der erstatter datofeltet */
.kvali-ld-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.8rem 1rem;border:2px solid #22c55e;border-radius:8px;background:#fff;color:#1a1a1a;font:inherit;font-size:.95em;font-weight:600;text-align:left;cursor:pointer;transition:background .15s,box-shadow .15s}
.kvali-ld-btn:hover{background:#f0fdf4}
.kvali-ld-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(34,197,94,.35)}
.kvali-ld-btn__ico{display:flex;color:#16a34a;flex-shrink:0}
.kvali-ld-btn__txt{flex:1;color:#666;font-weight:500}
.kvali-ld-btn.is-set .kvali-ld-btn__txt{color:#1a1a1a;font-weight:700}
.kvali-ld-btn.is-set .kvali-ld-btn__txt::first-letter{text-transform:uppercase}
.kvali-ld-btn__chg{color:#16a34a;font-size:.85em;font-weight:600;white-space:nowrap;text-decoration:underline}

/* Vinduet */
.kvali-ld{position:fixed;inset:0;overscroll-behavior:contain;z-index:100000;display:none;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.kvali-ld.is-open{display:flex}
.kvali-ld__box{width:100%;max-width:460px;max-height:calc(100vh - 2rem);overflow:auto;overscroll-behavior:contain;background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);padding:1.25rem 1.25rem 1rem;color:#1a1a1a;font-size:16px;line-height:1.4;animation:kvaliLdIn .18s ease-out}
@keyframes kvaliLdIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.kvali-ld__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.kvali-ld__title{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.2em;font-weight:700;color:#1a1a1a}
.kvali-ld__title svg{color:#16a34a}
.kvali-ld__x{width:36px;height:36px;flex-shrink:0;border:0;border-radius:50%;background:#f3f4f6;color:#374151;font-size:1.5em;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.kvali-ld__x:hover{background:#e5e7eb}

.kvali-ld__info{background:#f0fdf4;border-left:3px solid #22c55e;border-radius:6px;padding:.6rem .8rem;margin-bottom:1rem;font-size:.88em;color:#166534}
.kvali-ld__info strong{display:block;font-weight:700}
.kvali-ld__info span{display:block;margin-top:.15rem;color:#15803d}
.kvali-ld__info span:empty{display:none}

.kvali-ld__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.kvali-ld__month{font-weight:700;font-size:1.05em}
.kvali-ld__arrow{width:40px;height:40px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#1a1a1a;font-size:1.6em;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.kvali-ld__arrow:hover:not(:disabled){border-color:#22c55e;color:#16a34a;background:#f0fdf4}
.kvali-ld__arrow:disabled{opacity:.3;cursor:default}

.kvali-ld__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.kvali-ld__grid--head{margin-bottom:6px}
.kvali-ld__wd{text-align:center;font-size:.75em;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}
.kvali-ld__wd.is-off{color:#c4c4c4}
.kvali-ld__day{position:relative;aspect-ratio:1/1;min-height:42px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;color:#1a1a1a;font:inherit;font-size:1em;font-weight:600;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s,color .12s}
.kvali-ld__day:hover:not(:disabled){border-color:#22c55e;background:#f0fdf4;color:#15803d}
.kvali-ld__day:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(34,197,94,.4)}
.kvali-ld__day.is-off{border-color:transparent;background:#f9fafb;color:#c4c4c4;font-weight:500;cursor:not-allowed}
.kvali-ld__day.is-off.is-wkend{background:#f3f4f6}
.kvali-ld__day.is-off.is-past{background:transparent;color:#d1d5db}
.kvali-ld__day.is-hol{color:#e11d48;opacity:.55}
.kvali-ld__day.is-hol::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#e11d48}
.kvali-ld__day.is-today{text-decoration:underline;text-underline-offset:3px}
.kvali-ld__day.is-min:not(.is-sel){border-color:#86efac}
.kvali-ld__day.is-sel,.kvali-ld__day.is-sel:hover{background:#22c55e;border-color:#22c55e;color:#fff}

.kvali-ld__legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:.9rem 0 .25rem;font-size:.78em;color:#6b7280}
.kvali-ld__legend span{display:inline-flex;align-items:center;gap:.35rem}
.kvali-ld__legend i{display:inline-block;width:14px;height:14px;border-radius:4px}
.kvali-ld__legend i.is-sel{background:#22c55e}
.kvali-ld__legend i.is-off{background:#f3f4f6;border:1px solid #e5e7eb}
.kvali-ld__legend i.is-hol{width:8px;height:8px;border-radius:50%;background:#e11d48;opacity:.7;margin:0 3px}

.kvali-ld__foot{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f0f0f0;text-align:center}
.kvali-ld__asap{width:100%;padding:.7rem 1rem;border:1.5px solid #22c55e;border-radius:999px;background:#fff;color:#16a34a;font:inherit;font-size:.92em;font-weight:700;cursor:pointer}
.kvali-ld__asap:hover{background:#f0fdf4}
.kvali-ld__note{margin:.6rem 0 0;font-size:.78em;color:#6b7280}
.kvali-ld__note:empty{display:none}

/* Mobil: kalenderen glider op fra bunden i fuld bredde */
@media (max-width:600px){
	.kvali-ld{align-items:flex-end;padding:0}
	.kvali-ld__box{max-width:none;border-radius:18px 18px 0 0;max-height:92vh;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));animation-name:kvaliLdUp}
	.kvali-ld__grid{gap:5px}
	.kvali-ld__day{min-height:40px;font-size:.98em}
}
@keyframes kvaliLdUp{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.kvali-ld__box{animation:none}}
