:root{--teal:#01665e;--teal-mid:#35978f;--amber:#bf812d;--amber-dark:#8c510a;--amber-warm:#b08050;--text:#2a2a2a;--text-mid:#5a5550;--text-light:#8a847e;--text-faint:#aaa49e;--text-ghost:#c8c2bc;--bg:#f5f2ee;--bg-card:#fff;--bg-subtle:#faf9f7;--border:#e0dbd4;--border-light:#ede9e4;--border-mid:#d8d2cc;--danger:#b94040}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior-x:none;overflow-x:clip}body{background-color:var(--bg);color:var(--text);overscroll-behavior-x:none;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;position:relative;overflow-x:clip}#root{width:100%;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2,h3{line-height:1.2}.modal-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:12px;flex-direction:column;gap:1rem;width:100%;max-width:420px;padding:2rem;display:flex;box-shadow:0 8px 32px #0000002e}.modal h3{color:var(--text);margin:0;font-size:1.2rem}.modal p{color:var(--text-mid);margin:0;line-height:1.5}.modal-actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.event-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:1rem;padding:1.25rem;transition:box-shadow .2s;display:flex;position:relative;overflow:hidden}.event-card__delete{color:#c0bab4;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.55rem .65rem;font-size:.9rem;line-height:1;transition:color .15s,background-color .15s;position:absolute;top:.25rem;right:.25rem}.event-card__delete:hover{color:var(--danger);background-color:#fdf0f0}.event-card:hover{box-shadow:0 4px 12px #00000014}.event-card--past{opacity:.65}.event-card__name{color:var(--text);margin-bottom:.25rem;font-size:1.05rem;font-weight:600}.event-card__location{color:var(--text-mid);font-size:.9rem}.event-card__dates{color:var(--text-light);margin-top:.25rem;font-size:.85rem}.event-card__footer{gap:.5rem;margin-top:auto;display:flex}.event-card__progress-track{background:var(--border);height:4px;position:absolute;bottom:0;left:0;right:0}.event-card__progress-fill{background:var(--teal);height:100%;transition:width .3s}.home-page{flex-direction:column;gap:2.5rem;display:flex}.section-header{flex-direction:column-reverse;align-items:flex-end;gap:.35rem;margin-bottom:1rem;display:flex}.section-header h2{align-self:flex-start;margin-bottom:0}@media (width<=360px){.section-header{gap:2.5rem;margin-bottom:.5rem}}.events-section h2{color:var(--text-light);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;font-size:.8rem;font-weight:600}.event-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1rem;display:grid}.empty-state{color:var(--text-light);font-size:.95rem}.reminder-banner{background:#f0f7ee;border:1px solid #a8c4a0;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.reminder-banner__text{color:#3a5a36;font-size:.95rem;line-height:1.4}.reminder-banner__actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.reminder-banner__dismiss{color:#7a9a76;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.reminder-banner__dismiss:hover{color:#3a5a36}.reminder-banner--weather{border-color:var(--amber);background:#fdf4e7}.reminder-banner--weather .reminder-banner__text{color:#7a5520}.create-event-page h2{margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.event-form{flex-direction:column;gap:1.25rem;max-width:560px;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group>label{color:var(--text);font-size:.9rem;font-weight:500}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=420px){.form-row{grid-template-columns:1fr}}input[type=text],input[type=number],input[type=date]{border:1px solid var(--text-ghost);background:var(--bg-card);color:var(--text);border-radius:6px;width:100%;padding:.55rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}input[type=text]:focus,input[type=number]:focus,input[type=date]:focus{border-color:var(--text);outline:none}.form-fieldset{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.form-fieldset legend{color:var(--text-mid);padding:0 .4rem;font-size:.9rem;font-weight:600}.checkbox-group{flex-wrap:wrap;gap:1.5rem;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:.4rem;font-size:.95rem;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--text)}.form-hint{color:var(--text-light);margin-top:.1rem;font-size:.82rem}.form-label-optional{color:var(--text-light);font-size:.8rem;font-weight:400}.form-error{color:var(--danger);margin-top:.1rem;font-size:.85rem}.form-actions{justify-content:flex-end;gap:.75rem;padding-top:.5rem;display:flex}.packing-list-page{flex-direction:column;gap:1.5rem;display:flex}.packing-list-header{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;display:flex}.btn-back{color:var(--text-mid);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.2rem 0 0;font-size:.9rem}.btn-back:hover{color:var(--text)}.btn-reset{border:1px solid var(--border-mid);color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;transition:all .15s}.btn-reset:hover{color:var(--text-mid);border-color:#b0a99e}.packing-list-title{flex:1;min-width:0}.packing-list-title h2{margin-bottom:.2rem;font-size:1.4rem;font-weight:600}.packing-list-title p{color:var(--text-mid);font-size:.9rem}.notes-section{flex-direction:column;gap:.4rem;display:flex}.notes-section label{font-size:.9rem;font-weight:500}.notes-section textarea{border:1px solid var(--text-ghost);background:var(--bg-card);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:.65rem .75rem;font-family:inherit;font-size:.9rem;line-height:1.5;transition:border-color .2s}.notes-section textarea:focus{border-color:var(--text);outline:none}.category-section{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.category-heading{text-transform:uppercase;letter-spacing:.07em;color:var(--text-mid);justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.8rem;font-weight:700;display:flex}.category-count{color:var(--text-faint);font-weight:400}.item-list{margin-bottom:.75rem;list-style:none}.item-row{border-bottom:1px solid var(--bg);align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.item-row:last-child{border-bottom:none}.item-row--packed .item-name{color:#b0a99e;text-decoration:line-through}.item-checkbox{width:17px;height:17px;accent-color:var(--text);cursor:pointer;flex-shrink:0}.item-name{color:var(--text);font-size:.95rem}.item-note{color:var(--text-light);font-size:.8rem;font-style:italic;line-height:1.4}.item-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.item-qty{align-items:center;gap:.25rem;display:flex}.qty-btn{border:1px solid var(--border-mid);min-width:32px;min-height:32px;color:var(--text-mid);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;line-height:1;transition:all .15s;display:flex}.qty-btn:hover:not(:disabled){border-color:var(--text);color:var(--text)}.qty-btn:disabled{opacity:.3;cursor:default}.qty-value{color:var(--text);text-align:center;min-width:1.5rem;font-size:.85rem}.btn-buy{border:1px solid var(--border-mid);color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.2rem .55rem;font-size:.75rem;transition:all .15s}.btn-buy:hover{color:var(--text-mid);border-color:#b0a99e}.btn-buy--active{color:#7a5c30;background:#f5efe6;border-color:#c4a882}.btn-remove{color:var(--text-ghost);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.5rem .6rem;font-size:.8rem;line-height:1;transition:all .15s}.btn-remove:hover{color:var(--text-light);background:#f0ece7}.item-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.item-row--child{background:var(--bg-subtle);border-bottom-color:#f0ece7;padding-left:2rem}.item-row--add-sub-form{padding-top:.4rem;padding-bottom:.4rem;padding-left:2rem;list-style:none}.add-item-form--sub{margin-top:0}.btn-add-sub{color:var(--text-ghost);cursor:pointer;text-align:left;opacity:0;background:0 0;border:none;width:fit-content;padding:0;font-size:.75rem;transition:opacity .15s,color .15s}.item-row:hover .btn-add-sub,.btn-add-sub:focus-visible{opacity:1}.btn-add-sub:hover{color:var(--text-light)}.btn-add-item{color:var(--text-light);cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-size:.875rem;transition:color .15s}.btn-add-item:hover{color:var(--text)}.add-item-form{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.add-item-form input{border:1px solid var(--text-ghost);background:var(--bg-card);border-radius:6px;flex:1;padding:.45rem .65rem;font-family:inherit;font-size:.9rem}.add-item-form input:focus{border-color:var(--text);outline:none}.add-category-hint{color:var(--text-faint);font-size:.85rem}.category-section--new,.category-section--rejected{border-color:var(--border-light);background:0 0}.category-heading--rejected{color:#b8b2ac}.item-row--rejected{opacity:.6}.item-row--rejected .item-name{color:var(--text-light);font-style:italic}.item-category-tag{color:var(--text-faint);white-space:nowrap;font-size:.75rem}.btn-restore{border:1px solid var(--border-mid);color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.2rem .55rem;font-size:.78rem;transition:all .15s}.btn-restore:hover{border-color:var(--text);color:var(--text)}.packing-list-header-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.done-packing-section{justify-content:center;padding:2rem 0 1rem;display:flex}.view-tabs{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;gap:0;display:flex;overflow-x:auto}.view-tab{color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.5rem 1rem;font-size:.9rem;transition:all .15s;display:flex}.view-tab:hover{color:var(--text)}.view-tab--active{color:var(--text);border-bottom-color:var(--text);font-weight:500}.btn-filter-remaining{border:1px solid var(--border-mid);color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;align-self:center;margin-left:auto;padding:.25rem .65rem;font-size:.8rem;transition:all .15s}.btn-filter-remaining:hover{color:var(--text-mid);border-color:#b0a99e}.btn-filter-remaining--active{background:var(--teal);border-color:var(--teal);color:var(--bg-card)}.btn-filter-remaining--active:hover{background:var(--teal-mid);border-color:var(--teal-mid);color:var(--bg-card)}.tab-badge{background:var(--text);color:var(--bg-card);border-radius:10px;padding:.1rem .45rem;font-size:.7rem;font-weight:600;line-height:1.4}.qty-label{color:var(--text-light);font-size:.82rem}.empty-state-box{background:var(--bg-card);border:1px solid var(--border);text-align:center;color:var(--text-light);border-radius:10px;flex-direction:column;gap:.4rem;padding:2rem;font-size:.95rem;display:flex}.feedback-banner{color:#5a4a35;background:#f5f0e8;border:1px solid #d9c9b0;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;font-size:.9rem;display:flex}.btn-feedback-toggle{color:#7a5c30;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #c4a882;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;transition:all .15s}.btn-feedback-toggle--active{color:var(--bg-card);background:#7a5c30;border-color:#7a5c30}.btn-feedback{border:1px solid var(--border-mid);color:var(--text-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.2rem .55rem;font-size:.75rem;transition:all .15s}.btn-feedback--didnt-need{color:#9a3a3a;background:#fdf0f0;border-color:#e0b4b4}.btn-feedback--need-more{color:#7a5c30;background:#f5efe6;border-color:#c4a882}.category-section--wish{background:#fdfaf6;border-color:#d9c9b0}.list-choice{flex-direction:column;gap:1rem;display:flex}.list-choice__heading{color:var(--text);font-size:1rem;font-weight:600}.list-choice__options{flex-wrap:wrap;gap:1rem;display:flex}.list-choice__option{background:var(--bg-card);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;flex:1;gap:.4rem;min-width:min(180px,100%);padding:1.25rem;transition:border-color .15s,box-shadow .15s;display:flex}.list-choice__option:hover{border-color:var(--text);box-shadow:0 2px 8px #00000012}.list-choice__option-title{color:var(--text);font-size:.95rem;font-weight:600}.list-choice__option-desc{color:var(--text-light);font-size:.85rem;line-height:1.4}.category-subtext{color:var(--text-light);margin-top:-.4rem;margin-bottom:.75rem;font-size:.85rem}.lnt-page{flex-direction:column;gap:2rem;display:flex}.lnt-page .btn-back{align-self:flex-start}.lnt-header h2{margin-bottom:.35rem;font-size:1.5rem;font-weight:600}.lnt-header p{color:var(--text-mid);font-size:.95rem}.lnt-principles{flex-direction:column;gap:1rem;display:flex}.lnt-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.lnt-card__header{align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.lnt-number{color:var(--text-ghost);letter-spacing:.05em;flex-shrink:0;width:1.5rem;padding-top:.2rem;font-size:.75rem;font-weight:700}.lnt-title{color:var(--text);margin-bottom:.2rem;font-size:1rem;font-weight:600}.lnt-summary{color:var(--text-mid);font-size:.875rem;font-style:italic}.lnt-tips{flex-direction:column;gap:.4rem;padding-left:2.5rem;list-style:none;display:flex}.lnt-tips li{color:#3a3530;padding-left:1rem;font-size:.9rem;line-height:1.5;position:relative}.lnt-tips li:before{content:"—";color:var(--text-ghost);position:absolute;left:-.25rem}.lnt-footer{color:var(--text-faint);text-align:center;padding-bottom:1rem;font-size:.82rem}.about-page{flex-direction:column;gap:1.5rem;display:flex}.about-page .btn-back{align-self:flex-start}.about-header h2{margin-bottom:.35rem;font-size:1.5rem;font-weight:600}.about-header p{color:var(--text-mid);font-size:.95rem;line-height:1.6}.accordion{flex-direction:column;gap:.5rem;display:flex}.accordion-section{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.accordion-header{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:1rem 1.25rem;font-size:.95rem;font-weight:600;transition:background-color .15s;display:flex}.accordion-header:hover{background-color:var(--bg-subtle)}.accordion-chevron{color:var(--text-light);flex-shrink:0;transition:transform .2s}.accordion-section--open .accordion-chevron{transform:rotate(180deg)}.accordion-body{flex-direction:column;gap:1rem;padding:0 1.25rem 1.25rem;display:flex}.about-card{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:8px;flex-direction:column;gap:.65rem;padding:1rem;display:flex}.about-card__heading{color:var(--text);font-size:.9rem;font-weight:600}.about-card p{color:#3a3530;font-size:.9rem;line-height:1.6}.about-list{flex-direction:column;gap:.4rem;padding-left:1rem;list-style:none;display:flex}.about-list li{color:#3a3530;padding-left:1rem;font-size:.9rem;line-height:1.5;position:relative}.about-list li:before{content:"—";color:var(--text-ghost);position:absolute;left:-.25rem}.about-note{background:#f0ece7;border-radius:6px;padding:.65rem .85rem;font-style:italic;color:var(--text-light)!important;font-size:.85rem!important}.about-card--developer{gap:1.25rem}.developer-bio{flex-direction:column;gap:.75rem;display:flex}.developer-links{align-items:center;gap:1rem;display:flex}.developer-links a{color:var(--text-light);align-items:center;transition:color .15s;display:flex}.developer-links a:hover{color:var(--teal)}.improve-item{flex-direction:column;gap:.4rem;display:flex}.improve-item+.improve-item{border-top:1px solid #e8e4df;margin-top:.75rem;padding-top:.75rem}.coming-soon{color:var(--text-faint)!important;font-size:.85rem!important}.feedback-form{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.feedback-row{gap:.75rem;display:flex}.feedback-row .feedback-field{flex:1}.feedback-field{flex-direction:column;gap:.3rem;display:flex}.feedback-field label{color:var(--text-mid);font-size:.85rem;font-weight:600}.feedback-field input,.feedback-field select,.feedback-field textarea{color:var(--text);background:var(--bg-card);border:1px solid var(--border-mid);border-radius:6px;width:100%;padding:.45rem .7rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.feedback-field input:focus,.feedback-field select:focus,.feedback-field textarea:focus{border-color:var(--teal-mid);outline:none}.feedback-field textarea{resize:vertical;min-height:90px;line-height:1.5}.feedback-error{color:var(--danger);font-size:.85rem}.feedback-submit{align-self:flex-start}.feedback-success{color:var(--teal);background:#edf7f5;border:1px solid #b2ddd8;border-radius:8px;margin-top:.5rem;padding:.75rem 1rem;font-size:.9rem}@media (width<=480px){.feedback-row{flex-direction:column}}.kofi-btn{background-color:var(--teal);color:#fff;border-radius:6px;margin-top:.5rem;padding:.45rem 1.1rem;font-size:.9rem;font-weight:500;transition:background-color .15s;display:inline-block}.kofi-btn:hover{background-color:var(--teal-mid)}.app{flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.header{background:linear-gradient(120deg, var(--amber-dark) 0%, var(--teal-mid) 35%, var(--teal) 100%);justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:relative;overflow:hidden}.header-hexes{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.bg-hex-watermark{opacity:.055;width:280px;height:280px;color:var(--teal);pointer-events:none;z-index:0;position:fixed;bottom:0;left:0;overflow:hidden}.logo{color:var(--bg-card);letter-spacing:-.02em;cursor:pointer;text-shadow:0 1px 3px #0006;font-size:1.25rem;font-weight:600}.footer{text-align:center;border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:.6rem;padding:1.25rem 2rem;display:flex}.footer-lnt{color:var(--bg-card);background-color:var(--teal-mid);text-align:center;clip-path:polygon(10% 0%,90% 0%,100% 50%,90% 100%,10% 100%,0% 50%);cursor:pointer;min-width:160px;padding:.4rem 1.5rem;font-size:.9rem;font-weight:500;transition:background-color .15s;display:inline-block}.footer-lnt:hover{background-color:var(--teal)}.footer-about{color:var(--bg-card);background-color:var(--amber-warm);text-align:center;clip-path:polygon(10% 0%,90% 0%,100% 50%,90% 100%,10% 100%,0% 50%);cursor:pointer;min-width:160px;padding:.4rem 1.5rem;font-size:.9rem;font-weight:500;transition:background-color .15s;display:inline-block}.footer-about:hover{background-color:#7a5c30}.main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:2rem;overflow-x:hidden}.btn{cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:500;transition:background-color .2s;display:inline-block}.btn--primary{background-color:var(--teal);color:var(--bg-card)}.btn--primary:hover{background-color:var(--teal-mid)}.btn--secondary{color:#7a5520;border:1px solid var(--amber);background-color:#0000}.btn--secondary:hover{background-color:#fdf4e7}.btn--danger{color:var(--danger);background-color:#0000;border:1px solid #e0b4b4}.btn--danger:hover{background-color:#fdf0f0}@media (width<=360px){.main{padding:2rem 1.25rem}}:focus-visible{outline:2px solid var(--teal-mid);outline-offset:2px;border-radius:3px}.event-site-link{color:var(--text-light);vertical-align:middle;align-items:center;margin-left:.4rem;transition:color .15s;display:inline-flex}.event-site-link:hover{color:var(--teal-mid)}
