:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--radius-sm: 12px;--radius-md: 18px;--radius-lg: 22px;--radius-xl: 28px;--radius-pill: 999px;--content-max: 1120px;--page-block-gap: 10px;--page-gap: var(--page-block-gap);--page-section-gap: var(--page-block-gap);--page-toolbar-gap: var(--page-block-gap);--page-toolbar-to-content: var(--page-block-gap);--page-list-gap: var(--page-block-gap);--page-pad-bottom: calc(24px + env(safe-area-inset-bottom, 0px)) ;--page-pad-bottom-fab: calc(80px + env(safe-area-inset-bottom, 0px)) ;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--border-soft: var(--border);--bg-base: var(--bg-elevated);--bg-main: var(--bg-elevated);--bg-subtle: var(--bg-soft);--on-solid: var(--cta-fg);--shadow-accent: 0 4px 12px color-mix(in srgb, var(--accent) 28%, transparent);--focus-ring-width: 2px;--focus-ring-offset: 2px;--sticky-below-shell-top: calc(env(safe-area-inset-top, 0px) + 48px) ;--shell-top-row-min-height: 44px;--shell-sidebar-width: 240px}@media(prefers-contrast:more){:root{--focus-ring-width: 3px}}:root{color-scheme:light;--bg: #f8f7f5;--bg-elevated: #ffffff;--bg-soft: #e9e8e5;--bg-inset: #e5e4e1;--border: rgba(28, 25, 23, .09);--border-strong: rgba(28, 25, 23, .14);--text: #1c1917;--text-secondary: #57534e;--text-soft: #78716c;--text-muted: #a8a29e;--accent: #eabf1b;--accent-hover: #f0cc3a;--accent-soft: rgba(234, 191, 27, .14);--accent-muted: rgba(234, 191, 27, .28);--cta-bg: #292524;--cta-fg: #fafaf9;--cta-hover: #1c1917;--success: #15803d;--success-soft: rgba(21, 128, 61, .12);--warning: #c2410c;--warning-soft: rgba(194, 65, 12, .12);--danger: #b91c1c;--danger-soft: rgba(185, 28, 28, .1);--semantic-info: #b45309;--semantic-info-soft: rgba(180, 83, 9, .12);--shadow-card: 0 1px 2px rgba(28, 25, 23, .035), 0 10px 32px -6px rgba(28, 25, 23, .08);--shadow-float: 0 6px 28px rgba(28, 25, 23, .1);--shadow-drag: 0 8px 24px rgba(28, 25, 23, .14);--shadow: var(--shadow-card);--surface-overlay: #ffffff;--surface-nav: #fafaf9;--surface-sidebar: #fafaf9;--surface-topbar: var(--bg);--overlay-backdrop: rgba(28, 25, 23, .38);--focus-ring-color: color-mix(in srgb, var(--accent) 60%, #f5f5f4);--day-bar-ok: #ffffff;--day-bar-outage: #c4c0ba;--day-bar-empty: #d6d3d1;--day-bar-hatch: color-mix(in srgb, var(--text) 42%, transparent);--day-bar-radius: 999px;--day-bar-height: 40px;background:var(--bg);color:var(--text)}::selection{background:color-mix(in srgb,var(--accent) 28%,var(--bg-soft));color:var(--text)}[data-theme=dark]{color-scheme:dark;--bg: #131314;--bg-elevated: #1c1c1e;--bg-soft: #252528;--bg-inset: #2c2c30;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .14);--text: #e7e5e4;--text-secondary: #c4bfbc;--text-soft: #948f8b;--text-muted: #948f8b;--accent: #f0d060;--accent-hover: #f5dc7a;--accent-soft: rgba(240, 208, 96, .16);--accent-muted: rgba(240, 208, 96, .28);--cta-bg: #f5f5f4;--cta-fg: #1c1917;--cta-hover: #e7e5e4;--success: #4ade80;--success-soft: rgba(74, 222, 128, .14);--warning: #c2410c;--warning-soft: rgba(194, 65, 12, .16);--danger: #b91c1c;--danger-soft: rgba(244, 63, 94, .14);--semantic-info: #f0d060;--semantic-info-soft: rgba(240, 208, 96, .16);--shadow-card: 0 1px 0 rgba(255, 255, 255, .04), 0 10px 32px rgba(0, 0, 0, .28);--shadow-float: 0 12px 40px rgba(0, 0, 0, .35);--shadow-drag: 0 8px 24px rgba(0, 0, 0, .4);--shadow: var(--shadow-card);--surface-overlay: #1c1c1e;--surface-nav: #131314;--surface-sidebar: #18181a;--surface-topbar: var(--bg);--overlay-backdrop: rgba(0, 0, 0, .56);--focus-ring-color: color-mix(in srgb, var(--accent) 60%, #f5f5f4);--day-bar-ok: #3f3f46;--day-bar-outage: #1c1c1e;--day-bar-empty: #3f3f46;--day-bar-hatch: color-mix(in srgb, #fff 38%, transparent);--day-bar-radius: 999px;--day-bar-height: 40px}[data-theme=dark] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),[data-theme=dark] textarea,[data-theme=dark] select{background-color:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--text-muted)}[data-theme=light]{color-scheme:light;--bg: #f8f7f5;--bg-elevated: #ffffff;--bg-soft: #e9e8e5;--bg-inset: #e5e4e1;--border: rgba(28, 25, 23, .09);--border-strong: rgba(28, 25, 23, .14);--text: #1c1917;--text-secondary: #57534e;--text-soft: #78716c;--text-muted: #a8a29e;--accent: #eabf1b;--accent-hover: #f0cc3a;--accent-soft: rgba(234, 191, 27, .14);--accent-muted: rgba(234, 191, 27, .28);--cta-bg: #292524;--cta-fg: #fafaf9;--cta-hover: #1c1917;--success: #15803d;--success-soft: rgba(21, 128, 61, .12);--warning: #c2410c;--warning-soft: rgba(194, 65, 12, .12);--danger: #b91c1c;--danger-soft: rgba(185, 28, 28, .1);--semantic-info: #b45309;--semantic-info-soft: rgba(180, 83, 9, .12);--shadow-card: 0 1px 2px rgba(28, 25, 23, .035), 0 10px 32px -6px rgba(28, 25, 23, .08);--shadow-float: 0 6px 28px rgba(28, 25, 23, .1);--shadow: var(--shadow-card);--surface-overlay: #ffffff;--surface-nav: #fafaf9;--surface-sidebar: #fafaf9;--surface-topbar: var(--bg);--overlay-backdrop: rgba(28, 25, 23, .38);--focus-ring-color: color-mix(in srgb, var(--accent) 60%, #f5f5f4)}@media(prefers-contrast:more){:root{--border: rgba(28, 25, 23, .26);--border-strong: rgba(28, 25, 23, .42);--text-soft: #3f3e3c;--text-muted: #57534e}[data-theme=dark]{--border: rgba(255, 255, 255, .22);--border-strong: rgba(255, 255, 255, .4);--text-soft: #d4d1cd;--text-muted: #b0aba6;--focus-ring-color: #ffffff}}*{box-sizing:border-box}:focus:not(:focus-visible){outline:none}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}html{scroll-padding-top:var(--sticky-below-shell-top)}html.app-scroll-lock,body.app-scroll-lock{overflow:hidden;overscroll-behavior:none}html,body,#app,#root{min-height:100%;min-height:100dvh;margin:0}body{background:var(--bg);color:var(--text);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}a{color:inherit}button,input,textarea,select{font:inherit}select:not([multiple]):not([size]){padding-inline-end:2.25rem}textarea{resize:none}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-shell--desktop-sidebar{display:grid;grid-template-columns:320px minmax(0,1fr)}.app-shell__main{display:flex;flex-direction:column;min-width:0;min-height:100vh}.app-shell__sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:24px;height:100vh;padding:28px 24px;border-right:1px solid var(--border);background:var(--surface-sidebar);overflow-y:auto}.app-shell__content{flex:1;width:100%;max-width:var(--content-max);margin-inline:auto;padding:18px 18px max(9px,env(safe-area-inset-bottom,0px));box-sizing:border-box}.shell-top__icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-elevated);color:var(--text);cursor:pointer;flex-shrink:0;transition:background .15s ease,border-color .15s ease}.shell-top__icon-btn:hover{background:var(--bg-soft);border-color:var(--border-strong)}.shell-top__burger{position:relative;display:block;width:16px;height:2px;border-radius:2px;background:var(--text);box-shadow:0 -5px 0 0 var(--text),0 5px 0 0 var(--text)}.app-shell--browser-sidebar .browser-sidebar,.app-shell--browser-sidebar .shell-top{padding-top:calc(4px + env(safe-area-inset-top,0px))}.app-shell--browser-sidebar .browser-sidebar__chrome-row,.app-shell--browser-sidebar .shell-top__inner{height:var(--shell-top-row-min-height);min-height:var(--shell-top-row-min-height);max-height:var(--shell-top-row-min-height);align-items:center;box-sizing:border-box}.app-shell--browser-sidebar .shell-top{padding-bottom:8px}.app-shell__topbar{position:sticky;top:0;z-index:10;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--page-block-gap);padding:24px 32px 0;background:var(--surface-topbar)}.app-shell__topbar-actions{position:relative;display:flex;align-items:center;gap:var(--page-block-gap)}.app-shell__topbar-title{font-size:24px;line-height:1.1}.app-shell__menu-button{min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:14px;background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.app-shell__menu-panel{position:absolute;top:calc(100% + 12px);right:0;display:flex;flex-direction:column;gap:var(--page-block-gap);width:min(100vw - 32px,380px);padding:18px;border:1px solid var(--border);border-radius:24px;background:var(--surface-overlay);box-shadow:var(--shadow)}.app-shell__menu-identity{display:flex;align-items:center;gap:var(--page-block-gap);padding-bottom:6px;border-bottom:1px solid var(--border)}.app-shell__menu-links{display:flex;flex-direction:column;gap:var(--page-block-gap)}.app-shell__menu-link{display:flex;flex-direction:column;gap:var(--page-block-gap);width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);text-align:left;cursor:pointer;text-decoration:none;transition:border-color .15s ease,background .15s ease,transform .15s ease}.app-shell__menu-link:hover,.app-shell__menu-button:hover{transform:translateY(-1px)}.app-shell__menu-link.is-active{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:var(--accent-soft)}.app-shell__menu-link--danger{border-color:color-mix(in srgb,var(--danger) 32%,var(--border));background:var(--danger-soft)}.app-shell__theme-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--page-block-gap)}.app-shell__theme-option{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:14px;background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.app-shell__theme-option:hover{transform:translateY(-1px)}.app-shell__theme-option.is-active{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:var(--accent-soft)}.page{display:flex;flex-direction:column;gap:var(--page-block-gap);width:100%;min-width:0;box-sizing:border-box}.page>*{width:100%;max-width:none;margin-inline:0;box-sizing:border-box}.app-shell--miniapp .page>*{padding-left:0!important;padding-right:0!important}.app-shell--miniapp .app-shell__view>.page{flex:1 1 auto;min-height:0;min-width:0}.planner-day-drag-ghost{pointer-events:none;list-style:none}.page__header{display:flex;flex-direction:column;gap:var(--page-block-gap)}.page__title-row{display:flex;align-items:center;gap:var(--page-block-gap)}.page__title-row .page__title{flex:1;min-width:0;margin:0}.page__title{margin:0;font-size:28px;line-height:1.1}.page__eyebrow{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft)}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--page-block-gap);min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease}.ui-button:hover:not(:disabled){transform:translateY(-1px)}.ui-button:disabled{opacity:.55;cursor:not-allowed}.ui-button.is-block{width:100%}.ui-button--sm{min-height:36px;padding:0 12px}.ui-button--md{min-height:44px;padding:0 16px}.ui-button--primary{background:var(--cta-bg);border-color:var(--cta-bg);color:var(--cta-fg)}.ui-button--primary:hover:not(:disabled){background:var(--cta-hover);border-color:var(--cta-hover)}.ui-button--secondary{background:var(--bg-soft);border-color:var(--border)}.ui-button--ghost{background:transparent}.ui-button--danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 32%,var(--border));color:var(--text)}.ui-button--accent{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));color:var(--text)}.ui-card{border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius-xl);background:var(--bg-elevated);box-shadow:var(--shadow-card)}.ui-card--padded{padding:20px}.ui-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-pill);overflow:hidden;box-shadow:none;flex-shrink:0}.ui-avatar--sm{width:36px;height:36px}.ui-avatar--md{width:44px;height:44px}.ui-avatar--lg{width:48px;height:48px}.ui-avatar__image,.ui-avatar__img{display:block;width:100%;height:100%;object-fit:cover}.ui-avatar__fallback,.ui-avatar__initials{font-weight:800;letter-spacing:.04em}.ui-avatar--placeholder-indigo,.ui-avatar--placeholder-amber{background:linear-gradient(145deg,#f0cc3a,#fde68a);color:#78350f}.ui-avatar--placeholder-mint{background:linear-gradient(145deg,#6ee7b7,#a7f3d0);color:#14532d}.ui-avatar--placeholder-violet{background:linear-gradient(145deg,#eabf1b,#f6e28a);color:#78350f}.ui-avatar--placeholder-rose{background:linear-gradient(145deg,#fda4af,#fecdd3);color:#881337}.ui-avatar--placeholder-slate{background:linear-gradient(145deg,#d6d3d1,#e7e5e4);color:#292524}.ui-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em}.ui-badge--neutral{background:var(--bg-soft);color:var(--text-soft)}.ui-badge--info{background:var(--semantic-info-soft);color:var(--semantic-info)}.ui-badge--success{background:var(--success-soft);color:var(--success)}.ui-badge--warning{background:var(--warning-soft);color:var(--warning)}.ui-badge--danger{background:var(--danger-soft);color:var(--danger)}.ui-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--page-block-gap)}.ui-section-header__content{display:flex;flex-direction:column;gap:var(--page-block-gap)}.ui-section-header__title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.2;letter-spacing:-.02em}.ui-section-header__eyebrow{font-size:12px;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--text-muted)}.ui-section-header__description{margin:0;font-size:.9375rem;line-height:1.45;color:var(--text-soft)}.ui-section-header__actions{flex:0 1 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--page-block-gap);min-width:0;max-width:100%}.ui-loading-state{display:flex;flex-direction:column;align-items:center;gap:var(--page-block-gap);padding:24px;border:none;border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-card);text-align:center;width:100%;max-width:100%;box-sizing:border-box}.ui-loading-state__title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.2;letter-spacing:-.02em}.ui-loading-state__description{margin:0;font-size:.9375rem;line-height:1.45;color:var(--text-soft)}.ui-loading-state{flex-direction:row;align-items:center}.ui-loading-state--centered{justify-content:center;width:100%;text-align:center}.ui-loading-state--centered .ui-loading-state__text{align-items:center}.ui-loading-state__spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--accent) 28%,transparent);border-top-color:var(--accent);border-radius:var(--radius-pill);animation:ui-spin .8s linear infinite}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--overlay-backdrop)}.ui-modal{position:relative;width:min(100%,440px);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-elevated);box-shadow:var(--shadow-float);padding:24px}.ui-modal__close{position:absolute;top:10px;right:10px;z-index:2;width:36px;height:36px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-soft);font-size:1.5rem;line-height:1;cursor:pointer}.ui-modal__close:hover{color:var(--text)}.ui-modal__content{display:flex;flex-direction:column;gap:var(--page-block-gap)}.ui-modal__title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.2;letter-spacing:-.02em;padding-right:2.75rem}.ui-modal__description{margin:0;font-size:.9375rem;line-height:1.45;color:var(--text-soft)}.ui-modal__actions{display:flex;justify-content:flex-end;gap:var(--page-block-gap);margin-top:20px}.ui-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-card)}.ui-table{width:100%;border-collapse:collapse;min-width:560px}.ui-table th,.ui-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border)}.ui-table th{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft)}.ui-table tbody tr:last-child td{border-bottom:0}.app-shell--browser-sidebar .browser-sidebar{z-index:40}.app-shell--browser-sidebar .app-shell__browser-main{position:relative;z-index:0;min-width:0;overflow-x:hidden}.app-shell--browser-sidebar .shell-top__inner{max-width:none}.app-shell--browser-sidebar .app-shell__content.shell-main{max-width:var(--content-max);width:100%;margin-inline:auto;box-sizing:border-box}.app-shell--browser .home-view{overflow-x:visible}.app-shell--browser .home-view,.app-shell--browser .calendar-view,.app-shell--browser .progress-view{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-x:visible}.app-shell--browser .home-view__feed-viewport,.app-shell--browser .calendar-view__feed-viewport,.app-shell--browser .progress-view__feed-viewport{padding-inline:0;overflow-x:hidden;box-sizing:border-box}.app-shell--browser .calendar-view__feed-slide--adjacent,.app-shell--browser .home-view__feed-slide--adjacent,.app-shell--browser .progress-view__feed-slide--adjacent{visibility:hidden;pointer-events:none}.app-shell--browser .home-view__feed-slide,.app-shell--browser .calendar-view__feed-slide,.app-shell--browser .progress-view__feed-slide{display:flex;flex-direction:column;max-height:100%;min-height:0}.app-shell--browser .home-view__feed-slide :deep(.home-feed-panel),.app-shell--browser .calendar-view__feed-slide :deep(.calendar-period-panel),.app-shell--browser .progress-view__feed-slide :deep(.progress-period-panel){flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overflow-x:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 2px 12px;box-sizing:border-box}.app-shell--browser .progress-view__feed-slide :deep(.ui-card),.app-shell--browser .progress-view__feed-slide :deep(.ui-empty-state){overflow:visible}.app-shell--browser .admin-dashboard,.app-shell--browser .admin-tasks,.app-shell--browser .admin-planners,.app-shell--browser .admin-users,.app-shell--browser .admin-sessions,.app-shell--browser .admin-delivery-jobs,.app-shell--browser .admin-activity-log,.app-shell--browser .admin-user-detail,.app-shell--browser .admin-planner-detail,.app-shell--browser .admin-planner-overview,.app-shell--browser .admin-planner-progress,.app-shell--browser .admin-planner-logs,.app-shell--browser .task-detail-view{width:100%;max-width:none;box-sizing:border-box}.app-shell--browser [class*=__filters-grid]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--page-block-gap)}.app-shell--browser [class*=__input],.app-shell--browser [class*=__search-input]{min-height:40px;font-size:.9375rem;color:var(--text);background:var(--bg-input, var(--bg-elevated))}.app-shell--browser .admin-dashboard__stats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.app-shell--browser .admin-users__toolbar{flex-wrap:wrap;align-items:flex-end;gap:var(--page-block-gap)}.app-shell--browser .ui-table td{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.app-shell--browser .ui-table-wrap{-webkit-overflow-scrolling:touch}.app-shell--browser .admin-activity-log__json{max-height:320px;overflow:auto}@media(min-width:900px){.app-shell--browser .admin-dashboard,.app-shell--browser .admin-tasks,.app-shell--browser .admin-planners,.app-shell--browser .admin-users,.app-shell--browser .admin-sessions,.app-shell--browser .admin-delivery-jobs,.app-shell--browser .admin-activity-log,.app-shell--browser .admin-user-detail,.app-shell--browser .admin-planner-detail{padding:24px 32px 40px}}.ui-icon-glyph{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;pointer-events:none}.period-nav-btn{box-sizing:border-box;width:36px;height:36px;min-width:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:calc(var(--radius-md) - 6px);border:1px solid color-mix(in srgb,var(--border) 90%,transparent);background:var(--bg-soft);color:var(--text);font-size:1.2rem;line-height:1;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.period-nav-btn .ui-nav-chevron{font-size:1.25rem}.period-nav-label{font-size:1rem;font-weight:600;color:var(--text);line-height:1.35}.home-view__fab .ui-icon-plus,.planners-view__fab .ui-icon-plus{display:block}.app-shell--browser-sidebar .shell-top__who{display:none}.app-shell--miniapp .page>.home-view,.app-shell--miniapp .page>.calendar-view,.app-shell--miniapp .page>.progress-view{flex:1 1 auto;min-height:0}.app-shell--miniapp .home-view,.app-shell--miniapp .calendar-view,.app-shell--miniapp .progress-view{overflow-y:auto;overflow-x:visible;-webkit-overflow-scrolling:touch}.app-shell--miniapp .calendar-view__toolbar{overflow:visible}.app-shell--miniapp .home-view__header,.app-shell--miniapp .calendar-view__toolbar,.app-shell--miniapp .progress-view__header{position:sticky;top:0;z-index:2;background:var(--bg)}.app-shell--miniapp .home-view__feed-viewport,.app-shell--miniapp .calendar-view__feed-viewport{margin-top:0;padding:0 0 22px;overflow-x:hidden;overflow-y:visible;box-sizing:border-box}.app-shell--miniapp .calendar-view__feed-slide--adjacent{visibility:hidden}.app-shell--miniapp .app-shell__view,.app-shell--miniapp .page,.app-shell--miniapp .page>*{overflow-x:visible}.app-shell--miniapp .home-view__feed-slide,.app-shell--miniapp .calendar-view__feed-slide,.app-shell--miniapp .progress-view__feed-slide{overflow:visible}.app-shell--miniapp .home-view__feed-slide :deep(.ui-card),.app-shell--miniapp .home-view__feed-slide :deep(.ui-empty-state),.app-shell--miniapp .progress-view__feed-slide :deep(.ui-card),.app-shell--miniapp .progress-view__feed-slide :deep(.ui-empty-state),.app-shell--miniapp .progress-view__feed-slide :deep(.progress-period-panel),.app-shell--miniapp .settings-page .ui-card.settings-page__section,.app-shell--miniapp .settings-page .gcal-card.settings-page__section{overflow:visible}.app-shell--miniapp .progress-view__feed-viewport{margin-top:0;padding:0 2px 22px;overflow-x:hidden;overflow-y:visible;box-sizing:border-box}.app-shell--miniapp .progress-view__feed-slide :deep(.progress-period-panel__summary),.app-shell--miniapp .progress-view__feed-slide :deep(.progress-period-panel__section),.app-shell--miniapp .progress-view__feed-slide :deep(.progress-period-panel__stat),.app-shell--miniapp .progress-view__feed-slide :deep(.progress-period-panel__row){overflow:visible}.app-shell--miniapp .home-view__feed-slide :deep(.ui-loading-state),.app-shell--miniapp .calendar-view__feed-slide :deep(.ui-loading-state){margin-bottom:14px}.app-shell--miniapp .settings-page{flex:1 1 auto;min-width:0;min-height:0;overflow-x:clip;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}.app-shell--miniapp .settings-page .ui-card.settings-page__section,.app-shell--miniapp .settings-page .gcal-card.settings-page__section{overflow:hidden;min-width:0;max-width:100%;width:100%;padding-bottom:20px;margin-bottom:2px;box-sizing:border-box}.app-shell--miniapp .settings-page .ui-card.settings-page__section>*,.app-shell--miniapp .settings-page .gcal-card.settings-page__section>*{max-width:100%;min-width:0;box-sizing:border-box}.app-shell--miniapp .settings-page .settings-page__toggle-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--page-block-gap);align-items:center;min-width:0;max-width:100%}.app-shell--miniapp .settings-page .settings-page__toggle-label{grid-column:1;overflow-wrap:anywhere;word-break:break-word}.app-shell--miniapp .settings-page .settings-page__toggle-row>.ui-bool-switch{grid-column:2;justify-self:end}.app-shell--miniapp .settings-page .settings-page__toggle-row--select{grid-template-columns:minmax(0,1fr);row-gap:var(--page-block-gap);align-items:stretch}.app-shell--miniapp .settings-page .settings-page__toggle-row--select .settings-page__toggle-label{grid-column:1}.app-shell--miniapp .settings-page .settings-page__toggle-row--select :deep(.ui-select-wrap){grid-column:1;display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.app-shell--miniapp .settings-page .settings-page__time-row,.app-shell--miniapp .settings-page .settings-page__time-row :deep(.ui-select-wrap){width:100%;max-width:100%;min-width:0;box-sizing:border-box}.app-shell--miniapp .settings-page .settings-page__password-form :deep(.ui-button){max-width:100%}.app-shell--miniapp .settings-page .ui-card.settings-page__section .ui-button:hover:not(:disabled){transform:none}.app-shell--miniapp .settings-page .settings-page__time-row{margin-bottom:4px}.app-shell--miniapp .settings-page .settings-page__dm-block:last-child{padding-bottom:12px}.app-shell--miniapp .settings-page .settings-page__toggle-row--select{padding-bottom:14px}.planner-detail-view{display:flex;flex-direction:column;gap:var(--page-block-gap);padding:0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));width:100%;max-width:none;overflow-x:visible;box-sizing:border-box}.period-nav-btn:hover{background:var(--bg-inset);border-color:var(--border-strong)}@keyframes ui-spin{to{transform:rotate(360deg)}}@media(max-width:960px){.app-shell__sidebar{display:none}.app-shell__topbar{padding:20px 20px 0}.app-shell__content{padding:16px 16px max(9px,env(safe-area-inset-bottom,0px))}}@media(max-width:640px){.app-shell__topbar{flex-direction:column;align-items:stretch}.app-shell__topbar-actions{justify-content:space-between}.app-shell__menu-panel{left:0;width:100%}.app-shell__content{padding:14px 14px max(9px,env(safe-area-inset-bottom,0px))}.ui-section-header{flex-direction:column;align-items:stretch;gap:var(--page-block-gap)}.ui-section-header__actions{justify-content:flex-start}.ui-modal{padding:20px}.ui-modal__actions,.ui-empty-state__actions{flex-direction:column}}.app-shell--touch-mobile .ui-button,.app-shell--touch-mobile .app-shell__menu-button,.app-shell--touch-mobile .app-shell__theme-option{min-height:52px}.app-shell--touch-mobile .ui-button--sm{min-height:48px;padding:0 16px}.app-shell--touch-mobile .shell-top__back--icon{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}.app-shell--touch-mobile .ui-button--md{min-height:52px;padding:0 18px}.app-shell--touch-mobile .period-nav-btn{width:40px;height:40px;min-width:40px}.app-shell--touch-mobile .ui-empty-state,.app-shell--touch-mobile .ui-loading-state{border-radius:18px}.app-shell--dense-desktop .app-shell__sidebar{gap:var(--page-block-gap);padding:22px 20px}.app-shell--dense-desktop .app-shell__content{padding:22px 28px max(11px,env(safe-area-inset-bottom,0px))}.app-shell--dense-desktop .page{gap:22px}.app-shell--dense-desktop .ui-card--padded{padding:16px}.app-shell--dense-desktop .ui-button--md{min-height:40px;padding:0 14px}.app-shell--dense-desktop .ui-button--sm{min-height:34px;padding:0 10px}@media(min-width:961px){.page{max-width:var(--content-max);margin-inline:auto}}.app-shell__view>.page>*{display:flex;flex-direction:column;gap:var(--page-block-gap);width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow-x:visible;flex:1 1 auto;min-height:0;padding:0;padding-bottom:var(--page-pad-bottom)}.app-shell__view>.page>*.page-view--fab,.app-shell__view>.page>.home-view,.app-shell__view>.page>.planners-view,.app-shell__view>.page>.calendar-view,.app-shell__view>.page>.progress-view{padding-bottom:var(--page-pad-bottom-fab)}.page-view__toolbar{display:flex;flex-direction:column;gap:var(--page-block-gap);padding:0;flex-shrink:0}.page-view__filter-toolbar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--page-block-gap);width:100%;min-width:0;flex-shrink:0}.page-view__chips{display:flex;flex:1 1 auto;min-width:0;align-items:center;justify-content:flex-start;gap:var(--page-block-gap);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0}.page-view__chips::-webkit-scrollbar{display:none}.page-view__chip{flex-shrink:0;min-height:40px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-elevated);color:var(--text-soft);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:var(--page-block-gap)}.page-view__chip:not(.page-view__chip--active):hover{color:var(--text)}.page-view__chip--active{background:var(--accent);border-color:var(--accent);color:var(--on-solid)}.page-view__chip--active:hover{color:var(--on-solid)}.page-view__toolbar-trail{flex-shrink:0;margin-left:auto}.page-view__body{display:flex;flex-direction:column;gap:var(--page-block-gap);flex:1 1 auto;min-height:0;min-width:0;width:100%}.page-view__list{display:flex;flex-direction:column;gap:var(--page-block-gap);width:100%;min-width:0}.page-view__section{display:flex;flex-direction:column;gap:var(--page-block-gap)}.page-block-width{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.page-view__section-title{margin:0;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-soft);padding-left:2px}.page-view__fill{flex:1 1 auto;min-height:0;min-width:0}.page-view__content-start,.page-view__period-empty,.page-view__slot-empty{display:flex;justify-content:flex-start;align-items:flex-start;width:100%;min-width:0;padding:0}.page-view__content-start .ui-empty-state,.page-view__period-empty .ui-empty-state,.page-view__slot-empty .ui-empty-state{padding:0;justify-content:flex-start}.page-view__slot-empty--center,.page-view__slot-empty--center .ui-empty-state{justify-content:center}.app-shell__view>.page .home-feed-panel__task-list,.app-shell__view>.page .home-feed-panel__task-list--overdue{gap:0}.planner-tabs-nav,.planner-tasks-view__month-nav,.calendar-view__modes,.calendar-period-panel__year,.page-view__filter-toolbar,.page-view__chips{flex-direction:row}.calendar-period-panel__year{display:grid;grid-template-columns:repeat(3,1fr)}@media(max-width:640px),(pointer:coarse){.page-view__chip{min-height:44px}}.browser-sidebar{display:flex;flex-direction:column;width:var(--shell-sidebar-width);min-width:var(--shell-sidebar-width);max-width:var(--shell-sidebar-width);flex-shrink:0;min-height:100dvh;position:sticky;top:0;align-self:stretch;z-index:40;overflow-x:hidden;overflow-y:auto;background:var(--bg);border-right:1px solid color-mix(in srgb,var(--border) 60%,transparent);padding:calc(12px + env(safe-area-inset-top,0px)) 16px calc(12px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.browser-sidebar__chrome{flex-shrink:0;margin-bottom:8px}.browser-sidebar__chrome-row{display:flex;align-items:center;width:100%;min-height:var(--shell-top-row-min-height);box-sizing:border-box}.browser-sidebar__brand{display:flex;align-items:center;gap:var(--space-3);min-width:0;padding-left:16px;box-sizing:border-box}.browser-sidebar__brand-logo{width:auto;height:28px;max-width:120px;flex-shrink:0;border-radius:0;object-fit:contain;display:block}.browser-sidebar__head-name{font-size:.9375rem;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.browser-sidebar__nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:1px;padding-right:2px;margin-top:8px;scrollbar-width:none}.browser-sidebar__nav::-webkit-scrollbar{display:none}.browser-sidebar__section{margin:8px 8px 4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.browser-sidebar__section--nav{margin-top:4px}.browser-sidebar__link{display:flex;align-items:center;min-height:40px;padding:0 10px 0 16px;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--text);text-decoration:none}.browser-sidebar__link:not(.browser-sidebar__link--active):hover{background:var(--bg-soft)}.browser-sidebar__link--active{border-radius:var(--radius-pill);background:var(--cta-bg);color:var(--cta-fg);font-weight:600}.browser-sidebar__link--active:hover{background:var(--cta-bg);color:var(--cta-fg)}.browser-sidebar__foot{flex-shrink:0;margin-top:auto;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.browser-sidebar__theme{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--page-block-gap);width:100%;font-size:.6875rem;font-weight:500;color:var(--text-muted)}.browser-sidebar__logout{flex-shrink:0;margin-top:10px;width:100%;min-height:40px;padding:0 10px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.browser-sidebar__logout:hover{border-color:color-mix(in srgb,var(--danger) 55%,var(--border))}.ui-theme-switch{position:relative;width:3.25rem;min-width:3.25rem;max-width:3.25rem;height:1.5rem;flex-shrink:0;padding:0;border:1px solid var(--border);border-radius:var(--radius-pill);box-sizing:border-box;cursor:pointer;background:var(--bg-soft);transition:background-color .18s ease,border-color .18s ease}.ui-theme-switch:disabled{opacity:.72;cursor:not-allowed}.ui-theme-switch__track{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:0 6px;pointer-events:none}.ui-theme-switch__icon{display:flex;align-items:center;justify-content:center;color:var(--text-muted);opacity:.85}.ui-theme-switch--dark .ui-theme-switch__icon--moon{color:var(--text-soft);opacity:1}.ui-theme-switch--light .ui-theme-switch__icon--sun{color:color-mix(in srgb,var(--warning) 55%,var(--text));opacity:1}.ui-theme-switch__thumb{position:absolute;top:.12rem;left:.12rem;width:1.2rem;height:1.2rem;border-radius:var(--radius-pill);background:var(--bg-elevated);box-shadow:0 1px 3px #0000002e;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);transition:transform .18s ease;pointer-events:none}.ui-theme-switch--dark .ui-theme-switch__thumb{transform:translate(1.65rem)}.ui-theme-switch--light .ui-theme-switch__thumb{transform:translate(0)}.shell,.app-shell.app-shell--browser-sidebar{display:flex!important;flex-direction:row!important;align-items:stretch;min-height:100vh;min-height:100dvh;width:100%}.app-shell__browser-main{flex:1 1 auto;min-width:0;min-height:100dvh;display:flex;flex-direction:column;overflow:auto}.app-shell__content.shell-main,.main,.app-shell--browser-sidebar .app-shell__content.shell-main.main{flex:1;width:100%;max-width:var(--content-max);margin-inline:auto;padding:24px 32px 40px;min-width:0;box-sizing:border-box}.page-title{margin:0;font-size:28px;font-weight:600;line-height:1.1;letter-spacing:-.02em}.page-sub{margin:6px 0 0;color:var(--text-soft);font-size:.9375rem}.mono{font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,monospace;font-size:.875em}.panel,.ui-card--padded{border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius-xl);background:var(--bg-elevated);box-shadow:var(--shadow-card);padding:20px}.stack{display:flex;flex-direction:column;gap:var(--page-block-gap)}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--page-block-gap)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--page-block-gap)}button:not(.ui-theme-switch):not(.browser-sidebar__logout):not(.ui-button):not(.badge),a.btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--page-block-gap);min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-soft);color:var(--text);cursor:pointer;text-decoration:none;transition:transform .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease}a.btn:hover,a.btn:focus{text-decoration:none}button:not(.ui-theme-switch):not(.browser-sidebar__logout):not(.badge):hover:not(:disabled),.btn:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}button:not(.secondary):not(.ghost):not(.danger):not(.ui-theme-switch):not(.browser-sidebar__logout):not(.accent):not(.badge):not(.ff-modal__close):not(.day-bar-btn),.btn-primary{background:var(--cta-bg);border-color:var(--cta-bg);color:var(--cta-fg)}button:not(.secondary):not(.ghost):not(.danger):not(.ui-theme-switch):not(.browser-sidebar__logout):not(.accent):not(.badge):not(.ff-modal__close):not(.day-bar-btn):hover:not(:disabled){background:var(--cta-hover);border-color:var(--cta-hover)}button.secondary{background:var(--bg-soft);border-color:var(--border);color:var(--text)}button.ghost{background:transparent}button.danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 32%,var(--border));color:var(--text)}button.accent{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--text)}label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--text-secondary)}input:not([type=checkbox]):not([type=radio]),textarea,select{min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text)}textarea{min-height:96px;padding:12px 14px;resize:vertical}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-width:22px;min-height:22px;margin:0;flex-shrink:0;accent-color:var(--cta-bg);cursor:pointer;pointer-events:auto;transition:none}.check-row,label.check-row,label:has(>input[type=checkbox]),label:has(>input[type=radio]){flex-direction:row!important;align-items:center;gap:10px;min-height:44px;padding:0 2px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text)}.user-cell{display:inline-flex;align-items:center;gap:10px;min-width:0}.wizard-steps{list-style:none;margin:16px 0 20px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.wizard-steps li{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-soft);font-size:.8125rem;font-weight:500}.wizard-steps li.on{border-color:color-mix(in srgb,var(--cta-bg) 55%,var(--border));background:color-mix(in srgb,var(--cta-bg) 12%,var(--bg-elevated));color:var(--text);font-weight:600}.wizard-steps li.done{color:var(--text-secondary)}.wizard-steps__n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--bg-soft);font-size:.75rem;font-weight:700;flex-shrink:0}.wizard-steps li.on .wizard-steps__n{background:var(--cta-bg);color:var(--cta-fg)}.wizard-steps__label{line-height:1.2}.ff-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--overlay-backdrop);box-sizing:border-box}.ff-modal{position:relative;width:min(100%,420px);margin:0;padding:28px 24px 24px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-elevated);box-shadow:0 16px 48px #0000002e;box-sizing:border-box}button.ff-modal__close,.ff-modal__close{position:absolute;top:10px;right:10px;width:36px;height:36px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none!important;border-radius:var(--radius-pill);background:transparent!important;color:var(--text-soft)!important;font-size:1.5rem;line-height:1;cursor:pointer;transform:none!important;min-height:36px;box-shadow:none!important}button.ff-modal__close:hover,.ff-modal__close:hover{color:var(--text)!important;background:var(--bg-soft)!important;transform:none!important}.ff-modal__title{margin:0 40px 6px 0;font-size:1.25rem;font-weight:600;line-height:1.25;letter-spacing:-.02em;color:var(--text)}.ff-modal__body{margin:0;font-size:.9375rem;line-height:1.45;color:var(--text-soft)}.ff-modal__meta{margin:0 0 18px;font-size:.875rem;line-height:1.4;color:var(--text-soft)}.ff-modal__note{margin:14px 0 0;font-size:.875rem;line-height:1.45;color:var(--text-soft)}.day-bar-modal-chart{display:flex;flex-direction:column;gap:8px;width:100%;margin:0 0 14px}.day-bar-modal-chart .day-bar-hours{margin-top:0}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-card)}.table{width:100%;border-collapse:collapse;min-width:560px}.table th,.table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft)}.table tbody tr:last-child td{border-bottom:0}.loc-blocks{display:flex;flex-direction:column;gap:var(--page-block-gap)}.location-card--block{display:flex;flex-direction:column;gap:8px}.location-card__head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.location-card__title{margin:0}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:.75rem;margin-bottom:1rem}.page-title-row .page-title{margin:0}.location-card__title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.day-bar-btn{display:block;width:100%;margin:0;padding:0;border:none;background:transparent;cursor:pointer;min-height:0;transform:none!important}.day-bar-block{display:flex;flex-direction:column;gap:0;width:100%}.day-bar-emergency-wrap,.day-bar-status-wrap{width:100%;margin-top:8px}.day-bar-emergency-wrap--modal,.day-bar-status-wrap--modal{margin:8px 0 12px}.day-bar-status-wrap:empty{display:none}.day-bar-btn:hover:not(:disabled){transform:none!important}.day-bar{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:2px;width:100%;height:var(--day-bar-height);padding:0;margin:0;border:none;border-radius:0;background:transparent;box-sizing:border-box;overflow:visible;box-shadow:none;outline:none}.day-bar__cell{display:block;height:100%;min-width:0;border-radius:0;background:var(--day-bar-empty);box-shadow:none}.day-bar__cell:first-child{border-radius:var(--day-bar-radius) 0 0 var(--day-bar-radius)}.day-bar__cell:last-child{border-radius:0 var(--day-bar-radius) var(--day-bar-radius) 0}.day-bar-block,.day-bar-btn{background:transparent!important;box-shadow:none!important;border:none!important;outline:none!important;padding:0!important}.day-bar__cell--ok{background:var(--day-bar-ok)}.day-bar__cell--outage{background-color:var(--day-bar-outage);background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,var(--day-bar-hatch) 2px,var(--day-bar-hatch) 4px)}.day-bar__cell--unknown{background:var(--day-bar-empty)}.day-bar__cell--lit{box-shadow:inset 0 0 0 2px var(--accent)}.day-bar__cell--lit-dashed{outline:2px dashed var(--accent);outline-offset:-2px}.day-bar-legend{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:0;font-size:.8125rem;color:var(--text-soft)}.day-bar-legend span{display:inline-flex;align-items:center;gap:6px}.day-bar__swatch{width:14px;height:14px;border-radius:3px;display:inline-block;flex-shrink:0;box-sizing:border-box;font-style:normal;background:var(--day-bar-empty);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent)}.day-bar__swatch.day-bar__cell--ok{background:var(--day-bar-ok)}.day-bar__swatch.day-bar__cell--outage{background-color:var(--day-bar-outage);background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 1.5px,var(--day-bar-hatch) 1.5px,var(--day-bar-hatch) 3px)}.day-bar__swatch.day-bar__cell--unknown{background:var(--day-bar-empty)}.day-bar__swatch.day-bar__cell--lit{box-shadow:inset 0 0 0 2px var(--accent)}.day-bar__swatch.day-bar__cell--lit-dashed{outline:2px dashed var(--accent);outline-offset:-2px}.day-bar-expand{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .22s ease,opacity .18s ease}.day-bar-expand--open{grid-template-rows:1fr;opacity:1}.day-bar-expand__inner{overflow:hidden;min-height:0}.day-bar-hours{display:flex;justify-content:space-between;width:100%;margin-top:8px;font-size:.65rem;color:var(--text-muted);box-sizing:border-box;line-height:1}.day-bar-hours__tick{flex:0 0 auto;text-align:center;min-width:1.1em}.day-bar-hours__tick:first-child{text-align:left}.day-bar-hours__tick:last-child{text-align:right}.loc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:0}.loc-stats .stat{display:flex;flex-direction:column;gap:2px;padding:10px 8px;border-radius:var(--radius-md);background:var(--bg-soft);text-align:center}.loc-stats .stat strong{font-size:1.1rem;color:var(--text)}.loc-stats .stat span{font-size:.7rem;color:var(--text-soft);line-height:1.25}.loc-stats .loc-meta{grid-column:1 / -1;margin:0;font-size:.8125rem;color:var(--text-soft)}.ff-modal--wide{width:min(100%,560px)}.location-card__title a{color:inherit;text-decoration:none}.location-card__title a:hover{text-decoration:none}.badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;height:28px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-pill);background:var(--bg-soft);color:var(--text-soft);font-size:12px;font-weight:700;letter-spacing:.02em;box-shadow:none;outline:none;box-sizing:border-box}button.badge.badge--action{cursor:pointer;font:inherit;font-size:12px;font-weight:700;letter-spacing:.02em;transform:none;min-height:28px;height:28px;border:1px solid transparent;box-shadow:none;outline:none}button.badge.badge--action:hover:not(:disabled){transform:none;filter:brightness(1.03)}button.badge.day-bar-emergency,button.badge.yasno-badge{display:flex;width:100%;height:28px;min-height:28px;margin:0;padding:0 10px;border:1px solid transparent!important;border-radius:var(--radius-pill);font-size:12px;font-weight:700;letter-spacing:.02em;line-height:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none!important;outline:none!important}button.badge.yasno-badge--warn{background:#fbbf2429;color:#fbbf24}button.badge.yasno-badge--info{background:#60a5fa29;color:#93c5fd}button.badge.day-bar-emergency{background:var(--danger-soft);color:#f87171}[data-theme=light] button.badge.yasno-badge--warn{background:#ca8a0424;color:#a16207}[data-theme=light] button.badge.yasno-badge--info{background:#2563eb1f;color:#1d4ed8}[data-theme=light] button.badge.day-bar-emergency{background:var(--danger-soft);color:var(--danger)}.badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.badge.online,.badge.likely_present{background:var(--success-soft);color:var(--success)}.badge.offline,.badge.likely_absent{background:var(--danger-soft);color:var(--danger)}.badge.degraded,.badge.unknown,.badge.unconfigured,.badge.stale,.badge.paused{background:var(--warning-soft);color:var(--warning)}.badge.not_applicable{background:var(--semantic-info-soft);color:var(--text-secondary)}.auth-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f8f7f5;color:#1c1917;color-scheme:light}.auth-wrap .panel,.auth-card{width:min(100%,400px);border:1px solid rgba(28,25,23,.09);border-radius:var(--radius-xl);background:#fff;box-shadow:0 1px 2px #1c191709,0 10px 32px -6px #1c191714;padding:20px;color:#1c1917}.auth-brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--page-block-gap);margin-bottom:8px}.auth-brand h1{margin:0;font-size:1.75rem;letter-spacing:-.02em}.auth-brand p{margin:0;color:#78716c}.brand-logo{width:auto;height:40px;max-width:160px;flex-shrink:0;border-radius:0;object-fit:contain}.brand-logo.lg{width:auto;height:56px;max-width:200px}.hint,.muted{color:var(--text-soft);font-size:.875rem}.error{color:var(--danger);font-size:.875rem}.success{color:var(--success);font-size:.875rem}.details{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);padding:0}.details summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style-position:outside}.details[open] summary{border-bottom:1px solid var(--border)}.details .details-body{padding:16px}.empty-state,.loading-state{display:flex;flex-direction:column;align-items:center;gap:var(--page-block-gap);padding:28px 20px;text-align:center;border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-card);color:var(--text-soft)}@media(max-width:900px){.app-shell__content.shell-main,.main{padding:18px 14px max(18px,env(safe-area-inset-bottom,0px))}.page-title{font-size:24px}.table{min-width:480px}}
