.header{background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.header-inner{max-width:var(--max-width);margin:0 auto;padding:.6rem;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:.55rem}.logo-mark{color:var(--color-primary);font-size:1.1rem;line-height:1}.logo-text{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.header-actions{display:flex;align-items:center;gap:1rem}.header-count{font-size:.85rem;color:var(--color-text-muted);font-weight:400}.btn-reset{background:none;border:2px solid var(--color-border);border-radius:var(--radius);padding:.4rem;font-size:.8rem;font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;text-transform:uppercase;transition:border-color .2s,color .2s}.btn-reset:hover{border-color:var(--color-danger);color:var(--color-danger)}.dashboard{background:var(--color-bg);border-bottom:1px solid var(--color-border);overflow:hidden}.dashboard-banner-wrap{display:flex;max-width:var(--max-width);margin:0 auto;line-height:0;align-items:flex-start}.dashboard-banner{flex:1;width:50%;height:auto;display:block}.dashboard-inner{max-width:var(--max-width);margin:0 auto;padding:2rem 1rem}.dashboard-title{font-family:var(--font-heading);font-size:2rem;font-weight:600;color:var(--color-text);line-height:1.08;letter-spacing:-.02em;margin-bottom:1rem}.dashboard-description{font-size:.95rem;color:var(--color-text-body);line-height:1.75;margin-bottom:.5rem;font-weight:300}.dashboard-checklists{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.dashboard-list-status{font-size:.875rem;color:var(--color-text-muted);padding:1rem 0}.dashboard-list-error{font-size:.875rem;color:var(--color-danger);background:#fdf0ef;border:1px solid #f5c6c2;border-radius:var(--radius);padding:.6rem .9rem}.dashboard-empty{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:2.25rem 1rem;background:var(--color-cream);border:1px dashed var(--color-border);border-radius:10px;text-align:center}.dashboard-empty-icon{color:var(--color-primary);opacity:.55;margin-bottom:.25rem}.dashboard-empty-icon .dashboard-house-icon{width:2.5rem;height:2.5rem}.dashboard-empty-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;color:var(--color-text)}.dashboard-empty-body{font-size:.875rem;color:var(--color-text-muted);max-width:28ch;line-height:1.55}.dashboard-checklist-list{list-style:none;display:flex;flex-direction:column;gap:.55rem}.dashboard-checklist-item{display:flex;align-items:flex-start;gap:.75rem;background:var(--color-cream);border:1px solid var(--color-border);border-radius:8px;padding:.85rem 1rem;transition:box-shadow .15s,border-color .15s,background .15s;cursor:pointer}.dashboard-checklist-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow)}.dashboard-checklist-item--selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-cream));box-shadow:var(--shadow)}.dashboard-checklist-loading{font-size:.78rem;font-style:italic;color:var(--color-text-muted);flex-shrink:0}.dashboard-checklist-delete{flex-shrink:0;align-self:center;background:none;border:none;padding:.3rem;border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s;line-height:0}.dashboard-checklist-delete svg{width:1rem;height:1rem;display:block}.dashboard-checklist-item:hover .dashboard-checklist-delete,.dashboard-checklist-item--selected .dashboard-checklist-delete{opacity:1}.dashboard-checklist-delete:hover:not(:disabled){color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,transparent)}.dashboard-checklist-delete:disabled{opacity:.4;cursor:default}.dashboard-checklist-icon{flex-shrink:0;color:var(--color-primary);margin-top:.15rem}.dashboard-house-icon{width:1.25rem;height:1.25rem;display:block}.dashboard-checklist-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.dashboard-checklist-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.dashboard-checklist-name{font-size:.9rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-checklist-pct{font-size:.78rem;font-weight:700;color:var(--color-primary);flex-shrink:0}.dashboard-checklist-track{height:4px;background:var(--color-cream-deep);border-radius:99px;overflow:hidden}.dashboard-checklist-fill{height:100%;background:var(--color-primary);border-radius:99px;transition:width .3s ease;min-width:4px}.dashboard-checklist-meta{font-size:.75rem;color:var(--color-text-muted)}.dashboard-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding-top:.25rem}.dashboard-page-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:.3rem .8rem;font-size:.8rem;font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.dashboard-page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.dashboard-page-btn:disabled{opacity:.35;cursor:default}.dashboard-page-info{font-size:.8rem;color:var(--color-text-muted);min-width:3rem;text-align:center}.dashboard-btn-new{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:.6rem;font-size:.7rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background .15s;letter-spacing:.02em}.dashboard-btn-new:hover:not(:disabled){background:var(--color-primary-dark)}.dashboard-btn-new:disabled{opacity:.5;cursor:default}.dashboard-new-form{display:flex;flex-direction:column;gap:.6rem}.dashboard-new-input{width:100%;padding:.55rem .9rem;font-size:.875rem;font-family:var(--font-body);color:var(--color-text);background:var(--color-cream);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.dashboard-new-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.dashboard-new-actions{display:flex;gap:.5rem}.dashboard-btn-cancel{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:.6rem 1.2rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.dashboard-btn-cancel:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.dashboard-btn-cancel:disabled{opacity:.5;cursor:default}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--color-bg);border-radius:8px;padding:1.25rem;max-width:360px;width:calc(100% - 2rem);box-shadow:0 4px 24px #00000026}.modal-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:600;color:var(--color-text);margin-bottom:.5rem}.modal-body{font-size:.875rem;color:var(--color-text-body);line-height:1.55;margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem}.modal-btn-cancel{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.modal-btn-danger{background:var(--color-danger);border:none;border-radius:var(--radius);padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);color:#fff;cursor:pointer;transition:background .15s}@media (max-width: 720px){.dashboard-title{font-size:1.75rem}}.progress-container{position:relative;height:5px;background:var(--color-cream-deep);border-radius:99px;margin-bottom:2rem;overflow:visible}.progress-bar{height:100%;background:var(--color-primary);border-radius:99px;transition:width .4s ease;min-width:0}.progress-label{position:absolute;right:0;top:-1.4rem;font-size:.75rem;font-weight:600;color:var(--color-primary);font-family:var(--font-body)}.checklist-item{padding:.65rem 1.25rem;border-bottom:1px solid var(--color-border);transition:background .15s}.checklist-item:last-child{border-bottom:none}.checklist-item:hover{background:var(--color-cream)}.item-row{display:flex;align-items:center;gap:.5rem}.item-label{display:flex;align-items:center;gap:.6rem;flex:1;cursor:pointer}.item-label input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.item-text{font-size:.875rem;color:var(--color-text-body);font-family:var(--font-body);transition:color .2s,text-decoration .2s}.checklist-item.completed .item-text{text-decoration:line-through;color:var(--color-completed-text)}.btn-note{flex-shrink:0;background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:.2rem .5rem;font-size:.7rem;color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);transition:border-color .15s,color .15s;white-space:nowrap}.btn-note:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-note.has-note{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-cream)}.note-preview{font-size:.8rem;color:var(--color-text-muted);margin-top:.35rem;padding:.4rem .6rem;background:var(--color-cream);border-left:2px solid var(--color-primary);border-radius:0 4px 4px 0;cursor:pointer;white-space:pre-wrap;word-break:break-word;font-family:var(--font-body);transition:background .15s}.note-preview:hover{background:var(--color-cream-deep)}.note-editor{margin-top:.4rem;display:flex;flex-direction:column;gap:.4rem}.note-textarea{width:100%;padding:.5rem;font-size:.85rem;font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;outline:none;line-height:1.4}.note-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #5b7b5e1a}.note-actions{display:flex;align-items:center;gap:.4rem;justify-content:flex-end}.note-char-count{font-size:.72rem;color:var(--color-text-muted);margin-right:auto}.note-char-count--warn{color:#b94040;font-weight:600}.btn-save{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:.3rem .9rem;font-size:.8rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background .15s}.btn-save:hover{background:var(--color-primary-dark)}.btn-cancel{background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:.3rem .8rem;font-size:.8rem;font-family:var(--font-body);cursor:pointer;transition:border-color .15s,color .15s}.btn-cancel:hover{border-color:var(--color-text-muted);color:var(--color-text)}.item-description{font-size:.9rem;color:var(--color-text-muted);margin-top:.4rem;line-height:1.55;font-family:var(--font-body)}.item-description p{margin:0 0 .45rem}.item-description p:last-child{margin-bottom:0}.item-description ul,.item-description ol{margin:0 0 .45rem;padding-left:1.1rem}.item-description ul:last-child,.item-description ol:last-child{margin-bottom:0}.item-description li{margin-bottom:.25rem}.item-description li:last-child{margin-bottom:0}.item-description strong{font-weight:600;color:var(--color-text)}.external-link-icon{display:inline-block;width:.7em;height:.7em;margin-left:.2em;vertical-align:.1em;flex-shrink:0;opacity:.65}.item-rating{display:flex;gap:.35rem;margin-top:.4rem}.rating-btn{padding:.18rem .65rem;font-size:.72rem;font-family:var(--font-body);font-weight:500;border-radius:999px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.rating-btn--good{background:none;border:1px solid #4a7c59;color:#4a7c59}.rating-btn--good:hover,.rating-btn--good.active{background:#4a7c59;color:#fff}.rating-btn--neutral{background:none;border:1px solid #b07d2a;color:#b07d2a}.rating-btn--neutral:hover,.rating-btn--neutral.active{background:#b07d2a;color:#fff}.rating-btn--bad{background:none;border:1px solid #b94040;color:#b94040}.rating-btn--bad:hover,.rating-btn--bad.active{background:#b94040;color:#fff}@media (max-width: 600px){.checklist-item{padding:.6rem .75rem}.item-text{font-size:.9rem;line-height:1.4}.item-label{align-items:flex-start}.item-label input[type=checkbox]{margin-top:.15rem}.item-description{font-size:.9rem;line-height:1.6}.item-description ul,.item-description ol{padding-left:1rem}.item-rating{flex-wrap:wrap;gap:.4rem}.rating-btn{padding:.22rem .75rem;font-size:.75rem}.note-preview{font-size:.82rem}}.planning-zones-section{background:var(--color-bg);padding:.75rem .5rem .5rem}.planning-zones-inner{max-width:var(--content-width);margin:0 auto}.planning-zones-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .75rem;margin-bottom:.5rem}.planning-zones-title{font-size:.9rem;font-weight:700;color:var(--color-text);white-space:nowrap}.planning-zones-subtitle{color:var(--color-text-muted);font-size:.75rem;line-height:1.4}.state-selector-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;min-width:0;overflow:hidden}.state-selector-label{font-size:.7rem;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.state-selector{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23777' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;border:1.5px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-family:var(--font-body);font-size:.85rem;padding:.3rem 2rem .3rem .5rem;cursor:pointer;transition:border-color .15s;max-width:100%;width:220px;min-width:0;overflow:hidden;text-overflow:ellipsis}.state-selector:focus{border-color:var(--color-accent);outline:none}.state-selector:hover{border-color:var(--color-accent)}.state-prompt{color:var(--color-text-muted);font-size:.8rem;font-style:italic;margin:0 0 .5rem}.coming-soon-message{background:var(--color-cream);border:1.5px dashed var(--color-border);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center;color:var(--color-text-muted)}.coming-soon-icon{font-size:1.5rem;margin-bottom:.3rem}.coming-soon-message h3{font-size:.9rem;color:var(--color-text);margin-bottom:.2rem}.coming-soon-message p{font-size:.8rem}.zones-container{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.category-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;gap:0;border-bottom:2px solid var(--color-cream-deep);margin-bottom:.75rem}.category-tabs::-webkit-scrollbar{display:none}.category-tab{background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.03em;padding:.4rem .7rem;text-transform:uppercase;transition:color .15s,border-bottom-color .15s;white-space:nowrap;flex-shrink:0}.category-tab:hover{color:var(--color-text)}.carousel-wrapper{display:flex;align-items:stretch;gap:.4rem}.carousel-viewport{flex:1;overflow:hidden}.carousel-track{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.carousel-page{display:flex;flex:0 0 100%;gap:.6rem}.zone-card{background:var(--color-surface);border:1px solid var(--color-cream-deep);border-top:3px solid var(--color-primary);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;flex:1;min-width:0;padding:.65rem .75rem .75rem;transition:box-shadow .2s,transform .2s}.zone-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.zone-code{align-self:flex-start;border-radius:3px;color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.06em;margin-bottom:.35rem;padding:.15rem .4rem;text-transform:uppercase}.scheme-benefit{display:block;font-size:1.1rem;font-weight:700;margin-bottom:.25rem}.zone-title{color:var(--color-text);font-size:.85rem;font-weight:700;line-height:1.3;margin-bottom:.35rem}.zone-description{color:var(--color-text-body);font-size:.78rem;line-height:1.5}.carousel-arrow{align-items:center;align-self:center;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:50%;color:var(--color-text);cursor:pointer;display:flex;flex-shrink:0;font-size:1.25rem;height:1.75rem;justify-content:center;line-height:1;transition:background .15s,border-color .15s,color .15s;width:1.75rem}.carousel-arrow:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.carousel-arrow:disabled{cursor:not-allowed;opacity:.25}.carousel-dots{display:flex;justify-content:center;gap:.35rem;margin-top:.6rem}.carousel-dot{background:var(--color-cream-deep);border:none;border-radius:50%;cursor:pointer;height:6px;padding:0;transition:background .15s,transform .15s;width:6px}.carousel-dot.active{background:var(--color-primary);transform:scale(1.4)}.carousel-dot:hover:not(.active){background:var(--color-accent)}.zones-source{color:var(--color-text-muted);font-size:.7rem;margin-top:.6rem;text-align:right}.zones-source a{color:var(--color-accent);text-decoration:none}.zones-source a:hover{text-decoration:underline}@media (max-width: 600px){.planning-zones-header{flex-direction:column;gap:.15rem}.planning-zones-subtitle{display:none}.state-selector-row{gap:.35rem}.carousel-page{gap:0}.zone-card{padding:.6rem .65rem .65rem}.zone-title{font-size:.8rem}.zone-description{font-size:.75rem}}.planning-overlays-section{background:var(--color-bg);padding:.75rem .5rem .5rem}.planning-overlays-inner{max-width:var(--content-width);margin:0 auto}.easements-section{background:var(--color-bg);padding:.75rem .5rem .5rem}.easements-grid{display:flex;gap:.75rem}.easement-card{flex:1;min-width:0;background:var(--color-surface);border:1px solid var(--color-cream-deep);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.easement-image{display:block;width:30%;height:auto;margin:auto;object-fit:contain}.easement-description{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;font-size:.8rem;line-height:1.5;color:var(--color-text-body)}.easement-description--tick{background:#f0faf4;border-top:1px solid #c3e6cb}.easement-description--warning{background:#fffbf0;border-top:1px solid #fde68a}.easement-icon{flex-shrink:0;font-size:1rem;line-height:1.4}.easement-description--tick .easement-icon{color:#27ae60}.easement-description--warning .easement-icon{color:#d97706}.easement-description p{margin:0}@media (max-width: 600px){.easements-grid{flex-direction:column}}.category-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s,box-shadow .2s}.category-section:hover{border-color:var(--color-accent);box-shadow:var(--shadow-hover)}.category-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.category-header:hover{background:var(--color-cream)}.category-title-wrap{display:flex;align-items:center;gap:.5rem}.category-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.section-complete-tick{font-size:.85rem;font-weight:700;color:#fff;background:#d0392b;border-radius:50%;width:1.35rem;height:1.35rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.category-meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.category-count{font-size:.75rem;background:var(--color-cream);color:var(--color-primary);border:1px solid var(--color-border);border-radius:99px;padding:.1rem .6rem;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-body)}.collapse-icon{font-size:1rem;color:var(--color-text-muted);width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:50%;-webkit-user-select:none;user-select:none;font-style:normal}.item-list{list-style:none;border-top:1px solid var(--color-border)}.global-state-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem .75rem;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}@media (max-width: 600px){.global-state-selector{flex-direction:column;align-items:flex-start;gap:.35rem}.global-state-selector .state-selector-label{white-space:normal;font-size:.8rem}.global-state-selector .state-selector{width:100%}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:400px;box-shadow:0 4px 24px #0000001a;animation:modal-in .15s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--color-border)}.modal-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.modal-close{background:none;border:none;font-size:.9rem;color:var(--color-text-muted);cursor:pointer;padding:.25rem;line-height:1;transition:color .15s}.modal-close:hover{color:var(--color-text)}.modal-form{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.modal-field{display:flex;flex-direction:column;gap:.4rem}.modal-label{font-size:.78rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-body)}.modal-label-optional{font-weight:400;text-transform:none;letter-spacing:0;font-size:.78rem;color:var(--color-text-muted)}.modal-input,.modal-textarea{font-family:var(--font-body);font-size:.9rem;color:var(--color-text);background:var(--color-cream);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6rem .85rem;outline:none;width:100%;transition:border-color .2s,box-shadow .2s}.modal-textarea{resize:vertical;line-height:1.5}.modal-input:focus,.modal-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #5b7b5e1a}.modal-input::placeholder,.modal-textarea::placeholder{color:var(--color-completed-text)}.star-group{display:flex;gap:.25rem;margin-top:.2rem}.star{background:none;border:none;font-size:2rem;color:var(--color-border);cursor:pointer;padding:0;line-height:1;transition:color .1s,transform .1s}.star:hover,.star-filled{color:#e0a000}.star:hover{transform:scale(1.15)}.star-label{font-size:.82rem;color:var(--color-text-muted);margin-top:.35rem;font-family:var(--font-body)}.modal-body{font-size:.9rem;color:var(--color-text-body);line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.25rem}.modal-btn-cancel{background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem 1rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:border-color .15s,color .15s}.modal-btn-cancel:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.modal-btn-danger{background:var(--color-danger);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1.3rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background .15s}.modal-btn-danger:hover:not(:disabled){background:var(--color-primary-dark)}.modal-btn-cancel:disabled,.modal-btn-danger:disabled{opacity:.5;cursor:default}.modal-btn-primary{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1.3rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background .15s}.modal-btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.modal-btn-primary:disabled{opacity:.4;cursor:default}.modal-btn-secondary{background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem 1rem;font-size:.875rem;font-family:var(--font-body);cursor:pointer;transition:border-color .15s,color .15s}.modal-btn-secondary:hover{border-color:var(--color-text-muted);color:var(--color-text)}.modal-error{font-size:.85rem;color:#c0392b;background:#fdf0ef;border:1px solid #f5c6c2;border-radius:var(--radius);padding:.5rem .85rem}.modal-success{padding:1.5rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.modal-success-icon{width:2rem;height:2rem;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:700;margin-bottom:.35rem}.modal-success-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;color:var(--color-text)}.modal-success-body{font-size:.9rem;color:var(--color-text-muted);margin-bottom:1rem}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:1.5rem}.footer-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between}.footer-copy{font-size:.8rem;color:var(--color-text-muted);font-family:var(--font-body)}.footer-links{display:flex;align-items:center;gap:.6rem}.footer-link{background:none;border:none;font-size:.8rem;font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;padding:0;transition:color .15s;text-decoration:underline;text-underline-offset:3px;text-decoration-color:transparent;transition:color .15s,text-decoration-color .15s}.footer-link:hover{color:var(--color-primary);text-decoration-color:var(--color-primary)}.footer-divider{font-size:.8rem;color:var(--color-border);-webkit-user-select:none;user-select:none}.hero{background:var(--color-bg);padding:1rem;border-bottom:1px solid var(--color-border)}.hero-inner{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-items:start}.hero-image-wrap{display:flex;justify-content:center;align-items:flex-start}.hero-image{width:100%;max-width:480px;height:auto;object-fit:contain}.hero-eyebrow{font-family:var(--font-body);font-size:.72rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.14em;margin-top:.14rem;margin-bottom:.14rem;margin-left:auto;margin-right:auto;width:80%;text-align:center}.hero-title{font-family:var(--font-heading);font-size:2rem;font-weight:600;color:var(--color-text);line-height:1.08;letter-spacing:-.02em;margin-bottom:1.4rem}.hero-description{font-size:1rem;color:var(--color-text-body);line-height:1.75;margin-bottom:1rem;font-weight:300}.hero-features{list-style:none;display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.2rem}.hero-features li{display:flex;align-items:flex-start;gap:.65rem;font-size:.9rem;color:var(--color-text-body);font-weight:400}.feature-icon{color:var(--color-primary);font-weight:700;flex-shrink:0;margin-top:.1em;font-size:.85rem}.hero-progress-badge{display:flex;align-items:center;gap:.5rem;background:var(--color-cream);border:1px solid var(--color-border);border-radius:99px;padding:.5rem 1.25rem}.hero-progress-badge .btn-reset{margin-left:auto;background:none;border:none;padding:0;font-size:.78rem;font-weight:400;color:var(--color-primary);text-decoration:underline;text-transform:none;letter-spacing:0;cursor:pointer}.hero-progress-badge .btn-reset:hover:not(:disabled){color:var(--color-primary-dark)}.hero-progress-badge .btn-reset:disabled{color:var(--color-text-muted);text-decoration:none;cursor:default}.hero-badge-num{font-family:var(--font-heading);font-size:1.3rem;font-weight:700;color:var(--color-primary);line-height:1}.hero-badge-label{font-size:.82rem;color:var(--color-text-muted);font-weight:400}.hero-signin{margin-top:.5rem}.hero-signin-label{font-size:.78rem;color:var(--color-text-muted);margin-bottom:.75rem;font-weight:400}.hero-signin-buttons{display:flex;flex-direction:row;gap:.6rem;flex-wrap:wrap}.btn-signin{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.1rem;border-radius:var(--radius);font-size:.875rem;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s;border:1px solid var(--color-border)}.signin-icon{width:1.1rem;height:1.1rem;flex-shrink:0}.btn-google{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-google:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);box-shadow:var(--shadow)}.btn-facebook{background:#1877f2;color:#fff;border-color:#1877f2}.btn-facebook:hover{background:#1669d9;box-shadow:var(--shadow)}@media (max-width: 720px){.hero-inner{grid-template-columns:1fr;gap:2rem}.hero-image-wrap{order:-1}.hero-title{font-size:2.4rem}.hero-signin-buttons{width:80%}}
