:root{--admin-sidebar-w:280px;--admin-topbar-h:56px}html,body,#root{height:100%;overflow:hidden;padding-bottom:0!important}.container{margin-top:0!important}.adminShell{background:var(--bg);height:100dvh;color:var(--text-strong);flex-direction:column;display:flex;overflow:hidden}.adminTopbar{flex:0 0 var(--admin-topbar-h);z-index:50;height:var(--admin-topbar-h);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg)92%,transparent);backdrop-filter:blur(10px);align-items:center;gap:12px;padding:0 14px;display:flex}.adminTopbarSpacer{flex:1;min-width:0}.adminBurger{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-strong);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.adminLogoutBtn{border:1px solid var(--border);background:var(--surface);height:40px;color:var(--text-strong);cursor:pointer;box-shadow:var(--shadow-2);border-radius:10px;justify-content:center;align-items:center;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex}.adminLogoutBtn:hover{background:color-mix(in srgb,var(--text-strong)6%,var(--surface))}.adminLogoutBtn:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);outline:none}.adminTitle{letter-spacing:.2px;font-size:16px;font-weight:700}.adminBody{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.adminSidebarBackdrop{z-index:60;background:#00000059;position:fixed;inset:0}.adminSidebar{height:100vh;width:min(var(--admin-sidebar-w),92vw);z-index:70;background:var(--bg);border-right:1px solid var(--border);box-sizing:border-box;flex-direction:column;padding:12px;transition:transform .22s;display:flex;position:fixed;top:0;left:0;transform:translate(-110%)}.adminSidebarOpen{transform:translate(0)}.adminBrand{justify-content:flex-end;align-items:center;gap:12px;padding:8px 6px 10px;display:flex}.adminBrandLeft{flex-direction:column;line-height:1.1;display:flex}.adminBrandName{font-size:16px;font-weight:800}.adminBrandSub{color:var(--text-muted);font-size:12px}.adminNav{flex-direction:column;gap:6px;min-height:0;padding-right:4px;display:flex;overflow:auto}.adminNavItem{color:var(--text-muted);border:none;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.adminNavItem:hover{background:color-mix(in srgb,var(--text-strong)6%,transparent)}.adminNavItemActive{background:color-mix(in srgb,var(--text-strong)6%,transparent);color:var(--text-strong)}.adminNavIcon{width:22px;height:22px;color:inherit;background:0 0;border-radius:0;justify-content:center;align-items:center;display:inline-flex}.adminNavIconGlyph{background-color:currentColor;width:20px;height:20px;display:inline-block}.adminNavLabel{font-size:14px;font-weight:650}.adminNavBadge{background:var(--error);min-width:18px;height:18px;color:var(--surface);text-align:center;border-radius:999px;margin-left:auto;padding:0 6px;font-size:12px;font-weight:800;line-height:18px}.adminNavItem:focus-visible{background:color-mix(in srgb,var(--text-strong)6%,transparent);outline:none}.adminContent{box-sizing:border-box;flex:1;width:100%;min-height:0;overflow:auto}.adminContentInner{padding:var(--admin-page-pad,16px);padding-bottom:calc(var(--admin-page-pad,16px) + env(safe-area-inset-bottom));box-sizing:border-box;width:100%;max-width:1120px;min-height:100%;margin:0 auto}@media (width>=980px){.adminBody{flex-direction:row}.adminSidebarBackdrop{display:none}.adminSidebar{height:auto;width:var(--admin-sidebar-w);flex:0 0 var(--admin-sidebar-w);z-index:10;position:relative;top:0;left:0;transform:none}.adminBurger{display:none}.adminContent{flex:1}.adminContentInner{padding:var(--admin-page-pad,16px);padding-bottom:calc(var(--admin-page-pad,16px) + env(safe-area-inset-bottom))}}:root{--admin-page-pad:16px}.adminPage{flex-direction:column;gap:16px;width:100%;min-width:0;max-width:1200px;margin:0 auto;padding:0;display:flex}.adminPageNarrow{width:100%;max-width:720px;margin:0 auto}.adminPageNarrowSm{width:100%;max-width:420px;margin:0 auto}.adminPageHeader{flex-direction:column;gap:6px;min-width:0;display:flex}.adminPageSubtitle{color:var(--text-muted);font-size:14px}.adminCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;min-width:0;padding:20px}.adminCardHeader{justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-bottom:12px;display:flex}.adminCardTitle{color:var(--text-strong);min-width:0;font-size:18px;font-weight:600}.adminMuted{color:var(--text-muted);font-size:14px}.adminEmpty{color:var(--text-muted);text-align:center;padding:12px 0}.adminLinkCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);color:var(--text);border-radius:12px;align-items:center;gap:12px;min-width:0;padding:14px 16px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.adminLinkCard:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-2px)}.adminLinkCard:active{transform:translateY(0)}.adminLinkCard:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);border-color:var(--brand);outline:none}.adminToolbar{align-items:stretch;gap:8px;min-width:0;display:flex;position:relative}.adminSearchBox{background:var(--surface);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-2);border-radius:8px;flex:1;align-items:center;gap:8px;padding:8px 10px;transition:box-shadow .15s,border-color .15s;display:flex}.adminSearchBox:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2)}.adminSearchInput{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:15px;user-select:text!important}@media (width>=768px){.adminSearchBox{max-width:400px}}.adminIconBtn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;box-shadow:var(--shadow-2);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:transform .15s,background .15s,box-shadow .15s,border-color .15s;display:inline-flex}.adminIconBtn:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.adminIconBtn:active{transform:translateY(0)}.adminIconBtn:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);border-color:var(--brand);outline:none}.adminIconBtnDanger{background:var(--error);border-color:var(--error)}.adminIconBtnDanger:hover{background:var(--error-press);border-color:var(--error-press)}.adminIconBtnDanger img{filter:brightness(0)invert()}.adminPopover{background:var(--surface);border:1px solid var(--border);min-width:220px;max-width:min(340px,92vw);box-shadow:var(--shadow-2);z-index:40;transform-origin:100% 0;border-radius:12px;padding:8px;animation:.15s ease-out admin-popover-in;position:absolute;top:calc(100% + 6px);right:0}@keyframes admin-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.adminPopoverSection{border-bottom:1px solid var(--divider);padding:10px 6px}.adminPopoverSection:last-child{border-bottom:none}.adminPopoverSectionTitle{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 8px;font-size:11px;font-weight:700}.adminPopoverItem{cursor:pointer;user-select:none;color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;transition:background .15s;display:flex}.adminPopoverItem:hover{background:var(--surface-2)}.adminPopoverItemActive{background:var(--brand-quiet);color:var(--brand);font-weight:600}.adminPill{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.adminPillSuccess{border-color:var(--success);background:var(--success-soft);color:var(--success-text)}.adminPillDanger{border-color:var(--error);background:var(--error-soft);color:var(--error-text)}.adminInput{border:1px solid var(--border);background:var(--surface);color:var(--text);box-sizing:border-box;width:100%;box-shadow:var(--shadow-2);border-radius:8px;padding:8px 12px;font-size:15px;transition:box-shadow .15s,border-color .15s}.adminInput:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);outline:none}.adminField{flex-direction:column;gap:6px;min-width:0;display:flex}.adminFieldLabel{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.adminTimePickerOverlay{z-index:9999;background:#00000059;justify-content:center;align-items:center;padding:14px;display:flex;position:fixed;inset:0}.adminTimePickerPanel{background:var(--surface);border:1px solid var(--border);width:100%;max-width:360px;box-shadow:var(--shadow-2);transform-origin:50%;border-radius:14px;padding:12px}.adminTimePickerPanel.opening{animation:.16s ease-out admin-timepicker-in}.adminTimePickerPanel.closing{animation:.16s ease-in forwards admin-timepicker-out}@keyframes admin-timepicker-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes admin-timepicker-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}.adminBackTitleRow{align-items:center;gap:12px;min-width:0;display:inline-flex}.adminBackTitleBtn{cursor:pointer;opacity:.7;background:0 0;border:1px solid #0000;border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;transition:transform .15s,background .15s,border-color .15s,opacity .15s;display:inline-flex}.adminBackTitleBtn:hover{opacity:1;background:var(--surface-2);border-color:var(--border);transform:translateY(-1px)}.adminBackTitleBtn:active{transform:translateY(0)}.adminBackTitleBtn:focus-visible{opacity:1;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent);outline:none}.adminBackTitleIcon{opacity:.95;transform:rotate(90deg)}.adminBackTitleText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.adminLoginPage{padding-top:28px}.adminLoginCard{padding:20px}.adminLoginForm{flex-direction:column;gap:12px;display:flex}.adminLoginField{text-align:left;flex-direction:column;gap:6px;display:flex}.adminLoginLabel{color:var(--text-muted);letter-spacing:.2px;font-size:13px;font-weight:600}.adminLoginInput{border:1px solid var(--border);background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-2);border-radius:8px;padding:10px 12px;font-size:15px;transition:box-shadow .15s,border-color .15s;user-select:text!important}.adminLoginInput:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);outline:none}.adminLoginError{color:var(--error);white-space:pre-wrap;font-size:13px}.adminLoginSubmit{width:100%;display:block;margin:4px 0 0!important}.calendar-root{background:var(--surface);color:var(--text);font-family:var(--font-family-base);box-sizing:border-box;width:320px;box-shadow:var(--shadow-2);border-radius:8px;flex-direction:column;gap:12px;padding:16px;display:inline-flex}.calendar-header{color:var(--text);justify-content:space-between;align-items:center;display:flex}.calendar-title{flex-direction:column;align-items:center;gap:2px;display:flex}.calendar-month{text-transform:capitalize;color:var(--brand);font-size:20px;font-weight:600}.calendar-year{color:var(--text-muted);font-size:16px;font-weight:500}.calendar-nav-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;transition:transform .2s,background-color .2s;display:inline-flex}.calendar-arrow{width:18px;height:18px;color:var(--brand);transition:transform .2s}.calendar-arrow--prev{transform:rotate(-90deg)}.calendar-arrow--next{transform:rotate(90deg)}.calendar-nav-btn:hover,.calendar-nav-btn:focus-visible{background:var(--brand-quiet)}.calendar-nav-btn:active{transform:scale(.92)}.calendar-weekdays{text-transform:uppercase;color:var(--text-muted);grid-template-columns:repeat(7,36px);justify-content:center;gap:6px;font-size:11px;display:grid}.calendar-weekday{text-align:center;white-space:nowrap;font-weight:600}.calendar-grid-wrapper{position:relative;overflow:hidden}.calendar-grid{grid-template-columns:repeat(7,36px);justify-content:center;gap:6px;display:grid}.calendar-day{cursor:pointer;width:36px;height:36px;color:var(--text);-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:500;transition:background-color .2s,color .2s,transform .2s;display:inline-flex;position:relative}.calendar-day span{z-index:1;position:relative}.calendar-day:focus-visible,.calendar-day:hover{background:var(--brand-quiet)}.calendar-day:active{transform:scale(.94)}.calendar-day--muted{color:var(--text-muted)}.calendar-day--selected{background:var(--brand);color:var(--surface);box-shadow:var(--shadow-2)}[data-theme=dark] .calendar-day--selected{color:var(--text-strong)}.calendar-day--today:not(.calendar-day--selected){border:1px solid var(--brand)}.calendar-fade-enter{opacity:0;transform:scale(.96)}.calendar-fade-enter-active{opacity:1;transition:opacity .2s,transform .2s;transform:scale(1)}.calendar-fade-exit{opacity:1;transform:scale(1)}.calendar-fade-exit-active{opacity:0;transition:opacity .18s,transform .18s;transform:scale(.96)}.calendar-month-label-forward-enter{opacity:0;transform:translateY(-16px)}.calendar-month-label-forward-enter-active{opacity:1;transition:opacity .25s,transform .25s;transform:translateY(0)}.calendar-month-label-forward-exit{opacity:1;transform:translateY(0)}.calendar-month-label-forward-exit-active{opacity:0;transition:opacity .25s,transform .25s;transform:translateY(16px)}.calendar-month-label-backward-enter{opacity:0;transform:translateY(16px)}.calendar-month-label-backward-enter-active{opacity:1;transition:opacity .25s,transform .25s;transform:translateY(0)}.calendar-month-label-backward-exit{opacity:1;transform:translateY(0)}.calendar-month-label-backward-exit-active{opacity:0;transition:opacity .25s,transform .25s;transform:translateY(-16px)}.calendar-year-label-forward-enter{opacity:0;transform:translateY(-12px)}.calendar-year-label-forward-enter-active{opacity:1;transition:opacity .25s,transform .25s;transform:translateY(0)}.calendar-year-label-forward-exit{opacity:1;transform:translateY(0)}.calendar-year-label-forward-exit-active{opacity:0;transition:opacity .25s,transform .25s;transform:translateY(12px)}.calendar-year-label-backward-enter{opacity:0;transform:translateY(12px)}.calendar-year-label-backward-enter-active{opacity:1;transition:opacity .25s,transform .25s;transform:translateY(0)}.calendar-year-label-backward-exit{opacity:1;transform:translateY(0)}.calendar-year-label-backward-exit-active{opacity:0;transition:opacity .25s,transform .25s;transform:translateY(-12px)}.calendar-grid-forward-enter{opacity:0;transform:translateY(12px)}.calendar-grid-forward-enter-active{opacity:1;transition:opacity .25s,transform .25s;transform:translateY(0)}.calendar-grid-forward-exit{opacity:1;transform:translateY(0)}.calendar-grid-forward-exit-active{opacity:0;transition:opacity .25s,transform .25s;transform:translateY(-12px)}.calendar-grid-backward-enter{opacity:0;transform:translateY(-12px)}.calendar-grid-backward-enter-active{opacity:1;transition:opacity .25s,transform .25s;transform:translateY(0)}.calendar-grid-backward-exit{opacity:1;transform:translateY(0)}.calendar-grid-backward-exit-active{opacity:0;transition:opacity .25s,transform .25s;transform:translateY(12px)}.calendar-grid-forward-enter-active,.calendar-grid-backward-enter-active{z-index:2}@media (prefers-reduced-motion:reduce){.calendar-root,.calendar-grid,.calendar-month,.calendar-year,.calendar-day,.calendar-nav-btn,.calendar-weekdays{transition:none!important;animation:none!important}}@keyframes picker-opening{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes picker-closing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.adminAccessGrid{grid-template-columns:1fr 360px;align-items:start;gap:12px;display:grid}.adminAccessCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;min-width:0;padding:16px}.adminAccessRightCard{position:sticky;top:16px}.adminAccessCardHeader{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.adminAccessCardTitle{color:var(--text-strong);letter-spacing:.02em;text-transform:uppercase;font-size:14px;font-weight:700}.adminAccessMuted{color:var(--text-muted);font-size:13px}.adminAccessPill{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.adminAccessPillOn{border-color:color-mix(in srgb,var(--success)40%,var(--border));background:color-mix(in srgb,var(--success)12%,var(--surface));color:var(--success-press)}.adminAccessStatus{border:1px solid var(--divider);background:var(--surface);box-shadow:var(--shadow-2);border-radius:12px;margin-top:12px;padding:12px}.adminAccessStatusLine{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;display:flex}.adminAccessStatusLine:last-child{border-bottom:none}.adminAccessStatusLabel{color:var(--text-muted);flex:none;font-size:13px}.adminAccessStatusValue{color:var(--text);text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.adminAccessTextarea{resize:none;box-sizing:border-box;width:100%;height:110px;max-height:110px;font-family:Montserrat,Arial,sans-serif;overflow-y:auto}.adminAccessActions{gap:10px;margin-top:12px;display:grid}.adminAccessDivider{background:var(--divider);height:1px;margin:14px 0}.adminAccessAllowPreview{flex-wrap:wrap;gap:8px;min-height:30px;display:flex}.adminAccessChip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:6px 10px;font-size:13px;display:inline-flex;overflow:hidden}.adminAccessBlockedList{gap:10px;margin-top:12px;display:grid}.adminAccessBlockedListCompact{margin-top:0}.adminAccessBlockedCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;align-items:flex-start;gap:12px;min-width:0;padding:12px;display:flex}.adminAccessBlockedMain{flex:1;min-width:0}.adminAccessBlockedName{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:700;overflow:hidden}.adminAccessBlockedMeta{color:var(--text-muted);margin-left:6px;font-size:12px;font-weight:600}.adminAccessBlockedRow{justify-content:space-between;gap:8px;padding-top:6px;display:flex}.adminAccessBlockedLabel{color:var(--text-muted);flex:none;font-size:12px}.adminAccessBlockedValue{color:var(--text);text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:240px;font-size:12px;overflow:hidden}.adminAccessIconBtn{border:1px solid var(--border);background:var(--surface);width:42px;height:42px;box-shadow:var(--shadow-2);cursor:pointer;border-radius:10px;flex:0 0 42px;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s,border-color .15s;display:inline-flex}.adminAccessIconBtn:hover{box-shadow:var(--shadow-3);border-color:var(--brand-quiet);transform:translateY(-1px)}.adminAccessIconBtn:disabled{opacity:.55;cursor:default;transform:none}.adminAccessAllowModal{text-align:left}.adminAccessSearchBox{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);border-radius:8px;align-items:center;min-width:0;margin-bottom:12px;padding:8px 12px;transition:box-shadow .2s,border-color .2s;display:flex}.adminAccessSearchBox:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2)}.adminAccessSearchInput{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:15px}.adminAccessAllowList{gap:10px;max-height:420px;display:grid;overflow:auto}.adminAccessAllowRow{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex}.adminAccessAllowRowMain{flex:1;min-width:0}.adminAccessAllowName{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:700;overflow:hidden}.adminAccessAllowMeta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.adminAccessTinyBtn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-2);border-radius:10px;flex:none;padding:8px 10px;font-weight:700;transition:transform .15s,box-shadow .15s,border-color .15s}.adminAccessTinyBtn:hover{box-shadow:var(--shadow-3);border-color:var(--brand-quiet);transform:translateY(-1px)}.adminAccessTinyBtn:disabled{opacity:.55;cursor:default;transform:none}.adminAccessTinyBtnOn{border-color:color-mix(in srgb,var(--success)40%,var(--border));color:var(--success-press)}.adminAccessBackBtn{color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 0 12px;font-weight:700;display:none}.adminAccessBackIcon{opacity:.8;width:20px;height:20px;transform:rotate(90deg)}@media (width<=480px){.adminAccessGrid{grid-template-columns:1fr}.adminAccessRightCard{position:static}.adminAccessBackBtn{display:inline-flex}.adminAccessBlockedValue{max-width:160px}}.adminAuditPage{min-width:0}.adminAuditStack{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;min-width:0;margin-top:16px;display:grid}@media (width<=480px){.adminAuditStack{grid-template-columns:1fr}}.adminAuditCardBtn{text-align:left;width:100%;font:inherit;cursor:pointer}.adminAuditCardMain{flex-direction:column;gap:4px;min-width:0;display:flex}.adminAuditCardTitle{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.adminAuditCardMeta{color:var(--text-muted)}.adminAuditLogCard{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);border-radius:12px;min-width:0;padding:14px 16px;transition:transform .15s,box-shadow .15s,border-color .15s}.adminAuditLogCardClickable{cursor:pointer}.adminAuditLogCardClickable:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-2px)}.adminAuditLogCardClickable:active{transform:translateY(0)}.adminAuditLogCardClickable:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);border-color:var(--brand);outline:none}.adminAuditLogTitle{color:var(--text-strong);font-weight:500}.adminAuditLogMeta{color:var(--text-muted);margin-top:4px}.adminAuditDetails{background:var(--surface-2);border:1px solid var(--divider);color:var(--text-muted);font-size:var(--font-size-small);white-space:pre-wrap;border-radius:10px;margin-top:10px;padding:10px 12px;line-height:1.5}.adminAuditPager{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.adminAuditPagerBtn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-2);border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600}.adminAuditPagerBtn.active,.adminAuditPagerBtn:disabled{background:var(--surface-2);color:var(--text-muted);cursor:default}.adminAuditDetailPage{min-width:0;max-width:1000px;margin:0 auto}.adminAuditDetailStack{flex-direction:column;gap:12px;min-width:0;margin-top:16px;display:flex}.adminAuditDetailCard{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);border-radius:12px;min-width:0;padding:14px 16px}.adminAuditDetailCardClickable{cursor:pointer}.adminAuditDetailTitle{color:var(--text-strong);font-weight:500}.adminAuditDetailMeta{color:var(--text-muted);margin-top:4px}.adminAuditDetailDetails{background:var(--surface-2);border:1px solid var(--divider);color:var(--text-muted);font-size:var(--font-size-small);white-space:pre-wrap;border-radius:10px;margin-top:10px;padding:10px 12px;line-height:1.5}.adminAuditDetailPager{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.adminAuditDetailPagerBtn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-2);border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600}.adminAuditDetailPagerBtn.active,.adminAuditDetailPagerBtn:disabled{background:var(--surface-2);color:var(--text-muted);cursor:default}.adminBannerListPage{min-width:0}.adminBannerListActions{justify-content:flex-start;margin-bottom:16px;display:flex}.adminBannerListGrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}@media (width<=480px){.adminBannerListGrid{grid-template-columns:1fr}}.adminBannerListSkeleton{margin-top:4px}.adminBannerCard{padding:16px;transition:transform .15s,box-shadow .15s,border-color .15s}.adminBannerCard:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-2px)}.adminBannerCard:active{transform:translateY(0)}.adminBannerRow{align-items:stretch;gap:16px;min-width:0;display:flex}.adminBannerMain{flex-direction:column;flex:1;min-width:0;display:flex}.adminBannerTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-bottom:8px;overflow:hidden}.adminBannerStatus{margin-bottom:12px}.adminBannerActions{align-items:center;gap:8px;margin-top:auto;display:flex}.adminBannerThumb{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex:none;justify-content:center;align-items:center;width:120px;height:75px;display:flex;overflow:hidden}.adminBannerThumb img{object-fit:cover;width:100%;height:100%}.adminBannerThumbPlaceholder{color:color-mix(in srgb,var(--text-muted)55%,transparent);justify-content:center;align-items:center;display:flex}@media (width<=480px){.adminBannerRow{flex-direction:column-reverse;align-items:stretch}.adminBannerThumb{width:100%;height:160px}}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative;overflow:hidden}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translateZ(0);box-shadow:0 0 0 9999em #00000080}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}.ReactCrop__crop-selection:focus{border-style:solid;border-color:#00f;outline:none}.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{position:absolute}.ReactCrop__drag-handle:after{content:"";background-color:#0003;border:1px solid #ffffffb3;outline:1px solid #0000;width:10px;height:10px;display:block;position:absolute}.ReactCrop__drag-handle:focus:after{background:#2dbfff;border-color:#00f}.ReactCrop .ord-nw{cursor:nw-resize;margin-top:-5px;margin-left:-5px;top:0;left:0}.ReactCrop .ord-nw:after{top:0;left:0}.ReactCrop .ord-n{cursor:n-resize;margin-top:-5px;margin-left:-5px;top:0;left:50%}.ReactCrop .ord-n:after{top:0}.ReactCrop .ord-ne{cursor:ne-resize;margin-top:-5px;margin-right:-5px;top:0;right:0}.ReactCrop .ord-ne:after{top:0;right:0}.ReactCrop .ord-e{cursor:e-resize;margin-top:-5px;margin-right:-5px;top:50%;right:0}.ReactCrop .ord-e:after{right:0}.ReactCrop .ord-se{cursor:se-resize;margin-bottom:-5px;margin-right:-5px;bottom:0;right:0}.ReactCrop .ord-se:after{bottom:0;right:0}.ReactCrop .ord-s{cursor:s-resize;margin-bottom:-5px;margin-left:-5px;bottom:0;left:50%}.ReactCrop .ord-s:after{bottom:0}.ReactCrop .ord-sw{cursor:sw-resize;margin-bottom:-5px;margin-left:-5px;bottom:0;left:0}.ReactCrop .ord-sw:after{bottom:0;left:0}.ReactCrop .ord-w{cursor:w-resize;margin-top:-5px;margin-left:-5px;top:50%;left:0}.ReactCrop .ord-w:after{left:0}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:6px;margin-top:-3px;top:0;left:0}.ReactCrop__drag-bar.ord-e{width:6px;height:100%;margin-right:-3px;top:0;right:0}.ReactCrop__drag-bar.ord-s{width:100%;height:6px;margin-bottom:-3px;bottom:0;left:0}.ReactCrop__drag-bar.ord-w{width:6px;height:100%;margin-left:-3px;top:0;left:0}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:24px;height:24px}}.adminBannerEditorPage{min-width:0;max-width:900px;margin:0 auto}.adminBannerEditorPage .dropdown-label{margin-bottom:6px;display:block}.adminBannerEditorPage .dropdown-input,.adminBannerEditorPage .dropdown-textarea{box-sizing:border-box;width:100%}@media (width>=768px){.adminBannerEditorPage .dropdown-input:not([type=checkbox]){max-width:480px}}.adminBannerStatsPage{min-width:0}.adminBannerStatsStack{flex-direction:column;gap:24px;min-width:0;display:flex}.adminBannerStatsFooter{margin-top:6px}.adminFeedbackListPage,.adminFeedbackToolbar{min-width:0}.adminFeedbackGrid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;margin-top:16px;display:grid}@media (width<=480px){.adminFeedbackGrid{grid-template-columns:1fr}}.adminFeedbackCard{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);border-radius:12px;padding:14px 16px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:block;position:relative}.adminFeedbackCard:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-2px)}.adminFeedbackCard:active{transform:translateY(0)}.adminFeedbackCard:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);border-color:var(--brand);outline:none}.adminFeedbackUnread{background:var(--error);min-width:18px;height:18px;color:var(--surface);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 4px;font-size:12px;line-height:18px;position:absolute;top:12px;right:12px}.adminFeedbackMeta{color:var(--text-muted);margin-bottom:6px;font-size:13px}.adminFeedbackRow{justify-content:space-between;align-items:center;gap:10px;min-width:0;margin-bottom:8px;display:flex}.adminFeedbackTitle{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-bottom:6px;overflow:hidden}.adminFeedbackPreview{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.adminFeedbackCategory{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.adminFeedbackThreadLoading{justify-content:center;display:flex}.adminFeedbackThreadPage{min-width:0;min-height:60vh}.adminFeedbackThreadCreatedInfo{color:var(--text-muted);padding:8px 0 0;font-size:14px;font-weight:500;line-height:1.35}.adminFeedbackThreadUserCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;margin-top:12px;padding:12px}.adminFeedbackThreadUserCardTitle{color:var(--text-strong);margin-bottom:6px;font-size:14px;font-weight:700}.adminFeedbackThreadUserRow{gap:8px;font-size:13px;line-height:1.35;display:flex}.adminFeedbackThreadUserKey{color:var(--text-muted);flex:none;min-width:140px}.adminFeedbackThreadUserVal{color:var(--text-strong);text-overflow:ellipsis;min-width:0;overflow:hidden}.adminFeedbackThreadList{flex-direction:column;flex:auto;min-height:220px;padding:8px 0;display:flex;overflow-y:auto}.adminFeedbackThreadClosedCard{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-1);border-radius:12px;align-items:center;gap:8px;margin:16px 0 0;padding:12px;display:flex}.adminFeedbackThreadClosedText{color:var(--text-strong);font-size:14px;line-height:1.4}.adminFeedbackThreadClosedMeta{color:var(--text-muted);margin-top:4px;font-size:13px}.adminFeedbackThreadComposerSpacer{height:104px}.adminFeedbackThreadComposer{left:0;right:0;bottom:env(safe-area-inset-bottom);z-index:80;pointer-events:none;box-sizing:border-box;padding:12px 16px;position:fixed}.adminFeedbackThreadInputRow{pointer-events:auto;border:1px solid var(--border);background:var(--surface);max-width:1120px;box-shadow:var(--shadow-2);border-radius:12px;align-items:center;margin:0 auto;padding:8px 10px;display:flex;position:relative}.adminFeedbackThreadPlusBtn{cursor:pointer;background:0 0;border:none;align-items:center;margin-right:8px;padding:0;display:inline-flex}.adminFeedbackThreadTextarea{resize:none;font-family:var(--font-family-base);max-height:60px;color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:15px;line-height:20px;overflow-y:auto}.adminFeedbackThreadSendBtn{cursor:pointer;background:0 0;border:none;align-items:center;margin-left:8px;padding:0;display:inline-flex}.adminFeedbackThreadSendBtn:disabled{opacity:.4;cursor:default}.adminFeedbackThreadMenu{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);z-index:90;border-radius:12px;min-width:220px;padding:0;position:absolute;bottom:calc(100% + 10px);left:12px}@media (width>=980px){.adminFeedbackThreadComposer{left:var(--admin-sidebar-w)}}.af-menu-enter{opacity:0;transform:scale(.95)}.af-menu-enter-active{opacity:1;transition:opacity .25s ease-out,transform .25s ease-out;transform:scale(1)}.af-menu-exit{opacity:1;transform:scale(1)}.af-menu-exit-active{opacity:0;transition:opacity .2s ease-in,transform .2s ease-in;transform:scale(.95)}@keyframes adminFeedbackSlideFade{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.af-item{opacity:0;animation:.22s ease-out forwards adminFeedbackSlideFade}.adminAnnouncementPage{min-width:0;max-width:900px}.adminAnnouncementCard{padding:16px}.adminAnnouncementToolbar{margin-bottom:8px}.adminAnnouncementEditor{background:var(--surface);border:1px solid var(--border);min-height:140px;box-shadow:var(--shadow-2);color:var(--text);border-radius:8px;outline:none;margin-bottom:16px;padding:12px;font-size:16px;transition:box-shadow .2s,border-color .2s}.adminAnnouncementEditor:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2)}.adminAnnouncementIdContainer{background:var(--surface);box-shadow:var(--shadow-2);border-radius:8px;padding:8px}.adminAnnouncementIdInput{min-width:120px;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:4px;font-size:15px}.adminAnnouncementLinksList{flex-direction:column;gap:8px;margin-top:12px;display:flex}.adminAnnouncementLinkRow{text-align:left;border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:var(--shadow-1);cursor:pointer;font:inherit;border-radius:12px;padding:12px}.adminAnnouncementLinkRow:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.adminAnnouncementAddLink{border:1px dashed var(--border);background:var(--surface);width:100%;box-shadow:var(--shadow-1);cursor:pointer;color:var(--brand);border-radius:12px;padding:12px;font-weight:700}.adminAnnouncementLinkModal{text-align:left}.adminAnnouncementLinkModalActions{justify-content:flex-end;gap:12px;display:flex}.adminUserDetailPage{max-width:1200px;margin:0 auto;padding:16px}.adminUserDetailHeader{margin-bottom:24px}.adminUserDetailGrid{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}@media (width<=768px){.adminUserDetailGrid{grid-template-columns:1fr}}.adminDetailCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;margin-bottom:24px;padding:20px}.adminDetailCardTitle{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:16px;font-size:18px;font-weight:600;display:flex}.adminDetailRow{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:12px 0;display:flex}.adminDetailRow:last-child{border-bottom:none}.adminDetailLabel{color:var(--text-muted);flex-shrink:0;width:100px;font-size:14px}.adminDetailValue{text-align:right;word-break:break-word;flex:1;font-weight:500}@media (width<=480px){.adminDetailRow{flex-direction:column;align-items:stretch;gap:8px}.adminDetailLabel{text-align:left;text-transform:uppercase;letter-spacing:.5px;width:auto;margin-bottom:4px;font-size:13px;font-weight:600}.adminDetailValue{text-align:left}}.adminDetailInput{border:1px solid var(--border);background:var(--surface);color:var(--text);box-sizing:border-box;width:100%;box-shadow:var(--shadow-2);border-radius:8px;padding:8px 12px;font-size:15px;transition:all .2s}.adminDetailInput:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);outline:none}.adminBlockForm{background:var(--surface-2);border-radius:8px;flex-direction:column;gap:12px;margin-top:12px;padding:16px;display:flex}.adminBlockActions{justify-content:flex-end;gap:8px;display:flex}.adminProfilesGrid{flex-wrap:wrap;gap:10px;display:flex}.adminProfilesGrid.cursor-pointer{cursor:pointer;transition:opacity .2s}.adminProfilesGrid.cursor-pointer:hover{opacity:.8}.adminProfileTag{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500}.adminProfileTagEmpty{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-style:dashed;border-radius:8px;padding:6px 12px;font-size:13px}.adminProfileModalContent{border-bottom:1px solid var(--divider);margin-bottom:4px;padding-bottom:12px}.adminProfileModalTitle{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);opacity:.8;text-align:left;margin:0 0 8px 8px;font-size:11px;font-weight:700}.adminProfileOption{cursor:pointer;user-select:none;color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;transition:background .15s;display:flex}.adminProfileOption:hover{background:var(--surface-2)}.adminProfileOption input[type=checkbox]{appearance:none;border:2px solid var(--text-muted);background:0 0;border-radius:4px;flex-shrink:0;width:18px;height:18px;margin:0;transition:all .2s;position:relative}.adminProfileOption input[type=checkbox]:checked{border-color:var(--brand);background:var(--brand)}.adminProfileOption input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:9px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.adminProfileOption input:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--brand)}.adminSessionItem{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.adminSessionInfo{flex-direction:column;gap:4px;display:flex}.adminSessionDevice{font-size:14px;font-weight:600}.adminSessionMeta{color:var(--text-muted);font-size:12px}.adminSessionActions{align-items:center;gap:12px;display:flex}.adminSessionStatus{border-radius:4px;padding:2px 6px;font-size:12px}.adminSessionStatus.active{background:color-mix(in srgb,var(--success)20%,transparent);color:var(--success)}.adminSessionStatus.revoked{background:color-mix(in srgb,var(--danger)20%,transparent);color:var(--danger)}.adminIconBtn{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:background .2s;display:flex}.adminIconBtn:hover{background:#0000000d}.adminIconBtn.danger img{filter:brightness(.8)}.adminIconBtn.danger:hover{background:color-mix(in srgb,var(--danger)10%,transparent)}.adminDangerZone{border:1px solid color-mix(in srgb,var(--danger)30%,transparent);background:color-mix(in srgb,var(--danger)5%,transparent)}.adminDangerTitle{color:var(--danger)}.adminActionsList{flex-direction:column;gap:12px;display:flex}.adminActionRow{justify-content:space-between;align-items:center;gap:16px;display:flex}.adminActionLabel{font-size:14px}@media (width<=480px){.adminActionRow{flex-direction:column;align-items:stretch;gap:8px}.adminActionLabel{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;font-size:13px;font-weight:600}}.adminUserStatsPage{max-width:1200px;margin:0 auto;padding:16px}.adminUserStatsHeader{margin-bottom:24px}.adminStatsTopBar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.adminStatsTopBarSlider{flex:1;min-width:260px;max-width:520px}.adminStatsNav{flex:none;align-items:center;gap:8px;display:flex}.adminStatsNavBtn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:18px;font-weight:600;transition:background .15s,color .15s,border-color .15s,opacity .15s;display:flex}.adminStatsNavBtn:disabled{opacity:.5;cursor:not-allowed}@media (hover:hover) and (pointer:fine){.adminStatsNavBtn:not(:disabled):hover{background:var(--brand);color:#fff;border-color:var(--brand)}}.adminStatsNavLabel{color:var(--text);text-align:center;white-space:nowrap;min-width:150px;font-size:13px;font-weight:500}@media (width<=420px){.adminStatsTopBarSlider{min-width:100%;max-width:100%}.adminStatsNav{justify-content:space-between;width:100%}.adminStatsNavLabel{flex:1;min-width:0}}.adminStatsMetricsGrid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.adminStatsMetricCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;flex-direction:column;gap:8px;padding:20px;display:flex}.adminStatsMetricLabel{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);opacity:.8;font-size:12px;font-weight:700}.adminStatsMetricValue{color:var(--text-strong);font-size:24px;font-weight:600;line-height:1.2}.adminStatsMetricDesc{color:var(--text-muted);margin-top:4px;font-size:13px}.adminStatsChartsGrid{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=768px){.adminStatsChartsGrid{grid-template-columns:1fr 1fr}}.adminStatsChartCard{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;padding:20px}.adminStatsChartTitle{color:var(--text);margin-bottom:16px;font-size:16px;font-weight:600}.adminStatsChartWrap{-webkit-overflow-scrolling:touch;width:100%;position:relative;overflow-x:auto}@media (width<=480px){.adminUserStatsPage{padding:12px}.adminStatsMetricCard,.adminStatsChartCard{padding:16px}}.adminHolidaysPage{min-width:0}.adminHolidaysYearBtn{text-align:left}.adminClassListPage{min-width:0}.adminClassToolbar{flex-wrap:wrap;align-items:stretch;gap:8px;margin-bottom:16px;display:flex}.adminClassToolbar .adminSearchBox{flex:1;min-width:200px}@media (width>=768px){.adminClassToolbar .adminSearchBox{max-width:400px}}.adminClassToolbar{margin-top:12px}.adminClassGridWrap{margin-top:8px;overflow-x:auto}.adminClassGridTable{border-collapse:collapse;width:100%}.adminClassGridHead{text-align:center;color:var(--text-muted);padding:6px 8px;font-size:13px;font-weight:700}.adminClassGridNum{color:var(--text-strong);padding:6px 10px;font-size:13px;font-weight:700}.adminClassGridCell{text-align:center;padding:6px}.adminClassDot{border:2px solid var(--border);cursor:pointer;width:20px;height:20px;box-shadow:var(--shadow-2);background:0 0;border-radius:999px;transition:transform .12s,border-color .12s,background .12s}.adminClassDot.checked{background:var(--brand);border-color:var(--brand)}.adminClassDot:active{transform:scale(.92)}.adminClassDot:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--brand),var(--shadow-2);outline:none}.adminClassExtra{flex-wrap:wrap;gap:8px;display:flex}.adminClassChip{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:6px 10px;display:inline-flex}.adminClassChipText{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.adminClassChipX{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;width:22px;height:22px;color:var(--text-muted);border-radius:999px;padding:0;font-weight:800;line-height:18px}.adminClassChipX:hover{background:color-mix(in srgb,var(--error)10%,var(--surface-2));color:var(--error);border-color:color-mix(in srgb,var(--error)20%,var(--border))}.adminScheduleSuggestListPage{min-width:0}.adminScheduleSuggestGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}@media (width<=480px){.adminScheduleSuggestGrid{grid-template-columns:1fr}}.adminScheduleSuggestCard{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0}.adminScheduleSuggestCardMain{flex-direction:column;gap:4px;min-width:0;display:flex}.adminScheduleSuggestCardTitle{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.adminScheduleSuggestCardMeta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.adminScheduleSuggestCardAction{color:var(--brand);flex:none;font-weight:700}.adminScheduleSuggestFormPage{min-width:0;max-width:900px;margin:0 auto}.adminScheduleSuggestDiffCard{min-width:0}.adminScheduleSuggestLesson{border-top:1px solid var(--divider);align-items:flex-start;gap:12px;min-width:0;padding:10px 0;display:flex}.adminScheduleSuggestLesson:first-child{border-top:none;padding-top:0}.adminScheduleSuggestLessonTitle{text-align:right;width:34px;color:var(--text-strong);flex:none;font-weight:800}.adminScheduleSuggestChips{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.adminScheduleSuggestChip{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:6px 10px;font-size:13px;font-weight:600;display:inline-flex}.adminScheduleSuggestChip.del{border-color:color-mix(in srgb,var(--error)30%,var(--border));background:var(--error-soft);color:var(--error-text)}.adminScheduleSuggestChip.add{border-color:color-mix(in srgb,var(--success)30%,var(--border));background:var(--success-soft);color:var(--success-text)}.adminScheduleSuggestActions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}@media (width>=768px){.adminScheduleSuggestActions{max-width:600px}}.adminSchedulesOverviewPage{min-width:0}@media (width<=480px){.adminSchedulesGrid{grid-template-columns:1fr}}.adminSchedulesMeta{color:var(--text-muted);font-size:14px;line-height:1.4}.adminSchedulesOtherPage{min-width:0}.adminSchedulesGrid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;min-width:0;display:grid}@media (width<=480px){.adminSchedulesGrid{grid-template-columns:1fr}}.adminSchedulesCard{padding:16px}.adminSchedulesBody{flex-direction:column;gap:10px;min-width:0;display:flex}.adminSchedulesStatus{margin:0}.adminDayStatusPage{min-width:0}.adminDayStatusGrid{grid-template-columns:1fr;gap:12px;min-width:0;display:grid}@media (width>=900px){.adminDayStatusGrid{grid-template-columns:1fr 1fr}}.adminDayStatusCard{flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.adminDayStatusState{margin:0}.adminDayStatusControls{flex-direction:column;gap:14px;min-width:0;padding:16px;display:flex}.adminDayStatusToggleRow{align-items:center;gap:12px;min-width:0;display:flex}.adminDayStatusToggleText{min-width:0;margin:0}.adminDayStatusActions{justify-content:flex-start;display:flex}.adminDayStatusProgress{padding:16px}.adminDayStatusSpinnerOverlay{z-index:9999;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.adminTimeslotsHubPage{min-width:0}.adminTimeslotsHubGrid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;min-width:0;display:grid}@media (width<=480px){.adminTimeslotsHubGrid{grid-template-columns:1fr}}.adminTimeslotsHubCard{text-align:left;width:100%;font:inherit;cursor:pointer}.adminTimeslotsHubCardMain{flex-direction:column;gap:4px;min-width:0;display:flex}.adminTimeslotsHubTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-strong);overflow:hidden}.adminTimeslotsHubMeta{color:var(--text-muted)}.adminTimeslotsHubAction{color:var(--brand);flex:none;font-weight:700}.adminTimeScheduleEditPage{min-width:0}.adminTimeScheduleEditLayout{grid-template-columns:1fr;align-items:start;gap:12px;min-width:0;display:grid}@media (width>=980px){.adminTimeScheduleEditLayout{grid-template-columns:340px 1fr;gap:16px}}.adminTimeScheduleEditSidebar{padding:16px}@media (width>=980px){.adminTimeScheduleEditSidebar{top:calc(var(--admin-topbar-h,56px) + 12px);align-self:start;position:sticky}}.adminTimeScheduleEditMain{padding:16px}.adminTimeScheduleWarn{border:1px solid color-mix(in srgb,var(--error)28%,var(--border));background:color-mix(in srgb,var(--error-soft)65%,var(--surface));color:var(--error-text);border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:13px}.adminTimeScheduleLink{text-align:left;border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--brand);cursor:pointer;border-radius:10px;margin-top:12px;padding:10px 12px;font-weight:700;transition:background .15s,border-color .15s,transform .15s}.adminTimeScheduleLink:hover{background:color-mix(in srgb,var(--brand-quiet)55%,var(--surface-2));border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-1px)}.adminTimeScheduleLink:active{transform:translateY(0)}.adminTimeScheduleLink:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);outline:none}.adminTimeScheduleTable{border-collapse:separate;border-spacing:0 8px;width:100%}.adminTimeScheduleTable th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:0 10px;font-size:12px;font-weight:800}.adminTimeScheduleTable td{padding:0 10px}.adminTimeScheduleTable tbody tr td{vertical-align:middle}.adminTimeScheduleRow{align-items:center;gap:10px;min-width:0;display:flex}.adminTimeScheduleTime{border:1px solid var(--border);background:var(--surface-2);color:var(--text-strong);cursor:pointer;user-select:none;border-radius:10px;justify-content:center;align-items:center;min-width:88px;padding:8px 12px;font-weight:800;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s;display:inline-flex}.adminTimeScheduleTime:hover{border-color:color-mix(in srgb,var(--brand)20%,var(--border));box-shadow:var(--shadow-2);background:color-mix(in srgb,var(--brand-quiet)35%,var(--surface-2));transform:translateY(-1px)}.adminTimeScheduleTime:active{transform:translateY(0)}.adminTimeScheduleDash{color:var(--text-muted);font-weight:800}.adminTimeScheduleIconBtn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;box-shadow:var(--shadow-2);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;display:inline-flex}.adminTimeScheduleIconBtn:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.adminTimeScheduleIconBtn:active{transform:translateY(0)}.adminTimeScheduleIconBtn:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)20%,transparent),var(--shadow-2);outline:none}.adminTimeScheduleIconBtn.danger{background:var(--error);border-color:var(--error)}.adminTimeScheduleIconBtn.danger:hover{background:var(--error-press);border-color:var(--error-press)}.adminTimeScheduleIconBtn.danger .icon{filter:brightness(0)invert()}.adminTimeScheduleRowInvalid .adminTimeScheduleTime{border-color:color-mix(in srgb,var(--error)65%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--error)18%,transparent),var(--shadow-2)}.adminTimeScheduleFooter{border-top:1px solid var(--divider);justify-content:flex-end;margin-top:12px;padding-top:12px;display:flex}@media (width>=980px){.adminTimeScheduleFooter .button{min-width:240px;width:auto!important}}.adminTimeScheduleExceptsPage{min-width:0}.adminTimeScheduleExceptsLayout{grid-template-columns:1fr;align-items:start;gap:12px;min-width:0;display:grid}@media (width>=980px){.adminTimeScheduleExceptsLayout{grid-template-columns:360px 1fr;gap:16px}}.adminTimeScheduleExceptsSidebar{padding:16px}@media (width>=980px){.adminTimeScheduleExceptsSidebar{top:calc(var(--admin-topbar-h,56px) + 12px);align-self:start;position:sticky}}.adminTimeScheduleExceptsMain{padding:16px}.adminTimeScheduleExceptsHint{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);border-radius:10px;margin-top:10px;padding:10px 12px;font-size:13px}.adminTimeScheduleExceptsTable{border-collapse:separate;border-spacing:0 8px;width:100%}.adminTimeScheduleExceptsTable th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:0 10px;font-size:12px;font-weight:800}.adminTimeScheduleExceptsTable td{padding:0 10px}.adminTimeScheduleExceptsRow{align-items:center;gap:10px;min-width:0;display:flex}.adminTimeScheduleExceptsRowMain{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.adminTimeScheduleExceptsTime{border:1px solid var(--border);background:var(--surface-2);color:var(--text-strong);cursor:pointer;user-select:none;border-radius:10px;justify-content:center;align-items:center;min-width:88px;padding:8px 12px;font-weight:800;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s;display:inline-flex}.adminTimeScheduleExceptsTime:hover{border-color:color-mix(in srgb,var(--brand)20%,var(--border));box-shadow:var(--shadow-2);background:color-mix(in srgb,var(--brand-quiet)35%,var(--surface-2));transform:translateY(-1px)}.adminTimeScheduleExceptsTime:active{transform:translateY(0)}.adminTimeScheduleExceptsDash{color:var(--text-muted);font-weight:800}.adminTimeScheduleExceptsActions{flex:none;align-items:center;gap:8px;display:flex}.adminTimeScheduleExceptsFooter{border-top:1px solid var(--divider);flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:12px;display:flex}.adminClassScheduleEditPage{min-width:0}.adminClassScheduleEditLayout{grid-template-columns:1fr;align-items:start;gap:12px;min-width:0;display:grid}@media (width>=1024px){.adminClassScheduleEditLayout{grid-template-columns:360px 1fr;gap:16px}}.adminClassScheduleEditSidebar{min-width:0;padding:16px}@media (width>=1024px){.adminClassScheduleEditSidebar{top:calc(var(--admin-topbar-h,56px) + 12px);z-index:10;align-self:start;position:sticky}.adminClassScheduleEditMain{top:calc(var(--admin-topbar-h,56px) + 12px);max-height:calc(100vh - (var(--admin-topbar-h,56px) + 24px));z-index:1;align-self:start;position:sticky;overflow:auto}.adminClassScheduleEditPage.is-dragging .adminClassScheduleEditMain{overflow:visible}.adminClassScheduleEditMain .adminCardHeader{z-index:2;background:var(--bg);position:sticky;top:0}}.scheduleEditClassNav{align-items:center;gap:8px;display:inline-flex}.scheduleEditNavBtn{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;box-shadow:var(--shadow-1);cursor:pointer;color:var(--text-strong);border-radius:10px;font-size:18px;font-weight:800;line-height:1;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s}.scheduleEditNavBtn:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));box-shadow:var(--shadow-2);transform:translateY(-1px)}.scheduleEditNavBtn:active{transform:translateY(0)}.scheduleEditNavBtn:disabled{opacity:.4;cursor:not-allowed;box-shadow:var(--shadow-1);transform:none}.scheduleEditNavLabel{color:var(--text-muted);text-align:center;min-width:44px;font-weight:800}.adminClassScheduleEditSidebarControls{flex-direction:column;gap:12px;min-width:0;display:flex}.adminClassScheduleEditSidebarActions{gap:10px;display:flex}.adminClassScheduleEditSidebarActions .button{flex:1;margin:0}.adminClassScheduleEditSidebarSubjects{min-width:0;display:none}@media (width>=1024px){.adminClassScheduleEditSidebarSubjects{display:block}}.scheduleEditSidebarSearch{margin-bottom:10px}.scheduleEditSubjectsList{flex-direction:column;gap:6px;min-width:0;max-height:min(520px,100vh - 360px);padding-right:2px;display:flex;overflow-y:auto}.scheduleEditSubjectItem{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);cursor:grab;user-select:none;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:10px 12px;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;display:flex}.scheduleEditSubjectItem.custom{border-color:color-mix(in srgb,var(--brand)18%,var(--border));background:color-mix(in srgb,var(--brand-quiet)55%,var(--surface))}.scheduleEditSubjectItem:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-1px)}.scheduleEditSubjectItem:active{cursor:grabbing;transform:translateY(0)}.scheduleEditSubjectName{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.scheduleEditSubjectType{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.adminClassScheduleEditWarn{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);border-radius:12px;margin:0 0 12px;padding:10px 12px;font-size:13px}.adminClassScheduleEditWarn.danger{border-color:color-mix(in srgb,var(--error)28%,var(--border));background:color-mix(in srgb,var(--error-soft)65%,var(--surface));color:var(--error-text)}.scheduleEditTable{border-collapse:separate;border-spacing:0;width:100%;margin-bottom:16px}.scheduleEditTable thead th{background:var(--surface);border-bottom:1px solid var(--border);text-align:left;color:var(--text-strong);padding:12px 8px;font-size:14px;font-weight:600}.scheduleEditTable tbody td{border-bottom:1px solid var(--divider);vertical-align:top;padding:8px}.scheduleEditRowInvalid td{background:color-mix(in srgb,var(--error-soft)55%,transparent)}.scheduleEditAddCol{width:90px}@media (width>=1024px){th.scheduleEditAddCol,td.scheduleEditAddCol{display:none}}.scheduleEditAddBtn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;box-shadow:var(--shadow-2);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;display:inline-flex}.scheduleEditAddBtn:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-1px)}.scheduleEditAddBtn:active{transform:translateY(0)}.scheduleEditAddBtn:disabled{opacity:.4;cursor:not-allowed}.scheduleEditLessonDrop{box-sizing:border-box;flex-direction:column;gap:8px;width:100%;min-height:44px;padding:6px 0;display:flex}.scheduleEditLessonDrop.isDraggingOver{background:color-mix(in srgb,var(--brand-quiet)35%,transparent);border-radius:12px}.scheduleEditSubjectChip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.scheduleEditSubjectChip:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)18%,var(--border));transform:translateY(-1px)}.scheduleEditSubjectChip.dragging{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand)22%,var(--border));z-index:10000;transform:translateY(-1px)}.scheduleEditSubjectChip.invalid{border-color:color-mix(in srgb,var(--error)55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--error)18%,transparent),var(--shadow-2)}.scheduleEditSubjectText{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.scheduleEditSubjectTitle{color:var(--text-strong);font-weight:700}.scheduleEditNoteBtn{cursor:pointer;flex:none;align-items:center;display:inline-flex}.scheduleEditNotePill{background:var(--brand-quiet);color:var(--brand);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.scheduleEditNotePlus{background:var(--brand-quiet);width:22px;height:22px;color:var(--brand);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.scheduleEditNoteIcon{background-color:currentColor;flex:none;width:14px;height:14px}.scheduleEditChipActions{flex-direction:column;flex:none;gap:6px;display:flex}.scheduleEditIconBtn{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.scheduleEditIconBtn:hover{background:color-mix(in srgb,var(--brand-quiet)40%,var(--surface-2));border-color:color-mix(in srgb,var(--brand)18%,var(--border));box-shadow:var(--shadow-2);transform:translateY(-1px)}.scheduleEditIconBtn:active{transform:translateY(0)}.scheduleEditDeleteZone{border-left:1px dashed color-mix(in srgb,var(--error)35%,var(--border));background:linear-gradient(to left,color-mix(in srgb,var(--error-soft)70%,var(--surface))0%,#0000 100%);opacity:0;pointer-events:none;z-index:9999;border-radius:0;justify-content:center;align-items:center;width:110px;height:100vh;transition:opacity .2s,background .2s,border-color .2s;display:flex;position:fixed;top:0;right:0}.scheduleEditDeleteZone.visible{opacity:1;pointer-events:auto}.scheduleEditDeleteZone.active{background:linear-gradient(to left,color-mix(in srgb,var(--error)55%,var(--surface))0%,#0000 100%);border-left-style:solid;border-left-color:color-mix(in srgb,var(--error)70%,var(--border))}.scheduleEditDeleteInner{color:var(--error-text);align-items:center;gap:10px;font-weight:800;display:inline-flex}.scheduleEditDeleteZone.active .scheduleEditDeleteInner{color:var(--surface)}.scheduleEditTrashIcon{filter:invert(27%)sepia(51%)saturate(2878%)hue-rotate(346deg)brightness(104%)contrast(97%);transition:transform .1s}.scheduleEditDeleteZone.active .scheduleEditTrashIcon{animation:.15s ease-in-out infinite trashShake}@keyframes trashShake{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@media (prefers-reduced-motion:reduce){.scheduleEditDeleteZone.active .scheduleEditTrashIcon{animation:none}}
/*# sourceMappingURL=admin.b5b2d42e.css.map */
