:where(a,button,[role=button],[role=tab],label,summary,input,select,textarea){-webkit-tap-highlight-color:transparent;touch-action:manipulation}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea):focus{outline:2px solid var(--color-focus-ring);outline-offset:-1px}[tabindex="-1"]:focus{outline:none}input[type=checkbox],input[type=radio],input[type=range],progress{accent-color:var(--color-primary)}.dark :where(input[type=checkbox],input[type=radio],input[type=range]){accent-color:var(--color-sidebar-accent)}::placeholder{color:var(--color-text-muted);opacity:1}@media (pointer: coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-size:16px!important}}:where(button,[role=button],.btn){transition:transform var(--duration-instant) var(--ease-standard),opacity var(--duration-fast) var(--ease-standard)}:where(button,[role=button]):not(:disabled):not([aria-disabled=true]):active{transform:scale(var(--press-scale));box-shadow:inset 0 0 0 100vmax var(--color-state-pressed)}:where(button):disabled{cursor:not-allowed}@media (hover: hover) and (pointer: fine){:where(button,[role=button]):not(:disabled):not([aria-disabled=true]):not(.btn):hover{box-shadow:inset 0 0 0 100vmax var(--color-state-hover)}:where(button,[role=button]):not(:disabled):not([aria-disabled=true]):not(.btn):active{box-shadow:inset 0 0 0 100vmax var(--color-state-pressed)}}.btn--block,[data-press=subtle]{--press-scale: .99}[data-press=none]{--press-scale: 1}@media (prefers-reduced-motion: reduce){:root{--press-scale: 1;--duration-sheet: .2s;--duration-slow: .2s;--duration-base: .15s}html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important}}.app-shell{display:flex;min-height:100vh;min-height:100dvh}.app-column{flex:1;min-width:0;display:flex;flex-direction:column}.app-main{flex:1;min-width:0;padding:var(--spacing-lg) max(var(--page-gutter),var(--safe-right)) var(--spacing-2xl) max(var(--page-gutter),var(--safe-left));background:var(--color-bg-app)}.app-content{width:100%;max-width:var(--content-max-width);margin-inline:auto}.app-shell[data-layout=phone] .app-main{padding-top:var(--spacing-md);padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--spacing-lg))}.skip-link{position:fixed;top:var(--spacing-sm);left:var(--spacing-sm);z-index:var(--z-toast);padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-semibold);color:var(--color-primary-text);background:var(--color-primary);border-radius:var(--radius-md);transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.sidebar{position:sticky;top:0;z-index:var(--z-nav);flex-shrink:0;display:flex;flex-direction:column;width:var(--sidebar-width);height:100vh;height:100dvh;padding-left:var(--safe-left);color:var(--color-sidebar-text);background:var(--color-sidebar-bg);border-right:1px solid var(--color-sidebar-border)}.sidebar[data-collapsed=true]{width:calc(var(--sidebar-rail-width) + var(--safe-left))}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);height:var(--topbar-height);padding:0 var(--spacing-sm) 0 var(--spacing-md);flex-shrink:0}.sidebar[data-collapsed=true] .sidebar-header{flex-direction:column;justify-content:center;height:auto;padding:var(--spacing-smd) 0 var(--spacing-sm)}.sidebar-brand{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0;white-space:nowrap}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--color-sidebar-text);background:transparent;border:0;border-radius:var(--radius-md)}@media (hover: hover) and (pointer: fine){.sidebar-toggle:hover{color:var(--color-sidebar-text-active);background:var(--color-sidebar-hover);box-shadow:none}}@media (pointer: coarse){.sidebar-toggle{width:var(--touch-target);height:var(--touch-target)}}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-md);scrollbar-width:thin}.sidebar-section+.sidebar-section{margin-top:var(--spacing-smd)}.sidebar-section-label{padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:color-mix(in srgb,var(--color-sidebar-text) 75%,transparent);white-space:nowrap}.sidebar-divider{height:1px;margin:0 var(--spacing-smd) var(--spacing-sm);background:var(--color-sidebar-border)}.sidebar-item{display:flex;align-items:center;gap:var(--spacing-smd);min-height:36px;padding:0 var(--spacing-sm);margin-bottom:var(--spacing-2xs);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-sidebar-text);text-decoration:none;white-space:nowrap;border-radius:var(--radius-md)}@media (pointer: coarse){.sidebar-item{min-height:var(--touch-target)}}.sidebar[data-collapsed=true] .sidebar-item{justify-content:center;padding:0}.sidebar-item-label{overflow:hidden;text-overflow:ellipsis}@media (hover: hover) and (pointer: fine){.sidebar-item:hover{color:var(--color-sidebar-text-active);background:var(--color-sidebar-hover)}}.sidebar-item:active{background:var(--color-sidebar-hover)}.sidebar-item.active{color:var(--color-sidebar-text-active);background:var(--color-sidebar-active)}.sidebar-item.active svg{color:var(--color-sidebar-accent)}.sidebar-item:focus-visible{outline-color:var(--color-sidebar-accent);outline-offset:-2px}.sidebar-user{display:flex;align-items:center;gap:var(--spacing-smd);padding:var(--spacing-smd) var(--spacing-md) calc(var(--spacing-smd) + var(--safe-bottom));border-top:1px solid var(--color-sidebar-border)}.sidebar[data-collapsed=true] .sidebar-user{justify-content:center;padding-inline:0}button.sidebar-user{width:100%;border-left:0;border-right:0;border-bottom:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}@media (hover: hover) and (pointer: fine){button.sidebar-user:hover{background:var(--color-sidebar-hover)}}button.sidebar-user:focus-visible{outline-offset:-2px}.sidebar-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-sidebar-text-active);background:var(--color-sidebar-hover);border-radius:var(--radius-full)}.sidebar-avatar--photo{overflow:hidden;background:transparent}.sidebar-user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-inverse);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:var(--font-size-xs);color:var(--color-sidebar-text)}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);min-height:calc(var(--topbar-height) + var(--safe-top));padding:var(--safe-top) max(var(--page-gutter),var(--safe-right)) 0 max(var(--page-gutter),var(--safe-left));background:var(--color-topbar-bg);border-bottom:1px solid var(--color-topbar-border)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.topbar{-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px)}.tabbar{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.dark .tabbar{box-shadow:inset 0 1px #ffffff0f,0 -8px 24px -12px #0009}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.topbar,.tabbar{background:var(--color-bg-card)}}.topbar-start{display:flex;align-items:center;gap:var(--spacing-smd);min-width:0}.topbar-end{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.topbar-date{font-size:var(--font-size-base);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-brand{display:inline-flex}.topbar-button{position:relative;color:var(--color-text-secondary)}.topbar-lang{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.02em}@media (max-width: 1179px){.topbar-logout-label{display:none}.topbar-button:has(.topbar-logout-label){width:var(--control-height);padding:0}}.notification-count{position:absolute;top:3px;right:1px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);line-height:1;color:var(--color-text-inverse);background:var(--color-danger);border:2px solid var(--color-bg-card);border-radius:var(--radius-full)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);display:flex;justify-content:space-around;padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background:var(--color-tabbar-bg);border-top:1px solid var(--color-tabbar-border)}.keyboard-open .tabbar{display:none}.keyboard-open .app-shell[data-layout=phone] .app-main{padding-bottom:var(--spacing-lg)}.tabbar-item{flex:1 1 0;min-width:0;height:var(--tabbar-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 var(--spacing-2xs);font:inherit;color:var(--color-text-muted);text-decoration:none;background:none;border:0;--press-scale: .92}.tabbar-item:active{box-shadow:none}.tabbar-item.active{color:var(--color-link)}.tabbar-item svg{transition:transform var(--duration-instant) var(--ease-standard)}.tabbar-item:active svg{transform:scale(var(--press-scale))}.tabbar-label{max-width:100%;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabbar-item:focus-visible{outline-offset:-4px;border-radius:var(--radius-lg)}.more-section+.more-section{margin-top:var(--spacing-lg)}.more-section-label{padding:0 var(--spacing-md) var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.more-list{overflow:hidden;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.more-item{display:flex;align-items:center;gap:var(--spacing-smd);width:100%;min-height:48px;padding:0 var(--spacing-md);font:inherit;font-size:var(--font-size-md);text-align:left;color:var(--color-text-primary);text-decoration:none;background:none;border:0;--press-scale: 1}.more-item+.more-item{box-shadow:inset 0 1px 0 var(--color-border)}.more-item>span{flex:1;min-width:0}.more-item>svg:first-child{color:var(--color-text-secondary)}.more-item>svg:last-child:not(:first-child){color:var(--color-text-muted)}.more-item.active{color:var(--color-link);font-weight:var(--font-weight-semibold)}.more-item.active>svg:first-child{color:var(--color-link)}.more-item:active{background:var(--color-state-pressed)}.more-item--danger,.more-item--danger>svg:first-child{color:var(--color-danger-text)}.refresh-bar{position:fixed;top:var(--safe-top);left:0;right:0;height:2px;overflow:hidden;z-index:var(--z-popover);pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.refresh-bar[data-active]{opacity:1;transition-delay:.2s}.refresh-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:40%;background:var(--color-primary);border-radius:var(--radius-full, 999px);transform:translate(-100%)}.refresh-bar[data-active]:before{animation:refresh-bar 1.1s var(--ease-standard) infinite}@keyframes refresh-bar{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion: reduce){.refresh-bar[data-active]:before{animation:none;width:100%;transform:none;opacity:.6}}.brand-link{display:inline-flex;align-items:center;border-radius:var(--radius-md);text-decoration:none}.brand-link:focus-visible{outline-offset:4px}.topbar-refresh[data-state=busy] .icon{animation:app-refresh-spin .9s linear infinite}.topbar-refresh[data-state=done]{color:var(--color-success-text)}.topbar-refresh[data-state=done] .icon{animation:app-refresh-pop var(--duration-base) var(--ease-out)}@keyframes app-refresh-spin{to{transform:rotate(360deg)}}@keyframes app-refresh-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.pull-refresh{position:fixed;left:50%;top:calc(var(--topbar-height) + var(--safe-top) - 44px);z-index:calc(var(--z-sticky) - 1);display:flex;align-items:center;justify-content:center;width:40px;height:40px;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard)}.pull-refresh[data-visible]{opacity:1}.pull-refresh:not([data-refreshing]){transition:opacity var(--duration-fast) var(--ease-standard),transform var(--duration-base) var(--ease-out)}.pull-refresh-circle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-bg-elevated);color:var(--color-text-secondary);box-shadow:var(--shadow-popover)}.pull-refresh[data-ready] .pull-refresh-circle{color:var(--color-primary)}.pull-refresh[data-refreshing] .pull-refresh-circle{color:var(--color-primary);animation:app-refresh-spin .9s linear infinite}.app-shell[data-layout=phone]{overscroll-behavior-y:none}html:has(.app-shell[data-layout=phone]){overscroll-behavior-y:none}@media (prefers-reduced-motion: reduce){.topbar-refresh[data-state] .icon,.pull-refresh[data-refreshing] .pull-refresh-circle{animation:none}}.more-avatar{display:inline-flex;padding:0;border:0;border-radius:var(--radius-full);background:transparent;cursor:pointer;line-height:0}.dialog-header .more-avatar+*{align-self:center}.person-card{text-align:center}.person-card-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:2}.person-card-photo{position:relative;width:160px;height:160px;margin:0 auto;line-height:0}.person-card-presence{position:absolute;left:50%;bottom:-10px;transform:translate(-10%);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;line-height:1.2;padding:4px 10px 4px 6px;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--color-bg-card);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.person-card-presence-dot{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.person-card-presence[data-presence=PRESENT]{color:var(--color-success-text)}.person-card-presence[data-presence=PRESENT] .person-card-presence-dot{background:var(--color-success)}.person-card-presence[data-presence=BREAK]{color:var(--color-warning-text)}.person-card-presence[data-presence=BREAK] .person-card-presence-dot{background:var(--color-warning)}.person-card-presence[data-presence=AWAY]{color:var(--color-danger-text)}.person-card-presence[data-presence=AWAY] .person-card-presence-dot{background:var(--color-danger)}.person-card-name{margin:var(--spacing-lg) 0 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.person-card-role{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-base);color:var(--color-text-secondary)}.person-card-facts{display:grid;grid-template-columns:auto 1fr;gap:var(--spacing-xs) var(--spacing-sm);margin:var(--spacing-md) 0 0;text-align:left;font-size:var(--font-size-base)}.person-card-facts dt{color:var(--color-text-muted)}.person-card-facts dd{margin:0;overflow-wrap:anywhere}.person-card-facts a{color:var(--color-link)}
