:root{--os-color-bg-app: #f7f5f1;--os-color-bg-sidebar: #fbfaf7;--os-color-bg-surface: #ffffff;--os-color-bg-surface-warm: #fffdfa;--os-color-bg-subtle: #f1eee8;--os-color-bg-muted: #ebe7df;--os-color-text-primary: #1d1b18;--os-color-text-secondary: #625d55;--os-color-text-tertiary: #8a8378;--os-color-text-inverse: #ffffff;--os-color-border-subtle: #e6e0d7;--os-color-border-strong: #d6cec2;--os-color-focus: #8c6f45;--os-color-success-bg: #edf7ef;--os-color-success-text: #2f6c42;--os-color-success-border: #cfe8d5;--os-color-warning-bg: #fff6df;--os-color-warning-text: #7a5920;--os-color-warning-border: #ead7a7;--os-color-error-bg: #fff0ee;--os-color-error-text: #9b3b32;--os-color-error-border: #efcbc6;--os-color-info-bg: #eef5fb;--os-color-info-text: #355f84;--os-color-info-border: #cbddea;--os-font-family-base: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--os-font-size-caption: 12px;--os-font-size-sidebar: 14px;--os-font-size-button: 14px;--os-font-size-table: 14px;--os-font-size-body: 15px;--os-font-size-body-large: 16px;--os-font-size-heading-sm: 18px;--os-font-size-heading-md: 24px;--os-font-size-heading-lg: 32px;--os-line-height-tight: 1.2;--os-line-height-body: 1.6;--os-font-weight-regular: 400;--os-font-weight-medium: 500;--os-font-weight-semibold: 600;--os-font-weight-bold: 700;--os-space-1: 4px;--os-space-2: 8px;--os-space-3: 12px;--os-space-4: 16px;--os-space-6: 24px;--os-space-8: 32px;--os-space-12: 48px;--os-radius-xs: 4px;--os-radius-sm: 6px;--os-radius-md: 8px;--os-radius-lg: 12px;--os-radius-xl: 16px;--os-radius-pill: 999px;--os-shadow-soft: 0 1px 2px rgb(29 27 24 / 4%);--os-shadow-panel: 0 12px 36px rgb(29 27 24 / 7%);--os-shadow-overlay: 0 18px 64px rgb(29 27 24 / 12%);--os-duration-fast: .12s;--os-duration-base: .18s;--os-duration-slow: .24s;--os-ease-standard: cubic-bezier(.2, 0, 0, 1);--os-z-base: 0;--os-z-header: 10;--os-z-sidebar: 20;--os-z-drawer: 40;--os-z-modal: 50;--os-z-toast: 60}.os-card{border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-lg);background:var(--os-color-bg-surface-warm);box-shadow:var(--os-shadow-soft)}.os-button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--os-radius-md);font-size:var(--os-font-size-button);font-weight:var(--os-font-weight-semibold);line-height:1;padding:0 var(--os-space-4)}.os-button--primary{background:var(--os-color-text-primary);color:var(--os-color-text-inverse)}.os-button--secondary{border-color:var(--os-color-border-subtle);background:var(--os-color-bg-surface);color:var(--os-color-text-primary)}.os-button--ghost{background:transparent;color:var(--os-color-text-secondary)}.os-button--danger{background:var(--os-color-error-bg);color:var(--os-color-error-text)}.os-input,.os-select,.os-search{min-height:40px;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-md);background:var(--os-color-bg-surface);color:var(--os-color-text-primary);font:inherit;padding:0 var(--os-space-3)}.os-input::placeholder,.os-search::placeholder{color:var(--os-color-text-tertiary)}.os-input:focus,.os-select:focus,.os-search:focus{border-color:var(--os-color-focus);outline:2px solid rgb(140 111 69 / 18%);outline-offset:1px}.os-checkbox{width:16px;height:16px;accent-color:var(--os-color-text-primary)}.os-toggle{width:36px;height:20px;border:1px solid var(--os-color-border-strong);border-radius:var(--os-radius-pill);background:var(--os-color-bg-muted)}.os-status-badge{display:inline-flex;align-items:center;border-radius:var(--os-radius-pill);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);padding:var(--os-space-1) var(--os-space-2)}.os-status-badge--success{border:1px solid var(--os-color-success-border);background:var(--os-color-success-bg);color:var(--os-color-success-text)}.os-status-badge--warning{border:1px solid var(--os-color-warning-border);background:var(--os-color-warning-bg);color:var(--os-color-warning-text)}.os-status-badge--error{border:1px solid var(--os-color-error-border);background:var(--os-color-error-bg);color:var(--os-color-error-text)}.os-status-badge--info{border:1px solid var(--os-color-info-border);background:var(--os-color-info-bg);color:var(--os-color-info-text)}.os-skeleton{overflow:hidden;border-radius:var(--os-radius-sm);background:linear-gradient(90deg,var(--os-color-bg-subtle),var(--os-color-bg-surface),var(--os-color-bg-subtle));background-size:200% 100%}:root{color:var(--os-color-text-primary);background:var(--os-color-bg-app);font-family:var(--os-font-family-base);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}a:focus-visible,.sidebar__link:focus-visible,.family-card:focus-visible,.family-profile-tab:focus-visible,.login-primary-control:focus-visible,.login-secondary-control:focus-visible{outline:2px solid var(--os-color-focus);outline-offset:3px}.login-page,.auth-loading-screen,.access-restricted-screen{display:grid;min-height:100vh;place-items:center;background:var(--os-color-bg-app);padding:var(--os-space-8)}.login-panel{width:min(100%,420px);padding:var(--os-space-8)}.login-eyebrow,.auth-loading-label{margin:0;color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);text-transform:uppercase}.login-panel h1{margin:var(--os-space-3) 0 0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-lg);line-height:var(--os-line-height-tight)}.login-description{margin:var(--os-space-4) 0 var(--os-space-8);color:var(--os-color-text-secondary);font-size:var(--os-font-size-body-large);line-height:var(--os-line-height-body)}.login-primary-control{display:inline-flex;width:100%;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-md);background:var(--os-color-text-primary);color:var(--os-color-text-inverse);cursor:pointer;font:inherit;font-size:var(--os-font-size-button);font-weight:var(--os-font-weight-semibold);transition:background-color var(--os-duration-fast) var(--os-ease-standard),color var(--os-duration-fast) var(--os-ease-standard)}.login-primary-control:disabled{background:var(--os-color-bg-muted);color:var(--os-color-text-tertiary);cursor:not-allowed;opacity:1}.login-secondary-control{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-md);background:var(--os-color-bg-surface);color:var(--os-color-text-primary);cursor:pointer;font:inherit;font-size:var(--os-font-size-button);font-weight:var(--os-font-weight-semibold);padding:0 var(--os-space-4)}.login-secondary-control:disabled{color:var(--os-color-text-tertiary);cursor:not-allowed}.login-authenticated-state{display:grid;gap:var(--os-space-2);border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-lg);background:var(--os-color-bg-surface);padding:var(--os-space-4)}.login-state-label{margin:0;color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);text-transform:uppercase}.login-account-name,.login-account-email{overflow-wrap:anywhere;margin:0}.login-account-name{color:var(--os-color-text-primary);font-size:var(--os-font-size-body);font-weight:var(--os-font-weight-semibold)}.login-account-email{color:var(--os-color-text-secondary);font-size:var(--os-font-size-body)}.login-error{margin:var(--os-space-4) 0 0;border:1px solid var(--os-color-error-border);border-radius:var(--os-radius-md);background:var(--os-color-error-bg);color:var(--os-color-error-text);font-size:var(--os-font-size-body);line-height:var(--os-line-height-body);padding:var(--os-space-3) var(--os-space-4)}.login-note{margin:var(--os-space-4) 0 0;color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);line-height:var(--os-line-height-body)}.auth-loading-panel{width:min(100%,360px);padding:var(--os-space-8)}.access-restricted-panel{width:min(100%,440px);padding:var(--os-space-8)}.access-restricted-eyebrow{margin:0;color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);text-transform:uppercase}.access-restricted-panel h1{margin:var(--os-space-3) 0 0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-lg);line-height:var(--os-line-height-tight)}.access-restricted-panel p:not(.access-restricted-eyebrow){margin:var(--os-space-4) 0 0;color:var(--os-color-text-secondary);font-size:var(--os-font-size-body-large);line-height:var(--os-line-height-body)}.authorization-actions{display:flex;flex-wrap:wrap;gap:var(--os-space-3);margin-top:var(--os-space-6)}.authorization-action{width:auto;min-width:112px;padding:0 var(--os-space-4)}.auth-loading-lines{display:grid;gap:var(--os-space-3);margin-top:var(--os-space-6)}.auth-loading-line{display:block;width:58%;height:10px;border-radius:var(--os-radius-pill);background:var(--os-color-bg-subtle)}.auth-loading-line--wide{width:82%}.app-shell{display:grid;min-height:100vh;grid-template-columns:272px minmax(0,1fr);background:var(--os-color-bg-app)}.sidebar{display:flex;flex-direction:column;gap:var(--os-space-8);border-right:1px solid var(--os-color-border-subtle);background:var(--os-color-bg-sidebar);padding:var(--os-space-8) var(--os-space-6)}.sidebar__brand{display:flex;flex-direction:column;gap:var(--os-space-2)}.sidebar__brand strong{color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-sm);font-weight:var(--os-font-weight-bold)}.sidebar__eyebrow,.top-header__eyebrow{color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);text-transform:uppercase}.sidebar__nav{display:flex;flex-direction:column;gap:var(--os-space-2)}.sidebar__link{border-radius:var(--os-radius-md);color:var(--os-color-text-secondary);font-size:var(--os-font-size-sidebar);font-weight:var(--os-font-weight-semibold);padding:var(--os-space-3) var(--os-space-4);transition:background-color var(--os-duration-fast) var(--os-ease-standard),color var(--os-duration-fast) var(--os-ease-standard)}.sidebar__link:hover,.sidebar__link--active{background:var(--os-color-bg-subtle);color:var(--os-color-text-primary)}.sidebar__link--group-start{margin-top:var(--os-space-4)}.workspace{display:flex;min-width:0;flex-direction:column}.top-header{display:flex;align-items:center;justify-content:space-between;gap:var(--os-space-6);min-height:92px;border-bottom:1px solid var(--os-color-border-subtle);background:#fffdfadb;padding:var(--os-space-6) var(--os-space-8);position:sticky;top:0;z-index:var(--os-z-header);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.top-header h1{margin:var(--os-space-1) 0 0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-md);line-height:var(--os-line-height-tight)}.top-header__tools{display:flex;align-items:center;gap:var(--os-space-3)}.top-header__profile{display:flex;min-height:38px;align-items:center;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-pill);background:var(--os-color-bg-surface);color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold)}.top-header__profile{justify-content:center;border-color:transparent;background:transparent;padding:0 var(--os-space-4)}.main-content{flex:1;padding:var(--os-space-8)}.placeholder-page{display:flex;min-height:360px;flex-direction:column;align-items:flex-start;justify-content:center;padding:var(--os-space-12)}.placeholder-page h2{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-lg);line-height:var(--os-line-height-tight)}.placeholder-page p{margin:var(--os-space-3) 0 0;color:var(--os-color-text-secondary);font-size:var(--os-font-size-body-large)}.placeholder-page__label{margin-bottom:var(--os-space-3);color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);text-transform:uppercase}.page-header{max-width:720px;margin-bottom:var(--os-space-8)}.page-header h2{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-lg);line-height:var(--os-line-height-tight)}.page-header p{margin:var(--os-space-3) 0 0;color:var(--os-color-text-secondary);font-size:var(--os-font-size-body-large);line-height:var(--os-line-height-body)}.families-page-header{display:grid;max-width:none;align-items:start;column-gap:var(--os-space-6);grid-template-columns:minmax(0,1fr) auto;row-gap:var(--os-space-3)}.families-page-header h2{grid-column:1;grid-row:1}.families-page-header p{grid-column:1;grid-row:2;margin:0}.families-page-header .os-button{grid-column:2;grid-row:1 / span 2;justify-self:end}.dashboard-page{width:min(100%,1180px);margin:0 auto}.dashboard-greeting{max-width:720px;margin-bottom:var(--os-space-12)}.dashboard-greeting h2{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-lg);line-height:var(--os-line-height-tight)}.dashboard-greeting p{margin:var(--os-space-3) 0 0;color:var(--os-color-text-secondary);font-size:var(--os-font-size-body-large);line-height:var(--os-line-height-body)}.dashboard-section{margin-bottom:var(--os-space-8)}.dashboard-section--attention{margin-bottom:var(--os-space-10)}.dashboard-section>h3{margin:0 0 var(--os-space-4);color:var(--os-color-text-secondary);font-size:var(--os-font-size-sidebar);font-weight:var(--os-font-weight-semibold)}.today-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--os-space-4)}.today-card{min-height:132px;padding:var(--os-space-6)}.today-card h3,.quiet-panel h3{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-sm);line-height:var(--os-line-height-tight)}.quiet-panel{min-height:152px;padding:var(--os-space-8)}.dashboard-field-list{display:grid;gap:var(--os-space-4);margin:var(--os-space-5) 0 0}.dashboard-field-list--panel{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-field{display:flex;min-width:0;flex-direction:column;gap:var(--os-space-3)}.dashboard-field dt{color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold)}.dashboard-field dd{width:min(100%,132px);height:10px;margin:0;border-radius:var(--os-radius-pill);background:var(--os-color-bg-subtle)}.families-page,.family-profile-page,.static-module-page{width:min(100%,1180px);margin:0 auto}.add-family-card{max-width:720px;background:var(--os-color-bg-surface);padding:var(--os-space-8)}.add-family-form{display:grid;gap:var(--os-space-5)}.add-family-form label{display:grid;gap:var(--os-space-2)}.add-family-form .families-search{width:100%}.add-family-actions{display:flex;gap:var(--os-space-3);margin-top:var(--os-space-3)}.module-empty-state{min-height:280px;padding:var(--os-space-12)}.module-empty-state h3{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-sm);line-height:var(--os-line-height-tight)}.module-empty-state p{max-width:520px;margin:var(--os-space-3) 0 0;color:var(--os-color-text-secondary);font-size:var(--os-font-size-body);line-height:var(--os-line-height-body)}.families-toolbar{display:flex;align-items:center;gap:var(--os-space-3);margin-bottom:var(--os-space-6)}.families-filter{display:flex;min-height:44px;align-items:center;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-lg);background:var(--os-color-bg-surface);color:var(--os-color-text-tertiary);font-size:var(--os-font-size-body);font-weight:var(--os-font-weight-medium)}.families-search{flex:1;min-height:44px;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-lg);background:var(--os-color-bg-surface);color:var(--os-color-text-primary);font:inherit;padding:0 var(--os-space-4)}.families-search::placeholder{color:var(--os-color-text-tertiary)}.families-filter{justify-content:center;min-width:104px;padding:0 var(--os-space-4)}.families-list{display:grid;gap:var(--os-space-4);margin-bottom:var(--os-space-6)}.family-card{display:grid;grid-template-columns:minmax(112px,1fr) minmax(132px,1.1fr) minmax(140px,1.1fr) minmax(72px,.55fr) minmax(88px,.75fr) minmax(88px,.75fr) minmax(112px,.9fr) minmax(112px,.9fr);gap:var(--os-space-4);padding:var(--os-space-6);transition:border-color var(--os-duration-fast) var(--os-ease-standard),background-color var(--os-duration-fast) var(--os-ease-standard)}.family-card:hover{border-color:var(--os-color-border-strong);background:var(--os-color-bg-surface)}.family-card__field{display:flex;min-width:0;flex-direction:column;gap:var(--os-space-3)}.family-card__field span:first-child{color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold)}.family-card__placeholder{width:min(100%,120px);height:10px;border-radius:var(--os-radius-pill);background:var(--os-color-bg-subtle)}.families-empty-state{padding:var(--os-space-8)}.families-empty-state h3{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-sm)}.families-empty-state p{max-width:520px;margin:var(--os-space-2) 0 0;color:var(--os-color-text-secondary);font-size:var(--os-font-size-body);line-height:var(--os-line-height-body)}.family-profile-tabs{display:flex;flex-wrap:wrap;gap:var(--os-space-2);margin-bottom:var(--os-space-6)}.family-profile-tab{display:inline-flex;min-height:34px;align-items:center;border:1px solid var(--os-color-border-subtle);border-radius:var(--os-radius-pill);background:var(--os-color-bg-surface);color:var(--os-color-text-secondary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold);padding:0 var(--os-space-4);font-family:inherit}.family-profile-tab--active{border-color:var(--os-color-border-strong);background:var(--os-color-bg-subtle);color:var(--os-color-text-primary)}.family-profile-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--os-space-4)}.family-profile-section{min-height:156px;padding:var(--os-space-6)}.family-profile-section h3{margin:0;color:var(--os-color-text-primary);font-size:var(--os-font-size-heading-sm);line-height:var(--os-line-height-tight)}.family-profile-fields{display:grid;gap:var(--os-space-4);margin:var(--os-space-5) 0 0}.family-profile-field{display:flex;min-width:0;flex-direction:column;gap:var(--os-space-3)}.family-profile-field dt{color:var(--os-color-text-tertiary);font-size:var(--os-font-size-caption);font-weight:var(--os-font-weight-semibold)}.family-profile-field dd{width:min(100%,132px);height:10px;margin:0;border-radius:var(--os-radius-pill);background:var(--os-color-bg-subtle)}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--os-color-border-subtle)}.sidebar__nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.top-header,.main-content{padding:var(--os-space-6)}.top-header{align-items:flex-start;flex-direction:column}.top-header__tools{width:100%;flex-wrap:wrap}.families-toolbar{align-items:stretch;flex-direction:column}.families-page-header{grid-template-columns:minmax(0,1fr)}.families-page-header .os-button{grid-column:1;grid-row:3;justify-self:start}.families-filter{justify-content:flex-start}.dashboard-field-list--panel,.family-card,.family-profile-grid,.today-grid{grid-template-columns:1fr}}
