:root{--color-primary: #17395f;--color-primary-hover: #285f96;--color-primary-soft: #d9e8f6;--color-background: radial-gradient(circle at top left, rgba(221, 236, 247, .92) 0%, rgba(241, 245, 248, .98) 38%, rgba(252, 248, 240, .96) 100%);--color-panel: rgba(255, 255, 255, .9);--color-panel-strong: #ffffff;--color-surface-muted: #f4f7fb;--color-text: #10233f;--color-text-soft: #627487;--color-border-soft: rgba(16, 35, 63, .08);--color-border-light: rgba(16, 35, 63, .04);--color-shadow-soft: 0 12px 34px rgba(17, 37, 63, .08);--color-shadow-strong: 0 18px 48px rgba(17, 37, 63, .12);--color-now-line: #d84b38;--color-availability: rgba(240, 214, 120, .26)}.app-container{display:flex;flex-direction:column;gap:14px;height:100vh;padding:14px 24px 20px;background:var(--color-background);font-family:Segoe UI,Arial,sans-serif}h1{margin:0;font-size:24px;color:var(--color-text);font-weight:600}button svg{stroke-width:2}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#ffffffc7;border:1px solid var(--color-border-soft);border-radius:18px;box-shadow:var(--color-shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.button-group{padding:4px;background:#10233f0d;border-radius:14px}.button-group button,.calendar-nav button{min-width:40px;height:38px}.topbar button{background:#17395f;color:#fff;transition:transform .12s ease,box-shadow .16s ease,background .16s ease}.topbar button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #17395f2e;background:#285f96}.topbar button:active{transform:translateY(0);box-shadow:0 4px 10px #17395f33}.active-slot,.active-view{background:linear-gradient(135deg,#2fbf71,#24a35f)!important;color:#fff;box-shadow:inset 0 0 0 1px #ffffff4d,0 10px 18px #2fbf7138}.calendar-container{position:relative;display:flex;gap:18px;flex:1;min-height:0;align-items:stretch}.sidebar-shell{position:relative;z-index:12;display:flex}.calendar-panel{flex:1;display:flex;flex-direction:column;min-height:0;padding:14px 18px 18px;background:linear-gradient(180deg,#fffffff2,#f7fafceb);border:1px solid var(--color-border-soft);border-radius:24px;box-shadow:var(--color-shadow-strong)}.calendar-scroll{flex:1;min-height:0;overflow-y:auto}.calendar-swipe-surface{height:100%}.calendar-scroll::-webkit-scrollbar,#student-list::-webkit-scrollbar{display:none}.calendar-scroll,#student-list{-ms-overflow-style:none;scrollbar-width:none}.calendar-date-display{margin-bottom:10px;padding:6px 6px 12px;color:var(--color-text)}.calendar-date-display__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.calendar-date-display__label--desktop{margin-bottom:12px;font-size:20px;font-weight:350;letter-spacing:-.02em;text-align:center}.calendar-date-display__nav,.calendar-date-display__controls{display:flex;align-items:center;gap:8px}.calendar-date-display__nav button{width:80px;height:48px;padding:0}.calendar-date-display__label{min-width:0;text-align:center}.calendar-date-display__center{min-width:0;display:none}.calendar-date-display__center .calendar-date-display__label{display:none}.calendar-date-display__controls{justify-content:flex-end}.calendar-date-display__variants{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;width:100%}.calendar-variants--mobile{justify-content:flex-end;margin-top:8px;padding-right:2px}.calendar-date-display__controls button{min-width:48px;height:48px;padding:0 14px}.calendar-date-display__controls .active-slot{min-width:48px;background:#2ecc71}.calendar-number-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:linear-gradient(180deg,#fff,#e9f1fa);border:1px solid rgba(26,67,112,.18);box-shadow:inset 0 -1px #1a437014;overflow:hidden}.calendar-number-icon__top{position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(180deg,#4f88c8,#2d5f96)}.calendar-number-icon__value{position:relative;top:1px;font-size:9px;font-weight:800;line-height:1;color:#163250}.clock-number-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:#fff}.clock-number-icon svg{width:30px;height:30px}.clock-number-icon__value{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;line-height:1;color:#0f172a;transform:translateY(.75px)}@media(min-width:769px){.clock-number-icon{width:32px;height:32px}.clock-number-icon svg{width:32px;height:32px}.clock-number-icon__value{font-size:11px;color:#fff;-webkit-text-stroke:.35px rgba(15,23,42,.9);text-shadow:0 0 0 rgba(15,23,42,.9),.3px 0 rgba(15,23,42,.9),-.3px 0 rgba(15,23,42,.9),0 .3px rgba(15,23,42,.9),0 -.3px rgba(15,23,42,.9)}}.student-sidebar{width:260px;display:flex;flex-direction:column;min-height:0;padding:14px;background:linear-gradient(180deg,#fffffff0,#f4f7fbeb);border:1px solid var(--color-border-soft);border-radius:22px;box-shadow:var(--color-shadow-soft);transition:transform .18s ease,opacity .18s ease,width .18s ease,padding .18s ease}.student-sidebar.is-closed{width:0;padding:0;opacity:0;overflow:hidden;border-width:0}.sidebar-header{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.sidebar-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-title{display:flex;flex-direction:column;gap:3px}.sidebar-title h3{margin:0;color:var(--color-text);font-size:18px}.sidebar-kicker{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-soft)}.sidebar-count{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:30px;padding:0 10px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:13px;font-weight:700}.sidebar-close{display:none;width:36px;height:36px;padding:0;border:1px solid var(--color-border-soft);border-radius:12px;background:#10233f0d;color:var(--color-text);font-size:22px;line-height:1}.sidebar-helper{margin:0;color:var(--color-text-soft);font-size:12px;line-height:1.45}.sidebar-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.sidebar-filter-btn,.sidebar-filter-select{width:100%;min-height:40px;border-radius:14px}.sidebar-filter-select{padding:0 12px;border:1px solid var(--color-border-soft);background:#ffffffe6;color:var(--color-text)}.sidebar-list{display:flex;flex-direction:column;gap:4px;min-height:0;overflow-y:auto;padding-right:2px}.sidebar-empty{padding:18px 14px;border:1px dashed var(--color-border-soft);border-radius:16px;background:#10233f08;color:var(--color-text-soft);font-size:13px;line-height:1.5}.student-item{margin-bottom:2px}.student-item-content{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-item-name{overflow:hidden}.student-item-name strong{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-item-meta{display:block;margin-top:3px;font-size:11px;color:#ffffffc7}.student-item-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 10px;border-radius:999px;background:#ffffff29;border:1px solid rgba(255,255,255,.18);font-size:12px;font-weight:700}.student-item-badge.student-item-badge--green{background:#2e7d32;border-color:#ffffff38;color:#fff}.student-item-badge.student-item-badge--brown{background:#8d5a2b;border-color:#ffffff38;color:#fff}.student-item-badge.student-item-badge--orange{background:#ef6c00;border-color:#ffffff38;color:#fff}.student-item-badge.student-item-badge--red{background:#c62828;border-color:#ffffff38;color:#fff}.sidebar-handle{position:absolute;top:50%;left:272px;transform:translateY(-50%);width:34px;height:84px;padding:0;border-radius:18px;background:linear-gradient(180deg,#17395fe6,#285f96e0);border:1px solid rgba(255,255,255,.2);box-shadow:0 12px 28px #17395f38;color:#fff;opacity:.88;z-index:15;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,left .18s ease}.sidebar-handle:hover{transform:translateY(-50%) scale(1.03);box-shadow:0 16px 32px #17395f47;opacity:1}.sidebar-handle:active{transform:translateY(-50%)}.sidebar-shell:not(.sidebar-shell--open)+.sidebar-handle{left:0}.mobile-backdrop,.modern-mobile-toolbar{display:none}@media(max-width:768px){.app-container{height:100dvh;padding:8px;gap:10px}.topbar{display:none}.button-group,.calendar-nav{flex-wrap:nowrap;justify-content:space-between;gap:6px}.button-group button,.calendar-nav button{flex:1 1 0;min-width:0;height:34px;padding:0 8px}.topbar-btn--month{display:none}.calendar-container--mobile{gap:0;padding-bottom:148px}.mobile-backdrop{display:block;position:fixed;inset:0;border:0;background:#09142547;z-index:10}.sidebar-shell{position:fixed;top:112px;left:10px;bottom:88px;width:min(84vw,320px);transform:translate(calc(-100% - 18px));transition:transform .18s ease;z-index:20}.sidebar-shell--open{transform:translate(0)}.student-sidebar,.student-sidebar.is-closed{width:100%;height:100%;padding:14px;opacity:1;overflow:hidden;border-width:1px;border-radius:24px}.sidebar-close{display:inline-flex;align-items:center;justify-content:center}.sidebar-helper{font-size:13px}.sidebar-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.student-item-name strong{font-size:15px}.student-item-meta{font-size:12px}.sidebar-handle{display:none}.calendar-panel{width:100%;padding:12px;border-radius:22px}.calendar-swipe-surface{touch-action:pan-y}.calendar-date-display{margin-bottom:8px;padding:4px 4px 8px;font-size:14px}.calendar-date-display__row{grid-template-columns:auto 1fr;grid-template-areas:"label label" "nav controls";gap:6px}.calendar-date-display__label{grid-area:label;text-align:center;font-size:13px;line-height:1.2;padding-bottom:2px}.calendar-date-display__nav{grid-area:nav;display:none}.calendar-date-display__center{display:block}.calendar-date-display__controls{grid-area:controls;justify-content:flex-end}.calendar-date-display__variants{display:none}.calendar-date-display__nav,.calendar-date-display__controls{gap:4px}.calendar-date-display__nav button,.calendar-date-display__controls button{min-width:0;height:38px;padding:0 4px;font-size:12px}.calendar-date-display__nav button{width:38px;padding:0}.calendar-date-display__controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 14px repeat(4,minmax(0,1fr));align-items:center;column-gap:6px;width:100%;overflow:hidden}.calendar-date-display__controls>:nth-child(1){grid-column:1}.calendar-date-display__controls>:nth-child(2){grid-column:2}.calendar-date-display__controls>:nth-child(3){grid-column:4}.calendar-date-display__controls>:nth-child(4){grid-column:5}.calendar-date-display__controls>:nth-child(5){grid-column:6}.calendar-date-display__controls>:nth-child(6){grid-column:7}.calendar-date-display__month-btn{display:inline-flex}.calendar-date-display__controls button{min-width:0;width:100%;justify-content:center;gap:0}.calendar-date-display__controls .active-slot{min-width:0;width:100%;height:38px;padding:0}.calendar-date-display__today-btn svg{width:16px;height:16px}.calendar-number-icon{width:15px;height:15px}.calendar-number-icon__top{height:4px}.calendar-number-icon__value{font-size:8px}.clock-number-icon{width:26px;height:26px}.clock-number-icon svg{width:26px;height:26px}.clock-number-icon__value{font-size:9px}.calendar-variants{justify-content:center;margin-top:8px;gap:6px}.calendar-variant-btn{min-width:46px;height:34px;padding:0 12px;font-size:12px}.calendar-variant-btn--active{transform:translateY(-1px) scale(1.06);box-shadow:0 14px 28px #2a955b4d;outline:2px solid rgba(255,255,255,.95);outline-offset:1px}.calendar-variant-banner{display:flex;width:100%;margin-top:10px;font-size:12px;padding:9px 12px}.modern-mobile-toolbar{position:fixed;left:12px;right:12px;bottom:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;border-radius:24px;background:#ffffffeb;border:1px solid var(--color-border-soft);box-shadow:var(--color-shadow-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:40}.modern-mobile-toolbar button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;height:58px;padding:6px 4px;border-radius:14px;font-size:11px;font-weight:700;line-height:1.1}.modern-mobile-toolbar .mobile-toolbar__solver{background:linear-gradient(135deg,#d96b1f,#b94700)}.modern-mobile-toolbar .mobile-toolbar__solver:disabled,.modern-mobile-toolbar .mobile-toolbar__solver--running{cursor:wait;opacity:.96;background:linear-gradient(135deg,#f09b3d,#cf5200);box-shadow:0 14px 28px #b947004d}.modern-mobile-toolbar .mobile-toolbar__admin{background:linear-gradient(135deg,#2f73bf,#4b93de);box-shadow:0 12px 24px #2f73bf38}.modern-mobile-toolbar .mobile-toolbar__send{background:linear-gradient(135deg,#2a955b,#38b56f);box-shadow:0 12px 24px #2a955b38}.modern-mobile-toolbar .mobile-toolbar__send:disabled,.modern-mobile-toolbar .mobile-toolbar__send--running{cursor:wait;opacity:.96;box-shadow:0 14px 28px #2a955b47}.modern-mobile-toolbar .mobile-toolbar__debug,.modern-mobile-toolbar .mobile-toolbar__rules{background:linear-gradient(135deg,#2f73bf,#4b93de);box-shadow:0 12px 24px #2f73bf38}.modern-mobile-toolbar .mobile-toolbar__logout{background:linear-gradient(135deg,#6f1f1f,#8f2d2d);box-shadow:0 12px 24px #6f1f1f3d}}.fc{height:100%}.fc-timegrid-slot-label{width:78px;color:#333!important}.fc .fc-timegrid-axis-cushion{text-align:left;padding-left:10px;padding-right:0}.fc .fc-timegrid-axis-frame{justify-content:flex-start}.fc-timegrid-slot-label-cushion:after{content:""}.calendar-slot-major{display:inline-block;font-weight:600;color:#18395e}.calendar-slot-minor{display:inline-block;font-size:12px;color:#7b8a98}.fc-theme-standard td,.fc-theme-standard th{border:1px solid rgba(16,35,63,.08)}.fc-event{transition:transform .1s ease,box-shadow .1s ease;will-change:transform;transform-origin:center;cursor:grab;z-index:5}.fc-timegrid-event .fc-event-main,.fc-timegrid-event .fc-event-main-frame{height:100%}.fc-event:hover{box-shadow:0 8px 18px #10233f38;transform:translateY(-1px)}.fc-event:active{cursor:grabbing}.fc .fc-event-resizer{min-height:12px;opacity:.9;left:0;right:0;z-index:12;pointer-events:auto;touch-action:none}.fc .fc-event-resizer-end{bottom:0}.fc .fc-event-resizer-start{top:0}.fc-event.fixed{border:3px solid #000}.fc-event.fixed:after{content:"🔒";position:absolute;top:2px;right:4px;font-size:12px}.fc-event.event-theory{background:#ffff80!important;border-color:#d2d25e!important;color:#3a3200!important}.fc-event.event-theory .fc-event-main,.fc-event.event-theory .fc-event-main-frame,.fc-event.event-theory .fc-time,.fc-event.event-theory .fc-name,.fc-event.event-theory .fc-meta,.fc-event.event-theory .fc-license,.fc-event.event-theory .fc-type,.fc-event.event-theory .fc-event-mobile,.fc-event.event-theory .fc-event-mobile__time,.fc-event.event-theory .fc-event-mobile__minutes,.fc-event.event-theory .fc-event-mobile__name,.fc-event.event-theory .fc-event-mobile__license,.fc-event.event-theory .fc-event-mobile__right,.fc-event.event-theory .fc-event-mobile__day-name{color:#3a3200!important}.fc-event.event-other-work{background:#8080ff!important;border-color:#6363dc!important}.fc-event.event-exam{background:#ff8f8f!important;border-color:#d46d6d!important}.fc-event.event-exam-lesson{border-color:#18324f3d!important}.fc-event.event-private{background:silver!important;border-color:#9a9a9a!important}.fc-event.fixed,.fc-event.fixed:hover,.fc-event.fixed:active{cursor:not-allowed;transform:none}.fc-event-compact{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0;max-width:100%;overflow:hidden;font-size:12px;line-height:1.2}.fc-event-compact--desktop{height:100%;padding:6px 10px 8px;box-sizing:border-box;color:#111}.fc-event-compact--desktop-day{display:grid;grid-template-columns:minmax(82px,108px) 1fr minmax(108px,140px);align-items:stretch;gap:10px}.fc-event-compact__day-left,.fc-event-compact__day-center,.fc-event-compact__day-right{display:flex;flex-direction:column;min-width:0}.fc-event-compact__day-left{align-items:flex-start;justify-content:space-between}.fc-event-compact__day-left .fc-event-compact__license--other{align-self:stretch;margin:auto 0}.fc-event-compact__day-center{align-items:center;justify-content:space-between;text-align:center}.fc-event-compact__day-right{align-items:flex-end;justify-content:space-between;text-align:right}.fc-event-compact--desktop-week{display:grid;grid-template-rows:auto auto auto;align-content:start;gap:6px}.fc-event-compact--week-slot-short{gap:3px;padding:4px 6px 5px}.fc-event-compact--week-slot-short .fc-event-compact__week-top{gap:6px}.fc-event-compact--week-slot-short .fc-event-compact__week-bottom{gap:6px;align-items:center}.fc-event-compact--week-slot-short .fc-event-compact__icon{font-size:18px}.fc-event-compact--week-slot-short .fc-event-compact__license{font-size:13px;font-weight:700}.fc-event-compact--week-slot-short .fc-event-compact__name{font-size:12px;line-height:1;text-align:left}.fc-event-compact--week-slot-short .fc-event-compact__time,.fc-event-compact--week-slot-short .fc-event-compact__minutes,.fc-event-compact--week-slot-short .fc-event-compact__type{font-size:11px;line-height:1}.fc-event-exam-mini{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:100%;padding:4px 6px;overflow:hidden}.fc-event-exam-mini--support{justify-content:center}.fc-event-exam-mini__title{font-size:12px;font-weight:800;line-height:1.05;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-event-exam-mini__name{font-size:11px;font-weight:600;line-height:1.05;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-event-exam-mini--exam .fc-event-exam-mini__title{text-transform:uppercase;letter-spacing:.02em}.fc-event-exam-mini--preparation .fc-event-exam-mini__title,.fc-event-exam-mini--followup .fc-event-exam-mini__title{font-size:11px}.fc-event-exam-mini--lesson .fc-event-exam-mini__title{font-size:12px}.fc-event-exam-mini--week-slot-30{padding-top:3px;padding-bottom:3px}.fc-event-exam-mini--week-slot-60{gap:4px;padding-top:6px;padding-bottom:6px}.fc-event-exam-mini--mobile{padding:2px 4px;gap:1px}.fc-event-exam-mini--mobile .fc-event-exam-mini__title{font-size:11px}.fc-event-exam-mini--mobile .fc-event-exam-mini__name{font-size:10px}.fc-event-exam-day{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:100%;padding:6px 10px;overflow:hidden}.fc-event-exam-day__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.fc-event-exam-day__title{font-size:clamp(16px,1.5vw,24px);font-weight:800;line-height:1.05;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-event-exam-day__time,.fc-event-exam-day__meta{font-size:clamp(12px,1vw,16px);font-weight:700;line-height:1.05;color:#1f2937;white-space:nowrap}.fc-event-exam-day__name{font-size:clamp(18px,1.8vw,28px);font-weight:700;line-height:1.05;color:#111;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-event-exam-day--preparation,.fc-event-exam-day--followup{gap:2px}.fc-event-exam-day--preparation .fc-event-exam-day__title,.fc-event-exam-day--followup .fc-event-exam-day__title{font-size:clamp(15px,1.3vw,21px)}.fc-event-compact__week-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.fc-event-compact__week-bottom{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.fc-event-compact__week-top--other{justify-content:flex-start}.fc-event-compact__icon{font-size:clamp(24px,1.9vw,34px);line-height:1}.fc-event-compact__license{font-size:clamp(18px,1.7vw,28px);font-weight:650;line-height:1.02;color:#111}.fc-event-compact__name{font-size:clamp(18px,2vw,30px);font-weight:650;line-height:1.05;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;color:#111}.fc-event-compact__day-center .fc-event-compact__name,.fc-event-compact--desktop-week .fc-event-compact__name{text-align:center}.fc-event-compact--desktop-week .fc-event-compact__name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-clamp:unset;-webkit-line-clamp:unset}.fc-event-compact__type{font-size:clamp(16px,1.4vw,24px);font-weight:600;line-height:1.05;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111}.fc-event-compact__time{font-size:clamp(17px,1.55vw,26px);font-weight:600;line-height:1.05;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111}.fc-event-compact__minutes{font-size:clamp(16px,1.5vw,24px);font-weight:600;line-height:1;color:#111;white-space:nowrap}.fc .fc-timegrid-event .fc-event-main,.fc .fc-timegrid-event .fc-event-main-frame,.fc .fc-timegrid-event .fc-event-title-container{min-width:0;max-width:100%;overflow:hidden}.fc .fc-timegrid-event .fc-event-title{min-width:0;max-width:100%}.fc-event-warning{border:3px solid #e74c3c;box-shadow:inset 0 0 0 1px #e74c3c4d;border-radius:8px}.fc-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-meta{display:flex;gap:6px;min-width:0;overflow:hidden;font-size:11px;opacity:.85}.fc-license{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-type{opacity:.8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.fc-parts{min-width:0;font-size:30px;line-height:1.15;font-weight:600;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.availability-slot{background-color:var(--color-availability)!important}.outside-availability{border:3px solid #e74c3c!important;box-shadow:0 0 6px #e74c3c99}.fc-bg-event{opacity:.35;z-index:1}.holiday-overlay{background:#d630312e!important;opacity:.9!important}.fc-holiday-event-label{padding:2px 6px;font-size:11px;font-weight:800;line-height:1.15;color:#b42318;white-space:normal;word-break:break-word}.night-overlay{background:#4e4c4c!important}.fc .fc-timegrid-col.fc-day-today{background:#17395f0a!important}.fc .fc-day-today{background:transparent!important}.fc .fc-timegrid-slot.fc-slot-today{background:#e74c3c0d}.fc-timegrid-now-indicator-line{border-color:var(--color-now-line);border-width:3px}.fc .fc-timegrid-now-indicator-arrow{border-top-color:var(--color-now-line)}.fc-col-header-cell{cursor:pointer;transition:background .15s ease}.fc-col-header-cell:hover{background:#edf5fb}.fc-col-header-cell:active{background:#d7e8f7}.fc-col-header-cell.selected-day{background:#e3edf7!important;border-bottom:3px solid #34495e;font-weight:600}.fc-col-header-cell.today-header{border-bottom:3px solid #e74c3c}.fc-col-header-cell.holiday-header{background:#ffe3e3!important;border-bottom:3px solid #d63031}.calendar-date-display{font-size:16px;font-weight:600;padding:6px 10px 10px;color:#18395e}.fc-day-header-main{display:flex;flex-direction:column;gap:2px;padding:6px 4px;min-width:0;overflow:hidden}.fc-day-header-title{font-weight:700}.fc-day-header-stats{display:flex;justify-content:center;gap:8px;font-size:12px;color:#4d627a}.fc-day-header-stat{display:inline-flex;align-items:baseline;gap:2px}.fc-day-header-stat--danger .fc-day-header-stat__label,.fc-day-header-stat--danger .fc-day-header-stat__value{color:#c0392b}.fc-day-header-stat__label{font-size:12px;font-weight:600}.fc-day-header-stat__value{font-size:14px;font-weight:700;color:#34495e}.fc-day-header-warning{font-size:11px;font-weight:700;color:#c0392b}.fc-day-header-holiday{font-size:11px;font-weight:800;color:#b42318;line-height:1.15;text-align:center;white-space:normal;overflow-wrap:normal;word-break:keep-all;text-wrap:balance;max-width:100%}.fc .fc-toolbar-title,.fc-theme-standard .fc-scrollgrid{color:#18395e}.fc-theme-standard .fc-scrollgrid{border-radius:18px;overflow:hidden}.fc .fc-timegrid-slot{min-height:38px}.calendar-swipe-surface--slot-15 .fc .fc-timegrid-slot,.calendar-swipe-surface--slot-15 .fc .fc-timegrid-slot-lane{min-height:18px!important;height:18px!important}.calendar-swipe-surface--slot-30 .fc .fc-timegrid-slot,.calendar-swipe-surface--slot-30 .fc .fc-timegrid-slot-lane{min-height:28px!important;height:28px!important}.calendar-swipe-surface--slot-30 .fc-direction-ltr .fc-timegrid-col-events,.calendar-swipe-surface--slot-60 .fc-direction-ltr .fc-timegrid-col-events,.calendar-swipe-surface--slot-30 .fc-direction-rtl .fc-timegrid-col-events,.calendar-swipe-surface--slot-60 .fc-direction-rtl .fc-timegrid-col-events{margin:0!important}.calendar-swipe-surface--slot-30 .fc .fc-timegrid-event-harness,.calendar-swipe-surface--slot-60 .fc .fc-timegrid-event-harness{left:0!important;right:0!important}.calendar-swipe-surface--slot-60 .fc .fc-timegrid-slot,.calendar-swipe-surface--slot-60 .fc .fc-timegrid-slot-lane{min-height:46px!important;height:46px!important}.fc-event-mobile{width:100%;height:100%;overflow:hidden;box-sizing:border-box}.fc-event-mobile--week{display:grid;grid-template-columns:1fr;grid-template-areas:"time" "timeend" "minutes" "name" "weekicon" "license" "parts";align-content:center;align-items:center;gap:1px;font-size:10px;line-height:1.05;padding:2px 4px}.fc-event-mobile--day{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"time name license";align-items:center;gap:8px;font-size:12px;line-height:1.1;padding:6px 10px}.fc-event-mobile--day-compact{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;height:100%;padding:4px 8px;font-size:11px;line-height:1.05}.fc-event-mobile__left,.fc-event-mobile__day-time{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.fc-event-mobile__day-top{display:contents}.fc-event-mobile__time,.fc-event-mobile__time-end,.fc-event-mobile__minutes,.fc-event-mobile__name,.fc-event-mobile__license,.fc-event-mobile__center,.fc-event-mobile__right{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.fc-event-mobile__time{font-weight:600}.fc-event-mobile__minutes{opacity:.88;font-size:10px}.fc-event-mobile__name,.fc-event-mobile__center{font-weight:600}.fc-event-mobile__center{text-align:center}.fc-event-mobile--week .fc-event-mobile__time{grid-area:time;text-align:center;font-size:9px;font-weight:600;justify-self:center}.fc-event-mobile--week .fc-event-mobile__time-end{grid-area:timeend;text-align:center;font-size:9px;font-weight:600;justify-self:center}.fc-event-mobile--week .fc-event-mobile__minutes{grid-area:minutes;text-align:center;font-size:9px;justify-self:center}.fc-event-mobile--week .fc-event-mobile__name{grid-area:name;text-align:center;font-size:10px;line-height:1.05;font-weight:600}.fc-event-mobile--week-other{display:flex;align-items:center;justify-content:center}.fc-event-mobile--week-other .fc-event-mobile__name--other{display:block;width:100%;text-align:center;font-size:10px;line-height:1.05;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-event-mobile--week .fc-event-mobile__week-icon{grid-area:weekicon;justify-self:center;display:inline-flex;align-items:center;justify-content:center;line-height:1}.fc-event-mobile--week .fc-event-mobile__license{grid-area:license;text-align:center;font-size:9px;font-weight:600;justify-self:center;display:inline-flex;align-items:center;gap:3px}.fc-event-mobile--week .fc-event-mobile__parts{grid-area:parts;text-align:center;justify-self:center}.fc-event-mobile--day .fc-event-mobile__day-time{grid-area:time;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:0}.fc-event-mobile__day-name{grid-area:name;width:100%;text-align:center;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.05;padding-inline:4px;align-self:center}.fc-event-mobile--day-other{grid-template-columns:1fr;grid-template-areas:"time" "name";justify-items:start;gap:2px}.fc-event-mobile--day-other .fc-event-mobile__day-time{align-items:flex-start;justify-content:flex-start;gap:0}.fc-event-mobile__day-name--other{text-align:left;align-self:start;justify-self:stretch;font-size:14px;line-height:1.05}.fc-event-mobile--day-other-compact{grid-template-columns:1fr;justify-items:start;gap:1px}.fc-event-mobile--day-other-compact .fc-event-mobile__name--other{display:block;width:100%;font-size:11px;line-height:1.05;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-event-mobile__license,.fc-event-mobile__right{text-align:right;font-weight:600;padding-right:6px}.fc-event-mobile--day .fc-event-mobile__right{grid-area:license;justify-self:end;align-self:center;display:inline-flex;flex-direction:column;align-items:center;gap:3px;text-align:center;padding-right:2px}.fc-event-mobile__icon{display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}@media(max-width:768px){.fc .fc-event-resizer{min-height:18px;z-index:16}.fc-timegrid-slot-label{width:58px;font-size:11px}.calendar-swipe-surface--slot-15 .fc-timegrid-slot-label{width:58px}.fc .fc-timegrid-axis-cushion{padding-left:6px;padding-right:0;font-size:11px}.calendar-swipe-surface--slot-15 .fc .fc-timegrid-axis-frame{justify-content:flex-start}.calendar-swipe-surface--slot-15 .fc .fc-timegrid-axis-cushion,.calendar-swipe-surface--slot-15 .fc-timegrid-slot-label-cushion{padding-left:6px;padding-right:0;text-align:left}.calendar-slot-major{font-size:12px}.calendar-slot-minor{font-size:10px}.fc-event{font-size:14px;padding:2px}.fc-event-mobile--day{gap:8px;padding:8px 10px;font-size:13px}.fc-event-mobile--day-compact{gap:6px;padding:4px 8px;font-size:11px}.fc-event-mobile--week{gap:0;padding:2px 3px;font-size:9px}.fc-event-mobile__minutes{font-size:10px}.fc-event-mobile__time,.fc-event-mobile__license,.fc-event-mobile__right{padding-inline:2px}.fc-event-mobile__day-time{gap:1px}.fc-event-mobile__day-name{font-size:14px;padding-inline:2px}.fc-event-mobile__day-name--other{font-size:12px;padding-inline:2px}.fc-event-mobile--day .fc-event-mobile__time{font-size:14px;line-height:1.05}.fc-event-mobile--day .fc-event-mobile__minutes{font-size:9px}.fc-event-mobile--day .fc-event-mobile__right{padding-right:2px}.fc-event-mobile__icon{font-size:18px}.fc-event-mobile--week .fc-event-mobile__name,.fc-event-mobile--week-other .fc-event-mobile__name--other{font-size:9px}.fc-event-mobile--week .fc-event-mobile__time,.fc-event-mobile--week .fc-event-mobile__time-end,.fc-event-mobile--week .fc-event-mobile__minutes{font-size:8px}.fc-event-mobile--week .fc-event-mobile__license{font-size:9px}.fc-event-mobile__parts{font-size:8px;line-height:1.05;font-weight:700;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-timegrid-axis{font-size:12px}.calendar-date-display{font-size:15px}.fc-day-header-main{gap:1px;padding:4px 2px}.fc-day-header-title{font-size:11px;line-height:1.1}.fc-day-header-holiday{font-size:7px;font-weight:700;line-height:1;letter-spacing:-.02em;max-width:100%;padding-inline:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal;overflow-wrap:normal}.fc-day-header-stats{font-size:9px;gap:4px;flex-wrap:wrap}}@media(max-width:700px){.fc{font-size:12px}.fc-timegrid-slot{height:40px}.calendar-swipe-surface--slot-15 .fc .fc-timegrid-slot,.calendar-swipe-surface--slot-15 .fc .fc-timegrid-slot-lane{min-height:18px!important;height:18px!important}.calendar-swipe-surface--slot-30 .fc .fc-timegrid-slot,.calendar-swipe-surface--slot-30 .fc .fc-timegrid-slot-lane{min-height:28px!important;height:28px!important}.calendar-swipe-surface--slot-60 .fc .fc-timegrid-slot,.calendar-swipe-surface--slot-60 .fc .fc-timegrid-slot-lane{min-height:60px!important;height:60px!important}}.fc-event-compact--desktop-week .fc-event-compact__license{font-size:clamp(14px,1.15vw,18px);font-weight:620}.fc-event-compact--desktop-week .fc-event-compact__name{font-size:clamp(15px,1.4vw,22px);font-weight:620}.fc-event-compact--desktop-week .fc-event-compact__time{font-size:clamp(14px,1.2vw,19px);font-weight:600}.fc-event-compact--desktop-week .fc-event-compact__minutes{font-size:clamp(14px,1.15vw,18px);font-weight:600}.fc-event-compact--week-slot-60{display:flex;flex-direction:column;justify-content:flex-start;gap:4px;padding:4px 6px 5px}.fc-event-compact--week-slot-60 .fc-event-compact__week-top{gap:6px}.fc-event-compact--week-slot-60 .fc-event-compact__icon{font-size:clamp(14px,1vw,18px)}.fc-event-compact--week-slot-60 .fc-event-compact__name{font-size:clamp(13px,1.08vw,16px);line-height:1.05}.fc-event-compact--week-slot-60 .fc-event-compact__time{font-size:clamp(11px,.92vw,13px);line-height:1;flex:1 1 auto;min-width:0}.fc-event-compact--week-slot-60 .fc-event-compact__minutes{font-size:clamp(12px,1vw,15px);flex:0 0 auto}.fc-event-compact--week-slot-30{display:flex;flex-direction:column;justify-content:flex-start;gap:3px;padding:4px 6px 5px}.fc-event-compact--week-slot-30 .fc-event-compact__week-top{gap:5px}.fc-event-compact--week-slot-30 .fc-event-compact__license{font-size:clamp(12px,1.05vw,15px)}.fc-event-compact--week-slot-30 .fc-event-compact__name{font-size:clamp(12px,1vw,14px);line-height:1.05}.fc-event-compact--week-slot-30 .fc-event-compact__time{font-size:clamp(10px,.9vw,12px);line-height:1;flex:1 1 auto;min-width:0}.fc-event-compact--week-slot-30 .fc-event-compact__minutes{font-size:clamp(11px,.94vw,13px);flex:0 0 auto}.fc-event-compact--week-slot-15{display:flex;flex-direction:column;justify-content:flex-start;gap:2px;padding:3px 5px 4px}.fc-event-compact--week-slot-15 .fc-event-compact__week-top{gap:4px}.fc-event-compact--week-slot-15 .fc-event-compact__license{font-size:clamp(11px,.95vw,14px)}.fc-event-compact--week-slot-15 .fc-event-compact__name{font-size:clamp(12px,1vw,14px);line-height:1.05}.fc-event-compact--week-slot-15 .fc-event-compact__time,.fc-event-compact--week-slot-15 .fc-event-compact__minutes{font-size:clamp(10px,.88vw,12px)}@media(min-width:769px){.calendar-swipe-surface--slot-15 .fc-timegrid-slot-label{width:78px}.calendar-swipe-surface--slot-15 .fc .fc-timegrid-axis-frame{justify-content:flex-start}.calendar-swipe-surface--slot-15 .fc .fc-timegrid-axis-cushion,.calendar-swipe-surface--slot-15 .fc-timegrid-slot-label-cushion{width:auto;padding-left:10px;padding-right:0;text-align:left}}button{border:none;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;border-radius:12px;cursor:pointer;height:34px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:background .15s ease,transform .12s ease,box-shadow .12s ease,filter .12s ease;box-shadow:0 10px 20px #17395f29}.startup-screen{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,#f5f9fdf5,#e8f0f7f5 42%,#dbe5effa);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.startup-screen__card{width:min(440px,100%);padding:28px 26px;border-radius:28px;background:linear-gradient(180deg,#fffffffa,#f6fafdf5);border:1px solid rgba(19,41,67,.08);box-shadow:0 24px 48px #13294324;text-align:center}.startup-screen__eyebrow{margin-bottom:10px;color:#617487;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.startup-screen__title{margin:0;color:#132943;font-size:clamp(28px,5vw,36px);line-height:1.05}.startup-screen__text{margin:12px 0 0;color:#5d7187;font-size:15px;line-height:1.45}.startup-screen__loader{width:56px;height:56px;margin:22px auto 0;border-radius:50%;border:4px solid rgba(23,57,95,.12);border-top-color:#d96b1f;animation:startup-spin .9s linear infinite}@keyframes startup-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}button:hover{background:linear-gradient(135deg,var(--color-primary-hover) 0%,#3a78b7 100%);transform:translateY(-1px);filter:saturate(1.04)}button:active{transform:translateY(1px) scale(.98)}.app-loading,.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,#f5f9fdf5,#e8f0f7f5 42%,#dbe5effa)}.app-loading{color:#17395f;font-size:18px;font-weight:700}.ui-error-fallback{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,#f5f9fdf5,#e8f0f7f5 42%,#dbe5effa)}.ui-error-fallback--inline{min-height:min(60vh,520px);border-radius:24px}.ui-error-fallback__card{width:min(560px,100%);padding:28px 26px;border-radius:28px;background:#fffffff5;border:1px solid rgba(19,41,67,.08);box-shadow:0 26px 50px #13294329}.ui-error-fallback__eyebrow{margin-bottom:10px;color:#a54b24;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.ui-error-fallback__card h2{margin:0 0 10px;color:#132943;font-size:clamp(24px,4vw,34px);line-height:1.08}.ui-error-fallback__card p{margin:0;color:#5d7187;line-height:1.5;word-break:break-word}.auth-card{width:min(460px,100%);padding:30px 28px;border-radius:28px;background:#fffffff5;border:1px solid rgba(19,41,67,.08);box-shadow:0 26px 50px #13294329}.auth-card__eyebrow{margin-bottom:10px;color:#617487;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.auth-card h1{margin:0 0 10px;color:#132943;font-size:clamp(30px,5vw,40px);line-height:1.05}.auth-card p{margin:0 0 18px;color:#5d7187;line-height:1.5}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;color:#17395f;font-size:14px;font-weight:700}.auth-form input{width:100%;min-height:46px;padding:0 14px;border-radius:14px;border:1px solid rgba(19,41,67,.16);background:#f7fafdeb;color:#17395f;font-size:15px}.auth-error{padding:10px 12px;border-radius:12px;background:#d146461f;color:#a22a2a;font-size:14px;font-weight:700}.auth-info{padding:10px 12px;border-radius:12px;background:#2465aa1a;color:#1f5c97;font-size:14px;font-weight:700}.auth-submit{min-height:42px;background:linear-gradient(135deg,#2d8e4b,#43ad63)}.auth-submit:hover{background:linear-gradient(135deg,#2a7f43,#3f9d5d)}.auth-hint{margin-top:16px;color:#66798c;font-size:13px}.auth-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.auth-link-btn{height:auto;padding:0;border:none;background:transparent;box-shadow:none;color:#1f5c97;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:2px}.auth-link-btn:hover{background:transparent;color:#174875;transform:none;filter:none}.auth-link-btn:active{transform:none}.auth-route-shell{min-height:100vh;background:linear-gradient(180deg,#f4f7fb,#ebf1f6)}.auth-route-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 10px}.auth-route-user{color:#17395f;font-size:14px;font-weight:700}.button-group,.calendar-nav{display:flex;align-items:center;gap:8px}.topbar .calendar-nav{width:100%;justify-content:flex-end}.topbar .button-group{display:none}.topbar .calendar-nav button:first-child,.topbar .calendar-nav button:nth-child(2){display:none}.calendar-nav button:first-child,.calendar-nav button:nth-child(2){width:34px;padding:0}.active-slot{background:#2ecc71;box-shadow:inset 0 0 0 2px #fff6}.sidebar-button{border:none;background:#2c3e50;color:#fff;border-radius:6px;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;z-index:5}.sidebar-button:hover{background:#34495e;transform:scale(1.05)}.student-item{padding:7px 10px;margin-bottom:4px;background:linear-gradient(135deg,#21496f,#16314e);color:#fff;border-radius:12px;cursor:grab;font-weight:500;font-size:13px;box-shadow:0 10px 18px #17395f29;transition:background .15s ease,transform .1s ease,box-shadow .12s ease}.student-item:hover{background:linear-gradient(135deg,#2b5b89,#1f4468);transform:translate(3px);box-shadow:0 14px 22px #17395f33}.student-item-badge{min-width:28px;height:28px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.student-item-badge--green{background:#2e7d32}.student-item-badge--brown{background:#8d5a2b}.student-item-badge--orange{background:#ef6c00}.student-item-badge--red{background:#c62828}button.solver{background:#e67e22}button.solver:hover{background:#d35400}.solver-btn{min-width:112px;gap:8px;background:linear-gradient(135deg,#d96b1f,#b94700);box-shadow:0 12px 24px #b9470047}.solver-btn:hover{background:linear-gradient(135deg,#eb7a22,#cf5200)}.solver-btn:disabled,.solver-btn--running{cursor:wait;opacity:.95;background:linear-gradient(135deg,#f09b3d,#cf5200);box-shadow:0 14px 28px #b9470057}.solver-btn__icon{flex:0 0 auto}.solver-btn__icon--spin{animation:startup-spin .9s linear infinite}.calendar-action-btn{min-width:62px;padding:0 18px;border-radius:14px}.calendar-action-btn:disabled,.share-action-btn--running{cursor:wait;opacity:.95}.topbar .calendar-nav{gap:10px}.topbar .solver-btn{min-width:126px;min-height:40px;border-radius:14px}.topbar .calendar-action-btn{min-height:40px;box-shadow:0 12px 24px #17395f2e}.topbar .mobile-toolbar__send{min-width:152px;background:linear-gradient(135deg,#2a955b,#38b56f);box-shadow:0 12px 24px #2a955b38}.topbar .mobile-toolbar__send:hover{background:linear-gradient(135deg,#247f4d,#31a562)}.topbar .mobile-toolbar__send:disabled,.topbar .mobile-toolbar__send--running{cursor:wait;opacity:.96;box-shadow:0 14px 28px #2a955b47}.topbar .mobile-toolbar__admin,.topbar .mobile-toolbar__debug,.topbar .mobile-toolbar__rules{background:linear-gradient(135deg,#2f73bf,#4b93de);box-shadow:0 12px 24px #2f73bf38}.topbar .mobile-toolbar__admin:hover,.topbar .mobile-toolbar__debug:hover,.topbar .mobile-toolbar__rules:hover{background:linear-gradient(135deg,#2866ab,#4188d1)}.topbar .mobile-toolbar__debug:disabled,.topbar .mobile-toolbar__debug--running,.modern-mobile-toolbar .mobile-toolbar__debug:disabled,.modern-mobile-toolbar .mobile-toolbar__debug--running{cursor:wait;opacity:.96;box-shadow:0 14px 28px #2f73bf47}.topbar .mobile-toolbar__logout{background:linear-gradient(135deg,#6f1f1f,#8f2d2d);box-shadow:0 12px 24px #6f1f1f3d}.topbar .mobile-toolbar__logout:hover{background:linear-gradient(135deg,#631b1b,#812727)}.overview-btn{background:linear-gradient(135deg,#cf8c1b,#f0ab3f)!important;box-shadow:0 12px 24px #cf8c1b47!important}.overview-btn:hover{background:linear-gradient(135deg,#b97c14,#df9d33)!important}.analysis-btn{background:linear-gradient(135deg,#8f2e2e,#bf4646)!important;box-shadow:0 12px 24px #8f2e2e3d!important}.analysis-btn:hover{background:linear-gradient(135deg,#7a2626,#a83d3d)!important}@media(max-width:768px){.auth-route-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:14px 14px 10px}.auth-route-user{grid-column:1 / -1;order:4;font-size:13px}.auth-route-bar .calendar-action-btn{min-width:0;width:100%;min-height:38px;padding:0 6px;font-size:10px;gap:4px}.auth-route-bar .calendar-action-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-route-bar .calendar-action-btn svg{width:16px;height:16px;flex:0 0 auto}}.delete-btn{background:linear-gradient(135deg,#b63737,#df5c5c)!important;box-shadow:0 12px 24px #b6373738!important}.delete-btn:hover{background:linear-gradient(135deg,#a02f2f,#cb4d4d)!important}.save-btn{background:linear-gradient(135deg,#2a955b,#38b56f)!important;box-shadow:0 12px 24px #2a955b38!important}.save-btn:hover{background:linear-gradient(135deg,#247f4d,#31a562)!important}.calendar-variants{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.calendar-variant-btn{min-width:54px;background:linear-gradient(135deg,#6f7f8f,#5a6978);box-shadow:0 10px 20px #13294324}.calendar-variant-btn--filled{background:linear-gradient(135deg,#1f5b8f,#173f64)}.calendar-variant-btn--active{background:linear-gradient(135deg,#2a955b,#38b56f);box-shadow:0 12px 24px #2a955b38}.calendar-variant-banner{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#f28c28,#d45b1f);color:#fff;font-size:13px;font-weight:800;letter-spacing:.03em;box-shadow:0 12px 24px #d45b1f38}.modal{position:fixed;inset:0;width:100vw;height:100vh;background:#0006;display:flex;align-items:center;justify-content:center;z-index:5000}.modal-content{background:#fff;padding:20px;border-radius:10px;box-shadow:0 10px 30px #0000004d;max-height:90vh;overflow-y:auto}.event-popup{background:linear-gradient(180deg,#fffffffa,#f8fbfef5);padding:22px;border-radius:22px;border:1px solid rgba(19,41,67,.1);box-shadow:0 24px 48px #13294333;min-width:320px;max-width:min(460px,92vw);display:flex;flex-direction:column;gap:10px}.event-popup--editor{max-width:min(760px,94vw)}.event-popup__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-close-btn{width:38px;min-width:38px;height:38px;min-height:38px;padding:0;border-radius:999px;border:1px solid rgba(19,41,67,.14);background:linear-gradient(180deg,#fff,#f3f7fb);color:#18324f;box-shadow:0 10px 20px #13294314;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;line-height:1;flex:0 0 auto}.modal-close-btn:hover{background:linear-gradient(180deg,#fff,#e9f1f8)}.event-popup-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px}.event-popup-form-grid__wide{grid-column:1 / -1}.event-popup-availability{padding:10px 12px;border-radius:14px;background:#17395f0f;color:#18324f;display:flex;flex-direction:column;gap:4px;font-size:13px}.event-popup-availability--inline{min-width:240px;max-width:340px}.event-popup-availability__row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.event-popup-availability__content{min-width:0;flex:1 1 auto}.event-popup-availability__actions{display:flex;justify-content:flex-end;flex:0 0 auto}.event-popup-preparation{padding:12px 14px;border-radius:14px;background:#17395f0f;color:#18324f;display:flex;flex-direction:column;gap:10px}.event-popup-preparation__header{font-size:13px;font-weight:800;color:#42566d}.event-popup-preparation__row{display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:10px;align-items:center}.event-popup-preparation__toggle{display:inline-flex;align-items:center;gap:10px;margin:0}.event-popup-preparation__toggle input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;padding:0;box-shadow:none}.event-popup-preparation__unit{font-size:13px;font-weight:700;color:#627487}.event-popup-form-grid__student,.event-popup-form-grid__half{grid-column:span 2}.event-popup-form-grid__date,.event-popup-form-grid__time{grid-column:span 1}.event-popup-form-grid label,.event-popup-form-grid .event-popup-form-grid__wide,.event-popup-form-grid .event-popup-form-grid__student,.event-popup-form-grid .event-popup-form-grid__date,.event-popup-form-grid .event-popup-form-grid__time{min-width:0}.event-popup-form-grid .react-select__control,.event-popup-form-grid input,.event-popup-form-grid select{width:100%;box-sizing:border-box}.event-popup h3{margin:0 0 4px;color:#132943;font-size:24px}.event-popup label{margin-top:2px;color:#42566d;font-size:13px;font-weight:700;letter-spacing:.01em}.event-popup input,.event-popup select{min-height:46px;padding:0 14px;border-radius:14px;border:1px solid #d4dde7;background:linear-gradient(180deg,#fff,#f7fafd);color:#18324f;font-size:15px;box-shadow:inset 0 1px 2px #1329430a}.event-popup input:focus,.event-popup select:focus{outline:none;border-color:#7ea9d3;box-shadow:0 0 0 4px #285f961f}.native-date-input{width:100%}.native-date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85}.time-picker{position:relative;width:100%}.time-picker__backdrop{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a142047}.time-picker__trigger{width:100%;min-height:46px;padding:0 12px;border-radius:14px;border:1px solid #d4dde7;background:linear-gradient(180deg,#fff,#f7fafd);color:#18324f;font-size:15px;display:flex;align-items:center;justify-content:center;gap:10px}.time-picker__trigger:focus{outline:none;border-color:#7ea9d3;box-shadow:0 0 0 4px #285f961f}.time-picker__value{min-width:2ch;font-size:22px;font-weight:800}.time-picker__separator{color:#42566d;font-size:20px;font-weight:800;line-height:1}.time-picker__dialog{position:relative;width:min(392px,94vw);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 22px 42px #0a142057}.time-picker__hero{padding:18px 22px 16px;background:linear-gradient(135deg,#17395f,#214d7b);color:#fff}.time-picker__hero-label{margin-bottom:10px;font-size:14px;font-weight:700;opacity:.94}.time-picker__hero-value{display:flex;align-items:center;justify-content:center;gap:6px;font-size:60px;font-weight:300;line-height:1;letter-spacing:.02em}.time-picker__hero-part{min-width:0;height:auto;padding:0 2px;border:0;border-radius:10px;background:transparent;color:#ffffffb8;font-size:inherit;font-weight:inherit;box-shadow:none;filter:none}.time-picker__hero-part.is-active{color:#fff}.time-picker__hero-colon{color:#ffffffb8}.time-picker__body{padding:18px 22px 10px;background:#fff}.time-picker__clock-view{display:flex;justify-content:center}.time-picker__keyboard-title{margin-bottom:16px;color:#1c354e;font-size:15px;font-weight:700}.time-picker__keyboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.time-picker__field{display:flex;flex-direction:column;gap:8px}.time-picker__field span{color:#5a6f84;font-size:13px;font-weight:500}.time-picker__field input{min-height:52px;padding:0 4px 6px;border:0;border-bottom:2px solid rgba(12,85,109,.5);border-radius:0;background:transparent;color:#18324f;font-size:36px;font-weight:300;text-align:left;box-shadow:none}.time-picker__field input:focus{outline:none;border-bottom-color:#0a556d}.time-picker__dial{position:relative;width:278px;height:278px;margin:0 auto;border-radius:50%;background:#f1f3f4;box-shadow:inset 0 0 0 1px #1329430d}.time-picker__dial-ring--inner:before{content:"";position:absolute;inset:50%;width:120px;height:120px;border-radius:50%;background:#0c556d0a;transform:translate(-50%,-50%)}.time-picker__hand{position:absolute;left:50%;bottom:50%;width:2px;transform-origin:center bottom;border-radius:999px;background:#0a556d;z-index:1}.time-picker__dial-center{position:absolute;left:50%;top:50%;width:12px;height:12px;border-radius:50%;background:#0a556d;transform:translate(-50%,-50%);z-index:2}.time-picker__dial-number{position:absolute;transform:translate(-50%,-50%);box-sizing:border-box;min-width:0;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#1f2d3a;font-size:15px;font-weight:600;touch-action:manipulation;box-shadow:none;z-index:3;filter:none;outline:none;-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;white-space:nowrap;transition:none}.time-picker__dial-number--inner{width:36px;height:36px;font-size:11px;font-weight:700;color:#5f6570}.time-picker__dial-number:hover,.time-picker__dial-number:active,.time-picker__dial-number:focus,.time-picker__dial-number:focus-visible,.time-picker__icon-button:hover,.time-picker__icon-button:active,.time-picker__minute:hover,.time-picker__minute:active,.time-picker__action:hover,.time-picker__action:active,.time-picker__hero-part:hover,.time-picker__hero-part:active,.time-picker__trigger:hover,.time-picker__trigger:active{transform:none!important}.time-picker__dial-number:hover,.time-picker__dial-number:active,.time-picker__dial-number:focus,.time-picker__dial-number:focus-visible{transform:translate(-50%,-50%)!important;background:transparent;box-shadow:none;filter:none}.time-picker__dial-number.is-active{background:linear-gradient(135deg,#17395f,#285f96);color:#fff;box-shadow:none}.time-picker__dial-number:focus,.time-picker__dial-number:focus-visible{outline:none;box-shadow:none}.time-picker__dial-number.is-active:hover,.time-picker__dial-number.is-active:active,.time-picker__dial-number.is-active:focus,.time-picker__dial-number.is-active:focus-visible{transform:translate(-50%,-50%)!important;background:linear-gradient(135deg,#17395f,#285f96);color:#fff;box-shadow:none}.time-picker__footer{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:0 22px 18px;background:#fff}.time-picker__icon-button{width:42px;height:42px;min-width:42px;padding:0;border-radius:50%;background:transparent;color:#657382;box-shadow:none;filter:none;outline:none;-webkit-tap-highlight-color:transparent}.time-picker__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.time-picker__action{min-width:0;width:100%;min-height:40px;height:40px;padding:0 14px;border:none;border-radius:12px;background:transparent;color:#0a556d;font-weight:700;box-shadow:none;filter:none;outline:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;writing-mode:horizontal-tb;text-orientation:mixed}.time-picker__action--confirm{color:#0a556d}@media(max-width:768px){.time-picker__dialog{width:min(340px,calc(100vw - 20px))}.time-picker__hero{padding:16px 18px 14px}.time-picker__hero-value{font-size:54px}.time-picker__dial{width:244px;height:244px}.time-picker__dial-number{width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px;padding:0;font-size:14px;border-radius:50%}.time-picker__dial-number--inner{width:34px;height:34px;min-width:34px;min-height:34px;max-width:34px;max-height:34px;font-size:10px;border-radius:50%}.time-picker__dial-number.is-active,.time-picker__dial-number.is-active:hover,.time-picker__dial-number.is-active:active,.time-picker__dial-number.is-active:focus,.time-picker__dial-number.is-active:focus-visible{width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px;border-radius:50%}.time-picker__dial-number--inner.is-active,.time-picker__dial-number--inner.is-active:hover,.time-picker__dial-number--inner.is-active:active,.time-picker__dial-number--inner.is-active:focus,.time-picker__dial-number--inner.is-active:focus-visible{width:34px;height:34px;min-width:34px;min-height:34px;max-width:34px;max-height:34px;border-radius:50%}.time-picker__minute{min-height:38px;font-size:14px}.time-picker__footer{padding:0 18px 16px}.time-picker__actions{grid-template-columns:repeat(2,minmax(96px,1fr));gap:8px}.time-picker__action{min-width:0}.time-picker__keyboard-grid{grid-template-columns:1fr}}.popup-buttons{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.popup-buttons--editor{justify-content:flex-start}.popup-buttons--editor-main{margin-top:0}.event-popup-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:10px}.event-popup-footer__aside{display:flex;justify-content:flex-end;align-self:flex-end;flex:0 0 auto}.event-popup-footer__aside button{min-width:118px}.share-draft-modal{width:min(560px,92vw);padding:22px;border-radius:22px;border:1px solid rgba(19,41,67,.1);box-shadow:0 24px 48px #13294333}.share-draft-modal__subtitle{margin:0 0 12px;color:#5d7187;font-size:14px;line-height:1.45}.share-draft-modal__field{display:grid;gap:8px}.share-draft-modal__field span{color:#17395f;font-size:14px;font-weight:700}.share-draft-modal__field textarea{width:100%;min-height:180px;padding:12px 14px;border-radius:16px;border:1px solid rgba(19,41,67,.16);background:#f7fafdf5;color:#17395f;font-size:15px;line-height:1.45;resize:vertical}.share-draft-modal__field textarea:focus{outline:none;border-color:#7ea9d3;box-shadow:0 0 0 4px #285f961f}.share-draft-modal__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.popup-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#00000040;display:flex;align-items:center;justify-content:center;z-index:5000}.hover-info{min-width:220px;max-width:260px;padding:12px 14px;border-radius:14px;background:linear-gradient(180deg,#eef8e6fa,#e3f3d6f5);border:1px solid rgba(93,139,83,.22);box-shadow:0 16px 30px #3258272e;color:#244426;font-size:13px;transition:transform .08s ease,opacity .08s ease;pointer-events:auto;transform:translateZ(0)}.hover-info__header{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:move;touch-action:none}.hover-info__close{min-width:28px;height:28px;padding:0;border-radius:999px;background:#3258271a;color:#244426;box-shadow:none}.hover-info__close:hover{background:#32582729;color:#244426;transform:none}.hover-info__time{margin-top:6px;margin-bottom:10px;color:#527055;font-size:12px}.hover-info__empty{color:#527055}.hover-info__student{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid rgba(93,139,83,.14)}.hover-info__student:first-of-type{border-top:0}.hover-info__student-btn{width:100%;border:0;background:linear-gradient(180deg,#f7fdee,#edf7de);color:#244426;text-align:left;cursor:pointer;border-radius:10px;padding:10px 12px}.hover-info__student-btn:hover{background:linear-gradient(180deg,#eef9e1,#def0c9);color:#244426;box-shadow:0 8px 18px #3258271f;transform:none}.hover-info__name{font-weight:700}.hover-info__time-range{margin-top:2px;color:#527055;font-size:12px}.hover-info__license{color:#527055;text-align:right}.availability-editor{width:min(1080px,96vw)!important;padding:22px;border-radius:24px;background:linear-gradient(180deg,#fffffffa,#f7fafdf7);border:1px solid rgba(19,41,67,.1);box-shadow:0 26px 52px #1329432e}.availability-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.availability-header h3,.availability-edit-modal h3{margin:0;color:#132943;font-size:26px}.availability-back-btn{min-width:164px;min-height:44px;background:linear-gradient(135deg,#2a955b,#38b56f);color:#fff;box-shadow:0 12px 24px #2a955b2e}.availability-back-btn:hover{background:linear-gradient(135deg,#247f4d,#31a562)}.availability-kicker{margin:0 0 6px;color:#64788d;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.availability-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;margin-bottom:18px;flex-wrap:wrap;position:relative;z-index:5}.availability-current-day{margin-top:16px}.availability-quick-dates{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.availability-quick-date{min-height:38px;padding:0 14px;border-radius:999px;background:#1329430f;color:#18324f;box-shadow:none}.availability-quick-date.is-active{background:linear-gradient(135deg,#17395f,#285f96);color:#fff}.availability-current-day label{display:flex;flex-direction:column;gap:6px;width:calc((100% - 14px)/2);max-width:calc((100% - 14px)/2);color:#42566d;font-size:13px;font-weight:700}.availability-current-day input{min-height:46px;padding:0 14px;border-radius:14px;border:1px solid #d4dde7;background:linear-gradient(180deg,#fff,#f7fafd);color:#18324f;font-size:15px}.availability-current-day input:focus{outline:none;border-color:#7ea9d3;box-shadow:0 0 0 4px #285f961f}.availability-mode-switch{display:inline-flex;padding:4px;background:#1329430f;border-radius:16px;gap:4px}.availability-mode-switch button{min-width:142px;background:transparent;color:#42566d;box-shadow:none}.availability-mode-switch button:hover{background:#ffffffb3}.availability-mode-switch button.is-active{background:linear-gradient(135deg,#17395f,#285f96);color:#fff;box-shadow:0 12px 24px #17395f2e}.availability-summary-trigger{min-width:164px;min-height:44px;border:0;border-radius:16px;background:linear-gradient(135deg,#17395f,#285f96);color:#fff;font-size:14px;font-weight:700;box-shadow:0 12px 24px #17395f2e;cursor:pointer;position:relative;z-index:6}.availability-toggle{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border-radius:14px;background:#1329430a;border:1px solid rgba(19,41,67,.06);color:#42566d;font-size:14px;font-weight:600}.availability-toggle input{width:18px;height:18px}.availability-toggle--edit{justify-content:flex-start;min-height:46px;padding:0 14px}.availability-switch{display:inline-flex;align-items:center;gap:12px;min-height:46px;padding:0 14px;border-radius:14px;background:#1329430a;border:1px solid rgba(19,41,67,.06);cursor:pointer}.availability-switch input{position:absolute;opacity:0;pointer-events:none}.availability-switch__track{position:relative;width:52px;height:30px;border-radius:999px;background:linear-gradient(135deg,#b63737,#df5c5c);box-shadow:inset 0 0 0 1px #ffffff2e;transition:background .14s ease}.availability-switch__thumb{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0000002e;transition:transform .14s ease}.availability-switch__label{color:#18324f;font-size:13px;font-weight:700}.availability-switch input:checked+.availability-switch__track{background:linear-gradient(135deg,#2a955b,#38b56f)}.availability-switch input:checked+.availability-switch__track .availability-switch__thumb{transform:translate(22px)}.availability-switch--summary{width:100%;justify-content:flex-start;margin-top:14px;margin-bottom:16px;padding:12px 14px}.availability-preset-panel,.availability-list-card,.availability-edit-modal{background:#ffffffe0;border:1px solid rgba(19,41,67,.08);border-radius:20px;box-shadow:0 16px 32px #13294314}.availability-preset-panel{padding:18px}.availability-preset-options{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;margin-bottom:16px}.availability-panel-head h4,.availability-list-head h4{margin:0;color:#16314e;font-size:18px}.availability-panel-head p{margin:6px 0 0;color:#627487;font-size:13px}.availability-range-grid,.availability-preset-times,.availability-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.availability-range-grid{margin-top:16px;max-width:660px}.availability-range-grid label,.availability-preset-times label,.availability-edit-grid label{display:flex;flex-direction:column;gap:6px;color:#42566d;font-size:13px;font-weight:700}.availability-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.availability-preset-grid .availability-preset-card:last-child{grid-column:1 / -1}.availability-preset-card{padding:16px;border-radius:18px;background:linear-gradient(180deg,#f8fbfe,#eef4f9);border:1px solid rgba(19,41,67,.08);display:flex;flex-direction:column;gap:12px}.availability-preset-title strong{color:#16314e;font-size:16px}.availability-preset-card input,.availability-edit-grid input,.availability-range-grid input{min-height:46px;padding:0 14px;border-radius:14px;border:1px solid #d4dde7;background:linear-gradient(180deg,#fff,#f7fafd);color:#18324f;font-size:15px}.availability-preset-card input:focus,.availability-edit-grid input:focus,.availability-range-grid input:focus{outline:none;border-color:#7ea9d3;box-shadow:0 0 0 4px #285f961f}.availability-edit-optional{transition:opacity .14s ease}.availability-edit-optional.is-disabled{opacity:.5}.availability-edit-optional input:disabled{cursor:not-allowed;background:linear-gradient(180deg,#f3f6f9,#eef3f7);color:#7a8998}.availability-calendar-shell{margin-top:18px;padding:14px;border-radius:22px;background:#ffffffe6;border:1px solid rgba(19,41,67,.08);box-shadow:inset 0 1px #ffffffe6;position:relative;z-index:1}.availability-calendar-topbar{display:flex;justify-content:flex-start;align-items:center;gap:16px;flex-wrap:nowrap;margin-bottom:12px}.availability-calendar-topbar-main{display:flex;align-items:center;gap:18px;flex-wrap:nowrap;flex:0 1 auto}.availability-calendar-actions{display:flex;justify-content:flex-start;margin-top:0}.availability-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.availability-actions .availability-btn{min-width:112px;height:36px;padding:0 10px;font-size:12px}.availability-toolbar{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}.availability-calendar-actions--top{margin-top:0;margin-bottom:0;align-self:stretch}.availability-apply-btn{min-width:188px;min-height:46px;border-radius:16px;background:linear-gradient(135deg,#2a955b,#38b56f);color:#fff;box-shadow:0 12px 24px #2a955b2e}.availability-mode-switch--compact{gap:8px;padding:0;background:transparent}.availability-mode-switch--compact button{min-width:136px;min-height:46px;border-radius:16px;background:#13294314;color:#42566d;box-shadow:none}.availability-calendar-shell .fc .fc-toolbar{gap:12px;align-items:center;flex-wrap:wrap}.availability-calendar-shell .fc .fc-toolbar-title{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap}.availability-calendar-shell .fc .fc-toolbar-title:after{content:'Hier kannst du Deine Verfügbarkeiten "zeichnen"';color:#5f738a;font-size:17px;font-weight:600;line-height:1.25}.availability-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.availability-list-card{padding:18px}.availability-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.availability-list-head span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 10px;border-radius:999px;background:#dce9f6;color:#17395f;font-size:13px;font-weight:700}.availability-list-body{display:flex;flex-direction:column;gap:10px}.availability-entry{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;padding:10px 12px;border-radius:16px;background:linear-gradient(180deg,#f9fbfd,#f0f5fa);border:1px solid rgba(19,41,67,.08);min-height:118px}.availability-entry>div:first-child{min-width:0;width:100%}.availability-entry strong{display:block;color:#17395f;font-size:13px;line-height:1.2}.availability-entry span{display:block;margin-top:3px;color:#617487;font-size:12px;line-height:1.25}.availability-entry button{flex-shrink:0}.availability-entry-actions{display:flex;flex-direction:row;gap:6px;align-items:center;justify-content:space-between;flex:0 0 auto;width:100%;flex-wrap:nowrap;margin-top:auto}.availability-entry-actions button{min-width:0;flex:1 1 0;max-width:none;height:32px;padding:0 8px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:none;border-radius:12px}.availability-entry-actions button:first-child{background:linear-gradient(135deg,#2a955b,#38b56f);color:#fff}.availability-entry-actions button:last-child{background:linear-gradient(135deg,#b63737,#df5c5c);color:#fff}.availability-empty{margin:0;padding:16px;border-radius:16px;background:#1329430a;color:#6b7d8f;font-size:13px}.availability-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;justify-content:center;align-items:center}.availability-actions .availability-btn--save{order:1}.availability-actions .availability-btn:not(.availability-btn--save):not(.availability-btn--danger){order:2;background:linear-gradient(135deg,#17395f,#285f96);box-shadow:0 12px 24px #17395f2e}.availability-actions .availability-btn--danger{order:3}.availability-summary-modal{width:min(720px,94vw)}.availability-free-modal{width:min(420px,94vw)}.availability-free-days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.availability-day-chip{appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;min-height:44px;border:1px solid rgba(19,41,67,.12);border-radius:14px;background:linear-gradient(180deg,#fff,#f7fafd);color:#18324f;font-weight:700;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.availability-day-chip:hover{transform:translateY(-1px);box-shadow:0 8px 18px #13294314}.availability-day-chip:active,.availability-day-chip:focus{outline:none}.availability-day-chip:not(.is-active):active{background:linear-gradient(180deg,#fff,#f7fafd);color:#18324f}.availability-day-chip.is-active{background:linear-gradient(135deg,#2a955b,#38b56f);color:#fff;border-color:#2a955b3d;box-shadow:0 12px 24px #2a955b2e}.availability-day-chip.is-active:active{background:linear-gradient(135deg,#2a955b,#38b56f);color:#fff}.availability-day-chip:focus-visible{outline:2px solid rgba(42,149,91,.28);outline-offset:2px}.availability-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.availability-summary-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:16px;background:linear-gradient(180deg,#f9fbfd,#eef4f9);border:1px solid rgba(19,41,67,.08)}.availability-summary-card strong{color:#17395f;font-size:14px}.availability-summary-card span{color:#627487;font-size:13px}.availability-summary-lists{display:grid;grid-template-columns:1fr;gap:14px;margin-top:16px}.availability-summary-list .availability-entry{align-items:flex-start}.availability-summary-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:10px}.availability-summary-list h4{grid-column:1 / -1;margin:0;color:#16314e;font-size:16px}.availability-summary-list .availability-empty{grid-column:1 / -1}.availability-btn{min-width:180px;min-height:46px;border-radius:16px;color:#fff}.availability-btn--save{background:linear-gradient(135deg,#2a955b,#38b56f);box-shadow:0 12px 24px #2a955b2e}.availability-btn--danger{background:linear-gradient(135deg,#b63737,#df5c5c);box-shadow:0 12px 24px #b6373738}.availability-edit-modal{width:min(460px,94vw);padding:20px}@media(max-width:700px){.popup{width:95%;max-height:90vh;overflow-y:auto}}@media(max-width:768px){.popup,.event-popup{position:fixed;inset:3% 4%;width:auto;height:auto;max-height:94vh;overflow-y:auto;border-radius:24px;z-index:5000}.event-popup{padding:18px;gap:8px}.event-popup-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.event-popup-form-grid__student,.event-popup-form-grid__wide{grid-column:1 / -1}.event-popup-form-grid__half{grid-column:span 3}.event-popup-form-grid__date,.event-popup-form-grid__time{grid-column:span 1}.event-popup-preparation__row{grid-template-columns:minmax(0,1fr) 84px auto;gap:8px}.event-popup-preparation__unit{font-size:12px}.event-popup h3{font-size:22px}.native-date-input,.native-time-picker input{min-height:56px;font-size:17px;border-radius:18px}.popup-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.popup-buttons--editor-main{grid-template-columns:repeat(3,minmax(0,1fr))}.popup-buttons button{width:100%;min-height:48px}.event-popup-footer{flex-direction:column;align-items:stretch}.event-popup-footer__aside{justify-content:flex-end}.event-popup-footer__aside button{width:100%}.availability-editor{width:min(100vw - 12px,100%)!important;padding:16px;border-radius:22px}.availability-header h3,.availability-edit-modal h3{font-size:22px}.availability-header{align-items:stretch;flex-direction:column}.availability-back-btn{width:100%;min-height:46px}.availability-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}.availability-toolbar>*{min-width:0}.availability-summary-trigger{grid-column:1 / -1;width:100%;min-height:46px}.availability-preset-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.availability-toggle{width:100%;min-height:54px;justify-content:center;display:flex;box-sizing:border-box;overflow:hidden;min-width:0;padding:0 14px;font-size:15px}.availability-toggle input{flex:0 0 22px;width:22px;height:22px}.availability-quick-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.availability-quick-date{width:100%;min-width:0;padding:0 10px;font-size:13px}.availability-lists,.availability-summary-grid,.availability-summary-lists,.availability-preset-times,.availability-edit-grid{grid-template-columns:1fr}.availability-current-day label{width:calc(50% - 12px);max-width:calc(50% - 12px);min-width:0}.availability-range-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.availability-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-calendar-actions{justify-content:stretch}.availability-apply-btn{width:100%;min-width:0}.availability-preset-grid>*{min-width:0}.availability-preset-card{min-width:0;padding:14px}.availability-preset-times{gap:10px}.availability-preset-times label{min-width:0}.availability-preset-card input,.availability-preset-times input,.availability-range-grid input{width:100%;min-width:0;padding:0 12px;font-size:14px;box-sizing:border-box}.availability-preset-card button{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.2;padding:12px 10px;box-sizing:border-box}.availability-calendar-topbar{justify-content:flex-start;align-items:stretch;gap:12px;flex-wrap:wrap}.availability-calendar-topbar-main{width:100%;justify-content:flex-start;flex-wrap:wrap}.availability-mode-switch--compact{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.availability-mode-switch--compact button,.availability-apply-btn{min-width:0;width:100%}.availability-calendar-shell .fc .fc-toolbar-title{gap:8px}.availability-calendar-shell .fc .fc-toolbar-title:after{width:100%;font-size:14px}.availability-calendar-shell{padding:10px}.availability-entry{align-items:flex-start;flex-direction:column}.availability-entry button,.availability-actions button{width:100%}.availability-free-days{grid-template-columns:repeat(3,minmax(0,1fr))}}.mobile-add,.mobile-students{color:#fff;border-radius:14px;padding:10px 16px;font-size:14px;width:80px}.mobile-add{background:#34495e}.mobile-students{background:#2c3e50}.floating-add{display:none}@media(max-width:768px){.floating-add{position:fixed;right:20px;bottom:92px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#d84b38,#ef7b54);color:#fff;font-size:34px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 28px #d84b3847;z-index:4000}}.calendar-notice{margin-bottom:10px;padding:10px 14px;border-radius:14px;font-size:14px;font-weight:600;border:1px solid transparent;box-shadow:0 8px 18px #13294314}.calendar-notice--info{background:#eef6ff;color:#21486f;border-color:#c7dcf1}.calendar-notice--success{background:#edf8ef;color:#245838;border-color:#c6e4ce}.calendar-notice--warn{background:#fff6e8;color:#7b5520;border-color:#f0d7a6}.calendar-notice--error{background:#fff0ef;color:#8a2f28;border-color:#efc2bd}.topbar-user{display:flex;flex-direction:column;justify-content:center;min-width:220px;max-width:320px;padding:8px 12px;border-radius:12px;background:#ffffffc7;border:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.topbar-user__eyebrow{font-size:11px;line-height:1.2;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.topbar-user__name{margin-top:2px;font-size:15px;line-height:1.3;font-weight:700;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-date-display__center{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;min-width:0;max-width:calc(100% - 180px);text-align:center;z-index:2;pointer-events:none;top:2px}.calendar-date-display__user{display:flex;flex-direction:column;align-items:center;margin-top:6px;min-width:0}.calendar-date-display__user-label{font-size:10px;font-weight:700;text-transform:uppercase;opacity:.7;line-height:1.1}.calendar-date-display__user-name{margin-top:8px;font-size:12px;font-weight:700;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;line-height:1.2}.calendar-date-display__row{position:relative}@media(min-width:769px){.calendar-date-display__user{display:none;margin-top:6px}}@media(max-width:768px){.topbar-user{display:none}.calendar-date-display__row{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px}.calendar-date-display__center{position:static;left:auto;top:auto;transform:none;width:100%;max-width:100%;z-index:auto;pointer-events:none}.calendar-date-display__label{width:100%;text-align:center}.calendar-date-display__user{margin-top:2px}.calendar-date-display__user-label{display:none}.calendar-date-display__user-name{margin-top:0;max-width:280px;font-size:13px;line-height:1.2}.calendar-date-display__user-name:before{content:"Angemeldet als ";font-size:11px;font-weight:700;text-transform:uppercase;opacity:.7;margin-right:4px}.calendar-date-display__nav,.calendar-date-display__controls{position:static;z-index:auto}}.event-error{background:#ffe5e5;color:#c0392b;padding:10px;border-radius:6px;margin:10px 0;font-weight:500;border:1px solid #e0b4b4}
