#root{min-height:100vh}.app-shell{display:grid;min-height:100vh;padding:1rem;place-items:center}.tracker-card{width:min(100%,56rem);padding:clamp(1.25rem,5vw,3.5rem);border:1px solid #e8e4da;border-radius:1.5rem;background:#fffefa;box-shadow:0 1.5rem 4rem #322f2512}.tracker-header,.section-heading,.category-item,.category-actions,.rename-form,.form-row{display:flex;align-items:center}.tracker-header,.section-heading,.category-item{justify-content:space-between;gap:1rem}.tracker-header{align-items:flex-start}.header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.6rem}.primary-navigation{display:flex;gap:.2rem;padding:.2rem;border-radius:.75rem;background:#edf2eb}.nav-button{min-height:2.5rem;padding:.45rem .75rem;color:#395c43;background:transparent}.nav-button:hover,.active-nav-button{color:#fff;background:#395c43}.eyebrow,.section-kicker{margin:0 0 .75rem;color:#55705b;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.5rem,9vw,4.5rem);letter-spacing:-.06em;line-height:1}.welcome-copy{max-width:40rem;margin:1.25rem 0 0;color:#52594f;font-size:1rem;line-height:1.6}.person-search-section{display:grid;gap:.75rem;margin-top:1.75rem}.person-search-section h2{margin:0;font-size:clamp(1.5rem,5vw,2rem);letter-spacing:-.035em}.person-search-control{display:flex;align-items:center;gap:.5rem}.person-search-control input{width:100%}.person-search-results,.person-category-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.person-search-result{width:100%;color:#252a25;background:#f7f5f0;text-align:left}.person-search-result:hover{background:#edf2eb}.selected-person-panel{display:grid;gap:.75rem;padding:1rem;border:1px solid #e8e4da;border-radius:.8rem;background:#fff}.selected-person-panel h3{margin:0;font-size:1.1rem}.person-category-list li{border-radius:.6rem;background:#f7f8f3}.person-category-link{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .75rem;color:#252a25;background:transparent;text-align:left}.person-category-link:hover{background:#edf2eb}.person-category-date{color:#62685f;text-align:right}.planning-section{margin-top:1.75rem;padding:1.25rem;border:1px solid #e8e4da;border-radius:1rem;background:#f7f8f3}.upcoming-list{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}.upcoming-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border-radius:.65rem;background:#fff}.upcoming-item>div{display:grid;gap:.2rem}.upcoming-category{color:#62685f;font-size:.9rem}.upcoming-date{color:#395c43;font-weight:650;text-align:right}.dashboard-category-meta{color:#62685f;font-size:.85rem;font-weight:500;text-align:right}button,input{font:inherit}button{min-height:2.75rem;padding:.65rem 1rem;border:0;border-radius:.6rem;color:#fff;background:#395c43;cursor:pointer;font-weight:650}button:disabled{opacity:.6;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #86a990;outline-offset:2px}.secondary-button{color:#395c43;background:#edf2eb}.category-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e8e4da}.section-heading h2{margin:0;font-size:clamp(1.5rem,5vw,2rem);letter-spacing:-.035em}.section-kicker{margin-bottom:.35rem;font-size:.68rem}.category-count{display:grid;width:2.5rem;height:2.5rem;border-radius:50%;color:#395c43;background:#edf2eb;font-weight:700;place-items:center}.category-form{display:grid;gap:.55rem;margin-top:1.5rem}.category-form label{font-size:.9rem;font-weight:650}.form-row{gap:.65rem}input{min-width:0;min-height:2.75rem;padding:.65rem .8rem;border:1px solid #c8cec4;border-radius:.6rem;color:#252a25;background:#fff}.form-row input{flex:1}.category-list{display:grid;gap:.65rem;margin:1.25rem 0 0;padding:0;list-style:none}.category-item{min-height:4rem;flex-wrap:wrap;padding:.65rem .8rem .65rem 1rem;border:1px solid #e8e4da;border-radius:.8rem;background:#fff}.category-open-button{display:flex;width:100%;min-height:3rem;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;color:#252a25;background:transparent;text-align:left}.category-open-button:hover{background:#f7f8f3}.category-name{flex:1;overflow-wrap:anywhere;font-weight:650}.shared-event-date-display{margin:.6rem 0 0;color:#395c43;font-size:.9rem;font-weight:650}.membership-list{display:grid;gap:.6rem;margin:.75rem 0 0;padding:0;list-style:none}.membership-photo{display:grid;justify-items:start;gap:.5rem}.membership-photo img{display:block;width:min(100%,12rem);max-height:12rem;border-radius:.65rem;object-fit:cover}.photo-upload-button{display:inline-flex;min-height:2.5rem;align-items:center;padding:.45rem .7rem;border-radius:.6rem;color:#395c43;background:#edf2eb;cursor:pointer;font-size:.9rem;font-weight:650}.photo-upload-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.photo-upload-button:focus-within{outline:3px solid #86a990;outline-offset:2px}.membership-date-form{display:flex;align-items:center;gap:.45rem}.membership-date-form label,.membership-add-form label{font-size:.85rem;font-weight:650}.membership-date-form input{width:10rem}.membership-add-form{display:grid;gap:.5rem;margin-top:1rem}.detail-section{display:grid;gap:1rem}.detail-section .section-heading{align-items:center}.detail-section .section-heading h2{overflow-wrap:anywhere}.detail-search-label{margin-top:.5rem;font-weight:650}.detail-membership-list{margin-top:0}.detail-membership-item{min-height:0;padding:.5rem .85rem}.membership-detail-card{display:grid;gap:1rem;padding:1rem;border:1px solid #e8e4da;border-radius:.8rem;background:#fff}.membership-detail-photo{justify-items:start}.membership-detail-photo img{width:min(100%,24rem);max-height:24rem}.detail-date-form{margin:0;padding:0}.detail-date-form input{width:12rem}.detail-section>.shared-event-date-display{margin:0}.category-management-settings{display:grid;width:100%;flex-basis:100%;gap:.75rem;padding-top:.9rem;border-top:1px solid #e8e4da}.category-mode-form,.shared-date-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.category-mode-form label,.shared-date-form label{font-size:.85rem;font-weight:650}.category-mode-form select{flex:1}.shared-date-form input{width:10rem}select{min-width:0;min-height:2.75rem;flex:1;padding:.65rem .8rem;border:1px solid #c8cec4;border-radius:.6rem;color:#252a25;background:#fff;font:inherit}select:focus-visible{outline:3px solid #86a990;outline-offset:2px}.category-actions{flex-shrink:0;gap:.2rem}.text-button{min-height:2.5rem;padding:.45rem .65rem;color:#395c43;background:transparent}.text-button:hover{background:#edf2eb}.danger-button{color:#9d3434}.danger-button:hover{background:#fbefed}.rename-form{width:100%;gap:.5rem}.rename-form input{flex:1}.empty-state,.status-message{margin:1.25rem 0 0;padding:1rem;border-radius:.75rem;color:#62685f;background:#f7f5f0;line-height:1.55}.error-message{margin:1rem 0 0;padding:.8rem 1rem;border-radius:.65rem;color:#8c2525;background:#fbefed;line-height:1.5}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@media(max-width:480px){.app-shell{padding:.75rem;place-items:start center}.tracker-card{padding:1.25rem 1rem;border-radius:1rem}.tracker-header{align-items:center}.eyebrow{max-width:14rem;font-size:.65rem;line-height:1.4}.form-row,.rename-form{flex-wrap:wrap}.form-row input,.form-row select,.rename-form input{flex-basis:100%}.form-row button{width:100%}.category-item{align-items:flex-start}.membership-date-form{grid-column:1 / -1;flex-wrap:wrap}.person-category-list li{display:block}.person-category-link{align-items:flex-start;flex-direction:column;gap:.25rem}.person-category-date{text-align:left}.header-actions{flex-direction:column;align-items:flex-end}.primary-navigation{max-width:100%}.category-mode-form,.shared-date-form{align-items:stretch}.category-mode-form label,.shared-date-form label,.category-mode-form select,.shared-date-form input,.category-mode-form button,.shared-date-form button{width:100%}.membership-photo{grid-column:1 / -1}.membership-date-form input{flex:1}.category-open-button{align-items:flex-start;flex-direction:column;gap:.25rem}.detail-section .section-heading{align-items:flex-start;flex-direction:column}.detail-section .section-heading>button{width:100%}.detail-date-form{align-items:stretch;flex-direction:column}.detail-date-form label,.detail-date-form input,.detail-date-form button{width:100%}.category-actions{gap:0}}@media(min-width:760px){.app-shell{padding:3rem}.category-list{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#252a25;background:#f7f5f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}
