*{margin:0;padding:0;box-sizing:border-box}:root{--primary-gradient: linear-gradient(135deg, #2E72F6 0%, #7B5CF5 100%);--secondary-gradient: linear-gradient(135deg, #5B4CF5 0%, #9B7AFF 100%);--accent-gradient: linear-gradient(135deg, #2E72F6 0%, #7B5CF5 100%);--dark-bg: #000000;--card-bg: rgba(46, 114, 246, .1);--card-border: rgba(46, 114, 246, .2);--text-primary: #ffffff;--text-secondary: #2E72F6;--text-accent: #7B5CF5;--shadow-glow: 0 8px 32px rgba(46, 114, 246, .4);--shadow-card: 0 4px 20px rgba(0, 0, 0, .3)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--dark-bg);color:var(--text-primary);overflow-x:hidden}#root{min-height:100vh;background:radial-gradient(ellipse at top,rgba(46,114,246,.15) 0%,transparent 50%),radial-gradient(ellipse at bottom,rgba(123,92,245,.1) 0%,transparent 50%)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:rgba(255,255,255,.1)}::-webkit-scrollbar-thumb{background:var(--accent-gradient);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#7B5CF5 0%,#5B4CF5 100%)}.glass{background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px}.glow{box-shadow:var(--shadow-glow)}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary{background:var(--primary-gradient);border:none;color:#fff;padding:12px 24px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:var(--text-primary);padding:12px 24px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:16px;padding:24px;transition:all .3s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-glow);border-color:#2e72f64d}.input-field{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 16px;color:var(--text-primary);font-size:14px;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.input-field:focus{outline:none;border-color:var(--text-accent);box-shadow:0 0 0 3px #2e72f61a}.input-field::placeholder{color:var(--text-secondary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fadeInUp{animation:fadeInUp .6s ease-out}.animate-pulse{animation:pulse 2s infinite}.animate-float{animation:float 3s ease-in-out infinite}@media (max-width: 1200px){.card{padding:16px}.btn-primary,.btn-secondary{padding:10px 16px;font-size:14px}}@media (max-width: 768px){.card{padding:12px}.btn-primary,.btn-secondary{padding:8px 12px;font-size:12px}h1{font-size:1.5rem!important}h2{font-size:1.2rem!important}h3{font-size:1rem!important}}.app-shell{display:flex;min-height:100vh;background:var(--dark-bg);position:relative}.app-sidebar{width:280px;flex-shrink:0;padding:24px 0 110px;min-height:100vh;position:relative;overflow-x:hidden;overflow-y:auto}.app-main{flex:1;min-width:0;padding:0;background:transparent;position:relative;overflow:auto}.app-mobile-header,.app-sidebar-overlay{display:none}.app-menu-button{width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}.app-menu-button span{display:block;width:18px;height:2px;background:white;border-radius:2px;transition:transform .2s ease,opacity .2s ease}.app-menu-button span.is-open:nth-child(1){transform:translateY(7px) rotate(45deg)}.app-menu-button span.is-open:nth-child(2){opacity:0}.app-menu-button span.is-open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.appointments-page{padding:24px;color:#fff;min-height:100%}.appointments-page__title{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#2E72F6 0%,#7B5CF5 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.appointments-page__subtitle{color:var(--text-secondary);margin:8px 0 0;font-size:1.05rem}.appointments-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.appointment-calendar{padding:20px;overflow:hidden}.appointment-calendar__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.appointment-calendar__title{margin:0;font-size:1.4rem}.appointment-calendar__nav{display:flex;gap:8px}.appointment-calendar__nav .btn-secondary{padding:8px 14px;font-size:13px}.appointment-calendar__weekdays,.appointment-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.appointment-calendar__weekday{padding:8px 4px;text-align:center;color:var(--text-secondary);font-size:12px;font-weight:600}.appointment-calendar__weekday-short{display:none}.appointment-calendar__cell{min-height:118px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);text-align:left;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.appointment-calendar__cell.is-outside{opacity:.4}.appointment-calendar__cell.is-today{border-color:#2e72f6b3}.appointment-calendar__cell.is-selected,.appointment-calendar__cell.has-events.is-selected{background:rgba(46,114,246,.16);border-color:#7b5cf5b3}.appointment-calendar__day{font-size:13px;font-weight:700}.appointment-calendar__dot{display:none}.appointment-calendar__events{display:flex;flex-direction:column;gap:4px;min-height:0}.appointment-event-chip{width:100%;border:none;border-radius:6px;background:linear-gradient(135deg,#2E72F6 0%,#7B5CF5 100%);color:#fff;display:flex;gap:6px;align-items:center;padding:4px 6px;cursor:pointer;font-size:11px;text-align:left}.appointment-event-chip__time{font-weight:700;white-space:nowrap}.appointment-event-chip__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-calendar__more{font-size:11px;color:#9b7aff}.appointments-day-panel{padding:20px;min-height:240px}.appointments-day-item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;padding:12px;margin-bottom:10px;cursor:pointer;text-align:left}.appointments-day-item small{color:var(--text-secondary)}.associated-entity-card{width:100%;text-align:left;margin-top:8px;margin-bottom:20px;padding:16px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--text-primary)}.associated-entity-card.is-clickable{cursor:pointer;transition:all .2s ease}.associated-entity-card.is-clickable:hover:not(:disabled){background:rgba(255,255,255,.08);border-color:#7b5cf573}.associated-entity-card:disabled{cursor:default}.associated-entity-card__label{font-size:12px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.associated-entity-card__title{font-size:15px;font-weight:700;margin-bottom:8px}.associated-entity-card__meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-secondary)}.associated-entity-card__status{text-transform:capitalize}.associated-entity-card__empty{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}@media (max-width: 980px){.appointments-layout{grid-template-columns:1fr}}@media (max-width: 768px){.app-shell{flex-direction:column}.app-mobile-header{display:flex;align-items:center;gap:12px;padding:12px 16px;position:sticky;top:0;z-index:150;background:rgba(0,0,0,.92);border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-sidebar{position:fixed;top:0;left:0;height:100vh;z-index:200;transform:translate(-110%);transition:transform .25s ease;box-shadow:none}.app-sidebar.is-open{transform:translate(0);box-shadow:16px 0 40px #00000073}.app-sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;background:rgba(0,0,0,.55);border:none;padding:0}.app-main{overflow:auto;width:100%}.appointments-page{padding:16px}.appointments-page__title{font-size:1.7rem}.appointments-page__subtitle{font-size:.95rem}.appointment-calendar{padding:12px}.appointment-calendar__title{font-size:1.15rem;width:100%}.appointment-calendar__nav{width:100%}.appointment-calendar__nav .btn-secondary{flex:1}.appointment-calendar__weekday-full{display:none}.appointment-calendar__weekday-short{display:inline}.appointment-calendar__cell{min-height:52px;padding:6px 2px;align-items:center;gap:4px}.appointment-calendar__events,.appointment-event-chip,.appointment-calendar__more{display:none}.appointment-calendar__dot{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:linear-gradient(135deg,#2E72F6 0%,#7B5CF5 100%);font-size:10px;font-weight:700}}
