.login-container{--login-ink: #10131b;--login-muted: #637083;--login-panel: rgba(255, 255, 255, .78);--login-line: rgba(29, 38, 54, .12);--login-blue: #265cff;--login-teal: #0f9f8f;--login-coral: #ff6247;--login-gold: #f3b43f;width:100%;min-height:100vh;position:relative;overflow:hidden auto;background:linear-gradient(120deg,#ffffffeb,#f5f8fcbd),radial-gradient(circle at 18% 20%,rgba(38,92,255,.16),transparent 34%),radial-gradient(circle at 88% 12%,rgba(15,159,143,.15),transparent 30%),radial-gradient(circle at 74% 86%,rgba(255,98,71,.12),transparent 32%),#eef3f8;color:var(--login-ink);font-family:Aptos,Segoe UI,system-ui,sans-serif}[data-theme=dark] .login-container{--login-ink: #f6f8fb;--login-muted: #a9b4c4;--login-panel: rgba(19, 23, 31, .78);--login-line: rgba(255, 255, 255, .14);background:linear-gradient(120deg,#0a0d13f5,#11161fd6),radial-gradient(circle at 18% 20%,rgba(74,118,255,.22),transparent 34%),radial-gradient(circle at 88% 12%,rgba(15,159,143,.18),transparent 30%),radial-gradient(circle at 74% 86%,rgba(255,98,71,.14),transparent 32%),#090d13}.login-background{position:fixed;inset:0;pointer-events:none;overflow:hidden}.login-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(16,19,27,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(16,19,27,.06) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 82%);mask-image:linear-gradient(to bottom,#000 0%,transparent 82%)}[data-theme=dark] .login-grid{background-image:linear-gradient(rgba(255,255,255,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.065) 1px,transparent 1px)}.login-signal{position:absolute;width:46vw;height:46vw;border:1px solid rgba(38,92,255,.18);border-radius:38% 62% 54% 46%;transform:rotate(-16deg)}.login-signal-one{top:-18vw;right:-10vw}.login-signal-two{bottom:-24vw;left:-14vw;border-color:#0f9f8f2e;transform:rotate(22deg)}.theme-toggle-login{position:fixed;top:1.25rem;right:1.25rem;width:46px;height:46px;border-radius:50%;border:1px solid var(--login-line);background:var(--login-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--login-ink);cursor:pointer;display:grid;place-items:center;transition:transform .2s ease,border-color .2s ease,background .2s ease;z-index:10;box-shadow:0 16px 36px #10131b1f}.theme-toggle-login:hover{transform:translateY(-2px);border-color:#265cff6b}.theme-toggle-login-icon{position:relative;width:18px;height:18px;display:block}.theme-toggle-login.is-moon .theme-toggle-login-icon{border-radius:50%;box-shadow:inset -6px -2px 0 0 currentColor}.theme-toggle-login.is-sun .theme-toggle-login-icon{border:2px solid currentColor;border-radius:50%}.theme-toggle-login.is-sun .theme-toggle-login-icon:before,.theme-toggle-login.is-sun .theme-toggle-login-icon:after{content:"";position:absolute;inset:-7px 7px;width:2px;background:currentColor;border-radius:999px}.theme-toggle-login.is-sun .theme-toggle-login-icon:after{transform:rotate(90deg)}.login-content{width:min(1180px,calc(100% - 40px));margin:0 auto;position:relative;z-index:1;padding:1.4rem 0 2rem;animation:loginReveal .72s cubic-bezier(.16,1,.3,1) both}@keyframes loginReveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.login-topbar{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-right:4rem}.login-brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--login-ink);text-decoration:none;font-weight:850;font-size:1.08rem}.login-brand-mark{width:36px;height:36px;border-radius:10px;box-shadow:0 12px 28px #265cff3d}.login-android-pill{border:1px solid rgba(15,159,143,.34);background:#0f9f8f1a;color:var(--login-ink);border-radius:999px;padding:.66rem 1rem;font:inherit;font-size:.88rem;font-weight:780;cursor:pointer;transition:transform .2s ease,background .2s ease}.login-android-pill:hover{transform:translateY(-2px);background:#0f9f8f29}.login-hero{min-height:calc(100vh - 182px);display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);padding:3rem 0 2.25rem}.login-copy{max-width:650px}.login-eyebrow{display:inline-flex;align-items:center;gap:.55rem;color:var(--login-muted);font-size:.82rem;font-weight:820;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.15rem}.login-eyebrow-dot{width:9px;height:9px;border-radius:50%;background:var(--login-teal);box-shadow:0 0 0 7px #0f9f8f1f}.login-title{font-size:clamp(3rem,8vw,6.7rem);font-weight:700;line-height:.93;letter-spacing:0;color:var(--login-ink);margin:0;max-width:760px}.login-subtitle{color:var(--login-muted);font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.75;margin:1.35rem 0 0;max-width:620px}.error-banner{display:flex;align-items:center;gap:.85rem;background:#ff62471f;border:1px solid rgba(255,98,71,.28);border-radius:14px;padding:.9rem 1rem;margin-top:1.35rem}.error-icon{width:11px;height:11px;border-radius:50%;background:var(--login-coral);box-shadow:0 0 0 6px #ff624724;flex:0 0 auto}.error-text{color:#ba321f;font-weight:680;font-size:.94rem}[data-theme=dark] .error-text{color:#ffb5a9}.login-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.9rem}.btn-login-primary,.btn-login-secondary,.phone-download{min-height:50px;border:none;border-radius:14px;font:inherit;font-size:.98rem;font-weight:820;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;white-space:nowrap}.btn-login-primary{padding:.95rem 1.25rem;background:var(--login-ink);color:var(--bg-secondary);box-shadow:0 18px 42px #10131b3b}[data-theme=dark] .btn-login-primary{color:#10131b;background:#f6f8fb}.btn-login-primary:hover:not(:disabled),.btn-login-secondary:hover,.phone-download:hover{transform:translateY(-2px)}.btn-login-primary:disabled{cursor:not-allowed;opacity:.7;box-shadow:none}.btn-login-secondary{padding:.95rem 1.12rem;color:#062a25;background:#0f9f8f24;border:1px solid rgba(15,159,143,.32)}[data-theme=dark] .btn-login-secondary{color:#d7fff9}.btn-microsoft{width:18px;height:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:2px}.btn-microsoft span:nth-child(1){background:#f25022}.btn-microsoft span:nth-child(2){background:#7fba00}.btn-microsoft span:nth-child(3){background:#00a4ef}.btn-microsoft span:nth-child(4){background:#ffb900}.btn-android-icon{width:18px;height:18px;display:block;opacity:.82}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.28);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.login-hint{margin-top:.95rem;color:var(--login-muted);font-size:.92rem}.login-proof-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.65rem;max-width:620px}.login-proof-row div,.kpi-hero-card{background:var(--login-panel);border:1px solid var(--login-line);border-radius:16px;padding:.95rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 38px #10131b14}.login-proof-row strong,.login-proof-row span{display:block}.login-proof-row strong{font-size:.9rem;color:var(--login-ink)}.login-proof-row span{margin-top:.22rem;font-size:.8rem;color:var(--login-muted)}.kpi-hero-card{display:inline-flex;flex-direction:column;margin-top:.95rem;min-width:210px}.kpi-hero-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--login-muted);font-weight:820}.kpi-hero-value{font-size:2rem;font-weight:900;line-height:1.05;margin-top:.32rem;color:var(--login-ink)}.kpi-hero-caption{margin-top:.24rem;color:var(--login-muted);font-size:.82rem}.login-showcase{position:relative;min-height:560px}.schedule-preview{position:absolute;top:24px;left:0;width:min(420px,78%);background:#ffffffdb;border:1px solid var(--login-line);border-radius:26px;padding:1.1rem;box-shadow:0 34px 70px #121b282e;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);transform:rotate(-2deg)}[data-theme=dark] .schedule-preview{background:#141922e0}.schedule-preview-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.2rem .2rem .95rem;color:var(--login-muted);font-size:.88rem}.schedule-preview-header strong{color:var(--login-ink);font-size:1.35rem}.schedule-timeline{display:grid;gap:.75rem}.schedule-event{padding:1rem;border-radius:18px;color:#10131b;display:grid;gap:.22rem;box-shadow:inset 0 0 0 1px #ffffff57}.schedule-event span{font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em;opacity:.72}.schedule-event strong{font-size:1.02rem}.schedule-event small{font-size:.82rem;opacity:.76}.schedule-event-primary{background:#dce6ff}.schedule-event-secondary{background:#d7f4ec}.schedule-event-dark{background:#171b25;color:#f6f8fb}.android-card{position:absolute;right:0;bottom:8px;width:min(330px,62%);min-height:430px;display:grid;place-items:center}.android-card-glow{position:absolute;inset:26px 10px;background:linear-gradient(145deg,#0f9f8f52,#ff62473d);filter:blur(34px);border-radius:34px}.phone-frame{position:relative;width:230px;min-height:424px;border-radius:36px;padding:1.35rem 1rem 1rem;background:linear-gradient(160deg,#111723,#222a38);border:8px solid #0a0d13;box-shadow:0 34px 70px #0c121c57;color:#f6f8fb;display:flex;flex-direction:column;align-items:center;text-align:center}.phone-speaker{width:58px;height:5px;border-radius:999px;background:#ffffff38;margin-bottom:2rem}.phone-logo{width:74px;height:74px;border-radius:20px;box-shadow:0 18px 36px #265cff57}.phone-label{margin-top:.9rem;font-weight:880;font-size:1rem}.phone-notification{width:100%;margin-top:2rem;padding:.95rem;border-radius:18px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);text-align:left}.phone-notification strong,.phone-notification span{display:block}.phone-notification span{margin-top:.32rem;color:#ffffffb8;font-size:.82rem;line-height:1.45}.phone-download{width:100%;margin-top:auto;background:#c9ff63;color:#152008;box-shadow:0 14px 28px #c9ff632e}.login-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:0 0 1.4rem}.login-preview-section{padding:.45rem 0 1.5rem}.login-preview-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr);gap:1rem 1.5rem;align-items:end;margin-bottom:1rem}.login-preview-eyebrow{margin:0 0 .45rem;color:var(--login-muted);font-size:.82rem;font-weight:820;text-transform:uppercase;letter-spacing:.08em}.login-preview-header h2{margin:0;color:var(--login-ink);font-size:clamp(1.4rem,2vw,2rem);line-height:1.08}.login-preview-note{margin:0;color:var(--login-muted);font-size:.94rem;line-height:1.6;max-width:44ch}.login-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.preview-card{background:var(--login-panel);border:1px solid var(--login-line);border-radius:20px;overflow:hidden;box-shadow:0 18px 44px #10131b14;transition:transform .2s ease,border-color .2s ease}.preview-card:hover{transform:translateY(-3px);border-color:#265cff47}.preview-card-image{display:flex;flex-direction:column}.preview-card-image-button{padding:0;border:0;background:transparent;cursor:zoom-in;display:block;width:100%;line-height:0;text-align:left}.preview-card-image-button:focus-visible,.preview-lightbox-close:focus-visible{outline:2px solid rgba(38,92,255,.85);outline-offset:3px}.preview-card-image-element{display:block;width:100%;height:auto;max-height:460px;object-fit:cover;background:#10131b08}.preview-card-body,.preview-card-placeholder-box{padding:1.1rem 1.15rem 1.2rem}.preview-card-body h3,.preview-card-placeholder-box h3{margin:.7rem 0 .45rem;color:var(--login-ink);font-size:1.02rem}.preview-card-body p,.preview-card-placeholder-box p{margin:0;color:var(--login-muted);font-size:.93rem;line-height:1.6}.preview-card-tag{display:inline-flex;align-items:center;padding:.35rem .65rem;border-radius:999px;background:#0f9f8f1f;color:#0c7d71;font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.preview-card-tag-soft{background:#265cff1f;color:var(--login-blue)}.preview-card-placeholder{display:grid;place-items:center;min-height:100%;background:linear-gradient(135deg,#265cff14,#0f9f8f14),var(--login-panel)}.preview-card-placeholder-box{max-width:28ch;text-align:left}.preview-lightbox{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:1rem;background:#070a10e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.preview-lightbox-panel{position:relative;width:min(96vw,1100px);max-height:92vh;border-radius:22px;overflow:hidden;box-shadow:0 24px 80px #00000073;background:#000}.preview-lightbox-image{display:block;width:100%;height:auto;max-height:92vh;object-fit:contain;background:#000}.preview-lightbox-close{position:absolute;top:1.5rem;right:1.5rem;width:48px;height:48px;border:0;border-radius:999px;background:#ffffff24;color:#fff;font-size:2.2rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 12px 30px #00000040;z-index:10000;transition:background .2s,transform .2s ease}.preview-lightbox-close:hover{background:#ffffff40;transform:scale(1.05)}.feature-card{min-height:210px;background:var(--login-panel);border:1px solid var(--login-line);border-radius:20px;padding:1.3rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 44px #10131b14;transition:transform .2s ease,border-color .2s ease}.feature-card:hover{transform:translateY(-4px);border-color:#265cff52}.feature-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;margin-bottom:1rem;position:relative}.feature-icon svg,.feature-icon img{width:23px;height:23px;display:block}.feature-card-web .feature-icon{background:#265cff1f;color:var(--login-blue)}.feature-card-install .feature-icon{background:#f3b43f29;color:var(--login-gold)}.feature-card-android .feature-icon{background:#0f9f8f24}.feature-card-android .feature-icon img{opacity:.9}.feature-card h2{color:var(--login-ink);font-size:1.06rem;margin:0 0 .55rem}.feature-card p{color:var(--login-muted);font-size:.94rem;line-height:1.62;margin:0}.login-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--login-line);padding:1rem 0 .3rem;color:var(--login-muted);font-size:.84rem}.login-footer p{margin:0}.login-footer a{color:var(--login-blue);text-decoration:none;font-weight:780}[data-theme=dark] .login-footer a{color:#9fb6ff}@media(max-width:980px){.login-content{width:min(100% - 28px,720px)}.login-hero{grid-template-columns:1fr;min-height:auto;padding-top:2.3rem}.login-copy{max-width:none}.login-showcase{min-height:520px}.schedule-preview{width:min(440px,74%)}.android-card{width:min(310px,56%)}.login-features,.login-preview-header,.login-preview-grid{grid-template-columns:1fr}.feature-card{min-height:0}.login-footer{flex-direction:column;align-items:flex-start}}@media(max-width:640px){.login-container{overflow-x:hidden}.login-content{width:min(100% - 24px,520px);padding-top:.9rem}.theme-toggle-login{top:.85rem;right:.85rem;width:42px;height:42px}.login-topbar{padding-right:3.1rem}.login-brand span{display:none}.login-android-pill{padding:.58rem .76rem;font-size:.78rem}.login-title{font-size:clamp(2.65rem,16vw,4.3rem)}.login-subtitle{font-size:1rem;line-height:1.62}.login-actions{display:grid;grid-template-columns:1fr}.btn-login-primary,.btn-login-secondary{width:100%;white-space:normal}.login-proof-row{grid-template-columns:1fr}.login-preview-section{padding-bottom:1.2rem}.login-preview-header{gap:.65rem}.preview-lightbox{padding:0}.preview-lightbox-panel{width:100%;border-radius:0}.preview-lightbox-image{max-height:100vh}.preview-lightbox-close{width:42px;height:42px;top:1rem;right:1rem;font-size:2rem;background:#0006}.preview-card-image-element{max-height:360px}.login-showcase{min-height:auto;display:grid;gap:1rem}.schedule-preview,.android-card{position:relative;inset:auto;width:100%;transform:none}.android-card{min-height:0;padding:1rem 0 .2rem}.phone-frame{width:min(236px,78vw);min-height:390px}}@media(prefers-reduced-motion:reduce){.login-content,.theme-toggle-login,.btn-login-primary,.btn-login-secondary,.phone-download,.feature-card{animation:none;transition:none}}.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar *:before,.react-calendar *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__month-view__days__day--neighboringMonth,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__century-view__decades__decade--neighboringCentury{color:#757575}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__month-view__days__day--neighboringMonth:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__century-view__decades__decade--neighboringCentury:disabled{color:#cdcdcd}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}.notification-settings-modal{background:var(--bg-primary, white);border-radius:16px;box-shadow:0 10px 40px #0003;max-width:500px;width:90%;color:var(--text-primary, #202124)}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary, #5f6368);padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background-color .2s}.close-btn:hover{background-color:var(--bg-secondary, #f0f0f0)}.setting-group{display:flex;flex-direction:column;gap:.75rem}.setting-label{font-weight:500;font-size:.95rem;color:var(--text-primary, #202124);display:block}.setting-row{display:flex;align-items:center;gap:.75rem}.toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500}.toggle-input{width:20px;height:20px;cursor:pointer;accent-color:var(--accent-color, #5b5fef)}.toggle-text{-webkit-user-select:none;user-select:none}.minutes-control{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary, #f0f0f0);padding:.5rem;border-radius:8px;width:fit-content}.minutes-btn{background:var(--accent-color, #5b5fef);color:#fff;border:none;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.minutes-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #5b5fef4d}.minutes-input{width:60px;text-align:center;border:none;background:var(--bg-primary, white);font-size:1rem;font-weight:600;color:var(--text-primary, #202124);border-radius:6px}.minutes-input:focus{outline:none;box-shadow:0 0 0 2px var(--accent-color, #5b5fef)}.setting-group small{color:var(--text-secondary, #5f6368);font-size:.85rem}.notification-type-options{display:flex;flex-direction:column;gap:.5rem}.notification-type-options label{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-secondary, #f0f0f0);border-radius:8px;cursor:pointer;transition:all .2s}.notification-type-options label:hover{background:var(--bg-tertiary, #e8e8e8)}.notification-type-options input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-color, #5b5fef)}.days-control{display:flex;gap:.5rem;margin-bottom:.75rem}.quick-select-btn{flex:1;padding:.5rem;background:var(--accent-color, #5b5fef);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.quick-select-btn:hover{opacity:.9;transform:translateY(-1px)}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.day-btn{padding:.75rem;background:var(--bg-secondary, #f0f0f0);border:2px solid transparent;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;color:var(--text-primary, #202124)}.day-btn:hover{border-color:var(--accent-color, #5b5fef)}.day-btn.active{background:var(--accent-color, #5b5fef);color:#fff;border-color:var(--accent-color, #5b5fef)}.setting-group.summary{background:var(--bg-secondary, #f0f0f0);padding:1rem;border-radius:8px;border-left:4px solid var(--accent-color, #5b5fef)}.setting-group.summary p{margin:0;font-size:.95rem;color:var(--text-primary, #202124);line-height:1.5}.btn-test{background:var(--bg-secondary, #f0f0f0);border:2px solid var(--accent-color, #5b5fef);color:var(--accent-color, #5b5fef);padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;font-size:.875rem}.btn-test:hover{background:var(--accent-color, #5b5fef);color:#fff;box-shadow:0 4px 12px #5b5fef4d}.btn-primary{padding:.75rem 1.5rem;background:var(--accent-color, #5b5fef);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.btn-primary:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 4px 12px #5b5fef4d}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;animation:fadeIn .2s ease-out}@media(max-width:640px){.notification-settings-modal{width:100%;max-height:90vh;border-radius:16px 16px 0 0;position:absolute;bottom:0}.days-grid{grid-template-columns:repeat(4,1fr)}.btn-primary{width:100%}}.notification-settings-modal{background:var(--app-panel, rgba(255, 255, 255, .86));border:1px solid var(--app-line, rgba(29, 38, 54, .12));border-radius:22px;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:var(--card-shadow, 0 18px 44px rgba(16, 19, 27, .12))}.close-btn,.minutes-btn,.quick-select-btn,.day-btn,.btn-test,.btn-primary,.minutes-control,.notification-type-options label,.setting-group.summary{border-radius:14px}.close-btn:hover,.notification-type-options label:hover,.day-btn:hover{background:rgba(var(--accent-rgb, 38, 92, 255),.1)}.minutes-control,.notification-type-options label,.setting-group.summary{background:#ffffff8f;border:1px solid var(--app-line, rgba(29, 38, 54, .12))}[data-theme=dark] .minutes-control,[data-theme=dark] .notification-type-options label,[data-theme=dark] .setting-group.summary{background:#ffffff0e}.minutes-btn,.quick-select-btn,.day-btn.active,.btn-primary{background:var(--app-ink, #10131b);color:var(--bg-secondary, #fff)}[data-theme=dark] .minutes-btn,[data-theme=dark] .quick-select-btn,[data-theme=dark] .day-btn.active,[data-theme=dark] .btn-primary{background:#f6f8fb;color:#10131b}.btn-test{background:rgba(var(--accent-rgb, 38, 92, 255),.1);border:1px solid rgba(var(--accent-rgb, 38, 92, 255),.28);color:var(--accent-color, #265cff)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.calendar-container{height:100vh;display:flex;flex-direction:row;background-color:var(--bg-primary);color:var(--text-primary);overflow:hidden;padding:1rem;gap:1.1rem;background:linear-gradient(120deg,#ffffffeb,#f5f8fcbd),radial-gradient(circle at 18% 10%,rgba(var(--accent-rgb),.16),transparent 32%),radial-gradient(circle at 88% 8%,rgba(var(--success-rgb),.14),transparent 30%),radial-gradient(circle at 74% 92%,rgba(255,98,71,.1),transparent 32%),#eef3f8;font-family:Aptos,Segoe UI,system-ui,sans-serif}.sidebar{width:320px;background-color:var(--sidebar-bg);border-radius:24px;display:flex;flex-direction:column;padding:1.1rem;flex-shrink:0;gap:1rem;z-index:100;box-shadow:var(--card-shadow);overflow-y:auto;transition:transform .3s ease-in-out}.sidebar-header{display:flex;align-items:center;gap:.5rem;margin-bottom:0;padding:.25rem .25rem .6rem;border-bottom:1px solid var(--border-color)}.sidebar-logo{font-size:1.55rem;font-weight:800;background:none;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:currentColor;letter-spacing:0;color:var(--text-primary)}.sidebar-calendar-card{background:var(--bg-primary);border-radius:18px;padding:.5rem;box-shadow:inset 0 1px #ffffff05}.sidebar-calendar{width:100%;border:none!important;background:transparent;color:var(--text-primary);border-radius:12px}.react-calendar{background:transparent!important}.react-calendar__navigation{display:flex;gap:.25rem;margin-bottom:.5rem}.react-calendar__navigation button{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:10px;padding:.35rem .6rem;font-weight:600;cursor:pointer;transition:all .2s}.react-calendar__navigation button:hover{background:var(--accent-light);color:var(--accent-color);border-color:var(--accent-light)}.react-calendar__month-view__weekdays__weekday{color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;font-weight:700}.react-calendar__tile{border-radius:10px;padding:.65rem .4rem;color:var(--text-primary);border:none;background:transparent;transition:all .15s ease}.react-calendar__tile:enabled:hover{background:var(--accent-light);color:var(--accent-color)}.react-calendar__tile--active{background:var(--accent-color)!important;color:#fff!important;box-shadow:0 4px 10px #0003}.react-calendar__tile--now{color:var(--accent-color);background:rgba(var(--accent-rgb),.1)}.sidebar-section{display:flex;flex-direction:column;gap:.5rem;background:var(--bg-primary);padding:5%;min-height:fit-content;border-radius:16px}.sidebar-title{font-size:.75rem;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-secondary);font-weight:700;margin-bottom:.5rem;opacity:.8}.group-list{display:flex;flex-direction:column;gap:.5rem;max-height:150px;overflow-y:auto}.group-item{display:flex;align-items:center;gap:.8rem;font-size:.9rem;color:var(--text-primary);padding:.75rem;border-radius:12px;background-color:var(--bg-primary);transition:all .2s;cursor:pointer;font-weight:500}.group-item:hover{background-color:var(--accent-light);transform:translateY(-1px)}.group-checkbox{width:20px;height:20px;border-radius:6px;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;transition:all .2s}.group-item.active .group-checkbox{background-color:var(--accent-color);border-color:var(--accent-color)}.group-item.active .group-checkbox:after{content:"✓";font-size:12px;color:#fff;font-weight:800}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:.75rem}.sidebar-btn{display:flex;align-items:center;gap:1rem;padding:.78rem .9rem;border-radius:16px;border:1px solid transparent;background:var(--bg-primary);color:var(--text-primary);font-size:.95rem;font-weight:760;cursor:pointer;transition:all .2s;text-align:left;min-height:46px}.sidebar-btn:hover{background-color:var(--accent-light);color:var(--accent-color);border-color:var(--accent-light)}.sidebar-download-btn{background:rgba(var(--success-rgb),.12);color:#062a25;border-color:rgba(var(--success-rgb),.28);box-shadow:none}.sidebar-download-btn:hover{background:rgba(var(--success-rgb),.18);color:var(--text-primary);border-color:rgba(var(--success-rgb),.36);box-shadow:none}.main-content{flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:var(--bg-secondary);border-radius:24px;box-shadow:var(--card-shadow)}.calendar-header{padding:1rem 1.15rem;display:flex;justify-content:space-between;align-items:center;background-color:transparent;border-bottom:1px solid var(--border-color);gap:1rem;flex-wrap:wrap;min-height:76px;background:var(--modal-bg)}.header-section{display:flex;align-items:center;gap:1rem}.header-left{flex:1;gap:1.5rem;min-width:200px}.header-right{flex:1;justify-content:flex-end;gap:.75rem}.logo{font-size:1.5rem;font-weight:700;color:var(--accent-color);letter-spacing:-.5px;-webkit-user-select:none;user-select:none}.date-navigation{display:flex;align-items:center;gap:.5rem;background-color:var(--bg-primary);padding:4px;border-radius:10px;border:1px solid var(--border-color)}.nav-btn{padding:.4rem .7rem!important;font-size:1.3rem;font-weight:600}.btn-today{padding:.4rem .9rem;background-color:transparent;border:none;border-radius:6px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .2s;font-size:.85rem;white-space:nowrap}.btn-today:hover{background-color:var(--accent-color);color:#fff}.current-date{font-size:clamp(1.35rem,2.4vw,2.1rem);font-weight:700;color:var(--text-primary);text-transform:capitalize;white-space:nowrap;letter-spacing:0}.context-badge{display:flex;align-items:center;gap:.5rem;background:rgba(var(--accent-rgb),.1);color:var(--text-primary);padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500;box-shadow:none;border:1px solid rgba(var(--accent-rgb),.22)}.context-icon{font-size:1.1rem}.context-label{font-weight:600}.context-close{background:rgba(var(--accent-rgb),.12);border:none;color:var(--accent-color);width:20px;min-width:20px;height:20px;min-height:20px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;transition:all .2s}.context-close:hover{background:#ffffff4d;transform:scale(1.1)}.btn-icon,.btn-primary{border:none;border-radius:8px;padding:.6rem 1rem;cursor:pointer;font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;font-family:inherit;font-size:.9rem}.btn-icon{padding:.6rem;background:transparent;color:var(--text-primary);font-size:1.2rem}.btn-icon:hover{background-color:var(--bg-primary)}.logout-btn{border:1px solid var(--border-color);background:#ff624714;border-color:#ff624733;color:var(--text-primary)}.room-finder-btn{border:1px solid var(--border-color);font-size:.9rem;padding:.55rem .8rem;border-radius:10px;background:rgba(var(--success-rgb),.1);border-color:rgba(var(--success-rgb),.26);color:var(--text-primary)}.room-finder-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.logout-btn:hover{background-color:var(--bg-primary);border-color:var(--border-color)}.btn-primary{background-color:var(--accent-color);color:#fff;box-shadow:0 4px 6px #0000001a}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 8px #00000026;filter:brightness(1.1)}.view-switcher{display:flex;background-color:var(--bg-primary);border-radius:10px;padding:4px;gap:4px;border:1px solid var(--border-color)}.view-btn{padding:.5rem 1rem;border:none;background:transparent;color:var(--text-secondary);border-radius:6px;cursor:pointer;font-weight:500;font-size:.85rem;transition:all .2s;white-space:nowrap}.view-btn:hover{background-color:#8080801a;color:var(--text-primary)}.view-btn.active{background-color:var(--accent-color);color:#fff;box-shadow:0 2px 4px #0000001a}.header-actions{display:flex;align-items:center;gap:.5rem}.mobile-icon{display:none}.desktop-label{display:inline}.calendar-grid-wrapper{flex:1;display:flex;overflow:auto;position:relative;background:#ffffff5c}.time-sidebar{width:60px;position:relative;border-right:1px solid var(--border-color);flex-shrink:0;z-index:1444;height:100%;min-height:1020px}.time-label{position:absolute;width:100%;text-align:right;padding-right:8px;transform:translateY(-50%);font-size:.75rem;color:var(--text-secondary)}.grid-content{flex:1;display:flex;flex-direction:column;overflow:visible;min-width:0}.grid-headers{display:flex;height:60px;border-bottom:1px solid var(--border-color);flex-shrink:0;position:sticky;top:0;z-index:1445;background-color:var(--bg-secondary)}.grid-spacers{width:60px;flex-shrink:0}.grid-header-cell{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--border-color);min-width:120px}.grid-header-cell.today{background-color:rgba(var(--accent-rgb),.05);background:rgba(var(--success-rgb),.08)}.grid-header-cell .day-name{font-size:.85rem;text-transform:uppercase;font-weight:600;color:var(--text-secondary)}.grid-header-cell.today .day-name{color:var(--accent-color)}.grid-header-cell .day-num{font-size:1.5rem;font-weight:300}.grid-header-cell.today .day-num{background-color:var(--accent-color);color:var(--bg-secondary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;margin-top:2px;font-size:1.1rem;background:var(--text-primary);box-shadow:0 10px 24px #10131b29}.grid-body{flex:1;display:flex;position:relative;overflow:visible}.grid-col{flex:1;position:relative;border-right:1px solid var(--border-color);min-width:120px;height:100%;min-height:1020px}.grid-bg-hour{position:absolute;left:0;right:0;height:1px;background-color:#1d263614;pointer-events:none}.grid-event{position:absolute;border-radius:10px;border-left:4px solid;padding:.6rem .7rem;font-size:.8rem;overflow:hidden;cursor:pointer;box-shadow:0 2px 6px #00000014;transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;box-sizing:border-box;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.95}.grid-event.event-online{border-style:dashed;align-items:flex-start;box-shadow:0 0 0 2px #5b5fef40}.event-badge{background:linear-gradient(135deg,#5b5fef,#8a8fff);color:#fff;padding:3px 8px;border-radius:999px;font-size:.7rem;box-shadow:0 2px 6px #0000001f}.grid-event:hover{z-index:1440!important;transform:scale(1.03);box-shadow:0 6px 16px #00000026;opacity:1}.ev-time{font-weight:700;font-size:.7rem;margin-bottom:3px;opacity:.85;color:#000000b3}.multi-day-events-bar{display:flex;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:8px 0;flex-shrink:0;position:sticky;top:60px;z-index:1443}.multi-day-col{flex:1;padding:0 10px;border-right:1px solid var(--border-color);min-width:120px;display:flex;flex-direction:column;gap:4px}.multi-day-event-item{background-color:var(--bg-secondary);border-left:4px solid;border-radius:6px;padding:6px 8px;font-size:.75rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 1px 4px #00000014;display:flex;flex-direction:column;min-height:32px;justify-content:center}.multi-day-event-item:hover{transform:translateY(-2px);box-shadow:0 3px 8px #0000001f}.ev-title{font-weight:600;margin-bottom:2px;line-height:1.2;color:#000000d9}.ev-room{font-size:.7rem;opacity:.75;color:#000000a6}.current-time-line{position:absolute;left:0;right:0;height:2px;background-color:#ea4335;z-index:1442;pointer-events:none}.current-time-line:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background-color:#ea4335}.list-view{overflow-y:auto;flex:1}.list-events{padding:0 1rem}.list-section{margin-bottom:1.5rem}.list-date-sticky{position:sticky;top:0;padding:.5rem;z-index:1444;border-bottom:2px solid var(--border-color);margin-bottom:.5rem;font-weight:600;background:var(--bg-secondary);color:var(--text-secondary)}.list-card{background-color:var(--bg-secondary);border-radius:12px;padding:1rem 1.1rem;margin-bottom:.8rem;border-left:5px solid var(--accent-color);box-shadow:0 2px 6px #00000014;cursor:pointer;transition:all .2s ease;background:var(--modal-bg);border-left-width:6px}.list-card.list-card-online{border-left-style:dashed;box-shadow:0 0 0 2px #5b5fef33}.list-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.list-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.list-time{font-size:.85rem;color:var(--text-secondary);margin-bottom:4px}.list-title{font-weight:600;font-size:1rem;margin-bottom:4px}.list-details{font-size:.9rem}.chip{display:inline-block;padding:4px 10px;border-radius:16px;font-size:.8rem;font-weight:500;margin-right:6px;margin-top:4px}.online-chip{background:#5b5fef1a;color:var(--text-primary);border:1px solid rgba(91,95,239,.2)}.list-teachers{margin-top:8px;display:flex;flex-direction:column;gap:6px}.teacher-line{display:flex;width:fit-content;padding:8px;border-radius:8px;background:var(--accent-light);border:1px solid var(--border-color)}.teacher-name{font-weight:600}.teacher-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:.85rem;color:var(--text-secondary)}.teacher-card{border:1px solid var(--border-color);border-radius:10px;padding:10px;background:var(--bg-secondary);display:flex;flex-direction:column;gap:6px}.teacher-card-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.teacher-card-body{display:flex;flex-wrap:wrap;gap:8px;font-size:.9rem}.pill{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:999px;padding:2px 8px;font-size:.8rem}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:10000000;width:100dvw;height:100dvh;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080c1294}.modal-content{background-color:var(--bg-primary);max-height:80vh;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;width:60%;max-width:80%;gap:2rem;flex-direction:column;overflow:auto;transition:all .2s}.modal-header{padding:1.15rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:var(--modal-bg);border-color:var(--border-color)}.modal-header h2{margin:0;font-size:1.45rem;letter-spacing:0}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.5rem;background-color:var(--bg-secondary);background:var(--modal-bg);border-color:var(--border-color)}.group-tree-container{max-height:50vh;overflow-y:auto;border-radius:4px;padding:.5rem}.group-tree-node{margin-bottom:2px}.group-checkbox-row{display:flex;align-items:center;gap:4px;padding:6px;border-radius:4px;transition:background .2s}.group-checkbox-row:hover{background-color:#0000000d}.group-expand-toggle,.group-expand-spacer{width:20px;height:20px;min-width:20px;display:inline-flex;align-items:center;justify-content:center}.group-expand-toggle{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:4px;font-size:.95rem;line-height:1;transition:transform .2s,background .2s,color .2s}.group-expand-toggle:hover{background:#00000014;color:var(--text-primary)}.group-expand-toggle.expanded{transform:rotate(90deg)}.group-checkbox-label{display:flex;align-items:center;flex:1;cursor:pointer}.group-checkbox-label input{margin-right:8px;width:16px;height:16px;accent-color:var(--accent-color)}.group-name{flex:1;font-size:.95rem}.color-dot{width:10px;height:10px;border-radius:50%;margin-left:auto;box-shadow:0 0 2px #0003}.search-input{width:100%;padding:.8rem;border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;background-color:var(--bg-secondary);color:var(--text-primary)}.search-input:focus{outline:2px solid var(--accent-color);border-color:transparent}.detail-row{margin-bottom:1rem;display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);font-weight:600}.detail-value{font-size:1rem}.detail-chip{display:inline-flex;align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-color);padding:4px 10px;border-radius:16px;margin-right:6px;margin-bottom:6px;font-size:.9rem;cursor:pointer;transition:all .2s;text-decoration:none;color:var(--text-primary)}.detail-room-chip-group{display:inline-flex;align-items:center;position:relative}.detail-map-icon-btn{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-size:.85rem;opacity:.8;transition:all .15s ease;position:absolute;left:90%;top:-40%}.detail-map-icon-btn:hover{color:var(--accent-color);border-color:var(--accent-color);background:rgba(var(--accent-rgb),.08)}.detail-map-icon-btn:active{transform:translateY(1px)}.detail-chip:hover{border-color:var(--accent-color);background-color:rgba(var(--accent-rgb),.1)}.detail-chip icon{margin-right:4px}.loading-overlay{position:absolute;inset:0;background:#ffffff80;display:flex;justify-content:center;align-items:center;z-index:1000000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.ctx-badge{background-color:var(--accent-color);color:#fff;padding:4px 12px;border-radius:16px;font-size:.85rem;display:inline-flex;align-items:center;gap:8px;margin-right:1rem;box-shadow:0 2px 4px #0000001a}.ctx-badge button{background:none;border:none;color:#fff;cursor:pointer;padding:2px;font-size:1rem;display:flex;border-radius:50%}.ctx-badge button:hover{background-color:#fff3}.settings-modal{max-width:600px}.room-finder-modal{width:min(980px,96vw);max-width:min(980px,96vw);max-height:90vh;border-radius:18px;overflow:hidden}.room-finder-header{padding:1rem 1.2rem}.room-finder-body{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.2rem 1.2rem}.room-finder-form{display:flex;flex-direction:column;gap:.9rem}.rf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.rf-field{display:flex;flex-direction:column;gap:.4rem}.rf-field span{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.rf-field input,.rf-field select{width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--border-color);border-radius:10px;padding:.65rem .75rem;background:var(--bg-primary);color:var(--text-primary);font-size:.92rem}.rf-field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-secondary) 50%),linear-gradient(135deg,var(--text-secondary) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2rem;text-overflow:ellipsis}.rf-field input:focus,.rf-field select:focus{outline:2px solid var(--accent-light);border-color:var(--accent-color)}.rf-duration-counter{display:flex;align-items:center;gap:.4rem}.rf-duration-counter button{width:34px;height:34px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:1.2rem;cursor:pointer}.rf-duration-counter input{width:96px;text-align:center}.rf-help{font-size:.75rem;color:var(--text-secondary)}.rf-location-tree-card{border:1px solid var(--border-color);border-radius:12px;padding:.7rem;background:var(--bg-primary)}.rf-location-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem;font-size:.85rem;font-weight:700;color:var(--text-secondary)}.rf-clear-link{border:none;background:transparent;color:var(--accent-color);cursor:pointer;font-size:.78rem;font-weight:600}.rf-location-tree{max-height:170px;overflow:auto;padding-right:.25rem}.rf-tree-node{margin-bottom:.1rem}.rf-tree-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .15rem;font-size:.9rem;color:var(--text-primary)}.rf-tree-row label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.rf-tree-partout{padding-bottom:.8rem;margin-bottom:.8rem;border-bottom:1px solid var(--border-color)}.rf-actions{display:flex;justify-content:flex-end}.rf-feedback{font-size:.9rem;color:var(--text-secondary)}.rf-error{color:#e53935;font-weight:600}.rf-status-card{padding:.8rem .9rem;border-radius:12px;font-weight:700;border:1px solid transparent}.rf-status-card.free{background:rgba(var(--success-rgb),.12);color:#07584f;border-color:rgba(var(--success-rgb),.25)}.rf-status-card.busy{background:#c628281f;color:#b71c1c;border-color:#c6282840}.rf-results h3{font-size:1rem;margin-bottom:.75rem}.rf-room-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.rf-room-card{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;padding:.75rem;display:flex;flex-direction:column;gap:.25rem;cursor:pointer;transition:all .2s ease}.rf-room-card:hover{border-color:var(--accent-color);transform:translateY(-1px)}.rf-room-title{font-weight:700;font-size:.95rem}.rf-room-meta{font-size:.84rem;color:var(--text-secondary)}.rf-room-action{margin-top:.35rem;color:var(--accent-color);font-weight:600;font-size:.78rem}.rf-room-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.rf-room-map-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.35rem .6rem;font-size:.76rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;align-self:flex-start}.rf-room-map-btn:hover{color:var(--accent-color);border-color:var(--accent-color);background:rgba(var(--accent-rgb),.06)}.rf-room-map-btn:active{transform:translateY(1px)}.settings-body{padding:1.5rem}.settings-section{margin-bottom:1.5rem}.settings-section-title{font-size:1.1rem;font-weight:700;margin-bottom:.75rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.settings-text{line-height:1.6;color:var(--text-primary);margin-bottom:.75rem}.settings-text.muted{color:var(--text-secondary);font-size:.9rem}.settings-text.small{font-size:.85rem}.settings-text.highlight{background-color:var(--bg-secondary);padding:.75rem;border-radius:8px;border-left:3px solid var(--accent-color)}.settings-btn{margin-top:.5rem;text-decoration:none;display:inline-flex}.settings-divider{height:1px;background-color:var(--border-color);margin:1.5rem 0;background:var(--border-color)}.disclaimer-box{background-color:#fff3cd;border:1px solid rgba(243,180,63,.35);border-radius:16px;padding:1rem;color:var(--text-primary);background:#f3b43f24}[data-theme=dark] .disclaimer-box{background-color:#3a3200;border-color:#ffc107;color:#ffd54f}.disclaimer-list{list-style:none;padding:0;margin:.5rem 0}.disclaimer-list li{padding:.25rem 0;font-weight:500}.privacy-box{background-color:rgba(var(--accent-rgb),.05);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.analytics-kpi-card{background:linear-gradient(145deg,rgba(var(--accent-rgb),.1),rgba(var(--accent-rgb),.04));border:1px solid var(--border-color);border-radius:10px;padding:1rem}.analytics-kpi-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.45rem}.analytics-kpi-title{font-size:.86rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:700}.analytics-kpi-status{padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid transparent}.analytics-kpi-status.ready{background:#2e7d3226;border-color:#2e7d3240;color:#1b5e20}.analytics-kpi-status.disabled{background:#ffc10726;border-color:#ffc10747;color:#8d6e00}.analytics-kpi-value{font-size:clamp(1.75rem,4vw,2.35rem);font-weight:800;line-height:1.1;margin-bottom:.4rem;color:var(--text-primary)}.settings-footer{text-align:center;padding-top:1rem}.sidebar-overlay,.hamburger-btn{display:none}.logout-sidebar-btn{background-color:#f443361a;color:#ad2f1e;background:#ff62471c;border-color:#ff624738}.logout-sidebar-btn:hover{background-color:#f4433633;color:#d32f2f}[data-theme=dark] .calendar-container{background:linear-gradient(120deg,#0a0d13f5,#11161fd6),radial-gradient(circle at 18% 10%,rgba(var(--accent-rgb),.2),transparent 32%),radial-gradient(circle at 88% 8%,rgba(var(--success-rgb),.16),transparent 30%),radial-gradient(circle at 74% 92%,rgba(255,98,71,.12),transparent 32%),#090d13}.sidebar,.main-content,.modal-content,.notification-settings-modal{background:var(--modal-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:var(--card-shadow)}.sidebar,.main-content{border-radius:26px}.sidebar-section,.sidebar-calendar-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:18px;padding:.9rem}[data-theme=dark] .sidebar-section,[data-theme=dark] .sidebar-calendar-card{background:#ffffff0b}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.sidebar-add-btn{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;border-radius:10px;background:rgba(var(--accent-rgb),.1);color:var(--accent-color)}.sidebar-title,.react-calendar__month-view__weekdays__weekday,.time-label,.list-date-sticky,.detail-label,.rf-field span,.analytics-kpi-title{letter-spacing:.07em;color:var(--text-secondary)}.react-calendar,.react-calendar button{font-family:inherit}.react-calendar__navigation button,.react-calendar__tile,.group-item,.sidebar-btn,.date-navigation,.view-switcher,.btn-icon,.btn-primary,.btn-today,.view-btn,.search-input,.rf-field input,.rf-field select,.rf-duration-counter button,.rf-room-map-btn,.detail-chip,.pill{border-radius:14px}.react-calendar__navigation button,.group-item,.sidebar-btn,.date-navigation,.view-switcher,.search-input,.rf-field input,.rf-field select,.rf-duration-counter button,.rf-room-map-btn,.teacher-card,.privacy-box,.analytics-kpi-card,.rf-location-tree-card,.rf-room-card{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .react-calendar__navigation button,[data-theme=dark] .group-item,[data-theme=dark] .sidebar-btn,[data-theme=dark] .date-navigation,[data-theme=dark] .view-switcher,[data-theme=dark] .search-input,[data-theme=dark] .rf-field input,[data-theme=dark] .rf-field select,[data-theme=dark] .rf-duration-counter button,[data-theme=dark] .rf-room-map-btn,[data-theme=dark] .teacher-card,[data-theme=dark] .privacy-box,[data-theme=dark] .analytics-kpi-card,[data-theme=dark] .rf-location-tree-card,[data-theme=dark] .rf-room-card{background:#ffffff0e}.react-calendar__tile--active,.view-btn.active,.btn-primary,.btn-today:hover{background:var(--text-primary)!important;color:var(--bg-secondary)!important;box-shadow:0 14px 32px #10131b29}[data-theme=dark] .react-calendar__tile--active,[data-theme=dark] .view-btn.active,[data-theme=dark] .btn-primary,[data-theme=dark] .btn-today:hover{background:#f6f8fb!important;color:#10131b!important}.sidebar-btn:hover,.group-item:hover,.react-calendar__navigation button:hover,.react-calendar__tile:enabled:hover,.view-btn:hover,.btn-icon:hover,.room-finder-btn:hover,.detail-chip:hover,.rf-room-card:hover{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.26);color:var(--accent-color);transform:translateY(-1px)}.sidebar-btn-icon,.sidebar-btn-img{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}.sidebar-btn-img{display:block;opacity:.9}[data-theme=dark] .sidebar-download-btn{color:#d7fff9}[data-theme=dark] .logout-sidebar-btn{color:#ffb5a9}.date-navigation,.view-switcher{padding:.28rem}.nav-btn,.btn-icon{min-width:38px;min-height:38px;justify-content:center;color:var(--text-primary)}.btn-today,.view-btn,.room-finder-btn,.logout-btn{font-weight:760}[data-theme=dark] .calendar-grid-wrapper{background:#ffffff06}.grid-headers,.multi-day-events-bar,.list-date-sticky{background:var(--modal-bg-transparent);border-color:var(--border-color);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.time-sidebar,.grid-header-cell,.grid-col,.multi-day-col{border-color:var(--border-color)}[data-theme=dark] .grid-bg-hour{background-color:#ffffff12}[data-theme=dark] .grid-header-cell.today .day-num{background:#f6f8fb;color:#10131b}.grid-event,.multi-day-event-item,.list-card{border-radius:14px;border-top:1px solid rgba(255,255,255,.44);border-right:1px solid rgba(255,255,255,.36);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 12px 28px #121b281f}.grid-event:hover,.multi-day-event-item:hover,.list-card:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 20px 38px #121b282e}.event-badge,.chip{border-radius:999px;font-weight:760}.event-badge,.online-chip{background:rgba(var(--accent-rgb),.12);color:var(--text-primary);border:1px solid rgba(var(--accent-rgb),.22);box-shadow:none}.current-time-line,.current-time-line:before{background-color:var(--danger-color)}.modal-content,.notification-settings-modal{border-radius:22px;overflow:hidden}.search-input:focus,.rf-field input:focus,.rf-field select:focus,.minutes-input:focus{outline:none;border-color:rgba(var(--accent-rgb),.48);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.1)}.group-checkbox-row,.rf-tree-row,.notification-type-options label,.setting-group.summary,.minutes-control{border-radius:14px}.group-checkbox-row:hover,.notification-type-options label:hover{background:rgba(var(--accent-rgb),.08)}.group-checkbox-row.selected{background:rgba(var(--accent-rgb),.1)}.rf-status-card,.analytics-kpi-card{border-radius:16px}[data-theme=dark] .rf-status-card.free{color:#b7fff6}.rf-status-card.busy,.rf-error{color:#ad2f1e}[data-theme=dark] .rf-status-card.busy,[data-theme=dark] .rf-error{color:#ffb5a9}[data-theme=dark] .loading-overlay{background:#090d138a}@media(max-width:768px){.calendar-container{padding:0;gap:0;flex-direction:column;height:100dvh;overflow:hidden}.main-content{border-radius:0;flex:1;overflow:hidden;min-height:0}.grid-header-cell,.grid-col{min-width:50px}.multi-day-col{padding:0 1px;min-width:50px}.grid-spacers,.time-sidebar{width:42px}.time-label{font-size:.6rem;padding-right:3px}.mobile-icon{display:inline-grid;place-items:center}.desktop-label{display:none}.calendar-header{padding:.75rem;gap:10px;flex-direction:column;flex-wrap:nowrap;align-items:stretch}.header-left{flex-basis:100%;order:1;gap:.75rem;min-width:unset;justify-content:space-between;width:100%}.header-center{order:3;flex-basis:100%;justify-content:center;width:100%}.header-right{order:2;flex-basis:100%;justify-content:space-between;width:100%}.logo{font-size:1.3rem}.current-date{font-size:.95rem;display:none}.date-navigation{flex:1}.btn-today{flex:1;text-align:center}.context-badge{padding:.4rem .8rem;font-size:.85rem}.view-switcher{flex:1}.view-btn{flex:1;justify-content:center;padding:.5rem}.header-actions{gap:.5rem;justify-content:flex-end;flex:1}.calendar-grid-wrapper{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;min-height:0}.grid-content{min-width:max-content;overflow:visible}.list-view{overflow-y:auto;height:100%}.modal-content{max-height:90vh;width:95%;max-width:95%}.sidebar{position:fixed;top:0;left:0;height:100vh;width:85%;max-width:320px;z-index:2000;transform:translate(-100%);border-radius:0;box-shadow:0 0 20px #0000004d;display:flex!important;border-right:1px solid var(--border-color)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background-color:#00000080;z-index:1999;animation:fadeIn .3s ease-in-out}.multi-day-events-bar{position:initial}.hamburger-btn{display:flex;font-size:1.5rem;margin-right:.5rem}.desktop-only{display:none!important}.room-finder-btn{padding:.45rem .65rem;font-size:1.05rem}.room-finder-modal{width:100vw;height:100dvh;max-height:100dvh;max-width:100vw;border-radius:0}.room-finder-header{padding:.8rem 1rem}.room-finder-body{padding:.8rem 1rem 1rem}.rf-grid{grid-template-columns:1fr;gap:.65rem}.rf-location-tree{max-height:190px}.rf-actions{justify-content:stretch}.rf-room-list{grid-template-columns:1fr}.btn-icon,.btn-primary{padding:.5rem;font-size:1.1rem}.rf-actions .btn-primary{width:100%;justify-content:center;padding:.8rem}.sidebar,.main-content{border-radius:0}.date-navigation,.view-switcher{width:100%}.rf-field input,.rf-field select{font-size:16px}}@media(max-width:480px){.logo{display:none}}.pwa-install-banner{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#5b5fef,#818cf8);color:#fff;padding:1rem;display:none;align-items:center;justify-content:space-between;box-shadow:0 -4px 12px #00000026;z-index:10000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pwa-install-banner.show{display:flex}.pwa-banner-content{flex:1;min-width:0}.pwa-banner-title{font-weight:700;margin-bottom:.25rem;font-size:1rem}.pwa-banner-text{font-size:.875rem;opacity:.95;line-height:1.35}.pwa-banner-beta{margin-top:.45rem;display:inline-flex;width:fit-content;padding:.25rem .55rem;border-radius:999px;background:#ffffff29;border:1px solid rgba(255,255,255,.22);font-size:.75rem;font-weight:600}.pwa-banner-actions{display:flex;align-items:center;gap:.5rem;margin-left:1rem}.pwa-banner-btn{padding:.55rem 1rem;border-radius:10px;border:none;font-weight:600;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease;white-space:nowrap;font-size:.875rem}.pwa-banner-btn:hover{transform:translateY(-1px)}.pwa-banner-btn.install{background:#fff;color:#5b5fef}.pwa-banner-btn.install:hover{transform:translateY(-1px) scale(1.03)}.pwa-banner-btn.android{background:#111827;color:#fff;border:1px solid rgba(255,255,255,.22)}.pwa-banner-btn.android:hover{background:#020617}.pwa-banner-btn.dismiss{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}.pwa-banner-btn.dismiss:hover{background:#ffffff1a}@media(max-width:640px){.pwa-install-banner{flex-direction:column;gap:1rem;align-items:stretch}.pwa-banner-actions{flex-direction:column;margin-left:0;width:100%}.pwa-banner-btn{width:100%}.pwa-banner-beta{width:100%;justify-content:center;text-align:center}}body.offline:after{content:"Mode hors ligne";position:fixed;top:0;left:0;right:0;background:#ea580c;color:#fff;padding:.5rem;text-align:center;font-size:.875rem;z-index:9999}.pwa-install-banner{left:16px;right:16px;bottom:16px;border-radius:18px;background:linear-gradient(135deg,#10131bf0,#1a212eeb),radial-gradient(circle at 0% 0%,rgba(var(--accent-rgb),.22),transparent 36%);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 44px #10131b47;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.pwa-banner-title{font-size:1.12rem;letter-spacing:0}.pwa-banner-beta{background:rgba(var(--success-rgb),.16);border-color:rgba(var(--success-rgb),.32);color:#d7fff9}.pwa-banner-btn{border-radius:14px;font-weight:780}.pwa-banner-btn.install{background:#f6f8fb;color:#10131b}.pwa-banner-btn.dismiss{border-color:#ffffff3d}body.offline:after{background:#10131bf0;border-bottom:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:12px;background:linear-gradient(135deg,#1f2937,#111827);color:#f9fafb;box-shadow:0 10px 28px #00000059;border:1px solid rgba(255,255,255,.12);z-index:10001;animation:cookie-slide-up .28s ease-out}@keyframes cookie-slide-up{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.cookie-banner__content{flex:1}.cookie-banner__title{font-weight:700;margin-bottom:.25rem}.cookie-banner__text{font-size:.9rem;line-height:1.35;opacity:.96}.cookie-banner__actions{display:flex;gap:.5rem;flex-shrink:0}.cookie-banner__btn{padding:.5rem .9rem;border-radius:8px;border:none;font-weight:600;cursor:pointer;transition:transform .15s ease,opacity .15s ease;white-space:nowrap}.cookie-banner__btn:hover{transform:translateY(-1px)}.cookie-banner__btn--accept{background:#5b5fef;color:#fff}.cookie-banner__btn--decline{background:#ffffff1a;color:#f9fafb;border:1px solid rgba(255,255,255,.22)}@media(max-width:720px){.cookie-banner{flex-direction:column;align-items:stretch}.cookie-banner__actions{width:100%}.cookie-banner__btn{flex:1}}.cookie-banner{border-radius:18px;background:linear-gradient(135deg,#10131bf5,#1a212ef0),radial-gradient(circle at 0% 0%,rgba(var(--accent-rgb),.22),transparent 38%);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 44px #10131b4d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.cookie-banner__title{font-size:1.05rem;letter-spacing:0}.cookie-banner__btn{border-radius:14px;font-weight:780}.cookie-banner__btn--accept{background:#f6f8fb;color:#10131b}.cookie-banner__btn--decline{border-color:#ffffff3d}:root{--bg-primary: #f2f4f8;--bg-secondary: #ffffff;--text-primary: #43464b;--text-secondary: #6e7a8a;--border-color: #e2e8f0;--accent-color: #265cff;--accent-rgb: 38, 92, 255;--accent-hover: #1744c7;--accent-light: rgba(38, 92, 255, .1);--success-color: #0f9f8f;--success-rgb: 15, 159, 143;--warning-color: #f3b43f;--danger-color: #ff6247;--card-shadow: 0 18px 44px rgba(16, 19, 27, .08);--modal-bg: rgba(255, 255, 255, .95);--modal-bg-transparent: rgba(255, 255, 255, .8);--time-line: #f43f5e;--grid-line: #edf2f7;--sidebar-bg: #ffffff}[data-theme=dark]{--bg-primary: #0f1115;--bg-secondary: #1a1d23;--text-primary: #f0f4f8;--text-secondary: #94a3b8;--border-color: #2d3340;--accent-color: #8fb0ff;--accent-rgb: 143, 176, 255;--accent-hover: #b3c7ff;--accent-light: rgba(143, 176, 255, .14);--success-color: #4dd7c8;--success-rgb: 77, 215, 200;--warning-color: #f8c95b;--danger-color: #ff8b77;--card-shadow: 0 20px 48px rgba(0, 0, 0, .32);--modal-bg: rgba(26, 29, 35, .98);--modal-bg-transparent: rgba(26, 29, 35, .8);--time-line: #fb7185;--grid-line: #2d3340;--sidebar-bg: #15171c}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s,color .3s;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.loading-screen{width:100%;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);gap:16px}.spinner{width:40px;height:40px;border:4px solid #dadce0;border-top-color:#1f73e8;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{color:#5f6368;font-size:.95rem}
