:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#102027;background:#ebedf0}*{box-sizing:border-box}body{margin:0}.page{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.calendar-card{width:min(980px,100%);background:#f6f7f8;border-radius:14px;box-shadow:0 22px 50px #0000003d;overflow:hidden;perspective:1400px;transform-style:preserve-3d;transform-origin:center;will-change:transform}.calendar-card.flip-page-next{animation:month-page-turn-next .62s cubic-bezier(.25,.8,.25,1)}.calendar-card.flip-page-prev{animation:month-page-turn-prev .62s cubic-bezier(.25,.8,.25,1)}@keyframes month-page-turn-next{0%{transform:perspective(1200px) rotateY(0);filter:brightness(1)}49%{transform:perspective(1200px) rotateY(-90deg);filter:brightness(.75)}50%{transform:perspective(1200px) rotateY(90deg);filter:brightness(.75)}to{transform:perspective(1200px) rotateY(0);filter:brightness(1)}}@keyframes month-page-turn-prev{0%{transform:perspective(1200px) rotateY(0);filter:brightness(1)}49%{transform:perspective(1200px) rotateY(90deg);filter:brightness(.75)}50%{transform:perspective(1200px) rotateY(-90deg);filter:brightness(.75)}to{transform:perspective(1200px) rotateY(0);filter:brightness(1)}}.hero-panel{background:#f9fbfd;padding:.5rem 1rem 1rem}.spiral{height:24px;background-image:radial-gradient(circle,#80868b 2px,transparent 2.2px);background-size:16px 12px;background-position:center;opacity:.55}.hero-image{min-height:280px;border-radius:10px;background:var(--hero-image-url),linear-gradient(140deg,transparent 56%,#12a5ee 56%,#12a5ee 69%,transparent 69%),linear-gradient(40deg,transparent 35%,#0e8ed1 35%,#0e8ed1 49%,transparent 49%),linear-gradient(120deg,#90a4b7,#657989 46%,#3f5562);background-size:cover,cover,cover,cover;background-position:center;position:relative}.hero-overlay{position:absolute;right:1.25rem;bottom:1.25rem;color:#fff;text-align:right;text-shadow:0 2px 6px rgba(0,0,0,.35)}.hero-overlay h1{margin:0;font-size:clamp(1.4rem,2.2vw,2rem);letter-spacing:.05em}.hero-year{margin:0 0 .2rem;font-weight:600;opacity:.92}.calendar-body{display:grid;grid-template-columns:2.3fr 1fr;gap:1rem;padding:1rem}.calendar-content{background:#fff;border-radius:10px;border:1px solid #dbe2e8;padding:.75rem}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.month-nav h2{margin:0;font-size:1.05rem;letter-spacing:.02em}.month-nav button{border:none;background:#0f6fa7;color:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-size:.8rem;color:#51606d;margin-bottom:.35rem}.calendar-weekdays span{text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:40px;gap:.3rem;min-height:calc(240px + 1.5rem);align-content:start}.day-cell{border:1px solid #d4dee8;background:#fff;height:100%;min-height:40px;border-radius:8px;cursor:pointer;transition:.15s ease;display:flex;align-items:center;justify-content:center;position:relative}.day-cell:hover{border-color:#0f6fa7}.day-cell.empty{border-style:dashed;background:#f7f9fb;cursor:default}.day-cell.adjacent-month{color:#a7b2bc;background:#f7f9fb;border-color:#e5ebf0}.day-cell.adjacent-month:hover{border-color:#e5ebf0}.day-cell.between{background:#e2f4ff;border-color:#9cd7f9}.day-cell.today{outline:2px solid #f39c12;outline-offset:1px;font-weight:700}.day-cell.start,.day-cell.end{background:#0fa8f0;color:#fff;border-color:#0c8ac8;font-weight:700}.day-note-dot{position:absolute;right:6px;bottom:6px;width:6px;height:6px;border-radius:50%;background:#0f6fa7}.day-cell.holiday{border-color:#f0b455;background:#fff8e7}.holiday-dot{position:absolute;left:6px;bottom:6px;width:6px;height:6px;border-radius:50%;background:#f39c12}.day-cell.holiday:hover{border-color:#e39b31;background:#fff2d5}.notes-panel{border:1px solid #dbe2e8;border-radius:10px;background:#fff;padding:.75rem;display:flex;flex-direction:column}.notes-panel h2{margin:0;font-size:1rem}.notes-subtitle{margin:.5rem 0 .65rem;color:#60717d;font-size:.85rem}.holiday-occasion{margin:-.2rem 0 .55rem;color:#8a5c0d;font-size:.82rem;font-weight:600}.notes-scopes{display:flex;gap:.4rem;margin-bottom:.65rem}.notes-scopes button{border:1px solid #ced8e1;border-radius:999px;background:#fff;color:#3b4a56;padding:.2rem .55rem;font-size:.8rem;cursor:pointer}.notes-scopes button.active{border-color:#0f6fa7;color:#0f6fa7;background:#e7f4fc;font-weight:600}.notes-scopes button:disabled{opacity:.5;cursor:not-allowed}.notes-panel textarea{width:100%;min-height:220px;resize:vertical;border:1px solid #ced8e1;border-radius:8px;padding:.7rem;font:inherit}.saved-notes{margin-top:.85rem;border-top:1px solid #e2e8ee;padding-top:.7rem}.saved-notes h3{margin:0 0 .45rem;font-size:.9rem}.saved-notes-empty{margin:0;color:#60717d;font-size:.83rem}.saved-notes ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.saved-notes li{border:1px solid #dbe2e8;border-radius:8px;padding:.45rem .55rem;background:#fbfdff}.saved-note-head{margin:0;display:flex;justify-content:space-between;gap:.5rem;font-size:.75rem;color:#60717d}.saved-note-head strong{color:#2b3d4c}.saved-note-text{margin:.2rem 0 0;font-size:.83rem;color:#20313f}.saved-note-delete{margin-top:.35rem;border:1px solid #e2b8b8;border-radius:6px;background:#fff4f4;color:#963737;font-size:.78rem;padding:.2rem .45rem;cursor:pointer}.saved-note-delete:hover{background:#ffeaea}@media (max-width: 760px){.calendar-body{grid-template-columns:1fr}.hero-image{min-height:230px}.notes-panel textarea{min-height:160px}}@media (prefers-reduced-motion: reduce){.calendar-card.flip-page-next,.calendar-card.flip-page-prev{animation:none}}
