:root{--title-font: "Playfair Display", serif;--body-font: "Inter", sans-serif;--primary-bg: #f9f7f1;--secondary-bg: #ffffff;--accent-gold: #c9a94b;--deep-blue: #1b1f3b;--text-color: #2c2c2c;--button-bg: var(--deep-blue);--button-hover-bg: #2e3358;--button-text-color: #ffffff;--border-radius: 14px;--transition-speed: .25s;--shadow-sm: 0 2px 6px rgba(0, 0, 0, .08);--shadow-md: 0 6px 16px rgba(0, 0, 0, .12)}body,#root{width:100%;height:100%;font-family:var(--body-font);background:var(--primary-bg);color:var(--text-color);line-height:1.6;overflow-x:hidden;display:flex;justify-content:center;align-items:center;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--title-font);color:var(--deep-blue);line-height:1.3}p{margin-bottom:1em;max-width:70ch}button{font-family:var(--body-font);color:var(--button-text-color);background:var(--button-bg);border:none;border-radius:var(--border-radius);padding:.65em 1.4em;font-size:1rem;font-weight:500;cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--transition-speed) ease,transform var(--transition-speed) ease,box-shadow var(--transition-speed) ease}button:hover{background:var(--button-hover-bg);transform:translateY(-2px);box-shadow:var(--shadow-md)}button:active{transform:translateY(0);box-shadow:var(--shadow-sm)}a{color:var(--deep-blue);text-decoration:none;transition:color var(--transition-speed) ease}a:hover{color:var(--accent-gold)}.container{background:var(--secondary-bg);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-speed) ease}.container:hover{box-shadow:var(--shadow-md)}.days-of-week-container{display:flex;justify-content:space-between;align-items:center;background:var(--secondary-bg);padding:.75rem 1rem;border-radius:var(--border-radius);box-shadow:var(--shadow-sm);gap:.5rem;overflow-x:auto;scrollbar-width:none}.days-of-week-container::-webkit-scrollbar{display:none}.days-of-week-item{flex:1;min-width:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.6rem .4rem;border-radius:var(--border-radius);background:#fff;font-family:var(--title-font);text-align:center;cursor:default;transition:transform .25s ease,box-shadow .25s ease}.days-of-week-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.days-of-week-item.today{background:linear-gradient(135deg,var(--deep-blue),var(--accent-gold));color:#fff;box-shadow:var(--shadow-md)}.days-of-week-item.today .dow-label,.days-of-week-item.today .dow-date{color:#fff}.dow-label{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--deep-blue)}.dow-date{font-size:.8rem;font-weight:500;color:var(--accent-gold);margin-top:.15rem}@media (max-width: 768px){.dow-label{font-size:.75rem}.dow-date{font-size:.7rem}}.event-card{background:var(--secondary-bg, #fff);border:1px solid #e5e7eb;border-radius:1rem;padding:1.5rem;margin:1rem auto;max-width:680px;font-family:var(--body-font);color:var(--text-color, #1f2937);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.event-card:hover{transform:translateY(-2px);border-color:var(--accent-gold, #c9a227);box-shadow:var(--shadow-sm, 0 4px 12px rgba(0, 0, 0, .06))}.event-card-header{margin-bottom:.75rem}.event-card-title{font-size:1.35rem;font-weight:600;margin:0 0 .3rem;color:#111827;line-height:1.3}.event-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.9rem;color:#6b7280}.event-date{font-weight:500}.event-time{font-weight:400}.event-card-description{font-size:.95rem;line-height:1.55;color:#374151;margin-top:.75rem}.event-card-venue{font-size:.9rem;color:#4b5563;margin-top:.85rem}.venue-label{margin-right:.3rem;color:var(--accent-gold, #c9a227)}.event-card-link a{display:inline-block;margin-top:1rem;color:var(--accent-gold, #c9a227);font-weight:600;text-decoration:none;font-size:.9rem;transition:color .2s ease}.event-card-link a:hover{color:var(--deep-blue, #1e3a8a)}@media (max-width: 768px){.event-card{padding:1.25rem;margin:.75rem}.event-card-title{font-size:1.2rem}}@media (max-width: 480px){.event-card{padding:1rem}.event-card-title{font-size:1.1rem}}.event-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);opacity:0;background:var(--secondary-bg, #fff);border-radius:1rem;padding:2rem;max-width:680px;width:90%;color:var(--text-color, #1f2937);font-family:var(--body-font);box-shadow:0 16px 40px #0000002e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:2000;transition:opacity .3s ease,transform .3s ease}.event-panel[role=dialog]{opacity:1;transform:translate(-50%,-50%) scale(1)}.event-panel.empty{box-shadow:none;background:transparent;padding:0;transform:none;top:auto;left:auto;position:relative}.event-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1118278c;z-index:1500;animation:fadeIn .3s ease forwards}.event-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;border-bottom:1px solid #ece8df;padding-bottom:.75rem}.event-panel h2{font-size:1.5rem;font-weight:600;font-family:var(--title-font);margin:0;color:var(--deep-blue);letter-spacing:.3px}.close-button{background:transparent;border:none;color:#4b5563;font-size:1.4rem;line-height:1;cursor:pointer;padding:.4rem;border-radius:50%;transition:background .2s ease,transform .2s ease}.close-button:hover{background:#0000000f;transform:scale(1.1)}.no-event{font-size:.95rem;text-align:center;padding:1rem 1.25rem;border-radius:var(--border-radius);background:#f9f8f6;color:#6b7280;font-family:var(--body-font);box-shadow:var(--shadow-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.event-panel{padding:1.5rem}.event-panel h2{font-size:1.3rem}}@media (max-width: 480px){.event-panel{padding:1.2rem;width:95%}.event-panel h2{font-size:1.15rem}}.week-navigation{display:flex;justify-content:center;align-items:center;gap:1.25rem;font-family:var(--title-font);padding:.75rem 0;color:var(--deep-blue)}.nav-button{font-size:1.4rem;font-weight:600;background:var(--secondary-bg, #fff);color:var(--deep-blue);border:1px solid rgba(27,31,59,.15);border-radius:50%;width:2.6rem;height:2.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s ease,color .25s ease,transform .25s ease}.nav-button:hover{background:var(--deep-blue);color:#fff;transform:translateY(-2px)}.nav-button:active{transform:scale(.92)}.month-year{font-size:1.5rem;font-weight:700;text-align:center;letter-spacing:.5px;min-width:180px;background:linear-gradient(90deg,var(--deep-blue),var(--accent-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent}@media (max-width: 768px){.week-navigation{flex-direction:column;gap:.75rem}.month-year{font-size:1.25rem}.nav-button{width:2.3rem;height:2.3rem;font-size:1.2rem}}.time-slot{background:var(--secondary-bg);border-radius:var(--border-radius);padding:.9rem 1rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);transition:transform var(--transition-speed),box-shadow var(--transition-speed)}.time-slot:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.time-label{font-family:var(--title-font);font-size:.95rem;font-weight:600;color:var(--deep-blue);margin-bottom:.6rem;border-bottom:1px solid #ece8df;padding-bottom:.25rem}.slot-events{display:flex;flex-direction:column;gap:.4rem}.event{background:linear-gradient(135deg,var(--deep-blue),#2d3c5a);color:#fff;padding:.65rem .9rem;border-radius:9999px;font-size:.85rem;font-weight:500;font-family:var(--body-font);text-align:left;border:none;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-speed),box-shadow var(--transition-speed)}.event:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.event:active{transform:scale(.97)}.event-title{display:block;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-empty{font-family:var(--body-font);font-size:.8rem;color:#9a948a;text-align:center;background-color:#faf9f6;padding:.4rem;border-radius:var(--border-radius);border:1px dashed #ddd5c2}@media (max-width: 768px){.time-slot{padding:.75rem}.time-label{font-size:.9rem}.event{font-size:.8rem;padding:.55rem .75rem}.slot-empty{font-size:.75rem}}.weekday-column{background:var(--secondary-bg);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;padding:1rem;gap:.75rem;transition:transform var(--transition-speed) ease,box-shadow var(--transition-speed) ease}.weekday-column:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.time-slots{display:flex;flex-direction:column;gap:.6rem;flex-grow:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--accent-gold) transparent;padding-right:.25rem}.time-slots::-webkit-scrollbar{width:6px}.time-slots::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent-gold),rgba(201,169,75,.6));border-radius:6px}.time-slots::-webkit-scrollbar-track{background:transparent}@media (max-width: 768px){.weekday-column{padding:.75rem;gap:.5rem}.time-slots{gap:.4rem}}.calendar{width:100%;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem;background:var(--secondary-bg);border-radius:var(--border-radius);border:1px solid #e5e73b;padding:1.5rem 2rem;box-sizing:border-box;animation:fadeIn .5s ease-out forwards}.calendar-header{display:flex;align-items:center;justify-content:center;padding:.75rem 1rem;border-bottom:1px solid rgba(0,0,0,.05);position:sticky;top:0;z-index:10;background:rgba(27,31 59,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--border-radius) var(--border-radius) 0 0;font-family:var(--title-font);font-size:1.1rem;font-weight:600;color:#fff;letter-spacing:.3px}.calendar-status{text-align:center;font-size:.9rem;padding:.6rem 1rem;border-radius:var(--border-radius);background:#00000008;color:var(--text-color);max-width:400px;margin:0 auto}.calendar-status.error{background:#ff000014;color:#b00020;font-weight:500}.calendar-body{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.5rem}.week-view{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:.75rem;min-width:calc(1120px + 4.5rem)}.week-view>*{transition:transform .2s ease,box-shadow .2s ease}.week-view>*:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app{width:100%;min-height:100vh;display:flex;justify-content:flex-start;align-items:center;padding:2rem;background:var(--primary-bg)}.calendar-container{width:100%;background:var(--secondary-bg);border:1px solid #e5e7eb;border-radius:var(--border-radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:2rem;transition:border-color var(--transition-speed),box-shadow var(--transition-speed)}.calendar-container:hover{border-color:var(--accent-gold);box-shadow:var(--shadow-md)}.app-calendar-header{text-align:center}.app-calendar-title{font-size:2.4rem;font-weight:700;letter-spacing:.5px;background:linear-gradient(90deg,var(--deep-blue),var(--accent-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.app-calendar-subtitle{font-size:1.05rem;font-weight:400;color:#2c2c2cb3;line-height:1.6;max-width:600px;margin:0 auto}@media (max-width: 768px){.calendar-container{padding:1.5rem 1rem;gap:1.5rem}.app-calendar-title{font-size:1.9rem}.app-calendar-subtitle{font-size:.95rem}}
