:root{--bg:#f6f7f9;--surface:#fff;--text:#1c2333;--muted:#5c6577;--border:#d9dde5;--accent:#2456d6;--accent-contrast:#fff;--stay-out:#a8bce8;--ok-bg:#e3f4e6;--ok-text:#1d6b2f;--danger:#c62f2f;--danger-bg:#fbe8e8;--today-ring:#1c2333;--wstart:#e08a00;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#12151c;--surface:#1c212c;--text:#e8ebf2;--muted:#98a1b3;--border:#323a4a;--accent:#5b86ec;--accent-contrast:#0d1220;--stay-out:#3c4c74;--ok-bg:#16321d;--ok-text:#7fd694;--danger:#ef6363;--danger-bg:#3a1a1a;--today-ring:#e8ebf2;--wstart:#f0a63a}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{max-width:860px;padding:1rem;padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));padding-bottom:max(2rem, env(safe-area-inset-bottom));flex-direction:column;gap:1.5rem;margin:0 auto;display:flex}.app-header h1{margin:0;font-size:1.6rem}.app-header p{margin:.25rem 0 0}h2{margin:0 0 .75rem;font-size:1.15rem}.muted{color:var(--muted);font-size:.9rem}a{color:var(--accent)}.cards{top:env(safe-area-inset-top,0);z-index:5;background:var(--bg);grid-template-columns:repeat(2,1fr);gap:.75rem;margin:-.5rem 0;padding:.5rem 0;display:grid;position:sticky}.app:has(.timeline-hint) .cards{position:static}.plan-recap{border-radius:10px;flex-wrap:wrap;grid-column:1/-1;align-items:baseline;gap:.6rem;padding:.5rem .85rem;font-size:.9rem;display:flex}.plan-recap.is-ok{background:var(--ok-bg);color:var(--ok-text)}.plan-recap.is-bad{background:var(--danger-bg);color:var(--danger)}.plan-recap-tag{text-transform:uppercase;letter-spacing:.04em;opacity:.8;font-size:.68rem;font-weight:700}@media (width>=640px){.cards{grid-template-columns:repeat(4,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.2rem;padding:.9rem;display:flex}.card-value{font-size:1.9rem;font-weight:700;line-height:1.2}.card-value-small{font-size:1.05rem;font-weight:700;line-height:1.3}.card-value.is-danger{color:var(--danger)}.card-label{color:var(--muted);font-size:.8rem}.banner-danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger);border-radius:12px;padding:.75rem 1rem;font-size:.95rem}.timeline{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.month{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.75rem}.month-name{margin:0 0 .5rem;font-size:.95rem}.month-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.weekday{text-align:center;color:var(--muted);padding-bottom:2px;font-size:.65rem}.day{aspect-ratio:1;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;margin:0;padding:0;font-family:inherit;font-size:.72rem;display:flex;position:relative}.day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.day--planned{box-shadow:inset 0 0 0 2px var(--stay-out);font-weight:600}.day--pending{box-shadow:inset 0 0 0 2px var(--accent);font-weight:700}.day--stay{background-color:var(--accent);color:var(--accent-contrast);font-weight:600}.day--stay-out{background-color:var(--stay-out);color:var(--text)}.day--today{box-shadow:inset 0 0 0 2px var(--today-ring);font-weight:700}.day--wstart{box-shadow:inset 0 -3px 0 0 var(--wstart)}.day--today.day--wstart{box-shadow:inset 0 0 0 2px var(--today-ring), inset 0 -3px 0 0 var(--wstart)}.day--preview{background-image:repeating-linear-gradient(45deg, color-mix(in srgb, var(--ok-text) 55%, transparent) 0 4px, transparent 4px 8px)}.timeline-tip{margin:0 0 .75rem;font-size:.8rem}.timeline-hint{z-index:10;background:var(--surface);border:1px solid var(--accent);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .75rem;padding:.6rem .85rem;font-size:.9rem;display:flex;position:sticky;top:.5rem;box-shadow:0 2px 10px #00000026}.btn-small{min-height:34px;padding:.25rem .7rem}.legend{color:var(--muted);flex-wrap:wrap;gap:.4rem 1rem;margin:.75rem 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.legend li{align-items:center;gap:.35rem;display:flex}.day-swatch{border:1px solid var(--border);border-radius:4px;width:14px;height:14px;display:inline-block}.tool{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:.75rem}.tool summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;min-height:44px;padding:.85rem 1rem;font-weight:600;display:flex}.tool summary::-webkit-details-marker{display:none}.tool summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:.5em;height:.5em;transition:transform .15s;transform:translateY(-25%)rotate(45deg)}.tool[open]>summary:after{transform:translateY(25%)rotate(225deg)}@media (prefers-reduced-motion:reduce){.tool summary:after{transition:none}}.tool-body{flex-direction:column;gap:.75rem;padding:0 1rem 1rem;display:flex}.tool-fields{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.tool-clear{align-self:flex-end}.tool-result{border-radius:8px;margin:0;padding:.75rem;font-size:.95rem}.tool-result.is-ok{background:var(--ok-bg);color:var(--ok-text)}.tool-result.is-bad{background:var(--danger-bg);color:var(--danger)}.confirm-dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:16px;width:min(90vw,380px);padding:1.5rem;box-shadow:0 18px 50px #0000004d}.confirm-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073}.confirm-dialog[open]{animation:.18s ease-out confirm-pop}@keyframes confirm-pop{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.confirm-dialog[open]{animation:none}}.faq-dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:16px;width:min(92vw,560px);max-height:85vh;padding:0;overflow:hidden;box-shadow:0 18px 50px #0000004d}.faq-dialog[open]{flex-direction:column;display:flex}.faq-body{scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-height:0;padding:0 1.5rem 1.5rem;overflow-y:auto}.faq-body::-webkit-scrollbar{width:8px}.faq-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.faq-body::-webkit-scrollbar-track{background:0 0}.faq-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073}.faq-dialog[open]{animation:.18s ease-out confirm-pop}@media (prefers-reduced-motion:reduce){.faq-dialog[open]{animation:none}}.faq-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.9rem;padding:1.25rem 1.5rem .9rem;display:flex}.faq-header .confirm-title{margin:0}.faq-dialog .tool{background:var(--bg)}.confirm-title{margin:0 0 .75rem;font-size:1.15rem}.confirm-range{margin:0;font-size:1.02rem;font-weight:700;line-height:1.4}.confirm-arrow{color:var(--accent);margin:0 .45rem}.confirm-days{color:var(--muted);align-items:center;gap:.5rem;margin:.35rem 0 0;display:flex}.confirm-label{margin-top:1rem}.confirm-label input{width:100%}.confirm-actions{justify-content:flex-end;gap:.5rem;margin-top:1.25rem;display:flex}.coffee-nudge{color:var(--muted);text-align:right;margin:0;font-size:.85rem}label{flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600;display:flex}input[type=date],input[type=text]{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;min-width:0;min-height:44px;padding:.5rem .6rem}.stay-form{flex-direction:column;gap:.75rem;display:flex}.stay-form-fields{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.stay-form-fields label:last-child{grid-column:1/-1}@media (width>=640px){.stay-form-fields{grid-template-columns:repeat(3,1fr)}.stay-form-fields label:last-child{grid-column:auto}}.form-error{color:var(--danger);margin:0;font-size:.9rem}.stay-form-actions{gap:.5rem;display:flex}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:8px;padding:.5rem .9rem;font-weight:600}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-danger{color:var(--danger)}.stay-list{flex-direction:column;gap:.5rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.stay-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.stay-row-editing{display:block}.stay-info{flex-direction:column;display:flex}.stay-dates{font-weight:600}.stay-group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1rem 0 .5rem;font-size:.85rem}.badge{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;align-self:center;padding:.05rem .5rem;font-size:.68rem;font-weight:700}.stay-actions{gap:.5rem;display:flex}.add-stay-title{margin:0 0 .5rem;font-size:1rem}.app-footer{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding-top:1rem;display:flex}.app-credits{text-align:center}.export-import{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}@media (width>=640px){.export-import{justify-content:flex-start}}
