@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--bg:#fbf7f0;--paper:#fffdf9;--ink:#4a342f;--brown:#75493f;--rose:#b47675;--gold:#a77b38;--line:#e8ddd0;--muted:#887a73;--shadow:0 12px 30px #4e352117;--success:#3e9e69;--warning:#e7a548;--danger:#cf5555}*{box-sizing:border-box}html{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--brown)}#app{min-height:100vh}.shell{max-width:920px;margin:auto;padding:0 14px 100px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;position:relative;z-index:2}.brand{border:0;background:none;display:flex;align-items:center;gap:9px;color:var(--brown);font-family:'Playfair Display',serif;font-size:23px;font-weight:700;padding:0}.brand-icon{width:36px;height:36px;display:grid;place-items:center;background:#f6e8da;border-radius:12px;font-size:23px}.headright{display:flex;align-items:center;gap:8px}.headright select{border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:10px 8px;max-width:144px;color:var(--ink);font-size:13px}.mini{border:1px solid var(--line);background:var(--paper);padding:9px 12px;border-radius:12px;color:var(--ink)}.hero{position:relative;border-radius:24px;overflow:hidden;min-height:210px;display:flex;align-items:flex-end;background-color:#7e5e46;background-position:center;background-size:cover;box-shadow:var(--shadow)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#1e1a1820 12%,#211d1aa8 90%)}.hero.natale{background-image:url('./assets/natale.webp')}.hero.compleanno{background-image:url('./assets/compleanno.webp')}.hero.personalizzata,.hero.pasqua{background-image:url('./assets/regalo.webp')}.hero>div{position:relative;color:#fff;padding:26px 22px;width:100%}.hero .eyebrow{color:#f4e2c6}.eyebrow{font-size:16px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--rose)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',serif}h1{font-size:clamp(26px,7vw,40px);line-height:1.15;margin-bottom:10px}h2{font-size:24px;margin-bottom:12px}h3{font-size:19px;margin-bottom:6px}.muted,.subtitle{color:var(--muted)}.section{margin:26px 0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-head h2{margin:0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.occasion-card{border:1px solid var(--line);box-shadow:0 5px 15px #4e35210c;border-radius:19px;overflow:hidden;background:var(--paper);text-align:left;color:var(--ink);padding:0}.occasion-card .thumb{height:125px;background-position:center;background-size:cover;position:relative}.occasion-card .thumb.natale{background-image:url('./assets/natale.webp')}.occasion-card .thumb.compleanno{background-image:url('./assets/compleanno.webp')}.occasion-card .thumb.pasqua,.occasion-card .thumb.personalizzata{background-image:url('./assets/regalo.webp')}.occasion-card .thumb span{position:absolute;right:12px;bottom:10px;font-size:26px;filter:drop-shadow(0 2px 4px #0006)}.occasion-card .info{padding:12px}.occasion-card h3{font-size:17px;margin:0 0 5px}.date{font-size:12px;color:var(--muted)}.person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.person-card{border:1px solid var(--line);border-radius:17px;background:var(--paper);padding:17px 8px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:8px;color:var(--ink)}.avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#fce7e6,#f5d8c3);font-size:27px}.person-card strong{font-size:14px}.person-card small{font-size:11px;color:var(--muted)}.btn{border:0;border-radius:13px;background:var(--brown);color:#fff;font-weight:700;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px}.btn.alt{background:#f0e6db;color:var(--brown)}.btn.light{background:#fffaf6;color:var(--brown)}.btn.danger{background:#a84b4b}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:9px 12px;min-height:34px;font-size:12px}.btn.link{background:transparent;color:var(--brown);padding:6px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.panel{background:var(--paper);padding:16px;border-radius:18px;border:1px solid var(--line);box-shadow:0 6px 15px #4e352108}.panel+.panel{margin-top:11px}.gift-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.gift-row:last-child{border-bottom:0}.gift-image{width:72px;height:72px;flex:0 0 72px;border-radius:14px;background:#f2e4d4;object-fit:cover;display:grid;place-items:center;font-size:28px}.gift-body{flex:1;min-width:0}.gift-body strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gift-body small{color:var(--muted)}.gift-actions{display:flex;gap:6px}.round{width:33px;height:33px;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);border-radius:50%;color:var(--brown)}.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--danger);vertical-align:middle;margin-right:6px;box-shadow:0 0 0 2px #ffffff91}.dot.prenotato{background:var(--warning)}.dot.acquistato{background:var(--success)}.dot.sorpresa{background:#9f91b7}.status{margin-top:6px;font-size:12px;color:var(--muted)}.subitem{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:14px;margin-bottom:9px}.subitem b{font-size:14px}.empty{padding:34px 20px;border:1px dashed #d5c1b0;background:#fffdf9;border-radius:18px;text-align:center;color:var(--muted)}.empty .big{font-size:34px;margin-bottom:8px}.empty h3{color:var(--ink)}.note{border-radius:15px;background:#f4e9de;padding:13px;font-size:13px;line-height:1.6;color:#69524b}.back{background:none;border:0;color:var(--brown);font-weight:700;padding:15px 0 10px}.bottomnav{position:fixed;bottom:0;left:0;right:0;background:#fffdf9ef;backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:10;padding:7px 4px max(8px,env(safe-area-inset-bottom));display:flex;justify-content:space-around}.bottomnav button{font-size:12px;color:var(--muted);padding:6px 8px;min-width:76px;background:transparent;border:0;display:flex;align-items:center;flex-direction:column;gap:2px}.bottomnav button span{font-size:22px}.bottomnav button.on{color:var(--brown);font-weight:700}.overlay{position:fixed;z-index:30;inset:0;background:#211c1a9a;display:flex;justify-content:center;align-items:flex-end;padding:10px}.modal{background:var(--paper);border-radius:24px 24px 18px 18px;max-height:93vh;overflow:auto;width:min(100%,600px);padding:22px;box-shadow:0 18px 65px #0003}.modal header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal header h2{margin:0;font-size:23px}.close{border:0;background:var(--bg);border-radius:50%;width:35px;height:35px;font-size:20px;color:var(--brown)}.field{margin-bottom:13px}.field label{font-weight:700;font-size:13px;display:block;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #d9c9bc;background:#fff;padding:12px;border-radius:12px;color:var(--ink);outline-color:#bb8c7f}.field textarea{min-height:75px;resize:vertical}.field input[type=checkbox]{width:auto;accent-color:var(--brown)}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check{border:1px solid var(--line);border-radius:12px;padding:9px;font-size:12px;display:flex;gap:6px;align-items:start}.submit{width:100%;margin-top:6px}.small-text{font-size:12px;color:var(--muted)}.loading{min-height:75vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:38px;color:var(--brown)}.loading p{font-family:'Playfair Display',serif;font-size:24px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,#fbf6edcb,#fbf6edf8),url('./assets/natale.webp') center/cover}.auth-card{width:min(100%,440px);background:#fffdf9f5;padding:28px;border-radius:25px;box-shadow:0 20px 60px #32221630}.auth-card h1{font-size:34px}.auth-card .logo{font-size:49px}.auth-card .small-text{line-height:1.6}.auth-card .error{color:#ab3e3e;font-size:13px;margin:12px 0}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.chip{font-size:11px;background:#f5ede5;border-radius:12px;padding:5px 9px;color:var(--brown)}.toast{position:fixed;bottom:95px;left:50%;transform:translate(-50%,14px);opacity:0;background:var(--ink);color:#fff;border-radius:13px;z-index:60;padding:13px 20px;max-width:calc(100% - 30px);text-align:center;pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}.legend{display:flex;gap:11px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.account-meta{font-size:12px;overflow-wrap:anywhere}.section .subtitle{font-size:13px}.form-pic{max-width:100%;max-height:150px;object-fit:contain;border-radius:12px;margin-top:5px}.pill{display:inline-flex;background:#f6ecdd;padding:6px 11px;border-radius:20px;font-size:11px;font-weight:700;color:var(--brown)}
@media(min-width:660px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.occasion-card .thumb{height:150px}.person-grid{grid-template-columns:repeat(4,1fr)}.hero{min-height:260px}.shell{padding-bottom:115px}.modal{border-radius:25px;margin:auto}}
@media(max-width:370px){.brand{font-size:18px}.headright select{max-width:112px}.occasion-card .thumb{height:100px}.occasion-card .info{padding:9px}.occasion-card h3{font-size:15px}.person-grid{gap:7px}.person-card{padding:12px 5px}}

/* Pulsanti di gestione occasioni e sottosezioni — V6.3 */
.sub-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.subitem>div:first-child{min-width:0;flex:1}
.section-head .toolbar{justify-content:flex-end}
@media(max-width:520px){.subitem{flex-wrap:wrap}.sub-actions{width:100%;justify-content:flex-start}.section-head{flex-wrap:wrap}.section-head .toolbar{width:100%;justify-content:flex-start}}
