@import"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap";*{margin:0;padding:0;box-sizing:border-box;outline:none;font-family:Roboto,sans-serif}html{font-size:62.5%}.container{width:100%;height:100vh;background-color:#2c3e50;display:grid;place-items:center;perspective:100rem}:root{--background-color: #121212;--text-color-primary: #e0e0e0;--text-color-secondary: #8a919e;--text-color-inverted: #252a31;--primary-accent-color: #007bff;--primary-accent-hover: #0056b3;--secondary-accent-color: #3d4450;--container-bg-color: #2c313a;--container-bg-light: #252a31;--border-color: #4a5058;--danger-color: #dc3545;--danger-hover: #a71d2a;--event-item-bg: rgba(255, 255, 255, .95);--sidebar-btn-bg: rgba(255, 255, 255, .2);--sidebar-btn-hover: rgba(255, 255, 255, .3)}[data-theme=light]{--background-color: #ffffff;--text-color-primary: #212529;--text-color-secondary: #6c757d;--text-color-inverted: #252a31;--primary-accent-color: #007bff;--primary-accent-hover: #0056b3;--secondary-accent-color: #e9ecef;--container-bg-color: #f8f9fa;--container-bg-light: #e9ecef;--border-color: #dee2e6;--event-item-bg: #ffffff;--sidebar-btn-bg: rgba(255, 255, 255, .2);--sidebar-btn-hover: rgba(255, 255, 255, .3)}html,body,#root{width:100%;margin:0;padding:0;height:auto}body{font-family:Inter,sans-serif;background-color:var(--background-color);color:var(--text-color-primary);margin:0;padding:0}.calendar-container{display:flex;width:100vw;height:100vh;min-width:100vw;min-height:100vh;background-color:var(--background-color);border-radius:0;box-shadow:none;overflow:hidden;border:none;margin:0;padding:0}.calendar{flex:3;padding:40px;display:flex;flex-direction:column;position:relative}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.month-year{text-align:left;display:flex;align-items:baseline;gap:.5rem}.month{font-size:2.2rem;font-weight:700;color:var(--text-color-primary)}.year{font-size:1.2rem;color:var(--text-color-secondary)}.nav-btn{background-color:var(--secondary-accent-color);border:none;color:var(--text-color-secondary);font-size:1.5rem;cursor:pointer;padding:10px 15px;border-radius:12px;transition:all .3s ease}.nav-btn:hover{background-color:var(--primary-accent-color);color:#fff}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:15px;flex-grow:1}.day-name,.day,.empty-day{font-size:1.6rem;display:flex;justify-content:center;align-items:center;border-radius:12px}.day-name{font-weight:600;color:var(--text-color-secondary);height:30px}.day{position:relative;cursor:pointer;transition:background-color .3s ease,color .3s ease;font-weight:600;color:var(--text-color-primary)}.day:hover{background-color:var(--secondary-accent-color)}.day.selected-day{background:linear-gradient(135deg,#007bff 60%,#00c6ff);color:#fff}.day.past-day{color:var(--text-color-secondary);opacity:.6}.today{background:linear-gradient(135deg,#8b5cf6 60%,#ec4899);color:#fff;font-weight:700}.has-event{position:relative}.has-event:after{content:"";position:absolute;bottom:10px;left:50%;transform:translate(-50%);width:5px;height:5px;background-color:transparent;border-radius:50%}.event-dots{position:absolute;left:50%;bottom:8px;transform:translate(-50%);display:flex;gap:4px;z-index:2}.event-dot{width:6px;height:6px;border-radius:50%;background:#ff4d4f}.sidebar{flex:1.2;background:linear-gradient(160deg,var(--primary-accent-color),var(--primary-accent-hover));padding:40px;display:flex;flex-direction:column;color:#fff;border-radius:0;box-shadow:none;height:100vh;min-height:100vh}.sidebar-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.sidebar-header h2{margin-top:0;font-size:1.6rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-actions{display:flex;gap:10px}.show-all-btn,.sidebar-btn{background:var(--sidebar-btn-bg);border:none;color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:background-color .3s ease;font-weight:600}.show-all-btn:hover,.sidebar-btn:hover{background:var(--sidebar-btn-hover)}.sidebar-btn:disabled{background:#ffffff1a;color:#ffffff80;cursor:not-allowed}.sidebar-btn:disabled:hover{background:#ffffff1a}.events-list{margin-top:20px;overflow-y:auto;flex-grow:1;padding-right:10px}.events-list::-webkit-scrollbar{width:6px}.events-list::-webkit-scrollbar-track{background:#0000001a;border-radius:10px}.events-list::-webkit-scrollbar-thumb{background:#ffffff80;border-radius:10px}.events-list::-webkit-scrollbar-thumb:hover{background:#ffffffb3}.event-item{background-color:var(--event-item-bg);color:var(--text-color-inverted);border-radius:12px;padding:15px 20px 15px 28px;margin-bottom:15px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;border:1px solid rgba(0,0,0,.05);box-sizing:border-box;position:relative}.event-color-bar{position:absolute;left:0;top:0;width:30px;height:100%;border-top-left-radius:12px;border-bottom-left-radius:12px;background:#ccc;z-index:1}.event-item:hover{transform:scale(1.03);box-shadow:0 8px 20px #0000001a}.event-details{margin-left:20px;display:flex;flex-direction:column}.event-title{font-weight:700;font-size:1.1rem;margin:0 0 5px}.event-time{font-size:.9rem;color:#6c757d;margin:0;font-weight:600}.event-expanded{margin-top:15px;padding-top:15px;border-top:1px solid var(--border-color)}.event-desc{font-size:1rem;line-height:1.4;color:#6c757d;margin:0 0 15px 20px}.event-actions button{background-color:var(--primary-accent-color);color:#fff;border:none;padding:8px 12px;border-radius:8px;cursor:pointer;margin-right:10px;transition:background-color .3s;font-weight:600;margin-left:20px}.event-actions button:hover{background-color:var(--primary-accent-hover)}.event-actions button:last-child{background-color:var(--danger-color)}.event-actions button:last-child:hover{background-color:var(--danger-hover)}.no-events{color:#fffc;text-align:center;padding-top:40px}.event-popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:1000}.event-popup{background-color:var(--container-bg-color);padding:30px;border-radius:16px;width:450px;max-width:90%;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 40px #0000004d}.event-popup h3{margin-top:0;font-size:1.5rem;font-weight:700}.event-popup input,.event-popup textarea,.event-popup select{width:100%;padding:12px;margin-bottom:15px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--container-bg-light);color:var(--text-color-primary);box-sizing:border-box;font-family:Inter,sans-serif;font-size:1rem;transition:border-color .3s}.event-popup input:focus,.event-popup textarea:focus,.event-popup select:focus{outline:none;border-color:var(--primary-accent-color)}.event-popup textarea{resize:vertical;min-height:80px}.time-picker{display:flex;align-items:center;gap:10px;margin-bottom:15px}.time-picker span{font-size:1.2rem;font-weight:700;color:var(--text-color-secondary)}.time-picker input{width:80px;margin-bottom:0;text-align:center}.time-picker select{margin-bottom:0}.popup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.popup-actions button{padding:12px 24px;border-radius:8px;border:none;cursor:pointer;transition:background-color .3s;font-weight:600;font-size:1rem}.popup-actions button:first-child{background-color:var(--primary-accent-color);color:#fff}.popup-actions button:first-child:hover{background-color:var(--primary-accent-hover)}.popup-actions button:last-child{background-color:#4a5058;color:var(--text-color-primary)}.popup-actions button:last-child:hover{background-color:#5a6268}.chat-fab{width:64px;height:64px;background:#fff;color:#007bff;border:none;border-radius:50%;font-size:2.2em;font-weight:700;box-shadow:0 8px 32px #007bff40;cursor:pointer;display:flex;justify-content:center;align-items:center;z-index:1200;transition:background .18s,color .18s,box-shadow .18s,transform .18s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chat-fab:hover{background:linear-gradient(135deg,#007bff 60%,#00c6ff);color:#fff;box-shadow:0 12px 36px #007bff59;transform:scale(1.08)}.chat-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .3s ease-out}.chat-modal-content{position:relative;animation:slideUp .4s cubic-bezier(.175,.885,.32,1.275)}.chat-modal-close-btn{position:absolute;top:-15px;right:-15px;width:36px;height:36px;background:#fff;border:none;border-radius:50%;color:#555;font-size:2em;font-weight:300;line-height:36px;text-align:center;cursor:pointer;box-shadow:0 4px 12px #0003;transition:all .2s ease;z-index:2001}.chat-modal-close-btn:hover{background:#f0f0f0;transform:scale(1.1) rotate(90deg);color:#000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.settings-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:3000;animation:fadeIn .3s ease-out}.settings-modal-content{background:var(--container-bg-color);color:var(--text-color-primary);padding:30px;border-radius:16px;width:400px;max-width:90%;box-shadow:0 10px 40px #0000004d;animation:slideUp .4s cubic-bezier(.175,.885,.32,1.275)}.settings-modal-content h3{margin-top:0;margin-bottom:25px;font-size:1.5rem}.setting-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.setting-item label{font-weight:600;font-size:1rem}.theme-toggle{display:flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.theme-toggle button{background:transparent;border:none;color:var(--text-color-secondary);padding:8px 16px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease}.theme-toggle button.active{background:var(--primary-accent-color);color:#fff;box-shadow:0 0 10px var(--primary-accent-color)}.color-palette{display:flex;gap:10px}.color-swatch{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 5px #0000001a}.color-swatch.active{border-color:#fff;transform:scale(1.15);box-shadow:0 0 10px #fff}input[type=color]{display:none}input[type=color]::-webkit-color-swatch{display:none}input[type=color]::-moz-color-swatch{display:none}.settings-close-btn{width:100%;padding:12px;border-radius:8px;border:none;cursor:pointer;transition:background-color .3s;font-weight:600;font-size:1rem;margin-top:20px;background-color:var(--primary-accent-color);color:#fff}[data-theme=light] .settings-close-btn{color:#fff}.settings-close-btn:hover{background-color:var(--primary-accent-hover);opacity:.9}@media (max-width: 768px){.calendar-container{flex-direction:column;height:auto;overflow-y:auto}.calendar{min-height:auto;flex-shrink:0;padding:20px 15px}.sidebar{min-height:auto;padding:20px 15px;border-top:1px solid rgba(255,255,255,.1)}.month{font-size:1.8rem}.year{font-size:1rem}.calendar-grid{gap:8px}.day,.day-name{font-size:.9rem}.chat-modal-content{width:90vw;max-width:480px}.chat-modal-close-btn{top:5px;right:5px}}.fab-root{position:fixed;bottom:30px;right:30px;z-index:1200;display:flex;flex-direction:column-reverse;align-items:center}.chat-fab{width:64px;height:64px;background:#fff;color:#007bff;border:none;border-radius:50%;font-size:2.2em;font-weight:700;box-shadow:0 8px 32px #007bff40;cursor:pointer;display:flex;justify-content:center;align-items:center;z-index:1200;transition:box-shadow .2s,transform .2s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chat-fab:hover{box-shadow:0 12px 36px #007bff59;transform:scale(1.08)}.fab-popup{display:flex;flex-direction:column;align-items:flex-end;gap:18px;margin-bottom:10px;background:none;border-radius:0;box-shadow:none;padding:0;animation:none}.fab-option{width:56px;height:56px;background:#fff;color:#007bff;border:none;border-radius:50%;box-shadow:0 4px 24px #007bff2e,0 1.5px 6px #0000001a;display:flex;align-items:center;justify-content:center;font-size:2em;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s,transform .18s;position:relative;opacity:0;transform:translateY(20px) scale(.95);animation:fab-float-in .25s cubic-bezier(.4,1.4,.6,1) forwards}.fab-option:nth-child(1){animation-delay:.05s}.fab-option:nth-child(2){animation-delay:.12s}.fab-option:nth-child(3){animation-delay:.19s}@keyframes fab-float-in{to{opacity:1;transform:translateY(0) scale(1)}}.fab-option:hover{background:linear-gradient(135deg,#007bff 60%,#00c6ff);color:#fff;box-shadow:0 8px 32px #007bff44;transform:scale(1.1)}.fab-option[title]:hover:after{content:attr(title);position:absolute;right:110%;top:50%;transform:translateY(-50%);background:#1e222cf2;color:#fff;padding:6px 14px;border-radius:8px;font-size:1em;white-space:nowrap;box-shadow:0 2px 8px #007bff22;pointer-events:none;opacity:1;z-index:9999}.fab-circular-bg{position:fixed;bottom:0;right:0;width:320px;height:320px;background:linear-gradient(135deg,#007bff 60%,#0056b3);border-radius:50%;z-index:1100;box-shadow:0 8px 32px #007bff44;animation:fab-bg-in .28s cubic-bezier(.4,1.4,.6,1);pointer-events:auto;display:block}.fab-main{position:relative;width:64px;height:64px;background:#fff;color:#007bff;border:none;border-radius:50%;font-size:2.2em;font-weight:700;box-shadow:0 8px 32px #007bff40;cursor:pointer;display:flex;justify-content:center;align-items:center;z-index:1202;transition:all .3s cubic-bezier(.4,0,.2,1)}.fab-main:hover{background:linear-gradient(135deg,#007bff 60%,#00c6ff);color:#fff;box-shadow:0 12px 36px #007bff59;transform:scale(1.08)}.fab-circular-option{position:absolute;width:80px;height:80px;background:none;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:2.1em;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s,transform .18s;border-radius:50%;box-shadow:none;z-index:1110;padding:0}.fab-circular-option span{font-size:1em;font-weight:600;margin-top:8px;color:#fff;letter-spacing:.01em;text-align:center}.fab-circular-option.user{left:38px;top:60px}.fab-circular-option.ai{right:38px;top:60px}.fab-circular-option.settings{left:50%;bottom:38px;transform:translate(-50%);transform-origin:50% 50%}.fab-circular-option:hover{background:#ffffff21;color:#fff;box-shadow:0 4px 18px #fff2;transform:scale(1.08)}.fab-circular-option.settings:hover{background:#ffffff21;color:#fff;box-shadow:0 4px 18px #fff2;transform:translate(-50%) scale(1.08)}.fab-vertical-menu{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:20px;z-index:1201;pointer-events:none}.fab-vertical-item{position:relative;display:flex;align-items:center;justify-content:center;background:#fff;color:#007bff;border:none;border-radius:50%;box-shadow:0 4px 24px #00000026;cursor:pointer;height:56px;width:56px;opacity:0;transform:translateY(30px) scale(.9);transition:transform .35s cubic-bezier(.175,.885,.32,1.275),opacity .2s ease-out;pointer-events:none}.fab-menu-open .fab-vertical-item{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.fab-vertical-item.user{transition-delay:.05s}.fab-vertical-item.ai{transition-delay:.1s}.fab-vertical-item.settings{transition-delay:.15s}.fab-vertical-item:hover,.fab-vertical-item:focus{background:linear-gradient(135deg,#007bff 60%,#00c6ff);color:#fff;transform:scale(1.1);outline:none}.fab-vertical-item i{font-size:1.5em}.fab-label{position:absolute;right:100%;margin-right:16px;background:#1e222cf2;color:#fff;padding:8px 16px;border-radius:8px;font-size:1em;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #0003;opacity:0;transform:translate(10px);transition:all .22s cubic-bezier(.4,0,.2,1);pointer-events:none}.fab-vertical-item:hover .fab-label{opacity:1;transform:translate(0)}.fab-circular-menu,.fab-circular-item{display:none!important}@media (max-width: 600px){.fab-vertical-item{width:48px;height:48px}.fab-vertical-item i{font-size:1.3em}}
