@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";:root{--bg-app:#f9f7f4;--bg-calendar:#ffffffeb;--bg-secondary:#faf8f5;--text-main:#2d2d2d;--text-secondary:#666;--text-muted:#999;--border-color:#00000014;--accent-color:#d18a66;--accent-light:#d18a6626;--accent-hover:#b87654;--accent-focus:#a86648;--selection-bg:#d18a6640;--today-bg:#d18a661a;--shadow-sm:#0000000a;--shadow-md:#00000014;--shadow-lg:#0000001f;--font-sans:"Inter", sans-serif;--font-display:"Outfit", sans-serif;--border-radius:16px;--card-blur:16px;--transition-fast:.15s ease;--transition-normal:.3s ease}[data-theme=dark]{--bg-app:#0f1117;--bg-calendar:#191c20d9;--bg-secondary:#161b22;--text-main:#e6edf3;--text-secondary:#afb6c0;--text-muted:#8b949e;--border-color:#ffffff1a;--accent-color:#79c0ff;--accent-light:#79c0ff26;--accent-hover:#58a6ff;--accent-focus:#4184e4;--selection-bg:#79c0ff33;--today-bg:#79c0ff1a;--shadow-sm:#0003;--shadow-md:#0000004d;--shadow-lg:#0006}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);min-height:100vh;transition:background-color var(--transition-normal);justify-content:center;align-items:center;line-height:1.5;display:flex;overflow-x:hidden}#root{justify-content:center;width:100%;padding:1rem;display:flex}@media (width>=480px){#root{padding:1.5rem}}@media (width>=768px){#root{padding:2rem 1.5rem}}.app-wrapper{flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:1200px;display:flex}.top-bar{justify-content:flex-end;width:100%;padding:0 .5rem;display:flex}@media (width>=768px){.top-bar{padding:0}}.theme-toggle{background:var(--bg-calendar);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(var(--card-blur));color:var(--text-main);cursor:pointer;font-family:var(--font-display);transition:all var(--transition-normal);box-shadow:0 4px 12px var(--shadow-sm);-webkit-user-select:none;user-select:none;border-radius:28px;align-items:center;gap:.6rem;padding:.6rem 1rem;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.theme-toggle:hover{box-shadow:0 8px 16px var(--shadow-md);background:var(--accent-light);transform:translateY(-2px)}.theme-toggle:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.theme-toggle:active{transform:translateY(0)}.wall-calendar{background:var(--bg-calendar);width:100%;max-width:1000px;-webkit-backdrop-filter:blur(var(--card-blur));border-radius:var(--border-radius);border:1px solid var(--border-color);box-shadow:0 20px 40px var(--shadow-lg), 0 1px 3px var(--shadow-sm);transition:all var(--transition-normal);grid-template-columns:1fr;min-height:600px;display:grid;overflow:hidden}@media (width>=768px){.wall-calendar{grid-template-columns:3fr 4fr;min-height:auto}}.calendar-left{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:column;display:flex;position:relative}@media (width<=767px){.calendar-left{border-right:none;border-bottom:1px solid var(--border-color)}}.hero-section{flex-shrink:0;height:200px;position:relative;overflow:hidden}@media (width>=480px){.hero-section{height:240px}}@media (width>=768px){.hero-section{height:300px}}@media (width>=1024px){.hero-section{height:350px}}.hero-image{object-fit:cover;object-position:center;will-change:transform;width:100%;height:100%;transition:transform 12s cubic-bezier(.25,.46,.45,.94)}.wall-calendar:hover .hero-image{transform:scale(1.08)}.hero-overlay{background:linear-gradient(135deg,#00000026,#000000b3);align-items:flex-end;padding:1.25rem;display:flex;position:absolute;inset:0}@media (width>=768px){.hero-overlay{padding:1.5rem}}.hero-date-info{color:#fff;text-shadow:0 2px 8px #0006}.hero-month{font-family:var(--font-display);letter-spacing:-.5px;font-size:2rem;font-weight:700;line-height:1}@media (width>=480px){.hero-month{font-size:2.5rem}}@media (width>=768px){.hero-month{font-size:3rem}}.hero-year{opacity:.95;margin-top:.25rem;font-size:1rem;font-weight:300}@media (width>=768px){.hero-year{font-size:1.1rem}}.notes-section{flex-direction:column;flex-grow:1;gap:.75rem;padding:1.25rem;display:flex}@media (width>=768px){.notes-section{gap:1rem;padding:1.5rem}}.notes-header{font-family:var(--font-display);color:var(--text-main);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600;display:flex}@media (width>=768px){.notes-header{font-size:1.1rem}}.notes-header svg{color:var(--accent-color);opacity:.7;transition:opacity var(--transition-fast);flex-shrink:0}.notes-section:hover .notes-header svg{opacity:1}.notes-error{color:#dc3545;background:#dc35451a;border:1px solid #dc35454d;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem;font-size:.85rem;animation:.2s ease-out slideIn;display:flex}.notes-error-dismiss{cursor:pointer;color:#dc3545;transition:opacity var(--transition-fast);background:0 0;border:none;margin-left:.5rem;padding:0;font-size:1rem}.notes-error-dismiss:hover{opacity:.7}.notes-area{background:var(--bg-app);border:1px solid var(--border-color);width:100%;min-height:100px;color:var(--text-main);font-family:var(--font-sans);resize:none;transition:all var(--transition-fast);border-radius:10px;outline:none;flex-grow:1;padding:.75rem;font-size:.9rem;line-height:1.6}@media (width>=768px){.notes-area{min-height:120px;padding:1rem}}.notes-area:focus{border-color:var(--accent-color);background:var(--accent-light);box-shadow:0 0 0 3px var(--selection-bg)}.notes-area::placeholder{color:var(--text-muted);opacity:.6}.calendar-right{background-color:var(--bg-calendar);flex-direction:column;gap:1rem;padding:1.25rem;display:flex}@media (width>=480px){.calendar-right{padding:1.5rem}}@media (width>=768px){.calendar-right{padding:1.75rem 2rem}}.calendar-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.current-month-display{font-family:var(--font-display);color:var(--text-main);text-align:center;-webkit-user-select:none;user-select:none;flex:1;font-size:1.25rem;font-weight:600}@media (width>=768px){.current-month-display{font-size:1.5rem}}.month-nav-btn{border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;width:44px;height:44px;transition:all var(--transition-fast);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:0;display:flex}.month-nav-btn:hover{background:var(--accent-light);border-color:var(--accent-color);transform:scale(1.1)}.month-nav-btn:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.month-nav-btn:active{transform:scale(.95)}.weekdays{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem;display:grid}.weekday-header{text-align:center;font-family:var(--font-display);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:.5rem 0;font-size:.75rem;font-weight:600}@media (width>=480px){.weekday-header{font-size:.8rem}}.days-grid-container{perspective:1000px;flex-grow:1;min-height:300px}.days-grid{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.68, -.55, .27, 1.55), opacity var(--transition-normal);grid-template-columns:repeat(7,1fr);gap:.375rem;display:grid}.days-grid.flipping{opacity:.5;animation:.3s cubic-bezier(.68,-.55,.27,1.55) forwards monthFlip}.date-cell{aspect-ratio:1;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:.25rem;font-size:.875rem;display:flex;position:relative}@media (width>=768px){.date-cell{border-radius:10px;padding:.375rem;font-size:.95rem}}.date-cell.empty{color:var(--text-muted);opacity:.4;cursor:default}.date-number{z-index:2;transition:all var(--transition-fast);font-weight:500}.date-cell:not(.empty):hover{background:var(--accent-light);border-color:var(--accent-color);transform:scale(1.05)}.date-cell.today{background:var(--today-bg);border-color:var(--accent-color);color:var(--accent-color);font-weight:600}.date-cell.today .date-number{color:var(--accent-color)}.date-cell.start-date,.date-cell.end-date{background:var(--accent-color);color:#fff;border-color:var(--accent-color);font-weight:600;box-shadow:0 2px 8px #00000026}.date-cell.start-date .date-number,.date-cell.end-date .date-number{color:#fff}.date-cell.in-range{background:var(--selection-bg);border-color:var(--accent-color);color:var(--text-main)}.marker-container{z-index:1;justify-content:center;gap:2px;display:flex;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.marker{background:var(--accent-color);border-radius:50%;width:3px;height:3px}@media (width>=480px){.marker{width:4px;height:4px}}.marker.holiday{background:#ff6b6b;width:4px;height:4px}@media (width>=480px){.marker.holiday{width:5px;height:5px}}.marker.note{background:var(--accent-color)}.selection-info{border-top:1px solid var(--border-color);color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;font-size:.9rem;display:flex}@media (width>=768px){.selection-info{padding-top:1.25rem;font-size:.95rem}}.clear-btn{border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:6px;flex-shrink:0;padding:.4rem .8rem;font-size:.85rem;font-weight:500}.clear-btn:hover{background:var(--accent-light);border-color:var(--accent-color);color:var(--accent-color)}.clear-btn:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes monthFlip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (hover:none) and (pointer:coarse){.date-cell:not(.empty){border:1px solid var(--border-color)}.date-cell:not(.empty):active{background:var(--accent-light);border-color:var(--accent-color)}}
