.hub-page{--hub-blue: #2f6690;--hub-blue-dark: #24506f;--hub-accent: #407da8;--hub-text: #393e3f;--hub-muted: #5c6466;--hub-border: #e5e5e2;--hub-error: #b3261e;box-sizing:border-box;max-width:960px;margin:0 auto;padding:2rem 1rem 3rem;color:var(--hub-text);text-align:center}.hub-page *,.hub-page *:before,.hub-page *:after{box-sizing:border-box}.hub-header{margin-bottom:2rem}.hub-logo{display:block;height:64px;width:auto;max-width:100%;margin:0 auto 1rem}.hub-eyebrow{margin:0 0 .25rem;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--hub-muted)}.hub-title{margin:0 0 .75rem;font-size:2.25rem;line-height:1.15;color:var(--hub-text)}.hub-welcome{max-width:34rem;margin:0 auto 1.5rem;font-size:1.05rem;line-height:1.5;color:var(--hub-text)}.hub-header .hub-welcome{margin-bottom:0}.hub-role,.hub-status{color:var(--hub-muted)}.hub-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;align-items:start;text-align:left}.hub-card{display:flex;flex-direction:column;align-items:flex-start;padding:1.5rem;background:#fff;border:1px solid var(--hub-border);border-top:4px solid var(--hub-accent);border-radius:8px}.hub-card-placeholder{background:#f6f6f4;border-top-color:#b9bfc1}.hub-card-placeholder h2{margin-bottom:.75rem;color:var(--hub-muted)}.hub-card-narrow{max-width:28rem;margin:0 auto 1rem}.hub-card h2{margin:0 0 .5rem;font-size:1.25rem;color:var(--hub-text)}.hub-card p{margin:0 0 1.25rem;line-height:1.5;color:var(--hub-text)}.hub-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.25rem;font:inherit;font-weight:600;color:var(--hub-blue);background:#fff;border:2px solid var(--hub-blue);border-radius:6px;cursor:pointer;text-decoration:none}.hub-button:hover{background:#eef4f8}.hub-button-solid{color:#fff;background:var(--hub-blue)}.hub-button-solid:hover{background:var(--hub-blue-dark);border-color:var(--hub-blue-dark)}.hub-page a:focus-visible,.hub-page button:focus-visible,.hub-page input:focus-visible{outline:3px solid var(--hub-accent);outline-offset:2px}.hub-code-form{width:100%;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--hub-border)}.hub-code-form label{display:block;margin-bottom:.4rem;font-weight:600}.hub-code-form input{display:block;width:100%;min-height:44px;padding:.5rem .75rem;font:inherit;color:var(--hub-text);background:#fff;border:1px solid #8a9294;border-radius:6px}.hub-code-form input[aria-invalid=true]{border-color:var(--hub-error)}.hub-code-form .hub-button{margin-top:.25rem}.hub-hint{margin:.35rem 0 0!important;font-size:.85rem;color:var(--hub-muted)!important}.hub-error{margin:.35rem 0 .75rem!important;min-height:1.2em;font-size:.9rem;color:var(--hub-error)!important}.hub-error-visible{margin:0 0 1rem!important}.hub-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:0 0 1.5rem;padding:0;list-style:none;text-align:left}.hub-tile{display:flex;flex-direction:column;gap:.5rem;height:100%;min-height:150px;padding:1.25rem;color:var(--hub-text);background:#fff;border:1px solid var(--hub-border);border-top:4px solid var(--hub-accent);border-radius:8px;text-decoration:none}a.hub-tile:hover{border-color:var(--hub-accent);box-shadow:0 2px 8px #393e3f26}.hub-tile-name{font-size:1.15rem;font-weight:700}.hub-tile-text{line-height:1.4;color:var(--hub-muted)}.hub-tile-go{margin-top:auto;font-weight:600;color:var(--hub-blue)}.hub-tile-disabled{background:#f6f6f4;border-top-color:#b9bfc1;color:var(--hub-muted)}.hub-badge{align-self:flex-start;padding:.2rem .6rem;font-size:.8rem;font-weight:600;color:var(--hub-muted);background:#fff;border:1px solid #b9bfc1;border-radius:999px}.hub-back{margin-top:2rem;font-size:.9rem}.hub-back a{color:var(--hub-blue)}@media (max-width: 900px){.hub-paths{grid-template-columns:1fr}}@media (max-width: 640px){.hub-title{font-size:1.85rem}.hub-card{padding:1.25rem}.hub-button{width:100%}}:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;--coastal-blue: #407da8;--coastal-black: #000000;--hub-blue: #2f6690;--hub-blue-dark: #24506f;--hub-accent: #407da8;--hub-text: #393e3f;--hub-muted: #5c6466;--hub-border: #e5e5e2;--hub-error: #b3261e;--hub-surface: #f6f6f4;--hub-tint: #eef4f8;--hub-input-border: #8a9294;--hub-disabled: #b9bfc1}body{margin:0;background:#fff;color:var(--hub-text)}.app-shell{max-width:640px;margin:0 auto;padding:2rem 1.25rem 4rem}.wizard,.wizard *,.wizard *:before,.wizard *:after{box-sizing:border-box}.wizard{color:var(--hub-text)}.wizard .hub-header{text-align:center}.wizard .hub-eyebrow{margin-bottom:.25rem}.wizard .hub-welcome{margin-left:auto;margin-right:auto}.wizard h2{margin:0 0 .75rem;font-size:1.25rem;line-height:1.3;color:var(--hub-text)}.wizard h3{margin:0 0 .5rem;font-size:1.05rem;line-height:1.3;color:var(--hub-text)}.wizard p{margin:0 0 .85rem;line-height:1.5}.panel,.manager-section{margin-bottom:1.25rem;padding:1.5rem;background:#fff;border:1px solid var(--hub-border);border-top:4px solid var(--hub-accent);border-radius:8px}.panel>:last-child,.manager-section>:last-child{margin-bottom:0}.wizard .hub-back{margin-top:2rem;text-align:center}.wizard .hub-back a{display:inline-block;margin:0 .75rem .4rem}.wizard a:focus-visible,.wizard button:focus-visible,.wizard input:focus-visible,.wizard select:focus-visible,.wizard textarea:focus-visible,.wizard [role=button]:focus-visible{outline:3px solid var(--hub-accent);outline-offset:2px}.wizard .error-message{margin-bottom:1rem;font-size:.95rem;color:var(--hub-error)}.loading-message,.empty-message{font-size:.95rem;color:var(--hub-muted)}.confirmation{padding:1.25rem;background:var(--hub-tint);border:1px solid var(--hub-border);border-top:4px solid var(--hub-blue);border-radius:8px}.confirmation p:last-child{margin-bottom:0}.panel>.confirmation{margin:-1.5rem;padding:1.5rem;border:none;border-radius:0 0 7px 7px}.breadcrumb{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:1.25rem}.crumb{padding:.2rem .7rem;font-size:.85rem;font-weight:600;color:var(--hub-muted);background:#fff;border:1px solid var(--hub-disabled);border-radius:999px}.crumb.done{color:#fff;background:var(--hub-blue);border-color:var(--hub-blue)}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.option-btn{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:0;padding:.6rem 1rem;font:inherit;font-weight:600;color:var(--hub-blue);text-align:center;text-decoration:none;background:#fff;border:2px solid var(--hub-blue);border-radius:6px;cursor:pointer;overflow-wrap:break-word}.option-btn:hover{background:var(--hub-tint)}.hub-button:disabled{opacity:.6;cursor:default}.hub-button:disabled:hover{background:#fff}.hub-button-solid:disabled:hover{background:var(--hub-blue);border-color:var(--hub-blue)}.restart-btn{display:inline-block;padding:.5rem 0;font:inherit;font-size:.95rem;color:var(--hub-blue);text-align:left;text-decoration:underline;background:none;border:none;cursor:pointer}.wizard>.restart-btn{display:block;margin:0 auto}.delete-btn{padding:.4rem .25rem;font:inherit;font-size:.9rem;font-weight:600;color:var(--hub-error);text-decoration:underline;white-space:nowrap;background:none;border:none;cursor:pointer}.delete-btn:disabled{opacity:.6;cursor:default}.hub-tile-button{width:100%;font:inherit;text-align:left;cursor:pointer}.hub-tile-button:hover{border-color:var(--hub-accent);box-shadow:0 2px 8px #393e3f26}.member-form,.specific-form{display:flex;flex-direction:column;gap:1rem}.specific-form{margin-top:1rem}.member-form .hub-button,.specific-form .hub-button{align-self:flex-start}.member-form label,.specific-form label,.elder-select-label{display:flex;flex-direction:column;gap:.4rem;font-weight:600;color:var(--hub-text)}.member-form label .empty-message,.specific-form label .empty-message{font-weight:400}.member-form input,.member-form textarea,.member-form select,.specific-form input[type=date],.specific-form input[type=number],.specific-form input[type=text],.specific-form select,.elder-select{display:block;width:100%;min-height:44px;padding:.5rem .75rem;font:inherit;font-weight:400;color:var(--hub-text);background:#fff;border:1px solid var(--hub-input-border);border-radius:6px}.member-form textarea{min-height:6rem;resize:vertical}.wizard input[type=radio]{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--hub-blue)}.manager-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 0;font-size:.95rem;line-height:1.4;border-bottom:1px solid var(--hub-border)}.manager-section>h2+.manager-row{padding-top:0}.manager-section>.manager-row:last-child{padding-bottom:0;border-bottom:none}.manager-row+.member-form,.manager-row+.specific-form{margin-top:1.25rem}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .9rem}.toggle-chip,.slot-chip{min-height:36px;padding:.3rem .8rem;font:inherit;font-size:.85rem;font-weight:600;color:var(--hub-blue);background:#fff;border:1px solid var(--hub-blue);border-radius:999px;cursor:pointer}.toggle-chip:hover,.slot-chip:hover{background:var(--hub-tint)}.toggle-chip.toggle-chip-active,.slot-chip.slot-chip-on{color:#fff;background:var(--hub-blue)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar-month-label{font-size:1.1rem;font-weight:700}.calendar-nav-btn{width:40px;height:40px;font-size:1.25rem;line-height:1;color:var(--hub-blue);background:#fff;border:2px solid var(--hub-blue);border-radius:6px;cursor:pointer}.calendar-nav-btn:hover:not(:disabled){background:var(--hub-tint)}.calendar-nav-btn:disabled{color:var(--hub-disabled);border-color:var(--hub-border);cursor:not-allowed}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekday{padding-bottom:4px;font-size:.75rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--hub-muted)}.calendar-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:0;font:inherit;font-size:.9rem;color:#a3aaac;background:#fff;border:1px solid var(--hub-border);border-radius:6px;cursor:default}.calendar-day-loading{background:var(--hub-surface);border-color:var(--hub-surface)}.calendar-day-outside{color:transparent;border-color:transparent;pointer-events:none}.calendar-day-open{font-weight:700;color:var(--hub-blue);border:2px solid var(--hub-blue);cursor:pointer}.calendar-day-open:hover{background:var(--hub-tint)}.calendar-day-open.calendar-day-selected,.calendar-day-selected{color:#fff;background:var(--hub-blue)}.calendar-times{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--hub-border)}.calendar-time-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.calendar-escapes{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:1.25rem;padding-top:.75rem;border-top:1px solid var(--hub-border)}.availability-grid{display:grid;grid-template-columns:4.25rem repeat(7,minmax(0,1fr));gap:3px;overflow-x:auto;-webkit-user-select:none;user-select:none}.availability-grid-corner{background:transparent}.availability-grid-day-header{position:relative;padding-bottom:4px;font-size:.75rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--hub-muted)}.availability-grid-dirty-dot{position:absolute;top:-2px;right:2px;width:8px;height:8px;background:var(--hub-blue);border-radius:999px}.availability-grid-slot-label{display:flex;align-items:center;justify-content:flex-end;padding-right:6px;font-size:.75rem;color:var(--hub-muted);white-space:nowrap}.availability-grid-cell{height:22px;background:var(--hub-surface);border:1px solid var(--hub-border);border-radius:4px;cursor:pointer;touch-action:none}.availability-grid-cell:hover{border-color:var(--hub-accent)}.availability-grid-cell-selected{background:var(--hub-blue);border-color:var(--hub-blue)}.availability-grid-actions{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:.5rem 0 .75rem}.specific-mode{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:.75rem 1rem;border:1px solid var(--hub-border);border-radius:6px}.specific-mode legend{padding:0 .25rem;font-weight:600}.specific-mode label{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}.specific-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.specific-range label{flex:1 1 9rem}.specific-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}
