:root{font-family:Arial,sans-serif;color:#17241f;background:#f5f8f8;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#087d5b;text-decoration:none}a:hover{text-decoration:underline}
:focus-visible{outline:3px solid #43b998;outline-offset:3px}input,select,textarea{outline:none}input:focus,select:focus,textarea:focus{border-color:#159770;box-shadow:0 0 0 3px #d2f3e7}
.research-direction{max-width:230px;margin:0 0 20px}.research-direction select{min-height:42px;border:1px solid #d8e3dd;border-radius:10px;padding:8px 12px;background:#fff;color:#1b2b23}.gift-sources summary,.previous-ideas summary{cursor:pointer;color:#087a5a;font-size:13px;font-weight:800}.gift-sources a{display:block;margin:8px 0;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.previous-ideas{margin-top:28px}.previous-ideas summary{margin-bottom:18px}.bundle-components{display:grid;gap:8px;padding:10px 0}.bundle-components>div{display:grid;gap:3px;font-size:12px}.bundle-components a{font-weight:800;color:#087a5a}
.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid #e5ede9;padding:30px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:6px 12px 32px;font-weight:800;font-size:19px;letter-spacing:-.8px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#0b916b;color:white;font-size:23px;line-height:1}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:12px;background:transparent;color:#56665e;padding:12px 14px;text-align:left;font-weight:700;font-size:14px}.nav button.active{background:#e6f6ef;color:#087b5a}.nav button:hover{background:#f1f8f4}.nav-icon{width:21px;text-align:center;font-size:18px}.sidebar-bottom{margin-top:auto;border-top:1px solid #edf1ef;padding:18px 8px 0;color:#819087;font-size:12px;line-height:1.7}.sidebar-bottom strong{display:block;color:#48594f;font-size:13px;overflow:hidden;text-overflow:ellipsis}.main{min-width:0;padding:38px clamp(22px,4vw,70px) 70px}.main-inner{max-width:1130px;margin:auto}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:#168f70;font-size:11px;font-weight:800;margin:0 0 8px}.topbar h1{font-size:clamp(30px,3.2vw,45px);line-height:1.18;letter-spacing:-1.8px;margin:0}.muted{color:#738079}.subtitle{font-size:15px;line-height:1.6;color:#718078;margin:10px 0 0}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:999px;background:#0b946f;color:#fff;min-height:44px;padding:10px 18px;font-size:13px;font-weight:800;white-space:nowrap}.btn:hover{background:#087b5c;text-decoration:none}.btn.secondary{color:#1a6651;background:#fff;border-color:#d4e6dd}.btn.secondary:hover{background:#f0f9f4}.btn.ghost{color:#637169;background:transparent}.btn.ghost:hover{background:#edf3ef}.btn.warn{background:#fff0ed;color:#a9472f}.btn.small{min-height:34px;padding:6px 13px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);gap:20px}.stack{display:grid;gap:18px}.panel{background:#fff;border:1px solid #e6eeea;border-radius:20px;box-shadow:0 8px 24px rgba(33,71,53,.035);padding:23px}.panel-title{font-size:19px;letter-spacing:-.5px;margin:0 0 18px;font-weight:800}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:28px 0 16px}.section-heading h2{font-size:19px;letter-spacing:-.55px;margin:0}.section-heading span{color:#7e8e84;font-size:12px}.occasion-list{display:grid;gap:13px}.occasion-card{display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:17px;background:#fff;border:1px solid #e7eee9;border-radius:18px;padding:18px 20px;box-shadow:0 7px 20px rgba(20,64,41,.03)}.date-badge{height:68px;border-radius:14px;background:#e9f6ee;display:grid;place-content:center;text-align:center;color:#0b916b}.date-badge strong{font-size:26px;line-height:1}.date-badge span{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;font-weight:800;margin-top:4px}.occasion-card h3{margin:0 0 5px;font-size:17px;letter-spacing:-.4px}.occasion-card p{margin:0;color:#718078;font-size:13px}.occasion-card .meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.pill{border-radius:999px;background:#f0f4f2;color:#56665d;padding:5px 9px;font-size:11px;font-weight:700}.pill.green{background:#e4f5ea;color:#0e8661}.pill.orange{background:#fff0e7;color:#c26b33}.pill.blue{background:#ebf3fb;color:#577aa0}.hero{padding:31px;background:linear-gradient(130deg,#f2fbf5 8%,#e3f4ed 66%,#d8eee5);border-radius:22px;border:1px solid #d8ebdf;min-height:247px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start}.hero:after{content:'✦';font-size:190px;color:rgba(6,147,107,.07);position:absolute;right:18px;top:-55px;transform:rotate(20deg)}.hero .eyebrow,.hero h2,.hero p,.hero button{position:relative;z-index:1}.hero h2{font-size:28px;letter-spacing:-1.3px;line-height:1.2;margin:4px 0 7px}.hero p{font-size:14px;color:#557164;margin:0 0 26px}.countdown{font-weight:800;font-size:12px;letter-spacing:.3px;color:#0e8764}.mini-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #eef2ef}.mini-row:first-of-type{border:0}.avatar{width:43px;height:43px;flex:none;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,#65cbb0,#0b916b);color:white;font-size:18px;font-weight:800}.mini-row .text{flex:1;min-width:0}.mini-row strong{font-size:13px;display:block}.mini-row small{color:#87958c;font-size:12px}.empty{padding:38px;text-align:center;border:1px dashed #c8ded0;border-radius:20px;background:#fbfefc}.empty-symbol{font-size:40px;color:#0b916b;display:block;margin-bottom:8px}.empty h2{font-size:21px;letter-spacing:-.5px;margin:0 0 6px}.empty p{font-size:14px;color:#738077;margin:0 0 20px}.banner{background:#fff7e9;color:#805424;border:1px solid #f3dfbd;border-radius:13px;padding:12px 15px;font-size:13px;margin-bottom:19px;line-height:1.5}.banner.info{background:#edf7f4;color:#39705b;border-color:#ccebdd}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.stat{padding:18px;border:1px solid #e6eeea;background:#fff;border-radius:15px}.stat strong{display:block;font-size:25px;letter-spacing:-.8px}.stat span{color:#849087;font-size:12px}.person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.person-card{min-height:156px;text-align:left;border:1px solid #e6eeea;background:#fff;border-radius:18px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.person-card:hover{border-color:#8dcdb3;box-shadow:0 8px 24px #123a2210}.person-card strong{font-size:17px}.person-card small{color:#7e8c83;line-height:1.45}.person-card.add{justify-content:center;align-items:center;border-style:dashed;color:#0c8460;background:#f6fbf8}.person-card.add span{font-size:29px}.back{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#1b8766;font-size:13px;font-weight:800;padding:0;margin-bottom:20px}.detail-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.detail-top h1{font-size:34px;letter-spacing:-1.2px;margin:3px 0 6px}.detail-top p{margin:0;color:#718078}.detail-controls{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.gift-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(246px,1fr));gap:16px}.gift-card{border:1px solid #e6eeea;border-radius:18px;background:#fff;overflow:hidden;display:flex;flex-direction:column}.gift-image{height:176px;background:#f4f8f5;display:grid;place-items:center;color:#a5c6b1;font-size:56px;position:relative}.gift-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:14px;background:#f4f8f5}.gift-content{padding:17px;display:flex;flex-direction:column;gap:8px;flex:1}.gift-content h3{font-size:15px;line-height:1.35;min-height:40px;margin:0}.gift-content p{font-size:12px;color:#6b7a70;line-height:1.5;margin:0}.gift-price{color:#087a5a;font-weight:800;font-size:20px}.gift-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:10px}.feedback-row{display:flex;flex-wrap:wrap;gap:5px}.chip-btn{border:1px solid #dce9df;color:#51695a;background:white;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700}.chip-btn:hover,.chip-btn.active{background:#e5f6ec;border-color:#70c6a2;color:#077752}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-top:1px solid #edf1ee}.setting-row:first-child{border:0}.setting-row strong{display:block;font-size:14px}.setting-row small{display:block;color:#819088;margin-top:3px;font-size:12px}.form{display:grid;gap:16px}.field{display:grid;gap:7px;font-size:12px;font-weight:800;color:#53665c}.field input,.field select,.field textarea{width:100%;min-height:44px;border:1px solid #d8e3dd;background:#fff;border-radius:10px;padding:10px 12px;color:#1b2b23}.field textarea{resize:vertical;min-height:90px}.row{display:flex;gap:12px}.row>*{flex:1}.check{display:flex;gap:9px;align-items:center;font-size:13px;color:#526057}.check input{accent-color:#078d65;width:17px;height:17px}.interest-grid{display:flex;flex-wrap:wrap;gap:8px}.interest{border:1px solid #dce8df;background:white;border-radius:999px;padding:9px 13px;font-weight:700;font-size:12px;color:#5f6f64}.interest.selected{border-color:#0b946f;color:#0a7d5c;background:#e3f6ed}.modal-backdrop{position:fixed;inset:0;background:#15251ed1;z-index:10;display:grid;place-items:center;padding:16px}.modal{background:#fff;border-radius:22px;max-width:540px;width:100%;max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 25px 90px #091a1180;padding:26px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{font-size:23px;letter-spacing:-.6px;margin:0}.icon-button{border:0;background:#f2f7f3;color:#567364;border-radius:50%;width:35px;height:35px;font-size:19px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-art{background:linear-gradient(145deg,#077453,#069773);display:flex;align-items:center;justify-content:center;padding:50px;position:relative;overflow:hidden;color:#fff}.auth-art:before{content:'✧';position:absolute;font-size:620px;color:#ffffff16;line-height:1;top:-140px;left:-80px}.auth-art>div{position:relative;max-width:510px}.auth-art h1{font-size:clamp(36px,5vw,64px);letter-spacing:-3px;line-height:1.13;margin:20px 0}.auth-art p{font-size:18px;line-height:1.6;color:#dcf5e9}.auth-form-wrap{display:grid;place-items:center;padding:38px}.auth-form{max-width:390px;width:100%}.auth-form h2{font-size:31px;letter-spacing:-1.3px;margin:0 0 9px}.auth-form>p{color:#758479;line-height:1.55;margin:0 0 26px;font-size:14px}.auth-form .btn{width:100%;margin-top:8px}.auth-switch{border:0;background:none;color:#087d5b;font-weight:800;padding:0;margin-top:20px}.loading{min-height:100vh;display:grid;place-content:center;color:#0b9069;font-weight:800}#toast{position:fixed;bottom:22px;right:22px;background:#183d2c;color:white;border-radius:12px;padding:12px 17px;box-shadow:0 8px 25px #0003;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s;font-size:13px;max-width:min(450px,90vw)}#toast.show{opacity:1}
@media(max-width:1000px){.grid{grid-template-columns:1fr}.hero{min-height:210px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:fixed;top:auto;bottom:0;left:0;right:0;z-index:5;padding:5px 6px max(5px,env(safe-area-inset-bottom));border-right:0;border-top:1px solid #e5ede9}.brand,.sidebar-bottom{display:none}.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.nav button{display:grid;place-content:center;justify-items:center;gap:0;font-size:10px;text-align:center;padding:6px 2px;min-height:55px}.nav-icon{font-size:20px}.main{padding:23px 17px 92px}.topbar{align-items:center}.topbar h1{font-size:30px}.occasion-card{grid-template-columns:56px minmax(0,1fr);padding:15px}.occasion-card>.btn{grid-column:2;justify-self:start}.date-badge{width:56px;height:56px}.auth-shell{grid-template-columns:1fr}.auth-art{display:none}.auth-form-wrap{min-height:100vh}}
@media(max-width:490px){.stats{gap:6px}.stat{padding:13px}.stat strong{font-size:20px}.topbar{display:block}.topbar .actions{margin-top:15px}.row{display:grid}.row>*{min-width:0}.panel{padding:18px}.detail-top{display:block}.detail-top .actions{margin-top:15px}}
 [hidden] { display: none !important; }
/* Readable type and generous controls from the updated design. */
:root{font-family:Arial,Verdana,sans-serif;font-size:18px;line-height:1.5}
.brand{font-size:22px;letter-spacing:0}.nav button{font-size:20px;min-height:56px}.sidebar-bottom,.sidebar-bottom strong{font-size:16px}
.eyebrow{font-size:16px;letter-spacing:1px}.subtitle,.hero p,.empty p,.auth-form>p{font-size:18px;color:#52645a}
.btn,.btn.small{font-size:18px;min-height:48px;padding:10px 18px;font-weight:700;white-space:normal}
.panel-title,.section-heading h2{font-size:24px;letter-spacing:0}.section-heading span{font-size:17px;color:#52645a}
.panel>.section-heading:first-child{margin-top:0}.panel p:last-child{margin-bottom:0}
.occasion-card h3{font-size:24px;letter-spacing:0}.occasion-card p{font-size:18px;color:#52645a}.date-badge span{font-size:16px;letter-spacing:.5px}.date-badge strong{font-size:32px}
.pill,.chip-btn{font-size:16px}.chip-btn{min-height:44px;padding:8px 12px}.hero h2{font-size:32px;letter-spacing:-.5px}.countdown{font-size:18px}
.mini-row strong,.mini-row small{font-size:18px}.mini-row small,.person-card small,.stat span{color:#52645a}.stat span{font-size:17px}.stat strong{font-size:30px}
.person-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.person-card strong{font-size:24px}.person-card small{font-size:18px}.avatar{width:52px;height:52px;font-size:22px}
.gift-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.gift-content{padding:22px}.gift-content h3{font-size:22px;min-height:0}.gift-content p{font-size:18px;color:#52645a}.gift-sources summary,.previous-ideas summary{font-size:18px}.gift-sources a,.bundle-components>div{font-size:17px}
.setting-row strong,.setting-row small,.field,.check,.interest,.back,.banner,#toast{font-size:18px}.setting-row small,.field small{color:#52645a;font-weight:400}.field small{font-size:16px;line-height:1.5}
.field input,.field select,.field textarea,.custom-interest-row input,.research-direction select{font-size:18px;min-height:52px}.interest{font-weight:600;min-height:48px;padding:10px 16px}.interest.selected{border-width:2px;padding:9px 15px}.check input{width:22px;height:22px;flex:none}
.modal{max-width:680px;padding:30px}.modal-head h2{font-size:28px}.icon-button{width:44px;height:44px;font-size:26px}.auth-form{max-width:460px}.research-direction{max-width:320px}
.custom-interest-row{display:flex;gap:10px}.custom-interest-row input{min-width:0;flex:1;border:1px solid #d8e3dd;border-radius:10px;padding:10px 12px}
.occasion-budget{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.occasion-budget small{font-size:16px;color:#52645a}.budget-amount{font-size:30px;font-weight:700;color:#087a5a}
@media(max-width:760px){.nav button{font-size:16px;min-height:66px}.nav-icon{font-size:24px}.main{padding-bottom:112px}.sidebar{padding-bottom:max(8px,env(safe-area-inset-bottom))}.gift-grid{grid-template-columns:1fr}.section-heading{flex-wrap:wrap}.modal{padding:22px}.date-badge{height:72px}.topbar h1{font-size:34px}.brand{display:none}}
@media(max-width:490px){.stats{grid-template-columns:1fr}.stat{display:flex;align-items:baseline;gap:12px}.custom-interest-row{flex-wrap:wrap}.custom-interest-row input{flex-basis:100%}.setting-row{flex-wrap:wrap}.occasion-budget{flex-wrap:wrap}.detail-top h1{font-size:34px}.modal-backdrop{padding:10px}}
