:root{--sidebar:278px;--radius:20px}
html{scrollbar-gutter:stable}
body{font-family:Inter,"Segoe UI Variable","Segoe UI",ui-sans-serif,system-ui,-apple-system,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";letter-spacing:-.008em}
button,input,textarea,select{font-family:inherit}
.mainArea{padding-top:30px;padding-bottom:max(42px,env(safe-area-inset-bottom));}
.panel.active{animation:panelEnterV48 .32s cubic-bezier(.2,.8,.2,1) both}
.card{border-radius:22px;border-color:color-mix(in srgb,var(--border) 82%,transparent);box-shadow:0 12px 34px rgba(0,0,0,.11),inset 0 1px rgba(255,255,255,.025);transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s,box-shadow .22s}
.card:hover{transform:translateY(-1px);box-shadow:0 18px 44px rgba(0,0,0,.14),inset 0 1px rgba(255,255,255,.03)}
.button{position:relative;isolation:isolate;min-height:43px;border-radius:13px;font-weight:720;letter-spacing:-.01em;box-shadow:inset 0 1px rgba(255,255,255,.045);transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .2s,border-color .2s,filter .2s}
.button:before{position:absolute;z-index:-1;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.09),transparent 54%);content:"";pointer-events:none;opacity:.45}
.button:hover{filter:brightness(1.045);transform:translateY(-1.5px);box-shadow:0 10px 24px rgba(0,0,0,.15),inset 0 1px rgba(255,255,255,.08)}
.button:active{transform:translateY(0) scale(.985)}
.button.primary{box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 21%,transparent),inset 0 1px rgba(255,255,255,.17)}
.input,.textarea,.select{border-radius:13px;background:color-mix(in srgb,var(--card-2) 84%,var(--bg));}
.input:focus,.textarea:focus,.select:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent),0 5px 14px rgba(0,0,0,.08)}
.sidebar{width:var(--sidebar);padding:15px 12px 13px;background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--primary) 13%,transparent),transparent 40%),color-mix(in srgb,var(--card) 96%,transparent);border-right-color:color-mix(in srgb,var(--border) 78%,transparent);box-shadow:12px 0 38px rgba(0,0,0,.09);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sidebarBrand{margin:0 2px 12px;padding:12px 10px 13px;border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--card-2) 90%,var(--primary) 10%),color-mix(in srgb,var(--card) 97%,transparent));}
.sidebarBrand .brandText strong{font-size:12px;line-height:1.38;letter-spacing:-.02em}
.sidebarBrand .brandText span{font-size:9px;line-height:1.4}
.sidebarQuickTools{margin:0 3px 12px}
.sidebarToolButton{min-height:43px;border-radius:14px}
.sidebar .navList{display:flex;flex:1 1 auto;flex-direction:column;gap:5px;min-height:0;padding:2px 2px 5px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border-strong) 65%,transparent) transparent}
.sidebar .navList::-webkit-scrollbar{display:block;width:4px}
.sidebar .navList::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border-strong) 60%,transparent);border-radius:99px}
.sidebar .navList{-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;}
.sidebar .navButton{flex:0 0 auto;min-height:45px;padding:7px 10px;border-radius:14px;font-size:12px;letter-spacing:0}
.sidebar .navButton:hover{transform:translateX(1px)}
.sidebar .navButton.active{box-shadow:inset 0 1px rgba(255,255,255,.05),0 6px 18px color-mix(in srgb,var(--primary) 10%,transparent)}
.sidebar .navIcon{width:31px;height:31px;flex:0 0 31px;border-radius:11px}
.sidebar .navButton.active .navIcon{background:color-mix(in srgb,var(--primary) 16%,var(--card-2))}
.sidebarBottom{flex:0 0 auto;margin-top:8px;padding-top:10px}
.pointsSide{min-height:46px;border-radius:14px}
.sidebarProfile{min-height:46px}
.mobileHeader{padding-top:env(safe-area-inset-top);height:calc(var(--header) + env(safe-area-inset-top));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mobileBrand{max-width:min(260px,52vw);line-height:1.25}
.mobileBrand strong{font-size:13px;letter-spacing:-.025em}
.mobileBrand span{font-size:9px}
.hamburger{width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--card) 82%,var(--surface)));box-shadow:0 6px 18px rgba(0,0,0,.1),inset 0 1px rgba(255,255,255,.05);transition:transform .2s,background .2s,border-color .2s}
.hamburger:hover{transform:translateY(-1px);border-color:var(--border-strong)}
.mobileMenu{visibility:hidden;transition:visibility .28s}
.mobileMenu.open{visibility:visible}
.mobileMenuBackdrop{background:rgba(6,10,17,.52);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.mobileMenuPanel{left:0;right:auto;width:min(360px,88vw);max-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 14px calc(12px + env(safe-area-inset-bottom));border-left:0;border-right:1px solid var(--border);border-radius:0 24px 24px 0;box-shadow:22px 0 65px rgba(0,0,0,.3);overflow:hidden;transform:translateX(-105%);overscroll-behavior:contain;contain:layout paint;}
.mobileMenu.open .mobileMenuPanel{transform:translateX(0)}
.mobileMenuHead{flex:0 0 auto;padding:4px 4px 14px;border-bottom-color:color-mix(in srgb,var(--border) 75%,transparent)}
.mobileMenuHead strong{font-size:18px;letter-spacing:-.03em}
.mobileQuickTools{flex:0 0 auto;padding:2px 0 9px}
.mobileQuickTools .button{width:100%;justify-content:flex-start;min-height:45px;border-radius:14px}
.mobileNav{display:grid;flex:1 1 auto;align-content:start;gap:5px;min-height:0;margin:0 -3px;padding:3px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border-strong) 65%,transparent) transparent;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;}
.mobileNav button{position:relative;flex:0 0 auto;min-height:49px;padding:9px 11px;border:1px solid transparent;border-radius:14px;font-size:13px;font-weight:650;letter-spacing:-.01em;transition:background .18s,border-color .18s,transform .18s,color .18s}
.mobileNav button:hover{transform:translateX(1px);background:color-mix(in srgb,var(--surface) 86%,transparent)}
.mobileNav button.active{background:linear-gradient(100deg,color-mix(in srgb,var(--primary) 17%,var(--card)),color-mix(in srgb,var(--primary) 7%,var(--card)));border-color:color-mix(in srgb,var(--primary) 24%,var(--border));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.mobileNav button.active:before{position:absolute;top:10px;bottom:10px;left:-1px;width:3px;border-radius:0 4px 4px 0;background:var(--primary);content:""}
.mobileNav button>.iconSvg{width:20px;height:20px;flex:0 0 20px;color:var(--muted)}
.mobileNav button.active>.iconSvg{color:var(--primary)}
.mobileProfileFooter{flex:0 0 auto;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.mobileProfileFooter .sidebarProfile{min-height:52px}
.mobileProfileFooter .profileAvatar{width:38px;height:38px;border-radius:13px}
.mobileMenu .mobileMenuBackdrop{touch-action:pan-y;}
.sidebar .navButton:focus-visible,.mobileNav button:focus-visible,.hamburger:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 78%,white);outline-offset:2px}
.settingsCard{position:relative;border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--card) 97%,var(--primary) 3%),var(--card));}
.settingsCardHeader{padding:0 0 14px;margin-bottom:15px;border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)}
.settingsCardHeader h2{font-size:19px;letter-spacing:-.035em}
.settingsCardHeader p{max-width:720px;line-height:1.55}
.settingsSectionIcon{border-radius:15px;box-shadow:0 8px 22px color-mix(in srgb,var(--primary) 10%,transparent)}
#settings.active{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:0}
#settings>.topHero{grid-row:1}
#settings>.profileSettingsCard{grid-row:2}
#settings>.twoFactorSettingsCard{grid-row:3}
#settings>.passwordSettingsCard{grid-row:4}
#settings>.accountSecuritySettingsCard{grid-row:5}
#settings>.appearanceSettingsCard{grid-row:6}
#settings>#holidayPreferenceRow{grid-row:7}
#settings>.notificationSettingsCard{grid-row:8}
#settings>.card:not(.profileSettingsCard):not(.passwordSettingsCard):not(.twoFactorSettingsCard):not(.accountSecuritySettingsCard):not(.appearanceSettingsCard):not(.notificationSettingsCard){grid-row:9}
#settings>.settingsVersion{grid-row:10}
#settings>.settingsVersion{justify-self:end;margin:2px 7px 8px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 62%,transparent);font-size:10px;opacity:.72}
.themeGrid{gap:12px}
.themeCard{min-height:120px;border-radius:16px;background:linear-gradient(160deg,var(--card-2),color-mix(in srgb,var(--card) 92%,var(--primary) 8%));}
.themeCard:hover{transform:translateY(-3px)}
.themePreview{border-radius:12px}
.settingsHistoryToggle{min-height:38px}
.monthlyScheduleBuilder{border-radius:22px;padding:20px;background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--primary) 13%,transparent),transparent 45%),linear-gradient(145deg,var(--card-2),var(--card));}
.monthlyScheduleBuilder[aria-busy="true"]{opacity:.8;pointer-events:none}
.scheduleTimesSummary{display:flex;min-height:43px;align-items:center;flex-wrap:wrap;gap:5px 8px;padding:10px 12px;border:1px solid var(--border);border-radius:13px;background:var(--card-2);color:var(--muted);font-size:12px;line-height:1.5}
.scheduleTimesSummary b{color:var(--text)}
.scheduleTimesSummary span{color:var(--primary);font-weight:800}
#monthlyScheduleStatus[aria-busy="true"]:after{display:inline-block;width:13px;height:13px;margin-left:8px;border:2px solid color-mix(in srgb,var(--primary) 28%,transparent);border-top-color:var(--primary);border-radius:50%;vertical-align:-2px;content:"";animation:spinV48 .7s linear infinite}
.service,.dashboardStatCard,.dashboardCard,.adminSection,.utilityDialog,.liturgyDialog{transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s,box-shadow .22s}
.service:hover,.dashboardStatCard:hover{transform:translateY(-3px)}
.dashboardHero{isolation:isolate;overflow:hidden}
.dashboardHero:after{position:absolute;z-index:-1;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.045) 48%,transparent 72%);content:"";transform:translateX(-110%);animation:heroShineV48 9s ease-in-out infinite}
.dashboardStatCard,.dashboardCard{border-radius:21px}
.toast{border-radius:16px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.adminSection{border-radius:21px;overflow:hidden}
.adminSectionHeader{min-height:68px}
.adminSectionHeader:hover{background:color-mix(in srgb,var(--primary) 5%,var(--card))}
.adminChevron{transition:transform .24s cubic-bezier(.2,.8,.2,1),background .2s,border-color .2s}
.adminSection.open .adminChevron{transform:rotate(180deg)}
.settingsVersion,.appLoadingErrorDetail{font-variant-numeric:tabular-nums}
.appLoadingOverlay{background:radial-gradient(ellipse at 16% 12%,rgba(83,103,230,.14),transparent 44%),radial-gradient(ellipse at 86% 92%,rgba(54,178,166,.11),transparent 40%),#090d14}
.appLoadingCard{width:min(470px,100%);padding:clamp(24px,5vw,34px);border-radius:27px;border-color:rgba(150,169,207,.2);background:linear-gradient(145deg,rgba(23,31,45,.96),rgba(12,17,26,.97));box-shadow:0 30px 100px rgba(0,0,0,.47),inset 0 1px rgba(255,255,255,.065);}
.appLoadingCard:before{position:absolute;inset:0 18% auto;height:1px;background:linear-gradient(90deg,transparent,rgba(130,149,255,.65),rgba(82,207,195,.55),transparent);content:""}
.appLoadingCard h1{font-size:clamp(21px,4vw,24px);letter-spacing:-.04em}
.appLoadingCard>p{font-size:12px}
.loaderBrand strong{font-size:15px;letter-spacing:-.025em}
.loaderBrand small{font-size:10px;letter-spacing:.005em}
.loaderAnimation{width:92px;height:92px;margin:30px auto 23px}
.loaderOrbit{border-width:1.5px;filter:drop-shadow(0 0 7px rgba(127,148,255,.12))}
.loaderCore{width:49px;height:49px;border-radius:17px}
.loaderProgress{height:5px;background:rgba(255,255,255,.065)}
.loaderProgress span{width:31%;background:linear-gradient(90deg,#6576f0,#8795ff 48%,#4fc5b8);box-shadow:0 0 20px rgba(105,130,255,.45)}
.appLoadingSlow{max-width:320px;margin:14px auto 0;font-size:11px}
@keyframes panelEnterV48{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes spinV48{to{transform:rotate(360deg)}}
@keyframes heroShineV48{0%,75%,100%{transform:translateX(-110%)}88%{transform:translateX(110%)}}
@media(max-width:900px){
  .mainArea{padding-top:18px}
  .mobileMenuPanel{backdrop-filter:none;-webkit-backdrop-filter:none}
  .mobileNav{flex:1 1 0%;min-height:0}
}
@media(max-width:560px){
  .mainArea{padding-left:max(13px,env(safe-area-inset-left));padding-right:max(13px,env(safe-area-inset-right));padding-bottom:max(30px,env(safe-area-inset-bottom))}
  .settingsCard{border-radius:19px}
  .settingsCardHeader h2{font-size:17px}
  .settingsCardHeader{gap:10px}
  .settingsCard .formActions{align-items:stretch}
  .settingsCard .formActions>.button{flex:1 1 auto}
  .mobileMenuPanel{width:min(345px,90vw);border-radius:0 21px 21px 0}
  .mobileNav button{min-height:50px}
  .monthlyScheduleBuilder{padding:15px;border-radius:18px}
  .monthlyScheduleIntro{gap:10px}
  .monthlyScheduleIcon{width:36px;height:36px;flex-basis:36px}
  .scheduleTimesSummary{align-items:flex-start}
  .dashboardHero:after{animation:none}
}
@media(prefers-reduced-motion:reduce){
  .panel.active,.dashboardHero:after,#monthlyScheduleStatus[aria-busy="true"]:after{animation:none!important}
  .card,.button,.service,.dashboardStatCard,.dashboardCard,.adminSection,.utilityDialog,.liturgyDialog,.mobileMenuPanel,.mobileNav button{transition:none!important}
}
