*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1208;--surface:#231a0e;--surface-hover:#2d2110;--border:#3d2f1a;--text:#f0e6d3;--text-muted:#9a8470;--accent:#e17055;--accent-light:#fab1a0;--accent-amber:#fdcb6e;--accent-glow:rgba(225,112,85,.15);--success:#00b894;--radius:12px;--radius-sm:8px}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent-light);text-decoration:none}a:hover{text-decoration:underline}.calendar-page{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:50}.calendar-header-left{display:flex;align-items:center;gap:.625rem}.calendar-logo{font-size:1.375rem;line-height:1}.calendar-header h1{font-size:1.125rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.calendar-header-right{display:flex;align-items:center;gap:1rem}.user-name{font-size:.875rem;color:var(--text-muted)}.calendar-main{flex:1 1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.fc{font-family:inherit!important}.fc,.fc .fc-toolbar-title{color:var(--text)!important}.fc .fc-toolbar-title{font-size:1.125rem!important;font-weight:700!important}.fc .fc-button{background:var(--surface)!important;border:1px solid var(--border)!important;color:var(--text)!important;border-radius:var(--radius-sm)!important;font-size:.8125rem!important;padding:.375rem .75rem!important;transition:all .15s!important;box-shadow:none!important;text-transform:none!important}.fc .fc-button:focus,.fc .fc-button:hover{background:var(--surface-hover)!important;border-color:var(--accent)!important;color:var(--text)!important;outline:none!important;box-shadow:none!important}.fc .fc-button-active,.fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;box-shadow:none!important}.fc .fc-col-header-cell{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text-muted)!important;font-size:.75rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.05em!important;padding:.5rem 0!important}.fc .fc-daygrid-day,.fc .fc-timegrid-slot{background:transparent!important;border-color:var(--border)!important}.fc .fc-daygrid-day:hover{background:var(--surface)!important}.fc .fc-daygrid-day-number{color:var(--text-muted)!important;font-size:.8125rem!important;padding:.375rem .5rem!important}.fc .fc-day-today{background:rgba(225,112,85,.08)!important}.fc .fc-day-today .fc-daygrid-day-number{color:var(--accent)!important;font-weight:700!important}.fc .fc-event{border-radius:4px!important;border:none!important;font-size:.8125rem!important;padding:.1rem .375rem!important;cursor:pointer!important;transition:filter .15s!important}.fc .fc-event:hover{filter:brightness(1.15)!important}.fc .fc-event-title{font-weight:500!important}.fc .fc-scrollgrid,.fc .fc-scrollgrid td,.fc .fc-scrollgrid th{border-color:var(--border)!important}.fc .fc-timegrid-slot-label{color:var(--text-muted)!important;font-size:.75rem!important}.fc .fc-more-link{color:var(--accent-light)!important;font-size:.75rem!important}.fc .fc-highlight{background:var(--accent-glow)!important}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;box-shadow:0 24px 64px rgba(0,0,0,.6);animation:modal-in .15s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1rem;font-weight:700;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:.25rem;line-height:1;transition:color .15s}.modal-close:hover{color:var(--text)}.modal-form{padding:1.25rem 1.5rem 1.5rem;gap:1rem}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:.375rem}.form-group label{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.form-group input[type=datetime-local],.form-group input[type=text],.form-group textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:.9375rem;padding:.625rem .875rem;transition:border-color .15s;width:100%}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:60px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.color-palette{display:flex;gap:.5rem;flex-wrap:wrap}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:var(--text);transform:scale(1.1)}.modal-actions{display:flex;align-items:center;padding-top:.25rem}.btn-primary{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:600;padding:.625rem 1.25rem;transition:filter .15s}.btn-primary:hover{filter:brightness(1.1)}.btn-secondary{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-family:inherit;font-size:.875rem;padding:.625rem 1.25rem;transition:border-color .15s}.btn-secondary:hover{border-color:var(--accent)}.btn-danger{background:none;border:1px solid #d63031;border-radius:var(--radius-sm);color:#d63031;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.625rem 1.25rem;transition:background .15s}.btn-danger:hover{background:rgba(214,48,49,.1)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 2rem;text-align:center;width:100%;max-width:360px}.login-icon{font-size:2.5rem;margin-bottom:.75rem}.login-title{font-size:1.5rem;font-weight:800;color:var(--text);margin-bottom:.375rem;letter-spacing:-.02em}.login-subtitle{font-size:.875rem;color:var(--text-muted)}.sso-button{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:.9375rem;font-weight:700;padding:.75rem 1.5rem;width:100%;transition:filter .15s;letter-spacing:.02em}.sso-button:hover{filter:brightness(1.1)}.sign-in-button,button[type=button]{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.8125rem;padding:.4rem .875rem;transition:border-color .15s,color .15s}button[type=button]:hover{border-color:var(--accent);color:var(--text)}@media (max-width:640px){.calendar-main{padding:.75rem}.fc .fc-toolbar{flex-wrap:wrap;gap:.5rem}.form-row{grid-template-columns:1fr}.modal{max-width:100%}}