@import 'fonts/fonts.css';:root{--primary:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--secondary:linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--accent:linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--success:linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--warning:linear-gradient(135deg, #ee0979 0%, #ff6a00 100%);--background:#000000;--surface:rgba(10, 10, 10, 0.6);--surface-hover:rgba(20, 20, 20, 0.8);--surface-dark:rgba(5, 5, 5, 0.8);--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--border:rgba(148, 163, 184, 0.15);--border-light:rgba(148, 163, 184, 0.08);--border-bright:rgba(102, 126, 234, 0.5);--border-accent:rgba(79, 172, 254, 0.6);--shadow:0 20px 40px rgba(0, 0, 0, 0.8);--glow:0 0 30px rgba(102, 126, 234, 0.4);--glow-strong:0 0 40px rgba(102, 126, 234, 0.6), 0 0 80px rgba(102, 126, 234, 0.3);--radius:20px;--focus-ring:0 0 0 3px rgba(102, 126, 234, 0.6)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--background);color:var(--text-primary);overflow:hidden;height:100vh;height:100dvh;width:100vw;position:fixed;top:0;left:0;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch}.container{height:100vh;height:100dvh;width:100vw;display:grid;grid-template-columns:1fr 300px;grid-template-rows:auto 1fr;position:relative;overflow:hidden}.calendar-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:1.5rem 3rem;background:rgba(0,0,0,.8);border-bottom:2px solid var(--border-bright);position:relative;z-index:10;grid-column:1/-1;box-shadow:0 4px 12px rgba(0,0,0,.5)}.calendar-nav{display:flex;gap:1rem;align-items:center}.nav-controls{display:flex;gap:1rem;align-items:center;justify-content:flex-end}.btn{background:var(--surface-dark);color:var(--text-primary);border:2px solid var(--border);padding:.75rem 1.5rem;font-family:inter,sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;border-radius:var(--radius);transition:all .4s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(10px);position:relative;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.2);text-decoration:none;display:inline-block}.btn::after{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,#667eea,#764ba2,#f093fb,#f5576c,#4facfe,#00f2fe,#667eea);background-size:200% 200%;border-radius:var(--radius);z-index:-1;opacity:0;transition:opacity .4s ease;animation:gradientShift 3s ease infinite}@keyframes gradientShift{0%,100%{background-position:0}50%{background-position:100%}}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.btn:hover::before{left:100%}.btn:hover{background:var(--surface-hover);border-color:transparent;box-shadow:var(--glow-strong);transform:translateY(-2px)}.btn:hover::after{opacity:1}.btn:focus{outline:none;box-shadow:var(--focus-ring)}.btn:active{transform:translateY(0)}.current-month-year{font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,#ffffff 0%,#e2e8f0 50%,#ffffff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;text-shadow:0 0 20px rgba(255,255,255,.3);filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));letter-spacing:.02em;position:relative}.current-month-year::before{content:attr(data-text);position:absolute;top:0;left:0;right:0;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.7;z-index:-1;transform:translate(1px,1px)}.calendar-main{display:flex;flex-direction:column;overflow:hidden}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(6,1fr);flex:1;gap:1px;background:var(--border);margin:0;position:relative;z-index:5}.calendar-day-header{text-align:center;padding:1.2rem 1rem;font-weight:700;font-size:1rem;background:var(--surface-dark);color:var(--text-primary);text-transform:uppercase;letter-spacing:.1em;backdrop-filter:blur(10px);border-bottom:2px solid var(--border);box-shadow:0 2px 4px rgba(0,0,0,.2)}.calendar-day{background:var(--surface-dark);backdrop-filter:blur(10px);transition:all .4s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;padding:1rem;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;border:2px solid var(--border-light)}.calendar-day::after{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb,#f5576c,#4facfe,#00f2fe,#667eea);background-size:200% 200%;opacity:0;z-index:-1;transition:opacity .4s ease;animation:gradientShift 4s ease infinite}.event-count{background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);color:#fff;border-radius:12px;padding:.25rem .5rem;font-size:.75rem;font-weight:600;text-align:center;align-self:flex-end;min-width:20px;box-shadow:0 4px 8px rgba(79,172,254,.4);transition:all .3s ease}.calendar-day:hover .event-count{transform:scale(1.1);box-shadow:0 6px 12px rgba(79,172,254,.6)}.event-sidebar{background:rgba(0,0,0,.9);border-left:2px solid var(--border);padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sidebar-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.sidebar-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.sidebar-date{font-size:.9rem;color:var(--text-secondary)}.sidebar-events{flex:1}.sidebar-event{background:var(--surface);border:2px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:.75rem;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;display:flex;flex-direction:column;overflow:hidden}.sidebar-event::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#667eea,#764ba2,#f093fb);opacity:0;transition:opacity .4s ease}.sidebar-event:hover{background:var(--surface-hover);border-color:var(--border-bright);transform:translateX(8px);box-shadow:var(--glow)}.sidebar-event:hover::before{opacity:1}.sidebar-event.deleting{background:linear-gradient(135deg,rgba(255,65,108,.2),rgba(255,71,87,.2));border-color:rgba(255,65,108,.5);transform:scale(.98)}.event-actions{display:flex;gap:.5rem;margin-top:.5rem;opacity:0;transition:opacity .2s ease;align-items:center}.sidebar-event:hover .event-actions,.sidebar-event.touch-active .event-actions{opacity:1}.event-delete-btn{background:linear-gradient(135deg,#ff416c,#ff4757);color:#fff;border:none;padding:.3rem .6rem;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s ease;flex-shrink:0}.event-delete-btn:hover{background:linear-gradient(135deg,#ff3742,#ff3838);transform:scale(1.05)}.event-delete-btn:active{transform:scale(.95)}.event-edit-btn{background:var(--accent);color:#fff;border:none;padding:.3rem .6rem;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s ease;flex-shrink:0}.event-edit-btn:hover{background:linear-gradient(135deg,#4facfe 20%,#00f2fe 80%);transform:scale(1.05)}.event-edit-btn:active{transform:scale(.95)}.sidebar-event-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.sidebar-event-time{font-size:.8rem;color:var(--text-secondary);margin-bottom:.5rem}.sidebar-event-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.sidebar-empty{text-align:center;color:var(--text-muted);font-style:italic;margin-top:2rem}.add-event-btn{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:2px solid transparent;padding:.75rem 1rem;border-radius:12px;cursor:pointer;font-weight:600;margin-top:1rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.add-event-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.add-event-btn:hover::before{left:100%}.add-event-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(102,126,234,.5);background:linear-gradient(135deg,#764ba2 0%,#667eea 100%)}.add-event-btn:active{transform:translateY(0)}.calendar-day::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:var(--accent);opacity:0;transition:opacity .3s ease;z-index:-1}.calendar-day:hover::before{opacity:.1}.calendar-day:hover{background:var(--surface-hover);border-color:transparent;transform:scale(1.02);box-shadow:var(--glow-strong);z-index:10}.calendar-day:hover::after{opacity:1}.calendar-day.focused{background:var(--surface-hover);box-shadow:var(--focus-ring);z-index:15;position:relative}.calendar-day.focused::after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border:3px solid #667eea;border-radius:4px;pointer-events:none;z-index:1002;box-shadow:0 0 0 1px rgba(255,255,255,.5)}.calendar-day.today{background:linear-gradient(135deg,rgba(102,126,234,.2),rgba(245,87,108,.2));border:2px solid rgba(102,126,234,.5)}.calendar-day.other-month{opacity:.4;background:rgba(0,0,0,.3)}.day-number{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.calendar-day.today .day-number{background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);backdrop-filter:blur(20px);z-index:1000;justify-content:center;align-items:center;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}.modal-content{background:#000;padding:2rem;border:2px solid var(--border);border-radius:var(--radius);width:90%;max-width:500px;box-shadow:var(--shadow),var(--glow-strong);position:relative;animation:modalSlideIn .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.modal-content::before{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb,#f5576c,#4facfe,#00f2fe,#667eea);background-size:200% 200%;border-radius:var(--radius);z-index:-1;opacity:.6;animation:gradientShift 5s ease infinite}@keyframes modalSlideIn{from{transform:translateY(30px)scale(.95);opacity:0}to{transform:translateY(0)scale(1);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.modal-title{font-size:1.5rem;font-weight:600;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-btn{font-size:1.5rem;cursor:pointer;color:var(--text-secondary);transition:color .2s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);border:1px solid var(--border);flex-shrink:0}.close-btn:hover{color:var(--text-primary);background:var(--surface-hover)}.close-btn:active{transform:scale(.95);background:var(--surface-hover)}.form-group{margin-bottom:1.5rem}label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-weight:500;font-size:.9rem}input,textarea{width:100%;padding:1rem;background:var(--surface-dark);border:2px solid var(--border);border-radius:12px;color:var(--text-primary);font-family:inter,sans-serif;font-size:1rem;transition:all .4s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(10px);position:relative}input:hover,textarea:hover{border-color:var(--border-bright);background:var(--surface)}input:focus,textarea:focus{outline:none;border-color:transparent;box-shadow:0 0 0 2px rgba(102,126,234,.5),var(--glow);background:var(--surface-hover);transform:translateY(-1px)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.modal-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.delete-btn{background:linear-gradient(135deg,#ff416c,#ff4757)}.delete-btn:hover{background:linear-gradient(135deg,#ff3742,#ff3838)}.help-button{position:fixed;bottom:1rem;right:1rem;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:2px solid var(--border-bright);font-size:1.4rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;backdrop-filter:blur(10px);z-index:30;box-shadow:0 6px 20px rgba(102,126,234,.5);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,100%{box-shadow:0 6px 20px rgba(102,126,234,.5)}50%{box-shadow:0 6px 30px rgba(102,126,234,.8),0 0 40px rgba(102,126,234,.4)}}@media(prefers-reduced-motion:reduce){.help-button{animation:none}.btn::after,.calendar-day::after,.sidebar-event::before,.modal-content::before,.add-event-btn::before{animation:none}}.help-button:hover{background:linear-gradient(135deg,#764ba2 0%,#667eea 100%);transform:scale(1.08);box-shadow:0 8px 30px rgba(102,126,234,.7);animation:none}.help-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);backdrop-filter:blur(20px);z-index:1001;justify-content:center;align-items:center;animation:modalFadeIn .3s ease}.help-content{background:var(--background);padding:2rem;border:1px solid var(--border);border-radius:var(--radius);width:90%;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow),var(--glow);backdrop-filter:blur(20px);position:relative;animation:modalSlideIn .3s cubic-bezier(.4,0,.2,1)}.help-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.help-title{font-size:1.5rem;font-weight:600;background:var(--primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.help-section{margin-bottom:1.5rem}.help-section h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.help-section p{color:var(--text-secondary);line-height:1.6;margin-bottom:.5rem}.help-shortcuts{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:.9rem}.help-key{background:var(--surface);padding:.25rem .5rem;border-radius:4px;font-family:monospace;color:var(--text-primary);border:1px solid var(--border)}.help-desc{color:var(--text-secondary)}.timeline-view{grid-column:1/-1;grid-row:2;overflow:hidden;display:flex;flex-direction:column}.timeline-container{flex:1;overflow-y:auto;z-index:5}.timeline{padding:2rem;min-height:100%}.timeline-item{display:flex;margin-bottom:2rem;opacity:.8;transform:scale(.9);transition:all .4s cubic-bezier(.25,.46,.45,.94);min-height:120px}.timeline-item.center{opacity:1;transform:scale(1.05);box-shadow:var(--glow)}.timeline-item.active{opacity:1;transform:scale(1)}.timeline-date{flex:0 0 200px;display:flex;flex-direction:column;align-items:flex-end;padding-right:2rem;border-right:2px solid var(--border);position:relative}.timeline-date::after{content:'';position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:10px;height:10px;background:var(--primary);border-radius:50%;box-shadow:0 0 10px rgba(102,126,234,.5);z-index:1}.timeline-item.center .timeline-date::after{width:16px;height:16px;right:-9px;box-shadow:0 0 20px rgba(102,126,234,.8)}.date-month{font-size:1rem!important;color:#fff!important;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem;position:relative;z-index:10;font-weight:700!important;background:rgba(245,87,108,.3)!important;padding:.25rem .5rem!important;border-radius:4px!important;display:block!important}.date-day{font-size:2.5rem;font-weight:800;color:#fff;line-height:1;margin-bottom:.25rem;position:relative;z-index:2;text-align:center;background:rgba(102,126,234,.2);border-radius:8px;padding:.25rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.date-year{font-size:.9rem!important;color:#fff!important;position:relative;z-index:10;font-weight:600!important;background:rgba(79,172,254,.3)!important;padding:.25rem .5rem!important;border-radius:4px!important;display:block!important}.timeline-content{flex:1;padding-left:2rem;display:flex;flex-direction:column;gap:1rem}.day-header{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.today-badge{background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.events-list{display:flex;flex-direction:column;gap:.75rem}.event-card{background:var(--surface);border:2px solid var(--border);border-radius:12px;padding:1.25rem;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(10px);position:relative;overflow:hidden}.event-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#667eea,#764ba2,#f093fb);opacity:0;transition:opacity .4s ease}.event-card::after{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb,#f5576c,#4facfe,#00f2fe,#667eea);background-size:200% 200%;border-radius:12px;z-index:-1;opacity:0;transition:opacity .4s ease;animation:gradientShift 4s ease infinite}.event-card:hover{background:var(--surface-hover);border-color:transparent;transform:translateX(12px);box-shadow:var(--glow-strong)}.event-card:hover::before{opacity:1}.event-card:hover::after{opacity:.6}.event-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.event-time{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.event-description{font-size:.95rem;color:var(--text-secondary);line-height:1.5}.no-events{background:var(--surface-dark);border:1px solid var(--border);border-radius:12px;padding:1.5rem;text-align:center;color:var(--text-muted);font-style:italic}@media(max-width:768px){.container{grid-template-columns:1fr;grid-template-rows:auto 1fr 180px;gap:0}.event-sidebar{border-left:none;border-top:1px solid var(--border);height:180px;min-height:180px;max-height:180px;padding:.75rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.close-btn{width:44px;height:44px;font-size:1.8rem}.event-actions{opacity:1;margin-top:.75rem}.sidebar-event{padding:.75rem;margin-bottom:.5rem}.event-delete-btn,.event-edit-btn{padding:.4rem .8rem;font-size:.75rem;min-height:32px}.sidebar-events{max-height:120px;overflow-y:auto;-webkit-overflow-scrolling:touch}.calendar-header{padding:.75rem;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;min-height:auto}.calendar-nav{gap:.5rem}.nav-controls{gap:.5rem}.btn{padding:.5rem .75rem;font-size:.8rem;white-space:nowrap}#prev-month,#next-month{padding:.5rem;min-width:40px}#prev-month .btn-text,#next-month .btn-text{display:none}.timeline-link .btn-text{display:none}.timeline-link::after{content:"Timeline"}.current-month-year{font-size:1.3rem;white-space:nowrap;text-align:center}.calendar-main{overflow:hidden;min-height:0}.calendar-grid{gap:.5px;margin:0}.calendar-day{padding:.25rem;min-height:60px}.calendar-day-header{padding:.5rem .25rem;font-size:.75rem;min-height:auto}.day-number{font-size:.9rem;margin-bottom:.25rem}.event-count{font-size:.65rem;padding:.15rem .35rem;min-width:16px}.modal-content{width:95%;padding:1.5rem;margin:1rem}.sidebar-header{margin-bottom:.75rem;padding-bottom:.5rem}.sidebar-title{font-size:1rem}.sidebar-date{font-size:.8rem}.sidebar-event{padding:.75rem;margin-bottom:.5rem}.add-event-btn{padding:.5rem .75rem;font-size:.8rem;margin-top:.5rem}.timeline{padding:1rem}.timeline-date{flex:0 0 120px;padding-right:1rem}.timeline-content{padding-left:1rem}}@media(max-width:480px){.calendar-header{padding:.5rem;gap:.25rem}.btn{padding:.4rem .6rem;font-size:.75rem}#prev-month,#next-month{padding:.4rem;min-width:36px}.current-month-year{font-size:1.1rem}.close-btn{width:48px;height:48px;font-size:2rem}.event-delete-btn,.event-edit-btn{padding:.5rem 1rem;font-size:.8rem;min-height:36px}.calendar-day{padding:.15rem;min-height:50px}.calendar-day-header{padding:.4rem .15rem;font-size:.65rem;letter-spacing:.05em}.day-number{font-size:.8rem;margin-bottom:.15rem}.event-count{font-size:.6rem;padding:.1rem .25rem;min-width:14px}.event-sidebar{height:160px;min-height:160px;max-height:160px;padding:.5rem}.sidebar-events{max-height:100px}.sidebar-header{margin-bottom:.5rem;padding-bottom:.4rem}.sidebar-title{font-size:.9rem}.sidebar-date{font-size:.75rem}.sidebar-event{padding:.5rem;margin-bottom:.4rem}.sidebar-event-title{font-size:.85rem}.sidebar-event-time{font-size:.7rem}.sidebar-event-desc{font-size:.75rem}.add-event-btn{padding:.4rem .6rem;font-size:.75rem;margin-top:.4rem}.modal-title{font-size:1.2rem}.modal-footer{flex-direction:column}.container{grid-template-rows:auto 1fr 160px}}