:root{--pine:#176B60;--pine-dark:#13584f;--deep:#173f39;--sage:#647c74;--mint:#dcefe5;--mint-mid:#a9d9c7;--canvas:#f5f8f4;--border:#e4ece6;--gold:#e8b96a;--white:#fff;--shadow:0 9px 35px rgba(20,70,58,.045);--radius:19px;font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--deep)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);font-size:15px;line-height:1.53}a{color:var(--pine);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Outfit','DM Sans',sans-serif;line-height:1.2;letter-spacing:-.025em;color:var(--deep)}h1{font-size:clamp(29px,3.5vw,42px);font-weight:700;margin-bottom:11px}h2{font-size:21px;margin-bottom:10px}h3{font-size:17px}p{color:var(--sage)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}img{max-width:100%}input,select,textarea{max-width:100%;min-width:0}summary{cursor:pointer}summary::marker{color:var(--pine)}:focus-visible{outline:3px solid #89c8b6;outline-offset:3px}::selection{background:#a9d9c7} .app-shell{min-height:100vh;display:flex}.side-nav{width:252px;flex:0 0 252px;min-height:100vh;background:#fff;border-right:1px solid var(--border);padding:28px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.logo{display:flex;gap:10px;align-items:center;font-family:Outfit,sans-serif;font-size:22px;font-weight:750;color:var(--deep);letter-spacing:-.04em;padding:6px 8px;text-decoration:none!important}.logo small{font-family:'DM Sans',sans-serif;display:block;font-size:11px;font-weight:500;color:#91a59a;letter-spacing:0}.logo-symbol{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:39px;height:39px;color:white;background:var(--pine);border-radius:13px;font-size:25px;font-weight:500}.side-group-title{padding:39px 17px 13px;font-size:11px;letter-spacing:.14em;font-weight:800;color:#9baea4}.sidebar-links{display:grid;gap:7px}.nav-link{display:flex;align-items:center;gap:13px;color:#597268;padding:12px 14px;border-radius:12px;font-weight:650;text-decoration:none!important;transition:background .15s,color .15s}.nav-link:hover{background:#f2f8f3;color:var(--pine)}.nav-link.active{background:var(--mint);color:var(--pine)}.nav-icon{width:23px;text-align:center;font-size:22px;font-weight:600;line-height:1}.sidebar-bottom{margin-top:auto;padding:15px 14px}.sidebar-bottom p{font-size:12px;line-height:1.5;margin:12px 0 0}.plan-pill{background:var(--mint);color:var(--pine);font-size:12px;font-weight:800;display:inline-flex;padding:6px 12px;border-radius:25px}.workspace{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:22px;justify-content:space-between;height:85px;padding:0 clamp(18px,3vw,48px);background:#fff;border-bottom:1px solid var(--border)}.topbar-label{font-size:13px;color:#8aa398}.topbar-right{display:flex;align-items:center;gap:15px;margin-left:auto}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e8f3ed;color:var(--pine);font-size:24px;text-decoration:none!important}.mobile-brand{display:none;color:var(--deep);font-family:Outfit,sans-serif;font-size:19px;font-weight:700}.mobile-brand .logo-symbol{width:32px;height:32px;font-size:20px;border-radius:10px}.topbar-login{margin-left:auto;font-weight:700}.page-container{width:100%;max-width:1480px;margin:0 auto;padding:37px clamp(18px,3vw,48px) 70px;flex:1}.app-footer{color:#a1b0a6;font-size:11px;text-align:center;padding:14px}.page-heading{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:26px}.page-heading>div:first-child{max-width:740px}.page-heading p{margin:0}.eyebrow{display:inline-block;font-size:11px;font-weight:850;letter-spacing:.135em;color:var(--pine);margin-bottom:8px}.inline-heart{color:#e0ab8c}.button,button.button{border:1px solid transparent;border-radius:11px;display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:12px 19px;min-height:44px;font-size:13px;font-weight:800;line-height:1.3;text-decoration:none!important;white-space:normal;text-align:center;box-shadow:none;transition:transform .16s,background .16s,color .16s}.button:hover{transform:translateY(-1px)}.button-primary{color:white!important;background:var(--pine);border-color:var(--pine)}.button-primary:hover{background:var(--pine-dark)}.button-soft{color:var(--pine)!important;background:#e9f5ed;border-color:#e9f5ed}.button-soft:hover{background:#daede2}.button-outline{color:var(--pine)!important;background:white;border-color:#d7e9de}.button-outline:hover{background:#f4f8f4}.button-danger{background:#fff0ef;color:#aa4746!important;border-color:#fbe0dd}.button-danger:hover{background:#fde2e1}.button-sm{font-size:12px;padding:8px 11px;min-height:35px;border-radius:9px}.button.full{width:100%}.top-add{min-height:37px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:23px 24px;box-shadow:var(--shadow);min-width:0}.stat-icon{height:39px;width:39px;border-radius:12px;display:inline-grid;place-items:center;font-size:21px;font-weight:750;margin-bottom:13px}.stat-icon.mint{background:#e4f4eb;color:#168374}.stat-icon.gold{background:#fff1d7;color:#bf861e}.stat-icon.blue{background:#e7f3fb;color:#3c8cb7}.stat-icon.coral{background:#fff0e7;color:#dc7c63}.stat-number{font-family:Outfit,sans-serif;font-weight:800;font-size:clamp(22px,2.3vw,31px);line-height:1.16;overflow-wrap:anywhere}.stat-label{font-size:12px;color:#8ca096;margin-top:7px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:25px 27px;margin-bottom:20px;min-width:0;box-shadow:var(--shadow)}.panel:last-child{margin-bottom:0}.dashboard-grid .panel{margin-bottom:0}.subtle-panel{background:#eaf4eb}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.section-title h2,.section-title p{margin:0}.section-title p{font-size:12px;margin-top:5px}.section-title a{font-size:12px;font-weight:800;white-space:nowrap}.event-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #eef3ee;color:var(--deep);text-decoration:none!important}.event-row:last-child{border:0}.event-icon{height:44px;width:44px;display:grid;place-items:center;background:#f1f6ec;border-radius:13px;font-size:22px}.event-row strong{display:block}.event-row small,.share-row small,.person-summary small{display:block;color:#8b9f94;font-size:12px;margin-top:3px}.event-arrow{margin-left:auto;color:var(--pine)}.quick-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.quick-card{background:white;color:var(--deep);padding:17px 13px;border:1px solid var(--border);border-radius:14px;text-decoration:none!important}.quick-card>span{display:block;font-size:22px;color:var(--pine);margin-bottom:8px}.quick-card strong{display:block;font-size:12px}.quick-card small{display:block;font-size:11px;color:#9baea3;margin-top:5px}.quick-card:hover{border-color:#b1d7c3}.split-columns{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:start;gap:20px}.split-aside{grid-template-columns:minmax(360px,.88fr) minmax(0,1.12fr)}.split-aside .content-stack:first-child{min-width:0}.content-stack{display:flex;flex-direction:column;gap:20px;min-width:0}.content-stack .panel{margin-bottom:0}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:17px;align-items:start}.product-card{min-width:0;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 5px 20px #1747380a}.product-art{height:166px;background:#f1f6f2;display:flex;align-items:center;justify-content:center;padding:14px;overflow:hidden}.product-art img{width:100%;height:100%;object-fit:contain}.art-placeholder{font-size:64px;opacity:.75}.product-content{padding:17px;min-width:0}.product-content h3{font-size:17px;overflow-wrap:anywhere;margin:10px 0 11px;min-height:42px}.price{font-family:Outfit,sans-serif;font-size:23px;font-weight:750;color:var(--deep);margin:5px 0 10px}.mini-line{display:flex;gap:6px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;border-radius:25px;padding:4px 10px;font-size:11px;font-weight:800}.tag-mint{background:#e4f3e9;color:#2b8069}.tag-gold{background:#fff2d7;color:#92661e}.tag-neutral{background:#edf0ee;color:#667b70}.product-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:15px}.product-actions .inline-form{margin:0}.product-actions select{min-width:0}.product-actions .edit-wish{flex:1 1 100%;min-width:0}.edit-wish summary{list-style:none}.edit-wish summary::-webkit-details-marker{display:none}.edit-wish[open]{padding-top:4px}.edit-wish .form-stack{margin-top:14px}.gift-list{grid-template-columns:repeat(auto-fit,minmax(245px,1fr))}.gift-list>*{min-width:0}.gift-list .product-card{height:100%}.small{font-size:12px}.muted{color:var(--sage)}.full{width:100%}.form-stack{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:13px;font-weight:700;color:#47655b}.field>span{display:block}.field input,.field select,.field textarea{border:1px solid #d9e6df;border-radius:11px;padding:12px 13px;width:100%;background:#fff;min-height:45px;color:var(--deep);font-size:14px;font-weight:500;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--pine);box-shadow:0 0 0 3px #a9d9c755}.field textarea{resize:vertical;min-height:90px}.field input::placeholder{color:#a2b4aa}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-import{background:#f0f8f2;border:1px solid #d9eee2;border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:10px}.product-import .field{margin:0}.product-import .button{width:fit-content}.product-feedback{min-height:20px;margin:0}.product-image-preview{background:#fff;border-radius:13px;border:1px solid var(--border);padding:9px;width:130px;height:130px}.product-image-preview img{object-fit:contain;width:100%;height:100%}.product-image-preview[hidden]{display:none!important}.people-list{display:flex;flex-direction:column}.person-list-row{display:flex;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #edf2ee;min-width:0}.person-list-row:last-child{border-bottom:0}.person-summary{display:flex;align-items:center;gap:12px;min-width:0;flex:1;color:var(--deep)!important;text-decoration:none!important}.person-summary strong{font-size:15px}.person-summary small{overflow-wrap:anywhere}.person-avatar{height:46px;width:46px;min-width:46px;display:grid;place-items:center;border-radius:50%;background:#deeee3;color:var(--pine);font-family:Outfit,sans-serif;font-weight:800;font-size:21px}.person-detail{flex:1;min-width:0;overflow-wrap:anywhere}.person-detail small{display:block;color:var(--sage);font-size:11px}.person-links{display:flex;gap:7px;flex-wrap:wrap}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.compact-card{padding:16px;border-radius:12px;border:1px solid var(--border)}.history-detail{margin-top:15px}.history-detail>summary{font-family:Outfit,sans-serif;font-size:20px;font-weight:700}.history-detail .product-grid{margin-top:20px}.empty-state{text-align:center;color:#80968a;border:1px dashed #c7dcd0;border-radius:14px;background:#f8fbf8;padding:24px 18px;font-size:13px;grid-column:1/-1}.share-list{margin-top:22px}.share-list h3{font-size:14px}.share-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border);gap:12px}.share-row strong{display:block;font-size:13px}.share-row small{font-size:11px}.notice{border-radius:14px;padding:16px 19px;background:#e5f5e9;border:1px solid #bfe4cb;color:var(--deep);margin:0 0 22px;overflow-wrap:anywhere}.notice p{margin:5px 0}.notice.error{background:#fff0ef;border-color:#f4c2bb;color:#8e3434}.copy-line{display:flex;gap:9px;margin-top:12px;min-width:0}.copy-line input{min-width:0;flex:1;border-radius:10px;border:1px solid #c4dbc9;padding:8px;font-size:12px}.inline-form{display:inline-flex;gap:7px;align-items:center}.reserve-dropdown{position:relative}.reserve-dropdown summary{list-style:none}.reserve-dropdown summary::-webkit-details-marker{display:none}.reserve-form{display:grid;gap:10px;padding:14px;background:#f4faf5;border:1px solid #cee6d6;border-radius:12px;margin-top:9px;min-width:min(270px,80vw);box-shadow:var(--shadow)}.reserve-form .field{font-size:12px}.compact-select{max-width:130px;padding:8px 9px;border:1px solid #d9e6df;border-radius:9px;background:#fff;color:var(--deep)}.budget-chart{padding:13px 0 22px}.budget-percent{font-family:Outfit,sans-serif;color:var(--pine);font-size:43px;font-weight:800}.progress-track{height:12px;border-radius:20px;background:#e7f1e9;overflow:hidden}.progress-fill{height:100%;border-radius:20px;background:linear-gradient(90deg,var(--pine),#7cc1a5)}.budget-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#719082;margin-top:10px}.budget-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--border);font-size:13px}.year-nav{display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.year-nav a,.year-nav span{padding:10px 16px;color:var(--pine);font-weight:800}.year-nav a:hover{background:var(--mint)}.warning-panel{border-color:#f2ded8}.public-layout .app-shell{display:block}.public-layout .side-nav,.public-layout .bottom-nav{display:none}.public-layout .topbar{height:75px}.public-layout .workspace{min-height:100vh}.public-layout .page-container{max-width:1100px}.public-layout .mobile-brand{display:flex;align-items:center;gap:9px}.public-wishlist-header{text-align:center;padding:22px 0 28px}.public-wishlist-header p{max-width:630px;margin:0 auto}.public-footer{text-align:center;font-size:12px;margin-top:20px}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.84fr);gap:clamp(20px,7vw,100px);align-items:center;min-height:calc(100vh - 205px)}.auth-hero{padding:30px 0}.hero-emoji{font-size:66px;margin-bottom:18px}.auth-hero h1{font-size:clamp(42px,5vw,70px);line-height:1.05}.auth-hero h1 em{font-style:normal;color:var(--pine)}.auth-hero>p{font-size:17px;max-width:500px;line-height:1.7}.hero-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-tags span{background:#fff;border:1px solid var(--border);border-radius:30px;padding:8px 13px;color:#52786a;font-size:11px;font-weight:800}.auth-panel{padding:35px}.auth-panel h1,.auth-panel h2{font-size:32px}.auth-panel .form-stack{margin:25px 0 15px}.auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;font-weight:700}.auth-centered{max-width:520px;margin:45px auto}.bottom-nav{display:none}
@media(max-width:1250px){.side-nav{width:220px;flex-basis:220px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-aside{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.side-nav{display:none}.topbar-label{display:none}.mobile-brand{display:flex;align-items:center;gap:8px}.bottom-nav{position:fixed;z-index:90;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 5px max(7px,env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid var(--border);box-shadow:0 -5px 22px #123f2810}.bottom-nav a{display:flex;align-items:center;flex-direction:column;gap:1px;padding:4px 1px;color:#91a79a;min-width:0;text-decoration:none}.bottom-nav a.active{color:var(--pine);font-weight:800}.bottom-nav a>span{font-size:23px;line-height:1.2}.bottom-nav small{font-size:10px}.page-container{padding-bottom:105px}.app-footer{padding-bottom:100px}.dashboard-grid{grid-template-columns:1fr}.split-columns,.split-aside{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr;min-height:auto}.auth-hero{padding:10px 0}.auth-hero h1{font-size:43px}.auth-panel{max-width:650px}}
@media(max-width:610px){body{font-size:14px}.page-container{padding:23px 14px 105px}.topbar{height:66px;padding:0 15px}.top-add{display:none}.logo-symbol{width:30px;height:30px;font-size:20px;border-radius:10px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:19px;gap:13px}.page-heading h1{font-size:31px}.page-heading p{font-size:13px}.page-heading .button{width:100%}.stats-grid{gap:10px}.stat-card{padding:17px;border-radius:15px}.stat-icon{width:34px;height:34px;margin-bottom:10px}.stat-number{font-size:23px}.stat-label{font-size:11px}.panel{padding:19px 16px;border-radius:16px;margin-bottom:15px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product-art{height:125px;padding:7px}.art-placeholder{font-size:49px}.product-content{padding:12px}.product-content h3{font-size:14px;line-height:1.3;min-height:36px}.price{font-size:19px}.tag{font-size:9px;padding:4px 7px}.product-actions .button{font-size:11px;padding:8px 10px;min-height:33px}.product-actions .inline-form{flex-wrap:wrap}.field-row{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.quick-card{padding:12px 9px}.quick-card small{font-size:10px}.person-list-row{flex-wrap:wrap}.person-summary{flex-basis:100%}.person-links{margin-left:58px}.auth-layout{gap:10px}.auth-hero h1{font-size:42px}.auth-hero p{font-size:14px}.auth-panel{padding:23px 17px}.copy-line{flex-direction:column}.copy-line .button{width:100%}.reserve-form{min-width:0;width:min(275px,80vw)}.product-actions .edit-wish{flex-basis:100%}}
@media(max-width:390px){.product-grid{grid-template-columns:1fr}.product-art{height:160px}.product-content h3{min-height:0}.quick-grid{grid-template-columns:1fr}.quick-card{display:flex;gap:10px;align-items:center}.quick-card>span{margin:0}.stats-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media print{.side-nav,.topbar,.bottom-nav,.app-footer,.product-actions,.button{display:none!important}.workspace,.page-container{padding:0!important}.panel,.stat-card{box-shadow:none;border:1px solid #ddd}}
/* Administration */
.admin-wrap{min-height:100vh}.admin-header{height:86px;background:#fff;border-bottom:1px solid var(--border);padding:0 clamp(18px,3vw,44px);display:flex;align-items:center;justify-content:space-between;gap:15px}.admin-wrap .page-container{max-width:1200px}.admin-login{max-width:480px;margin:30px auto}.admin-lock{margin:0 0 20px;text-align:right}.admin-user{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:12px 0}.admin-user strong{font-size:13px}.admin-user small{display:block;font-size:11px;color:var(--sage);overflow-wrap:anywhere}.admin-user:last-child{border:0}

.budget-progress{display:block;width:100%;height:12px;appearance:none;border:0;border-radius:20px;background:#e7f1e9;overflow:hidden}.budget-progress::-webkit-progress-bar{background:#e7f1e9;border-radius:20px}.budget-progress::-webkit-progress-value{background:#176b60;border-radius:20px}.budget-progress::-moz-progress-bar{background:#176b60;border-radius:20px}

.reserve-convert{flex-basis:100%;padding:11px;border:1px solid #d9eee2;border-radius:12px;background:#f5faf6}.reserve-convert .button{width:100%}

/* Beta 2: responsive purchasing checklist */
.shopping-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.shopping-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:#fff}
.shopping-row-main,.shopping-row-actions{display:flex;gap:14px;align-items:center;min-width:0}
.shopping-check{color:var(--pine);font-size:29px;line-height:1}
.shopping-details{display:flex;flex-direction:column;gap:4px;min-width:0}
.shopping-details strong{color:var(--deep);overflow-wrap:anywhere}
.shopping-details small{color:var(--sage)}
.shopping-row-actions{flex-wrap:wrap;justify-content:flex-end}
.shopping-row-actions strong{white-space:nowrap;color:var(--deep)}
@media(max-width:740px){.shopping-row{flex-direction:column;align-items:stretch;padding:16px}.shopping-row-actions{justify-content:flex-start;padding-left:40px}}
