.page-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;line-height:2rem}.page-title-lg{font-family:var(--font-display);font-size:1.875rem;font-weight:600;line-height:2.25rem}.card-title{font-family:var(--font-display);font-size:1.125rem;font-weight:600;line-height:1.75rem}.group:hover .card-title--accent{color:var(--color-clay-dark)}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-soft);font-size:.75rem;font-weight:600}.text-muted{color:var(--color-ink-soft)}.field-error{color:var(--color-clay-dark);margin-top:.25rem;font-size:.75rem}.link{cursor:pointer;color:var(--color-clay-dark)}.link:hover{text-decoration:underline}.link-muted{cursor:pointer;color:var(--color-ink-soft)}.link-muted:hover{color:var(--color-ink)}.link-subtle{cursor:pointer;text-decoration:underline}.link-subtle:hover{color:var(--color-ink)}.page-container{max-width:48rem;margin-left:auto;margin-right:auto;padding:2rem 1.5rem}.page-container--sm{max-width:24rem}.page-container--form{max-width:36rem}.page-container--md{max-width:56rem}.page-container--wide{max-width:64rem}.page-container--full{max-width:100%}.btn,.btn-ghost,.btn-outline-danger,.btn-danger,.btn-dark,.btn-secondary,.btn-primary{white-space:nowrap;cursor:pointer;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;line-height:1.25rem;transition:background-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--color-clay);color:#fff}.btn-primary:hover{background:var(--color-clay-dark)}.btn-secondary{border:1px solid var(--color-line);color:var(--color-ink);background:0 0}.btn-secondary:hover{background:var(--color-paper-2)}.btn-dark{background:var(--color-ink);color:#fff}.btn-dark:hover{background:#000}.btn-danger{background:color-mix(in srgb, var(--color-clay) 10%, transparent);color:var(--color-clay-dark)}.btn-danger:hover{background:color-mix(in srgb, var(--color-clay) 20%, transparent)}.btn-outline-danger{border:1px solid var(--color-line);color:var(--color-clay-dark);background:0 0}.btn-outline-danger:hover{background:var(--color-paper-2)}.btn-ghost{color:var(--color-ink-soft);padding:.375rem .75rem}.btn-ghost:hover{color:var(--color-clay-dark)}.btn-block{width:100%}.btn-sm{border-radius:.5rem;padding:.375rem .75rem;font-size:.8125rem}.btn-lg{border-radius:.75rem;padding:.75rem 1.5rem;font-size:1rem}.form-input,.form-textarea,.form-select{border:1px solid var(--color-line);background:var(--color-paper);width:100%;color:var(--color-ink);border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;display:block}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-clay);outline:none}.form-input--soft,.form-textarea--soft,.form-select--soft{background:var(--color-paper-2);padding:.625rem .75rem}.form-input--lg,.form-textarea--lg,.form-select--lg{padding:.75rem 1rem;font-size:1.125rem;font-weight:500}.form-input--sm,.form-textarea--sm,.form-select--sm{padding:.375rem .75rem;font-size:.75rem}.form-input--inline,.form-textarea--inline,.form-select--inline{width:auto;display:inline-block}.file-input{width:100%;color:var(--color-ink-soft);font-size:.875rem;display:block}.file-input::file-selector-button{background:var(--color-ink);color:#fff;border:0;border-radius:.5rem;margin-right:.75rem;padding:.375rem 1rem;font-size:.875rem;font-weight:500}.file-input:hover::file-selector-button{background:#000}.color-input{cursor:pointer;border:1px solid var(--color-line);background:var(--color-paper);border-radius:.5rem;width:3rem;height:2.375rem;padding:.25rem}.form-label{color:var(--color-ink-soft);margin-bottom:.25rem;font-size:.75rem;font-weight:500;display:block}.form-check{accent-color:var(--color-clay);border-radius:.25rem}.form-check:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-clay) 50%, transparent);outline:none}.checkable-row{cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.375rem .5rem;display:flex}.checkable-row:hover{background:var(--color-paper)}.checkable-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem;display:grid}@media (width>=640px){.checkable-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.visibility-hint{color:var(--color-ink-soft);margin-top:.5rem;font-size:.75rem}.inline-form-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin-top:1rem;display:flex}.checkbox-label{color:var(--color-ink-soft);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.card,.invite-card,.card-list{border:1px solid var(--color-line);background:var(--color-paper-2);border-radius:1rem}.card--hover{transition:transform .15s,box-shadow .15s}.card--hover:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.card--shadow{transition:box-shadow .15s}.card--shadow:hover{box-shadow:0 4px 12px #00000014}.card-list>*+*{border-top:1px solid var(--color-line)}.card-row{align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.card-row--interactive{cursor:pointer}.card-row--interactive:hover{background:var(--color-paper)}.activity-row{align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.comment-row{align-items:flex-start;gap:.75rem;scroll-margin-top:5rem;display:flex}.comment-row--new>.flex-1>.card,.comment-row--new>.flex-1>.invite-card,.comment-row--new>.flex-1>.card-list{border-left:3px solid var(--color-clay)}.comment-flash .card,.comment-flash .invite-card,.comment-flash .card-list{animation:2.2s ease-out comment-flash}@keyframes comment-flash{0%,30%{background-color:color-mix(in srgb, var(--color-clay) 22%, transparent)}to{background-color:#0000}}.activity-actor{color:var(--color-ink);font-weight:500}.card-list-item{padding:.75rem 1rem;display:block}.card-list-item:hover{background:var(--color-paper)}.search-snippet{-webkit-line-clamp:1;color:var(--color-ink-soft);-webkit-box-orient:vertical;margin-top:.125rem;font-size:.875rem;display:-webkit-box;overflow:hidden}.badge{border-radius:9999px;align-items:center;padding:.125rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge-clay{background:color-mix(in srgb, var(--color-clay) 15%, transparent);color:var(--color-clay-dark)}.badge-sage{background:color-mix(in srgb, var(--color-sage) 15%, transparent);color:#4a7a4d}.badge-gold{background:color-mix(in srgb, var(--color-gold) 20%, transparent);color:#8a5a1f}.badge-blue{color:#3a5a82;background:#8ba3c726}.badge-muted{background:var(--color-paper);color:var(--color-ink-soft)}.counter{background:var(--color-clay);color:#fff;border-radius:9999px;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .25rem;font-size:.75rem;font-weight:600;display:grid}.segmented-btn--active .counter{background:#ffffff38}.new-count{color:var(--color-clay-dark);align-items:center;gap:.25rem;margin-left:.25rem;font-weight:600;display:inline-flex}.new-count:before{content:"";background:var(--color-clay);border-radius:9999px;width:.375rem;height:.375rem}.unread-dot{vertical-align:middle;background:var(--color-clay);border-radius:9999px;width:.4rem;height:.4rem;margin-left:.375rem;display:inline-block}.nav-link{color:var(--color-ink-soft);border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;display:flex}.nav-link:hover{background:var(--color-paper)}.nav-link--active{background:var(--color-paper);color:var(--color-clay-dark)}.nav-link--bordered{border:1px solid var(--color-line);padding:.625rem 1rem}.tab-link{white-space:nowrap;color:var(--color-ink-soft);border-radius:.5rem .5rem 0 0;padding:.5rem .75rem;font-size:.875rem;font-weight:500}.tab-link:hover{color:var(--color-ink)}.tab-link--active{border-bottom:2px solid var(--color-clay);color:var(--color-clay-dark)}.tab-link--active:hover{color:var(--color-clay-dark)}.segmented-btn{cursor:pointer;border:1px solid var(--color-line);color:var(--color-ink-soft);border-radius:.5rem;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.segmented-btn:hover{background:var(--color-paper-2)}.segmented-btn--active{background:var(--color-ink);color:#fff;border-color:#0000}.segmented-btn--active:hover{background:#000}.dropdown-trigger{position:relative}.dropdown-menu{z-index:20;border:1px solid var(--color-line);background:var(--color-paper);border-radius:.75rem;margin-top:.25rem;padding:.25rem 0;position:absolute;overflow:hidden;box-shadow:0 4px 16px #0000001a}.dropdown-menu--left{left:0}.dropdown-menu--right{right:0}.dropdown-menu--full{left:0;right:0}.dropdown-menu--up{margin-top:0;margin-bottom:.25rem;top:auto;bottom:100%}.dropdown-item{text-align:left;cursor:pointer;width:100%;color:var(--color-ink);padding:.5rem 1rem;font-size:.875rem;display:block}.dropdown-item:hover{background:var(--color-paper-2)}.dropdown-item--danger{color:var(--color-clay-dark)}.dropdown-search{border-bottom:1px solid var(--color-line);padding:.375rem .5rem}.dropdown-search input{width:100%}.dropdown-list--scroll{max-height:12rem;overflow-y:auto}.dropdown-divider{border-color:var(--color-line);margin:.25rem 0}.alert{border-radius:.5rem;margin-top:1rem;padding:.5rem .75rem;font-size:.875rem}.alert-error{background:color-mix(in srgb, var(--color-clay) 15%, transparent);color:var(--color-clay-dark)}.alert-success{background:color-mix(in srgb, var(--color-sage) 15%, transparent);color:#4a7a4d}.alert-info{border:1px dashed var(--color-line);color:var(--color-ink-soft);font-size:.75rem}.info-panel{border:1px solid var(--color-line);background:var(--color-paper);border-radius:.75rem;margin-top:1rem;padding:1rem}.info-panel--row{justify-content:space-between;align-items:center;display:flex}.invite-link-box{border:1px solid var(--color-sage);background:color-mix(in srgb, var(--color-sage) 10%, transparent);border-radius:.75rem;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1rem;display:flex}.invite-link-copy{border:1px solid var(--color-sage);border-radius:.5rem;flex-shrink:0;padding:.375rem .75rem;font-size:.75rem;font-weight:500}.avatar{background:var(--color-sage);color:#fff;border-radius:9999px;place-items:center;width:2rem;height:2rem;font-size:.875rem;font-weight:600;display:grid}.avatar-xs{width:1.25rem;height:1.25rem;font-size:.625rem}.avatar-sm{width:1.5rem;height:1.5rem;font-size:.6875rem}.avatar-lg{width:2.5rem;height:2.5rem;font-size:1rem}.avatar-accent{background:var(--color-clay)}.avatar-ring{border:2px solid var(--color-paper-2)}.color-dot{background:var(--dot);border-radius:9999px;flex-shrink:0;width:.625rem;height:.625rem;display:inline-block}.color-dot-md{width:.75rem;height:.75rem}.color-dot-lg{width:1rem;height:1rem}.color-swatch{background:var(--swatch);border-radius:9999px;width:2.25rem;height:2.25rem;display:block;box-shadow:0 0 0 2px #0000}input:checked+.color-swatch{box-shadow:0 0 0 2px var(--color-ink)}.role-table{width:100%;color:var(--color-ink-soft);margin-top:.75rem;font-size:.75rem}.role-table th,.role-table td{text-align:center;padding:.5rem 0}.role-table th:first-child,.role-table td:first-child{text-align:left}.role-table th{font-weight:500}.role-table td:first-child{color:var(--color-ink);font-weight:500}.role-table thead tr{border-bottom:1px solid var(--color-line)}.role-table tbody tr+tr{border-top:1px solid var(--color-line)}.empty-state{text-align:center;color:var(--color-ink-soft);padding:1.5rem 1rem;font-size:.875rem}.empty-state--bordered{border:1px dashed var(--color-line);border-radius:1rem;padding:4rem 1rem}.divider-line{background:var(--color-line);flex:1;height:1px}.danger-zone{border-top:1px solid var(--color-line);flex-wrap:wrap;gap:.75rem;margin-top:3rem;padding-top:1.5rem;display:flex}.toast{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:color-mix(in srgb, var(--color-paper) 92%, transparent);border:1px solid;border-radius:.75rem;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;display:flex;box-shadow:0 10px 30px #0000001f}.toast--success{border-color:var(--color-sage);color:#4a7a4d}.toast--error{border-color:var(--color-clay);color:var(--color-clay-dark)}.toast-close{opacity:.6;flex-shrink:0;line-height:1}.toast-close:hover{opacity:1}.swal2-container .swal2-popup.hearth-swal{border:1px solid var(--color-line);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);border-radius:1rem;padding:1.75rem;box-shadow:0 20px 50px #0000002e}.swal2-container .swal2-popup.hearth-swal .swal2-title{font-family:var(--font-display);color:var(--color-ink);font-size:1.25rem;font-weight:600}.swal2-container .swal2-popup.hearth-swal .swal2-html-container{color:var(--color-ink-soft);font-size:.9375rem}.swal2-container .swal2-popup.hearth-swal .swal2-actions{gap:.75rem}.swal2-container .swal2-popup.hearth-swal-toast{border:1px solid var(--color-line);background:color-mix(in srgb, var(--color-paper) 96%, transparent);color:var(--color-ink);font-family:var(--font-sans);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:.75rem;box-shadow:0 10px 30px #0000001f}.swal2-container .swal2-popup.hearth-swal-toast .swal2-title{color:var(--color-ink);font-size:.875rem;font-weight:500}.truncate-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.page-header-bar{border-bottom:1px solid var(--color-line);background:var(--color-paper-2)}.page-header-inner{max-width:64rem;margin-left:auto;margin-right:auto;padding:1.5rem 1.5rem 0}.page-header-inner--md{max-width:56rem}.page-header-tabs{gap:.25rem;margin-top:1.25rem;display:flex;overflow-x:auto}.app-body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.app-shell{min-height:100vh;display:flex}.app-main{flex:1;overflow-x:hidden}.sidebar{border-right:1px solid var(--color-line);background:var(--color-paper-2);flex-direction:column;flex-shrink:0;width:16rem;height:100vh;display:none;position:sticky;top:0}@media (width>=768px){.sidebar{display:flex}}.sidebar-brand{align-items:center;gap:.5rem;padding:1.25rem;display:flex}.brand-icon{background:var(--color-clay);border-radius:.75rem;place-items:center;width:2.25rem;height:2.25rem;font-size:1.125rem;display:grid}.sidebar-scroll{flex:1;overflow-y:auto}.sidebar-search{padding:0 .75rem .75rem}.sidebar-nav{padding:0 .75rem}.sidebar-section{justify-content:space-between;align-items:center;margin-top:1rem;padding:0 1.25rem;display:flex}.sidebar-projects{margin-top:.25rem;padding:0 .75rem 1rem}.sidebar-project-list{margin-top:.5rem}.sidebar-project-list>*+*{margin-top:.125rem}.sidebar-footer{border-top:1px solid var(--color-line);background:var(--color-paper-2);flex-shrink:0;padding:.75rem;position:sticky;bottom:0}.sidebar-footer>*+*{margin-top:.25rem}.sidebar-profile{border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem;display:flex}.centered-page{justify-content:center;align-items:center;min-height:100vh;padding:0 1rem;display:flex}.invite-card{width:100%;max-width:28rem;padding:2rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.invite-target{font-family:var(--font-display);color:var(--color-clay-dark);margin-top:.25rem;font-size:1.25rem;font-weight:600}.note-box{background:var(--color-paper);color:var(--color-ink-soft);border-radius:.75rem;margin-top:1rem;padding:.75rem 1rem;font-size:.875rem;font-style:italic}.invite-footnote{text-align:center;color:var(--color-ink-soft);font-size:.875rem}.invite-footnote--xs{font-size:.75rem}.modal-backdrop{z-index:50;background:color-mix(in srgb, var(--color-ink) 40%, transparent);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{width:100%;max-width:28rem;max-height:85vh;padding:1.25rem;overflow:hidden auto;box-shadow:0 20px 50px #0003}.modal-card--wide{max-width:56rem}.modal-title{font-family:var(--font-display);font-size:1.125rem;font-weight:600}.tooltip{z-index:60;background:var(--color-ink);width:max-content;max-width:18rem;color:var(--color-paper);pointer-events:none;opacity:0;border-radius:.5rem;padding:.3rem .55rem;font-size:.75rem;font-weight:500;line-height:1.35;transition:opacity .12s,transform .12s;position:fixed;top:0;left:0;transform:translateY(2px);box-shadow:0 4px 16px #0000002e}.tooltip--visible{opacity:1;transform:translateY(0)}.tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--color-ink);margin-left:-4px;position:absolute;top:100%;left:50%}.tooltip--below:after{border-top-color:#0000;border-bottom-color:var(--color-ink);top:auto;bottom:100%}
